ETH Price: $1,871.64 (-12.70%)
 

Overview

Max Total Supply

10,000,000,000 NLM

Holders

4

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
NLMContract

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2025-04-26
*/

// SPDX-License-Identifier: MIT

/*
Telegram: https://t.me/nextlevelmemeeth
Website: https://nextlevelmeme.com/
X: https://x.com/nextlevelmeme
*/

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);
    event TaxesUpdated(uint256 newBuyTax, uint256 newSellTax);

}

contract Ownable is Context {
    address public _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

}

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 NLMContract is Context, IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    address payable private constant _taxWallet = payable(0x4f9Db1A73d9434A87E6F0Cb9Ed92013cc203583B);
    string private constant _name = unicode"Next Level Meme";
    string private constant _symbol = unicode"NLM";

    uint256 private _initialBuyTax = 10;
    uint256 private _initialSellTax = 10;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private constant _preventSwapBefore = 5;
    uint256 private _buyCount = 0;
    uint256 private _avoidTaxesAtCount = 5;
    uint32 private _launchBlock;
    uint32 private _launchBuys;

    uint8 private constant _decimals = 9;
    uint256 private constant _supplyAmount = 10000000000 * 10 ** _decimals;
    uint256 public _maxTxAmount = (_supplyAmount * 2) / 100;
    uint256 public _maxWalletSize = (_supplyAmount * 2) / 100;
    uint256 public constant _taxSwapThreshold = (_supplyAmount * 1) / 100;
    uint256 public constant _maxTaxSwap = (_supplyAmount * 2) / 100;

    IUniswapV2Router02 private uniswapV2Router;
    address private immutable uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    event MaxWalletSizeAmountUpdated(uint _maxWalletSize);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() payable {
        _balances[_msgSender()] = _supplyAmount;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _supplyAmount);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

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

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

    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()] - amount
        );
        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()) {
            if (swapEnabled) taxAmount = (amount * ((_buyCount > _avoidTaxesAtCount) ? _finalBuyTax : _initialBuyTax)) / 100;
            if (uint32(block.number) == _launchBlock) require(_launchBuys++ < 50, "Excess launch snipers");

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

            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount = (amount * ((_buyCount > _avoidTaxesAtCount) ? _finalSellTax : _initialSellTax)) / 100;
            }

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

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)] + taxAmount;
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] = _balances[from] - amount;
        _balances[to] = _balances[to] + (amount - taxAmount);
        emit Transfer(from, to, amount - 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 sendETHToTaxWallet(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function openTrading() external onlyOwner {
        require(!tradingOpen, "Trading is already open");
        uint256 tokenAmount = balanceOf(_msgSender());
        require(tokenAmount > 0, "Caller has no tokens");
        _transfer(_msgSender(), address(this), tokenAmount);
        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 = uint32(block.number);
    }

    function renounceOwnership() public virtual onlyOwner {
        require(tradingOpen, "Open trading before renouncing.");

        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function setMaxTxAmount(uint256 newMaxTxAmountPercentage) external {
        require(_msgSender() == _taxWallet);
        require(newMaxTxAmountPercentage >= 2 && newMaxTxAmountPercentage <= 100, "Max tx must be between 2% and 100%");

        _maxTxAmount = (_supplyAmount * newMaxTxAmountPercentage) / 100;
        emit MaxTxAmountUpdated(_maxTxAmount);
    }

    function setMaxWalletSize(uint256 newMaxWalletSizePercentage) external {
        require(_msgSender() == _taxWallet);
        require(newMaxWalletSizePercentage >= 2 && newMaxWalletSizePercentage <= 100, "Max wallet must be between 2% and 100%");

        _maxWalletSize = (_supplyAmount * newMaxWalletSizePercentage) / 100;
        emit MaxWalletSizeAmountUpdated(_maxWalletSize);
    }

    function setTaxes(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        require(newBuyTax <= 10, "Buy tax cannot exceed 10%");
        require(newSellTax <= 10, "Sell tax cannot exceed 10%");
        require(_buyCount <= _avoidTaxesAtCount, "The buy count has surpassed the limit");

        _initialBuyTax = newBuyTax;
        _initialSellTax = newSellTax;
        emit TaxesUpdated(newBuyTax, newSellTax);
    }

    receive() external payable {}

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

    function xferEthFunds() external {
        require(_msgSender() == _taxWallet);
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            sendETHToTaxWallet(ethBalance);
        }
    }

}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"payable","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":false,"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"MaxWalletSizeAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"TaxesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTxAmountPercentage","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWalletSizePercentage","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"setTaxes","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":"xferEthFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"xferTaxFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052600a600455600a6005555f6006555f6007555f600855600560095560646009600a61002f91906105dd565b61003e906402540be4006105f2565b6100499060026105f2565b6100539190610609565b600b5560646100646009600a6105dd565b610073906402540be4006105f2565b61007e9060026105f2565b6100889190610609565b600c55600d805461ffff60a81b191690555f600e819055600f81905580546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36100ed6009600a6105dd565b6100fc906402540be4006105f2565b335f9081526001602081905260408220929092556003906101245f546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff19958616179055308082526003909352908120805484166001908117909155734f9db1a73d9434a87e6f0cb9ed92013cc203583b9091527f1b6449111990aad2b477a8f38de646f207597a2b9062c053036de6bd8328a7b7805490931617909155600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556101f791906101e36009600a6105dd565b6101f2906402540be4006105f2565b6103bc565b600d5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610247573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026b9190610628565b6001600160a01b031663c9c6539630600d5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ee9190610628565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610338573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061035c9190610628565b6001600160a01b0316608052335f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6103976009600a6105dd565b6103a6906402540be4006105f2565b60405190815260200160405180910390a361064e565b6001600160a01b0383166104235760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166104845760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161041a565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561053357808504811115610517576105176104e4565b600184161561052557908102905b60019390931c9280026104fc565b935093915050565b5f82610549575060016105d7565b8161055557505f6105d7565b816001811461056b576002811461057557610591565b60019150506105d7565b60ff841115610586576105866104e4565b50506001821b6105d7565b5060208310610133831016604e8410600b84101617156105b4575081810a6105d7565b6105c05f1984846104f8565b805f19048211156105d3576105d36104e4565b0290505b92915050565b5f6105eb60ff84168361053b565b9392505050565b80820281158282048414176105d7576105d76104e4565b5f8261062357634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215610638575f80fd5b81516001600160a01b03811681146105eb575f80fd5b608051611a3361067b5f395f81816109b801528181610f9b015281816110f401526111970152611a335ff3fe608060405260043610610134575f3560e01c80638da5cb5b116100a8578063bf474bed1161006d578063bf474bed1461035b578063c647b20e1461036f578063c9567bf91461038e578063dd62ed3e146103a2578063ea1644d5146103e6578063ec28438a14610405575f80fd5b80638da5cb5b146102ae5780638f9a55c0146102de57806395d89b41146102f3578063a9059cbb1461031e578063b2bdfa7b1461033d575f80fd5b8063313ce567116100f9578063313ce5671461020c57806344d1a8151461022757806365df7a361461023d57806370a0823114610251578063715018a6146102855780637d1db4a514610299575f80fd5b806306fdde031461013f578063095ea7b3146101885780630faee56f146101b757806318160ddd146101d957806323b872dd146101ed575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5060408051808201909152600f81526e4e657874204c6576656c204d656d6560881b60208201525b60405161017f9190611608565b60405180910390f35b348015610193575f80fd5b506101a76101a2366004611651565b610424565b604051901515815260200161017f565b3480156101c2575f80fd5b506101cb61043a565b60405190815260200161017f565b3480156101e4575f80fd5b506101cb61046f565b3480156101f8575f80fd5b506101a761020736600461167b565b610490565b348015610217575f80fd5b506040516009815260200161017f565b348015610232575f80fd5b5061023b6104e0565b005b348015610248575f80fd5b5061023b610512565b34801561025c575f80fd5b506101cb61026b3660046116b9565b6001600160a01b03165f9081526001602052604090205490565b348015610290575f80fd5b5061023b610563565b3480156102a4575f80fd5b506101cb600b5481565b3480156102b9575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161017f565b3480156102e9575f80fd5b506101cb600c5481565b3480156102fe575f80fd5b506040805180820190915260038152624e4c4d60e81b6020820152610172565b348015610329575f80fd5b506101a7610338366004611651565b610636565b348015610348575f80fd5b505f546102c6906001600160a01b031681565b348015610366575f80fd5b506101cb610642565b34801561037a575f80fd5b5061023b6103893660046116d4565b61066a565b348015610399575f80fd5b5061023b6107de565b3480156103ad575f80fd5b506101cb6103bc3660046116f4565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103f1575f80fd5b5061023b61040036600461172b565b610a55565b348015610410575f80fd5b5061023b61041f36600461172b565b610b4f565b5f610430338484610c3e565b5060015b92915050565b60646104486009600a611839565b610457906402540be400611847565b610462906002611847565b61046c919061185e565b81565b5f61047c6009600a611839565b61048b906402540be400611847565b905090565b5f61049c848484610d61565b6001600160a01b0384165f908152600260209081526040808320338085529252909120546104d69186916104d190869061187d565b610c3e565b5060019392505050565b33734f9db1a73d9434a87e6f0cb9ed92013cc203583b146104ff575f80fd5b47801561050f5761050f81611443565b50565b33734f9db1a73d9434a87e6f0cb9ed92013cc203583b14610531575f80fd5b305f90815260016020526040902054801561054f5761054f81611481565b47801561055f5761055f81611443565b5050565b5f546001600160a01b031633146105955760405162461bcd60e51b815260040161058c90611890565b60405180910390fd5b600d54600160a01b900460ff166105ee5760405162461bcd60e51b815260206004820152601f60248201527f4f70656e2074726164696e67206265666f72652072656e6f756e63696e672e00604482015260640161058c565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f610430338484610d61565b60646106506009600a611839565b61065f906402540be400611847565b610462906001611847565b5f546001600160a01b031633146106935760405162461bcd60e51b815260040161058c90611890565b600a8211156106e45760405162461bcd60e51b815260206004820152601960248201527f427579207461782063616e6e6f74206578636565642031302500000000000000604482015260640161058c565b600a8111156107355760405162461bcd60e51b815260206004820152601a60248201527f53656c6c207461782063616e6e6f742065786365656420313025000000000000604482015260640161058c565b60095460085411156107975760405162461bcd60e51b815260206004820152602560248201527f5468652062757920636f756e74206861732073757270617373656420746865206044820152641b1a5b5a5d60da1b606482015260840161058c565b6004829055600581905560408051838152602081018390527f35d461df023e70886ad5e68610133ecb7d637c2263453f6ea50daf699cb31ed4910160405180910390a15050565b5f546001600160a01b031633146108075760405162461bcd60e51b815260040161058c90611890565b600d54600160a01b900460ff16156108615760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161058c565b5f61086b3361026b565b90505f81116108b35760405162461bcd60e51b815260206004820152601460248201527343616c6c657220686173206e6f20746f6b656e7360601b604482015260640161058c565b6108be333083610d61565b600d546001600160a01b031663f305d71947306108ef816001600160a01b03165f9081526001602052604090205490565b5f806109025f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610968573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061098d91906118c5565b5050600d5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201527f0000000000000000000000000000000000000000000000000000000000000000909116915063095ea7b3906044016020604051808303815f875af1158015610a01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2591906118f0565b5050600d805462ff00ff60a01b19166201000160a01b179055600a805463ffffffff19164363ffffffff16179055565b33734f9db1a73d9434a87e6f0cb9ed92013cc203583b14610a74575f80fd5b60028110158015610a86575060648111155b610ae15760405162461bcd60e51b815260206004820152602660248201527f4d61782077616c6c6574206d757374206265206265747765656e20322520616e60448201526564203130302560d01b606482015260840161058c565b606481610af06009600a611839565b610aff906402540be400611847565b610b099190611847565b610b13919061185e565b600c8190556040519081527f8d7078a1314ded864e4141a9bdfcd003109e74b59b41b69823e422a1bbeb0aff906020015b60405180910390a150565b33734f9db1a73d9434a87e6f0cb9ed92013cc203583b14610b6e575f80fd5b60028110158015610b80575060648111155b610bd75760405162461bcd60e51b815260206004820152602260248201527f4d6178207478206d757374206265206265747765656e20322520616e64203130604482015261302560f01b606482015260840161058c565b606481610be66009600a611839565b610bf5906402540be400611847565b610bff9190611847565b610c09919061185e565b600b8190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf90602001610b44565b6001600160a01b038316610ca05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161058c565b6001600160a01b038216610d015760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161058c565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610dc55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161058c565b6001600160a01b038216610e275760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161058c565b5f8111610e885760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161058c565b5f80546001600160a01b03858116911614801590610eb357505f546001600160a01b03848116911614155b1561130357600d54600160b01b900460ff1615610efa57606460095460085411610edf57600454610ee3565b6006545b610eed9084611847565b610ef7919061185e565b90505b600a5463ffffffff9081164390911603610f9957600a805460329164010000000090910463ffffffff16906004610f308361190f565b91906101000a81548163ffffffff021916908363ffffffff16021790555063ffffffff1610610f995760405162461bcd60e51b8152602060048201526015602482015274457863657373206c61756e636820736e697065727360581b604482015260640161058c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316148015610fe85750600d546001600160a01b03848116911614155b801561100c57506001600160a01b0383165f9081526003602052604090205460ff16155b156110f257600b548211156110635760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161058c565b600c5482611085856001600160a01b03165f9081526001602052604090205490565b61108f9190611933565b11156110dd5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161058c565b60088054905f6110ec83611946565b91905055505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614801561113c57506001600160a01b0384163014155b15611171576064600954600854116111565760055461115a565b6007545b6111649084611847565b61116e919061185e565b90505b305f90815260016020526040902054600d54600160a81b900460ff161580156111cb57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316145b80156111e05750600d54600160b01b900460ff165b801561121c575060646111f56009600a611839565b611204906402540be400611847565b61120f906001611847565b611219919061185e565b81115b801561122a57506005600854115b1561130157600f5443111561123e575f600e555b6003600e54106112905760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000604482015260640161058c565b6112d76112d2846112cd8460646112a96009600a611839565b6112b8906402540be400611847565b6112c3906002611847565b6112cd919061185e565b6115f1565b611481565b4780156112e7576112e747611443565b600e8054905f6112f683611946565b909155505043600f55505b505b801561137c57305f90815260016020526040902054611323908290611933565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113739085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461139f90839061187d565b6001600160a01b0385165f908152600160205260409020556113c1818361187d565b6001600160a01b0384165f908152600160205260409020546113e39190611933565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61142c848661187d565b60405190815260200160405180910390a350505050565b604051734f9db1a73d9434a87e6f0cb9ed92013cc203583b9082156108fc029083905f818181858888f1935050505015801561055f573d5f803e3d5ffd5b600d805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106114c7576114c761195e565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561151e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115429190611972565b816001815181106115555761155561195e565b6001600160a01b039283166020918202929092010152600d5461157b9130911684610c3e565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906115b39085905f9086903090429060040161198d565b5f604051808303815f87803b1580156115ca575f80fd5b505af11580156115dc573d5f803e3d5ffd5b5050600d805460ff60a81b1916905550505050565b5f8183116115ff5782611601565b815b9392505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461050f575f80fd5b5f8060408385031215611662575f80fd5b823561166d8161163d565b946020939093013593505050565b5f805f6060848603121561168d575f80fd5b83356116988161163d565b925060208401356116a88161163d565b929592945050506040919091013590565b5f602082840312156116c9575f80fd5b81356116018161163d565b5f80604083850312156116e5575f80fd5b50508035926020909101359150565b5f8060408385031215611705575f80fd5b82356117108161163d565b915060208301356117208161163d565b809150509250929050565b5f6020828403121561173b575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156117915780850481111561177557611775611742565b600184161561178357908102905b60019390931c92800261175a565b935093915050565b5f826117a757506001610434565b816117b357505f610434565b81600181146117c957600281146117d3576117ef565b6001915050610434565b60ff8411156117e4576117e4611742565b50506001821b610434565b5060208310610133831016604e8410600b8410161715611812575081810a610434565b61181e5f198484611756565b805f190482111561183157611831611742565b029392505050565b5f61160160ff841683611799565b808202811582820484141761043457610434611742565b5f8261187857634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561043457610434611742565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f606084860312156118d7575f80fd5b5050815160208301516040909301519094929350919050565b5f60208284031215611900575f80fd5b81518015158114611601575f80fd5b5f63ffffffff821663ffffffff810361192a5761192a611742565b60010192915050565b8082018082111561043457610434611742565b5f6001820161195757611957611742565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611982575f80fd5b81516116018161163d565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156119dd5783516001600160a01b03168352602093840193909201916001016119b6565b50506001600160a01b03959095166060840152505060800152939250505056fea2646970667358221220c9b57c04af9b6ad6e9bea2924af98fec65dd04cf9aee1d15a96e874414a7ad6864736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610134575f3560e01c80638da5cb5b116100a8578063bf474bed1161006d578063bf474bed1461035b578063c647b20e1461036f578063c9567bf91461038e578063dd62ed3e146103a2578063ea1644d5146103e6578063ec28438a14610405575f80fd5b80638da5cb5b146102ae5780638f9a55c0146102de57806395d89b41146102f3578063a9059cbb1461031e578063b2bdfa7b1461033d575f80fd5b8063313ce567116100f9578063313ce5671461020c57806344d1a8151461022757806365df7a361461023d57806370a0823114610251578063715018a6146102855780637d1db4a514610299575f80fd5b806306fdde031461013f578063095ea7b3146101885780630faee56f146101b757806318160ddd146101d957806323b872dd146101ed575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5060408051808201909152600f81526e4e657874204c6576656c204d656d6560881b60208201525b60405161017f9190611608565b60405180910390f35b348015610193575f80fd5b506101a76101a2366004611651565b610424565b604051901515815260200161017f565b3480156101c2575f80fd5b506101cb61043a565b60405190815260200161017f565b3480156101e4575f80fd5b506101cb61046f565b3480156101f8575f80fd5b506101a761020736600461167b565b610490565b348015610217575f80fd5b506040516009815260200161017f565b348015610232575f80fd5b5061023b6104e0565b005b348015610248575f80fd5b5061023b610512565b34801561025c575f80fd5b506101cb61026b3660046116b9565b6001600160a01b03165f9081526001602052604090205490565b348015610290575f80fd5b5061023b610563565b3480156102a4575f80fd5b506101cb600b5481565b3480156102b9575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161017f565b3480156102e9575f80fd5b506101cb600c5481565b3480156102fe575f80fd5b506040805180820190915260038152624e4c4d60e81b6020820152610172565b348015610329575f80fd5b506101a7610338366004611651565b610636565b348015610348575f80fd5b505f546102c6906001600160a01b031681565b348015610366575f80fd5b506101cb610642565b34801561037a575f80fd5b5061023b6103893660046116d4565b61066a565b348015610399575f80fd5b5061023b6107de565b3480156103ad575f80fd5b506101cb6103bc3660046116f4565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103f1575f80fd5b5061023b61040036600461172b565b610a55565b348015610410575f80fd5b5061023b61041f36600461172b565b610b4f565b5f610430338484610c3e565b5060015b92915050565b60646104486009600a611839565b610457906402540be400611847565b610462906002611847565b61046c919061185e565b81565b5f61047c6009600a611839565b61048b906402540be400611847565b905090565b5f61049c848484610d61565b6001600160a01b0384165f908152600260209081526040808320338085529252909120546104d69186916104d190869061187d565b610c3e565b5060019392505050565b33734f9db1a73d9434a87e6f0cb9ed92013cc203583b146104ff575f80fd5b47801561050f5761050f81611443565b50565b33734f9db1a73d9434a87e6f0cb9ed92013cc203583b14610531575f80fd5b305f90815260016020526040902054801561054f5761054f81611481565b47801561055f5761055f81611443565b5050565b5f546001600160a01b031633146105955760405162461bcd60e51b815260040161058c90611890565b60405180910390fd5b600d54600160a01b900460ff166105ee5760405162461bcd60e51b815260206004820152601f60248201527f4f70656e2074726164696e67206265666f72652072656e6f756e63696e672e00604482015260640161058c565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f610430338484610d61565b60646106506009600a611839565b61065f906402540be400611847565b610462906001611847565b5f546001600160a01b031633146106935760405162461bcd60e51b815260040161058c90611890565b600a8211156106e45760405162461bcd60e51b815260206004820152601960248201527f427579207461782063616e6e6f74206578636565642031302500000000000000604482015260640161058c565b600a8111156107355760405162461bcd60e51b815260206004820152601a60248201527f53656c6c207461782063616e6e6f742065786365656420313025000000000000604482015260640161058c565b60095460085411156107975760405162461bcd60e51b815260206004820152602560248201527f5468652062757920636f756e74206861732073757270617373656420746865206044820152641b1a5b5a5d60da1b606482015260840161058c565b6004829055600581905560408051838152602081018390527f35d461df023e70886ad5e68610133ecb7d637c2263453f6ea50daf699cb31ed4910160405180910390a15050565b5f546001600160a01b031633146108075760405162461bcd60e51b815260040161058c90611890565b600d54600160a01b900460ff16156108615760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161058c565b5f61086b3361026b565b90505f81116108b35760405162461bcd60e51b815260206004820152601460248201527343616c6c657220686173206e6f20746f6b656e7360601b604482015260640161058c565b6108be333083610d61565b600d546001600160a01b031663f305d71947306108ef816001600160a01b03165f9081526001602052604090205490565b5f806109025f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610968573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061098d91906118c5565b5050600d5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201527f000000000000000000000000b7b8eed65e477658a1aafe2128a9d530dc445519909116915063095ea7b3906044016020604051808303815f875af1158015610a01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2591906118f0565b5050600d805462ff00ff60a01b19166201000160a01b179055600a805463ffffffff19164363ffffffff16179055565b33734f9db1a73d9434a87e6f0cb9ed92013cc203583b14610a74575f80fd5b60028110158015610a86575060648111155b610ae15760405162461bcd60e51b815260206004820152602660248201527f4d61782077616c6c6574206d757374206265206265747765656e20322520616e60448201526564203130302560d01b606482015260840161058c565b606481610af06009600a611839565b610aff906402540be400611847565b610b099190611847565b610b13919061185e565b600c8190556040519081527f8d7078a1314ded864e4141a9bdfcd003109e74b59b41b69823e422a1bbeb0aff906020015b60405180910390a150565b33734f9db1a73d9434a87e6f0cb9ed92013cc203583b14610b6e575f80fd5b60028110158015610b80575060648111155b610bd75760405162461bcd60e51b815260206004820152602260248201527f4d6178207478206d757374206265206265747765656e20322520616e64203130604482015261302560f01b606482015260840161058c565b606481610be66009600a611839565b610bf5906402540be400611847565b610bff9190611847565b610c09919061185e565b600b8190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf90602001610b44565b6001600160a01b038316610ca05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161058c565b6001600160a01b038216610d015760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161058c565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610dc55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161058c565b6001600160a01b038216610e275760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161058c565b5f8111610e885760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161058c565b5f80546001600160a01b03858116911614801590610eb357505f546001600160a01b03848116911614155b1561130357600d54600160b01b900460ff1615610efa57606460095460085411610edf57600454610ee3565b6006545b610eed9084611847565b610ef7919061185e565b90505b600a5463ffffffff9081164390911603610f9957600a805460329164010000000090910463ffffffff16906004610f308361190f565b91906101000a81548163ffffffff021916908363ffffffff16021790555063ffffffff1610610f995760405162461bcd60e51b8152602060048201526015602482015274457863657373206c61756e636820736e697065727360581b604482015260640161058c565b7f000000000000000000000000b7b8eed65e477658a1aafe2128a9d530dc4455196001600160a01b0316846001600160a01b0316148015610fe85750600d546001600160a01b03848116911614155b801561100c57506001600160a01b0383165f9081526003602052604090205460ff16155b156110f257600b548211156110635760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161058c565b600c5482611085856001600160a01b03165f9081526001602052604090205490565b61108f9190611933565b11156110dd5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161058c565b60088054905f6110ec83611946565b91905055505b7f000000000000000000000000b7b8eed65e477658a1aafe2128a9d530dc4455196001600160a01b0316836001600160a01b031614801561113c57506001600160a01b0384163014155b15611171576064600954600854116111565760055461115a565b6007545b6111649084611847565b61116e919061185e565b90505b305f90815260016020526040902054600d54600160a81b900460ff161580156111cb57507f000000000000000000000000b7b8eed65e477658a1aafe2128a9d530dc4455196001600160a01b0316846001600160a01b0316145b80156111e05750600d54600160b01b900460ff165b801561121c575060646111f56009600a611839565b611204906402540be400611847565b61120f906001611847565b611219919061185e565b81115b801561122a57506005600854115b1561130157600f5443111561123e575f600e555b6003600e54106112905760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000604482015260640161058c565b6112d76112d2846112cd8460646112a96009600a611839565b6112b8906402540be400611847565b6112c3906002611847565b6112cd919061185e565b6115f1565b611481565b4780156112e7576112e747611443565b600e8054905f6112f683611946565b909155505043600f55505b505b801561137c57305f90815260016020526040902054611323908290611933565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113739085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461139f90839061187d565b6001600160a01b0385165f908152600160205260409020556113c1818361187d565b6001600160a01b0384165f908152600160205260409020546113e39190611933565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61142c848661187d565b60405190815260200160405180910390a350505050565b604051734f9db1a73d9434a87e6f0cb9ed92013cc203583b9082156108fc029083905f818181858888f1935050505015801561055f573d5f803e3d5ffd5b600d805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106114c7576114c761195e565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561151e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115429190611972565b816001815181106115555761155561195e565b6001600160a01b039283166020918202929092010152600d5461157b9130911684610c3e565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906115b39085905f9086903090429060040161198d565b5f604051808303815f87803b1580156115ca575f80fd5b505af11580156115dc573d5f803e3d5ffd5b5050600d805460ff60a81b1916905550505050565b5f8183116115ff5782611601565b815b9392505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461050f575f80fd5b5f8060408385031215611662575f80fd5b823561166d8161163d565b946020939093013593505050565b5f805f6060848603121561168d575f80fd5b83356116988161163d565b925060208401356116a88161163d565b929592945050506040919091013590565b5f602082840312156116c9575f80fd5b81356116018161163d565b5f80604083850312156116e5575f80fd5b50508035926020909101359150565b5f8060408385031215611705575f80fd5b82356117108161163d565b915060208301356117208161163d565b809150509250929050565b5f6020828403121561173b575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156117915780850481111561177557611775611742565b600184161561178357908102905b60019390931c92800261175a565b935093915050565b5f826117a757506001610434565b816117b357505f610434565b81600181146117c957600281146117d3576117ef565b6001915050610434565b60ff8411156117e4576117e4611742565b50506001821b610434565b5060208310610133831016604e8410600b8410161715611812575081810a610434565b61181e5f198484611756565b805f190482111561183157611831611742565b029392505050565b5f61160160ff841683611799565b808202811582820484141761043457610434611742565b5f8261187857634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561043457610434611742565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f606084860312156118d7575f80fd5b5050815160208301516040909301519094929350919050565b5f60208284031215611900575f80fd5b81518015158114611601575f80fd5b5f63ffffffff821663ffffffff810361192a5761192a611742565b60010192915050565b8082018082111561043457610434611742565b5f6001820161195757611957611742565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611982575f80fd5b81516116018161163d565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156119dd5783516001600160a01b03168352602093840193909201916001016119b6565b50506001600160a01b03959095166060840152505060800152939250505056fea2646970667358221220c9b57c04af9b6ad6e9bea2924af98fec65dd04cf9aee1d15a96e874414a7ad6864736f6c634300081a0033

Deployed Bytecode Sourcemap

2332:9909:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4631:83;;;;;;;;;;-1:-1:-1;4701:5:0;;;;;;;;;;;;-1:-1:-1;;;4701:5:0;;;;4631:83;;;;;;;:::i;:::-;;;;;;;;5470:161;;;;;;;;;;-1:-1:-1;5470:161:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;5470:161:0;945:187:1;3484:63:0;;;;;;;;;;;;;:::i;:::-;;;1283:25:1;;;1271:2;1256:18;3484:63:0;1137:177:1;4908:101:0;;;;;;;;;;;;;:::i;5639:316::-;;;;;;;;;;-1:-1:-1;5639:316:0;;;;;:::i;:::-;;:::i;4817:83::-;;;;;;;;;;-1:-1:-1;4817:83:0;;3197:1;1974:36:1;;1962:2;1947:18;4817:83:0;1832:184:1;12009:227:0;;;;;;;;;;;;;:::i;:::-;;11587:414;;;;;;;;;;;;;:::i;5017:119::-;;;;;;;;;;-1:-1:-1;5017:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5110:18:0;5083:7;5110:18;;;:9;:18;;;;;;;5017:119;10107:216;;;;;;;;;;;;;:::i;3282:55::-;;;;;;;;;;;;;;;;1349:79;;;;;;;;;;-1:-1:-1;1387:7:0;1414:6;-1:-1:-1;;;;;1414:6:0;1349:79;;;-1:-1:-1;;;;;2437:32:1;;;2419:51;;2407:2;2392:18;1349:79:0;2273:203:1;3344:57:0;;;;;;;;;;;;;;;;4722:87;;;;;;;;;;-1:-1:-1;4794:7:0;;;;;;;;;;;;-1:-1:-1;;;4794:7:0;;;;4722:87;;5144:167;;;;;;;;;;-1:-1:-1;5144:167:0;;;;;:::i;:::-;;:::i;1111:21::-;;;;;;;;;;-1:-1:-1;1111:21:0;;;;-1:-1:-1;;;;;1111:21:0;;;3408:69;;;;;;;;;;;;;:::i;11107:435::-;;;;;;;;;;-1:-1:-1;11107:435:0;;;;;:::i;:::-;;:::i;9391:708::-;;;;;;;;;;;;;:::i;5319:143::-;;;;;;;;;;-1:-1:-1;5319:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5427:18:0;;;5400:7;5427:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5319:143;10706:393;;;;;;;;;;-1:-1:-1;10706:393:0;;;;;:::i;:::-;;:::i;10331:367::-;;;;;;;;;;-1:-1:-1;10331:367:0;;;;;:::i;:::-;;:::i;5470:161::-;5545:4;5562:39;296:10;5585:7;5594:6;5562:8;:39::i;:::-;-1:-1:-1;5619:4:0;5470:161;;;;;:::o;3484:63::-;3544:3;3260:15;3197:1;3260:2;:15;:::i;:::-;3246:29;;:11;:29;:::i;:::-;3523:17;;3539:1;3523:17;:::i;:::-;3522:25;;;;:::i;:::-;3484:63;:::o;4908:101::-;4961:7;3260:15;3197:1;3260:2;:15;:::i;:::-;3246:29;;:11;:29;:::i;:::-;4981:20;;4908:101;:::o;5639:316::-;5737:4;5754:36;5764:6;5772:9;5783:6;5754:9;:36::i;:::-;-1:-1:-1;;;;;5872:19:0;;;;;;:11;:19;;;;;;;;296:10;5872:33;;;;;;;;;5801:124;;5824:6;;5872:42;;5908:6;;5872:42;:::i;:::-;5801:8;:124::i;:::-;-1:-1:-1;5943:4:0;5639:316;;;;;:::o;12009:227::-;296:10;2626:42;12061:26;12053:35;;;;;;12120:21;12156:14;;12152:77;;12187:30;12206:10;12187:18;:30::i;:::-;12042:194;12009:227::o;11587:414::-;296:10;2626:42;11643:26;11635:35;;;;;;11726:4;11685:20;5110:18;;;:9;:18;;;;;;11751:16;;11747:87;;11788:30;11805:12;11788:16;:30::i;:::-;11869:21;11909:14;;11905:85;;11944:30;11963:10;11944:18;:30::i;:::-;11620:381;;11587:414::o;10107:216::-;1476:6;;-1:-1:-1;;;;;1476:6:0;296:10;1476:22;1468:67;;;;-1:-1:-1;;;1468:67:0;;;;;;;:::i;:::-;;;;;;;;;10180:11:::1;::::0;-1:-1:-1;;;10180:11:0;::::1;;;10172:55;;;::::0;-1:-1:-1;;;10172:55:0;;6111:2:1;10172:55:0::1;::::0;::::1;6093:21:1::0;6150:2;6130:18;;;6123:30;6189:33;6169:18;;;6162:61;6240:18;;10172:55:0::1;5909:355:1::0;10172:55:0::1;10282:1;10266:6:::0;;10245:40:::1;::::0;-1:-1:-1;;;;;10266:6:0;;::::1;::::0;10245:40:::1;::::0;10282:1;;10245:40:::1;10313:1;10296:19:::0;;-1:-1:-1;;;;;;10296:19:0::1;::::0;;10107:216::o;5144:167::-;5222:4;5239:42;296:10;5263:9;5274:6;5239:9;:42::i;3408:69::-;3474:3;3260:15;3197:1;3260:2;:15;:::i;:::-;3246:29;;:11;:29;:::i;:::-;3453:17;;3469:1;3453:17;:::i;11107:435::-;1476:6;;-1:-1:-1;;;;;1476:6:0;296:10;1476:22;1468:67;;;;-1:-1:-1;;;1468:67:0;;;;;;;:::i;:::-;11215:2:::1;11202:9;:15;;11194:53;;;::::0;-1:-1:-1;;;11194:53:0;;6471:2:1;11194:53:0::1;::::0;::::1;6453:21:1::0;6510:2;6490:18;;;6483:30;6549:27;6529:18;;;6522:55;6594:18;;11194:53:0::1;6269:349:1::0;11194:53:0::1;11280:2;11266:10;:16;;11258:55;;;::::0;-1:-1:-1;;;11258:55:0;;6825:2:1;11258:55:0::1;::::0;::::1;6807:21:1::0;6864:2;6844:18;;;6837:30;6903:28;6883:18;;;6876:56;6949:18;;11258:55:0::1;6623:350:1::0;11258:55:0::1;11345:18;;11332:9;;:31;;11324:81;;;::::0;-1:-1:-1;;;11324:81:0;;7180:2:1;11324:81:0::1;::::0;::::1;7162:21:1::0;7219:2;7199:18;;;7192:30;7258:34;7238:18;;;7231:62;-1:-1:-1;;;7309:18:1;;;7302:35;7354:19;;11324:81:0::1;6978:401:1::0;11324:81:0::1;11418:14;:26:::0;;;11455:15:::1;:28:::0;;;11499:35:::1;::::0;;7558:25:1;;;7614:2;7599:18;;7592:34;;;11499:35:0::1;::::0;7531:18:1;11499:35:0::1;;;;;;;11107:435:::0;;:::o;9391:708::-;1476:6;;-1:-1:-1;;;;;1476:6:0;296:10;1476:22;1468:67;;;;-1:-1:-1;;;1468:67:0;;;;;;;:::i;:::-;9453:11:::1;::::0;-1:-1:-1;;;9453:11:0;::::1;;;9452:12;9444:48;;;::::0;-1:-1:-1;;;9444:48:0;;7839:2:1;9444:48:0::1;::::0;::::1;7821:21:1::0;7878:2;7858:18;;;7851:30;7917:25;7897:18;;;7890:53;7960:18;;9444:48:0::1;7637:347:1::0;9444:48:0::1;9503:19;9525:23;296:10:::0;9535:12:::1;216:98:::0;9525:23:::1;9503:45;;9581:1;9567:11;:15;9559:48;;;::::0;-1:-1:-1;;;9559:48:0;;8191:2:1;9559:48:0::1;::::0;::::1;8173:21:1::0;8230:2;8210:18;;;8203:30;-1:-1:-1;;;8249:18:1;;;8242:50;8309:18;;9559:48:0::1;7989:344:1::0;9559:48:0::1;9618:51;296:10:::0;9650:4:::1;9657:11;9618:9;:51::i;:::-;9680:15;::::0;-1:-1:-1;;;;;9680:15:0::1;:31;9720:21;9766:4;9786:24;9766:4:::0;-1:-1:-1;;;;;5110:18:0;5083:7;5110:18;;;:9;:18;;;;;;;5017:119;9786:24:::1;9825:1;9841::::0;9857:7:::1;1387::::0;1414:6;-1:-1:-1;;;;;1414:6:0;;1349:79;9857:7:::1;9680:225;::::0;::::1;::::0;;;-1:-1:-1;;;;;;9680:225:0;;;-1:-1:-1;;;;;8659:32:1;;;9680:225:0::1;::::0;::::1;8641:51:1::0;8708:18;;;8701:34;;;;8751:18;;;8744:34;;;;8794:18;;;8787:34;8858:32;;;8837:19;;;8830:61;9879:15:0::1;8907:19:1::0;;;8900:35;8613:19;;9680:225:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9954:15:0::1;::::0;9916:71:::1;::::0;-1:-1:-1;;;9916:71:0;;-1:-1:-1;;;;;9954:15:0;;::::1;9916:71;::::0;::::1;9581:51:1::0;-1:-1:-1;;9648:18:1;;;9641:34;9923:13:0::1;9916:29:::0;;::::1;::::0;-1:-1:-1;9916:29:0::1;::::0;9554:18:1;;9916:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9998:11:0::1;:18:::0;;-1:-1:-1;;;;10027:18:0;-1:-1:-1;;;10027:18:0;;;10056:12:::1;:35:::0;;-1:-1:-1;;10056:35:0::1;10078:12;10056:35;;;::::0;;9391:708::o;10706:393::-;296:10;2626:42;10796:26;10788:35;;;;;;10872:1;10842:26;:31;;:68;;;;;10907:3;10877:26;:33;;10842:68;10834:119;;;;-1:-1:-1;;;10834:119:0;;10170:2:1;10834:119:0;;;10152:21:1;10209:2;10189:18;;;10182:30;10248:34;10228:18;;;10221:62;-1:-1:-1;;;10299:18:1;;;10292:36;10345:19;;10834:119:0;9968:402:1;10834:119:0;11030:3;11000:26;3260:15;3197:1;3260:2;:15;:::i;:::-;3246:29;;:11;:29;:::i;:::-;10984:42;;;;:::i;:::-;10983:50;;;;:::i;:::-;10966:14;:67;;;11049:42;;1283:25:1;;;11049:42:0;;1271:2:1;1256:18;11049:42:0;;;;;;;;10706:393;:::o;10331:367::-;296:10;2626:42;10417:26;10409:35;;;;;;10491:1;10463:24;:29;;:64;;;;;10524:3;10496:24;:31;;10463:64;10455:111;;;;-1:-1:-1;;;10455:111:0;;10577:2:1;10455:111:0;;;10559:21:1;10616:2;10596:18;;;10589:30;10655:34;10635:18;;;10628:62;-1:-1:-1;;;10706:18:1;;;10699:32;10748:19;;10455:111:0;10375:398:1;10455:111:0;10639:3;10611:24;3260:15;3197:1;3260:2;:15;:::i;:::-;3246:29;;:11;:29;:::i;:::-;10595:40;;;;:::i;:::-;10594:48;;;;:::i;:::-;10579:12;:63;;;10658:32;;1283:25:1;;;10658:32:0;;1271:2:1;1256:18;10658:32:0;1137:177:1;5963:335:0;-1:-1:-1;;;;;6056:19:0;;6048:68;;;;-1:-1:-1;;;6048:68:0;;10980:2:1;6048:68:0;;;10962:21:1;11019:2;10999:18;;;10992:30;11058:34;11038:18;;;11031:62;-1:-1:-1;;;11109:18:1;;;11102:34;11153:19;;6048:68:0;10778:400:1;6048:68:0;-1:-1:-1;;;;;6135:21:0;;6127:68;;;;-1:-1:-1;;;6127:68:0;;11385:2:1;6127:68:0;;;11367:21:1;11424:2;11404:18;;;11397:30;11463:34;11443:18;;;11436:62;-1:-1:-1;;;11514:18:1;;;11507:32;11556:19;;6127:68:0;11183:398:1;6127:68:0;-1:-1:-1;;;;;6206:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6258:32;;1283:25:1;;;6258:32:0;;1256:18:1;6258:32:0;;;;;;;5963:335;;;:::o;6306:2365::-;-1:-1:-1;;;;;6394:18:0;;6386:68;;;;-1:-1:-1;;;6386:68:0;;11788:2:1;6386:68:0;;;11770:21:1;11827:2;11807:18;;;11800:30;11866:34;11846:18;;;11839:62;-1:-1:-1;;;11917:18:1;;;11910:35;11962:19;;6386:68:0;11586:401:1;6386:68:0;-1:-1:-1;;;;;6473:16:0;;6465:64;;;;-1:-1:-1;;;6465:64:0;;12194:2:1;6465:64:0;;;12176:21:1;12233:2;12213:18;;;12206:30;12272:34;12252:18;;;12245:62;-1:-1:-1;;;12323:18:1;;;12316:33;12366:19;;6465:64:0;11992:399:1;6465:64:0;6557:1;6548:6;:10;6540:64;;;;-1:-1:-1;;;6540:64:0;;12598:2:1;6540:64:0;;;12580:21:1;12637:2;12617:18;;;12610:30;12676:34;12656:18;;;12649:62;-1:-1:-1;;;12727:18:1;;;12720:39;12776:19;;6540:64:0;12396:405:1;6540:64:0;6615:17;1414:6;;-1:-1:-1;;;;;6651:15:0;;;1414:6;;6651:15;;;;:32;;-1:-1:-1;1387:7:0;1414:6;-1:-1:-1;;;;;6670:13:0;;;1414:6;;6670:13;;6651:32;6647:1666;;;6704:11;;-1:-1:-1;;;6704:11:0;;;;6700:112;;;6809:3;6753:18;;6741:9;;:30;6740:64;;6790:14;;6740:64;;;6775:12;;6740:64;6730:75;;:6;:75;:::i;:::-;6729:83;;;;:::i;:::-;6717:95;;6700:112;6855:12;;;;;;6838;6831:36;;;;6827:94;;6877:11;:13;;6893:2;;6877:13;;;;;;;:11;:13;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:18;;;6869:52;;;;-1:-1:-1;;;6869:52:0;;13201:2:1;6869:52:0;;;13183:21:1;13240:2;13220:18;;;13213:30;-1:-1:-1;;;13259:18:1;;;13252:51;13320:18;;6869:52:0;12999:345:1;6869:52:0;6950:13;-1:-1:-1;;;;;6942:21:0;:4;-1:-1:-1;;;;;6942:21:0;;:55;;;;-1:-1:-1;6981:15:0;;-1:-1:-1;;;;;6967:30:0;;;6981:15;;6967:30;;6942:55;:82;;;;-1:-1:-1;;;;;;7002:22:0;;;;;;:18;:22;;;;;;;;7001:23;6942:82;6938:311;;;7063:12;;7053:6;:22;;7045:60;;;;-1:-1:-1;;;7045:60:0;;13551:2:1;7045:60:0;;;13533:21:1;13590:2;13570:18;;;13563:30;13629:27;13609:18;;;13602:55;13674:18;;7045:60:0;13349:349:1;7045:60:0;7158:14;;7148:6;7132:13;7142:2;-1:-1:-1;;;;;5110:18:0;5083:7;5110:18;;;:9;:18;;;;;;;5017:119;7132:13;:22;;;;:::i;:::-;:40;;7124:79;;;;-1:-1:-1;;;7124:79:0;;14035:2:1;7124:79:0;;;14017:21:1;14074:2;14054:18;;;14047:30;14113:28;14093:18;;;14086:56;14159:18;;7124:79:0;13833:350:1;7124:79:0;7222:9;:11;;;:9;:11;;;:::i;:::-;;;;;;6938:311;7275:13;-1:-1:-1;;;;;7269:19:0;:2;-1:-1:-1;;;;;7269:19:0;;:44;;;;-1:-1:-1;;;;;;7292:21:0;;7308:4;7292:21;;7269:44;7265:182;;;7428:3;7370:18;;7358:9;;:30;7357:66;;7408:15;;7357:66;;;7392:13;;7357:66;7347:77;;:6;:77;:::i;:::-;7346:85;;;;:::i;:::-;7334:97;;7265:182;7512:4;7463:28;5110:18;;;:9;:18;;;;;;7556:6;;-1:-1:-1;;;7556:6:0;;;;7555:7;:43;;;;;7585:13;-1:-1:-1;;;;;7579:19:0;:2;-1:-1:-1;;;;;7579:19:0;;7555:43;:71;;;;-1:-1:-1;7615:11:0;;-1:-1:-1;;;7615:11:0;;;;7555:71;:128;;;;-1:-1:-1;3474:3:0;3260:15;3197:1;3260:2;:15;:::i;:::-;3246:29;;:11;:29;:::i;:::-;3453:17;;3469:1;3453:17;:::i;:::-;3452:25;;;;:::i;:::-;7643:20;:40;7555:128;:175;;;;;3004:1;7700:9;;:30;7555:175;7533:769;;;7784:13;;7769:12;:28;7765:90;;;7834:1;7822:9;:13;7765:90;7893:1;7881:9;;:13;7873:49;;;;-1:-1:-1;;;7873:49:0;;14530:2:1;7873:49:0;;;14512:21:1;14569:2;14549:18;;;14542:30;14608:25;14588:18;;;14581:53;14651:18;;7873:49:0;14328:347:1;7873:49:0;7941:69;7958:51;7962:6;7970:38;7974:20;3544:3;3260:15;3197:1;3260:2;:15;:::i;:::-;3246:29;;:11;:29;:::i;:::-;3523:17;;3539:1;3523:17;:::i;:::-;3522:25;;;;:::i;:::-;7970:3;:38::i;7958:51::-;7941:16;:69::i;:::-;8058:21;8102:22;;8098:112;;8149:41;8168:21;8149:18;:41::i;:::-;8228:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;8274:12:0;8258:13;:28;-1:-1:-1;7533:769:0;6685:1628;6647:1666;8329:13;;8325:169;;8404:4;8386:24;;;;:9;:24;;;;;;:36;;8413:9;;8386:36;:::i;:::-;8377:4;8359:24;;;;:9;:24;;;;;;;:63;;;;8442:40;;-1:-1:-1;;;;;8442:40:0;;;;;;;8472:9;1283:25:1;;1271:2;1256:18;;1137:177;8442:40:0;;;;;;;;8325:169;-1:-1:-1;;;;;8522:15:0;;;;;;:9;:15;;;;;;:24;;8540:6;;8522:24;:::i;:::-;-1:-1:-1;;;;;8504:15:0;;;;;;:9;:15;;;;;:42;8590:18;8599:9;8590:6;:18;:::i;:::-;-1:-1:-1;;;;;8573:13:0;;;;;;:9;:13;;;;;;:36;;;;:::i;:::-;-1:-1:-1;;;;;8557:13:0;;;;;;;:9;:13;;;;;:52;;;;8625:38;;;8644:18;8653:9;8644:6;:18;:::i;:::-;8625:38;;1283:25:1;;;1271:2;1256:18;8625:38:0;;;;;;;6375:2296;6306:2365;;;:::o;9285:98::-;9348:27;;2626:42;;9348:27;;;;;9368:6;;9348:27;;;;9368:6;2626:42;9348:27;;;;;;;;;;;;;;;;;;;8794:483;3977:6;:13;;-1:-1:-1;;;;3977:13:0;-1:-1:-1;;;3977:13:0;;;8896:16:::1;::::0;;8910:1:::1;8896:16:::0;;;;;::::1;::::0;;-1:-1:-1;;8896:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8896:16:0::1;8872:40;;8941:4;8923;8928:1;8923:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8923:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;8967:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;8967:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;8923:7;;8967:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8957:4;8962:1;8957:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8957:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9032:15:::1;::::0;9000:62:::1;::::0;9017:4:::1;::::0;9032:15:::1;9050:11:::0;9000:8:::1;:62::i;:::-;9073:15;::::0;:196:::1;::::0;-1:-1:-1;;;9073:196:0;;-1:-1:-1;;;;;9073:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9154:11;;9073:15:::1;::::0;9196:4;;9223::::1;::::0;9243:15:::1;::::0;9073:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4013:6:0;:14;;-1:-1:-1;;;;4013:14:0;;;-1:-1:-1;;;;8794:483:0:o;8679:107::-;8736:7;8768:1;8764;:5;8763:15;;8777:1;8763:15;;;8773:1;8763:15;8756:22;8679:107;-1:-1:-1;;;8679:107:0:o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:367;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;904:2;889:18;;;;876:32;;-1:-1:-1;;;573:367:1:o;1319:508::-;1396:6;1404;1412;1465:2;1453:9;1444:7;1440:23;1436:32;1433:52;;;1481:1;1478;1471:12;1433:52;1520:9;1507:23;1539:31;1564:5;1539:31;:::i;:::-;1589:5;-1:-1:-1;1646:2:1;1631:18;;1618:32;1659:33;1618:32;1659:33;:::i;:::-;1319:508;;1711:7;;-1:-1:-1;;;1791:2:1;1776:18;;;;1763:32;;1319:508::o;2021:247::-;2080:6;2133:2;2121:9;2112:7;2108:23;2104:32;2101:52;;;2149:1;2146;2139:12;2101:52;2188:9;2175:23;2207:31;2232:5;2207:31;:::i;2481:346::-;2549:6;2557;2610:2;2598:9;2589:7;2585:23;2581:32;2578:52;;;2626:1;2623;2616:12;2578:52;-1:-1:-1;;2671:23:1;;;2791:2;2776:18;;;2763:32;;-1:-1:-1;2481:346:1:o;2832:388::-;2900:6;2908;2961:2;2949:9;2940:7;2936:23;2932:32;2929:52;;;2977:1;2974;2967:12;2929:52;3016:9;3003:23;3035:31;3060:5;3035:31;:::i;:::-;3085:5;-1:-1:-1;3142:2:1;3127:18;;3114:32;3155:33;3114:32;3155:33;:::i;:::-;3207:7;3197:17;;;2832:388;;;;;:::o;3225:226::-;3284:6;3337:2;3325:9;3316:7;3312:23;3308:32;3305:52;;;3353:1;3350;3343:12;3305:52;-1:-1:-1;3398:23:1;;3225:226;-1:-1:-1;3225:226:1:o;3456:127::-;3517:10;3512:3;3508:20;3505:1;3498:31;3548:4;3545:1;3538:15;3572:4;3569:1;3562:15;3588:375;3676:1;3694:5;3708:249;3729:1;3719:8;3716:15;3708:249;;;3779:4;3774:3;3770:14;3764:4;3761:24;3758:50;;;3788:18;;:::i;:::-;3838:1;3828:8;3824:16;3821:49;;;3852:16;;;;3821:49;3935:1;3931:16;;;;;3891:15;;3708:249;;;3588:375;;;;;;:::o;3968:902::-;4017:5;4047:8;4037:80;;-1:-1:-1;4088:1:1;4102:5;;4037:80;4136:4;4126:76;;-1:-1:-1;4173:1:1;4187:5;;4126:76;4218:4;4236:1;4231:59;;;;4304:1;4299:174;;;;4211:262;;4231:59;4261:1;4252:10;;4275:5;;;4299:174;4336:3;4326:8;4323:17;4320:43;;;4343:18;;:::i;:::-;-1:-1:-1;;4399:1:1;4385:16;;4458:5;;4211:262;;4557:2;4547:8;4544:16;4538:3;4532:4;4529:13;4525:36;4519:2;4509:8;4506:16;4501:2;4495:4;4492:12;4488:35;4485:77;4482:203;;;-1:-1:-1;4594:19:1;;;4670:5;;4482:203;4717:42;-1:-1:-1;;4742:8:1;4736:4;4717:42;:::i;:::-;4795:6;4791:1;4787:6;4783:19;4774:7;4771:32;4768:58;;;4806:18;;:::i;:::-;4844:20;;3968:902;-1:-1:-1;;;3968:902:1:o;4875:140::-;4933:5;4962:47;5003:4;4993:8;4989:19;4983:4;4962:47;:::i;5020:168::-;5093:9;;;5124;;5141:15;;;5135:22;;5121:37;5111:71;;5162:18;;:::i;5193:217::-;5233:1;5259;5249:132;;5303:10;5298:3;5294:20;5291:1;5284:31;5338:4;5335:1;5328:15;5366:4;5363:1;5356:15;5249:132;-1:-1:-1;5395:9:1;;5193:217::o;5415:128::-;5482:9;;;5503:11;;;5500:37;;;5517:18;;:::i;5548:356::-;5750:2;5732:21;;;5769:18;;;5762:30;5828:34;5823:2;5808:18;;5801:62;5895:2;5880:18;;5548:356::o;8946:456::-;9034:6;9042;9050;9103:2;9091:9;9082:7;9078:23;9074:32;9071:52;;;9119:1;9116;9109:12;9071:52;-1:-1:-1;;9164:16:1;;9270:2;9255:18;;9249:25;9366:2;9351:18;;;9345:25;9164:16;;9249:25;;-1:-1:-1;9345:25:1;8946:456;-1:-1:-1;8946:456:1:o;9686:277::-;9753:6;9806:2;9794:9;9785:7;9781:23;9777:32;9774:52;;;9822:1;9819;9812:12;9774:52;9854:9;9848:16;9907:5;9900:13;9893:21;9886:5;9883:32;9873:60;;9929:1;9926;9919:12;12806:188;12844:3;12888:10;12881:5;12877:22;12923:10;12914:7;12911:23;12908:49;;12937:18;;:::i;:::-;12986:1;12973:15;;12806:188;-1:-1:-1;;12806:188:1:o;13703:125::-;13768:9;;;13789:10;;;13786:36;;;13802:18;;:::i;14188:135::-;14227:3;14248:17;;;14245:43;;14268:18;;:::i;:::-;-1:-1:-1;14315:1:1;14304:13;;14188:135::o;14812:127::-;14873:10;14868:3;14864:20;14861:1;14854:31;14904:4;14901:1;14894:15;14928:4;14925:1;14918:15;14944:251;15014:6;15067:2;15055:9;15046:7;15042:23;15038:32;15035:52;;;15083:1;15080;15073:12;15035:52;15115:9;15109:16;15134:31;15159:5;15134:31;:::i;15200:959::-;15462:4;15510:3;15499:9;15495:19;15541:6;15530:9;15523:25;15584:6;15579:2;15568:9;15564:18;15557:34;15627:3;15622:2;15611:9;15607:18;15600:31;15651:6;15686;15680:13;15717:6;15709;15702:22;15755:3;15744:9;15740:19;15733:26;;15794:2;15786:6;15782:15;15768:29;;15815:1;15825:195;15839:6;15836:1;15833:13;15825:195;;;15904:13;;-1:-1:-1;;;;;15900:39:1;15888:52;;15969:2;15995:15;;;;15960:12;;;;15936:1;15854:9;15825:195;;;-1:-1:-1;;;;;;;16076:32:1;;;;16071:2;16056:18;;16049:60;-1:-1:-1;;16140:3:1;16125:19;16118:35;16037:3;15200:959;-1:-1:-1;;;15200:959:1:o

Swarm Source

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