ETH Price: $3,324.18 (+0.48%)
 

Overview

Max Total Supply

1,000,000,000 MOON

Holders

39

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
24,938,656.788526327 MOON

Value
$0.00
0x3d066fcb11ebc18916e526922227298bb41cd5d8
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:
MOON

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

/**
The most asked question in the universe is WEN MOON? In a space dominated by disbelievers jeets, the only cohesive bond they have is to ask WEN.

Website: https://wenmoon.pro
Twitter: https://twitter.com/WEN_MOON_ERC
Telegram: https://t.me/WEN_MOON_GROUP
 */

pragma solidity 0.8.21;

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

library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;

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

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

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function waiveOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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

contract MOON is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    
    string private _name = "WEN MOON";
    string private _symbol = "MOON";
    uint8 private _decimals = 9;

    address payable private marketingWallet = payable(0x02A6035Eff929D9EF4394336bb0f0631e322d898);
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;

    uint256 public totalFeeIfBuying = 27;
    uint256 public totalFeeIfSelling = 27;

    uint256 private _totalSupply = 1000_000_000 * 10**9;
    uint256 public maxTxAmount = _totalSupply;
    uint256 public maxWalletAmount = _totalSupply*30/1000;
    uint256 private minTokensStartSwap = _totalSupply/100000; 
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    mapping (address => bool) public checkExcludedFromFees;
    mapping (address => bool) public checkWalletLimitExcept;
    mapping (address => bool) public checkTxLimitExcept;
    mapping (address => bool) public checkIfPairAddress;

    IUniswapV2Router02 public uniswapRouter;
    address public uniswapPair;
    
    bool inswap;
    bool public swapAndLiquifyEnabled = false;
    bool public checkWalletLimit = true;

    modifier lockTheSwap {
        inswap = true;
        _;
        inswap = false;
    }
    
    constructor () {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 

        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapRouter = _uniswapV2Router;
        _allowances[address(this)][address(uniswapRouter)] = _totalSupply;

        checkExcludedFromFees[owner()] = true;
        checkExcludedFromFees[marketingWallet] = true;

        checkWalletLimitExcept[owner()] = true;
        checkWalletLimitExcept[address(uniswapPair)] = true;
        checkWalletLimitExcept[address(this)] = true;
        
        checkTxLimitExcept[owner()] = true;
        checkTxLimitExcept[marketingWallet] = true;
        checkTxLimitExcept[address(this)] = true;

        checkIfPairAddress[address(uniswapPair)] = true;

        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

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

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

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

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

    function _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 setBuyFee(uint256 newfee) external onlyOwner() {
        totalFeeIfBuying = newfee;
        require (totalFeeIfBuying <= 10);
    }

    function setSellFee(uint256 newfee) external onlyOwner() {
        totalFeeIfSelling = newfee;
        require (totalFeeIfSelling <= 20);
    }
    
    function adjustMaxTxAmount(uint256 maxTxAmount_) external onlyOwner() {
        require(maxTxAmount >= _totalSupply/100, "Max wallet should be more or equal to 1%");
        maxTxAmount = maxTxAmount_;
    }

    function setcheckWalletLimitExcept(address holder, bool exempt) external onlyOwner {
        checkWalletLimitExcept[holder] = exempt;
    }

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        maxWalletAmount  = newLimit;
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

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

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

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        if(inswap)
        { 
            return _transferBasic(sender, recipient, amount); 
        }
        else
        {
            if(!checkTxLimitExcept[sender] && !checkTxLimitExcept[recipient]) {
                require(amount <= maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }            

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minTokensStartSwap;
            
            if (overMinimumTokenBalance && !inswap && !checkExcludedFromFees[sender] && checkIfPairAddress[recipient] && swapAndLiquifyEnabled && amount > minTokensStartSwap) 
            {
                swapBack(contractTokenBalance);    
            }

            (uint256 finalAmount, uint256 feeAmount) = takeFee(sender, recipient, amount);

            address feeReceiver = feeAmount == amount ? sender : address(this);
            if(feeAmount > 0) {
                _balances[feeReceiver] = _balances[feeReceiver].add(feeAmount);
                emit Transfer(sender, feeReceiver, feeAmount);
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            if(checkWalletLimit && !checkWalletLimitExcept[recipient])
                require(balanceOf(recipient).add(finalAmount) <= maxWalletAmount);

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
    }

    function _transferBasic(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function swapBack(uint256 tAmount) private lockTheSwap {
        swapTokensForEth(tAmount);
        uint256 amountETHMarketing = address(this).balance;
        sendETH(marketingWallet, amountETHMarketing);
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapRouter.WETH();

        _approve(address(this), address(uniswapRouter), tokenAmount);

        // make the swap
        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
    }

    function takeFee(address sender, address recipient, uint256 amount) internal view returns (uint256, uint256) {
        uint256 feeAmount = amount;
        if (sender == marketingWallet) return (amount, feeAmount);
        if(checkIfPairAddress[sender]) {
            feeAmount = amount.mul(totalFeeIfBuying).div(100);
        }
        else if(checkIfPairAddress[recipient]) {
            feeAmount = amount.mul(totalFeeIfSelling).div(100);
        }
        if (checkExcludedFromFees[sender]) {
            return (amount, 0);
        }
        return (amount.sub(feeAmount), feeAmount);
    }

    function sendETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

    function manualSend() external {
        sendETH(marketingWallet, address(this).balance);
    }

    receive() external payable {}
}

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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount_","type":"uint256"}],"name":"adjustMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkIfPairAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkTxLimitExcept","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkWalletLimitExcept","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newfee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newfee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setcheckWalletLimitExcept","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e0604052600860a0908152672ba2a71026a7a7a760c11b60c0526002906200002990826200055b565b5060408051808201909152600481526326a7a7a760e11b60208201526003906200005490826200055b565b50600480546001600160a81b0319167402a6035eff929d9ef4394336bb0f0631e322d8980917905561dead608052601b6005819055600655670de0b6b3a7640000600781905560088190556103e890620000b090601e62000623565b620000bc91906200064d565b600955620186a0600754620000d291906200064d565b600a556012805461ffff60a81b1916600160b01b179055348015620000f5575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3505f737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b191906200066d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200022391906200066d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200026e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200029491906200066d565b601280546001600160a01b039283166001600160a01b031991821617909155601180549284169290911682179055600754305f908152600c6020908152604080832094835293905291822055600190600d90620002f85f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905560045461010090049091168152600d909252812080549092166001908117909255600e906200035b5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790556012549091168152600e90925280822080548416600190811790915530835290822080549093168117909255600f90620003c95f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055600454610100900482168152600f845282812080548616600190811790915530825283822080548716821790556012549092168152601090935290822080549093161790915560075490600b906200044b3390565b6001600160a01b0316815260208101919091526040015f2055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600754604051620004ac91815260200190565b60405180910390a3506200069c565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620004e457607f821691505b6020821081036200050357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000556575f81815260208120601f850160051c81016020861015620005315750805b601f850160051c820191505b8181101562000552578281556001016200053d565b5050505b505050565b81516001600160401b03811115620005775762000577620004bb565b6200058f81620005888454620004cf565b8462000509565b602080601f831160018114620005c5575f8415620005ad5750858301515b5f19600386901b1c1916600185901b17855562000552565b5f85815260208120601f198616915b82811015620005f557888601518255948401946001909101908401620005d4565b50858210156200061357878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b80820281158282048414176200064757634e487b7160e01b5f52601160045260245ffd5b92915050565b5f826200066857634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156200067e575f80fd5b81516001600160a01b038116811462000695575f80fd5b9392505050565b60805161195c620006bc5f395f81816102bc01526107b6015261195c5ff3fe6080604052600436106101e9575f3560e01c80638f03aad511610108578063c78a789b1161009d578063f1d5f5171161006d578063f1d5f517146105be578063f2fde38b146105dd578063f4293890146105fc578063f872858a14610610578063fabf706314610630575f80fd5b8063c78a789b14610518578063c816841b14610546578063ca987b0e14610565578063dd62ed3e1461057a575f80fd5b80639772bbdb116100d85780639772bbdb14610497578063a9059cbb146104c5578063aa4bde28146104e4578063c49b9a80146104f9575f80fd5b80638f03aad51461043b578063914eb66a1461045a578063935fe68c1461046e57806395d89b4114610483575f80fd5b80634a74bb021161017e578063735de9f71161014e578063735de9f7146103cc5780638b4cee08146103eb5780638c0b5e221461040a5780638da5cb5b1461041f575f80fd5b80634a74bb021461032b578063526012e81461034b57806357e6adcb1461037957806370a0823114610398575f80fd5b806323b872dd116101b957806323b872dd1461028c57806327c8f835146102ab5780632b112e49146102f6578063313ce5671461030a575f80fd5b806306fdde03146101f4578063095ea7b31461021e5780630cc835a31461024d57806318160ddd1461026e575f80fd5b366101f057005b5f80fd5b3480156101ff575f80fd5b5061020861065e565b60405161021591906115f3565b60405180910390f35b348015610229575f80fd5b5061023d610238366004611652565b6106ee565b6040519015158152602001610215565b348015610258575f80fd5b5061026c61026736600461167c565b610704565b005b348015610279575f80fd5b506007545b604051908152602001610215565b348015610297575f80fd5b5061023d6102a6366004611693565b61074b565b3480156102b6575f80fd5b506102de7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610215565b348015610301575f80fd5b5061027e6107b4565b348015610315575f80fd5b5060045460405160ff9091168152602001610215565b348015610336575f80fd5b5060125461023d90600160a81b900460ff1681565b348015610356575f80fd5b5061023d6103653660046116d1565b600e6020525f908152604090205460ff1681565b348015610384575f80fd5b5061026c610393366004611700565b6107fd565b3480156103a3575f80fd5b5061027e6103b23660046116d1565b6001600160a01b03165f908152600b602052604090205490565b3480156103d7575f80fd5b506011546102de906001600160a01b031681565b3480156103f6575f80fd5b5061026c61040536600461167c565b610850565b348015610415575f80fd5b5061027e60085481565b34801561042a575f80fd5b505f546001600160a01b03166102de565b348015610446575f80fd5b5061026c61045536600461167c565b61088b565b348015610465575f80fd5b5061026c61092a565b348015610479575f80fd5b5061027e60055481565b34801561048e575f80fd5b5061020861099b565b3480156104a2575f80fd5b5061023d6104b13660046116d1565b60106020525f908152604090205460ff1681565b3480156104d0575f80fd5b5061023d6104df366004611652565b6109aa565b3480156104ef575f80fd5b5061027e60095481565b348015610504575f80fd5b5061026c610513366004611733565b6109b6565b348015610523575f80fd5b5061023d6105323660046116d1565b600f6020525f908152604090205460ff1681565b348015610551575f80fd5b506012546102de906001600160a01b031681565b348015610570575f80fd5b5061027e60065481565b348015610585575f80fd5b5061027e61059436600461174c565b6001600160a01b039182165f908152600c6020908152604080832093909416825291909152205490565b3480156105c9575f80fd5b5061026c6105d836600461167c565b6109fd565b3480156105e8575f80fd5b5061026c6105f73660046116d1565b610a2b565b348015610607575f80fd5b5061026c610b12565b34801561061b575f80fd5b5060125461023d90600160b01b900460ff1681565b34801561063b575f80fd5b5061023d61064a3660046116d1565b600d6020525f908152604090205460ff1681565b60606002805461066d90611783565b80601f016020809104026020016040519081016040528092919081815260200182805461069990611783565b80156106e45780601f106106bb576101008083540402835291602001916106e4565b820191905f5260205f20905b8154815290600101906020018083116106c757829003601f168201915b5050505050905090565b5f6106fa338484610b2f565b5060015b92915050565b5f546001600160a01b031633146107365760405162461bcd60e51b815260040161072d906117bb565b60405180910390fd5b6005819055600a811115610748575f80fd5b50565b5f610757848484610c52565b506107a984336107a4856040518060600160405280602881526020016118ff602891396001600160a01b038a165f908152600c60209081526040808320338452909152902054919061108f565b610b2f565b5060015b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165f908152600b60205260408120546007546107f8916110c7565b905090565b5f546001600160a01b031633146108265760405162461bcd60e51b815260040161072d906117bb565b6001600160a01b03919091165f908152600e60205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146108795760405162461bcd60e51b815260040161072d906117bb565b60068190556014811115610748575f80fd5b5f546001600160a01b031633146108b45760405162461bcd60e51b815260040161072d906117bb565b60646007546108c39190611804565b60085410156109255760405162461bcd60e51b815260206004820152602860248201527f4d61782077616c6c65742073686f756c64206265206d6f7265206f7220657175604482015267616c20746f20312560c01b606482015260840161072d565b600855565b5f546001600160a01b031633146109535760405162461bcd60e51b815260040161072d906117bb565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b60606003805461066d90611783565b5f6107a9338484610c52565b5f546001600160a01b031633146109df5760405162461bcd60e51b815260040161072d906117bb565b60128054911515600160a81b0260ff60a81b19909216919091179055565b5f546001600160a01b03163314610a265760405162461bcd60e51b815260040161072d906117bb565b600955565b5f546001600160a01b03163314610a545760405162461bcd60e51b815260040161072d906117bb565b6001600160a01b038116610ab95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161072d565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b600454610b2d9061010090046001600160a01b031647611108565b565b6001600160a01b038316610b915760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161072d565b6001600160a01b038216610bf25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161072d565b6001600160a01b038381165f818152600c602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416610cb75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161072d565b6001600160a01b038316610d195760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161072d565b601254600160a01b900460ff1615610d3d57610d36848484611140565b90506107ad565b6001600160a01b0384165f908152600f602052604090205460ff16158015610d7d57506001600160a01b0383165f908152600f602052604090205460ff16155b15610de557600854821115610de55760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b606482015260840161072d565b305f908152600b6020526040902054600a5481108015908190610e125750601254600160a01b900460ff16155b8015610e3657506001600160a01b0386165f908152600d602052604090205460ff16155b8015610e5957506001600160a01b0385165f9081526010602052604090205460ff165b8015610e6e5750601254600160a81b900460ff165b8015610e7b5750600a5484115b15610e8957610e8982611223565b5f80610e9688888861126d565b915091505f868214610ea85730610eaa565b885b90508115610f30576001600160a01b0381165f908152600b6020526040902054610ed4908361135f565b6001600160a01b038083165f818152600b602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f279086815260200190565b60405180910390a35b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038c165f908152600b9091529190912054610f8191899061108f565b6001600160a01b038a165f908152600b6020526040902055601254600160b01b900460ff168015610fca57506001600160a01b0388165f908152600e602052604090205460ff16155b1561100457600954610ffa84610ff48b6001600160a01b03165f908152600b602052604090205490565b9061135f565b1115611004575f80fd5b6001600160a01b0388165f908152600b6020526040902054611026908461135f565b6001600160a01b03808a165f818152600b602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110799087815260200190565b60405180910390a36001955050505050506107ad565b5f81848411156110b25760405162461bcd60e51b815260040161072d91906115f3565b505f6110be8486611823565b95945050505050565b5f6107ad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061108f565b6040516001600160a01b0383169082156108fc029083905f818181858888f1935050505015801561113b573d5f803e3d5ffd5b505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600b9091529182205461119091849061108f565b6001600160a01b038086165f908152600b602052604080822093909355908516815220546111be908361135f565b6001600160a01b038085165f818152600b602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112119086815260200190565b60405180910390a35060019392505050565b6012805460ff60a01b1916600160a01b17905561123f816113bd565b600454479061125c9061010090046001600160a01b031682611108565b50506012805460ff60a01b19169055565b6004545f90819083906001600160a01b03610100909104811690871603611298578392509050611357565b6001600160a01b0386165f9081526010602052604090205460ff16156112df576112d860646112d26005548761150d90919063ffffffff16565b9061158b565b905061131c565b6001600160a01b0385165f9081526010602052604090205460ff161561131c5761131960646112d26006548761150d90919063ffffffff16565b90505b6001600160a01b0386165f908152600d602052604090205460ff161561134857835f9250925050611357565b61135284826110c7565b925090505b935093915050565b5f8061136b8385611836565b9050838110156107ad5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161072d565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106113f0576113f0611849565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611447573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061146b919061185d565b8160018151811061147e5761147e611849565b6001600160a01b0392831660209182029290920101526011546114a49130911684610b2f565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906114dc9085905f90869030904290600401611878565b5f604051808303815f87803b1580156114f3575f80fd5b505af1158015611505573d5f803e3d5ffd5b505050505050565b5f825f0361151c57505f6106fe565b5f61152783856118e7565b9050826115348583611804565b146107ad5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161072d565b5f6107ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f81836115e75760405162461bcd60e51b815260040161072d91906115f3565b505f6110be8486611804565b5f6020808352835180828501525f5b8181101561161e57858101830151858201604001528201611602565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610748575f80fd5b5f8060408385031215611663575f80fd5b823561166e8161163e565b946020939093013593505050565b5f6020828403121561168c575f80fd5b5035919050565b5f805f606084860312156116a5575f80fd5b83356116b08161163e565b925060208401356116c08161163e565b929592945050506040919091013590565b5f602082840312156116e1575f80fd5b81356107ad8161163e565b803580151581146116fb575f80fd5b919050565b5f8060408385031215611711575f80fd5b823561171c8161163e565b915061172a602084016116ec565b90509250929050565b5f60208284031215611743575f80fd5b6107ad826116ec565b5f806040838503121561175d575f80fd5b82356117688161163e565b915060208301356117788161163e565b809150509250929050565b600181811c9082168061179757607f821691505b6020821081036117b557634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f8261181e57634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156106fe576106fe6117f0565b808201808211156106fe576106fe6117f0565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561186d575f80fd5b81516107ad8161163e565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118c65784516001600160a01b0316835293830193918301916001016118a1565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176106fe576106fe6117f056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d9a1d4d9ef485dbe7d93a47678ae757f1f988425ffc6b530f1adabf3b4ce3b8c64736f6c63430008150033

Deployed Bytecode

0x6080604052600436106101e9575f3560e01c80638f03aad511610108578063c78a789b1161009d578063f1d5f5171161006d578063f1d5f517146105be578063f2fde38b146105dd578063f4293890146105fc578063f872858a14610610578063fabf706314610630575f80fd5b8063c78a789b14610518578063c816841b14610546578063ca987b0e14610565578063dd62ed3e1461057a575f80fd5b80639772bbdb116100d85780639772bbdb14610497578063a9059cbb146104c5578063aa4bde28146104e4578063c49b9a80146104f9575f80fd5b80638f03aad51461043b578063914eb66a1461045a578063935fe68c1461046e57806395d89b4114610483575f80fd5b80634a74bb021161017e578063735de9f71161014e578063735de9f7146103cc5780638b4cee08146103eb5780638c0b5e221461040a5780638da5cb5b1461041f575f80fd5b80634a74bb021461032b578063526012e81461034b57806357e6adcb1461037957806370a0823114610398575f80fd5b806323b872dd116101b957806323b872dd1461028c57806327c8f835146102ab5780632b112e49146102f6578063313ce5671461030a575f80fd5b806306fdde03146101f4578063095ea7b31461021e5780630cc835a31461024d57806318160ddd1461026e575f80fd5b366101f057005b5f80fd5b3480156101ff575f80fd5b5061020861065e565b60405161021591906115f3565b60405180910390f35b348015610229575f80fd5b5061023d610238366004611652565b6106ee565b6040519015158152602001610215565b348015610258575f80fd5b5061026c61026736600461167c565b610704565b005b348015610279575f80fd5b506007545b604051908152602001610215565b348015610297575f80fd5b5061023d6102a6366004611693565b61074b565b3480156102b6575f80fd5b506102de7f000000000000000000000000000000000000000000000000000000000000dead81565b6040516001600160a01b039091168152602001610215565b348015610301575f80fd5b5061027e6107b4565b348015610315575f80fd5b5060045460405160ff9091168152602001610215565b348015610336575f80fd5b5060125461023d90600160a81b900460ff1681565b348015610356575f80fd5b5061023d6103653660046116d1565b600e6020525f908152604090205460ff1681565b348015610384575f80fd5b5061026c610393366004611700565b6107fd565b3480156103a3575f80fd5b5061027e6103b23660046116d1565b6001600160a01b03165f908152600b602052604090205490565b3480156103d7575f80fd5b506011546102de906001600160a01b031681565b3480156103f6575f80fd5b5061026c61040536600461167c565b610850565b348015610415575f80fd5b5061027e60085481565b34801561042a575f80fd5b505f546001600160a01b03166102de565b348015610446575f80fd5b5061026c61045536600461167c565b61088b565b348015610465575f80fd5b5061026c61092a565b348015610479575f80fd5b5061027e60055481565b34801561048e575f80fd5b5061020861099b565b3480156104a2575f80fd5b5061023d6104b13660046116d1565b60106020525f908152604090205460ff1681565b3480156104d0575f80fd5b5061023d6104df366004611652565b6109aa565b3480156104ef575f80fd5b5061027e60095481565b348015610504575f80fd5b5061026c610513366004611733565b6109b6565b348015610523575f80fd5b5061023d6105323660046116d1565b600f6020525f908152604090205460ff1681565b348015610551575f80fd5b506012546102de906001600160a01b031681565b348015610570575f80fd5b5061027e60065481565b348015610585575f80fd5b5061027e61059436600461174c565b6001600160a01b039182165f908152600c6020908152604080832093909416825291909152205490565b3480156105c9575f80fd5b5061026c6105d836600461167c565b6109fd565b3480156105e8575f80fd5b5061026c6105f73660046116d1565b610a2b565b348015610607575f80fd5b5061026c610b12565b34801561061b575f80fd5b5060125461023d90600160b01b900460ff1681565b34801561063b575f80fd5b5061023d61064a3660046116d1565b600d6020525f908152604090205460ff1681565b60606002805461066d90611783565b80601f016020809104026020016040519081016040528092919081815260200182805461069990611783565b80156106e45780601f106106bb576101008083540402835291602001916106e4565b820191905f5260205f20905b8154815290600101906020018083116106c757829003601f168201915b5050505050905090565b5f6106fa338484610b2f565b5060015b92915050565b5f546001600160a01b031633146107365760405162461bcd60e51b815260040161072d906117bb565b60405180910390fd5b6005819055600a811115610748575f80fd5b50565b5f610757848484610c52565b506107a984336107a4856040518060600160405280602881526020016118ff602891396001600160a01b038a165f908152600c60209081526040808320338452909152902054919061108f565b610b2f565b5060015b9392505050565b7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b03165f908152600b60205260408120546007546107f8916110c7565b905090565b5f546001600160a01b031633146108265760405162461bcd60e51b815260040161072d906117bb565b6001600160a01b03919091165f908152600e60205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146108795760405162461bcd60e51b815260040161072d906117bb565b60068190556014811115610748575f80fd5b5f546001600160a01b031633146108b45760405162461bcd60e51b815260040161072d906117bb565b60646007546108c39190611804565b60085410156109255760405162461bcd60e51b815260206004820152602860248201527f4d61782077616c6c65742073686f756c64206265206d6f7265206f7220657175604482015267616c20746f20312560c01b606482015260840161072d565b600855565b5f546001600160a01b031633146109535760405162461bcd60e51b815260040161072d906117bb565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b60606003805461066d90611783565b5f6107a9338484610c52565b5f546001600160a01b031633146109df5760405162461bcd60e51b815260040161072d906117bb565b60128054911515600160a81b0260ff60a81b19909216919091179055565b5f546001600160a01b03163314610a265760405162461bcd60e51b815260040161072d906117bb565b600955565b5f546001600160a01b03163314610a545760405162461bcd60e51b815260040161072d906117bb565b6001600160a01b038116610ab95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161072d565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b600454610b2d9061010090046001600160a01b031647611108565b565b6001600160a01b038316610b915760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161072d565b6001600160a01b038216610bf25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161072d565b6001600160a01b038381165f818152600c602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416610cb75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161072d565b6001600160a01b038316610d195760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161072d565b601254600160a01b900460ff1615610d3d57610d36848484611140565b90506107ad565b6001600160a01b0384165f908152600f602052604090205460ff16158015610d7d57506001600160a01b0383165f908152600f602052604090205460ff16155b15610de557600854821115610de55760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b606482015260840161072d565b305f908152600b6020526040902054600a5481108015908190610e125750601254600160a01b900460ff16155b8015610e3657506001600160a01b0386165f908152600d602052604090205460ff16155b8015610e5957506001600160a01b0385165f9081526010602052604090205460ff165b8015610e6e5750601254600160a81b900460ff165b8015610e7b5750600a5484115b15610e8957610e8982611223565b5f80610e9688888861126d565b915091505f868214610ea85730610eaa565b885b90508115610f30576001600160a01b0381165f908152600b6020526040902054610ed4908361135f565b6001600160a01b038083165f818152600b602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f279086815260200190565b60405180910390a35b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038c165f908152600b9091529190912054610f8191899061108f565b6001600160a01b038a165f908152600b6020526040902055601254600160b01b900460ff168015610fca57506001600160a01b0388165f908152600e602052604090205460ff16155b1561100457600954610ffa84610ff48b6001600160a01b03165f908152600b602052604090205490565b9061135f565b1115611004575f80fd5b6001600160a01b0388165f908152600b6020526040902054611026908461135f565b6001600160a01b03808a165f818152600b602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110799087815260200190565b60405180910390a36001955050505050506107ad565b5f81848411156110b25760405162461bcd60e51b815260040161072d91906115f3565b505f6110be8486611823565b95945050505050565b5f6107ad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061108f565b6040516001600160a01b0383169082156108fc029083905f818181858888f1935050505015801561113b573d5f803e3d5ffd5b505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600b9091529182205461119091849061108f565b6001600160a01b038086165f908152600b602052604080822093909355908516815220546111be908361135f565b6001600160a01b038085165f818152600b602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112119086815260200190565b60405180910390a35060019392505050565b6012805460ff60a01b1916600160a01b17905561123f816113bd565b600454479061125c9061010090046001600160a01b031682611108565b50506012805460ff60a01b19169055565b6004545f90819083906001600160a01b03610100909104811690871603611298578392509050611357565b6001600160a01b0386165f9081526010602052604090205460ff16156112df576112d860646112d26005548761150d90919063ffffffff16565b9061158b565b905061131c565b6001600160a01b0385165f9081526010602052604090205460ff161561131c5761131960646112d26006548761150d90919063ffffffff16565b90505b6001600160a01b0386165f908152600d602052604090205460ff161561134857835f9250925050611357565b61135284826110c7565b925090505b935093915050565b5f8061136b8385611836565b9050838110156107ad5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161072d565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106113f0576113f0611849565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611447573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061146b919061185d565b8160018151811061147e5761147e611849565b6001600160a01b0392831660209182029290920101526011546114a49130911684610b2f565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906114dc9085905f90869030904290600401611878565b5f604051808303815f87803b1580156114f3575f80fd5b505af1158015611505573d5f803e3d5ffd5b505050505050565b5f825f0361151c57505f6106fe565b5f61152783856118e7565b9050826115348583611804565b146107ad5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161072d565b5f6107ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f81836115e75760405162461bcd60e51b815260040161072d91906115f3565b505f6110be8486611804565b5f6020808352835180828501525f5b8181101561161e57858101830151858201604001528201611602565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610748575f80fd5b5f8060408385031215611663575f80fd5b823561166e8161163e565b946020939093013593505050565b5f6020828403121561168c575f80fd5b5035919050565b5f805f606084860312156116a5575f80fd5b83356116b08161163e565b925060208401356116c08161163e565b929592945050506040919091013590565b5f602082840312156116e1575f80fd5b81356107ad8161163e565b803580151581146116fb575f80fd5b919050565b5f8060408385031215611711575f80fd5b823561171c8161163e565b915061172a602084016116ec565b90509250929050565b5f60208284031215611743575f80fd5b6107ad826116ec565b5f806040838503121561175d575f80fd5b82356117688161163e565b915060208301356117788161163e565b809150509250929050565b600181811c9082168061179757607f821691505b6020821081036117b557634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f8261181e57634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156106fe576106fe6117f0565b808201808211156106fe576106fe6117f0565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561186d575f80fd5b81516107ad8161163e565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118c65784516001600160a01b0316835293830193918301916001016118a1565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176106fe576106fe6117f056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d9a1d4d9ef485dbe7d93a47678ae757f1f988425ffc6b530f1adabf3b4ce3b8c64736f6c63430008150033

Deployed Bytecode Sourcemap

4785:9018:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7192:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7855:161;;;;;;;;;;-1:-1:-1;7855:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7855:161:0;1023:187:1;8369:143:0;;;;;;;;;;-1:-1:-1;8369:143:0;;;;;:::i;:::-;;:::i;:::-;;7469:100;;;;;;;;;;-1:-1:-1;7549:12:0;;7469:100;;;1546:25:1;;;1534:2;1519:18;7469:100:0;1400:177:1;9600:313:0;;;;;;;;;;-1:-1:-1;9600:313:0;;;;;:::i;:::-;;:::i;5093:81::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2207:32:1;;;2189:51;;2177:2;2162:18;5093:81:0;2043:203:1;9289:128:0;;;;;;;;;;;;;:::i;7378:83::-;;;;;;;;;;-1:-1:-1;7444:9:0;;7378:83;;7444:9;;;;2393:36:1;;2381:2;2366:18;7378:83:0;2251:184:1;5979:41:0;;;;;;;;;;-1:-1:-1;5979:41:0;;;;-1:-1:-1;;;5979:41:0;;;;;;5696:55;;;;;;;;;;-1:-1:-1;5696:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8896:141;;;;;;;;;;-1:-1:-1;8896:141:0;;;;;:::i;:::-;;:::i;7577:119::-;;;;;;;;;;-1:-1:-1;7577:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7670:18:0;7643:7;7670:18;;;:9;:18;;;;;;;7577:119;5876:39;;;;;;;;;;-1:-1:-1;5876:39:0;;;;-1:-1:-1;;;;;5876:39:0;;;8520:146;;;;;;;;;;-1:-1:-1;8520:146:0;;;;;:::i;:::-;;:::i;5330:41::-;;;;;;;;;;;;;;;;2407:79;;;;;;;;;;-1:-1:-1;2445:7:0;2472:6;-1:-1:-1;;;;;2472:6:0;2407:79;;8678:210;;;;;;;;;;-1:-1:-1;8678:210:0;;;;;:::i;:::-;;:::i;2632:145::-;;;;;;;;;;;;;:::i;5183:36::-;;;;;;;;;;;;;;;;7283:87;;;;;;;;;;;;;:::i;5816:51::-;;;;;;;;;;-1:-1:-1;5816:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9425:167;;;;;;;;;;-1:-1:-1;9425:167:0;;;;;:::i;:::-;;:::i;5378:53::-;;;;;;;;;;;;;;;;9160:117;;;;;;;;;;-1:-1:-1;9160:117:0;;;;;:::i;:::-;;:::i;5758:51::-;;;;;;;;;;-1:-1:-1;5758:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5922:26;;;;;;;;;;-1:-1:-1;5922:26:0;;;;-1:-1:-1;;;;;5922:26:0;;;5226:37;;;;;;;;;;;;;;;;7704:143;;;;;;;;;;-1:-1:-1;7704:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7812:18:0;;;7785:7;7812:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7704:143;9045:107;;;;;;;;;;-1:-1:-1;9045:107:0;;;;;:::i;:::-;;:::i;2785:244::-;;;;;;;;;;-1:-1:-1;2785:244:0;;;;;:::i;:::-;;:::i;13666:97::-;;;;;;;;;;;;;:::i;6027:35::-;;;;;;;;;;-1:-1:-1;6027:35:0;;;;-1:-1:-1;;;6027:35:0;;;;;;5635:54;;;;;;;;;;-1:-1:-1;5635:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7192:83;7229:13;7262:5;7255:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7192:83;:::o;7855:161::-;7930:4;7947:39;470:10;7970:7;7979:6;7947:8;:39::i;:::-;-1:-1:-1;8004:4:0;7855:161;;;;;:::o;8369:143::-;2541:6;;-1:-1:-1;;;;;2541:6:0;470:10;2541:22;2533:67;;;;-1:-1:-1;;;2533:67:0;;;;;;;:::i;:::-;;;;;;;;;8436:16:::1;:25:::0;;;8501:2:::1;8481:22:::0;::::1;;8472:32;;;::::0;::::1;;8369:143:::0;:::o;9600:313::-;9698:4;9715:36;9725:6;9733:9;9744:6;9715:9;:36::i;:::-;-1:-1:-1;9762:121:0;9771:6;470:10;9793:89;9831:6;9793:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9793:19:0;;;;;;:11;:19;;;;;;;;470:10;9793:33;;;;;;;;;;:37;:89::i;:::-;9762:8;:121::i;:::-;-1:-1:-1;9901:4:0;9600:313;;;;;;:::o;9289:128::-;9396:11;-1:-1:-1;;;;;7670:18:0;9342:7;7670:18;;;:9;:18;;;;;;9369:12;;:40;;:16;:40::i;:::-;9362:47;;9289:128;:::o;8896:141::-;2541:6;;-1:-1:-1;;;;;2541:6:0;470:10;2541:22;2533:67;;;;-1:-1:-1;;;2533:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8990:30:0;;;::::1;;::::0;;;:22:::1;:30;::::0;;;;:39;;-1:-1:-1;;8990:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8896:141::o;8520:146::-;2541:6;;-1:-1:-1;;;;;2541:6:0;470:10;2541:22;2533:67;;;;-1:-1:-1;;;2533:67:0;;;;;;;:::i;:::-;8588:17:::1;:26:::0;;;8655:2:::1;8634:23:::0;::::1;;8625:33;;;::::0;::::1;8678:210:::0;2541:6;;-1:-1:-1;;;;;2541:6:0;470:10;2541:22;2533:67;;;;-1:-1:-1;;;2533:67:0;;;;;;;:::i;:::-;8795:3:::1;8782:12;;:16;;;;:::i;:::-;8767:11;;:31;;8759:84;;;::::0;-1:-1:-1;;;8759:84:0;;5291:2:1;8759:84:0::1;::::0;::::1;5273:21:1::0;5330:2;5310:18;;;5303:30;5369:34;5349:18;;;5342:62;-1:-1:-1;;;5420:18:1;;;5413:38;5468:19;;8759:84:0::1;5089:404:1::0;8759:84:0::1;8854:11;:26:::0;8678:210::o;2632:145::-;2541:6;;-1:-1:-1;;;;;2541:6:0;470:10;2541:22;2533:67;;;;-1:-1:-1;;;2533:67:0;;;;;;;:::i;:::-;2736:1:::1;2720:6:::0;;2699:40:::1;::::0;-1:-1:-1;;;;;2720:6:0;;::::1;::::0;2699:40:::1;::::0;2736:1;;2699:40:::1;2767:1;2750:19:::0;;-1:-1:-1;;;;;;2750:19:0::1;::::0;;2632:145::o;7283:87::-;7322:13;7355:7;7348:14;;;;;:::i;9425:167::-;9503:4;9520:42;470:10;9544:9;9555:6;9520:9;:42::i;9160:117::-;2541:6;;-1:-1:-1;;;;;2541:6:0;470:10;2541:22;2533:67;;;;-1:-1:-1;;;2533:67:0;;;;;;;:::i;:::-;9237:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;9237:32:0::1;-1:-1:-1::0;;;;9237:32:0;;::::1;::::0;;;::::1;::::0;;9160:117::o;9045:107::-;2541:6;;-1:-1:-1;;;;;2541:6:0;470:10;2541:22;2533:67;;;;-1:-1:-1;;;2533:67:0;;;;;;;:::i;:::-;9117:15:::1;:27:::0;9045:107::o;2785:244::-;2541:6;;-1:-1:-1;;;;;2541:6:0;470:10;2541:22;2533:67;;;;-1:-1:-1;;;2533:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2874:22:0;::::1;2866:73;;;::::0;-1:-1:-1;;;2866:73:0;;5700:2:1;2866:73:0::1;::::0;::::1;5682:21:1::0;5739:2;5719:18;;;5712:30;5778:34;5758:18;;;5751:62;-1:-1:-1;;;5829:18:1;;;5822:36;5875:19;;2866:73:0::1;5498:402:1::0;2866:73:0::1;2976:6;::::0;;2955:38:::1;::::0;-1:-1:-1;;;;;2955:38:0;;::::1;::::0;2976:6;::::1;::::0;2955:38:::1;::::0;::::1;3004:6;:17:::0;;-1:-1:-1;;;;;;3004:17:0::1;-1:-1:-1::0;;;;;3004:17:0;;;::::1;::::0;;;::::1;::::0;;2785:244::o;13666:97::-;13716:15;;13708:47;;13716:15;;;-1:-1:-1;;;;;13716:15:0;13733:21;13708:7;:47::i;:::-;13666:97::o;8024:337::-;-1:-1:-1;;;;;8117:19:0;;8109:68;;;;-1:-1:-1;;;8109:68:0;;6107:2:1;8109:68:0;;;6089:21:1;6146:2;6126:18;;;6119:30;6185:34;6165:18;;;6158:62;-1:-1:-1;;;6236:18:1;;;6229:34;6280:19;;8109:68:0;5905:400:1;8109:68:0;-1:-1:-1;;;;;8196:21:0;;8188:68;;;;-1:-1:-1;;;8188:68:0;;6512:2:1;8188:68:0;;;6494:21:1;6551:2;6531:18;;;6524:30;6590:34;6570:18;;;6563:62;-1:-1:-1;;;6641:18:1;;;6634:32;6683:19;;8188:68:0;6310:398:1;8188:68:0;-1:-1:-1;;;;;8269:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8321:32;;1546:25:1;;;8321:32:0;;1519:18:1;8321:32:0;;;;;;;8024:337;;;:::o;9921:1829::-;10008:4;-1:-1:-1;;;;;10035:20:0;;10027:70;;;;-1:-1:-1;;;10027:70:0;;6915:2:1;10027:70:0;;;6897:21:1;6954:2;6934:18;;;6927:30;6993:34;6973:18;;;6966:62;-1:-1:-1;;;7044:18:1;;;7037:35;7089:19;;10027:70:0;6713:401:1;10027:70:0;-1:-1:-1;;;;;10116:23:0;;10108:71;;;;-1:-1:-1;;;10108:71:0;;7321:2:1;10108:71:0;;;7303:21:1;7360:2;7340:18;;;7333:30;7399:34;7379:18;;;7372:62;-1:-1:-1;;;7450:18:1;;;7443:33;7493:19;;10108:71:0;7119:399:1;10108:71:0;10195:6;;-1:-1:-1;;;10195:6:0;;;;10192:1551;;;10235:41;10250:6;10258:9;10269:6;10235:14;:41::i;:::-;10228:48;;;;10192:1551;-1:-1:-1;;;;;10332:26:0;;;;;;:18;:26;;;;;;;;10331:27;:61;;;;-1:-1:-1;;;;;;10363:29:0;;;;;;:18;:29;;;;;;;;10362:30;10331:61;10328:175;;;10431:11;;10421:6;:21;;10413:74;;;;-1:-1:-1;;;10413:74:0;;7725:2:1;10413:74:0;;;7707:21:1;7764:2;7744:18;;;7737:30;7803:34;7783:18;;;7776:62;-1:-1:-1;;;7854:18:1;;;7847:38;7902:19;;10413:74:0;7523:404:1;10413:74:0;10580:4;10531:28;7670:18;;;:9;:18;;;;;;10656;;10632:42;;;;;;;10707:34;;-1:-1:-1;10735:6:0;;-1:-1:-1;;;10735:6:0;;;;10734:7;10707:34;:68;;;;-1:-1:-1;;;;;;10746:29:0;;;;;;:21;:29;;;;;;;;10745:30;10707:68;:101;;;;-1:-1:-1;;;;;;10779:29:0;;;;;;:18;:29;;;;;;;;10707:101;:126;;;;-1:-1:-1;10812:21:0;;-1:-1:-1;;;10812:21:0;;;;10707:126;:157;;;;;10846:18;;10837:6;:27;10707:157;10703:246;;;10899:30;10908:20;10899:8;:30::i;:::-;10966:19;10987:17;11008:34;11016:6;11024:9;11035:6;11008:7;:34::i;:::-;10965:77;;;;11059:19;11094:6;11081:9;:19;:44;;11120:4;11081:44;;;11103:6;11081:44;11059:66;-1:-1:-1;11143:13:0;;11140:179;;-1:-1:-1;;;;;11202:22:0;;;;;;:9;:22;;;;;;:37;;11229:9;11202:26;:37::i;:::-;-1:-1:-1;;;;;11177:22:0;;;;;;;:9;:22;;;;;;;:62;;;;11263:40;;;;;;;;;;11293:9;1546:25:1;;1534:2;1519:18;;1400:177;11263:40:0;;;;;;;;11140:179;11355:53;;;;;;;;;;;-1:-1:-1;;;11355:53:0;;;;;;;;-1:-1:-1;;;;;11355:17:0;;-1:-1:-1;11355:17:0;;;:9;:17;;;;;;;;:53;;11377:6;;11355:21;:53::i;:::-;-1:-1:-1;;;;;11335:17:0;;;;;;:9;:17;;;;;:73;11428:16;;-1:-1:-1;;;11428:16:0;;;;:54;;;;-1:-1:-1;;;;;;11449:33:0;;;;;;:22;:33;;;;;;;;11448:34;11428:54;11425:141;;;11550:15;;11509:37;11534:11;11509:20;11519:9;-1:-1:-1;;;;;7670:18:0;7643:7;7670:18;;;:9;:18;;;;;;;7577:119;11509:20;:24;;:37::i;:::-;:56;;11501:65;;;;;;-1:-1:-1;;;;;11606:20:0;;;;;;:9;:20;;;;;;:37;;11631:11;11606:24;:37::i;:::-;-1:-1:-1;;;;;11583:20:0;;;;;;;:9;:20;;;;;;;:60;;;;11665:40;;;;;;;;;;11693:11;1546:25:1;;1534:2;1519:18;;1400:177;11665:40:0;;;;;;;;11727:4;11720:11;;;;;;;;;855:192;941:7;977:12;969:6;;;;961:29;;;;-1:-1:-1;;;961:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1001:9:0;1013:5;1017:1;1013;:5;:::i;:::-;1001:17;855:192;-1:-1:-1;;;;;855:192:0:o;711:136::-;769:7;796:43;800:1;803;796:43;;;;;;;;;;;;;;;;;:3;:43::i;13545:113::-;13624:26;;-1:-1:-1;;;;;13624:18:0;;;:26;;;;;13643:6;;13624:26;;;;13643:6;13624:18;:26;;;;;;;;;;;;;;;;;;;;;13545:113;;:::o;11758:330::-;11888:53;;;;;;;;;;;-1:-1:-1;;;11888:53:0;;;;;;;;-1:-1:-1;;;;;11888:17:0;;11851:4;11888:17;;;:9;:17;;;;;;;:53;;11910:6;;11888:21;:53::i;:::-;-1:-1:-1;;;;;11868:17:0;;;;;;;:9;:17;;;;;;:73;;;;11975:20;;;;;;;:32;;12000:6;11975:24;:32::i;:::-;-1:-1:-1;;;;;11952:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12023:35;;;;;;;;;;12051:6;1546:25:1;;1534:2;1519:18;;1400:177;12023:35:0;;;;;;;;-1:-1:-1;12076:4:0;11758:330;;;;;:::o;12096:215::-;6103:6;:13;;-1:-1:-1;;;;6103:13:0;-1:-1:-1;;;6103:13:0;;;12162:25:::1;12179:7:::0;12162:16:::1;:25::i;:::-;12267:15;::::0;12227:21:::1;::::0;12259:44:::1;::::0;12267:15:::1;::::0;::::1;-1:-1:-1::0;;;;;12267:15:0::1;12227:21:::0;12259:7:::1;:44::i;:::-;-1:-1:-1::0;;6139:6:0;:14;;-1:-1:-1;;;;6139:14:0;;;12096:215::o;12930:607::-;13101:15;;13021:7;;;;13070:6;;-1:-1:-1;;;;;13101:15:0;;;;;;13091:25;;;;13087:57;;13126:6;;-1:-1:-1;13134:9:0;-1:-1:-1;13118:26:0;;13087:57;-1:-1:-1;;;;;13158:26:0;;;;;;:18;:26;;;;;;;;13155:233;;;13213:37;13246:3;13213:28;13224:16;;13213:6;:10;;:28;;;;:::i;:::-;:32;;:37::i;:::-;13201:49;;13155:233;;;-1:-1:-1;;;;;13280:29:0;;;;;;:18;:29;;;;;;;;13277:111;;;13338:38;13372:3;13338:29;13349:17;;13338:6;:10;;:29;;;;:::i;:38::-;13326:50;;13277:111;-1:-1:-1;;;;;13402:29:0;;;;;;:21;:29;;;;;;;;13398:80;;;13456:6;13464:1;13448:18;;;;;;;13398:80;13496:21;:6;13507:9;13496:10;:21::i;:::-;13488:41;-1:-1:-1;13519:9:0;-1:-1:-1;12930:607:0;;;;;;;:::o;522:181::-;580:7;;612:5;616:1;612;:5;:::i;:::-;600:17;;641:1;636;:6;;628:46;;;;-1:-1:-1;;;628:46:0;;8397:2:1;628:46:0;;;8379:21:1;8436:2;8416:18;;;8409:30;8475:29;8455:18;;;8448:57;8522:18;;628:46:0;8195:351:1;12323:599:0;12473:16;;;12487:1;12473:16;;;;;;;;12449:21;;12473:16;;;;;;;;;;-1:-1:-1;12473:16:0;12449:40;;12518:4;12500;12505:1;12500:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12500:23:0;;;:7;;;;;;;;;;:23;;;;12544:13;;:20;;;-1:-1:-1;;;12544:20:0;;;;:13;;;;;:18;;:20;;;;;12500:7;;12544:20;;;;;:13;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12534:4;12539:1;12534:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12534:30:0;;;:7;;;;;;;;;:30;12609:13;;12577:60;;12594:4;;12609:13;12625:11;12577:8;:60::i;:::-;12676:13;;:238;;-1:-1:-1;;;12676:238:0;;-1:-1:-1;;;;;12676:13:0;;;;:64;;:238;;12755:11;;12676:13;;12825:4;;12852;;12888:15;;12676:238;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12378:544;12323:599;:::o;1055:250::-;1113:7;1137:1;1142;1137:6;1133:47;;-1:-1:-1;1167:1:0;1160:8;;1133:47;1192:9;1204:5;1208:1;1204;:5;:::i;:::-;1192:17;-1:-1:-1;1237:1:0;1228:5;1232:1;1192:17;1228:5;:::i;:::-;:10;1220:56;;;;-1:-1:-1;;;1220:56:0;;10431:2:1;1220:56:0;;;10413:21:1;10470:2;10450:18;;;10443:30;10509:34;10489:18;;;10482:62;-1:-1:-1;;;10560:18:1;;;10553:31;10601:19;;1220:56:0;10229:397:1;1313:132:0;1371:7;1398:39;1402:1;1405;1398:39;;;;;;;;;;;;;;;;;1539:7;1574:12;1567:5;1559:28;;;;-1:-1:-1;;;1559:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1598:9:0;1610:5;1614:1;1610;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:180::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;-1:-1:-1;1366:23:1;;1215:180;-1:-1:-1;1215:180:1:o;1582:456::-;1659:6;1667;1675;1728:2;1716:9;1707:7;1703:23;1699:32;1696:52;;;1744:1;1741;1734:12;1696:52;1783:9;1770:23;1802:31;1827:5;1802:31;:::i;:::-;1852:5;-1:-1:-1;1909:2:1;1894:18;;1881:32;1922:33;1881:32;1922:33;:::i;:::-;1582:456;;1974:7;;-1:-1:-1;;;2028:2:1;2013:18;;;;2000:32;;1582:456::o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;2692:160::-;2757:20;;2813:13;;2806:21;2796:32;;2786:60;;2842:1;2839;2832:12;2786:60;2692:160;;;:::o;2857:315::-;2922:6;2930;2983:2;2971:9;2962:7;2958:23;2954:32;2951:52;;;2999:1;2996;2989:12;2951:52;3038:9;3025:23;3057:31;3082:5;3057:31;:::i;:::-;3107:5;-1:-1:-1;3131:35:1;3162:2;3147:18;;3131:35;:::i;:::-;3121:45;;2857:315;;;;;:::o;3411:180::-;3467:6;3520:2;3508:9;3499:7;3495:23;3491:32;3488:52;;;3536:1;3533;3526:12;3488:52;3559:26;3575:9;3559:26;:::i;3596:388::-;3664:6;3672;3725:2;3713:9;3704:7;3700:23;3696:32;3693:52;;;3741:1;3738;3731:12;3693:52;3780:9;3767:23;3799:31;3824:5;3799:31;:::i;:::-;3849:5;-1:-1:-1;3906:2:1;3891:18;;3878:32;3919:33;3878:32;3919:33;:::i;:::-;3971:7;3961:17;;;3596:388;;;;;:::o;3989:380::-;4068:1;4064:12;;;;4111;;;4132:61;;4186:4;4178:6;4174:17;4164:27;;4132:61;4239:2;4231:6;4228:14;4208:18;4205:38;4202:161;;4285:10;4280:3;4276:20;4273:1;4266:31;4320:4;4317:1;4310:15;4348:4;4345:1;4338:15;4202:161;;3989:380;;;:::o;4374:356::-;4576:2;4558:21;;;4595:18;;;4588:30;4654:34;4649:2;4634:18;;4627:62;4721:2;4706:18;;4374:356::o;4735:127::-;4796:10;4791:3;4787:20;4784:1;4777:31;4827:4;4824:1;4817:15;4851:4;4848:1;4841:15;4867:217;4907:1;4933;4923:132;;4977:10;4972:3;4968:20;4965:1;4958:31;5012:4;5009:1;5002:15;5040:4;5037:1;5030:15;4923:132;-1:-1:-1;5069:9:1;;4867:217::o;7932:128::-;7999:9;;;8020:11;;;8017:37;;;8034:18;;:::i;8065:125::-;8130:9;;;8151:10;;;8148:36;;;8164:18;;:::i;8683:127::-;8744:10;8739:3;8735:20;8732:1;8725:31;8775:4;8772:1;8765:15;8799:4;8796:1;8789:15;8815:251;8885:6;8938:2;8926:9;8917:7;8913:23;8909:32;8906:52;;;8954:1;8951;8944:12;8906:52;8986:9;8980:16;9005:31;9030:5;9005:31;:::i;9071:980::-;9333:4;9381:3;9370:9;9366:19;9412:6;9401:9;9394:25;9438:2;9476:6;9471:2;9460:9;9456:18;9449:34;9519:3;9514:2;9503:9;9499:18;9492:31;9543:6;9578;9572:13;9609:6;9601;9594:22;9647:3;9636:9;9632:19;9625:26;;9686:2;9678:6;9674:15;9660:29;;9707:1;9717:195;9731:6;9728:1;9725:13;9717:195;;;9796:13;;-1:-1:-1;;;;;9792:39:1;9780:52;;9887:15;;;;9852:12;;;;9828:1;9746:9;9717:195;;;-1:-1:-1;;;;;;;9968:32:1;;;;9963:2;9948:18;;9941:60;-1:-1:-1;;;10032:3:1;10017:19;10010:35;9929:3;9071:980;-1:-1:-1;;;9071:980:1:o;10056:168::-;10129:9;;;10160;;10177:15;;;10171:22;;10157:37;10147:71;;10198:18;;:::i

Swarm Source

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