ETH Price: $2,409.74 (-2.52%)
 

Overview

Max Total Supply

420,690,000,000 Marvin

Holders

61

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,100,000,000 Marvin

Value
$0.00
0x5f4ad1642c7b32b6eb12292ae61eb2d1f0e441a9
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:
Marvin

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-26
*/

// SPDX-License-Identifier: MIT

/*
$MARVIN is here! 🐕‍🦺💎  
Musk’s favorite dog!  
100% community-driven, back to the roots! 🌕🚀  
Join $Marvincoin and let’s head to Mars!  
https://Marvincoinerc.com
https://t.me/Marvincoinerc20
https://x.com/Marvincoinerc
*/

pragma solidity 0.8.25;

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

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

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

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

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

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    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 {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract Marvin is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private isExile;
    mapping (address => bool) public marketPair;
    mapping (uint256 => uint256) private perBuyCount;
    address payable private _taxWallet;
    uint256 private firstBlock = 0;

    uint256 private _initialBuyTax=23;
    uint256 private _initialSellTax=23;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;

    uint256 private _reduceBuyTaxAt=23;

    uint256 private _reduceSellTaxAt=23;
    uint256 private _preventSwapBefore=23;
    uint256 private _buyCount=0;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    mapping(address => bool)public WhiteList;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000 * 10**_decimals;
    string private constant _name = unicode"Musk's marvin lun"; 
    string private constant _symbol = unicode"Marvin";
    uint256 public _maxTxAmount =   8413800000 * 10**_decimals;
    uint256 public _maxWalletSize = 8413800000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 8413800000 * 10**_decimals;
    uint256 public _maxTaxSwap= 8413800000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    uint256 public caSell = 3;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool public caTrigger = true;

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

    constructor () {

        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        isExile[owner()] = true;
        isExile[address(this)] = true;
        isExile[address(uniswapV2Pair)] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
     function batchWihteList(address[] memory addr,bool value) public onlyOwner {
       for(uint i=0;i<addr.length;i++){
        WhiteList[addr[i]] = value;
       }
    }
    function setMarketPair(address addr) public onlyOwner {
        marketPair[addr] = true;
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;

        if (from != owner() && to != owner() && !WhiteList[from] && !WhiteList[to]) {
            taxAmount = amount.mul((_buyCount> _reduceBuyTaxAt)? _finalBuyTax: _initialBuyTax).div(100);
            require(tradingOpen,"trading not open");
            if(block.number == firstBlock){
               require(perBuyCount[block.number] < 51, "Exceeds buys on the first block.");
               perBuyCount[block.number]++;
            }

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

            if (!marketPair[to] && ! isExile[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

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

	    if (!marketPair[from] && !marketPair[to] && from!= address(this) ) {
                taxAmount = 0;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (caTrigger && !inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < caSell, "CA balance sell");
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }

            else if(!inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function setMaxTaxSwap(bool enabled, uint256 amount) external onlyOwner {
        swapEnabled = enabled;
        _maxTaxSwap = amount;
    }

    function setcaSell(uint256 amount) external onlyOwner {
        caSell = amount;
    }

    function setcaTrigger(bool _status) external onlyOwner {
        caTrigger = _status;
    }

    function rescueETH() external onlyOwner {
        payable(_taxWallet).transfer(address(this).balance);
    }

    function rescueERC20tokens(address _tokenAddr, uint _amount) external onlyOwner {
        IERC20(_tokenAddr).transfer(_taxWallet, _amount);
    }

    function setFeeWallet(address newTaxWallet) external onlyOwner {
        _taxWallet = payable(newTaxWallet);
    }

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

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }
    function addquility()external onlyOwner{
         uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        marketPair[address(uniswapV2Pair)] = true;
        isExile[address(uniswapV2Pair)] = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function enableTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
     
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"WhiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addquility","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":"addr","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"batchWihteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"caSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"caTrigger","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isNotRestricted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueERC20tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTaxWallet","type":"address"}],"name":"setFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setcaSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"setcaTrigger","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f600755601760085560176009555f600a555f600b556017600c556017600d556017600e555f600f555f6010555f6011556009600a6100439190610315565b610052906401f580664061032a565b6013556100616009600a610315565b610070906401f580664061032a565b60145561007f6009600a610315565b61008e906401f580664061032a565b60155561009d6009600a610315565b6100ac906401f580664061032a565b6016556003601955601a805462ffffff1916620100001790553480156100d0575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600680546001600160a01b0319163317905561012f6009600a610315565b61013e906461f313f88061032a565b335f9081526001602081905260408220929092556003906101665f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556018549091168352912080549092161790556101c33390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101fa6009600a610315565b610209906461f313f88061032a565b60405190815260200160405180910390a3610341565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561026d57815f19048211156102535761025361021f565b8085161561026057918102915b93841c9390800290610238565b509250929050565b5f826102835750600161030f565b8161028f57505f61030f565b81600181146102a557600281146102af576102cb565b600191505061030f565b60ff8411156102c0576102c061021f565b50506001821b61030f565b5060208310610133831016604e8410600b84101617156102ee575081810a61030f565b6102f88383610233565b805f190482111561030b5761030b61021f565b0290505b92915050565b5f61032360ff841683610275565b9392505050565b808202811582820484141761030f5761030f61021f565b6120f88061034e5f395ff3fe6080604052600436106101de575f3560e01c8063776edf6d116100fd578063a9059cbb11610092578063e68d0b0511610062578063e68d0b051461058e578063f2fde38b146105ad578063f5b3c3bf146105cc578063fce0299a146105fa575f80fd5b8063a9059cbb146104f7578063bf474bed14610516578063c8d464a41461052b578063dd62ed3e1461054a575f80fd5b80638da5cb5b116100cd5780638da5cb5b146104795780638f9a55c01461049557806390d49b9d146104aa57806395d89b41146104c9575f80fd5b8063776edf6d1461041d5780637cc36cce1461043c5780637d1db4a5146104505780638a8c523c14610465575f80fd5b8063313ce567116101735780636bc20157116101435780636bc201571461039257806370a08231146103c0578063715018a6146103f457806374bebabb14610408575f80fd5b8063313ce567146103025780633bdb20c51461031d57806349bd5a5e1461033c57806353bc13dc14610373575f80fd5b806318160ddd116101ae57806318160ddd1461029c57806320800a00146102b057806322c97e31146102c457806323b872dd146102e3575f80fd5b806301ab6ee5146101e957806306fdde03146101ff578063095ea7b31461024a5780630faee56f14610279575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b506101fd610619565b005b34801561020a575f80fd5b5060408051808201909152601181527026bab9b593b99036b0b93b34b710363ab760791b60208201525b6040516102419190611bd5565b60405180910390f35b348015610255575f80fd5b50610269610264366004611c2e565b6106d6565b6040519015158152602001610241565b348015610284575f80fd5b5061028e60165481565b604051908152602001610241565b3480156102a7575f80fd5b5061028e6106ec565b3480156102bb575f80fd5b506101fd61070d565b3480156102cf575f80fd5b506101fd6102de366004611c70565b61076f565b3480156102ee575f80fd5b506102696102fd366004611c8b565b6107b4565b34801561030d575f80fd5b5060405160098152602001610241565b348015610328575f80fd5b506101fd610337366004611cc9565b61081b565b348015610347575f80fd5b5060185461035b906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b34801561037e575f80fd5b506101fd61038d366004611ce0565b610849565b34801561039d575f80fd5b506102696103ac366004611ce0565b60126020525f908152604090205460ff1681565b3480156103cb575f80fd5b5061028e6103da366004611ce0565b6001600160a01b03165f9081526001602052604090205490565b3480156103ff575f80fd5b506101fd610895565b348015610413575f80fd5b5061028e60195481565b348015610428575f80fd5b506101fd610437366004611d0f565b610906565b348015610447575f80fd5b506101fd61098e565b34801561045b575f80fd5b5061028e60135481565b348015610470575f80fd5b506101fd610c2b565b348015610484575f80fd5b505f546001600160a01b031661035b565b3480156104a0575f80fd5b5061028e60145481565b3480156104b5575f80fd5b506101fd6104c4366004611ce0565b610cd6565b3480156104d4575f80fd5b5060408051808201909152600681526526b0b93b34b760d11b6020820152610234565b348015610502575f80fd5b50610269610511366004611c2e565b610d21565b348015610521575f80fd5b5061028e60155481565b348015610536575f80fd5b50601a546102699062010000900460ff1681565b348015610555575f80fd5b5061028e610564366004611de1565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610599575f80fd5b506101fd6105a8366004611e18565b610d2d565b3480156105b8575f80fd5b506101fd6105c7366004611ce0565b610d74565b3480156105d7575f80fd5b506102696105e6366004611ce0565b60046020525f908152604090205460ff1681565b348015610605575f80fd5b506101fd610614366004611c2e565b610e5b565b5f546001600160a01b0316331461064b5760405162461bcd60e51b815260040161064290611e34565b60405180910390fd5b6106576009600a611f5d565b610666906461f313f880611f6b565b6013556106756009600a611f5d565b610684906461f313f880611f6b565b6014557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106b46009600a611f5d565b6106c3906461f313f880611f6b565b60405190815260200160405180910390a1565b5f6106e2338484610ef8565b5060015b92915050565b5f6106f96009600a611f5d565b610708906461f313f880611f6b565b905090565b5f546001600160a01b031633146107365760405162461bcd60e51b815260040161064290611e34565b6006546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561076c573d5f803e3d5ffd5b50565b5f546001600160a01b031633146107985760405162461bcd60e51b815260040161064290611e34565b601a8054911515620100000262ff000019909216919091179055565b5f6107c084848461101b565b610811843361080c8560405180606001604052806028815260200161209b602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611856565b610ef8565b5060019392505050565b5f546001600160a01b031633146108445760405162461bcd60e51b815260040161064290611e34565b601955565b5f546001600160a01b031633146108725760405162461bcd60e51b815260040161064290611e34565b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b5f546001600160a01b031633146108be5760405162461bcd60e51b815260040161064290611e34565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461092f5760405162461bcd60e51b815260040161064290611e34565b5f5b8251811015610989578160125f85848151811061095057610950611f82565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610931565b505050565b5f546001600160a01b031633146109b75760405162461bcd60e51b815260040161064290611e34565b601780546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a019030906109f26009600a611f5d565b61080c906461f313f880611f6b565b60175f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a51573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a759190611f96565b6001600160a01b031663c9c653963060175f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ad4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610af89190611f96565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610b42573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b669190611f96565b601880546001600160a01b0319166001600160a01b0392831690811782555f908152600460208181526040808420805460ff199081166001908117909255865488168652600390935293819020805490921690931790559154601754915163095ea7b360e01b8152918416928201929092525f19602482015291169063095ea7b3906044016020604051808303815f875af1158015610c07573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061076c9190611fb1565b5f546001600160a01b03163314610c545760405162461bcd60e51b815260040161064290611e34565b601854600160a01b900460ff1615610cae5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610642565b601a805461ff0019166101001790556018805460ff60a01b1916600160a01b17905543600755565b5f546001600160a01b03163314610cff5760405162461bcd60e51b815260040161064290611e34565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b5f6106e233848461101b565b5f546001600160a01b03163314610d565760405162461bcd60e51b815260040161064290611e34565b601a80549215156101000261ff001990931692909217909155601655565b5f546001600160a01b03163314610d9d5760405162461bcd60e51b815260040161064290611e34565b6001600160a01b038116610e025760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610642565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610e845760405162461bcd60e51b815260040161064290611e34565b60065460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af1158015610ed4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109899190611fb1565b6001600160a01b038316610f5a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610642565b6001600160a01b038216610fbb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610642565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661107f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610642565b6001600160a01b0382166110e15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610642565b5f81116111425760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610642565b5f80546001600160a01b0385811691161480159061116d57505f546001600160a01b03848116911614155b801561119157506001600160a01b0384165f9081526012602052604090205460ff16155b80156111b557506001600160a01b0383165f9081526012602052604090205460ff16155b15611719576111e660646111e0600c54600f54116111d5576008546111d9565b600a545b859061188e565b90611913565b601854909150600160a01b900460ff166112355760405162461bcd60e51b815260206004820152601060248201526f3a3930b234b733903737ba1037b832b760811b6044820152606401610642565b60075443036112bc57435f9081526005602052604090205460331161129c5760405162461bcd60e51b815260206004820181905260248201527f457863656564732062757973206f6e2074686520666972737420626c6f636b2e6044820152606401610642565b435f9081526005602052604081208054916112b683611fcc565b91905055505b6001600160a01b0384165f9081526004602052604090205460ff1680156112f157506017546001600160a01b03848116911614155b801561131557506001600160a01b0383165f9081526003602052604090205460ff16155b156113fb5760135482111561136c5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610642565b6014548261138e856001600160a01b03165f9081526001602052604090205490565b6113989190611fe4565b11156113e65760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610642565b600f8054905f6113f583611fcc565b91905055505b6001600160a01b0383165f9081526004602052604090205460ff1615801561143b57506001600160a01b0383165f9081526003602052604090205460ff16155b156114ba5760145482611462856001600160a01b03165f9081526001602052604090205490565b61146c9190611fe4565b11156114ba5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610642565b6001600160a01b0383165f9081526004602052604090205460ff1680156114ea57506001600160a01b0384163014155b156115175761151460646111e0600d54600f541161150a576009546111d9565b600b54859061188e565b90505b6001600160a01b0384165f9081526004602052604090205460ff1615801561155757506001600160a01b0383165f9081526004602052604090205460ff16155b801561156c57506001600160a01b0384163014155b1561157457505f5b305f90815260016020526040902054601a5462010000900460ff16801561159e5750601a5460ff16155b80156115c157506001600160a01b0384165f9081526004602052604090205460ff165b80156115d45750601a54610100900460ff165b80156115e1575060155481115b80156115f05750600e54600f54115b1561169457601154431115611604575f6010555b601954601054106116495760405162461bcd60e51b815260206004820152600f60248201526e10d04818985b185b98d9481cd95b1b608a1b6044820152606401610642565b6116666116618461165c84601654611954565b611954565b611968565b4780156116765761167647611acf565b60108054905f61168583611fcc565b90915550504360115550611717565b601a5460ff161580156116be57506001600160a01b0384165f9081526004602052604090205460ff165b80156116d15750601a54610100900460ff165b80156116de575060155481115b80156116ed5750600e54600f54115b15611717576117056116618461165c84601654611954565b4780156117155761171547611acf565b505b505b801561179157305f908152600160205260409020546117389082611b0a565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117889085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546117b39083611b68565b6001600160a01b0385165f908152600160205260409020556117f66117d88383611b68565b6001600160a01b0385165f9081526001602052604090205490611b0a565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61183f8585611b68565b60405190815260200160405180910390a350505050565b5f81848411156118795760405162461bcd60e51b81526004016106429190611bd5565b505f6118858486611ff7565b95945050505050565b5f825f0361189d57505f6106e6565b5f6118a88385611f6b565b9050826118b5858361200a565b1461190c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610642565b9392505050565b5f61190c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ba9565b5f818311611962578261190c565b50919050565b601a805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106119a8576119a8611f82565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119ff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a239190611f96565b81600181518110611a3657611a36611f82565b6001600160a01b039283166020918202929092010152601754611a5c9130911684610ef8565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a949085905f90869030904290600401612029565b5f604051808303815f87803b158015611aab575f80fd5b505af1158015611abd573d5f803e3d5ffd5b5050601a805460ff1916905550505050565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611b06573d5f803e3d5ffd5b5050565b5f80611b168385611fe4565b90508381101561190c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610642565b5f61190c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611856565b5f8183611bc95760405162461bcd60e51b81526004016106429190611bd5565b505f611885848661200a565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461076c575f80fd5b8035611c2981611c0a565b919050565b5f8060408385031215611c3f575f80fd5b8235611c4a81611c0a565b946020939093013593505050565b801515811461076c575f80fd5b8035611c2981611c58565b5f60208284031215611c80575f80fd5b813561190c81611c58565b5f805f60608486031215611c9d575f80fd5b8335611ca881611c0a565b92506020840135611cb881611c0a565b929592945050506040919091013590565b5f60208284031215611cd9575f80fd5b5035919050565b5f60208284031215611cf0575f80fd5b813561190c81611c0a565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215611d20575f80fd5b823567ffffffffffffffff80821115611d37575f80fd5b818501915085601f830112611d4a575f80fd5b8135602082821115611d5e57611d5e611cfb565b8160051b604051601f19603f83011681018181108682111715611d8357611d83611cfb565b604052928352818301935084810182019289841115611da0575f80fd5b948201945b83861015611dc557611db686611c1e565b85529482019493820193611da5565b9650611dd49050878201611c65565b9450505050509250929050565b5f8060408385031215611df2575f80fd5b8235611dfd81611c0a565b91506020830135611e0d81611c0a565b809150509250929050565b5f8060408385031215611e29575f80fd5b8235611c4a81611c58565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611eb757815f1904821115611e9d57611e9d611e69565b80851615611eaa57918102915b93841c9390800290611e82565b509250929050565b5f82611ecd575060016106e6565b81611ed957505f6106e6565b8160018114611eef5760028114611ef957611f15565b60019150506106e6565b60ff841115611f0a57611f0a611e69565b50506001821b6106e6565b5060208310610133831016604e8410600b8410161715611f38575081810a6106e6565b611f428383611e7d565b805f1904821115611f5557611f55611e69565b029392505050565b5f61190c60ff841683611ebf565b80820281158282048414176106e6576106e6611e69565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611fa6575f80fd5b815161190c81611c0a565b5f60208284031215611fc1575f80fd5b815161190c81611c58565b5f60018201611fdd57611fdd611e69565b5060010190565b808201808211156106e6576106e6611e69565b818103818111156106e6576106e6611e69565b5f8261202457634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156120795784516001600160a01b031683529383019391830191600101612054565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122016ede490a4f07441a9a5ca43db3572ef2617c7d673c65558118212882e65ba4f64736f6c63430008190033

Deployed Bytecode

0x6080604052600436106101de575f3560e01c8063776edf6d116100fd578063a9059cbb11610092578063e68d0b0511610062578063e68d0b051461058e578063f2fde38b146105ad578063f5b3c3bf146105cc578063fce0299a146105fa575f80fd5b8063a9059cbb146104f7578063bf474bed14610516578063c8d464a41461052b578063dd62ed3e1461054a575f80fd5b80638da5cb5b116100cd5780638da5cb5b146104795780638f9a55c01461049557806390d49b9d146104aa57806395d89b41146104c9575f80fd5b8063776edf6d1461041d5780637cc36cce1461043c5780637d1db4a5146104505780638a8c523c14610465575f80fd5b8063313ce567116101735780636bc20157116101435780636bc201571461039257806370a08231146103c0578063715018a6146103f457806374bebabb14610408575f80fd5b8063313ce567146103025780633bdb20c51461031d57806349bd5a5e1461033c57806353bc13dc14610373575f80fd5b806318160ddd116101ae57806318160ddd1461029c57806320800a00146102b057806322c97e31146102c457806323b872dd146102e3575f80fd5b806301ab6ee5146101e957806306fdde03146101ff578063095ea7b31461024a5780630faee56f14610279575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b506101fd610619565b005b34801561020a575f80fd5b5060408051808201909152601181527026bab9b593b99036b0b93b34b710363ab760791b60208201525b6040516102419190611bd5565b60405180910390f35b348015610255575f80fd5b50610269610264366004611c2e565b6106d6565b6040519015158152602001610241565b348015610284575f80fd5b5061028e60165481565b604051908152602001610241565b3480156102a7575f80fd5b5061028e6106ec565b3480156102bb575f80fd5b506101fd61070d565b3480156102cf575f80fd5b506101fd6102de366004611c70565b61076f565b3480156102ee575f80fd5b506102696102fd366004611c8b565b6107b4565b34801561030d575f80fd5b5060405160098152602001610241565b348015610328575f80fd5b506101fd610337366004611cc9565b61081b565b348015610347575f80fd5b5060185461035b906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b34801561037e575f80fd5b506101fd61038d366004611ce0565b610849565b34801561039d575f80fd5b506102696103ac366004611ce0565b60126020525f908152604090205460ff1681565b3480156103cb575f80fd5b5061028e6103da366004611ce0565b6001600160a01b03165f9081526001602052604090205490565b3480156103ff575f80fd5b506101fd610895565b348015610413575f80fd5b5061028e60195481565b348015610428575f80fd5b506101fd610437366004611d0f565b610906565b348015610447575f80fd5b506101fd61098e565b34801561045b575f80fd5b5061028e60135481565b348015610470575f80fd5b506101fd610c2b565b348015610484575f80fd5b505f546001600160a01b031661035b565b3480156104a0575f80fd5b5061028e60145481565b3480156104b5575f80fd5b506101fd6104c4366004611ce0565b610cd6565b3480156104d4575f80fd5b5060408051808201909152600681526526b0b93b34b760d11b6020820152610234565b348015610502575f80fd5b50610269610511366004611c2e565b610d21565b348015610521575f80fd5b5061028e60155481565b348015610536575f80fd5b50601a546102699062010000900460ff1681565b348015610555575f80fd5b5061028e610564366004611de1565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610599575f80fd5b506101fd6105a8366004611e18565b610d2d565b3480156105b8575f80fd5b506101fd6105c7366004611ce0565b610d74565b3480156105d7575f80fd5b506102696105e6366004611ce0565b60046020525f908152604090205460ff1681565b348015610605575f80fd5b506101fd610614366004611c2e565b610e5b565b5f546001600160a01b0316331461064b5760405162461bcd60e51b815260040161064290611e34565b60405180910390fd5b6106576009600a611f5d565b610666906461f313f880611f6b565b6013556106756009600a611f5d565b610684906461f313f880611f6b565b6014557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106b46009600a611f5d565b6106c3906461f313f880611f6b565b60405190815260200160405180910390a1565b5f6106e2338484610ef8565b5060015b92915050565b5f6106f96009600a611f5d565b610708906461f313f880611f6b565b905090565b5f546001600160a01b031633146107365760405162461bcd60e51b815260040161064290611e34565b6006546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561076c573d5f803e3d5ffd5b50565b5f546001600160a01b031633146107985760405162461bcd60e51b815260040161064290611e34565b601a8054911515620100000262ff000019909216919091179055565b5f6107c084848461101b565b610811843361080c8560405180606001604052806028815260200161209b602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611856565b610ef8565b5060019392505050565b5f546001600160a01b031633146108445760405162461bcd60e51b815260040161064290611e34565b601955565b5f546001600160a01b031633146108725760405162461bcd60e51b815260040161064290611e34565b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b5f546001600160a01b031633146108be5760405162461bcd60e51b815260040161064290611e34565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461092f5760405162461bcd60e51b815260040161064290611e34565b5f5b8251811015610989578160125f85848151811061095057610950611f82565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610931565b505050565b5f546001600160a01b031633146109b75760405162461bcd60e51b815260040161064290611e34565b601780546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a019030906109f26009600a611f5d565b61080c906461f313f880611f6b565b60175f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a51573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a759190611f96565b6001600160a01b031663c9c653963060175f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ad4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610af89190611f96565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610b42573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b669190611f96565b601880546001600160a01b0319166001600160a01b0392831690811782555f908152600460208181526040808420805460ff199081166001908117909255865488168652600390935293819020805490921690931790559154601754915163095ea7b360e01b8152918416928201929092525f19602482015291169063095ea7b3906044016020604051808303815f875af1158015610c07573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061076c9190611fb1565b5f546001600160a01b03163314610c545760405162461bcd60e51b815260040161064290611e34565b601854600160a01b900460ff1615610cae5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610642565b601a805461ff0019166101001790556018805460ff60a01b1916600160a01b17905543600755565b5f546001600160a01b03163314610cff5760405162461bcd60e51b815260040161064290611e34565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b5f6106e233848461101b565b5f546001600160a01b03163314610d565760405162461bcd60e51b815260040161064290611e34565b601a80549215156101000261ff001990931692909217909155601655565b5f546001600160a01b03163314610d9d5760405162461bcd60e51b815260040161064290611e34565b6001600160a01b038116610e025760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610642565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610e845760405162461bcd60e51b815260040161064290611e34565b60065460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af1158015610ed4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109899190611fb1565b6001600160a01b038316610f5a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610642565b6001600160a01b038216610fbb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610642565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661107f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610642565b6001600160a01b0382166110e15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610642565b5f81116111425760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610642565b5f80546001600160a01b0385811691161480159061116d57505f546001600160a01b03848116911614155b801561119157506001600160a01b0384165f9081526012602052604090205460ff16155b80156111b557506001600160a01b0383165f9081526012602052604090205460ff16155b15611719576111e660646111e0600c54600f54116111d5576008546111d9565b600a545b859061188e565b90611913565b601854909150600160a01b900460ff166112355760405162461bcd60e51b815260206004820152601060248201526f3a3930b234b733903737ba1037b832b760811b6044820152606401610642565b60075443036112bc57435f9081526005602052604090205460331161129c5760405162461bcd60e51b815260206004820181905260248201527f457863656564732062757973206f6e2074686520666972737420626c6f636b2e6044820152606401610642565b435f9081526005602052604081208054916112b683611fcc565b91905055505b6001600160a01b0384165f9081526004602052604090205460ff1680156112f157506017546001600160a01b03848116911614155b801561131557506001600160a01b0383165f9081526003602052604090205460ff16155b156113fb5760135482111561136c5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610642565b6014548261138e856001600160a01b03165f9081526001602052604090205490565b6113989190611fe4565b11156113e65760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610642565b600f8054905f6113f583611fcc565b91905055505b6001600160a01b0383165f9081526004602052604090205460ff1615801561143b57506001600160a01b0383165f9081526003602052604090205460ff16155b156114ba5760145482611462856001600160a01b03165f9081526001602052604090205490565b61146c9190611fe4565b11156114ba5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610642565b6001600160a01b0383165f9081526004602052604090205460ff1680156114ea57506001600160a01b0384163014155b156115175761151460646111e0600d54600f541161150a576009546111d9565b600b54859061188e565b90505b6001600160a01b0384165f9081526004602052604090205460ff1615801561155757506001600160a01b0383165f9081526004602052604090205460ff16155b801561156c57506001600160a01b0384163014155b1561157457505f5b305f90815260016020526040902054601a5462010000900460ff16801561159e5750601a5460ff16155b80156115c157506001600160a01b0384165f9081526004602052604090205460ff165b80156115d45750601a54610100900460ff165b80156115e1575060155481115b80156115f05750600e54600f54115b1561169457601154431115611604575f6010555b601954601054106116495760405162461bcd60e51b815260206004820152600f60248201526e10d04818985b185b98d9481cd95b1b608a1b6044820152606401610642565b6116666116618461165c84601654611954565b611954565b611968565b4780156116765761167647611acf565b60108054905f61168583611fcc565b90915550504360115550611717565b601a5460ff161580156116be57506001600160a01b0384165f9081526004602052604090205460ff165b80156116d15750601a54610100900460ff165b80156116de575060155481115b80156116ed5750600e54600f54115b15611717576117056116618461165c84601654611954565b4780156117155761171547611acf565b505b505b801561179157305f908152600160205260409020546117389082611b0a565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117889085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546117b39083611b68565b6001600160a01b0385165f908152600160205260409020556117f66117d88383611b68565b6001600160a01b0385165f9081526001602052604090205490611b0a565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61183f8585611b68565b60405190815260200160405180910390a350505050565b5f81848411156118795760405162461bcd60e51b81526004016106429190611bd5565b505f6118858486611ff7565b95945050505050565b5f825f0361189d57505f6106e6565b5f6118a88385611f6b565b9050826118b5858361200a565b1461190c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610642565b9392505050565b5f61190c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ba9565b5f818311611962578261190c565b50919050565b601a805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106119a8576119a8611f82565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119ff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a239190611f96565b81600181518110611a3657611a36611f82565b6001600160a01b039283166020918202929092010152601754611a5c9130911684610ef8565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a949085905f90869030904290600401612029565b5f604051808303815f87803b158015611aab575f80fd5b505af1158015611abd573d5f803e3d5ffd5b5050601a805460ff1916905550505050565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611b06573d5f803e3d5ffd5b5050565b5f80611b168385611fe4565b90508381101561190c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610642565b5f61190c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611856565b5f8183611bc95760405162461bcd60e51b81526004016106429190611bd5565b505f611885848661200a565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461076c575f80fd5b8035611c2981611c0a565b919050565b5f8060408385031215611c3f575f80fd5b8235611c4a81611c0a565b946020939093013593505050565b801515811461076c575f80fd5b8035611c2981611c58565b5f60208284031215611c80575f80fd5b813561190c81611c58565b5f805f60608486031215611c9d575f80fd5b8335611ca881611c0a565b92506020840135611cb881611c0a565b929592945050506040919091013590565b5f60208284031215611cd9575f80fd5b5035919050565b5f60208284031215611cf0575f80fd5b813561190c81611c0a565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215611d20575f80fd5b823567ffffffffffffffff80821115611d37575f80fd5b818501915085601f830112611d4a575f80fd5b8135602082821115611d5e57611d5e611cfb565b8160051b604051601f19603f83011681018181108682111715611d8357611d83611cfb565b604052928352818301935084810182019289841115611da0575f80fd5b948201945b83861015611dc557611db686611c1e565b85529482019493820193611da5565b9650611dd49050878201611c65565b9450505050509250929050565b5f8060408385031215611df2575f80fd5b8235611dfd81611c0a565b91506020830135611e0d81611c0a565b809150509250929050565b5f8060408385031215611e29575f80fd5b8235611c4a81611c58565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611eb757815f1904821115611e9d57611e9d611e69565b80851615611eaa57918102915b93841c9390800290611e82565b509250929050565b5f82611ecd575060016106e6565b81611ed957505f6106e6565b8160018114611eef5760028114611ef957611f15565b60019150506106e6565b60ff841115611f0a57611f0a611e69565b50506001821b6106e6565b5060208310610133831016604e8410600b8410161715611f38575081810a6106e6565b611f428383611e7d565b805f1904821115611f5557611f55611e69565b029392505050565b5f61190c60ff841683611ebf565b80820281158282048414176106e6576106e6611e69565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611fa6575f80fd5b815161190c81611c0a565b5f60208284031215611fc1575f80fd5b815161190c81611c58565b5f60018201611fdd57611fdd611e69565b5060010190565b808201808211156106e6576106e6611e69565b818103818111156106e6576106e6611e69565b5f8261202457634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156120795784516001600160a01b031683529383019391830191600101612054565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122016ede490a4f07441a9a5ca43db3572ef2617c7d673c65558118212882e65ba4f64736f6c63430008190033

Deployed Bytecode Sourcemap

3981:9576:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12516:162;;;;;;;;;;;;;:::i;:::-;;6085:83;;;;;;;;;;-1:-1:-1;6155:5:0;;;;;;;;;;;;-1:-1:-1;;;6155:5:0;;;;6085:83;;;;;;;:::i;:::-;;;;;;;;6918:161;;;;;;;;;;-1:-1:-1;6918:161:0;;;;;:::i;:::-;;:::i;:::-;;;1197:14:1;;1190:22;1172:41;;1160:2;1145:18;6918:161:0;1032:187:1;5303:54:0;;;;;;;;;;;;;;;;;;;1370:25:1;;;1358:2;1343:18;5303:54:0;1224:177:1;6362:95:0;;;;;;;;;;;;;:::i;12119:110::-;;;;;;;;;;;;;:::i;12018:93::-;;;;;;;;;;-1:-1:-1;12018:93:0;;;;;:::i;:::-;;:::i;7087:313::-;;;;;;;;;;-1:-1:-1;7087:313:0;;;;;:::i;:::-;;:::i;6271:83::-;;;;;;;;;;-1:-1:-1;6271:83:0;;4906:1;2511:36:1;;2499:2;2484:18;6271:83:0;2369:184:1;11922:88:0;;;;;;;;;;-1:-1:-1;11922:88:0;;;;;:::i;:::-;;:::i;5415:28::-;;;;;;;;;;-1:-1:-1;5415:28:0;;;;-1:-1:-1;;;;;5415:28:0;;;;;;-1:-1:-1;;;;;2907:32:1;;;2889:51;;2877:2;2862:18;5415:28:0;2743:203:1;7927:96:0;;;;;;;;;;-1:-1:-1;7927:96:0;;;;;:::i;:::-;;:::i;4824:40::-;;;;;;;;;;-1:-1:-1;4824:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6465:119;;;;;;;;;;-1:-1:-1;6465:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6558:18:0;6531:7;6558:18;;;:9;:18;;;;;;;6465:119;2812:148;;;;;;;;;;;;;:::i;5481:25::-;;;;;;;;;;;;;;;;7750:171;;;;;;;;;;-1:-1:-1;7750:171:0;;;;;:::i;:::-;;:::i;12784:512::-;;;;;;;;;;;;;:::i;5106:58::-;;;;;;;;;;;;;;;;13304:213;;;;;;;;;;;;;:::i;2598:79::-;;;;;;;;;;-1:-1:-1;2636:7:0;2663:6;-1:-1:-1;;;;;2663:6:0;2598:79;;5171:58;;;;;;;;;;;;;;;;12392:116;;;;;;;;;;-1:-1:-1;12392:116:0;;;;;:::i;:::-;;:::i;6176:87::-;;;;;;;;;;-1:-1:-1;6248:7:0;;;;;;;;;;;;-1:-1:-1;;;6248:7:0;;;;6176:87;;6592:167;;;;;;;;;;-1:-1:-1;6592:167:0;;;;;:::i;:::-;;:::i;5236:60::-;;;;;;;;;;;;;;;;5586:28;;;;;;;;;;-1:-1:-1;5586:28:0;;;;;;;;;;;6767:143;;;;;;;;;;-1:-1:-1;6767:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6875:18:0;;;6848:7;6875:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6767:143;11771;;;;;;;;;;-1:-1:-1;11771:143:0;;;;;:::i;:::-;;:::i;2968:244::-;;;;;;;;;;-1:-1:-1;2968:244:0;;;;;:::i;:::-;;:::i;4242:43::-;;;;;;;;;;-1:-1:-1;4242:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12237:147;;;;;;;;;;-1:-1:-1;12237:147:0;;;;;:::i;:::-;;:::i;12516:162::-;2725:6;;-1:-1:-1;;;;;2725:6:0;433:10;2725:22;2717:67;;;;-1:-1:-1;;;2717:67:0;;;;;;;:::i;:::-;;;;;;;;;4964:13:::1;4906:1;4964:2;:13;:::i;:::-;4949:28;::::0;:12:::1;:28;:::i;:::-;12572:12;:22:::0;4964:13:::1;4906:1;4964:2;:13;:::i;:::-;4949:28;::::0;:12:::1;:28;:::i;:::-;12605:14;:22:::0;12643:27:::1;4964:13;4906:1;4964:2;:13;:::i;:::-;4949:28;::::0;:12:::1;:28;:::i;:::-;12643:27;::::0;1370:25:1;;;1358:2;1343:18;12643:27:0::1;;;;;;;12516:162::o:0;6918:161::-;6993:4;7010:39;433:10;7033:7;7042:6;7010:8;:39::i;:::-;-1:-1:-1;7067:4:0;6918:161;;;;;:::o;6362:95::-;6415:7;4964:13;4906:1;4964:2;:13;:::i;:::-;4949:28;;:12;:28;:::i;:::-;6435:14;;6362:95;:::o;12119:110::-;2725:6;;-1:-1:-1;;;;;2725:6:0;433:10;2725:22;2717:67;;;;-1:-1:-1;;;2717:67:0;;;;;;;:::i;:::-;12178:10:::1;::::0;12170:51:::1;::::0;-1:-1:-1;;;;;12178:10:0;;::::1;::::0;12199:21:::1;12170:51:::0;::::1;;;::::0;12178:10:::1;12170:51:::0;12178:10;12170:51;12199:21;12178:10;12170:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12119:110::o:0;12018:93::-;2725:6;;-1:-1:-1;;;;;2725:6:0;433:10;2725:22;2717:67;;;;-1:-1:-1;;;2717:67:0;;;;;;;:::i;:::-;12084:9:::1;:19:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;12084:19:0;;::::1;::::0;;;::::1;::::0;;12018:93::o;7087:313::-;7185:4;7202:36;7212:6;7220:9;7231:6;7202:9;:36::i;:::-;7249:121;7258:6;433:10;7280:89;7318:6;7280:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7280:19:0;;;;;;:11;:19;;;;;;;;433:10;7280:33;;;;;;;;;;:37;:89::i;:::-;7249:8;:121::i;:::-;-1:-1:-1;7388:4:0;7087:313;;;;;:::o;11922:88::-;2725:6;;-1:-1:-1;;;;;2725:6:0;433:10;2725:22;2717:67;;;;-1:-1:-1;;;2717:67:0;;;;;;;:::i;:::-;11987:6:::1;:15:::0;11922:88::o;7927:96::-;2725:6;;-1:-1:-1;;;;;2725:6:0;433:10;2725:22;2717:67;;;;-1:-1:-1;;;2717:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7992:16:0::1;;::::0;;;:10:::1;:16;::::0;;;;:23;;-1:-1:-1;;7992:23:0::1;8011:4;7992:23;::::0;;7927:96::o;2812:148::-;2725:6;;-1:-1:-1;;;;;2725:6:0;433:10;2725:22;2717:67;;;;-1:-1:-1;;;2717:67:0;;;;;;;:::i;:::-;2919:1:::1;2903:6:::0;;2882:40:::1;::::0;-1:-1:-1;;;;;2903:6:0;;::::1;::::0;2882:40:::1;::::0;2919:1;;2882:40:::1;2950:1;2933:19:::0;;-1:-1:-1;;;;;;2933:19:0::1;::::0;;2812:148::o;7750:171::-;2725:6;;-1:-1:-1;;;;;2725:6:0;433:10;2725:22;2717:67;;;;-1:-1:-1;;;2717:67:0;;;;;;;:::i;:::-;7839:6:::1;7835:79;7850:4;:11;7848:1;:13;7835:79;;;7898:5;7877:9;:18;7887:4;7892:1;7887:7;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;7877:18:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;7877:18:0;:26;;-1:-1:-1;;7877:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;7862:3:0::1;7835:79;;;;7750:171:::0;;:::o;12784:512::-;2725:6;;-1:-1:-1;;;;;2725:6:0;433:10;2725:22;2717:67;;;;-1:-1:-1;;;2717:67:0;;;;;;;:::i;:::-;12835:15:::1;:80:::0;;-1:-1:-1;;;;;;12835:80:0::1;12872:42;12835:80:::0;;::::1;::::0;;;12926:58:::1;::::0;12943:4:::1;::::0;4964:13:::1;4906:1;4964:2;:13;:::i;:::-;4949:28;::::0;:12:::1;:28;:::i;12926:58::-;13029:15;;;;;;;;;-1:-1:-1::0;;;;;13029:15:0::1;-1:-1:-1::0;;;;;13029:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13011:55:0::1;;13075:4;13082:15;;;;;;;;;-1:-1:-1::0;;;;;13082:15:0::1;-1:-1:-1::0;;;;;13082:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13011:94;::::0;-1:-1:-1;;;;;;13011:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7899:15:1;;;13011:94:0::1;::::0;::::1;7881:34:1::0;7951:15;;7931:18;;;7924:43;7816:18;;13011:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12995:13;:110:::0;;-1:-1:-1;;;;;;12995:110:0::1;-1:-1:-1::0;;;;;12995:110:0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;13116:34:0;;;:10:::1;:34;::::0;;;;;;;:41;;-1:-1:-1;;13116:41:0;;::::1;-1:-1:-1::0;13116:41:0;;::::1;::::0;;;13184:13;;;::::1;13168:31:::0;;:7:::1;:31:::0;;;;;;;:38;;;;::::1;::::0;;::::1;::::0;;13224:13;;13255:15:::1;::::0;13217:71;;-1:-1:-1;;;13217:71:0;;13255:15;;::::1;13217:71:::0;;::::1;8152:51:1::0;;;;-1:-1:-1;;8219:18:1;;;8212:34;13224:13:0;::::1;::::0;13217:29:::1;::::0;8125:18:1;;13217:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13304:213::-:0;2725:6;;-1:-1:-1;;;;;2725:6:0;433:10;2725:22;2717:67;;;;-1:-1:-1;;;2717:67:0;;;;;;;:::i;:::-;13370:11:::1;::::0;-1:-1:-1;;;13370:11:0;::::1;;;13369:12;13361:47;;;::::0;-1:-1:-1;;;13361:47:0;;8709:2:1;13361:47:0::1;::::0;::::1;8691:21:1::0;8748:2;8728:18;;;8721:30;8787:25;8767:18;;;8760:53;8830:18;;13361:47:0::1;8507:347:1::0;13361:47:0::1;13426:11;:18:::0;;-1:-1:-1;;13426:18:0::1;;;::::0;;13455:11:::1;:18:::0;;-1:-1:-1;;;;13455:18:0::1;-1:-1:-1::0;;;13455:18:0::1;::::0;;13497:12:::1;13484:10;:25:::0;13304:213::o;12392:116::-;2725:6;;-1:-1:-1;;;;;2725:6:0;433:10;2725:22;2717:67;;;;-1:-1:-1;;;2717:67:0;;;;;;;:::i;:::-;12466:10:::1;:34:::0;;-1:-1:-1;;;;;;12466:34:0::1;-1:-1:-1::0;;;;;12466:34:0;;;::::1;::::0;;;::::1;::::0;;12392:116::o;6592:167::-;6670:4;6687:42;433:10;6711:9;6722:6;6687:9;:42::i;11771:143::-;2725:6;;-1:-1:-1;;;;;2725:6:0;433:10;2725:22;2717:67;;;;-1:-1:-1;;;2717:67:0;;;;;;;:::i;:::-;11854:11:::1;:21:::0;;;::::1;;;;-1:-1:-1::0;;11854:21:0;;::::1;::::0;;;::::1;::::0;;;11886:11:::1;:20:::0;11771:143::o;2968:244::-;2725:6;;-1:-1:-1;;;;;2725:6:0;433:10;2725:22;2717:67;;;;-1:-1:-1;;;2717:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3057:22:0;::::1;3049:73;;;::::0;-1:-1:-1;;;3049:73:0;;9061:2:1;3049:73:0::1;::::0;::::1;9043:21:1::0;9100:2;9080:18;;;9073:30;9139:34;9119:18;;;9112:62;-1:-1:-1;;;9190:18:1;;;9183:36;9236:19;;3049:73:0::1;8859:402:1::0;3049:73:0::1;3159:6;::::0;;3138:38:::1;::::0;-1:-1:-1;;;;;3138:38:0;;::::1;::::0;3159:6;::::1;::::0;3138:38:::1;::::0;::::1;3187:6;:17:::0;;-1:-1:-1;;;;;;3187:17:0::1;-1:-1:-1::0;;;;;3187:17:0;;;::::1;::::0;;;::::1;::::0;;2968:244::o;12237:147::-;2725:6;;-1:-1:-1;;;;;2725:6:0;433:10;2725:22;2717:67;;;;-1:-1:-1;;;2717:67:0;;;;;;;:::i;:::-;12356:10:::1;::::0;12328:48:::1;::::0;-1:-1:-1;;;12328:48:0;;-1:-1:-1;;;;;12356:10:0;;::::1;12328:48;::::0;::::1;8152:51:1::0;8219:18;;;8212:34;;;12328:27:0;;::::1;::::0;::::1;::::0;8125:18:1;;12328:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7408:335::-:0;-1:-1:-1;;;;;7501:19:0;;7493:68;;;;-1:-1:-1;;;7493:68:0;;9755:2:1;7493:68:0;;;9737:21:1;9794:2;9774:18;;;9767:30;9833:34;9813:18;;;9806:62;-1:-1:-1;;;9884:18:1;;;9877:34;9928:19;;7493:68:0;9553:400:1;7493:68:0;-1:-1:-1;;;;;7580:21:0;;7572:68;;;;-1:-1:-1;;;7572:68:0;;10160:2:1;7572:68:0;;;10142:21:1;10199:2;10179:18;;;10172:30;10238:34;10218:18;;;10211:62;-1:-1:-1;;;10289:18:1;;;10282:32;10331:19;;7572:68:0;9958:398:1;7572:68:0;-1:-1:-1;;;;;7651:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7703:32;;1370:25:1;;;7703:32:0;;1343:18:1;7703:32:0;;;;;;;7408:335;;;:::o;8031:3133::-;-1:-1:-1;;;;;8119:18:0;;8111:68;;;;-1:-1:-1;;;8111:68:0;;10563:2:1;8111:68:0;;;10545:21:1;10602:2;10582:18;;;10575:30;10641:34;10621:18;;;10614:62;-1:-1:-1;;;10692:18:1;;;10685:35;10737:19;;8111:68:0;10361:401:1;8111:68:0;-1:-1:-1;;;;;8198:16:0;;8190:64;;;;-1:-1:-1;;;8190:64:0;;10969:2:1;8190:64:0;;;10951:21:1;11008:2;10988:18;;;10981:30;11047:34;11027:18;;;11020:62;-1:-1:-1;;;11098:18:1;;;11091:33;11141:19;;8190:64:0;10767:399:1;8190:64:0;8282:1;8273:6;:10;8265:64;;;;-1:-1:-1;;;8265:64:0;;11373:2:1;8265:64:0;;;11355:21:1;11412:2;11392:18;;;11385:30;11451:34;11431:18;;;11424:62;-1:-1:-1;;;11502:18:1;;;11495:39;11551:19;;8265:64:0;11171:405:1;8265:64:0;8340:17;2663:6;;-1:-1:-1;;;;;8376:15:0;;;2663:6;;8376:15;;;;:32;;-1:-1:-1;2636:7:0;2663:6;-1:-1:-1;;;;;8395:13:0;;;2663:6;;8395:13;;8376:32;:52;;;;-1:-1:-1;;;;;;8413:15:0;;;;;;:9;:15;;;;;;;;8412:16;8376:52;:70;;;;-1:-1:-1;;;;;;8433:13:0;;;;;;:9;:13;;;;;;;;8432:14;8376:70;8372:2436;;;8475:79;8550:3;8475:70;8498:15;;8487:9;;:26;8486:58;;8530:14;;8486:58;;;8516:12;;8486:58;8475:6;;:10;:70::i;:::-;:74;;:79::i;:::-;8577:11;;8463:91;;-1:-1:-1;;;;8577:11:0;;;;8569:39;;;;-1:-1:-1;;;8569:39:0;;11783:2:1;8569:39:0;;;11765:21:1;11822:2;11802:18;;;11795:30;-1:-1:-1;;;11841:18:1;;;11834:46;11897:18;;8569:39:0;11581:340:1;8569:39:0;8642:10;;8626:12;:26;8623:184;;8691:12;8679:25;;;;:11;:25;;;;;;8707:2;-1:-1:-1;8671:75:0;;;;-1:-1:-1;;;8671:75:0;;12128:2:1;8671:75:0;;;12110:21:1;;;12147:18;;;12140:30;12206:34;12186:18;;;12179:62;12258:18;;8671:75:0;11926:356:1;8671:75:0;8776:12;8764:25;;;;:11;:25;;;;;:27;;;;;;:::i;:::-;;;;;;8623:184;-1:-1:-1;;;;;8827:16:0;;;;;;:10;:16;;;;;;;;:50;;;;-1:-1:-1;8861:15:0;;-1:-1:-1;;;;;8847:30:0;;;8861:15;;8847:30;;8827:50;:67;;;;-1:-1:-1;;;;;;8883:11:0;;;;;;:7;:11;;;;;;;;8881:13;8827:67;8823:297;;;8934:12;;8924:6;:22;;8916:60;;;;-1:-1:-1;;;8916:60:0;;12629:2:1;8916:60:0;;;12611:21:1;12668:2;12648:18;;;12641:30;12707:27;12687:18;;;12680:55;12752:18;;8916:60:0;12427:349:1;8916:60:0;9029:14;;9019:6;9003:13;9013:2;-1:-1:-1;;;;;6558:18:0;6531:7;6558:18;;;:9;:18;;;;;;;6465:119;9003:13;:22;;;;:::i;:::-;:40;;8995:79;;;;-1:-1:-1;;;8995:79:0;;13113:2:1;8995:79:0;;;13095:21:1;13152:2;13132:18;;;13125:30;13191:28;13171:18;;;13164:56;13237:18;;8995:79:0;12911:350:1;8995:79:0;9093:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8823:297;-1:-1:-1;;;;;9141:14:0;;;;;;:10;:14;;;;;;;;9140:15;:32;;;;-1:-1:-1;;;;;;9161:11:0;;;;;;:7;:11;;;;;;;;9159:13;9140:32;9136:152;;;9227:14;;9217:6;9201:13;9211:2;-1:-1:-1;;;;;6558:18:0;6531:7;6558:18;;;:9;:18;;;;;;;6465:119;9201:13;:22;;;;:::i;:::-;:40;;9193:79;;;;-1:-1:-1;;;9193:79:0;;13113:2:1;9193:79:0;;;13095:21:1;13152:2;13132:18;;;13125:30;13191:28;13171:18;;;13164:56;13237:18;;9193:79:0;12911:350:1;9193:79:0;-1:-1:-1;;;;;9307:14:0;;;;;;:10;:14;;;;;;;;:38;;;;-1:-1:-1;;;;;;9325:20:0;;9340:4;9325:20;;9307:38;9304:172;;;9378:82;9456:3;9378:73;9401:16;;9390:9;;:27;9389:61;;9435:15;;9389:61;;;9420:13;;9378:6;;:10;:73::i;:82::-;9366:94;;9304:172;-1:-1:-1;;;;;9490:16:0;;;;;;:10;:16;;;;;;;;9489:17;:36;;;;-1:-1:-1;;;;;;9511:14:0;;;;;;:10;:14;;;;;;;;9510:15;9489:36;:60;;;;-1:-1:-1;;;;;;9529:20:0;;9544:4;9529:20;;9489:60;9485:115;;;-1:-1:-1;9583:1:0;9485:115;9665:4;9616:28;6558:18;;;:9;:18;;;;;;9690:9;;;;;;;:20;;;;-1:-1:-1;9704:6:0;;;;9703:7;9690:20;:38;;;;-1:-1:-1;;;;;;9714:14:0;;;;;;:10;:14;;;;;;;;9690:38;:53;;;;-1:-1:-1;9732:11:0;;;;;;;9690:53;:95;;;;;9768:17;;9747:20;:38;9690:95;:127;;;;;9799:18;;9789:9;;:28;9690:127;9686:1111;;;9857:13;;9842:12;:28;9838:90;;;9907:1;9895:9;:13;9838:90;9966:6;;9954:9;;:18;9946:46;;;;-1:-1:-1;;;9946:46:0;;13468:2:1;9946:46:0;;;13450:21:1;13507:2;13487:18;;;13480:30;-1:-1:-1;;;13526:18:1;;;13519:45;13581:18;;9946:46:0;13266:339:1;9946:46:0;10011:67;10028:49;10032:6;10039:37;10043:20;10064:11;;10039:3;:37::i;:::-;10028:3;:49::i;:::-;10011:16;:67::i;:::-;10126:21;10169:22;;10166:105;;10216:35;10229:21;10216:12;:35::i;:::-;10289:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;10335:12:0;10319:13;:28;-1:-1:-1;9686:1111:0;;;10388:6;;;;10387:7;:25;;;;-1:-1:-1;;;;;;10398:14:0;;;;;;:10;:14;;;;;;;;10387:25;:40;;;;-1:-1:-1;10416:11:0;;;;;;;10387:40;:82;;;;;10452:17;;10431:20;:38;10387:82;:114;;;;;10483:18;;10473:9;;:28;10387:114;10384:413;;;10522:67;10539:49;10543:6;10550:37;10554:20;10575:11;;10550:3;:37::i;10522:67::-;10637:21;10680:22;;10677:105;;10727:35;10740:21;10727:12;:35::i;:::-;10503:294;10384:413;8448:2360;8372:2436;10823:11;;10820:161;;10891:4;10873:24;;;;:9;:24;;;;;;:39;;10902:9;10873:28;:39::i;:::-;10866:4;10848:24;;;;:9;:24;;;;;;;:64;;;;10930:39;;-1:-1:-1;;;;;10930:39:0;;;;;;;10959:9;1370:25:1;;1358:2;1343:18;;1224:177;10930:39:0;;;;;;;;10820:161;-1:-1:-1;;;;;11007:15:0;;;;;;:9;:15;;;;;;:27;;11027:6;11007:19;:27::i;:::-;-1:-1:-1;;;;;10991:15:0;;;;;;:9;:15;;;;;:43;11059:40;11077:21;:6;11088:9;11077:10;:21::i;:::-;-1:-1:-1;;;;;11059:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;11045:13:0;;;;;;;:9;:13;;;;;:54;;;;11115:41;;;11134:21;:6;11145:9;11134:10;:21::i;:::-;11115:41;;1370:25:1;;;1358:2;1343:18;11115:41:0;;;;;;;8100:3064;8031:3133;;;:::o;1490:190::-;1576:7;1612:12;1604:6;;;;1596:29;;;;-1:-1:-1;;;1596:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1636:9:0;1648:5;1652:1;1648;:5;:::i;:::-;1636:17;1490:190;-1:-1:-1;;;;;1490:190:0:o;1688:246::-;1746:7;1770:1;1775;1770:6;1766:47;;-1:-1:-1;1800:1:0;1793:8;;1766:47;1823:9;1835:5;1839:1;1835;:5;:::i;:::-;1823:17;-1:-1:-1;1868:1:0;1859:5;1863:1;1823:17;1859:5;:::i;:::-;:10;1851:56;;;;-1:-1:-1;;;1851:56:0;;14167:2:1;1851:56:0;;;14149:21:1;14206:2;14186:18;;;14179:30;14245:34;14225:18;;;14218:62;-1:-1:-1;;;14296:18:1;;;14289:31;14337:19;;1851:56:0;13965:397:1;1851:56:0;1925:1;1688:246;-1:-1:-1;;;1688:246:0:o;1942:132::-;2000:7;2027:39;2031:1;2034;2027:39;;;;;;;;;;;;;;;;;:3;:39::i;11174:98::-;11231:7;11258:1;11256;:3;11255:9;;11263:1;11255:9;;;-1:-1:-1;11261:1:0;11174:98;-1:-1:-1;11174:98:0:o;11280:483::-;5705:6;:13;;-1:-1:-1;;5705:13:0;5714:4;5705:13;;;11382:16:::1;::::0;;11396:1:::1;11382:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11382:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11382:16:0::1;11358:40;;11427:4;11409;11414:1;11409:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11409:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11453:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11453:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11409:7;;11453:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11443:4;11448:1;11443:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11443:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11518:15:::1;::::0;11486:62:::1;::::0;11503:4:::1;::::0;11518:15:::1;11536:11:::0;11486:8:::1;:62::i;:::-;11559:15;::::0;:196:::1;::::0;-1:-1:-1;;;11559:196:0;;-1:-1:-1;;;;;11559:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11640:11;;11559:15:::1;::::0;11682:4;;11709::::1;::::0;11729:15:::1;::::0;11559:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5741:6:0;:14;;-1:-1:-1;;5741:14:0;;;-1:-1:-1;;;;11280:483:0:o;12686:92::-;12743:10;;:27;;-1:-1:-1;;;;;12743:10:0;;;;:27;;;;;12763:6;;12743:10;:27;:10;:27;12763:6;12743:10;:27;;;;;;;;;;;;;;;;;;;;;12686:92;:::o;1159:179::-;1217:7;;1249:5;1253:1;1249;:5;:::i;:::-;1237:17;;1278:1;1273;:6;;1265:46;;;;-1:-1:-1;;;1265:46:0;;15554:2:1;1265:46:0;;;15536:21:1;15593:2;15573:18;;;15566:30;15632:29;15612:18;;;15605:57;15679:18;;1265:46:0;15352:351:1;1346:136:0;1404:7;1431:43;1435:1;1438;1431:43;;;;;;;;;;;;;;;;;:3;:43::i;2082:189::-;2168:7;2203:12;2196:5;2188:28;;;;-1:-1:-1;;;2188:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2227:9:0;2239:5;2243:1;2239;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:134;641:20;;670:31;641:20;670:31;:::i;:::-;573:134;;;:::o;712:315::-;780:6;788;841:2;829:9;820:7;816:23;812:32;809:52;;;857:1;854;847:12;809:52;896:9;883:23;915:31;940:5;915:31;:::i;:::-;965:5;1017:2;1002:18;;;;989:32;;-1:-1:-1;;;712:315:1:o;1406:118::-;1492:5;1485:13;1478:21;1471:5;1468:32;1458:60;;1514:1;1511;1504:12;1529:128;1594:20;;1623:28;1594:20;1623:28;:::i;1662:241::-;1718:6;1771:2;1759:9;1750:7;1746:23;1742:32;1739:52;;;1787:1;1784;1777:12;1739:52;1826:9;1813:23;1845:28;1867:5;1845:28;:::i;1908:456::-;1985:6;1993;2001;2054:2;2042:9;2033:7;2029:23;2025:32;2022:52;;;2070:1;2067;2060:12;2022:52;2109:9;2096:23;2128:31;2153:5;2128:31;:::i;:::-;2178:5;-1:-1:-1;2235:2:1;2220:18;;2207:32;2248:33;2207:32;2248:33;:::i;:::-;1908:456;;2300:7;;-1:-1:-1;;;2354:2:1;2339:18;;;;2326:32;;1908:456::o;2558:180::-;2617:6;2670:2;2658:9;2649:7;2645:23;2641:32;2638:52;;;2686:1;2683;2676:12;2638:52;-1:-1:-1;2709:23:1;;2558:180;-1:-1:-1;2558:180:1:o;2951:247::-;3010:6;3063:2;3051:9;3042:7;3038:23;3034:32;3031:52;;;3079:1;3076;3069:12;3031:52;3118:9;3105:23;3137:31;3162:5;3137:31;:::i;3203:127::-;3264:10;3259:3;3255:20;3252:1;3245:31;3295:4;3292:1;3285:15;3319:4;3316:1;3309:15;3335:1191;3425:6;3433;3486:2;3474:9;3465:7;3461:23;3457:32;3454:52;;;3502:1;3499;3492:12;3454:52;3542:9;3529:23;3571:18;3612:2;3604:6;3601:14;3598:34;;;3628:1;3625;3618:12;3598:34;3666:6;3655:9;3651:22;3641:32;;3711:7;3704:4;3700:2;3696:13;3692:27;3682:55;;3733:1;3730;3723:12;3682:55;3769:2;3756:16;3791:4;3814:2;3810;3807:10;3804:36;;;3820:18;;:::i;:::-;3866:2;3863:1;3859:10;3898:2;3892:9;3961:2;3957:7;3952:2;3948;3944:11;3940:25;3932:6;3928:38;4016:6;4004:10;4001:22;3996:2;3984:10;3981:18;3978:46;3975:72;;;4027:18;;:::i;:::-;4063:2;4056:22;4113:18;;;4147:15;;;;-1:-1:-1;4189:11:1;;;4185:20;;;4217:19;;;4214:39;;;4249:1;4246;4239:12;4214:39;4273:11;;;;4293:148;4309:6;4304:3;4301:15;4293:148;;;4375:23;4394:3;4375:23;:::i;:::-;4363:36;;4326:12;;;;4419;;;;4293:148;;;4460:6;-1:-1:-1;4485:35:1;;-1:-1:-1;4501:18:1;;;4485:35;:::i;:::-;4475:45;;;;;;3335:1191;;;;;:::o;4531:388::-;4599:6;4607;4660:2;4648:9;4639:7;4635:23;4631:32;4628:52;;;4676:1;4673;4666:12;4628:52;4715:9;4702:23;4734:31;4759:5;4734:31;:::i;:::-;4784:5;-1:-1:-1;4841:2:1;4826:18;;4813:32;4854:33;4813:32;4854:33;:::i;:::-;4906:7;4896:17;;;4531:388;;;;;:::o;4924:309::-;4989:6;4997;5050:2;5038:9;5029:7;5025:23;5021:32;5018:52;;;5066:1;5063;5056:12;5018:52;5105:9;5092:23;5124:28;5146:5;5124:28;:::i;5238:356::-;5440:2;5422:21;;;5459:18;;;5452:30;5518:34;5513:2;5498:18;;5491:62;5585:2;5570:18;;5238:356::o;5599:127::-;5660:10;5655:3;5651:20;5648:1;5641:31;5691:4;5688:1;5681:15;5715:4;5712:1;5705:15;5731:416;5820:1;5857:5;5820:1;5871:270;5892:7;5882:8;5879:21;5871:270;;;5951:4;5947:1;5943:6;5939:17;5933:4;5930:27;5927:53;;;5960:18;;:::i;:::-;6010:7;6000:8;5996:22;5993:55;;;6030:16;;;;5993:55;6109:22;;;;6069:15;;;;5871:270;;;5875:3;5731:416;;;;;:::o;6152:806::-;6201:5;6231:8;6221:80;;-1:-1:-1;6272:1:1;6286:5;;6221:80;6320:4;6310:76;;-1:-1:-1;6357:1:1;6371:5;;6310:76;6402:4;6420:1;6415:59;;;;6488:1;6483:130;;;;6395:218;;6415:59;6445:1;6436:10;;6459:5;;;6483:130;6520:3;6510:8;6507:17;6504:43;;;6527:18;;:::i;:::-;-1:-1:-1;;6583:1:1;6569:16;;6598:5;;6395:218;;6697:2;6687:8;6684:16;6678:3;6672:4;6669:13;6665:36;6659:2;6649:8;6646:16;6641:2;6635:4;6632:12;6628:35;6625:77;6622:159;;;-1:-1:-1;6734:19:1;;;6766:5;;6622:159;6813:34;6838:8;6832:4;6813:34;:::i;:::-;6883:6;6879:1;6875:6;6871:19;6862:7;6859:32;6856:58;;;6894:18;;:::i;:::-;6932:20;;6152:806;-1:-1:-1;;;6152:806:1:o;6963:140::-;7021:5;7050:47;7091:4;7081:8;7077:19;7071:4;7050:47;:::i;7108:168::-;7181:9;;;7212;;7229:15;;;7223:22;;7209:37;7199:71;;7250:18;;:::i;7281:127::-;7342:10;7337:3;7333:20;7330:1;7323:31;7373:4;7370:1;7363:15;7397:4;7394:1;7387:15;7413:251;7483:6;7536:2;7524:9;7515:7;7511:23;7507:32;7504:52;;;7552:1;7549;7542:12;7504:52;7584:9;7578:16;7603:31;7628:5;7603:31;:::i;8257:245::-;8324:6;8377:2;8365:9;8356:7;8352:23;8348:32;8345:52;;;8393:1;8390;8383:12;8345:52;8425:9;8419:16;8444:28;8466:5;8444:28;:::i;12287:135::-;12326:3;12347:17;;;12344:43;;12367:18;;:::i;:::-;-1:-1:-1;12414:1:1;12403:13;;12287:135::o;12781:125::-;12846:9;;;12867:10;;;12864:36;;;12880:18;;:::i;13610:128::-;13677:9;;;13698:11;;;13695:37;;;13712:18;;:::i;13743:217::-;13783:1;13809;13799:132;;13853:10;13848:3;13844:20;13841:1;13834:31;13888:4;13885:1;13878:15;13916:4;13913:1;13906:15;13799:132;-1:-1:-1;13945:9:1;;13743:217::o;14367:980::-;14629:4;14677:3;14666:9;14662:19;14708:6;14697:9;14690:25;14734:2;14772:6;14767:2;14756:9;14752:18;14745:34;14815:3;14810:2;14799:9;14795:18;14788:31;14839:6;14874;14868:13;14905:6;14897;14890:22;14943:3;14932:9;14928:19;14921:26;;14982:2;14974:6;14970:15;14956:29;;15003:1;15013:195;15027:6;15024:1;15021:13;15013:195;;;15092:13;;-1:-1:-1;;;;;15088:39:1;15076:52;;15183:15;;;;15148:12;;;;15124:1;15042:9;15013:195;;;-1:-1:-1;;;;;;;15264:32:1;;;;15259:2;15244:18;;15237:60;-1:-1:-1;;;15328:3:1;15313:19;15306:35;15225:3;14367:980;-1:-1:-1;;;14367:980:1:o

Swarm Source

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