ETH Price: $3,356.35 (-2.71%)
Gas: 3 Gwei

Token

Nemesis Labs (NES)
 

Overview

Max Total Supply

100,000,000 NES

Holders

141

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
222,225.684943199190622589 NES

Value
$0.00
0x0Fa0C2D6463ed70e1A1207b32A97f2b0F191Cc74
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:
NemesisLabs

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-04
*/

// SPDX-License-Identifier: Unlicensed

/**
 https://nemesislabs.app/
 https://t.me/nemesislabsETH
 https://twitter.com/nemesislabs_eth
*/

pragma solidity ^0.8.11;

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

library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

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

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

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

    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

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

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract NemesisLabs is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    address public constant DEAD = address(0xdead);
    address public constant ZERO = address(0);

    string private constant _name = unicode"Nemesis Labs";
    string private constant _symbol = unicode"NES";

    bool private tradingEnabled = false;
    bool private swapEnabled = false;
    bool private swapping;
    uint256 public swapTokensAtAmount;
    uint256 private maxTaxSwap;

    // Anti-bot and anti-whale mappings and variables
    mapping(address => uint256) private _holderLastTransferTimestamp; //Keep last transfer timestamp temporarily during launch
    bool private transferDelayEnabled = true; //Protect launch from bots

    address public marketingWallet;
    struct Fees {
        uint256 buy;
        uint256 sell;
    }
    Fees public fees;
    uint256 public maxTransactionAmount;
    uint256 public maxWallet;

    mapping(address => bool) private excludedFees;
    mapping(address => bool) private excludedMaxTnxAmount;
    mapping(address => bool) private automatedMarketMakerPairs;

    event ExcludeFromFees(address indexed account, bool excluded);
    event ExcludeFromMaxTnxAmount(address indexed account, bool excluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event UpdateMaketingWallet(address indexed newAddress, address indexed oldAddress);

    constructor() ERC20(_name, _symbol) {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        excludeFromMaxTnxAmount(address(_uniswapV2Router), true);

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        automatedMarketMakerPairs[address(uniswapV2Pair)] = true;
        excludeFromMaxTnxAmount(address(uniswapV2Pair), true);
        emit SetAutomatedMarketMakerPair(uniswapV2Pair, true);

        uint256 totalSupply = 100000000 * 10**decimals();
        maxTransactionAmount = totalSupply.mul(15).div(1000);
        maxWallet = totalSupply.mul(15).div(1000);
        swapTokensAtAmount = totalSupply.mul(3).div(10000);
        maxTaxSwap = totalSupply.mul(8).div(1000);

        fees = Fees(16, 30);
        marketingWallet = address(0x6626DBaFb9f0b34E1F70209eb2e9aAfE13444cD7);

        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(marketingWallet, true);

        excludeFromMaxTnxAmount(owner(), true);
        excludeFromMaxTnxAmount(address(this), true);
        excludeFromMaxTnxAmount(DEAD, true);
        excludeFromMaxTnxAmount(marketingWallet, true);

        _mint(_msgSender(), totalSupply.mul(94).div(100));
        _mint(marketingWallet, totalSupply.mul(2).div(100));
        _mint(address(0xD47AC083BF82B774d828fBA74807351D8B8Dc8f0), totalSupply.mul(4).div(100));
    }

    receive() external payable {}

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

    function openTrading() external onlyOwner() {
        require(!tradingEnabled, "Trading is already open");
        _approve(address(this), address(uniswapV2Router), totalSupply());
        uniswapV2Router.addLiquidityETH{value : address(this).balance}(
            address(this),
            balanceOf(address(this)).mul(100 - fees.buy).div(100),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingEnabled = true;
    }

    function removeLimits() external onlyOwner {
        maxTransactionAmount = maxWallet = totalSupply();
        transferDelayEnabled = false;
    }

    function setFees(uint256 buyFee, uint256 sellFee) external onlyOwner {
        require(buyFee <= 3, "Must keep buy fee at 3% or less");
        require(sellFee <= 3, "Must keep sell fee at 3% or less");
        fees = Fees(buyFee, sellFee);
    }

    function setMarketingWallet(address _marketingWallet) external onlyOwner {
        require(_marketingWallet != address(0), "Marketing address cannot be zero address");
        address oldMarketingWallet = marketingWallet;
        marketingWallet = _marketingWallet;
        emit UpdateMaketingWallet(marketingWallet, oldMarketingWallet);
    }

    function excludeFromMaxTnxAmount(address _address, bool excluded) public onlyOwner {
        excludedMaxTnxAmount[_address] = excluded;
        emit ExcludeFromMaxTnxAmount(_address, excluded);
    }

    function excludeFromFees(address _address, bool excluded) public onlyOwner {
        excludedFees[_address] = excluded;
        emit ExcludeFromFees(_address, excluded);
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(from != ZERO, "ERC20: transfer from the zero address.");
        require(to != ZERO, "ERC20: transfer to the zero address.");
        require(amount > 0, "ERC20: transfer amount must be greater than zero.");

        if (from != owner() && to != owner() && to != ZERO && to != DEAD && !swapping) {
            if (!tradingEnabled) {
                require(excludedFees[from] || excludedFees[to], "Trading is not active.");
            }

            //if the transfer delay is enabled at launch
            if (transferDelayEnabled) {
                if (to != owner() && to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                    require(_holderLastTransferTimestamp[tx.origin] < block.number, "Only one purchase per block allowed.");
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (automatedMarketMakerPairs[from] && !excludedMaxTnxAmount[to]) {
                require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the max transaction amount.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded.");
            } else if (automatedMarketMakerPairs[to] && !excludedMaxTnxAmount[from]) {
                require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the max transaction amount.");
            } else if (!excludedMaxTnxAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded.");
            }
        }

        bool takeFee = !swapping;
        if (excludedFees[from] || excludedFees[to]) {
            takeFee = false;
        }

        uint256 totalFees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[to] && fees.sell > 0) {
                totalFees = amount.mul(fees.sell).div(100);
            } else if (automatedMarketMakerPairs[from] && fees.buy > 0) {
                totalFees = amount.mul(fees.buy).div(100);
            }
            amount -= totalFees;
        }

        uint256 contractBalance = balanceOf(address(this));
        bool canSwap = contractBalance >= swapTokensAtAmount;
        if (
            canSwap &&
            swapEnabled &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !excludedFees[from] &&
            !excludedFees[to]
        ) {
            swapping = true;
            bool success;
            swapTokensForEth(min(amount, min(contractBalance, maxTaxSwap)));
            (success, ) = address(marketingWallet).call{value: address(this).balance}("");
            swapping = false;
        }

        if (totalFees > 0) {
            super._transfer(from, address(this), totalFees);
        }
        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        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
        );
    }
}

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":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"ExcludeFromMaxTnxAmount","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateMaketingWallet","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ZERO","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromMaxTnxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fees","outputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526007805461ffff60a01b19169055600b805460ff191660011790553480156200002c57600080fd5b506040518060400160405280600c81526020016b4e656d65736973204c61627360a01b815250604051806040016040528060038152602001624e455360e81b815250816003908051906020019062000086929190620007b1565b5080516200009c906004906020840190620007b1565b505050620000b9620000b36200054460201b60201c565b62000548565b600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155620000ef8160016200059a565b600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000143573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000169919062000857565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f2919062000857565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000240573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000266919062000857565b600780546001600160a01b0319166001600160a01b0392831690811782556000908152601260205260409020805460ff191660019081179091559054620002af9216906200059a565b6007546040516001916001600160a01b0316907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a36000620002f86012600a6200099c565b62000308906305f5e100620009ad565b9050620003406103e86200032c600f846200060460201b62000a781790919060201c565b6200061b60201b62000a8b1790919060201c565b600e55620003636103e86200032c83600f62000604602090811b62000a7817901c565b600f55620003866127106200032c83600362000604602090811b62000a7817901c565b600881905550620003ae6103e86200032c6008846200060460201b62000a781790919060201c565b600955604080518082019091526010808252601e6020909201829052600c55600d55600b8054610100600160a81b031916746626dbafb9f0b34e1f70209eb2e9aafe13444cd700179055620004176200040f6005546001600160a01b031690565b600162000629565b6200042430600162000629565b600b54620004429061010090046001600160a01b0316600162000629565b62000461620004596005546001600160a01b031690565b60016200059a565b6200046e3060016200059a565b6200047d61dead60016200059a565b600b546200049b9061010090046001600160a01b031660016200059a565b620004c733620004c160646200032c605e866200060460201b62000a781790919060201c565b6200068c565b62000502600b60019054906101000a90046001600160a01b0316620004c160646200032c6002866200060460201b62000a781790919060201c565b6200053c73d47ac083bf82b774d828fba74807351d8b8dc8f0620004c160646200032c6004866200060460201b62000a781790919060201c565b505062000a4a565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b620005a462000753565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527fa31b741d2e60a14d493a6460a3af7b7812f8cf956bb59f1a1a44777a9b84687391015b60405180910390a25050565b6000620006128284620009ad565b90505b92915050565b6000620006128284620009cf565b6200063362000753565b6001600160a01b038216600081815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101620005f8565b6001600160a01b038216620006e85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060026000828254620006fc9190620009f2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b03163314620007af5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620006df565b565b828054620007bf9062000a0d565b90600052602060002090601f016020900481019282620007e357600085556200082e565b82601f10620007fe57805160ff19168380011785556200082e565b828001600101855582156200082e579182015b828111156200082e57825182559160200191906001019062000811565b506200083c92915062000840565b5090565b5b808211156200083c576000815560010162000841565b6000602082840312156200086a57600080fd5b81516001600160a01b03811681146200088257600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008e0578160001904821115620008c457620008c462000889565b80851615620008d257918102915b93841c9390800290620008a4565b509250929050565b600082620008f95750600162000615565b81620009085750600062000615565b81600181146200092157600281146200092c576200094c565b600191505062000615565b60ff84111562000940576200094062000889565b50506001821b62000615565b5060208310610133831016604e8410600b841016171562000971575081810a62000615565b6200097d83836200089f565b806000190482111562000994576200099462000889565b029392505050565b60006200061260ff841683620008e8565b6000816000190483118215151615620009ca57620009ca62000889565b500290565b600082620009ed57634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111562000a085762000a0862000889565b500190565b600181811c9082168062000a2257607f821691505b6020821081141562000a4457634e487b7160e01b600052602260045260246000fd5b50919050565b611b748062000a5a6000396000f3fe6080604052600436106101855760003560e01c8063715018a6116100d1578063a9059cbb1161008a578063c9567bf911610064578063c9567bf914610466578063dd62ed3e1461047b578063e2f45605146104c1578063f8b45b05146104d757600080fd5b8063a9059cbb14610410578063c024666814610430578063c8c8ebe41461045057600080fd5b8063715018a61461035e578063751039fc1461037357806375f0a874146103885780638da5cb5b146103ad57806395d89b41146103cb5780639af1d35a146103e057600080fd5b806323b872dd1161013e57806349bd5a5e1161011857806349bd5a5e146102d357806358fa63ca146102f35780635d098b381461030857806370a082311461032857600080fd5b806323b872dd1461027757806330da01bc14610297578063313ce567146102b757600080fd5b806303fd2a451461019157806306fdde03146101c4578063095ea7b3146101e65780630b78f9c0146102165780631694505e1461023857806318160ddd1461025857600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a761dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101d057600080fd5b506101d96104ed565b6040516101bb9190611806565b3480156101f257600080fd5b50610206610201366004611873565b61057f565b60405190151581526020016101bb565b34801561022257600080fd5b5061023661023136600461189f565b610597565b005b34801561024457600080fd5b506006546101a7906001600160a01b031681565b34801561026457600080fd5b506002545b6040519081526020016101bb565b34801561028357600080fd5b506102066102923660046118c1565b610664565b3480156102a357600080fd5b506102366102b2366004611910565b610688565b3480156102c357600080fd5b50604051601281526020016101bb565b3480156102df57600080fd5b506007546101a7906001600160a01b031681565b3480156102ff57600080fd5b506101a7600081565b34801561031457600080fd5b50610236610323366004611949565b6106f0565b34801561033457600080fd5b50610269610343366004611949565b6001600160a01b031660009081526020819052604090205490565b34801561036a57600080fd5b506102366107c2565b34801561037f57600080fd5b506102366107d6565b34801561039457600080fd5b50600b546101a79061010090046001600160a01b031681565b3480156103b957600080fd5b506005546001600160a01b03166101a7565b3480156103d757600080fd5b506101d96107f5565b3480156103ec57600080fd5b50600c54600d546103fb919082565b604080519283526020830191909152016101bb565b34801561041c57600080fd5b5061020661042b366004611873565b610804565b34801561043c57600080fd5b5061023661044b366004611910565b610812565b34801561045c57600080fd5b50610269600e5481565b34801561047257600080fd5b50610236610872565b34801561048757600080fd5b50610269610496366004611966565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156104cd57600080fd5b5061026960085481565b3480156104e357600080fd5b50610269600f5481565b6060600380546104fc90611994565b80601f016020809104026020016040519081016040528092919081815260200182805461052890611994565b80156105755780601f1061054a57610100808354040283529160200191610575565b820191906000526020600020905b81548152906001019060200180831161055857829003601f168201915b5050505050905090565b60003361058d818585610a97565b5060019392505050565b61059f610bbb565b60038211156105f55760405162461bcd60e51b815260206004820152601f60248201527f4d757374206b6565702062757920666565206174203325206f72206c6573730060448201526064015b60405180910390fd5b60038111156106465760405162461bcd60e51b815260206004820181905260248201527f4d757374206b6565702073656c6c20666565206174203325206f72206c65737360448201526064016105ec565b60408051808201909152828152602001819052600c91909155600d55565b600033610672858285610c15565b61067d858585610ca7565b506001949350505050565b610690610bbb565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527fa31b741d2e60a14d493a6460a3af7b7812f8cf956bb59f1a1a44777a9b84687391015b60405180910390a25050565b6106f8610bbb565b6001600160a01b03811661075f5760405162461bcd60e51b815260206004820152602860248201527f4d61726b6574696e6720616464726573732063616e6e6f74206265207a65726f604482015267206164647265737360c01b60648201526084016105ec565b600b80546001600160a01b03838116610100908102610100600160a81b031984161793849055604051928190048216938493919004909116907fd7b83a807d04ed91f0132c5d2cf745860733f0385788e7380657b3b586372d4390600090a35050565b6107ca610bbb565b6107d460006114a1565b565b6107de610bbb565b600254600f819055600e55600b805460ff19169055565b6060600480546104fc90611994565b60003361058d818585610ca7565b61081a610bbb565b6001600160a01b038216600081815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df791016106e4565b61087a610bbb565b600754600160a01b900460ff16156108d45760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105ec565b6006546108f49030906001600160a01b03166108ef60025490565b610a97565b600654600c546001600160a01b039091169063f305d71990479030906109419060649061093b9061092590836119df565b3060009081526020819052604090205490610a78565b90610a8b565b6000806109566005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109be573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109e391906119f6565b505060075460065460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a609190611a24565b506007805461ffff60a01b191661010160a01b179055565b6000610a848284611a41565b9392505050565b6000610a848284611a60565b6001600160a01b038316610af95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ec565b6001600160a01b038216610b5a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ec565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b031633146107d45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105ec565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610ca15781811015610c945760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105ec565b610ca18484848403610a97565b50505050565b6001600160a01b038316610d0c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015265323932b9b99760d11b60648201526084016105ec565b6001600160a01b038216610d6e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526332b9b99760e11b60648201526084016105ec565b60008111610dd85760405162461bcd60e51b815260206004820152603160248201527f45524332303a207472616e7366657220616d6f756e74206d75737420626520676044820152703932b0ba32b9103a3430b7103d32b9379760791b60648201526084016105ec565b6005546001600160a01b03848116911614801590610e0457506005546001600160a01b03838116911614155b8015610e1857506001600160a01b03821615155b8015610e2f57506001600160a01b03821661dead14155b8015610e455750600754600160b01b900460ff16155b1561122957600754600160a01b900460ff16610edf576001600160a01b03831660009081526010602052604090205460ff1680610e9a57506001600160a01b03821660009081526010602052604090205460ff165b610edf5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016105ec565b600b5460ff1615610fb2576005546001600160a01b03838116911614801590610f1657506006546001600160a01b03838116911614155b8015610f3057506007546001600160a01b03838116911614155b15610fb257326000908152600a60205260409020544311610f9f5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016105ec565b326000908152600a602052604090204390555b6001600160a01b03831660009081526012602052604090205460ff168015610ff357506001600160a01b03821660009081526011602052604090205460ff16155b156110e057600e548111156110705760405162461bcd60e51b815260206004820152603760248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527f6d6178207472616e73616374696f6e20616d6f756e742e00000000000000000060648201526084016105ec565b600f546001600160a01b0383166000908152602081905260409020546110969083611a82565b11156110db5760405162461bcd60e51b815260206004820152601460248201527326b0bc103bb0b63632ba1032bc31b2b2b232b21760611b60448201526064016105ec565b611229565b6001600160a01b03821660009081526012602052604090205460ff16801561112157506001600160a01b03831660009081526011602052604090205460ff16155b1561119e57600e548111156110db5760405162461bcd60e51b815260206004820152603860248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d6178207472616e73616374696f6e20616d6f756e742e000000000000000060648201526084016105ec565b6001600160a01b03821660009081526011602052604090205460ff1661122957600f546001600160a01b0383166000908152602081905260409020546111e49083611a82565b11156112295760405162461bcd60e51b815260206004820152601460248201527326b0bc103bb0b63632ba1032bc31b2b2b232b21760611b60448201526064016105ec565b6007546001600160a01b03841660009081526010602052604090205460ff600160b01b90920482161591168061127757506001600160a01b03831660009081526010602052604090205460ff165b15611280575060005b60008115611325576001600160a01b03841660009081526012602052604090205460ff1680156112b15750600d5415155b156112d257600d546112cb9060649061093b908690610a78565b9050611318565b6001600160a01b03851660009081526012602052604090205460ff1680156112fb5750600c5415155b1561131857600c546113159060649061093b908690610a78565b90505b61132281846119df565b92505b30600090815260208190526040902054600854811080159081906113525750600754600160a81b900460ff165b80156113685750600754600160b01b900460ff16155b801561138d57506001600160a01b03871660009081526012602052604090205460ff16155b80156113b257506001600160a01b03871660009081526010602052604090205460ff16155b80156113d757506001600160a01b03861660009081526010602052604090205460ff16155b1561147c576007805460ff60b01b1916600160b01b1790556009546000906114149061140f90889061140a9087906114f3565b6114f3565b611508565b600b546040516101009091046001600160a01b0316904790600081818185875af1925050503d8060008114611465576040519150601f19603f3d011682016040523d82523d6000602084013e61146a565b606091505b50506007805460ff60b01b1916905550505b821561148d5761148d873085611662565b611498878787611662565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008183116115025782610a84565b50919050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061153d5761153d611a9a565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ba9190611ab0565b816001815181106115cd576115cd611a9a565b6001600160a01b0392831660209182029290920101526006546115f39130911684610a97565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061162c908590600090869030904290600401611acd565b600060405180830381600087803b15801561164657600080fd5b505af115801561165a573d6000803e3d6000fd5b505050505050565b6001600160a01b0383166116c65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ec565b6001600160a01b0382166117285760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ec565b6001600160a01b038316600090815260208190526040902054818110156117a05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105ec565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610ca1565b600060208083528351808285015260005b8181101561183357858101830151858201604001528201611817565b81811115611845576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461187057600080fd5b50565b6000806040838503121561188657600080fd5b82356118918161185b565b946020939093013593505050565b600080604083850312156118b257600080fd5b50508035926020909101359150565b6000806000606084860312156118d657600080fd5b83356118e18161185b565b925060208401356118f18161185b565b929592945050506040919091013590565b801515811461187057600080fd5b6000806040838503121561192357600080fd5b823561192e8161185b565b9150602083013561193e81611902565b809150509250929050565b60006020828403121561195b57600080fd5b8135610a848161185b565b6000806040838503121561197957600080fd5b82356119848161185b565b9150602083013561193e8161185b565b600181811c908216806119a857607f821691505b6020821081141561150257634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156119f1576119f16119c9565b500390565b600080600060608486031215611a0b57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611a3657600080fd5b8151610a8481611902565b6000816000190483118215151615611a5b57611a5b6119c9565b500290565b600082611a7d57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611a9557611a956119c9565b500190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ac257600080fd5b8151610a848161185b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b1d5784516001600160a01b031683529383019391830191600101611af8565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f4ca1931e449e17b837c6b33528f042e42ccf7814ac9315244ea9bcd7f55547a64736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106101855760003560e01c8063715018a6116100d1578063a9059cbb1161008a578063c9567bf911610064578063c9567bf914610466578063dd62ed3e1461047b578063e2f45605146104c1578063f8b45b05146104d757600080fd5b8063a9059cbb14610410578063c024666814610430578063c8c8ebe41461045057600080fd5b8063715018a61461035e578063751039fc1461037357806375f0a874146103885780638da5cb5b146103ad57806395d89b41146103cb5780639af1d35a146103e057600080fd5b806323b872dd1161013e57806349bd5a5e1161011857806349bd5a5e146102d357806358fa63ca146102f35780635d098b381461030857806370a082311461032857600080fd5b806323b872dd1461027757806330da01bc14610297578063313ce567146102b757600080fd5b806303fd2a451461019157806306fdde03146101c4578063095ea7b3146101e65780630b78f9c0146102165780631694505e1461023857806318160ddd1461025857600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a761dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101d057600080fd5b506101d96104ed565b6040516101bb9190611806565b3480156101f257600080fd5b50610206610201366004611873565b61057f565b60405190151581526020016101bb565b34801561022257600080fd5b5061023661023136600461189f565b610597565b005b34801561024457600080fd5b506006546101a7906001600160a01b031681565b34801561026457600080fd5b506002545b6040519081526020016101bb565b34801561028357600080fd5b506102066102923660046118c1565b610664565b3480156102a357600080fd5b506102366102b2366004611910565b610688565b3480156102c357600080fd5b50604051601281526020016101bb565b3480156102df57600080fd5b506007546101a7906001600160a01b031681565b3480156102ff57600080fd5b506101a7600081565b34801561031457600080fd5b50610236610323366004611949565b6106f0565b34801561033457600080fd5b50610269610343366004611949565b6001600160a01b031660009081526020819052604090205490565b34801561036a57600080fd5b506102366107c2565b34801561037f57600080fd5b506102366107d6565b34801561039457600080fd5b50600b546101a79061010090046001600160a01b031681565b3480156103b957600080fd5b506005546001600160a01b03166101a7565b3480156103d757600080fd5b506101d96107f5565b3480156103ec57600080fd5b50600c54600d546103fb919082565b604080519283526020830191909152016101bb565b34801561041c57600080fd5b5061020661042b366004611873565b610804565b34801561043c57600080fd5b5061023661044b366004611910565b610812565b34801561045c57600080fd5b50610269600e5481565b34801561047257600080fd5b50610236610872565b34801561048757600080fd5b50610269610496366004611966565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156104cd57600080fd5b5061026960085481565b3480156104e357600080fd5b50610269600f5481565b6060600380546104fc90611994565b80601f016020809104026020016040519081016040528092919081815260200182805461052890611994565b80156105755780601f1061054a57610100808354040283529160200191610575565b820191906000526020600020905b81548152906001019060200180831161055857829003601f168201915b5050505050905090565b60003361058d818585610a97565b5060019392505050565b61059f610bbb565b60038211156105f55760405162461bcd60e51b815260206004820152601f60248201527f4d757374206b6565702062757920666565206174203325206f72206c6573730060448201526064015b60405180910390fd5b60038111156106465760405162461bcd60e51b815260206004820181905260248201527f4d757374206b6565702073656c6c20666565206174203325206f72206c65737360448201526064016105ec565b60408051808201909152828152602001819052600c91909155600d55565b600033610672858285610c15565b61067d858585610ca7565b506001949350505050565b610690610bbb565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527fa31b741d2e60a14d493a6460a3af7b7812f8cf956bb59f1a1a44777a9b84687391015b60405180910390a25050565b6106f8610bbb565b6001600160a01b03811661075f5760405162461bcd60e51b815260206004820152602860248201527f4d61726b6574696e6720616464726573732063616e6e6f74206265207a65726f604482015267206164647265737360c01b60648201526084016105ec565b600b80546001600160a01b03838116610100908102610100600160a81b031984161793849055604051928190048216938493919004909116907fd7b83a807d04ed91f0132c5d2cf745860733f0385788e7380657b3b586372d4390600090a35050565b6107ca610bbb565b6107d460006114a1565b565b6107de610bbb565b600254600f819055600e55600b805460ff19169055565b6060600480546104fc90611994565b60003361058d818585610ca7565b61081a610bbb565b6001600160a01b038216600081815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df791016106e4565b61087a610bbb565b600754600160a01b900460ff16156108d45760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105ec565b6006546108f49030906001600160a01b03166108ef60025490565b610a97565b600654600c546001600160a01b039091169063f305d71990479030906109419060649061093b9061092590836119df565b3060009081526020819052604090205490610a78565b90610a8b565b6000806109566005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109be573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109e391906119f6565b505060075460065460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a609190611a24565b506007805461ffff60a01b191661010160a01b179055565b6000610a848284611a41565b9392505050565b6000610a848284611a60565b6001600160a01b038316610af95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ec565b6001600160a01b038216610b5a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ec565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b031633146107d45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105ec565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610ca15781811015610c945760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105ec565b610ca18484848403610a97565b50505050565b6001600160a01b038316610d0c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015265323932b9b99760d11b60648201526084016105ec565b6001600160a01b038216610d6e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526332b9b99760e11b60648201526084016105ec565b60008111610dd85760405162461bcd60e51b815260206004820152603160248201527f45524332303a207472616e7366657220616d6f756e74206d75737420626520676044820152703932b0ba32b9103a3430b7103d32b9379760791b60648201526084016105ec565b6005546001600160a01b03848116911614801590610e0457506005546001600160a01b03838116911614155b8015610e1857506001600160a01b03821615155b8015610e2f57506001600160a01b03821661dead14155b8015610e455750600754600160b01b900460ff16155b1561122957600754600160a01b900460ff16610edf576001600160a01b03831660009081526010602052604090205460ff1680610e9a57506001600160a01b03821660009081526010602052604090205460ff165b610edf5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016105ec565b600b5460ff1615610fb2576005546001600160a01b03838116911614801590610f1657506006546001600160a01b03838116911614155b8015610f3057506007546001600160a01b03838116911614155b15610fb257326000908152600a60205260409020544311610f9f5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016105ec565b326000908152600a602052604090204390555b6001600160a01b03831660009081526012602052604090205460ff168015610ff357506001600160a01b03821660009081526011602052604090205460ff16155b156110e057600e548111156110705760405162461bcd60e51b815260206004820152603760248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527f6d6178207472616e73616374696f6e20616d6f756e742e00000000000000000060648201526084016105ec565b600f546001600160a01b0383166000908152602081905260409020546110969083611a82565b11156110db5760405162461bcd60e51b815260206004820152601460248201527326b0bc103bb0b63632ba1032bc31b2b2b232b21760611b60448201526064016105ec565b611229565b6001600160a01b03821660009081526012602052604090205460ff16801561112157506001600160a01b03831660009081526011602052604090205460ff16155b1561119e57600e548111156110db5760405162461bcd60e51b815260206004820152603860248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d6178207472616e73616374696f6e20616d6f756e742e000000000000000060648201526084016105ec565b6001600160a01b03821660009081526011602052604090205460ff1661122957600f546001600160a01b0383166000908152602081905260409020546111e49083611a82565b11156112295760405162461bcd60e51b815260206004820152601460248201527326b0bc103bb0b63632ba1032bc31b2b2b232b21760611b60448201526064016105ec565b6007546001600160a01b03841660009081526010602052604090205460ff600160b01b90920482161591168061127757506001600160a01b03831660009081526010602052604090205460ff165b15611280575060005b60008115611325576001600160a01b03841660009081526012602052604090205460ff1680156112b15750600d5415155b156112d257600d546112cb9060649061093b908690610a78565b9050611318565b6001600160a01b03851660009081526012602052604090205460ff1680156112fb5750600c5415155b1561131857600c546113159060649061093b908690610a78565b90505b61132281846119df565b92505b30600090815260208190526040902054600854811080159081906113525750600754600160a81b900460ff165b80156113685750600754600160b01b900460ff16155b801561138d57506001600160a01b03871660009081526012602052604090205460ff16155b80156113b257506001600160a01b03871660009081526010602052604090205460ff16155b80156113d757506001600160a01b03861660009081526010602052604090205460ff16155b1561147c576007805460ff60b01b1916600160b01b1790556009546000906114149061140f90889061140a9087906114f3565b6114f3565b611508565b600b546040516101009091046001600160a01b0316904790600081818185875af1925050503d8060008114611465576040519150601f19603f3d011682016040523d82523d6000602084013e61146a565b606091505b50506007805460ff60b01b1916905550505b821561148d5761148d873085611662565b611498878787611662565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008183116115025782610a84565b50919050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061153d5761153d611a9a565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ba9190611ab0565b816001815181106115cd576115cd611a9a565b6001600160a01b0392831660209182029290920101526006546115f39130911684610a97565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061162c908590600090869030904290600401611acd565b600060405180830381600087803b15801561164657600080fd5b505af115801561165a573d6000803e3d6000fd5b505050505050565b6001600160a01b0383166116c65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ec565b6001600160a01b0382166117285760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ec565b6001600160a01b038316600090815260208190526040902054818110156117a05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105ec565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610ca1565b600060208083528351808285015260005b8181101561183357858101830151858201604001528201611817565b81811115611845576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461187057600080fd5b50565b6000806040838503121561188657600080fd5b82356118918161185b565b946020939093013593505050565b600080604083850312156118b257600080fd5b50508035926020909101359150565b6000806000606084860312156118d657600080fd5b83356118e18161185b565b925060208401356118f18161185b565b929592945050506040919091013590565b801515811461187057600080fd5b6000806040838503121561192357600080fd5b823561192e8161185b565b9150602083013561193e81611902565b809150509250929050565b60006020828403121561195b57600080fd5b8135610a848161185b565b6000806040838503121561197957600080fd5b82356119848161185b565b9150602083013561193e8161185b565b600181811c908216806119a857607f821691505b6020821081141561150257634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156119f1576119f16119c9565b500390565b600080600060608486031215611a0b57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611a3657600080fd5b8151610a8481611902565b6000816000190483118215151615611a5b57611a5b6119c9565b500290565b600082611a7d57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611a9557611a956119c9565b500190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ac257600080fd5b8151610a848161185b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b1d5784516001600160a01b031683529383019391830191600101611af8565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f4ca1931e449e17b837c6b33528f042e42ccf7814ac9315244ea9bcd7f55547a64736f6c634300080b0033

Deployed Bytecode Sourcemap

7334:8425:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7498:46;;;;;;;;;;;;7537:6;7498:46;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;7498:46:0;;;;;;;;2800:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3732:201::-;;;;;;;;;;-1:-1:-1;3732:201:0;;;;;:::i;:::-;;:::i;:::-;;;1445:14:1;;1438:22;1420:41;;1408:2;1393:18;3732:201:0;1280:187:1;11336:250:0;;;;;;;;;;-1:-1:-1;11336:250:0;;;;;:::i;:::-;;:::i;:::-;;7415:41;;;;;;;;;;-1:-1:-1;7415:41:0;;;;-1:-1:-1;;;;;7415:41:0;;;3121:108;;;;;;;;;;-1:-1:-1;3209:12:0;;3121:108;;;2105:25:1;;;2093:2;2078:18;3121:108:0;1959:177:1;3941:261:0;;;;;;;;;;-1:-1:-1;3941:261:0;;;;;:::i;:::-;;:::i;11950:202::-;;;;;;;;;;-1:-1:-1;11950:202:0;;;;;:::i;:::-;;:::i;3020:93::-;;;;;;;;;;-1:-1:-1;3020:93:0;;3103:2;3254:36:1;;3242:2;3227:18;3020:93:0;3112:184:1;7463:28:0;;;;;;;;;;-1:-1:-1;7463:28:0;;;;-1:-1:-1;;;;;7463:28:0;;;7551:41;;;;;;;;;;;;7590:1;7551:41;;11594:348;;;;;;;;;;-1:-1:-1;11594:348:0;;;;;:::i;:::-;;:::i;3237:127::-;;;;;;;;;;-1:-1:-1;3237:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3338:18:0;3311:7;3338:18;;;;;;;;;;;;3237:127;1203:103;;;;;;;;;;;;;:::i;11179:149::-;;;;;;;;;;;;;:::i;8159:30::-;;;;;;;;;;-1:-1:-1;8159:30:0;;;;;;;-1:-1:-1;;;;;8159:30:0;;;968:87;;;;;;;;;;-1:-1:-1;1041:6:0;;-1:-1:-1;;;;;1041:6:0;968:87;;2908:104;;;;;;;;;;;;;:::i;8267:16::-;;;;;;;;;;-1:-1:-1;8267:16:0;;;;;;;;;;;;;3727:25:1;;;3783:2;3768:18;;3761:34;;;;3700:18;8267:16:0;3553:248:1;3372:193:0;;;;;;;;;;-1:-1:-1;3372:193:0;;;;;:::i;:::-;;:::i;12160:178::-;;;;;;;;;;-1:-1:-1;12160:178:0;;;;;:::i;:::-;;:::i;8290:35::-;;;;;;;;;;;;;;;;10575:596;;;;;;;;;;;;;:::i;3573:151::-;;;;;;;;;;-1:-1:-1;3573:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3689:18:0;;;3662:7;3689:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3573:151;7825:33;;;;;;;;;;;;;;;;8332:24;;;;;;;;;;;;;;;;2800:100;2854:13;2887:5;2880:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2800:100;:::o;3732:201::-;3815:4;289:10;3871:32;289:10;3887:7;3896:6;3871:8;:32::i;:::-;-1:-1:-1;3921:4:0;;3732:201;-1:-1:-1;;;3732:201:0:o;11336:250::-;927:13;:11;:13::i;:::-;11434:1:::1;11424:6;:11;;11416:55;;;::::0;-1:-1:-1;;;11416:55:0;;4786:2:1;11416:55:0::1;::::0;::::1;4768:21:1::0;4825:2;4805:18;;;4798:30;4864:33;4844:18;;;4837:61;4915:18;;11416:55:0::1;;;;;;;;;11501:1;11490:7;:12;;11482:57;;;::::0;-1:-1:-1;;;11482:57:0;;5146:2:1;11482:57:0::1;::::0;::::1;5128:21:1::0;;;5165:18;;;5158:30;5224:34;5204:18;;;5197:62;5276:18;;11482:57:0::1;4944:356:1::0;11482:57:0::1;11557:21;::::0;;;;::::1;::::0;;;;;;::::1;;::::0;;;11550:4:::1;:28:::0;;;;;;11336:250::o;3941:261::-;4038:4;289:10;4096:38;4112:4;289:10;4127:6;4096:15;:38::i;:::-;4145:27;4155:4;4161:2;4165:6;4145:9;:27::i;:::-;-1:-1:-1;4190:4:0;;3941:261;-1:-1:-1;;;;3941:261:0:o;11950:202::-;927:13;:11;:13::i;:::-;-1:-1:-1;;;;;12044:30:0;::::1;;::::0;;;:20:::1;:30;::::0;;;;;;;;:41;;-1:-1:-1;;12044:41:0::1;::::0;::::1;;::::0;;::::1;::::0;;;12101:43;;1420:41:1;;;12101:43:0::1;::::0;1393:18:1;12101:43:0::1;;;;;;;;11950:202:::0;;:::o;11594:348::-;927:13;:11;:13::i;:::-;-1:-1:-1;;;;;11686:30:0;::::1;11678:83;;;::::0;-1:-1:-1;;;11678:83:0;;5507:2:1;11678:83:0::1;::::0;::::1;5489:21:1::0;5546:2;5526:18;;;5519:30;5585:34;5565:18;;;5558:62;-1:-1:-1;;;5636:18:1;;;5629:38;5684:19;;11678:83:0::1;5305:404:1::0;11678:83:0::1;11801:15;::::0;;-1:-1:-1;;;;;11827:34:0;;::::1;11801:15;11827:34:::0;;::::1;-1:-1:-1::0;;;;;;11827:34:0;::::1;;::::0;;;;11877:57:::1;::::0;11801:15;;;::::1;::::0;::::1;::::0;;;11898;;::::1;::::0;;::::1;::::0;11877:57:::1;::::0;11772:26:::1;::::0;11877:57:::1;11667:275;11594:348:::0;:::o;1203:103::-;927:13;:11;:13::i;:::-;1268:30:::1;1295:1;1268:18;:30::i;:::-;1203:103::o:0;11179:149::-;927:13;:11;:13::i;:::-;3209:12;;11256:9:::1;:25:::0;;;11233:20:::1;:48:::0;11292:20:::1;:28:::0;;-1:-1:-1;;11292:28:0::1;::::0;;11179:149::o;2908:104::-;2964:13;2997:7;2990:14;;;;;:::i;3372:193::-;3451:4;289:10;3507:28;289:10;3524:2;3528:6;3507:9;:28::i;12160:178::-;927:13;:11;:13::i;:::-;-1:-1:-1;;;;;12246:22:0;::::1;;::::0;;;:12:::1;:22;::::0;;;;;;;;:33;;-1:-1:-1;;12246:33:0::1;::::0;::::1;;::::0;;::::1;::::0;;;12295:35;;1420:41:1;;;12295:35:0::1;::::0;1393:18:1;12295:35:0::1;1280:187:1::0;10575:596:0;927:13;:11;:13::i;:::-;10639:14:::1;::::0;-1:-1:-1;;;10639:14:0;::::1;;;10638:15;10630:51;;;::::0;-1:-1:-1;;;10630:51:0;;5916:2:1;10630:51:0::1;::::0;::::1;5898:21:1::0;5955:2;5935:18;;;5928:30;5994:25;5974:18;;;5967:53;6037:18;;10630:51:0::1;5714:347:1::0;10630:51:0::1;10724:15;::::0;10692:64:::1;::::0;10709:4:::1;::::0;-1:-1:-1;;;;;10724:15:0::1;10742:13;3209:12:::0;;;3121:108;10742:13:::1;10692:8;:64::i;:::-;10767:15;::::0;10907:4:::1;:8:::0;-1:-1:-1;;;;;10767:15:0;;::::1;::::0;:31:::1;::::0;10807:21:::1;::::0;10852:4:::1;::::0;10872:53:::1;::::0;10921:3:::1;::::0;10872:44:::1;::::0;10901:14:::1;::::0;10921:3;10901:14:::1;:::i;:::-;10890:4;3311:7:::0;3338:18;;;;;;;;;;;10872:28;::::1;:44::i;:::-;:48:::0;::::1;:53::i;:::-;10940:1;10956::::0;10972:7:::1;1041:6:::0;;-1:-1:-1;;;;;1041:6:0;;968:87;10972:7:::1;10767:253;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10767:253:0;;;-1:-1:-1;;;;;6687:15:1;;;10767:253:0::1;::::0;::::1;6669:34:1::0;6719:18;;;6712:34;;;;6762:18;;;6755:34;;;;6805:18;;;6798:34;6869:15;;;6848:19;;;6841:44;10994:15:0::1;6901:19:1::0;;;6894:35;6603:19;;10767:253:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11038:13:0::1;::::0;11069:15:::1;::::0;11031:71:::1;::::0;-1:-1:-1;;;11031:71:0;;-1:-1:-1;;;;;11069:15:0;;::::1;11031:71;::::0;::::1;7425:51:1::0;-1:-1:-1;;7492:18:1;;;7485:34;11038:13:0;::::1;::::0;-1:-1:-1;11031:29:0::1;::::0;7398:18:1;;11031:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11113:11:0::1;:18:::0;;-1:-1:-1;;;;11142:21:0;-1:-1:-1;;;11142:21:0;;;10575:596::o;338:98::-;396:7;423:5;427:1;423;:5;:::i;:::-;416:12;338:98;-1:-1:-1;;;338:98:0:o;444:::-;502:7;529:5;533:1;529;:5;:::i;5580:346::-;-1:-1:-1;;;;;5682:19:0;;5674:68;;;;-1:-1:-1;;;5674:68:0;;8377:2:1;5674:68:0;;;8359:21:1;8416:2;8396:18;;;8389:30;8455:34;8435:18;;;8428:62;-1:-1:-1;;;8506:18:1;;;8499:34;8550:19;;5674:68:0;8175:400:1;5674:68:0;-1:-1:-1;;;;;5761:21:0;;5753:68;;;;-1:-1:-1;;;5753:68:0;;8782:2:1;5753:68:0;;;8764:21:1;8821:2;8801:18;;;8794:30;8860:34;8840:18;;;8833:62;-1:-1:-1;;;8911:18:1;;;8904:32;8953:19;;5753:68:0;8580:398:1;5753:68:0;-1:-1:-1;;;;;5834:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5886:32;;2105:25:1;;;5886:32:0;;2078:18:1;5886:32:0;;;;;;;5580:346;;;:::o;1063:132::-;1041:6;;-1:-1:-1;;;;;1041:6:0;289:10;1127:23;1119:68;;;;-1:-1:-1;;;1119:68:0;;9185:2:1;1119:68:0;;;9167:21:1;;;9204:18;;;9197:30;9263:34;9243:18;;;9236:62;9315:18;;1119:68:0;8983:356:1;5934:419:0;-1:-1:-1;;;;;3689:18:0;;;6035:24;3689:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;6102:37:0;;6098:248;;6184:6;6164:16;:26;;6156:68;;;;-1:-1:-1;;;6156:68:0;;9546:2:1;6156:68:0;;;9528:21:1;9585:2;9565:18;;;9558:30;9624:31;9604:18;;;9597:59;9673:18;;6156:68:0;9344:353:1;6156:68:0;6268:51;6277:5;6284:7;6312:6;6293:16;:25;6268:8;:51::i;:::-;6024:329;5934:419;;;:::o;12346:2929::-;-1:-1:-1;;;;;12444:12:0;;12436:63;;;;-1:-1:-1;;;12436:63:0;;9904:2:1;12436:63:0;;;9886:21:1;9943:2;9923:18;;;9916:30;9982:34;9962:18;;;9955:62;-1:-1:-1;;;10033:18:1;;;10026:36;10079:19;;12436:63:0;9702:402:1;12436:63:0;-1:-1:-1;;;;;12518:10:0;;12510:59;;;;-1:-1:-1;;;12510:59:0;;10311:2:1;12510:59:0;;;10293:21:1;10350:2;10330:18;;;10323:30;10389:34;10369:18;;;10362:62;-1:-1:-1;;;10440:18:1;;;10433:34;10484:19;;12510:59:0;10109:400:1;12510:59:0;12597:1;12588:6;:10;12580:72;;;;-1:-1:-1;;;12580:72:0;;10716:2:1;12580:72:0;;;10698:21:1;10755:2;10735:18;;;10728:30;10794:34;10774:18;;;10767:62;-1:-1:-1;;;10845:18:1;;;10838:47;10902:19;;12580:72:0;10514:413:1;12580:72:0;1041:6;;-1:-1:-1;;;;;12669:15:0;;;1041:6;;12669:15;;;;:32;;-1:-1:-1;1041:6:0;;-1:-1:-1;;;;;12688:13:0;;;1041:6;;12688:13;;12669:32;:46;;;;-1:-1:-1;;;;;;12705:10:0;;;;12669:46;:60;;;;-1:-1:-1;;;;;;12719:10:0;;7537:6;12719:10;;12669:60;:73;;;;-1:-1:-1;12734:8:0;;-1:-1:-1;;;12734:8:0;;;;12733:9;12669:73;12665:1324;;;12764:14;;-1:-1:-1;;;12764:14:0;;;;12759:129;;-1:-1:-1;;;;;12807:18:0;;;;;;:12;:18;;;;;;;;;:38;;-1:-1:-1;;;;;;12829:16:0;;;;;;:12;:16;;;;;;;;12807:38;12799:73;;;;-1:-1:-1;;;12799:73:0;;11134:2:1;12799:73:0;;;11116:21:1;11173:2;11153:18;;;11146:30;-1:-1:-1;;;11192:18:1;;;11185:52;11254:18;;12799:73:0;10932:346:1;12799:73:0;12966:20;;;;12962:368;;;1041:6;;-1:-1:-1;;;;;13011:13:0;;;1041:6;;13011:13;;;;:47;;-1:-1:-1;13042:15:0;;-1:-1:-1;;;;;13028:30:0;;;13042:15;;13028:30;;13011:47;:79;;;;-1:-1:-1;13076:13:0;;-1:-1:-1;;;;;13062:28:0;;;13076:13;;13062:28;;13011:79;13007:308;;;13152:9;13123:39;;;;:28;:39;;;;;;13165:12;-1:-1:-1;13115:103:0;;;;-1:-1:-1;;;13115:103:0;;11485:2:1;13115:103:0;;;11467:21:1;11524:2;11504:18;;;11497:30;11563:34;11543:18;;;11536:62;-1:-1:-1;;;11614:18:1;;;11607:34;11658:19;;13115:103:0;11283:400:1;13115:103:0;13270:9;13241:39;;;;:28;:39;;;;;13283:12;13241:54;;13007:308;-1:-1:-1;;;;;13350:31:0;;;;;;:25;:31;;;;;;;;:60;;;;-1:-1:-1;;;;;;13386:24:0;;;;;;:20;:24;;;;;;;;13385:25;13350:60;13346:632;;;13449:20;;13439:6;:30;;13431:98;;;;-1:-1:-1;;;13431:98:0;;11890:2:1;13431:98:0;;;11872:21:1;11929:2;11909:18;;;11902:30;11968:34;11948:18;;;11941:62;12039:25;12019:18;;;12012:53;12082:19;;13431:98:0;11688:419:1;13431:98:0;13582:9;;-1:-1:-1;;;;;3338:18:0;;3311:7;3338:18;;;;;;;;;;;13556:22;;:6;:22;:::i;:::-;:35;;13548:68;;;;-1:-1:-1;;;13548:68:0;;12447:2:1;13548:68:0;;;12429:21:1;12486:2;12466:18;;;12459:30;-1:-1:-1;;;12505:18:1;;;12498:50;12565:18;;13548:68:0;12245:344:1;13548:68:0;13346:632;;;-1:-1:-1;;;;;13642:29:0;;;;;;:25;:29;;;;;;;;:60;;;;-1:-1:-1;;;;;;13676:26:0;;;;;;:20;:26;;;;;;;;13675:27;13642:60;13638:340;;;13741:20;;13731:6;:30;;13723:99;;;;-1:-1:-1;;;13723:99:0;;12796:2:1;13723:99:0;;;12778:21:1;12835:2;12815:18;;;12808:30;12874:34;12854:18;;;12847:62;12945:26;12925:18;;;12918:54;12989:19;;13723:99:0;12594:420:1;13638:340:0;-1:-1:-1;;;;;13849:24:0;;;;;;:20;:24;;;;;;;;13844:134;;13928:9;;-1:-1:-1;;;;;3338:18:0;;3311:7;3338:18;;;;;;;;;;;13902:22;;:6;:22;:::i;:::-;:35;;13894:68;;;;-1:-1:-1;;;13894:68:0;;12447:2:1;13894:68:0;;;12429:21:1;12486:2;12466:18;;;12459:30;-1:-1:-1;;;12505:18:1;;;12498:50;12565:18;;13894:68:0;12245:344:1;13894:68:0;14017:8;;-1:-1:-1;;;;;14040:18:0;;14001:12;14040:18;;;:12;:18;;;;;;14017:8;-1:-1:-1;;;14017:8:0;;;;;14016:9;;14040:18;;:38;;-1:-1:-1;;;;;;14062:16:0;;;;;;:12;:16;;;;;;;;14040:38;14036:86;;;-1:-1:-1;14105:5:0;14036:86;14134:17;14170:7;14166:337;;;-1:-1:-1;;;;;14198:29:0;;;;;;:25;:29;;;;;;;;:46;;;;-1:-1:-1;14231:9:0;;:13;;14198:46;14194:264;;;14288:9;;14277:30;;14303:3;;14277:21;;:6;;:10;:21::i;:30::-;14265:42;;14194:264;;;-1:-1:-1;;;;;14333:31:0;;;;;;:25;:31;;;;;;;;:47;;;;-1:-1:-1;14368:4:0;:8;:12;;14333:47;14329:129;;;14424:4;:8;14413:29;;14438:3;;14413:20;;:6;;:10;:20::i;:29::-;14401:41;;14329:129;14472:19;14482:9;14472:19;;:::i;:::-;;;14166:337;14559:4;14515:23;3338:18;;;;;;;;;;;14610;;14591:37;;;;;;;14657:35;;-1:-1:-1;14681:11:0;;-1:-1:-1;;;14681:11:0;;;;14657:35;:61;;;;-1:-1:-1;14710:8:0;;-1:-1:-1;;;14710:8:0;;;;14709:9;14657:61;:110;;;;-1:-1:-1;;;;;;14736:31:0;;;;;;:25;:31;;;;;;;;14735:32;14657:110;:146;;;;-1:-1:-1;;;;;;14785:18:0;;;;;;:12;:18;;;;;;;;14784:19;14657:146;:180;;;;-1:-1:-1;;;;;;14821:16:0;;;;;;:12;:16;;;;;;;;14820:17;14657:180;14639:480;;;14864:8;:15;;-1:-1:-1;;;;14864:15:0;-1:-1:-1;;;14864:15:0;;;14971:10;;14864:15;;14921:63;;14938:45;;14942:6;;14950:32;;14954:15;;14950:3;:32::i;:::-;14938:3;:45::i;:::-;14921:16;:63::i;:::-;15021:15;;15013:63;;15021:15;;;;-1:-1:-1;;;;;15021:15:0;;15050:21;;15013:63;;;;15050:21;15021:15;15013:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15091:8:0;:16;;-1:-1:-1;;;;15091:16:0;;;-1:-1:-1;;14639:480:0;15135:13;;15131:93;;15165:47;15181:4;15195;15202:9;15165:15;:47::i;:::-;15234:33;15250:4;15256:2;15260:6;15234:15;:33::i;:::-;12425:2850;;;;12346:2929;;;:::o;1314:191::-;1407:6;;;-1:-1:-1;;;;;1424:17:0;;;-1:-1:-1;;;;;;1424:17:0;;;;;;;1457:40;;1407:6;;;1424:17;1407:6;;1457:40;;1388:16;;1457:40;1377:128;1314:191;:::o;10462:105::-;10519:7;10549:1;10545;:5;10544:15;;10558:1;10544:15;;;-1:-1:-1;10554:1:0;10462:105;-1:-1:-1;10462:105:0:o;15283:473::-;15373:16;;;15387:1;15373:16;;;;;;;;15349:21;;15373:16;;;;;;;;;;-1:-1:-1;15373:16:0;15349:40;;15418:4;15400;15405:1;15400:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15400:23:0;;;:7;;;;;;;;;;:23;;;;15444:15;;:22;;;-1:-1:-1;;;15444:22:0;;;;:15;;;;;:20;;:22;;;;;15400:7;;15444:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15434:4;15439:1;15434:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15434:32:0;;;:7;;;;;;;;;:32;15511:15;;15479:62;;15496:4;;15511:15;15529:11;15479:8;:62::i;:::-;15552:15;;:196;;-1:-1:-1;;;15552:196:0;;-1:-1:-1;;;;;15552:15:0;;;;:66;;:196;;15633:11;;15552:15;;15675:4;;15702;;15722:15;;15552:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15338:418;15283:473;:::o;4210:806::-;-1:-1:-1;;;;;4307:18:0;;4299:68;;;;-1:-1:-1;;;4299:68:0;;14936:2:1;4299:68:0;;;14918:21:1;14975:2;14955:18;;;14948:30;15014:34;14994:18;;;14987:62;-1:-1:-1;;;15065:18:1;;;15058:35;15110:19;;4299:68:0;14734:401:1;4299:68:0;-1:-1:-1;;;;;4386:16:0;;4378:64;;;;-1:-1:-1;;;4378:64:0;;15342:2:1;4378:64:0;;;15324:21:1;15381:2;15361:18;;;15354:30;15420:34;15400:18;;;15393:62;-1:-1:-1;;;15471:18:1;;;15464:33;15514:19;;4378:64:0;15140:399:1;4378:64:0;-1:-1:-1;;;;;4528:15:0;;4506:19;4528:15;;;;;;;;;;;4562:21;;;;4554:72;;;;-1:-1:-1;;;4554:72:0;;15746:2:1;4554:72:0;;;15728:21:1;15785:2;15765:18;;;15758:30;15824:34;15804:18;;;15797:62;-1:-1:-1;;;15875:18:1;;;15868:36;15921:19;;4554:72:0;15544:402:1;4554:72:0;-1:-1:-1;;;;;4662:15:0;;;:9;:15;;;;;;;;;;;4680:20;;;4662:38;;4880:13;;;;;;;;;;:23;;;;;;4932:26;;2105:25:1;;;4880:13:0;;4932:26;;2078:18:1;4932:26:0;;;;;;;4971:37;6361:91;222:597:1;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;660:6;657:1;654:13;651:91;;;730:1;725:2;716:6;705:9;701:22;697:31;690:42;651:91;-1:-1:-1;803:2:1;782:15;-1:-1:-1;;778:29:1;763:45;;;;810:2;759:54;;222:597;-1:-1:-1;;;222:597:1:o;824:131::-;-1:-1:-1;;;;;899:31:1;;889:42;;879:70;;945:1;942;935:12;879:70;824:131;:::o;960:315::-;1028:6;1036;1089:2;1077:9;1068:7;1064:23;1060:32;1057:52;;;1105:1;1102;1095:12;1057:52;1144:9;1131:23;1163:31;1188:5;1163:31;:::i;:::-;1213:5;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;960:315:1:o;1472:248::-;1540:6;1548;1601:2;1589:9;1580:7;1576:23;1572:32;1569:52;;;1617:1;1614;1607:12;1569:52;-1:-1:-1;;1640:23:1;;;1710:2;1695:18;;;1682:32;;-1:-1:-1;1472:248:1:o;2141:456::-;2218:6;2226;2234;2287:2;2275:9;2266:7;2262:23;2258:32;2255:52;;;2303:1;2300;2293:12;2255:52;2342:9;2329:23;2361:31;2386:5;2361:31;:::i;:::-;2411:5;-1:-1:-1;2468:2:1;2453:18;;2440:32;2481:33;2440:32;2481:33;:::i;:::-;2141:456;;2533:7;;-1:-1:-1;;;2587:2:1;2572:18;;;;2559:32;;2141:456::o;2602:118::-;2688:5;2681:13;2674:21;2667:5;2664:32;2654:60;;2710:1;2707;2700:12;2725:382;2790:6;2798;2851:2;2839:9;2830:7;2826:23;2822:32;2819:52;;;2867:1;2864;2857:12;2819:52;2906:9;2893:23;2925:31;2950:5;2925:31;:::i;:::-;2975:5;-1:-1:-1;3032:2:1;3017:18;;3004:32;3045:30;3004:32;3045:30;:::i;:::-;3094:7;3084:17;;;2725:382;;;;;:::o;3301:247::-;3360:6;3413:2;3401:9;3392:7;3388:23;3384:32;3381:52;;;3429:1;3426;3419:12;3381:52;3468:9;3455:23;3487:31;3512:5;3487:31;:::i;3806:388::-;3874:6;3882;3935:2;3923:9;3914:7;3910:23;3906:32;3903:52;;;3951:1;3948;3941:12;3903:52;3990:9;3977:23;4009:31;4034:5;4009:31;:::i;:::-;4059:5;-1:-1:-1;4116:2:1;4101:18;;4088:32;4129:33;4088:32;4129:33;:::i;4199:380::-;4278:1;4274:12;;;;4321;;;4342:61;;4396:4;4388:6;4384:17;4374:27;;4342:61;4449:2;4441:6;4438:14;4418:18;4415:38;4412:161;;;4495:10;4490:3;4486:20;4483:1;4476:31;4530:4;4527:1;4520:15;4558:4;4555:1;4548:15;6066:127;6127:10;6122:3;6118:20;6115:1;6108:31;6158:4;6155:1;6148:15;6182:4;6179:1;6172:15;6198:125;6238:4;6266:1;6263;6260:8;6257:34;;;6271:18;;:::i;:::-;-1:-1:-1;6308:9:1;;6198:125::o;6940:306::-;7028:6;7036;7044;7097:2;7085:9;7076:7;7072:23;7068:32;7065:52;;;7113:1;7110;7103:12;7065:52;7142:9;7136:16;7126:26;;7192:2;7181:9;7177:18;7171:25;7161:35;;7236:2;7225:9;7221:18;7215:25;7205:35;;6940:306;;;;;:::o;7530:245::-;7597:6;7650:2;7638:9;7629:7;7625:23;7621:32;7618:52;;;7666:1;7663;7656:12;7618:52;7698:9;7692:16;7717:28;7739:5;7717:28;:::i;7780:168::-;7820:7;7886:1;7882;7878:6;7874:14;7871:1;7868:21;7863:1;7856:9;7849:17;7845:45;7842:71;;;7893:18;;:::i;:::-;-1:-1:-1;7933:9:1;;7780:168::o;7953:217::-;7993:1;8019;8009:132;;8063:10;8058:3;8054:20;8051:1;8044:31;8098:4;8095:1;8088:15;8126:4;8123:1;8116:15;8009:132;-1:-1:-1;8155:9:1;;7953:217::o;12112:128::-;12152:3;12183:1;12179:6;12176:1;12173:13;12170:39;;;12189:18;;:::i;:::-;-1:-1:-1;12225:9:1;;12112:128::o;13361:127::-;13422:10;13417:3;13413:20;13410:1;13403:31;13453:4;13450:1;13443:15;13477:4;13474:1;13467:15;13493:251;13563:6;13616:2;13604:9;13595:7;13591:23;13587:32;13584:52;;;13632:1;13629;13622:12;13584:52;13664:9;13658:16;13683:31;13708:5;13683:31;:::i;13749:980::-;14011:4;14059:3;14048:9;14044:19;14090:6;14079:9;14072:25;14116:2;14154:6;14149:2;14138:9;14134:18;14127:34;14197:3;14192:2;14181:9;14177:18;14170:31;14221:6;14256;14250:13;14287:6;14279;14272:22;14325:3;14314:9;14310:19;14303:26;;14364:2;14356:6;14352:15;14338:29;;14385:1;14395:195;14409:6;14406:1;14403:13;14395:195;;;14474:13;;-1:-1:-1;;;;;14470:39:1;14458:52;;14565:15;;;;14530:12;;;;14506:1;14424:9;14395:195;;;-1:-1:-1;;;;;;;14646:32:1;;;;14641:2;14626:18;;14619:60;-1:-1:-1;;;14710:3:1;14695:19;14688:35;14607:3;13749:980;-1:-1:-1;;;13749:980:1:o

Swarm Source

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