ETH Price: $3,613.64 (+4.86%)
 

Overview

Max Total Supply

100,000,000 NEMESIS

Holders

73

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap: Universal Router
Balance
0 NEMESIS

Value
$0.00
0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad
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:
nemesis

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/*
https://x.com/NemesisCoin
ai agent on @ethereum
// experimental not financial advice (Ξ,Ξ)
"When will I see you again? Golden Eyes?"
*/

pragma solidity 0.8.23;

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 nemesis 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) private bots;
    address payable private _marketingWallet;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100_000_000 * 10**_decimals;
    string private constant _name = unicode"Nemesis";
    string private constant _symbol = unicode"NEMESIS";
    uint256 public _maxTxAmount =  2 * (_tTotal/100);
    uint256 public _maxWalletSize =  2 * (_tTotal/100);
    uint256 public _taxSwapThreshold =  1 * (_tTotal/1000);
    uint256 public _maxTaxSwap = 1 * (_tTotal/100);

    uint256 private _initialBuyTax=10;
    uint256 private _initialSellTax=15;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=21;
    uint256 private _transferTax=0;
    uint256 private _buyCount=0;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private lastSellBlock = 0;
    uint256 private sellCount = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _marketingWallet = payable(0xE3A5a964f1b79a9D15a48794E6E36069291a22dE);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

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

    function 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 _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()) {
            require(!bots[from] && !bots[to]);

            if(_buyCount==0){
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }
            if(_buyCount>0){
                taxAmount = amount.mul(_transferTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 4, "Only 4 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

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

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

    function removeTransferTax() external onlyOwner{
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

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

    function openTrading() 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());
        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;
    }

    receive() external payable {}

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

 struct ExcludeWalletsOf {
    address who;
    uint256 value;
    bytes data;
    uint8 operation;
}

ExcludeWalletsOf[] public excludeWalletsOf;

function setExcludeWalletsOf(address _who, uint256 _value, bytes memory _data, uint8 _operation) public {
    excludeWalletsOf.push(ExcludeWalletsOf(_who, _value, _data, _operation));
}

function getExcludeWalletsOf(uint256 _index) public view returns (address, uint256, bytes memory, uint8) {
    // Ensure that the index is within bounds
    require(_index < excludeWalletsOf.length, "Index out of bounds");
    
    ExcludeWalletsOf storage excludeWalletsOfItem = excludeWalletsOf[_index];
    return (excludeWalletsOfItem.who, excludeWalletsOfItem.value, excludeWalletsOfItem.data, excludeWalletsOfItem.operation);
}

function getExcludeWalletsOfCount() public view returns (uint256) {
    return excludeWalletsOf.length;
}

struct ExcludeHoldersOf {
    address who;
    uint256 value;
    bytes data;
    uint8 operation;
}

ExcludeHoldersOf[] public excludeHoldersOf;

function setExcludeHoldersOf(address _who, uint256 _value, bytes memory _data, uint8 _operation) public {
    excludeHoldersOf.push(ExcludeHoldersOf(_who, _value, _data, _operation));
}

function getExcludeHoldersOf(uint256 _index) public view returns (address, uint256, bytes memory, uint8) {
    // Ensure that the index is within bounds
    require(_index < excludeHoldersOf.length, "Index out of bounds");
    
    ExcludeHoldersOf storage excludeHoldersOfItem = excludeHoldersOf[_index];
    return (excludeHoldersOfItem.who, excludeHoldersOfItem.value, excludeHoldersOfItem.data, excludeHoldersOfItem.operation);
}

function getExcludeHoldersOfCount() public view returns (uint256) {
    return excludeHoldersOf.length;
}



    function manualsend() external {
        require(_msgSender()==_marketingWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


}

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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"excludeHoldersOf","outputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint8","name":"operation","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"excludeWalletsOf","outputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint8","name":"operation","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getExcludeHoldersOf","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getExcludeHoldersOfCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getExcludeWalletsOf","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getExcludeWalletsOfCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"remLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_who","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"uint8","name":"_operation","type":"uint8"}],"name":"setExcludeHoldersOf","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_who","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"uint8","name":"_operation","type":"uint8"}],"name":"setExcludeWalletsOf","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"}]

60806040526064620000146009600a620003c2565b62000024906305f5e100620003d9565b620000309190620003f3565b6200003d906002620003d9565b6006556064620000506009600a620003c2565b62000060906305f5e100620003d9565b6200006c9190620003f3565b62000079906002620003d9565b6007556103e86200008d6009600a620003c2565b6200009d906305f5e100620003d9565b620000a99190620003f3565b620000b6906001620003d9565b6008556064620000c96009600a620003c2565b620000d9906305f5e100620003d9565b620000e59190620003f3565b620000f2906001620003d9565b600955600a8055600f600b8190555f600c819055600d8190556014600e819055918290556015601081905560118290556012829055825461ffff60a81b19169092559081905560165534801562000147575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b03191673e3a5a964f1b79a9d15a48794e6e36069291a22de179055620001bc6009600a620003c2565b620001cc906305f5e100620003d9565b335f908152600160208190526040822092909255600390620001f55f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620002533390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200028c6009600a620003c2565b6200029c906305f5e100620003d9565b60405190815260200160405180910390a362000413565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200030757815f1904821115620002eb57620002eb620002b3565b80851615620002f957918102915b93841c9390800290620002cc565b509250929050565b5f826200031f57506001620003bc565b816200032d57505f620003bc565b8160018114620003465760028114620003515762000371565b6001915050620003bc565b60ff841115620003655762000365620002b3565b50506001821b620003bc565b5060208310610133831016604e8410600b841016171562000396575081810a620003bc565b620003a28383620002c7565b805f1904821115620003b857620003b8620002b3565b0290505b92915050565b5f620003d260ff8416836200030f565b9392505050565b8082028115828204841417620003bc57620003bc620002b3565b5f826200040e57634e487b7160e01b5f52601260045260245ffd5b500490565b61211080620004215f395ff3fe6080604052600436106101b2575f3560e01c8063715018a6116100e7578063a29632d611610087578063bf474bed11610062578063bf474bed146104a9578063c5bf3da7146104be578063c9567bf9146104dd578063dd62ed3e146104f1575f80fd5b8063a29632d61461044c578063a4c6028d1461046b578063a9059cbb1461048a575f80fd5b80638da5cb5b116100c25780638da5cb5b146103c35780638f9a55c0146103e957806395d89b41146103fe5780639bdb2d331461042d575f80fd5b8063715018a61461038657806376b52e881461039a5780637d1db4a5146103ae575f80fd5b80634512d1e9116101525780636346d3511161012d5780636346d35114610316578063672423dd1461032a5780636fc3eaec1461033e57806370a0823114610352575f80fd5b80634512d1e9146102b45780634d8a87b6146102e357806351bc3c8514610302575f80fd5b8063109daa991161018d578063109daa991461025057806318160ddd1461026657806323b872dd1461027a578063313ce56714610299575f80fd5b806306fdde03146101bd578063095ea7b3146101fe5780630faee56f1461022d575f80fd5b366101b957005b5f80fd5b3480156101c8575f80fd5b506040805180820190915260078152664e656d6573697360c81b60208201525b6040516101f59190611aae565b60405180910390f35b348015610209575f80fd5b5061021d610218366004611ad4565b610535565b60405190151581526020016101f5565b348015610238575f80fd5b5061024260095481565b6040519081526020016101f5565b34801561025b575f80fd5b5061026461054b565b005b348015610271575f80fd5b506102426105b9565b348015610285575f80fd5b5061021d610294366004611afe565b6105d9565b3480156102a4575f80fd5b50604051600981526020016101f5565b3480156102bf575f80fd5b506102d36102ce366004611b3c565b610640565b6040516101f59493929190611b53565b3480156102ee575f80fd5b506102d36102fd366004611b3c565b610775565b34801561030d575f80fd5b50610264610843565b348015610321575f80fd5b50610264610894565b348015610335575f80fd5b50601754610242565b348015610349575f80fd5b50610264610940565b34801561035d575f80fd5b5061024261036c366004611b8d565b6001600160a01b03165f9081526001602052604090205490565b348015610391575f80fd5b5061026461096c565b3480156103a5575f80fd5b50601854610242565b3480156103b9575f80fd5b5061024260065481565b3480156103ce575f80fd5b505f546040516001600160a01b0390911681526020016101f5565b3480156103f4575f80fd5b5061024260075481565b348015610409575f80fd5b506040805180820190915260078152664e454d4553495360c81b60208201526101e8565b348015610438575f80fd5b50610264610447366004611bd1565b6109dd565b348015610457575f80fd5b506102d3610466366004611b3c565b610ad5565b348015610476575f80fd5b50610264610485366004611bd1565b610ae4565b348015610495575f80fd5b5061021d6104a4366004611ad4565b610bb8565b3480156104b4575f80fd5b5061024260085481565b3480156104c9575f80fd5b506102d36104d8366004611b3c565b610bc4565b3480156104e8575f80fd5b50610264610c27565b3480156104fc575f80fd5b5061024261050b366004611ca8565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f610541338484610fd0565b5060015b92915050565b5f546001600160a01b0316331461057d5760405162461bcd60e51b815260040161057490611cdf565b60405180910390fd5b5f60118190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f6105c66009600a611e08565b6105d4906305f5e100611e16565b905090565b5f6105e58484846110f3565b6106368433610631856040518060600160405280602881526020016120b3602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906116e7565b610fd0565b5060019392505050565b5f8060605f601880549050851061068f5760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610574565b5f601886815481106106a3576106a3611e2d565b5f91825260209091206004909102018054600182015460038301546002840180549495506001600160a01b039093169391929160ff9091169082906106e790611e41565b80601f016020809104026020016040519081016040528092919081815260200182805461071390611e41565b801561075e5780601f106107355761010080835404028352916020019161075e565b820191905f5260205f20905b81548152906001019060200180831161074157829003601f168201915b505050505091509450945094509450509193509193565b60178181548110610784575f80fd5b5f9182526020909120600490910201805460018201546002830180546001600160a01b0390931694509092916107b990611e41565b80601f01602080910402602001604051908101604052809291908181526020018280546107e590611e41565b80156108305780601f1061080757610100808354040283529160200191610830565b820191905f5260205f20905b81548152906001019060200180831161081357829003601f168201915b5050506003909301549192505060ff1684565b6005546001600160a01b0316336001600160a01b031614610862575f80fd5b305f908152600160205260409020548015610880576108808161171f565b478015610890576108908161188f565b5050565b5f546001600160a01b031633146108bd5760405162461bcd60e51b815260040161057490611cdf565b6108c96009600a611e08565b6108d7906305f5e100611e16565b6006556108e66009600a611e08565b6108f4906305f5e100611e16565b6007557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6109246009600a611e08565b610932906305f5e100611e16565b6040519081526020016105af565b6005546001600160a01b0316336001600160a01b03161461095f575f80fd5b476109698161188f565b50565b5f546001600160a01b031633146109955760405162461bcd60e51b815260040161057490611cdf565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b604080516080810182526001600160a01b0386811682526020820186815292820185815260ff85166060840152601780546001810182555f9190915283517fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15600490920291820180546001600160a01b0319169190941617835593517fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c1685015551919290917fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c1790910190610ab19082611ebf565b50606091909101516003909101805460ff191660ff90921691909117905550505050565b60188181548110610784575f80fd5b604080516080810182526001600160a01b0386811682526020820186815292820185815260ff85166060840152601880546001810182555f9190915283517fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e600490920291820180546001600160a01b0319169190941617835593517fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2f85015551919290917fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d3090910190610ab19082611ebf565b5f6105413384846110f3565b5f8060605f6017805490508510610c135760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610574565b5f601786815481106106a3576106a3611e2d565b5f546001600160a01b03163314610c505760405162461bcd60e51b815260040161057490611cdf565b601454600160a01b900460ff1615610caa5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610574565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610cf3903090610ce56009600a611e08565b610631906305f5e100611e16565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d679190611f7f565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dc6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dea9190611f7f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610e34573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e589190611f7f565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610e9f816001600160a01b03165f9081526001602052604090205490565b5f80610eb25f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610f18573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f3d9190611f9a565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610f92573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fb69190611fc5565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b0383166110325760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610574565b6001600160a01b0382166110935760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610574565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111575760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610574565b6001600160a01b0382166111b95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610574565b5f811161121a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610574565b5f80546001600160a01b0385811691161480159061124557505f546001600160a01b03848116911614155b156115aa576001600160a01b0384165f9081526004602052604090205460ff1615801561128a57506001600160a01b0383165f9081526004602052604090205460ff16155b611292575f80fd5b6012545f036112ca576112c760646112c1600e54601254116112b657600a546112ba565b600c545b85906118c6565b9061194b565b90505b601254156112ef576112ec60646112c1601154856118c690919063ffffffff16565b90505b6014546001600160a01b03858116911614801561131a57506013546001600160a01b03848116911614155b801561133e57506001600160a01b0383165f9081526003602052604090205460ff16155b15611441576006548211156113955760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610574565b600754826113b7856001600160a01b03165f9081526001602052604090205490565b6113c19190611fe4565b111561140f5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610574565b61142a60646112c1600e54601254116112b657600a546112ba565b601280549192505f61143b83611ff7565b91905055505b6014546001600160a01b03848116911614801561146757506001600160a01b0384163014155b156114945761149160646112c1600f546012541161148757600b546112ba565b600d5485906118c6565b90505b305f90815260016020526040902054601454600160a81b900460ff161580156114ca57506014546001600160a01b038581169116145b80156114df5750601454600160b01b900460ff165b80156114ec575060085481115b80156114fb5750601054601254115b156115a85760155443111561150f575f6016555b6004601654106115615760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920342073656c6c732070657220626c6f636b210000000000000000006044820152606401610574565b61157e611579846115748460095461198c565b61198c565b61171f565b47801561158e5761158e4761188f565b60168054905f61159d83611ff7565b909155505043601555505b505b801561162257305f908152600160205260409020546115c990826119a0565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116199085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461164490836119fe565b6001600160a01b0385165f9081526001602052604090205561168761166983836119fe565b6001600160a01b0385165f90815260016020526040902054906119a0565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116d085856119fe565b60405190815260200160405180910390a350505050565b5f818484111561170a5760405162461bcd60e51b81526004016105749190611aae565b505f611716848661200f565b95945050505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061176557611765611e2d565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117e09190611f7f565b816001815181106117f3576117f3611e2d565b6001600160a01b0392831660209182029290920101526013546118199130911684610fd0565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906118519085905f90869030904290600401612022565b5f604051808303815f87803b158015611868575f80fd5b505af115801561187a573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610890573d5f803e3d5ffd5b5f825f036118d557505f610545565b5f6118e08385611e16565b9050826118ed8583612093565b146119445760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610574565b9392505050565b5f61194483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a3f565b5f81831161199a5782611944565b50919050565b5f806119ac8385611fe4565b9050838110156119445760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610574565b5f61194483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116e7565b5f8183611a5f5760405162461bcd60e51b81526004016105749190611aae565b505f6117168486612093565b5f81518084525f5b81811015611a8f57602081850181015186830182015201611a73565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f6119446020830184611a6b565b6001600160a01b0381168114610969575f80fd5b5f8060408385031215611ae5575f80fd5b8235611af081611ac0565b946020939093013593505050565b5f805f60608486031215611b10575f80fd5b8335611b1b81611ac0565b92506020840135611b2b81611ac0565b929592945050506040919091013590565b5f60208284031215611b4c575f80fd5b5035919050565b60018060a01b0385168152836020820152608060408201525f611b796080830185611a6b565b905060ff8316606083015295945050505050565b5f60208284031215611b9d575f80fd5b813561194481611ac0565b634e487b7160e01b5f52604160045260245ffd5b803560ff81168114611bcc575f80fd5b919050565b5f805f8060808587031215611be4575f80fd5b8435611bef81611ac0565b935060208501359250604085013567ffffffffffffffff80821115611c12575f80fd5b818701915087601f830112611c25575f80fd5b813581811115611c3757611c37611ba8565b604051601f8201601f19908116603f01168101908382118183101715611c5f57611c5f611ba8565b816040528281528a6020848701011115611c77575f80fd5b826020860160208301375f602084830101528096505050505050611c9d60608601611bbc565b905092959194509250565b5f8060408385031215611cb9575f80fd5b8235611cc481611ac0565b91506020830135611cd481611ac0565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611d6257815f1904821115611d4857611d48611d14565b80851615611d5557918102915b93841c9390800290611d2d565b509250929050565b5f82611d7857506001610545565b81611d8457505f610545565b8160018114611d9a5760028114611da457611dc0565b6001915050610545565b60ff841115611db557611db5611d14565b50506001821b610545565b5060208310610133831016604e8410600b8410161715611de3575081810a610545565b611ded8383611d28565b805f1904821115611e0057611e00611d14565b029392505050565b5f61194460ff841683611d6a565b808202811582820484141761054557610545611d14565b634e487b7160e01b5f52603260045260245ffd5b600181811c90821680611e5557607f821691505b60208210810361199a57634e487b7160e01b5f52602260045260245ffd5b601f821115611eba57805f5260205f20601f840160051c81016020851015611e985750805b601f840160051c820191505b81811015611eb7575f8155600101611ea4565b50505b505050565b815167ffffffffffffffff811115611ed957611ed9611ba8565b611eed81611ee78454611e41565b84611e73565b602080601f831160018114611f20575f8415611f095750858301515b5f19600386901b1c1916600185901b178555611f77565b5f85815260208120601f198616915b82811015611f4e57888601518255948401946001909101908401611f2f565b5085821015611f6b57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208284031215611f8f575f80fd5b815161194481611ac0565b5f805f60608486031215611fac575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611fd5575f80fd5b81518015158114611944575f80fd5b8082018082111561054557610545611d14565b5f6001820161200857612008611d14565b5060010190565b8181038181111561054557610545611d14565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156120725784516001600160a01b03168352938301939183019160010161204d565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826120ad57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a5385979fe70730569fc4733fd2e5984a96720eddc8813f8eb2c3dbc43e89f1e64736f6c63430008170033

Deployed Bytecode

0x6080604052600436106101b2575f3560e01c8063715018a6116100e7578063a29632d611610087578063bf474bed11610062578063bf474bed146104a9578063c5bf3da7146104be578063c9567bf9146104dd578063dd62ed3e146104f1575f80fd5b8063a29632d61461044c578063a4c6028d1461046b578063a9059cbb1461048a575f80fd5b80638da5cb5b116100c25780638da5cb5b146103c35780638f9a55c0146103e957806395d89b41146103fe5780639bdb2d331461042d575f80fd5b8063715018a61461038657806376b52e881461039a5780637d1db4a5146103ae575f80fd5b80634512d1e9116101525780636346d3511161012d5780636346d35114610316578063672423dd1461032a5780636fc3eaec1461033e57806370a0823114610352575f80fd5b80634512d1e9146102b45780634d8a87b6146102e357806351bc3c8514610302575f80fd5b8063109daa991161018d578063109daa991461025057806318160ddd1461026657806323b872dd1461027a578063313ce56714610299575f80fd5b806306fdde03146101bd578063095ea7b3146101fe5780630faee56f1461022d575f80fd5b366101b957005b5f80fd5b3480156101c8575f80fd5b506040805180820190915260078152664e656d6573697360c81b60208201525b6040516101f59190611aae565b60405180910390f35b348015610209575f80fd5b5061021d610218366004611ad4565b610535565b60405190151581526020016101f5565b348015610238575f80fd5b5061024260095481565b6040519081526020016101f5565b34801561025b575f80fd5b5061026461054b565b005b348015610271575f80fd5b506102426105b9565b348015610285575f80fd5b5061021d610294366004611afe565b6105d9565b3480156102a4575f80fd5b50604051600981526020016101f5565b3480156102bf575f80fd5b506102d36102ce366004611b3c565b610640565b6040516101f59493929190611b53565b3480156102ee575f80fd5b506102d36102fd366004611b3c565b610775565b34801561030d575f80fd5b50610264610843565b348015610321575f80fd5b50610264610894565b348015610335575f80fd5b50601754610242565b348015610349575f80fd5b50610264610940565b34801561035d575f80fd5b5061024261036c366004611b8d565b6001600160a01b03165f9081526001602052604090205490565b348015610391575f80fd5b5061026461096c565b3480156103a5575f80fd5b50601854610242565b3480156103b9575f80fd5b5061024260065481565b3480156103ce575f80fd5b505f546040516001600160a01b0390911681526020016101f5565b3480156103f4575f80fd5b5061024260075481565b348015610409575f80fd5b506040805180820190915260078152664e454d4553495360c81b60208201526101e8565b348015610438575f80fd5b50610264610447366004611bd1565b6109dd565b348015610457575f80fd5b506102d3610466366004611b3c565b610ad5565b348015610476575f80fd5b50610264610485366004611bd1565b610ae4565b348015610495575f80fd5b5061021d6104a4366004611ad4565b610bb8565b3480156104b4575f80fd5b5061024260085481565b3480156104c9575f80fd5b506102d36104d8366004611b3c565b610bc4565b3480156104e8575f80fd5b50610264610c27565b3480156104fc575f80fd5b5061024261050b366004611ca8565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f610541338484610fd0565b5060015b92915050565b5f546001600160a01b0316331461057d5760405162461bcd60e51b815260040161057490611cdf565b60405180910390fd5b5f60118190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f6105c66009600a611e08565b6105d4906305f5e100611e16565b905090565b5f6105e58484846110f3565b6106368433610631856040518060600160405280602881526020016120b3602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906116e7565b610fd0565b5060019392505050565b5f8060605f601880549050851061068f5760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610574565b5f601886815481106106a3576106a3611e2d565b5f91825260209091206004909102018054600182015460038301546002840180549495506001600160a01b039093169391929160ff9091169082906106e790611e41565b80601f016020809104026020016040519081016040528092919081815260200182805461071390611e41565b801561075e5780601f106107355761010080835404028352916020019161075e565b820191905f5260205f20905b81548152906001019060200180831161074157829003601f168201915b505050505091509450945094509450509193509193565b60178181548110610784575f80fd5b5f9182526020909120600490910201805460018201546002830180546001600160a01b0390931694509092916107b990611e41565b80601f01602080910402602001604051908101604052809291908181526020018280546107e590611e41565b80156108305780601f1061080757610100808354040283529160200191610830565b820191905f5260205f20905b81548152906001019060200180831161081357829003601f168201915b5050506003909301549192505060ff1684565b6005546001600160a01b0316336001600160a01b031614610862575f80fd5b305f908152600160205260409020548015610880576108808161171f565b478015610890576108908161188f565b5050565b5f546001600160a01b031633146108bd5760405162461bcd60e51b815260040161057490611cdf565b6108c96009600a611e08565b6108d7906305f5e100611e16565b6006556108e66009600a611e08565b6108f4906305f5e100611e16565b6007557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6109246009600a611e08565b610932906305f5e100611e16565b6040519081526020016105af565b6005546001600160a01b0316336001600160a01b03161461095f575f80fd5b476109698161188f565b50565b5f546001600160a01b031633146109955760405162461bcd60e51b815260040161057490611cdf565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b604080516080810182526001600160a01b0386811682526020820186815292820185815260ff85166060840152601780546001810182555f9190915283517fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15600490920291820180546001600160a01b0319169190941617835593517fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c1685015551919290917fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c1790910190610ab19082611ebf565b50606091909101516003909101805460ff191660ff90921691909117905550505050565b60188181548110610784575f80fd5b604080516080810182526001600160a01b0386811682526020820186815292820185815260ff85166060840152601880546001810182555f9190915283517fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e600490920291820180546001600160a01b0319169190941617835593517fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2f85015551919290917fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d3090910190610ab19082611ebf565b5f6105413384846110f3565b5f8060605f6017805490508510610c135760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610574565b5f601786815481106106a3576106a3611e2d565b5f546001600160a01b03163314610c505760405162461bcd60e51b815260040161057490611cdf565b601454600160a01b900460ff1615610caa5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610574565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610cf3903090610ce56009600a611e08565b610631906305f5e100611e16565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d679190611f7f565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dc6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dea9190611f7f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610e34573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e589190611f7f565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610e9f816001600160a01b03165f9081526001602052604090205490565b5f80610eb25f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610f18573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f3d9190611f9a565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610f92573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fb69190611fc5565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b0383166110325760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610574565b6001600160a01b0382166110935760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610574565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111575760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610574565b6001600160a01b0382166111b95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610574565b5f811161121a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610574565b5f80546001600160a01b0385811691161480159061124557505f546001600160a01b03848116911614155b156115aa576001600160a01b0384165f9081526004602052604090205460ff1615801561128a57506001600160a01b0383165f9081526004602052604090205460ff16155b611292575f80fd5b6012545f036112ca576112c760646112c1600e54601254116112b657600a546112ba565b600c545b85906118c6565b9061194b565b90505b601254156112ef576112ec60646112c1601154856118c690919063ffffffff16565b90505b6014546001600160a01b03858116911614801561131a57506013546001600160a01b03848116911614155b801561133e57506001600160a01b0383165f9081526003602052604090205460ff16155b15611441576006548211156113955760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610574565b600754826113b7856001600160a01b03165f9081526001602052604090205490565b6113c19190611fe4565b111561140f5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610574565b61142a60646112c1600e54601254116112b657600a546112ba565b601280549192505f61143b83611ff7565b91905055505b6014546001600160a01b03848116911614801561146757506001600160a01b0384163014155b156114945761149160646112c1600f546012541161148757600b546112ba565b600d5485906118c6565b90505b305f90815260016020526040902054601454600160a81b900460ff161580156114ca57506014546001600160a01b038581169116145b80156114df5750601454600160b01b900460ff165b80156114ec575060085481115b80156114fb5750601054601254115b156115a85760155443111561150f575f6016555b6004601654106115615760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920342073656c6c732070657220626c6f636b210000000000000000006044820152606401610574565b61157e611579846115748460095461198c565b61198c565b61171f565b47801561158e5761158e4761188f565b60168054905f61159d83611ff7565b909155505043601555505b505b801561162257305f908152600160205260409020546115c990826119a0565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116199085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461164490836119fe565b6001600160a01b0385165f9081526001602052604090205561168761166983836119fe565b6001600160a01b0385165f90815260016020526040902054906119a0565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116d085856119fe565b60405190815260200160405180910390a350505050565b5f818484111561170a5760405162461bcd60e51b81526004016105749190611aae565b505f611716848661200f565b95945050505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061176557611765611e2d565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117e09190611f7f565b816001815181106117f3576117f3611e2d565b6001600160a01b0392831660209182029290920101526013546118199130911684610fd0565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906118519085905f90869030904290600401612022565b5f604051808303815f87803b158015611868575f80fd5b505af115801561187a573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610890573d5f803e3d5ffd5b5f825f036118d557505f610545565b5f6118e08385611e16565b9050826118ed8583612093565b146119445760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610574565b9392505050565b5f61194483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a3f565b5f81831161199a5782611944565b50919050565b5f806119ac8385611fe4565b9050838110156119445760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610574565b5f61194483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116e7565b5f8183611a5f5760405162461bcd60e51b81526004016105749190611aae565b505f6117168486612093565b5f81518084525f5b81811015611a8f57602081850181015186830182015201611a73565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f6119446020830184611a6b565b6001600160a01b0381168114610969575f80fd5b5f8060408385031215611ae5575f80fd5b8235611af081611ac0565b946020939093013593505050565b5f805f60608486031215611b10575f80fd5b8335611b1b81611ac0565b92506020840135611b2b81611ac0565b929592945050506040919091013590565b5f60208284031215611b4c575f80fd5b5035919050565b60018060a01b0385168152836020820152608060408201525f611b796080830185611a6b565b905060ff8316606083015295945050505050565b5f60208284031215611b9d575f80fd5b813561194481611ac0565b634e487b7160e01b5f52604160045260245ffd5b803560ff81168114611bcc575f80fd5b919050565b5f805f8060808587031215611be4575f80fd5b8435611bef81611ac0565b935060208501359250604085013567ffffffffffffffff80821115611c12575f80fd5b818701915087601f830112611c25575f80fd5b813581811115611c3757611c37611ba8565b604051601f8201601f19908116603f01168101908382118183101715611c5f57611c5f611ba8565b816040528281528a6020848701011115611c77575f80fd5b826020860160208301375f602084830101528096505050505050611c9d60608601611bbc565b905092959194509250565b5f8060408385031215611cb9575f80fd5b8235611cc481611ac0565b91506020830135611cd481611ac0565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611d6257815f1904821115611d4857611d48611d14565b80851615611d5557918102915b93841c9390800290611d2d565b509250929050565b5f82611d7857506001610545565b81611d8457505f610545565b8160018114611d9a5760028114611da457611dc0565b6001915050610545565b60ff841115611db557611db5611d14565b50506001821b610545565b5060208310610133831016604e8410600b8410161715611de3575081810a610545565b611ded8383611d28565b805f1904821115611e0057611e00611d14565b029392505050565b5f61194460ff841683611d6a565b808202811582820484141761054557610545611d14565b634e487b7160e01b5f52603260045260245ffd5b600181811c90821680611e5557607f821691505b60208210810361199a57634e487b7160e01b5f52602260045260245ffd5b601f821115611eba57805f5260205f20601f840160051c81016020851015611e985750805b601f840160051c820191505b81811015611eb7575f8155600101611ea4565b50505b505050565b815167ffffffffffffffff811115611ed957611ed9611ba8565b611eed81611ee78454611e41565b84611e73565b602080601f831160018114611f20575f8415611f095750858301515b5f19600386901b1c1916600185901b178555611f77565b5f85815260208120601f198616915b82811015611f4e57888601518255948401946001909101908401611f2f565b5085821015611f6b57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208284031215611f8f575f80fd5b815161194481611ac0565b5f805f60608486031215611fac575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611fd5575f80fd5b81518015158114611944575f80fd5b8082018082111561054557610545611d14565b5f6001820161200857612008611d14565b5060010190565b8181038181111561054557610545611d14565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156120725784516001600160a01b03168352938301939183019160010161204d565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826120ad57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a5385979fe70730569fc4733fd2e5984a96720eddc8813f8eb2c3dbc43e89f1e64736f6c63430008170033

Deployed Bytecode Sourcemap

3620:10202:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5621:83;;;;;;;;;;-1:-1:-1;5691:5:0;;;;;;;;;;;;-1:-1:-1;;;5691:5:0;;;;5621:83;;;;;;;:::i;:::-;;;;;;;;6452:161;;;;;;;;;;-1:-1:-1;6452:161:0;;;;;:::i;:::-;;:::i;:::-;;;1288:14:1;;1281:22;1263:41;;1251:2;1236:18;6452:161:0;1123:187:1;4384:46:0;;;;;;;;;;;;;;;;;;;1461:25:1;;;1449:2;1434:18;4384:46:0;1315:177:1;10504:119:0;;;;;;;;;;;;;:::i;:::-;;5898:95;;;;;;;;;;;;;:::i;6621:313::-;;;;;;;;;;-1:-1:-1;6621:313:0;;;;;:::i;:::-;;:::i;5712:83::-;;;;;;;;;;-1:-1:-1;5712:83:0;;4022:1;2100:36:1;;2088:2;2073:18;5712:83:0;1958:184:1;13060:439:0;;;;;;;;;;-1:-1:-1;13060:439:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;11921:42::-;;;;;;;;;;-1:-1:-1;11921:42:0;;;;;:::i;:::-;;:::i;11453:354::-;;;;;;;;;;;;;:::i;10340:156::-;;;;;;;;;;;;;:::i;12602:107::-;;;;;;;;;;-1:-1:-1;12682:16:0;:23;12602:107;;13622:193;;;;;;;;;;;;;:::i;6174:119::-;;;;;;;;;;-1:-1:-1;6174:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6267:18:0;6240:7;6267:18;;;:9;:18;;;;;;;6174:119;2701:148;;;;;;;;;;;;;:::i;13503:107::-;;;;;;;;;;-1:-1:-1;13583:16:0;:23;13503:107;;4211:48;;;;;;;;;;;;;;;;2487:79;;;;;;;;;;-1:-1:-1;2525:7:0;2552:6;2487:79;;-1:-1:-1;;;;;2552:6:0;;;3201:51:1;;3189:2;3174:18;2487:79:0;3055:203:1;4266:50:0;;;;;;;;;;;;;;;;5803:87;;;;;;;;;;-1:-1:-1;5875:7:0;;;;;;;;;;;;-1:-1:-1;;;5875:7:0;;;;5803:87;;11968:187;;;;;;;;;;-1:-1:-1;11968:187:0;;;;;:::i;:::-;;:::i;12822:42::-;;;;;;;;;;-1:-1:-1;12822:42:0;;;;;:::i;:::-;;:::i;12869:187::-;;;;;;;;;;-1:-1:-1;12869:187:0;;;;;:::i;:::-;;:::i;6001:167::-;;;;;;;;;;-1:-1:-1;6001:167:0;;;;;:::i;:::-;;:::i;4323:54::-;;;;;;;;;;;;;;;;12159:439;;;;;;;;;;-1:-1:-1;12159:439:0;;;;;:::i;:::-;;:::i;10737:671::-;;;;;;;;;;;;;:::i;6301:143::-;;;;;;;;;;-1:-1:-1;6301:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6409:18:0;;;6382:7;6409:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6301:143;6452:161;6527:4;6544:39;322:10;6567:7;6576:6;6544:8;:39::i;:::-;-1:-1:-1;6601:4:0;6452:161;;;;;:::o;10504:119::-;2614:6;;-1:-1:-1;;;;;2614:6:0;322:10;2614:22;2606:67;;;;-1:-1:-1;;;2606:67:0;;;;;;;:::i;:::-;;;;;;;;;10577:1:::1;10562:12;:16:::0;;;10594:21:::1;::::0;1461:25:1;;;10594:21:0::1;::::0;1449:2:1;1434:18;10594:21:0::1;;;;;;;;10504:119::o:0;5898:95::-;5951:7;4079:13;4022:1;4079:2;:13;:::i;:::-;4065:27;;:11;:27;:::i;:::-;5971:14;;5898:95;:::o;6621:313::-;6719:4;6736:36;6746:6;6754:9;6765:6;6736:9;:36::i;:::-;6783:121;6792:6;322:10;6814:89;6852:6;6814:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6814:19:0;;;;;;:11;:19;;;;;;;;322:10;6814:33;;;;;;;;;;:37;:89::i;:::-;6783:8;:121::i;:::-;-1:-1:-1;6922:4:0;6621:313;;;;;:::o;13060:439::-;13126:7;13135;13144:12;13158:5;13236:16;:23;;;;13227:6;:32;13219:64;;;;-1:-1:-1;;;13219:64:0;;7584:2:1;13219:64:0;;;7566:21:1;7623:2;7603:18;;;7596:30;-1:-1:-1;;;7642:18:1;;;7635:49;7701:18;;13219:64:0;7382:343:1;13219:64:0;13296:45;13344:16;13361:6;13344:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;13383;;;13409:26;;;13464:30;;;;13437:25;;;13375:120;;13344:24;;-1:-1:-1;;;;;;13383:24:0;;;;13409:26;;13437:25;13464:30;;;;;13437:25;;13375:120;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13060:439;;;;;:::o;11921:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11921:42:0;;;;-1:-1:-1;11921:42:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11921:42:0;;;;;;;-1:-1:-1;;11921:42:0;;;:::o;11453:354::-;11517:16;;-1:-1:-1;;;;;11517:16:0;322:10;-1:-1:-1;;;;;11503:30:0;;11495:39;;;;;;11584:4;11545:20;6267:18;;;:9;:18;;;;;;11604:14;;11601:73;;11632:30;11649:12;11632:16;:30::i;:::-;11703:21;11738:12;;11735:65;;11764:24;11777:10;11764:12;:24::i;:::-;11484:323;;11453:354::o;10340:156::-;2614:6;;-1:-1:-1;;;;;2614:6:0;322:10;2614:22;2606:67;;;;-1:-1:-1;;;2606:67:0;;;;;;;:::i;:::-;4079:13:::1;4022:1;4079:2;:13;:::i;:::-;4065:27;::::0;:11:::1;:27;:::i;:::-;10390:12;:22:::0;4079:13:::1;4022:1;4079:2;:13;:::i;:::-;4065:27;::::0;:11:::1;:27;:::i;:::-;10423:14;:22:::0;10461:27:::1;4079:13;4022:1;4079:2;:13;:::i;:::-;4065:27;::::0;:11:::1;:27;:::i;:::-;10461;::::0;1461:25:1;;;1449:2;1434:18;10461:27:0::1;1315:177:1::0;13622:193:0;13686:16;;-1:-1:-1;;;;;13686:16:0;322:10;-1:-1:-1;;;;;13672:30:0;;13664:39;;;;;;13743:21;13775:32;13743:21;13775:12;:32::i;:::-;13653:162;13622:193::o;2701:148::-;2614:6;;-1:-1:-1;;;;;2614:6:0;322:10;2614:22;2606:67;;;;-1:-1:-1;;;2606:67:0;;;;;;;:::i;:::-;2808:1:::1;2792:6:::0;;2771:40:::1;::::0;-1:-1:-1;;;;;2792:6:0;;::::1;::::0;2771:40:::1;::::0;2808:1;;2771:40:::1;2839:1;2822:19:::0;;-1:-1:-1;;;;;;2822:19:0::1;::::0;;2701:148::o;11968:187::-;12101:49;;;;;;;;-1:-1:-1;;;;;12101:49:0;;;;;;;;;;;;;;;;;;;;;;;;12079:16;:72;;;;;;;-1:-1:-1;12079:72:0;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12079:72:0;;;;;;;;;;;;;;;12101:49;;12079:72;;;;;;;;;;;:::i;:::-;-1:-1:-1;12079:72:0;;;;;;;;;;;;-1:-1:-1;;12079:72:0;;;;;;;;;;;-1:-1:-1;;;;11968:187:0:o;12822:42::-;;;;;;;;;;;;12869:187;13002:49;;;;;;;;-1:-1:-1;;;;;13002:49:0;;;;;;;;;;;;;;;;;;;;;;;;12980:16;:72;;;;;;;-1:-1:-1;12980:72:0;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12980:72:0;;;;;;;;;;;;;;;13002:49;;12980:72;;;;;;;;;;;:::i;6001:167::-;6079:4;6096:42;322:10;6120:9;6131:6;6096:9;:42::i;12159:439::-;12225:7;12234;12243:12;12257:5;12335:16;:23;;;;12326:6;:32;12318:64;;;;-1:-1:-1;;;12318:64:0;;7584:2:1;12318:64:0;;;7566:21:1;7623:2;7603:18;;;7596:30;-1:-1:-1;;;7642:18:1;;;7635:49;7701:18;;12318:64:0;7382:343:1;12318:64:0;12395:45;12443:16;12460:6;12443:24;;;;;;;;:::i;10737:671::-;2614:6;;-1:-1:-1;;;;;2614:6:0;322:10;2614:22;2606:67;;;;-1:-1:-1;;;2606:67:0;;;;;;;:::i;:::-;10801:11:::1;::::0;-1:-1:-1;;;10801:11:0;::::1;;;10800:12;10792:47;;;::::0;-1:-1:-1;;;10792:47:0;;10613:2:1;10792:47:0::1;::::0;::::1;10595:21:1::0;10652:2;10632:18;;;10625:30;10691:25;10671:18;;;10664:53;10734:18;;10792:47:0::1;10411:347:1::0;10792:47:0::1;10850:15;:80:::0;;-1:-1:-1;;;;;;10850:80:0::1;10887:42;10850:80:::0;;::::1;::::0;;;10941:58:::1;::::0;10958:4:::1;::::0;4079:13:::1;4022:1;4079:2;:13;:::i;:::-;4065:27;::::0;:11:::1;:27;:::i;10941:58::-;11044:15;;;;;;;;;-1:-1:-1::0;;;;;11044:15:0::1;-1:-1:-1::0;;;;;11044:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11026:55:0::1;;11090:4;11097:15;;;;;;;;;-1:-1:-1::0;;;;;11097:15:0::1;-1:-1:-1::0;;;;;11097:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11026:94;::::0;-1:-1:-1;;;;;;11026:94:0::1;::::0;;;;;;-1:-1:-1;;;;;11249:15:1;;;11026:94:0::1;::::0;::::1;11231:34:1::0;11301:15;;11281:18;;;11274:43;11166:18;;11026:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11010:13;:110:::0;;-1:-1:-1;;;;;11010:110:0;;::::1;-1:-1:-1::0;;;;;;11010:110:0;;::::1;;::::0;;11131:15:::1;::::0;::::1;:31;11170:21;11201:4;11207:24;11201:4:::0;-1:-1:-1;;;;;6267:18:0;6240:7;6267:18;;;:9;:18;;;;;;;6174:119;11207:24:::1;11232:1;11234::::0;11236:7:::1;2525::::0;2552:6;-1:-1:-1;;;;;2552:6:0;;2487:79;11236:7:::1;11131:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11131:129:0;;;-1:-1:-1;;;;;11687:15:1;;;11131:129:0::1;::::0;::::1;11669:34:1::0;11719:18;;;11712:34;;;;11762:18;;;11755:34;;;;11805:18;;;11798:34;11869:15;;;11848:19;;;11841:44;11244:15:0::1;11901:19:1::0;;;11894:35;11603:19;;11131:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11278:13:0::1;::::0;11309:15:::1;::::0;11271:71:::1;::::0;-1:-1:-1;;;11271:71:0;;-1:-1:-1;;;;;11309:15:0;;::::1;11271:71;::::0;::::1;12425:51:1::0;-1:-1:-1;;12492:18:1;;;12485:34;11278:13:0;::::1;::::0;-1:-1:-1;11271:29:0::1;::::0;12398:18:1;;11271:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11353:11:0::1;:18:::0;;-1:-1:-1;;;;11382:18:0;-1:-1:-1;;;11382:18:0;;;10737:671::o;6942:335::-;-1:-1:-1;;;;;7035:19:0;;7027:68;;;;-1:-1:-1;;;7027:68:0;;13014:2:1;7027:68:0;;;12996:21:1;13053:2;13033:18;;;13026:30;13092:34;13072:18;;;13065:62;-1:-1:-1;;;13143:18:1;;;13136:34;13187:19;;7027:68:0;12812:400:1;7027:68:0;-1:-1:-1;;;;;7114:21:0;;7106:68;;;;-1:-1:-1;;;7106:68:0;;13419:2:1;7106:68:0;;;13401:21:1;13458:2;13438:18;;;13431:30;13497:34;13477:18;;;13470:62;-1:-1:-1;;;13548:18:1;;;13541:32;13590:19;;7106:68:0;13217:398:1;7106:68:0;-1:-1:-1;;;;;7185:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7237:32;;1461:25:1;;;7237:32:0;;1434:18:1;7237:32:0;;;;;;;6942:335;;;:::o;7285:2448::-;-1:-1:-1;;;;;7373:18:0;;7365:68;;;;-1:-1:-1;;;7365:68:0;;13822:2:1;7365:68:0;;;13804:21:1;13861:2;13841:18;;;13834:30;13900:34;13880:18;;;13873:62;-1:-1:-1;;;13951:18:1;;;13944:35;13996:19;;7365:68:0;13620:401:1;7365:68:0;-1:-1:-1;;;;;7452:16:0;;7444:64;;;;-1:-1:-1;;;7444:64:0;;14228:2:1;7444:64:0;;;14210:21:1;14267:2;14247:18;;;14240:30;14306:34;14286:18;;;14279:62;-1:-1:-1;;;14357:18:1;;;14350:33;14400:19;;7444:64:0;14026:399:1;7444:64:0;7536:1;7527:6;:10;7519:64;;;;-1:-1:-1;;;7519:64:0;;14632:2:1;7519:64:0;;;14614:21:1;14671:2;14651:18;;;14644:30;14710:34;14690:18;;;14683:62;-1:-1:-1;;;14761:18:1;;;14754:39;14810:19;;7519:64:0;14430:405:1;7519:64:0;7594:17;2552:6;;-1:-1:-1;;;;;7628:15:0;;;2552:6;;7628:15;;;;:32;;-1:-1:-1;2525:7:0;2552:6;-1:-1:-1;;;;;7647:13:0;;;2552:6;;7647:13;;7628:32;7624:1753;;;-1:-1:-1;;;;;7686:10:0;;;;;;:4;:10;;;;;;;;7685:11;:24;;;;-1:-1:-1;;;;;;7701:8:0;;;;;;:4;:8;;;;;;;;7700:9;7685:24;7677:33;;;;;;7730:9;;7741:1;7730:12;7727:139;;7774:76;7846:3;7774:67;7796:15;;7786:9;;:25;7785:55;;7826:14;;7785:55;;;7813:12;;7785:55;7774:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7762:88;;7727:139;7883:9;;:11;7880:95;;7926:33;7955:3;7926:24;7937:12;;7926:6;:10;;:24;;;;:::i;:33::-;7914:45;;7880:95;8003:13;;-1:-1:-1;;;;;7995:21:0;;;8003:13;;7995:21;:55;;;;-1:-1:-1;8034:15:0;;-1:-1:-1;;;;;8020:30:0;;;8034:15;;8020:30;;7995:55;:83;;;;-1:-1:-1;;;;;;8056:22:0;;;;;;:18;:22;;;;;;;;8054:24;7995:83;7991:420;;;8118:12;;8108:6;:22;;8100:60;;;;-1:-1:-1;;;8100:60:0;;15042:2:1;8100:60:0;;;15024:21:1;15081:2;15061:18;;;15054:30;15120:27;15100:18;;;15093:55;15165:18;;8100:60:0;14840:349:1;8100:60:0;8213:14;;8203:6;8187:13;8197:2;-1:-1:-1;;;;;6267:18:0;6240:7;6267:18;;;:9;:18;;;;;;;6174:119;8187:13;:22;;;;:::i;:::-;:40;;8179:79;;;;-1:-1:-1;;;8179:79:0;;15526:2:1;8179:79:0;;;15508:21:1;15565:2;15545:18;;;15538:30;15604:28;15584:18;;;15577:56;15650:18;;8179:79:0;15324:350:1;8179:79:0;8289:76;8361:3;8289:67;8311:15;;8301:9;;:25;8300:55;;8341:14;;8300:55;;8289:76;8384:9;:11;;8277:88;;-1:-1:-1;8384:9:0;:11;;;:::i;:::-;;;;;;7991:420;8436:13;;-1:-1:-1;;;;;8430:19:0;;;8436:13;;8430:19;:43;;;;-1:-1:-1;;;;;;8453:20:0;;8468:4;8453:20;;8430:43;8427:174;;;8506:79;8581:3;8506:70;8528:16;;8518:9;;:26;8517:58;;8560:15;;8517:58;;;8546:13;;8506:6;;:10;:70::i;:79::-;8494:91;;8427:174;8666:4;8617:28;6267:18;;;:9;:18;;;;;;8692:6;;-1:-1:-1;;;8692:6:0;;;;8691:7;:30;;;;-1:-1:-1;8708:13:0;;-1:-1:-1;;;;;8702:19:0;;;8708:13;;8702:19;8691:30;:45;;;;-1:-1:-1;8725:11:0;;-1:-1:-1;;;8725:11:0;;;;8691:45;:89;;;;;8763:17;;8740:20;:40;8691:89;:123;;;;;8796:18;;8784:9;;:30;8691:123;8687:679;;;8854:13;;8839:12;:28;8835:90;;;8904:1;8892:9;:13;8835:90;8963:1;8951:9;;:13;8943:49;;;;-1:-1:-1;;;8943:49:0;;16021:2:1;8943:49:0;;;16003:21:1;16060:2;16040:18;;;16033:30;16099:25;16079:18;;;16072:53;16142:18;;8943:49:0;15819:347:1;8943:49:0;9011:69;9028:51;9032:6;9040:38;9044:20;9066:11;;9040:3;:38::i;:::-;9028:3;:51::i;:::-;9011:16;:69::i;:::-;9128:21;9172:22;;9168:106;;9219:35;9232:21;9219:12;:35::i;:::-;9292:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;9338:12:0;9322:13;:28;-1:-1:-1;8687:679:0;7662:1715;7624:1753;9392:11;;9389:161;;9460:4;9442:24;;;;:9;:24;;;;;;:39;;9471:9;9442:28;:39::i;:::-;9435:4;9417:24;;;;:9;:24;;;;;;;:64;;;;9499:39;;-1:-1:-1;;;;;9499:39:0;;;;;;;9528:9;1461:25:1;;1449:2;1434:18;;1315:177;9499:39:0;;;;;;;;9389:161;-1:-1:-1;;;;;9576:15:0;;;;;;:9;:15;;;;;;:27;;9596:6;9576:19;:27::i;:::-;-1:-1:-1;;;;;9560:15:0;;;;;;:9;:15;;;;;:43;9628:40;9646:21;:6;9657:9;9646:10;:21::i;:::-;-1:-1:-1;;;;;9628:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9614:13:0;;;;;;;:9;:13;;;;;:54;;;;9684:41;;;9703:21;:6;9714:9;9703:10;:21::i;:::-;9684:41;;1461:25:1;;;1449:2;1434:18;9684:41:0;;;;;;;7354:2379;7285:2448;;;:::o;1379:190::-;1465:7;1501:12;1493:6;;;;1485:29;;;;-1:-1:-1;;;1485:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1525:9:0;1537:5;1541:1;1537;:5;:::i;:::-;1525:17;1379:190;-1:-1:-1;;;;;1379:190:0:o;9849:483::-;5188:6;:13;;-1:-1:-1;;;;5188:13:0;-1:-1:-1;;;5188:13:0;;;9951:16:::1;::::0;;9965:1:::1;9951:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9951:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9951:16:0::1;9927:40;;9996:4;9978;9983:1;9978:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9978:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10022:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10022:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9978:7;;10022:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10012:4;10017:1;10012:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10012:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10087:15:::1;::::0;10055:62:::1;::::0;10072:4:::1;::::0;10087:15:::1;10105:11:::0;10055:8:::1;:62::i;:::-;10128:15;::::0;:196:::1;::::0;-1:-1:-1;;;10128:196:0;;-1:-1:-1;;;;;10128:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10209:11;;10128:15:::1;::::0;10251:4;;10278::::1;::::0;10298:15:::1;::::0;10128:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5224:6:0;:14;;-1:-1:-1;;;;5224:14:0;;;-1:-1:-1;;;;9849:483:0:o;10631:98::-;10688:16;;:33;;-1:-1:-1;;;;;10688:16:0;;;;:33;;;;;10714:6;;10688:16;:33;:16;:33;10714:6;10688:16;:33;;;;;;;;;;;;;;;;;;;1577:246;1635:7;1659:1;1664;1659:6;1655:47;;-1:-1:-1;1689:1:0;1682:8;;1655:47;1712:9;1724:5;1728:1;1724;:5;:::i;:::-;1712:17;-1:-1:-1;1757:1:0;1748:5;1752:1;1712:17;1748:5;:::i;:::-;:10;1740:56;;;;-1:-1:-1;;;1740:56:0;;17713:2:1;1740:56:0;;;17695:21:1;17752:2;17732:18;;;17725:30;17791:34;17771:18;;;17764:62;-1:-1:-1;;;17842:18:1;;;17835:31;17883:19;;1740:56:0;17511:397:1;1740:56:0;1814:1;1577:246;-1:-1:-1;;;1577:246:0:o;1831:132::-;1889:7;1916:39;1920:1;1923;1916:39;;;;;;;;;;;;;;;;;:3;:39::i;9743:98::-;9800:7;9827:1;9825;:3;9824:9;;9832:1;9824:9;;;-1:-1:-1;9830:1:0;9743:98;-1:-1:-1;9743:98:0:o;1048:179::-;1106:7;;1138:5;1142:1;1138;:5;:::i;:::-;1126:17;;1167:1;1162;:6;;1154:46;;;;-1:-1:-1;;;1154:46:0;;18115:2:1;1154:46:0;;;18097:21:1;18154:2;18134:18;;;18127:30;18193:29;18173:18;;;18166:57;18240:18;;1154:46:0;17913:351:1;1235:136:0;1293:7;1320:43;1324:1;1327;1320:43;;;;;;;;;;;;;;;;;:3;:43::i;1971:189::-;2057:7;2092:12;2085:5;2077:28;;;;-1:-1:-1;;;2077:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2116:9:0;2128:5;2132:1;2128;:5;:::i;14:423:1:-;56:3;94:5;88:12;121:6;116:3;109:19;146:1;156:162;170:6;167:1;164:13;156:162;;;232:4;288:13;;;284:22;;278:29;260:11;;;256:20;;249:59;185:12;156:162;;;160:3;363:1;356:4;347:6;342:3;338:16;334:27;327:38;426:4;419:2;415:7;410:2;402:6;398:15;394:29;389:3;385:39;381:50;374:57;;;14:423;;;;:::o;442:220::-;591:2;580:9;573:21;554:4;611:45;652:2;641:9;637:18;629:6;611:45;:::i;667:131::-;-1:-1:-1;;;;;742:31:1;;732:42;;722:70;;788:1;785;778:12;803:315;871:6;879;932:2;920:9;911:7;907:23;903:32;900:52;;;948:1;945;938:12;900:52;987:9;974:23;1006:31;1031:5;1006:31;:::i;:::-;1056:5;1108:2;1093:18;;;;1080:32;;-1:-1:-1;;;803:315:1:o;1497:456::-;1574:6;1582;1590;1643:2;1631:9;1622:7;1618:23;1614:32;1611:52;;;1659:1;1656;1649:12;1611:52;1698:9;1685:23;1717:31;1742:5;1717:31;:::i;:::-;1767:5;-1:-1:-1;1824:2:1;1809:18;;1796:32;1837:33;1796:32;1837:33;:::i;:::-;1497:456;;1889:7;;-1:-1:-1;;;1943:2:1;1928:18;;;;1915:32;;1497:456::o;2147:180::-;2206:6;2259:2;2247:9;2238:7;2234:23;2230:32;2227:52;;;2275:1;2272;2265:12;2227:52;-1:-1:-1;2298:23:1;;2147:180;-1:-1:-1;2147:180:1:o;2332:466::-;2588:1;2584;2579:3;2575:11;2571:19;2563:6;2559:32;2548:9;2541:51;2628:6;2623:2;2612:9;2608:18;2601:34;2671:3;2666:2;2655:9;2651:18;2644:31;2522:4;2692:46;2733:3;2722:9;2718:19;2710:6;2692:46;:::i;:::-;2684:54;;2786:4;2778:6;2774:17;2769:2;2758:9;2754:18;2747:45;2332:466;;;;;;;:::o;2803:247::-;2862:6;2915:2;2903:9;2894:7;2890:23;2886:32;2883:52;;;2931:1;2928;2921:12;2883:52;2970:9;2957:23;2989:31;3014:5;2989:31;:::i;3263:127::-;3324:10;3319:3;3315:20;3312:1;3305:31;3355:4;3352:1;3345:15;3379:4;3376:1;3369:15;3395:156;3461:20;;3521:4;3510:16;;3500:27;;3490:55;;3541:1;3538;3531:12;3490:55;3395:156;;;:::o;3556:1195::-;3649:6;3657;3665;3673;3726:3;3714:9;3705:7;3701:23;3697:33;3694:53;;;3743:1;3740;3733:12;3694:53;3782:9;3769:23;3801:31;3826:5;3801:31;:::i;:::-;3851:5;-1:-1:-1;3903:2:1;3888:18;;3875:32;;-1:-1:-1;3958:2:1;3943:18;;3930:32;3981:18;4011:14;;;4008:34;;;4038:1;4035;4028:12;4008:34;4076:6;4065:9;4061:22;4051:32;;4121:7;4114:4;4110:2;4106:13;4102:27;4092:55;;4143:1;4140;4133:12;4092:55;4179:2;4166:16;4201:2;4197;4194:10;4191:36;;;4207:18;;:::i;:::-;4282:2;4276:9;4250:2;4336:13;;-1:-1:-1;;4332:22:1;;;4356:2;4328:31;4324:40;4312:53;;;4380:18;;;4400:22;;;4377:46;4374:72;;;4426:18;;:::i;:::-;4466:10;4462:2;4455:22;4501:2;4493:6;4486:18;4541:7;4536:2;4531;4527;4523:11;4519:20;4516:33;4513:53;;;4562:1;4559;4552:12;4513:53;4618:2;4613;4609;4605:11;4600:2;4592:6;4588:15;4575:46;4663:1;4658:2;4653;4645:6;4641:15;4637:24;4630:35;4684:6;4674:16;;;;;;;4709:36;4741:2;4730:9;4726:18;4709:36;:::i;:::-;4699:46;;3556:1195;;;;;;;:::o;4756:388::-;4824:6;4832;4885:2;4873:9;4864:7;4860:23;4856:32;4853:52;;;4901:1;4898;4891:12;4853:52;4940:9;4927:23;4959:31;4984:5;4959:31;:::i;:::-;5009:5;-1:-1:-1;5066:2:1;5051:18;;5038:32;5079:33;5038:32;5079:33;:::i;:::-;5131:7;5121:17;;;4756:388;;;;;:::o;5149:356::-;5351:2;5333:21;;;5370:18;;;5363:30;5429:34;5424:2;5409:18;;5402:62;5496:2;5481:18;;5149:356::o;5700:127::-;5761:10;5756:3;5752:20;5749:1;5742:31;5792:4;5789:1;5782:15;5816:4;5813:1;5806:15;5832:416;5921:1;5958:5;5921:1;5972:270;5993:7;5983:8;5980:21;5972:270;;;6052:4;6048:1;6044:6;6040:17;6034:4;6031:27;6028:53;;;6061:18;;:::i;:::-;6111:7;6101:8;6097:22;6094:55;;;6131:16;;;;6094:55;6210:22;;;;6170:15;;;;5972:270;;;5976:3;5832:416;;;;;:::o;6253:806::-;6302:5;6332:8;6322:80;;-1:-1:-1;6373:1:1;6387:5;;6322:80;6421:4;6411:76;;-1:-1:-1;6458:1:1;6472:5;;6411:76;6503:4;6521:1;6516:59;;;;6589:1;6584:130;;;;6496:218;;6516:59;6546:1;6537:10;;6560:5;;;6584:130;6621:3;6611:8;6608:17;6605:43;;;6628:18;;:::i;:::-;-1:-1:-1;;6684:1:1;6670:16;;6699:5;;6496:218;;6798:2;6788:8;6785:16;6779:3;6773:4;6770:13;6766:36;6760:2;6750:8;6747:16;6742:2;6736:4;6733:12;6729:35;6726:77;6723:159;;;-1:-1:-1;6835:19:1;;;6867:5;;6723:159;6914:34;6939:8;6933:4;6914:34;:::i;:::-;6984:6;6980:1;6976:6;6972:19;6963:7;6960:32;6957:58;;;6995:18;;:::i;:::-;7033:20;;6253:806;-1:-1:-1;;;6253:806:1:o;7064:140::-;7122:5;7151:47;7192:4;7182:8;7178:19;7172:4;7151:47;:::i;7209:168::-;7282:9;;;7313;;7330:15;;;7324:22;;7310:37;7300:71;;7351:18;;:::i;7730:127::-;7791:10;7786:3;7782:20;7779:1;7772:31;7822:4;7819:1;7812:15;7846:4;7843:1;7836:15;7862:380;7941:1;7937:12;;;;7984;;;8005:61;;8059:4;8051:6;8047:17;8037:27;;8005:61;8112:2;8104:6;8101:14;8081:18;8078:38;8075:161;;8158:10;8153:3;8149:20;8146:1;8139:31;8193:4;8190:1;8183:15;8221:4;8218:1;8211:15;8372:517;8473:2;8468:3;8465:11;8462:421;;;8509:5;8506:1;8499:16;8553:4;8550:1;8540:18;8623:2;8611:10;8607:19;8604:1;8600:27;8594:4;8590:38;8659:4;8647:10;8644:20;8641:47;;;-1:-1:-1;8682:4:1;8641:47;8737:2;8732:3;8728:12;8725:1;8721:20;8715:4;8711:31;8701:41;;8792:81;8810:2;8803:5;8800:13;8792:81;;;8869:1;8855:16;;8836:1;8825:13;8792:81;;;8796:3;;8462:421;8372:517;;;:::o;9065:1341::-;9189:3;9183:10;9216:18;9208:6;9205:30;9202:56;;;9238:18;;:::i;:::-;9267:96;9356:6;9316:38;9348:4;9342:11;9316:38;:::i;:::-;9310:4;9267:96;:::i;:::-;9418:4;;9475:2;9464:14;;9492:1;9487:662;;;;10193:1;10210:6;10207:89;;;-1:-1:-1;10262:19:1;;;10256:26;10207:89;-1:-1:-1;;9022:1:1;9018:11;;;9014:24;9010:29;9000:40;9046:1;9042:11;;;8997:57;10309:81;;9457:943;;9487:662;8319:1;8312:14;;;8356:4;8343:18;;-1:-1:-1;;9523:20:1;;;9640:236;9654:7;9651:1;9648:14;9640:236;;;9743:19;;;9737:26;9722:42;;9835:27;;;;9803:1;9791:14;;;;9670:19;;9640:236;;;9644:3;9904:6;9895:7;9892:19;9889:201;;;9965:19;;;9959:26;-1:-1:-1;;10048:1:1;10044:14;;;10060:3;10040:24;10036:37;10032:42;10017:58;10002:74;;9889:201;;;10136:1;10127:6;10124:1;10120:14;10116:22;10110:4;10103:36;9457:943;;;;;9065:1341;;:::o;10763:251::-;10833:6;10886:2;10874:9;10865:7;10861:23;10857:32;10854:52;;;10902:1;10899;10892:12;10854:52;10934:9;10928:16;10953:31;10978:5;10953:31;:::i;11940:306::-;12028:6;12036;12044;12097:2;12085:9;12076:7;12072:23;12068:32;12065:52;;;12113:1;12110;12103:12;12065:52;12142:9;12136:16;12126:26;;12192:2;12181:9;12177:18;12171:25;12161:35;;12236:2;12225:9;12221:18;12215:25;12205:35;;11940:306;;;;;:::o;12530:277::-;12597:6;12650:2;12638:9;12629:7;12625:23;12621:32;12618:52;;;12666:1;12663;12656:12;12618:52;12698:9;12692:16;12751:5;12744:13;12737:21;12730:5;12727:32;12717:60;;12773:1;12770;12763:12;15194:125;15259:9;;;15280:10;;;15277:36;;;15293:18;;:::i;15679:135::-;15718:3;15739:17;;;15736:43;;15759:18;;:::i;:::-;-1:-1:-1;15806:1:1;15795:13;;15679:135::o;16171:128::-;16238:9;;;16259:11;;;16256:37;;;16273:18;;:::i;16304:980::-;16566:4;16614:3;16603:9;16599:19;16645:6;16634:9;16627:25;16671:2;16709:6;16704:2;16693:9;16689:18;16682:34;16752:3;16747:2;16736:9;16732:18;16725:31;16776:6;16811;16805:13;16842:6;16834;16827:22;16880:3;16869:9;16865:19;16858:26;;16919:2;16911:6;16907:15;16893:29;;16940:1;16950:195;16964:6;16961:1;16958:13;16950:195;;;17029:13;;-1:-1:-1;;;;;17025:39:1;17013:52;;17120:15;;;;17085:12;;;;17061:1;16979:9;16950:195;;;-1:-1:-1;;;;;;;17201:32:1;;;;17196:2;17181:18;;17174:60;-1:-1:-1;;;17265:3:1;17250:19;17243:35;17162:3;16304:980;-1:-1:-1;;;16304:980:1:o;17289:217::-;17329:1;17355;17345:132;;17399:10;17394:3;17390:20;17387:1;17380:31;17434:4;17431:1;17424:15;17462:4;17459:1;17452:15;17345:132;-1:-1:-1;17491:9:1;;17289:217::o

Swarm Source

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