ETH Price: $2,409.76 (-8.88%)
 

Overview

Max Total Supply

1,000,000,000 MIXER

Holders

102

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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

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

Contract Source Code Verified (Exact Match)

Contract Name:
MIXER

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-11-22
*/

// SPDX-License-Identifier: Unlicensed

/**
Take control of your financial transactions like never before with Mixer Chain, a cutting-edge, decentralized protocol built on the Ethereum blockchain.

Website: https://www.mixerchain.org
Telegram: https://t.me/mixchain_erc
Twitter: https://twitter.com/mixchain_erc
Dapp: https://app.mixerchain.org
*/

pragma solidity 0.8.21;

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

library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

interface IUniswapFactory {
    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 IUniswapRouter {
    
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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

contract MIXER is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    
    string private _name = "MixerChain";
    string private _symbol = "MIXER";
    uint8 private _decimals = 9;
    uint256 private _tTotal = 1_000_000_000 * 10**9;
    uint256 public maxTransaction = _tTotal;
    uint256 public maxWallet = _tTotal*22/1000;
    uint256 private swapFloor = _tTotal/10000; 

    uint256 public tBuyTax = 25;
    uint256 public tSellTax = 25;
    
    bool inswap;
    bool public swapEnabled = false;
    bool public hasSwapLimit = false;
    bool public hasMaxWallet = true;

    uint256 public buyLpFee = 0;
    uint256 public buyMarketingFee = 25;
    uint256 public buyDevFee = 0;
    uint256 public sellLiquidityTax = 0;
    uint256 public sellMarketingTax = 25;
    uint256 public sellDevTax = 0;
    

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isExcluded;
    mapping (address => bool) public isMaxWalletExempt;
    mapping (address => bool) public isMaxTxExempt;
    mapping (address => bool) public checkMarketPair;

    address payable private feeAddress;
    address public immutable DEAD = 0x000000000000000000000000000000000000dEaD;

    IUniswapRouter public uniswapV2Router;
    address public uniswapPair;
    
    modifier lockTheSwap {
        inswap = true;
        _;
        inswap = false;
    }
    
    constructor () {
        IUniswapRouter _uniswapV2Router = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        feeAddress = payable(0xFA91Bbe61C07205B884cb5ED914A6bdeBDe8700D);
        uniswapPair = IUniswapFactory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _tTotal;

        isExcluded[owner()] = true;
        isExcluded[feeAddress] = true;

        isMaxWalletExempt[owner()] = true;
        isMaxWalletExempt[feeAddress] = true;
        isMaxWalletExempt[address(uniswapPair)] = true;
        isMaxWalletExempt[address(this)] = true;
        
        isMaxTxExempt[owner()] = true;
        isMaxTxExempt[feeAddress] = true;
        isMaxTxExempt[address(this)] = true;

        checkMarketPair[address(uniswapPair)] = true;

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

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

    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 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 swapBack(uint256 tAmount) private lockTheSwap {
        swapTokensToEth(tAmount);
        uint256 amountETHMarketing = address(this).balance;
        sendETH(feeAddress, amountETHMarketing);
    }

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

    function _transferStandard(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;
    }
    
    receive() external payable {}
    
    function setBuyFee(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newDevelopmentTax) external onlyOwner() {
        buyLpFee = newLiquidityTax;
        buyMarketingFee = newMarketingTax;
        buyDevFee = newDevelopmentTax;

        tBuyTax = buyLpFee.add(buyMarketingFee).add(buyDevFee);
        require (tBuyTax <= 10);
    }

    function setSellFee(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newDevelopmentTax) external onlyOwner() {
        sellLiquidityTax = newLiquidityTax;
        sellMarketingTax = newMarketingTax;
        sellDevTax = newDevelopmentTax;

        tSellTax = sellLiquidityTax.add(sellMarketingTax).add(sellDevTax);
        require (tSellTax <= 20);
    }

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        maxWallet  = newLimit;
    }
    
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapEnabled = _enabled;
    }

    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 _transferStandard(sender, recipient, amount); 
        }
        else
        {
            if(!isMaxTxExempt[sender] && !isMaxTxExempt[recipient]) {
                require(amount <= maxTransaction, "Transfer amount exceeds the maxTransaction.");
            }            

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapFloor;
            
            if (overMinimumTokenBalance && !inswap && !isExcluded[sender] && checkMarketPair[recipient] && swapEnabled && amount > swapFloor) 
            {
                if(hasSwapLimit)
                    contractTokenBalance = swapFloor;
                swapBack(contractTokenBalance);    
            }

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

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

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

            if(hasMaxWallet && !isMaxWalletExempt[recipient])
                require(balanceOf(recipient).add(finalAmount) <= maxWallet);

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

            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
    }    
    
    function swapTokensToEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        // make the swap
        uniswapV2Router.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 (isExcluded[sender] && swapEnabled) return (amount, feeAmount);

        if(checkMarketPair[sender]) {
            feeAmount = amount.mul(tBuyTax).div(100);
        }
        else if(checkMarketPair[recipient]) {
            feeAmount = amount.mul(tSellTax).div(100);
        }
        if (isExcluded[sender]) {
            return (amount, 0);
        }

        return (amount.sub(feeAmount), feeAmount);
    }
    
    function adjustMaxTxAmount(uint256 maxTxAmount_) external onlyOwner() {
        require(maxTxAmount_ >= _tTotal/100, "Max wallet should be more or equal to 1%");
        maxTransaction = maxTxAmount_;
    }
}

Contract Security Audit

Contract ABI

API
[{"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":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"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":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLpFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasSwapLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMaxTxExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMaxWalletExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newDevelopmentTax","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newDevelopmentTax","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":[],"name":"swapEnabled","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":"tBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tSellTax","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":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e0604052600a60a09081526926b4bc32b921b430b4b760b11b60c0526002906200002b90826200058d565b5060408051808201909152600581526426a4ac22a960d91b60208201526003906200005790826200058d565b506004805460ff19166009179055670de0b6b3a7640000600581905560068190556103e8906200008990601662000655565b6200009591906200067f565b600755612710600554620000aa91906200067f565b60085560196009819055600a819055600b805463ffffff00191663010000001790555f600c819055600d829055600e819055600f81905560109190915560115561dead608052348015620000fc575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601880546001600160a01b03191673fa91bbe61c07205b884cb5ed914a6bdebde8700d1790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a0155916004808201926020929091908290030181865afa158015620001b5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001db91906200069f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000227573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200024d91906200069f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000298573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002be91906200069f565b601a80546001600160a01b039283166001600160a01b031991821617909155601980549284169290911682179055600554305f90815260136020908152604080832094835293905291822055600190601490620003225f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905560185490911681526014909252812080549092166001908117909255601590620003805f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055601854821681526015909352818320805485166001908117909155601a549091168352818320805485168217905530835290822080549093168117909255601690620004005f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905560185482168152601684528281208054861660019081179091553082528382208054871682179055601a5490921681526017909352908220805490931617909155600554906012906200047d3390565b6001600160a01b0316815260208101919091526040015f2055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620004de91815260200190565b60405180910390a350620006ce565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200051657607f821691505b6020821081036200053557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000588575f81815260208120601f850160051c81016020861015620005635750805b601f850160051c820191505b8181101562000584578281556001016200056f565b5050505b505050565b81516001600160401b03811115620005a957620005a9620004ed565b620005c181620005ba845462000501565b846200053b565b602080601f831160018114620005f7575f8415620005df5750858301515b5f19600386901b1c1916600185901b17855562000584565b5f85815260208120601f198616915b82811015620006275788860151825594840194600190910190840162000606565b50858210156200064557878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b80820281158282048414176200067957634e487b7160e01b5f52601160045260245ffd5b92915050565b5f826200069a57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620006b0575f80fd5b81516001600160a01b0381168114620006c7575f80fd5b9392505050565b608051611950620006e75f395f61023101526119505ff3fe608060405260043610610215575f3560e01c80638f03aad51161011e578063c1ec8d4b116100a8578063dd62ed3e1161006d578063dd62ed3e1461062e578063e96db1ef14610672578063f1d5f51714610687578063f2fde38b146106a6578063f8b45b05146106c5575f80fd5b8063c1ec8d4b1461057f578063c3f70b52146105ad578063c49b9a80146105c2578063c816841b146105e1578063cba0e99614610600575f80fd5b80639c3b4fdc116100ee5780639c3b4fdc14610502578063a9059cbb14610517578063be69188314610536578063beb43c661461054b578063c1731ceb1461056a575f80fd5b80638f03aad5146104a6578063914eb66a146104c557806395d656e7146104d957806395d89b41146104ee575f80fd5b8063313ce5671161019f5780636fd3acb41161016f5780636fd3acb41461040c57806370a08231146104215780637bce5a04146104555780637e42a7a11461046a5780638da5cb5b1461048a575f80fd5b8063313ce5671461038a57806355324fa9146103ab5780636ab91206146103d95780636ddd1713146103ee575f80fd5b80631694505e116101e55780631694505e146102ee57806318160ddd1461030d5780631d865c301461032b57806323b872dd1461034c57806325519cf21461036b575f80fd5b806303fd2a451461022057806306fdde0314610270578063095ea7b3146102915780630bd11f8a146102c0575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b506102537f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561027b575f80fd5b506102846106da565b60405161026791906115fc565b34801561029c575f80fd5b506102b06102ab36600461165e565b61076a565b6040519015158152602001610267565b3480156102cb575f80fd5b506102b06102da366004611688565b60156020525f908152604090205460ff1681565b3480156102f9575f80fd5b50601954610253906001600160a01b031681565b348015610318575f80fd5b506005545b604051908152602001610267565b348015610336575f80fd5b5061034a6103453660046116a3565b610780565b005b348015610357575f80fd5b506102b06103663660046116cc565b6107eb565b348015610376575f80fd5b5061034a6103853660046116a3565b610854565b348015610395575f80fd5b5060045460405160ff9091168152602001610267565b3480156103b6575f80fd5b506102b06103c5366004611688565b60176020525f908152604090205460ff1681565b3480156103e4575f80fd5b5061031d600f5481565b3480156103f9575f80fd5b50600b546102b090610100900460ff1681565b348015610417575f80fd5b5061031d600c5481565b34801561042c575f80fd5b5061031d61043b366004611688565b6001600160a01b03165f9081526012602052604090205490565b348015610460575f80fd5b5061031d600d5481565b348015610475575f80fd5b50600b546102b0906301000000900460ff1681565b348015610495575f80fd5b505f546001600160a01b0316610253565b3480156104b1575f80fd5b5061034a6104c036600461170a565b6108ab565b3480156104d0575f80fd5b5061034a610948565b3480156104e4575f80fd5b5061031d600a5481565b3480156104f9575f80fd5b506102846109b9565b34801561050d575f80fd5b5061031d600e5481565b348015610522575f80fd5b506102b061053136600461165e565b6109c8565b348015610541575f80fd5b5061031d60115481565b348015610556575f80fd5b50600b546102b09062010000900460ff1681565b348015610575575f80fd5b5061031d60095481565b34801561058a575f80fd5b506102b0610599366004611688565b60166020525f908152604090205460ff1681565b3480156105b8575f80fd5b5061031d60065481565b3480156105cd575f80fd5b5061034a6105dc366004611721565b6109d4565b3480156105ec575f80fd5b50601a54610253906001600160a01b031681565b34801561060b575f80fd5b506102b061061a366004611688565b60146020525f908152604090205460ff1681565b348015610639575f80fd5b5061031d610648366004611740565b6001600160a01b039182165f90815260136020908152604080832093909416825291909152205490565b34801561067d575f80fd5b5061031d60105481565b348015610692575f80fd5b5061034a6106a136600461170a565b610a17565b3480156106b1575f80fd5b5061034a6106c0366004611688565b610a45565b3480156106d0575f80fd5b5061031d60075481565b6060600280546106e990611777565b80601f016020809104026020016040519081016040528092919081815260200182805461071590611777565b80156107605780601f1061073757610100808354040283529160200191610760565b820191905f5260205f20905b81548152906001019060200180831161074357829003601f168201915b5050505050905090565b5f610776338484610b2c565b5060015b92915050565b5f546001600160a01b031633146107b25760405162461bcd60e51b81526004016107a9906117af565b60405180910390fd5b600f839055601082905560118190556107d5816107cf8585610c4f565b90610c4f565b600a819055601410156107e6575f80fd5b505050565b5f6107f7848484610cad565b506108498433610844856040518060600160405280602881526020016118f3602891396001600160a01b038a165f90815260136020908152604080832033845290915290205491906110ee565b610b2c565b5060015b9392505050565b5f546001600160a01b0316331461087d5760405162461bcd60e51b81526004016107a9906117af565b600c839055600d829055600e81905561089a816107cf8585610c4f565b6009819055600a10156107e6575f80fd5b5f546001600160a01b031633146108d45760405162461bcd60e51b81526004016107a9906117af565b60646005546108e391906117f8565b8110156109435760405162461bcd60e51b815260206004820152602860248201527f4d61782077616c6c65742073686f756c64206265206d6f7265206f7220657175604482015267616c20746f20312560c01b60648201526084016107a9565b600655565b5f546001600160a01b031633146109715760405162461bcd60e51b81526004016107a9906117af565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6060600380546106e990611777565b5f610849338484610cad565b5f546001600160a01b031633146109fd5760405162461bcd60e51b81526004016107a9906117af565b600b80549115156101000261ff0019909216919091179055565b5f546001600160a01b03163314610a405760405162461bcd60e51b81526004016107a9906117af565b600755565b5f546001600160a01b03163314610a6e5760405162461bcd60e51b81526004016107a9906117af565b6001600160a01b038116610ad35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107a9565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b8e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107a9565b6001600160a01b038216610bef5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107a9565b6001600160a01b038381165f8181526013602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f80610c5b8385611817565b90508381101561084d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107a9565b5f6001600160a01b038416610d125760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107a9565b6001600160a01b038316610d745760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107a9565b600b5460ff1615610d9157610d8a848484611126565b905061084d565b6001600160a01b0384165f9081526016602052604090205460ff16158015610dd157506001600160a01b0383165f9081526016602052604090205460ff16155b15610e3c57600654821115610e3c5760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785460448201526a3930b739b0b1ba34b7b71760a91b60648201526084016107a9565b305f9081526012602052604090205460085481108015908190610e625750600b5460ff16155b8015610e8657506001600160a01b0386165f9081526014602052604090205460ff16155b8015610ea957506001600160a01b0385165f9081526017602052604090205460ff165b8015610ebc5750600b54610100900460ff165b8015610ec9575060085484115b15610eee57600b5462010000900460ff1615610ee55760085491505b610eee82611209565b5f80610efb888888611245565b915091505f868214610f0d5730610f0f565b885b90508115610f95576001600160a01b0381165f90815260126020526040902054610f399083610c4f565b6001600160a01b038083165f8181526012602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f8c9086815260200190565b60405180910390a35b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038c165f90815260129091529190912054610fe69189906110ee565b6001600160a01b038a165f90815260126020526040902055600b546301000000900460ff16801561102f57506001600160a01b0388165f9081526015602052604090205460ff16155b1561106357600754611059846107cf8b6001600160a01b03165f9081526012602052604090205490565b1115611063575f80fd5b6001600160a01b0388165f908152601260205260409020546110859084610c4f565b6001600160a01b03808a165f8181526012602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110d89087815260200190565b60405180910390a360019550505050505061084d565b5f81848411156111115760405162461bcd60e51b81526004016107a991906115fc565b505f61111d848661182a565b95945050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526012909152918220546111769184906110ee565b6001600160a01b038086165f9081526012602052604080822093909355908516815220546111a49083610c4f565b6001600160a01b038085165f8181526012602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111f79086815260200190565b60405180910390a35060019392505050565b600b805460ff1916600117905561121f8161134d565b6018544790611237906001600160a01b03168261149d565b5050600b805460ff19169055565b6001600160a01b0383165f908152601460205260408120548190839060ff1680156112775750600b54610100900460ff165b15611286578392509050611345565b6001600160a01b0386165f9081526017602052604090205460ff16156112cd576112c660646112c0600954876114d090919063ffffffff16565b9061154e565b905061130a565b6001600160a01b0385165f9081526017602052604090205460ff161561130a5761130760646112c0600a54876114d090919063ffffffff16565b90505b6001600160a01b0386165f9081526014602052604090205460ff161561133657835f9250925050611345565b611340848261158f565b925090505b935093915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106113805761138061183d565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113fb9190611851565b8160018151811061140e5761140e61183d565b6001600160a01b0392831660209182029290920101526019546114349130911684610b2c565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac9479061146c9085905f9086903090429060040161186c565b5f604051808303815f87803b158015611483575f80fd5b505af1158015611495573d5f803e3d5ffd5b505050505050565b6040516001600160a01b0383169082156108fc029083905f818181858888f193505050501580156107e6573d5f803e3d5ffd5b5f825f036114df57505f61077a565b5f6114ea83856118db565b9050826114f785836117f8565b1461084d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107a9565b5f61084d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115d0565b5f61084d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110ee565b5f81836115f05760405162461bcd60e51b81526004016107a991906115fc565b505f61111d84866117f8565b5f6020808352835180828501525f5b818110156116275785810183015185820160400152820161160b565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461165b575f80fd5b50565b5f806040838503121561166f575f80fd5b823561167a81611647565b946020939093013593505050565b5f60208284031215611698575f80fd5b813561084d81611647565b5f805f606084860312156116b5575f80fd5b505081359360208301359350604090920135919050565b5f805f606084860312156116de575f80fd5b83356116e981611647565b925060208401356116f981611647565b929592945050506040919091013590565b5f6020828403121561171a575f80fd5b5035919050565b5f60208284031215611731575f80fd5b8135801515811461084d575f80fd5b5f8060408385031215611751575f80fd5b823561175c81611647565b9150602083013561176c81611647565b809150509250929050565b600181811c9082168061178b57607f821691505b6020821081036117a957634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f8261181257634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561077a5761077a6117e4565b8181038181111561077a5761077a6117e4565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611861575f80fd5b815161084d81611647565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118ba5784516001600160a01b031683529383019391830191600101611895565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761077a5761077a6117e456fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e844681c0f9ec50c28d3e5c09e421d25a31136ffb928eabd0ea3c4165578060b64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610215575f3560e01c80638f03aad51161011e578063c1ec8d4b116100a8578063dd62ed3e1161006d578063dd62ed3e1461062e578063e96db1ef14610672578063f1d5f51714610687578063f2fde38b146106a6578063f8b45b05146106c5575f80fd5b8063c1ec8d4b1461057f578063c3f70b52146105ad578063c49b9a80146105c2578063c816841b146105e1578063cba0e99614610600575f80fd5b80639c3b4fdc116100ee5780639c3b4fdc14610502578063a9059cbb14610517578063be69188314610536578063beb43c661461054b578063c1731ceb1461056a575f80fd5b80638f03aad5146104a6578063914eb66a146104c557806395d656e7146104d957806395d89b41146104ee575f80fd5b8063313ce5671161019f5780636fd3acb41161016f5780636fd3acb41461040c57806370a08231146104215780637bce5a04146104555780637e42a7a11461046a5780638da5cb5b1461048a575f80fd5b8063313ce5671461038a57806355324fa9146103ab5780636ab91206146103d95780636ddd1713146103ee575f80fd5b80631694505e116101e55780631694505e146102ee57806318160ddd1461030d5780631d865c301461032b57806323b872dd1461034c57806325519cf21461036b575f80fd5b806303fd2a451461022057806306fdde0314610270578063095ea7b3146102915780630bd11f8a146102c0575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b506102537f000000000000000000000000000000000000000000000000000000000000dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561027b575f80fd5b506102846106da565b60405161026791906115fc565b34801561029c575f80fd5b506102b06102ab36600461165e565b61076a565b6040519015158152602001610267565b3480156102cb575f80fd5b506102b06102da366004611688565b60156020525f908152604090205460ff1681565b3480156102f9575f80fd5b50601954610253906001600160a01b031681565b348015610318575f80fd5b506005545b604051908152602001610267565b348015610336575f80fd5b5061034a6103453660046116a3565b610780565b005b348015610357575f80fd5b506102b06103663660046116cc565b6107eb565b348015610376575f80fd5b5061034a6103853660046116a3565b610854565b348015610395575f80fd5b5060045460405160ff9091168152602001610267565b3480156103b6575f80fd5b506102b06103c5366004611688565b60176020525f908152604090205460ff1681565b3480156103e4575f80fd5b5061031d600f5481565b3480156103f9575f80fd5b50600b546102b090610100900460ff1681565b348015610417575f80fd5b5061031d600c5481565b34801561042c575f80fd5b5061031d61043b366004611688565b6001600160a01b03165f9081526012602052604090205490565b348015610460575f80fd5b5061031d600d5481565b348015610475575f80fd5b50600b546102b0906301000000900460ff1681565b348015610495575f80fd5b505f546001600160a01b0316610253565b3480156104b1575f80fd5b5061034a6104c036600461170a565b6108ab565b3480156104d0575f80fd5b5061034a610948565b3480156104e4575f80fd5b5061031d600a5481565b3480156104f9575f80fd5b506102846109b9565b34801561050d575f80fd5b5061031d600e5481565b348015610522575f80fd5b506102b061053136600461165e565b6109c8565b348015610541575f80fd5b5061031d60115481565b348015610556575f80fd5b50600b546102b09062010000900460ff1681565b348015610575575f80fd5b5061031d60095481565b34801561058a575f80fd5b506102b0610599366004611688565b60166020525f908152604090205460ff1681565b3480156105b8575f80fd5b5061031d60065481565b3480156105cd575f80fd5b5061034a6105dc366004611721565b6109d4565b3480156105ec575f80fd5b50601a54610253906001600160a01b031681565b34801561060b575f80fd5b506102b061061a366004611688565b60146020525f908152604090205460ff1681565b348015610639575f80fd5b5061031d610648366004611740565b6001600160a01b039182165f90815260136020908152604080832093909416825291909152205490565b34801561067d575f80fd5b5061031d60105481565b348015610692575f80fd5b5061034a6106a136600461170a565b610a17565b3480156106b1575f80fd5b5061034a6106c0366004611688565b610a45565b3480156106d0575f80fd5b5061031d60075481565b6060600280546106e990611777565b80601f016020809104026020016040519081016040528092919081815260200182805461071590611777565b80156107605780601f1061073757610100808354040283529160200191610760565b820191905f5260205f20905b81548152906001019060200180831161074357829003601f168201915b5050505050905090565b5f610776338484610b2c565b5060015b92915050565b5f546001600160a01b031633146107b25760405162461bcd60e51b81526004016107a9906117af565b60405180910390fd5b600f839055601082905560118190556107d5816107cf8585610c4f565b90610c4f565b600a819055601410156107e6575f80fd5b505050565b5f6107f7848484610cad565b506108498433610844856040518060600160405280602881526020016118f3602891396001600160a01b038a165f90815260136020908152604080832033845290915290205491906110ee565b610b2c565b5060015b9392505050565b5f546001600160a01b0316331461087d5760405162461bcd60e51b81526004016107a9906117af565b600c839055600d829055600e81905561089a816107cf8585610c4f565b6009819055600a10156107e6575f80fd5b5f546001600160a01b031633146108d45760405162461bcd60e51b81526004016107a9906117af565b60646005546108e391906117f8565b8110156109435760405162461bcd60e51b815260206004820152602860248201527f4d61782077616c6c65742073686f756c64206265206d6f7265206f7220657175604482015267616c20746f20312560c01b60648201526084016107a9565b600655565b5f546001600160a01b031633146109715760405162461bcd60e51b81526004016107a9906117af565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6060600380546106e990611777565b5f610849338484610cad565b5f546001600160a01b031633146109fd5760405162461bcd60e51b81526004016107a9906117af565b600b80549115156101000261ff0019909216919091179055565b5f546001600160a01b03163314610a405760405162461bcd60e51b81526004016107a9906117af565b600755565b5f546001600160a01b03163314610a6e5760405162461bcd60e51b81526004016107a9906117af565b6001600160a01b038116610ad35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107a9565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b8e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107a9565b6001600160a01b038216610bef5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107a9565b6001600160a01b038381165f8181526013602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f80610c5b8385611817565b90508381101561084d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107a9565b5f6001600160a01b038416610d125760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107a9565b6001600160a01b038316610d745760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107a9565b600b5460ff1615610d9157610d8a848484611126565b905061084d565b6001600160a01b0384165f9081526016602052604090205460ff16158015610dd157506001600160a01b0383165f9081526016602052604090205460ff16155b15610e3c57600654821115610e3c5760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785460448201526a3930b739b0b1ba34b7b71760a91b60648201526084016107a9565b305f9081526012602052604090205460085481108015908190610e625750600b5460ff16155b8015610e8657506001600160a01b0386165f9081526014602052604090205460ff16155b8015610ea957506001600160a01b0385165f9081526017602052604090205460ff165b8015610ebc5750600b54610100900460ff165b8015610ec9575060085484115b15610eee57600b5462010000900460ff1615610ee55760085491505b610eee82611209565b5f80610efb888888611245565b915091505f868214610f0d5730610f0f565b885b90508115610f95576001600160a01b0381165f90815260126020526040902054610f399083610c4f565b6001600160a01b038083165f8181526012602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f8c9086815260200190565b60405180910390a35b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038c165f90815260129091529190912054610fe69189906110ee565b6001600160a01b038a165f90815260126020526040902055600b546301000000900460ff16801561102f57506001600160a01b0388165f9081526015602052604090205460ff16155b1561106357600754611059846107cf8b6001600160a01b03165f9081526012602052604090205490565b1115611063575f80fd5b6001600160a01b0388165f908152601260205260409020546110859084610c4f565b6001600160a01b03808a165f8181526012602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110d89087815260200190565b60405180910390a360019550505050505061084d565b5f81848411156111115760405162461bcd60e51b81526004016107a991906115fc565b505f61111d848661182a565b95945050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526012909152918220546111769184906110ee565b6001600160a01b038086165f9081526012602052604080822093909355908516815220546111a49083610c4f565b6001600160a01b038085165f8181526012602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111f79086815260200190565b60405180910390a35060019392505050565b600b805460ff1916600117905561121f8161134d565b6018544790611237906001600160a01b03168261149d565b5050600b805460ff19169055565b6001600160a01b0383165f908152601460205260408120548190839060ff1680156112775750600b54610100900460ff165b15611286578392509050611345565b6001600160a01b0386165f9081526017602052604090205460ff16156112cd576112c660646112c0600954876114d090919063ffffffff16565b9061154e565b905061130a565b6001600160a01b0385165f9081526017602052604090205460ff161561130a5761130760646112c0600a54876114d090919063ffffffff16565b90505b6001600160a01b0386165f9081526014602052604090205460ff161561133657835f9250925050611345565b611340848261158f565b925090505b935093915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106113805761138061183d565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113fb9190611851565b8160018151811061140e5761140e61183d565b6001600160a01b0392831660209182029290920101526019546114349130911684610b2c565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac9479061146c9085905f9086903090429060040161186c565b5f604051808303815f87803b158015611483575f80fd5b505af1158015611495573d5f803e3d5ffd5b505050505050565b6040516001600160a01b0383169082156108fc029083905f818181858888f193505050501580156107e6573d5f803e3d5ffd5b5f825f036114df57505f61077a565b5f6114ea83856118db565b9050826114f785836117f8565b1461084d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107a9565b5f61084d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115d0565b5f61084d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110ee565b5f81836115f05760405162461bcd60e51b81526004016107a991906115fc565b505f61111d84866117f8565b5f6020808352835180828501525f5b818110156116275785810183015185820160400152820161160b565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461165b575f80fd5b50565b5f806040838503121561166f575f80fd5b823561167a81611647565b946020939093013593505050565b5f60208284031215611698575f80fd5b813561084d81611647565b5f805f606084860312156116b5575f80fd5b505081359360208301359350604090920135919050565b5f805f606084860312156116de575f80fd5b83356116e981611647565b925060208401356116f981611647565b929592945050506040919091013590565b5f6020828403121561171a575f80fd5b5035919050565b5f60208284031215611731575f80fd5b8135801515811461084d575f80fd5b5f8060408385031215611751575f80fd5b823561175c81611647565b9150602083013561176c81611647565b809150509250929050565b600181811c9082168061178b57607f821691505b6020821081036117a957634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f8261181257634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561077a5761077a6117e4565b8181038181111561077a5761077a6117e4565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611861575f80fd5b815161084d81611647565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118ba5784516001600160a01b031683529383019391830191600101611895565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761077a5761077a6117e456fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e844681c0f9ec50c28d3e5c09e421d25a31136ffb928eabd0ea3c4165578060b64736f6c63430008150033

Deployed Bytecode Sourcemap

6032:9151:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7271:74;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;7271:74:0;;;;;;;;8582:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;11167:161::-;;;;;;;;;;-1:-1:-1;11167:161:0;;;;;:::i;:::-;;:::i;:::-;;;1396:14:1;;1389:22;1371:41;;1359:2;1344:18;11167:161:0;1231:187:1;7063:50:0;;;;;;;;;;-1:-1:-1;7063:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7354:37;;;;;;;;;;-1:-1:-1;7354:37:0;;;;-1:-1:-1;;;;;7354:37:0;;;8859:95;;;;;;;;;;-1:-1:-1;8939:7:0;;8859:95;;;2051:25:1;;;2039:2;2024:18;8859:95:0;1905:177:1;10676:370:0;;;;;;;;;;-1:-1:-1;10676:370:0;;;;;:::i;:::-;;:::i;:::-;;11626:313;;;;;;;;;;-1:-1:-1;11626:313:0;;;;;:::i;:::-;;:::i;10321:347::-;;;;;;;;;;-1:-1:-1;10321:347:0;;;;;:::i;:::-;;:::i;8768:83::-;;;;;;;;;;-1:-1:-1;8834:9:0;;8768:83;;8834:9;;;;3011:36:1;;2999:2;2984:18;8768:83:0;2869:184:1;7173:48:0;;;;;;;;;;-1:-1:-1;7173:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6763:35;;;;;;;;;;;;;;;;6535:31;;;;;;;;;;-1:-1:-1;6535:31:0;;;;;;;;;;;6652:27;;;;;;;;;;;;;;;;8962:119;;;;;;;;;;-1:-1:-1;8962:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;9055:18:0;9028:7;9055:18;;;:9;:18;;;;;;;8962:119;6686:35;;;;;;;;;;;;;;;;6612:31;;;;;;;;;;-1:-1:-1;6612:31:0;;;;;;;;;;;5403:79;;;;;;;;;;-1:-1:-1;5441:7:0;5468:6;-1:-1:-1;;;;;5468:6:0;5403:79;;14971:209;;;;;;;;;;-1:-1:-1;14971:209:0;;;;;:::i;:::-;;:::i;5628:145::-;;;;;;;;;;;;;:::i;6476:28::-;;;;;;;;;;;;;;;;8673:87;;;;;;;;;;;;;:::i;6728:28::-;;;;;;;;;;;;;;;;11451:167;;;;;;;;;;-1:-1:-1;11451:167:0;;;;;:::i;:::-;;:::i;6848:29::-;;;;;;;;;;;;;;;;6573:32;;;;;;;;;;-1:-1:-1;6573:32:0;;;;;;;;;;;6442:27;;;;;;;;;;;;;;;;7120:46;;;;;;;;;;-1:-1:-1;7120:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6296:39;;;;;;;;;;;;;;;;11336:107;;;;;;;;;;-1:-1:-1;11336:107:0;;;;;:::i;:::-;;:::i;7398:26::-;;;;;;;;;;-1:-1:-1;7398:26:0;;;;-1:-1:-1;;;;;7398:26:0;;;7013:43;;;;;;;;;;-1:-1:-1;7013:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9089:143;;;;;;;;;;-1:-1:-1;9089:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;9197:18:0;;;9170:7;9197:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9089:143;6805:36;;;;;;;;;;;;;;;;11054:101;;;;;;;;;;-1:-1:-1;11054:101:0;;;;;:::i;:::-;;:::i;5781:244::-;;;;;;;;;;-1:-1:-1;5781:244:0;;;;;:::i;:::-;;:::i;6342:42::-;;;;;;;;;;;;;;;;8582:83;8619:13;8652:5;8645:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8582:83;:::o;11167:161::-;11242:4;11259:39;4779:10;11282:7;11291:6;11259:8;:39::i;:::-;-1:-1:-1;11316:4:0;11167:161;;;;;:::o;10676:370::-;5537:6;;-1:-1:-1;;;;;5537:6:0;4779:10;5537:22;5529:67;;;;-1:-1:-1;;;5529:67:0;;;;;;;:::i;:::-;;;;;;;;;10805:16:::1;:34:::0;;;10850:16:::1;:34:::0;;;10895:10:::1;:30:::0;;;10949:54:::1;10908:17:::0;10949:38:::1;10824:15:::0;10869;10949:20:::1;:38::i;:::-;:42:::0;::::1;:54::i;:::-;10938:8;:65:::0;;;11035:2:::1;-1:-1:-1::0;11023:14:0::1;11014:24;;;::::0;::::1;;10676:370:::0;;;:::o;11626:313::-;11724:4;11741:36;11751:6;11759:9;11770:6;11741:9;:36::i;:::-;-1:-1:-1;11788:121:0;11797:6;4779:10;11819:89;11857:6;11819:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11819:19:0;;;;;;:11;:19;;;;;;;;4779:10;11819:33;;;;;;;;;;:37;:89::i;:::-;11788:8;:121::i;:::-;-1:-1:-1;11927:4:0;11626:313;;;;;;:::o;10321:347::-;5537:6;;-1:-1:-1;;;;;5537:6:0;4779:10;5537:22;5529:67;;;;-1:-1:-1;;;5529:67:0;;;;;;;:::i;:::-;10449:8:::1;:26:::0;;;10486:15:::1;:33:::0;;;10530:9:::1;:29:::0;;;10582:44:::1;10542:17:::0;10582:29:::1;10460:15:::0;10504;10582:12:::1;:29::i;:44::-;10572:7;:54:::0;;;10657:2:::1;-1:-1:-1::0;10646:13:0::1;10637:23;;;::::0;::::1;14971:209:::0;5537:6;;-1:-1:-1;;;;;5537:6:0;4779:10;5537:22;5529:67;;;;-1:-1:-1;;;5529:67:0;;;;;;;:::i;:::-;15084:3:::1;15076:7;;:11;;;;:::i;:::-;15060:12;:27;;15052:80;;;::::0;-1:-1:-1;;;15052:80:0;;5216:2:1;15052:80:0::1;::::0;::::1;5198:21:1::0;5255:2;5235:18;;;5228:30;5294:34;5274:18;;;5267:62;-1:-1:-1;;;5345:18:1;;;5338:38;5393:19;;15052:80:0::1;5014:404:1::0;15052:80:0::1;15143:14;:29:::0;14971:209::o;5628:145::-;5537:6;;-1:-1:-1;;;;;5537:6:0;4779:10;5537:22;5529:67;;;;-1:-1:-1;;;5529:67:0;;;;;;;:::i;:::-;5732:1:::1;5716:6:::0;;5695:40:::1;::::0;-1:-1:-1;;;;;5716:6:0;;::::1;::::0;5695:40:::1;::::0;5732:1;;5695:40:::1;5763:1;5746:19:::0;;-1:-1:-1;;;;;;5746:19:0::1;::::0;;5628:145::o;8673:87::-;8712:13;8745:7;8738:14;;;;;:::i;11451:167::-;11529:4;11546:42;4779:10;11570:9;11581:6;11546:9;:42::i;11336:107::-;5537:6;;-1:-1:-1;;;;;5537:6:0;4779:10;5537:22;5529:67;;;;-1:-1:-1;;;5529:67:0;;;;;;;:::i;:::-;11413:11:::1;:22:::0;;;::::1;;;;-1:-1:-1::0;;11413:22:0;;::::1;::::0;;;::::1;::::0;;11336:107::o;11054:101::-;5537:6;;-1:-1:-1;;;;;5537:6:0;4779:10;5537:22;5529:67;;;;-1:-1:-1;;;5529:67:0;;;;;;;:::i;:::-;11126:9:::1;:21:::0;11054:101::o;5781:244::-;5537:6;;-1:-1:-1;;;;;5537:6:0;4779:10;5537:22;5529:67;;;;-1:-1:-1;;;5529:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5870:22:0;::::1;5862:73;;;::::0;-1:-1:-1;;;5862:73:0;;5625:2:1;5862:73:0::1;::::0;::::1;5607:21:1::0;5664:2;5644:18;;;5637:30;5703:34;5683:18;;;5676:62;-1:-1:-1;;;5754:18:1;;;5747:36;5800:19;;5862:73:0::1;5423:402:1::0;5862:73:0::1;5972:6;::::0;;5951:38:::1;::::0;-1:-1:-1;;;;;5951:38:0;;::::1;::::0;5972:6;::::1;::::0;5951:38:::1;::::0;::::1;6000:6;:17:::0;;-1:-1:-1;;;;;;6000:17:0::1;-1:-1:-1::0;;;;;6000:17:0;;;::::1;::::0;;;::::1;::::0;;5781:244::o;9248:337::-;-1:-1:-1;;;;;9341:19:0;;9333:68;;;;-1:-1:-1;;;9333:68:0;;6032:2:1;9333:68:0;;;6014:21:1;6071:2;6051:18;;;6044:30;6110:34;6090:18;;;6083:62;-1:-1:-1;;;6161:18:1;;;6154:34;6205:19;;9333:68:0;5830:400:1;9333:68:0;-1:-1:-1;;;;;9420:21:0;;9412:68;;;;-1:-1:-1;;;9412:68:0;;6437:2:1;9412:68:0;;;6419:21:1;6476:2;6456:18;;;6449:30;6515:34;6495:18;;;6488:62;-1:-1:-1;;;6566:18:1;;;6559:32;6608:19;;9412:68:0;6235:398:1;9412:68:0;-1:-1:-1;;;;;9493:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9545:32;;2051:25:1;;;9545:32:0;;2024:18:1;9545:32:0;;;;;;;9248:337;;;:::o;1090:181::-;1148:7;;1180:5;1184:1;1180;:5;:::i;:::-;1168:17;;1209:1;1204;:6;;1196:46;;;;-1:-1:-1;;;1196:46:0;;6970:2:1;1196:46:0;;;6952:21:1;7009:2;6989:18;;;6982:30;7048:29;7028:18;;;7021:57;7095:18;;1196:46:0;6768:351:1;11947:1848:0;12034:4;-1:-1:-1;;;;;12061:20:0;;12053:70;;;;-1:-1:-1;;;12053:70:0;;7326:2:1;12053:70:0;;;7308:21:1;7365:2;7345:18;;;7338:30;7404:34;7384:18;;;7377:62;-1:-1:-1;;;7455:18:1;;;7448:35;7500:19;;12053:70:0;7124:401:1;12053:70:0;-1:-1:-1;;;;;12142:23:0;;12134:71;;;;-1:-1:-1;;;12134:71:0;;7732:2:1;12134:71:0;;;7714:21:1;7771:2;7751:18;;;7744:30;7810:34;7790:18;;;7783:62;-1:-1:-1;;;7861:18:1;;;7854:33;7904:19;;12134:71:0;7530:399:1;12134:71:0;12221:6;;;;12218:1570;;;12261:44;12279:6;12287:9;12298:6;12261:17;:44::i;:::-;12254:51;;;;12218:1570;-1:-1:-1;;;;;12361:21:0;;;;;;:13;:21;;;;;;;;12360:22;:51;;;;-1:-1:-1;;;;;;12387:24:0;;;;;;:13;:24;;;;;;;;12386:25;12360:51;12357:171;;;12450:14;;12440:6;:24;;12432:80;;;;-1:-1:-1;;;12432:80:0;;8136:2:1;12432:80:0;;;8118:21:1;8175:2;8155:18;;;8148:30;8214:34;8194:18;;;8187:62;-1:-1:-1;;;8265:18:1;;;8258:41;8316:19;;12432:80:0;7934:407:1;12432:80:0;12605:4;12556:28;9055:18;;;:9;:18;;;;;;12681:9;;12657:33;;;;;;;12723:34;;-1:-1:-1;12751:6:0;;;;12750:7;12723:34;:57;;;;-1:-1:-1;;;;;;12762:18:0;;;;;;:10;:18;;;;;;;;12761:19;12723:57;:87;;;;-1:-1:-1;;;;;;12784:26:0;;;;;;:15;:26;;;;;;;;12723:87;:102;;;;-1:-1:-1;12814:11:0;;;;;;;12723:102;:124;;;;;12838:9;;12829:6;:18;12723:124;12719:302;;;12885:12;;;;;;;12882:70;;;12943:9;;12920:32;;12882:70;12971:30;12980:20;12971:8;:30::i;:::-;13038:19;13059:17;13080:34;13088:6;13096:9;13107:6;13080:7;:34::i;:::-;13037:77;;;;13131:16;13163:6;13150:9;:19;:44;;13189:4;13150:44;;;13172:6;13150:44;13131:63;-1:-1:-1;13212:13:0;;13209:170;;-1:-1:-1;;;;;13268:19:0;;;;;;:9;:19;;;;;;:34;;13292:9;13268:23;:34::i;:::-;-1:-1:-1;;;;;13246:19:0;;;;;;;:9;:19;;;;;;;:56;;;;13326:37;;;;;;;;;;13353:9;2051:25:1;;2039:2;2024:18;;1905:177;13326:37:0;;;;;;;;13209:170;13415:53;;;;;;;;;;;-1:-1:-1;;;13415:53:0;;;;;;;;-1:-1:-1;;;;;13415:17:0;;-1:-1:-1;13415:17:0;;;:9;:17;;;;;;;;:53;;13437:6;;13415:21;:53::i;:::-;-1:-1:-1;;;;;13395:17:0;;;;;;:9;:17;;;;;:73;13488:12;;;;;;;:45;;;;-1:-1:-1;;;;;;13505:28:0;;;;;;:17;:28;;;;;;;;13504:29;13488:45;13485:126;;;13601:9;;13560:37;13585:11;13560:20;13570:9;-1:-1:-1;;;;;9055:18:0;9028:7;9055:18;;;:9;:18;;;;;;;8962:119;13560:37;:50;;13552:59;;;;;;-1:-1:-1;;;;;13651:20:0;;;;;;:9;:20;;;;;;:37;;13676:11;13651:24;:37::i;:::-;-1:-1:-1;;;;;13628:20:0;;;;;;;:9;:20;;;;;;;:60;;;;13710:40;;;;;;;;;;13738:11;2051:25:1;;2039:2;2024:18;;1905:177;13710:40:0;;;;;;;;13772:4;13765:11;;;;;;;;;1423:192;1509:7;1545:12;1537:6;;;;1529:29;;;;-1:-1:-1;;;1529:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1569:9:0;1581:5;1585:1;1581;:5;:::i;:::-;1569:17;1423:192;-1:-1:-1;;;;;1423:192:0:o;9935:333::-;10068:53;;;;;;;;;;;-1:-1:-1;;;10068:53:0;;;;;;;;-1:-1:-1;;;;;10068:17:0;;10031:4;10068:17;;;:9;:17;;;;;;;:53;;10090:6;;10068:21;:53::i;:::-;-1:-1:-1;;;;;10048:17:0;;;;;;;:9;:17;;;;;;:73;;;;10155:20;;;;;;;:32;;10180:6;10155:24;:32::i;:::-;-1:-1:-1;;;;;10132:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10203:35;;;;;;;;;;10231:6;2051:25:1;;2039:2;2024:18;;1905:177;10203:35:0;;;;;;;;-1:-1:-1;10256:4:0;9935:333;;;;;:::o;9597:209::-;7469:6;:13;;-1:-1:-1;;7469:13:0;7478:4;7469:13;;;9663:24:::1;9679:7:::0;9663:15:::1;:24::i;:::-;9767:10;::::0;9727:21:::1;::::0;9759:39:::1;::::0;-1:-1:-1;;;;;9767:10:0::1;9727:21:::0;9759:7:::1;:39::i;:::-;-1:-1:-1::0;;7505:6:0;:14;;-1:-1:-1;;7505:14:0;;;9597:209::o;14363:596::-;-1:-1:-1;;;;;14536:18:0;;14454:7;14536:18;;;:10;:18;;;;;;14454:7;;14513:6;;14536:18;;:33;;;;-1:-1:-1;14558:11:0;;;;;;;14536:33;14532:65;;;14579:6;;-1:-1:-1;14587:9:0;-1:-1:-1;14571:26:0;;14532:65;-1:-1:-1;;;;;14613:23:0;;;;;;:15;:23;;;;;;;;14610:209;;;14665:28;14689:3;14665:19;14676:7;;14665:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;14653:40;;14610:209;;;-1:-1:-1;;;;;14723:26:0;;;;;;:15;:26;;;;;;;;14720:99;;;14778:29;14803:3;14778:20;14789:8;;14778:6;:10;;:20;;;;:::i;:29::-;14766:41;;14720:99;-1:-1:-1;;;;;14833:18:0;;;;;;:10;:18;;;;;;;;14829:69;;;14876:6;14884:1;14868:18;;;;;;;14829:69;14918:21;:6;14929:9;14918:10;:21::i;:::-;14910:41;-1:-1:-1;14941:9:0;-1:-1:-1;14363:596:0;;;;;;;:::o;13811:544::-;13900:16;;;13914:1;13900:16;;;;;;;;13876:21;;13900:16;;;;;;;;;;-1:-1:-1;13900:16:0;13876:40;;13945:4;13927;13932:1;13927:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13927:23:0;;;:7;;;;;;;;;;:23;;;;13971:15;;:22;;;-1:-1:-1;;;13971:22:0;;;;:15;;;;;:20;;:22;;;;;13927:7;;13971:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13961:4;13966:1;13961:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13961:32:0;;;:7;;;;;;;;;:32;14038:15;;14006:62;;14023:4;;14038:15;14056:11;14006:8;:62::i;:::-;14107:15;;:240;;-1:-1:-1;;;14107:240:0;;-1:-1:-1;;;;;14107:15:0;;;;:66;;:240;;14188:11;;14107:15;;14258:4;;14285;;14321:15;;14107:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13865:490;13811:544;:::o;9814:113::-;9893:26;;-1:-1:-1;;;;;9893:18:0;;;:26;;;;;9912:6;;9893:26;;;;9912:6;9893:18;:26;;;;;;;;;;;;;;;;;;;1623:250;1681:7;1705:1;1710;1705:6;1701:47;;-1:-1:-1;1735:1:0;1728:8;;1701:47;1760:9;1772:5;1776:1;1772;:5;:::i;:::-;1760:17;-1:-1:-1;1805:1:0;1796:5;1800:1;1760:17;1796:5;:::i;:::-;:10;1788:56;;;;-1:-1:-1;;;1788:56:0;;10359:2:1;1788:56:0;;;10341:21:1;10398:2;10378:18;;;10371:30;10437:34;10417:18;;;10410:62;-1:-1:-1;;;10488:18:1;;;10481:31;10529:19;;1788:56:0;10157:397:1;1881:132:0;1939:7;1966:39;1970:1;1973;1966:39;;;;;;;;;;;;;;;;;:3;:39::i;1279:136::-;1337:7;1364:43;1368:1;1371;1364:43;;;;;;;;;;;;;;;;;:3;:43::i;2021:278::-;2107:7;2142:12;2135:5;2127:28;;;;-1:-1:-1;;;2127:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2166:9:0;2178:5;2182:1;2178;:5;:::i;222:548: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;;;506:3;691:1;686:2;677:6;666:9;662:22;658:31;651:42;761:2;754;750:7;745:2;737:6;733:15;729:29;718:9;714:45;710:54;702:62;;;;222:548;;;;:::o;775:131::-;-1:-1:-1;;;;;850:31:1;;840:42;;830:70;;896:1;893;886:12;830:70;775:131;:::o;911:315::-;979:6;987;1040:2;1028:9;1019:7;1015:23;1011:32;1008:52;;;1056:1;1053;1046:12;1008:52;1095:9;1082:23;1114:31;1139:5;1114:31;:::i;:::-;1164:5;1216:2;1201:18;;;;1188:32;;-1:-1:-1;;;911:315:1:o;1423:247::-;1482:6;1535:2;1523:9;1514:7;1510:23;1506:32;1503:52;;;1551:1;1548;1541:12;1503:52;1590:9;1577:23;1609:31;1634:5;1609:31;:::i;2087:316::-;2164:6;2172;2180;2233:2;2221:9;2212:7;2208:23;2204:32;2201:52;;;2249:1;2246;2239:12;2201:52;-1:-1:-1;;2272:23:1;;;2342:2;2327:18;;2314:32;;-1:-1:-1;2393:2:1;2378:18;;;2365:32;;2087:316;-1:-1:-1;2087:316:1:o;2408:456::-;2485:6;2493;2501;2554:2;2542:9;2533:7;2529:23;2525:32;2522:52;;;2570:1;2567;2560:12;2522:52;2609:9;2596:23;2628:31;2653:5;2628:31;:::i;:::-;2678:5;-1:-1:-1;2735:2:1;2720:18;;2707:32;2748:33;2707:32;2748:33;:::i;:::-;2408:456;;2800:7;;-1:-1:-1;;;2854:2:1;2839:18;;;;2826:32;;2408:456::o;3058:180::-;3117:6;3170:2;3158:9;3149:7;3145:23;3141:32;3138:52;;;3186:1;3183;3176:12;3138:52;-1:-1:-1;3209:23:1;;3058:180;-1:-1:-1;3058:180:1:o;3243:273::-;3299:6;3352:2;3340:9;3331:7;3327:23;3323:32;3320:52;;;3368:1;3365;3358:12;3320:52;3407:9;3394:23;3460:5;3453:13;3446:21;3439:5;3436:32;3426:60;;3482:1;3479;3472:12;3521:388;3589:6;3597;3650:2;3638:9;3629:7;3625:23;3621:32;3618:52;;;3666:1;3663;3656:12;3618:52;3705:9;3692:23;3724:31;3749:5;3724:31;:::i;:::-;3774:5;-1:-1:-1;3831:2:1;3816:18;;3803:32;3844:33;3803:32;3844:33;:::i;:::-;3896:7;3886:17;;;3521:388;;;;;:::o;3914:380::-;3993:1;3989:12;;;;4036;;;4057:61;;4111:4;4103:6;4099:17;4089:27;;4057:61;4164:2;4156:6;4153:14;4133:18;4130:38;4127:161;;4210:10;4205:3;4201:20;4198:1;4191:31;4245:4;4242:1;4235:15;4273:4;4270:1;4263:15;4127:161;;3914:380;;;:::o;4299:356::-;4501:2;4483:21;;;4520:18;;;4513:30;4579:34;4574:2;4559:18;;4552:62;4646:2;4631:18;;4299:356::o;4660:127::-;4721:10;4716:3;4712:20;4709:1;4702:31;4752:4;4749:1;4742:15;4776:4;4773:1;4766:15;4792:217;4832:1;4858;4848:132;;4902:10;4897:3;4893:20;4890:1;4883:31;4937:4;4934:1;4927:15;4965:4;4962:1;4955:15;4848:132;-1:-1:-1;4994:9:1;;4792:217::o;6638:125::-;6703:9;;;6724:10;;;6721:36;;;6737:18;;:::i;8346:128::-;8413:9;;;8434:11;;;8431:37;;;8448:18;;:::i;8611:127::-;8672:10;8667:3;8663:20;8660:1;8653:31;8703:4;8700:1;8693:15;8727:4;8724:1;8717:15;8743:251;8813:6;8866:2;8854:9;8845:7;8841:23;8837:32;8834:52;;;8882:1;8879;8872:12;8834:52;8914:9;8908:16;8933:31;8958:5;8933:31;:::i;8999:980::-;9261:4;9309:3;9298:9;9294:19;9340:6;9329:9;9322:25;9366:2;9404:6;9399:2;9388:9;9384:18;9377:34;9447:3;9442:2;9431:9;9427:18;9420:31;9471:6;9506;9500:13;9537:6;9529;9522:22;9575:3;9564:9;9560:19;9553:26;;9614:2;9606:6;9602:15;9588:29;;9635:1;9645:195;9659:6;9656:1;9653:13;9645:195;;;9724:13;;-1:-1:-1;;;;;9720:39:1;9708:52;;9815:15;;;;9780:12;;;;9756:1;9674:9;9645:195;;;-1:-1:-1;;;;;;;9896:32:1;;;;9891:2;9876:18;;9869:60;-1:-1:-1;;;9960:3:1;9945:19;9938:35;9857:3;8999:980;-1:-1:-1;;;8999:980:1:o;9984:168::-;10057:9;;;10088;;10105:15;;;10099:22;;10085:37;10075:71;;10126:18;;:::i

Swarm Source

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