ETH Price: $2,285.25 (-3.69%)

Token

Falcon Mars DAO (FMD)
 

Overview

Max Total Supply

1,000,000,000 FMD

Holders

70

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
36,867,466.269664139 FMD

Value
$0.00
0x0f594baad46dc982d7c74e6c858c55d876769a35
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:
FMD

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-25
*/

pragma solidity 0.8.19;

// SPDX-License-Identifier: MIT

/**

Falcon Mars DAO is a Web3 ecosystem of educational, infrastructure and decentralized products with deflationary mechanisms, based on its native FMD token.
Falcon Mars DAO products solve three key tasks:
- Generate transparent profits to the cryptocurrency market.
- Facilitate interaction with the rapidly evolving market.
- Curb inflation with the help of FMD token deflationary model.

Webiste: https://www.falconmarsdao.com
DApp: https://app.falconmarsdao.com
Whitepaper: https://docs.falconmarsdao.com
Twitter: https://twitter.com/falconmarsdao
Telegram: https://t.me/falconmarsdao

**/

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

interface IMARSFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IMARSRouter {
    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);
}

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

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 transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract FMD is Context, IERC20, Ownable {
    mapping(address => uint256) private _marsDAO;
    mapping(address => bool) private feesExcepted;
    mapping(address => mapping(address => uint256)) private _allowances;

    bool private inSwapBack = false;
    bool public tradeEnabled = false;
    bool private swapEnabled = false;
    
    uint8 private constant _decimals = 9;
    uint256 private constant _tSupply = 1000000000 * 10 ** _decimals;
    string private constant _name = unicode"Falcon Mars DAO";
    string private constant _symbol = unicode"FMD";
    
    uint256 private minSwapTAXs = 20000000 * 10 ** _decimals;
    uint256 private txOverAmounts = 1000 * 10 ** _decimals;
    uint256 public txLimitsValues = 20000000 * 10 ** _decimals;

    uint256 private buyCount = 0;
    uint256 private buyTaxFees = 36;
    uint256 private sellTaxFees = 40;

    address payable private devWallet;
    address payable private marketingWallet;
    address public constant deadAddress 
            = 0x000000000000000000000000000000000000dEaD;
    address private uniswapV2Pair;
    IMARSRouter public uniswapV2Router;

    event ETHBalancesRecovered();
    event TradingEnabledUpdated();
    event ERC20TokenRecovered(uint256 indexed _amount);
    event ExcludeFromFeesUpdated(address indexed account);
    event includeFromFeesUpdated(address indexed account);

    modifier lockSwapBack() {
        inSwapBack = true;
        _;
        inSwapBack = false;
    }

    constructor() {
        devWallet = payable(0x1f38383b3F2572B5ED44D849EfAD526862DFeBb3);
        marketingWallet = payable(0xA8C416a2Fd4A713dd7De0052e25813E2Cf07e262);
        feesExcepted[devWallet] = true;
        feesExcepted[marketingWallet] = true;
        feesExcepted[deadAddress] = true;
        feesExcepted[_msgSender()] = true;
        feesExcepted[address(this)] = true;
        _marsDAO[_msgSender()] = _tSupply;
        emit Transfer(address(0), _msgSender(), _tSupply);
    }

    function addLiquidityETH() external payable onlyOwner {
        uniswapV2Router = IMARSRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Pair = IMARSFactory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );

        _approve(address(this), address(uniswapV2Router), ~uint256(0));

        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
    }

    function sendETHTOMARS(uint256 amount) private {
        require(amount > 0, "amount must be greeter than 0");
        marketingWallet.transfer(amount / 2);
        devWallet.transfer(amount / 2);
    }

    function openTrading() external onlyOwner {
        require(!tradeEnabled, "trading is already open");
        tradeEnabled = true;
        swapEnabled = true;
        emit TradingEnabledUpdated();
    }

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

    function setFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 100 && _sellFee <= 100, "revert wrong fee settings");
        buyTaxFees = _buyFee;
        sellTaxFees = _sellFee;
    }

    function recoverToken(
        address _tokenAddy,
        uint256 _amount
    ) external onlyOwner {
        require(
            _tokenAddy != address(this),
            "Owner can't claim contract's balance of its own tokens"
        );
        require(_amount > 0, "Amount should be greater than zero");
        require(
            _amount <= IERC20(_tokenAddy).balanceOf(address(this)),
            "Insufficient Amount"
        );
        IERC20(_tokenAddy).transfer(devWallet, _amount);
        emit ERC20TokenRecovered(_amount);
    }

    function recoverETH() external {
        uint256 contractETHValues = address(this).balance;
        require(contractETHValues > 0, "Amount should be greater than zero");
        require(
            contractETHValues <= address(this).balance,
            "Insufficient Amount"
        );
        payable(address(devWallet)).transfer(contractETHValues);
        emit ETHBalancesRecovered();
    }

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

    function removeLimits() external onlyOwner {
        buyTaxFees = 3;
        sellTaxFees = 3;
        txLimitsValues = _tSupply;
    }

    function swapForETHMARS(uint256 tokenAmount) private lockSwapBack {
        require(tokenAmount > 0, "amount must be greeter than 0");
        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 _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 totalFees = 0;
        totalFees = buyTaxFees;
        if (!feesExcepted[from] && !feesExcepted[to]) {
            require(tradeEnabled, "Trading not enabled");
        }
        if (inSwapBack || !swapEnabled) {
            _marsDAO[from] -= amount;
            _marsDAO[to] += amount;
            emit Transfer(from, to, amount);
            return;
        }
        if (
            from == uniswapV2Pair &&
            to != address(uniswapV2Router) &&
            !feesExcepted[to]
        ) {
            require(amount <= txLimitsValues, "Exceeds the _maxTxAmount.");
            require(
                balanceOf(to) + amount <= txLimitsValues,
                "Exceeds the maxWalletSize."
            );
            buyCount++;
        }
        if (
            from != uniswapV2Pair &&
            !feesExcepted[from] &&
            !feesExcepted[to]
        ) {
            require(amount <= txLimitsValues, "Exceeds the _maxTxAmount.");
        }
        if (
            to == uniswapV2Pair &&
            from != address(this) &&
            !feesExcepted[from] &&
            !feesExcepted[to]
        ) {
            totalFees = sellTaxFees;
        }
        uint256 contractTokenBalances = balanceOf(address(this));
        if (
            swapEnabled &&
            !inSwapBack &&
            buyCount > 0 &&
            amount >= txOverAmounts &&
            to == uniswapV2Pair &&
            contractTokenBalances >= txOverAmounts &&
            !feesExcepted[from] &&
            !feesExcepted[to]
        ) {
            swapForETHMARS(min(amount, min(contractTokenBalances, minSwapTAXs)));
            uint256 contractETHValues = address(this).balance;
            if (contractETHValues > 0) {
                sendETHTOMARS(address(this).balance);
            }
        }
        if (totalFees != 0) {
            uint256 mFees = (amount * totalFees) / 100;
            uint256 mAmounts = amount - mFees;
            address mWallets = feesExcepted[from] ? from : address(this);
            mFees = feesExcepted[from] ? amount : mFees;
            _marsDAO[mWallets] += mFees;
            emit Transfer(from, address(this), mFees);
            _marsDAO[from] -= amount;
            _marsDAO[to] += mAmounts;
            emit Transfer(from, to, mAmounts);
        } else {
            _marsDAO[from] -= amount;
            _marsDAO[to] += amount;
            emit Transfer(from, to, amount);
        }
    }

    receive() external payable {}

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function transfer(
        address 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 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 _tSupply;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _marsDAO[account];
    }

    function ExcludeFromFees(address account) external onlyOwner {
        require(
            feesExcepted[account] != true,
            "Account is already excluded"
        );
        feesExcepted[account] = true;
        emit ExcludeFromFeesUpdated(account);
    }

    function IncludeFromFees(address account) external onlyOwner {
        require(
            feesExcepted[account] != false,
            "Account is already included"
        );
        feesExcepted[account] = false;
        emit includeFromFeesUpdated(account);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ERC20TokenRecovered","type":"event"},{"anonymous":false,"inputs":[],"name":"ETHBalancesRecovered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromFeesUpdated","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":[],"name":"TradingEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"includeFromFeesUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"IncludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addLiquidityETH","outputs":[],"stateMutability":"payable","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":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":[],"name":"tradeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"txLimitsValues","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IMARSRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526004805462ffffff191690556200001e6009600a62000393565b6200002e906301312d00620003ab565b6005556200003f6009600a62000393565b6200004d906103e8620003ab565b6006556200005e6009600a62000393565b6200006e906301312d00620003ab565b600755600060085560246009556028600a553480156200008d57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b80546001600160a01b0319908116731f38383b3f2572b5ed44d849efad526862dfebb317909155600c805490911673a8c416a2fd4a713dd7de0052e25813e2cf07e262179055600260208190527feaa1f3088aa47d9fbc58ff90b5dcb5198f1e7bf3f23a209650918e96bc6c09b2805460ff1990811660019081179092557f11c6712c750dd8695d55678bbaf4d8b3d49218f3991a2202b0f5aca130cf37d9805482168317905561dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc80549092168317909155909190620001b63390565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526002909252902080549091166001179055620002046009600a62000393565b6200021490633b9aca00620003ab565b33600081815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002576009600a62000393565b6200026790633b9aca00620003ab565b60405190815260200160405180910390a3620003c5565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002d5578160001904821115620002b957620002b96200027e565b80851615620002c757918102915b93841c939080029062000299565b509250929050565b600082620002ee575060016200038d565b81620002fd575060006200038d565b8160018114620003165760028114620003215762000341565b60019150506200038d565b60ff8411156200033557620003356200027e565b50506001821b6200038d565b5060208310610133831016604e8410600b841016171562000366575081810a6200038d565b62000372838362000294565b80600019048211156200038957620003896200027e565b0290505b92915050565b6000620003a460ff841683620002dd565b9392505050565b80820281158282048414176200038d576200038d6200027e565b61204780620003d56000396000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b6578063c18999621161006f578063c1899962146103d9578063c9567bf9146103f9578063d621e8131461040e578063dd62ed3e1461042d578063ed99530714610473578063f2fde38b1461047b57600080fd5b8063715018a614610325578063751039fc1461033a5780638da5cb5b1461034f57806395d89b411461036d578063a9059cbb14610399578063b29a8140146103b957600080fd5b806323b872dd1161010857806323b872dd1461026757806327c8f83514610287578063313ce5671461029d57806357a00f76146102b95780635e700e20146102d957806370a08231146102ef57600080fd5b80630614117a1461015b57806306fdde0314610172578063095ea7b3146101bc5780630b78f9c0146101ec5780631694505e1461020c57806318160ddd1461024457600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5061017061049b565b005b34801561017e57600080fd5b5060408051808201909152600f81526e46616c636f6e204d6172732044414f60881b60208201525b6040516101b39190611ba4565b60405180910390f35b3480156101c857600080fd5b506101dc6101d7366004611c07565b61056f565b60405190151581526020016101b3565b3480156101f857600080fd5b50610170610207366004611c33565b610586565b34801561021857600080fd5b50600e5461022c906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b34801561025057600080fd5b50610259610619565b6040519081526020016101b3565b34801561027357600080fd5b506101dc610282366004611c55565b61063a565b34801561029357600080fd5b5061022c61dead81565b3480156102a957600080fd5b50604051600981526020016101b3565b3480156102c557600080fd5b506101706102d4366004611c96565b6106e9565b3480156102e557600080fd5b5061025960075481565b3480156102fb57600080fd5b5061025961030a366004611c96565b6001600160a01b031660009081526001602052604090205490565b34801561033157600080fd5b506101706107cc565b34801561034657600080fd5b50610170610840565b34801561035b57600080fd5b506000546001600160a01b031661022c565b34801561037957600080fd5b5060408051808201909152600381526211935160ea1b60208201526101a6565b3480156103a557600080fd5b506101dc6103b4366004611c07565b610892565b3480156103c557600080fd5b506101706103d4366004611c07565b61089f565b3480156103e557600080fd5b506101706103f4366004611c96565b610ab4565b34801561040557600080fd5b50610170610b93565b34801561041a57600080fd5b506004546101dc90610100900460ff1681565b34801561043957600080fd5b50610259610448366004611cb3565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b610170610c51565b34801561048757600080fd5b50610170610496366004611c96565b610f01565b47806104c25760405162461bcd60e51b81526004016104b990611cec565b60405180910390fd5b478111156105085760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104b9565b600b546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610542573d6000803e3d6000fd5b506040517f3bb0684d6f9d76c7e55b7c296d6672f480511b6f9a014d1dd32b6288bd632d7290600090a150565b600061057c338484610f9c565b5060015b92915050565b6000546001600160a01b031633146105b05760405162461bcd60e51b81526004016104b990611d2e565b606482111580156105c2575060648111155b61060e5760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e67730000000000000060448201526064016104b9565b600991909155600a55565b60006106276009600a611e5d565b61063590633b9aca00611e6c565b905090565b6001600160a01b0383166000908152600360209081526040808320338452909152812054828110156106bf5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016104b9565b6106ca8585856110c0565b6106de85336106d98685611e83565b610f9c565b506001949350505050565b6000546001600160a01b031633146107135760405162461bcd60e51b81526004016104b990611d2e565b6001600160a01b03811660009081526002602052604090205460ff1615156001036107805760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016104b9565b6001600160a01b038116600081815260026020526040808220805460ff19166001179055517f3b27b77c12873f49f9de6c571431dd7c5b1e847f180217efc51f654b835407069190a250565b6000546001600160a01b031633146107f65760405162461bcd60e51b81526004016104b990611d2e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461086a5760405162461bcd60e51b81526004016104b990611d2e565b60036009818155600a91825561087f91611e5d565b61088d90633b9aca00611e6c565b600755565b600061057c3384846110c0565b6000546001600160a01b031633146108c95760405162461bcd60e51b81526004016104b990611d2e565b306001600160a01b038316036109405760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016104b9565b600081116109605760405162461bcd60e51b81526004016104b990611cec565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa1580156109a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c89190611e96565b811115610a0d5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104b9565b600b5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610a60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a849190611eaf565b5060405181907fb27b69782743fafd4beb1c4e47d050e6a008a7e5e7c9b7330c78a65238498a9090600090a25050565b6000546001600160a01b03163314610ade5760405162461bcd60e51b81526004016104b990611d2e565b6001600160a01b03811660009081526002602052604081205460ff1615159003610b4a5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c75646564000000000060448201526064016104b9565b6001600160a01b038116600081815260026020526040808220805460ff19169055517f2787cd66e3c6209ac87ec0b3968ae31a8b953e70a037317f53c3e3e67b101e229190a250565b6000546001600160a01b03163314610bbd5760405162461bcd60e51b81526004016104b990611d2e565b600454610100900460ff1615610c155760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104b9565b6004805462ffff001916620101001790556040517fd3c2fdcaf5cd26a75c5d60e014554eb53dc349069d8db1f275187743614b17b490600090a1565b6000546001600160a01b03163314610c7b5760405162461bcd60e51b81526004016104b990611d2e565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610cdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d039190611ed1565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d899190611ed1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610dd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfa9190611ed1565b600d80546001600160a01b0319166001600160a01b03928316179055600e54610e2891309116600019610f9c565b600e546001600160a01b031663f305d7193430610e5a816001600160a01b031660009081526001602052604090205490565b600080610e6f6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610ed7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610efc9190611eee565b505050565b6000546001600160a01b03163314610f2b5760405162461bcd60e51b81526004016104b990611d2e565b6001600160a01b038116610f905760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104b9565b610f99816118a5565b50565b6001600160a01b038316610ffe5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104b9565b6001600160a01b03821661105f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104b9565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111245760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104b9565b6001600160a01b0382166111865760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104b9565b600081116111e85760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104b9565b6009546001600160a01b03841660009081526002602052604090205460ff1615801561122d57506001600160a01b03831660009081526002602052604090205460ff16155b1561127f57600454610100900460ff1661127f5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016104b9565b60045460ff1680611299575060045462010000900460ff16155b1561133b576001600160a01b038416600090815260016020526040812080548492906112c6908490611e83565b90915550506001600160a01b038316600090815260016020526040812080548492906112f3908490611f1c565b92505081905550826001600160a01b0316846001600160a01b0316600080516020611ff28339815191528460405161132d91815260200190565b60405180910390a350505050565b600d546001600160a01b0385811691161480156113665750600e546001600160a01b03848116911614155b801561138b57506001600160a01b03831660009081526002602052604090205460ff16155b1561146f576007548211156113de5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104b9565b60075482611401856001600160a01b031660009081526001602052604090205490565b61140b9190611f1c565b11156114595760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104b9565b6008805490600061146983611f2f565b91905055505b600d546001600160a01b038581169116148015906114a657506001600160a01b03841660009081526002602052604090205460ff16155b80156114cb57506001600160a01b03831660009081526002602052604090205460ff16155b1561151e5760075482111561151e5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104b9565b600d546001600160a01b03848116911614801561154457506001600160a01b0384163014155b801561156957506001600160a01b03841660009081526002602052604090205460ff16155b801561158e57506001600160a01b03831660009081526002602052604090205460ff16155b156115985750600a545b3060009081526001602052604090205460045462010000900460ff1680156115c3575060045460ff16155b80156115d157506000600854115b80156115df57506006548310155b80156115f85750600d546001600160a01b038581169116145b801561160657506006548110155b801561162b57506001600160a01b03851660009081526002602052604090205460ff16155b801561165057506001600160a01b03841660009081526002602052604090205460ff16155b156116845761167261166d84611668846005546118f5565b6118f5565b61190d565b4780156116825761168247611acb565b505b811561180657600060646116988486611e6c565b6116a29190611f48565b905060006116b08286611e83565b6001600160a01b0388166000908152600260205260408120549192509060ff166116da57306116dc565b875b6001600160a01b03891660009081526002602052604090205490915060ff166117055782611707565b855b6001600160a01b038216600090815260016020526040812080549295508592909190611734908490611f1c565b909155505060405183815230906001600160a01b038a1690600080516020611ff28339815191529060200160405180910390a36001600160a01b0388166000908152600160205260408120805488929061178f908490611e83565b90915550506001600160a01b038716600090815260016020526040812080548492906117bc908490611f1c565b92505081905550866001600160a01b0316886001600160a01b0316600080516020611ff2833981519152846040516117f691815260200190565b60405180910390a350505061189e565b6001600160a01b0385166000908152600160205260408120805485929061182e908490611e83565b90915550506001600160a01b0384166000908152600160205260408120805485929061185b908490611f1c565b92505081905550836001600160a01b0316856001600160a01b0316600080516020611ff28339815191528560405161189591815260200190565b60405180910390a35b5050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183116119045782611906565b815b9392505050565b6004805460ff19166001179055806119675760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104b9565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061199c5761199c611f6a565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a199190611ed1565b81600181518110611a2c57611a2c611f6a565b6001600160a01b039283166020918202929092010152600e54611a529130911684610f9c565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a8b908590600090869030904290600401611f80565b600060405180830381600087803b158015611aa557600080fd5b505af1158015611ab9573d6000803e3d6000fd5b50506004805460ff1916905550505050565b60008111611b1b5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104b9565b600c546001600160a01b03166108fc611b35600284611f48565b6040518115909202916000818181858888f19350505050158015611b5d573d6000803e3d6000fd5b50600b546001600160a01b03166108fc611b78600284611f48565b6040518115909202916000818181858888f19350505050158015611ba0573d6000803e3d6000fd5b5050565b600060208083528351808285015260005b81811015611bd157858101830151858201604001528201611bb5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f9957600080fd5b60008060408385031215611c1a57600080fd5b8235611c2581611bf2565b946020939093013593505050565b60008060408385031215611c4657600080fd5b50508035926020909101359150565b600080600060608486031215611c6a57600080fd5b8335611c7581611bf2565b92506020840135611c8581611bf2565b929592945050506040919091013590565b600060208284031215611ca857600080fd5b813561190681611bf2565b60008060408385031215611cc657600080fd5b8235611cd181611bf2565b91506020830135611ce181611bf2565b809150509250929050565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611db4578160001904821115611d9a57611d9a611d63565b80851615611da757918102915b93841c9390800290611d7e565b509250929050565b600082611dcb57506001610580565b81611dd857506000610580565b8160018114611dee5760028114611df857611e14565b6001915050610580565b60ff841115611e0957611e09611d63565b50506001821b610580565b5060208310610133831016604e8410600b8410161715611e37575081810a610580565b611e418383611d79565b8060001904821115611e5557611e55611d63565b029392505050565b600061190660ff841683611dbc565b808202811582820484141761058057610580611d63565b8181038181111561058057610580611d63565b600060208284031215611ea857600080fd5b5051919050565b600060208284031215611ec157600080fd5b8151801515811461190657600080fd5b600060208284031215611ee357600080fd5b815161190681611bf2565b600080600060608486031215611f0357600080fd5b8351925060208401519150604084015190509250925092565b8082018082111561058057610580611d63565b600060018201611f4157611f41611d63565b5060010190565b600082611f6557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fd05784516001600160a01b031683529383019391830191600101611fab565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204039cf0c2e42078e4e74a55ea10dfae694ca6cf62f89014ee26228372c9edd1064736f6c63430008130033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063715018a6116100b6578063c18999621161006f578063c1899962146103d9578063c9567bf9146103f9578063d621e8131461040e578063dd62ed3e1461042d578063ed99530714610473578063f2fde38b1461047b57600080fd5b8063715018a614610325578063751039fc1461033a5780638da5cb5b1461034f57806395d89b411461036d578063a9059cbb14610399578063b29a8140146103b957600080fd5b806323b872dd1161010857806323b872dd1461026757806327c8f83514610287578063313ce5671461029d57806357a00f76146102b95780635e700e20146102d957806370a08231146102ef57600080fd5b80630614117a1461015b57806306fdde0314610172578063095ea7b3146101bc5780630b78f9c0146101ec5780631694505e1461020c57806318160ddd1461024457600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5061017061049b565b005b34801561017e57600080fd5b5060408051808201909152600f81526e46616c636f6e204d6172732044414f60881b60208201525b6040516101b39190611ba4565b60405180910390f35b3480156101c857600080fd5b506101dc6101d7366004611c07565b61056f565b60405190151581526020016101b3565b3480156101f857600080fd5b50610170610207366004611c33565b610586565b34801561021857600080fd5b50600e5461022c906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b34801561025057600080fd5b50610259610619565b6040519081526020016101b3565b34801561027357600080fd5b506101dc610282366004611c55565b61063a565b34801561029357600080fd5b5061022c61dead81565b3480156102a957600080fd5b50604051600981526020016101b3565b3480156102c557600080fd5b506101706102d4366004611c96565b6106e9565b3480156102e557600080fd5b5061025960075481565b3480156102fb57600080fd5b5061025961030a366004611c96565b6001600160a01b031660009081526001602052604090205490565b34801561033157600080fd5b506101706107cc565b34801561034657600080fd5b50610170610840565b34801561035b57600080fd5b506000546001600160a01b031661022c565b34801561037957600080fd5b5060408051808201909152600381526211935160ea1b60208201526101a6565b3480156103a557600080fd5b506101dc6103b4366004611c07565b610892565b3480156103c557600080fd5b506101706103d4366004611c07565b61089f565b3480156103e557600080fd5b506101706103f4366004611c96565b610ab4565b34801561040557600080fd5b50610170610b93565b34801561041a57600080fd5b506004546101dc90610100900460ff1681565b34801561043957600080fd5b50610259610448366004611cb3565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b610170610c51565b34801561048757600080fd5b50610170610496366004611c96565b610f01565b47806104c25760405162461bcd60e51b81526004016104b990611cec565b60405180910390fd5b478111156105085760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104b9565b600b546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610542573d6000803e3d6000fd5b506040517f3bb0684d6f9d76c7e55b7c296d6672f480511b6f9a014d1dd32b6288bd632d7290600090a150565b600061057c338484610f9c565b5060015b92915050565b6000546001600160a01b031633146105b05760405162461bcd60e51b81526004016104b990611d2e565b606482111580156105c2575060648111155b61060e5760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e67730000000000000060448201526064016104b9565b600991909155600a55565b60006106276009600a611e5d565b61063590633b9aca00611e6c565b905090565b6001600160a01b0383166000908152600360209081526040808320338452909152812054828110156106bf5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016104b9565b6106ca8585856110c0565b6106de85336106d98685611e83565b610f9c565b506001949350505050565b6000546001600160a01b031633146107135760405162461bcd60e51b81526004016104b990611d2e565b6001600160a01b03811660009081526002602052604090205460ff1615156001036107805760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016104b9565b6001600160a01b038116600081815260026020526040808220805460ff19166001179055517f3b27b77c12873f49f9de6c571431dd7c5b1e847f180217efc51f654b835407069190a250565b6000546001600160a01b031633146107f65760405162461bcd60e51b81526004016104b990611d2e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461086a5760405162461bcd60e51b81526004016104b990611d2e565b60036009818155600a91825561087f91611e5d565b61088d90633b9aca00611e6c565b600755565b600061057c3384846110c0565b6000546001600160a01b031633146108c95760405162461bcd60e51b81526004016104b990611d2e565b306001600160a01b038316036109405760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016104b9565b600081116109605760405162461bcd60e51b81526004016104b990611cec565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa1580156109a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c89190611e96565b811115610a0d5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104b9565b600b5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610a60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a849190611eaf565b5060405181907fb27b69782743fafd4beb1c4e47d050e6a008a7e5e7c9b7330c78a65238498a9090600090a25050565b6000546001600160a01b03163314610ade5760405162461bcd60e51b81526004016104b990611d2e565b6001600160a01b03811660009081526002602052604081205460ff1615159003610b4a5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c75646564000000000060448201526064016104b9565b6001600160a01b038116600081815260026020526040808220805460ff19169055517f2787cd66e3c6209ac87ec0b3968ae31a8b953e70a037317f53c3e3e67b101e229190a250565b6000546001600160a01b03163314610bbd5760405162461bcd60e51b81526004016104b990611d2e565b600454610100900460ff1615610c155760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104b9565b6004805462ffff001916620101001790556040517fd3c2fdcaf5cd26a75c5d60e014554eb53dc349069d8db1f275187743614b17b490600090a1565b6000546001600160a01b03163314610c7b5760405162461bcd60e51b81526004016104b990611d2e565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610cdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d039190611ed1565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d899190611ed1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610dd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfa9190611ed1565b600d80546001600160a01b0319166001600160a01b03928316179055600e54610e2891309116600019610f9c565b600e546001600160a01b031663f305d7193430610e5a816001600160a01b031660009081526001602052604090205490565b600080610e6f6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610ed7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610efc9190611eee565b505050565b6000546001600160a01b03163314610f2b5760405162461bcd60e51b81526004016104b990611d2e565b6001600160a01b038116610f905760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104b9565b610f99816118a5565b50565b6001600160a01b038316610ffe5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104b9565b6001600160a01b03821661105f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104b9565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111245760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104b9565b6001600160a01b0382166111865760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104b9565b600081116111e85760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104b9565b6009546001600160a01b03841660009081526002602052604090205460ff1615801561122d57506001600160a01b03831660009081526002602052604090205460ff16155b1561127f57600454610100900460ff1661127f5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016104b9565b60045460ff1680611299575060045462010000900460ff16155b1561133b576001600160a01b038416600090815260016020526040812080548492906112c6908490611e83565b90915550506001600160a01b038316600090815260016020526040812080548492906112f3908490611f1c565b92505081905550826001600160a01b0316846001600160a01b0316600080516020611ff28339815191528460405161132d91815260200190565b60405180910390a350505050565b600d546001600160a01b0385811691161480156113665750600e546001600160a01b03848116911614155b801561138b57506001600160a01b03831660009081526002602052604090205460ff16155b1561146f576007548211156113de5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104b9565b60075482611401856001600160a01b031660009081526001602052604090205490565b61140b9190611f1c565b11156114595760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104b9565b6008805490600061146983611f2f565b91905055505b600d546001600160a01b038581169116148015906114a657506001600160a01b03841660009081526002602052604090205460ff16155b80156114cb57506001600160a01b03831660009081526002602052604090205460ff16155b1561151e5760075482111561151e5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104b9565b600d546001600160a01b03848116911614801561154457506001600160a01b0384163014155b801561156957506001600160a01b03841660009081526002602052604090205460ff16155b801561158e57506001600160a01b03831660009081526002602052604090205460ff16155b156115985750600a545b3060009081526001602052604090205460045462010000900460ff1680156115c3575060045460ff16155b80156115d157506000600854115b80156115df57506006548310155b80156115f85750600d546001600160a01b038581169116145b801561160657506006548110155b801561162b57506001600160a01b03851660009081526002602052604090205460ff16155b801561165057506001600160a01b03841660009081526002602052604090205460ff16155b156116845761167261166d84611668846005546118f5565b6118f5565b61190d565b4780156116825761168247611acb565b505b811561180657600060646116988486611e6c565b6116a29190611f48565b905060006116b08286611e83565b6001600160a01b0388166000908152600260205260408120549192509060ff166116da57306116dc565b875b6001600160a01b03891660009081526002602052604090205490915060ff166117055782611707565b855b6001600160a01b038216600090815260016020526040812080549295508592909190611734908490611f1c565b909155505060405183815230906001600160a01b038a1690600080516020611ff28339815191529060200160405180910390a36001600160a01b0388166000908152600160205260408120805488929061178f908490611e83565b90915550506001600160a01b038716600090815260016020526040812080548492906117bc908490611f1c565b92505081905550866001600160a01b0316886001600160a01b0316600080516020611ff2833981519152846040516117f691815260200190565b60405180910390a350505061189e565b6001600160a01b0385166000908152600160205260408120805485929061182e908490611e83565b90915550506001600160a01b0384166000908152600160205260408120805485929061185b908490611f1c565b92505081905550836001600160a01b0316856001600160a01b0316600080516020611ff28339815191528560405161189591815260200190565b60405180910390a35b5050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183116119045782611906565b815b9392505050565b6004805460ff19166001179055806119675760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104b9565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061199c5761199c611f6a565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a199190611ed1565b81600181518110611a2c57611a2c611f6a565b6001600160a01b039283166020918202929092010152600e54611a529130911684610f9c565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a8b908590600090869030904290600401611f80565b600060405180830381600087803b158015611aa557600080fd5b505af1158015611ab9573d6000803e3d6000fd5b50506004805460ff1916905550505050565b60008111611b1b5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104b9565b600c546001600160a01b03166108fc611b35600284611f48565b6040518115909202916000818181858888f19350505050158015611b5d573d6000803e3d6000fd5b50600b546001600160a01b03166108fc611b78600284611f48565b6040518115909202916000818181858888f19350505050158015611ba0573d6000803e3d6000fd5b5050565b600060208083528351808285015260005b81811015611bd157858101830151858201604001528201611bb5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f9957600080fd5b60008060408385031215611c1a57600080fd5b8235611c2581611bf2565b946020939093013593505050565b60008060408385031215611c4657600080fd5b50508035926020909101359150565b600080600060608486031215611c6a57600080fd5b8335611c7581611bf2565b92506020840135611c8581611bf2565b929592945050506040919091013590565b600060208284031215611ca857600080fd5b813561190681611bf2565b60008060408385031215611cc657600080fd5b8235611cd181611bf2565b91506020830135611ce181611bf2565b809150509250929050565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611db4578160001904821115611d9a57611d9a611d63565b80851615611da757918102915b93841c9390800290611d7e565b509250929050565b600082611dcb57506001610580565b81611dd857506000610580565b8160018114611dee5760028114611df857611e14565b6001915050610580565b60ff841115611e0957611e09611d63565b50506001821b610580565b5060208310610133831016604e8410600b8410161715611e37575081810a610580565b611e418383611d79565b8060001904821115611e5557611e55611d63565b029392505050565b600061190660ff841683611dbc565b808202811582820484141761058057610580611d63565b8181038181111561058057610580611d63565b600060208284031215611ea857600080fd5b5051919050565b600060208284031215611ec157600080fd5b8151801515811461190657600080fd5b600060208284031215611ee357600080fd5b815161190681611bf2565b600080600060608486031215611f0357600080fd5b8351925060208401519150604084015190509250925092565b8082018082111561058057610580611d63565b600060018201611f4157611f41611d63565b5060010190565b600082611f6557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fd05784516001600160a01b031683529383019391830191600101611fab565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204039cf0c2e42078e4e74a55ea10dfae694ca6cf62f89014ee26228372c9edd1064736f6c63430008130033

Deployed Bytecode Sourcemap

3919:10432:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7916:404;;;;;;;;;;;;;:::i;:::-;;13295:83;;;;;;;;;;-1:-1:-1;13365:5:0;;;;;;;;;;;;-1:-1:-1;;;13365:5:0;;;;13295:83;;;;;;;:::i;:::-;;;;;;;;13101:186;;;;;;;;;;-1:-1:-1;13101:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;13101:186:0;1023:187:1;7117:225:0;;;;;;;;;;-1:-1:-1;7117:225:0;;;;;:::i;:::-;;:::i;5032:34::-;;;;;;;;;;-1:-1:-1;5032:34:0;;;;-1:-1:-1;;;;;5032:34:0;;;;;;-1:-1:-1;;;;;1651:32:1;;;1633:51;;1621:2;1606:18;5032:34:0;1468:222:1;13566:96:0;;;;;;;;;;;;;:::i;:::-;;;1841:25:1;;;1829:2;1814:18;13566:96:0;1695:177:1;8328:481:0;;;;;;;;;;-1:-1:-1;8328:481:0;;;;;:::i;:::-;;:::i;4895:94::-;;;;;;;;;;;;4947:42;4895:94;;13477:83;;;;;;;;;;-1:-1:-1;13477:83:0;;4303:1;2688:36:1;;2676:2;2661:18;13477:83:0;2546:184:1;13794:272:0;;;;;;;;;;-1:-1:-1;13794:272:0;;;;;:::i;:::-;;:::i;4628:58::-;;;;;;;;;;;;;;;;13668:118;;;;;;;;;;-1:-1:-1;13668:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;13761:17:0;13734:7;13761:17;;;:8;:17;;;;;;;13668:118;3764:148;;;;;;;;;;;;;:::i;8817:138::-;;;;;;;;;;;;;:::i;3113:79::-;;;;;;;;;;-1:-1:-1;3151:7:0;3178:6;-1:-1:-1;;;;;3178:6:0;3113:79;;13384:87;;;;;;;;;;-1:-1:-1;13456:7:0;;;;;;;;;;;;-1:-1:-1;;;13456:7:0;;;;13384:87;;12729:192;;;;;;;;;;-1:-1:-1;12729:192:0;;;;;:::i;:::-;;:::i;7350:558::-;;;;;;;;;;-1:-1:-1;7350:558:0;;;;;:::i;:::-;;:::i;14074:274::-;;;;;;;;;;-1:-1:-1;14074:274:0;;;;;:::i;:::-;;:::i;6786:208::-;;;;;;;;;;;;;:::i;4184:32::-;;;;;;;;;;-1:-1:-1;4184:32:0;;;;;;;;;;;12927:168;;;;;;;;;;-1:-1:-1;12927:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;13060:18:0;;;13033:7;13060:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12927:168;5942:622;;;:::i;3323:238::-;;;;;;;;;;-1:-1:-1;3323:238:0;;;;;:::i;:::-;;:::i;7916:404::-;7986:21;8026;8018:68;;;;-1:-1:-1;;;8018:68:0;;;;;;;:::i;:::-;;;;;;;;;8140:21;8119:17;:42;;8097:111;;;;-1:-1:-1;;;8097:111:0;;3985:2:1;8097:111:0;;;3967:21:1;4024:2;4004:18;;;3997:30;-1:-1:-1;;;4043:18:1;;;4036:49;4102:18;;8097:111:0;3783:343:1;8097:111:0;8235:9;;8219:55;;-1:-1:-1;;;;;8235:9:0;;;;8219:55;;;;;8256:17;;8235:9;8219:55;8235:9;8219:55;8256:17;8235:9;8219:55;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8290:22:0;;;;;;;7947:373;7916:404::o;13101:186::-;13201:4;13218:39;2750:10;13241:7;13250:6;13218:8;:39::i;:::-;-1:-1:-1;13275:4:0;13101:186;;;;;:::o;7117:225::-;3238:6;;-1:-1:-1;;;;;3238:6:0;2750:10;3238:22;3230:67;;;;-1:-1:-1;;;3230:67:0;;;;;;;:::i;:::-;7218:3:::1;7207:7;:14;;:33;;;;;7237:3;7225:8;:15;;7207:33;7199:71;;;::::0;-1:-1:-1;;;7199:71:0;;4694:2:1;7199:71:0::1;::::0;::::1;4676:21:1::0;4733:2;4713:18;;;4706:30;4772:27;4752:18;;;4745:55;4817:18;;7199:71:0::1;4492:349:1::0;7199:71:0::1;7281:10;:20:::0;;;;7312:11:::1;:22:::0;7117:225::o;13566:96::-;13619:7;4360:15;4303:1;4360:2;:15;:::i;:::-;4347:28;;:10;:28;:::i;:::-;13639:15;;13566:96;:::o;8328:481::-;-1:-1:-1;;;;;8504:19:0;;8460:4;8504:19;;;:11;:19;;;;;;;;2750:10;8504:33;;;;;;;;8570:26;;;;8548:116;;;;-1:-1:-1;;;8548:116:0;;6736:2:1;8548:116:0;;;6718:21:1;6775:2;6755:18;;;6748:30;6814:34;6794:18;;;6787:62;-1:-1:-1;;;6865:18:1;;;6858:38;6913:19;;8548:116:0;6534:404:1;8548:116:0;8675:36;8685:6;8693:9;8704:6;8675:9;:36::i;:::-;8722:57;8731:6;2750:10;8753:25;8772:6;8753:16;:25;:::i;:::-;8722:8;:57::i;:::-;-1:-1:-1;8797:4:0;;8328:481;-1:-1:-1;;;;8328:481:0:o;13794:272::-;3238:6;;-1:-1:-1;;;;;3238:6:0;2750:10;3238:22;3230:67;;;;-1:-1:-1;;;3230:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13888:21:0;::::1;;::::0;;;:12:::1;:21;::::0;;;;;::::1;;:29;;:21:::0;:29;13866:106:::1;;;::::0;-1:-1:-1;;;13866:106:0;;7278:2:1;13866:106:0::1;::::0;::::1;7260:21:1::0;7317:2;7297:18;;;7290:30;7356:29;7336:18;;;7329:57;7403:18;;13866:106:0::1;7076:351:1::0;13866:106:0::1;-1:-1:-1::0;;;;;13983:21:0;::::1;;::::0;;;:12:::1;:21;::::0;;;;;:28;;-1:-1:-1;;13983:28:0::1;14007:4;13983:28;::::0;;14027:31;::::1;::::0;13983:21;14027:31:::1;13794:272:::0;:::o;3764:148::-;3238:6;;-1:-1:-1;;;;;3238:6:0;2750:10;3238:22;3230:67;;;;-1:-1:-1;;;3230:67:0;;;;;;;:::i;:::-;3871:1:::1;3855:6:::0;;3834:40:::1;::::0;-1:-1:-1;;;;;3855:6:0;;::::1;::::0;3834:40:::1;::::0;3871:1;;3834:40:::1;3902:1;3885:19:::0;;-1:-1:-1;;;;;;3885:19:0::1;::::0;;3764:148::o;8817:138::-;3238:6;;-1:-1:-1;;;;;3238:6:0;2750:10;3238:22;3230:67;;;;-1:-1:-1;;;3230:67:0;;;;;;;:::i;:::-;8884:1:::1;8871:10;:14:::0;;;8896:11:::1;:15:::0;;;4360::::1;::::0;::::1;:::i;:::-;4347:28;::::0;:10:::1;:28;:::i;:::-;8922:14;:25:::0;8817:138::o;12729:192::-;12832:4;12849:42;2750:10;12873:9;12884:6;12849:9;:42::i;7350:558::-;3238:6;;-1:-1:-1;;;;;3238:6:0;2750:10;3238:22;3230:67;;;;-1:-1:-1;;;3230:67:0;;;;;;;:::i;:::-;7508:4:::1;-1:-1:-1::0;;;;;7486:27:0;::::1;::::0;7464:131:::1;;;::::0;-1:-1:-1;;;7464:131:0;;7634:2:1;7464:131:0::1;::::0;::::1;7616:21:1::0;7673:2;7653:18;;;7646:30;7712:34;7692:18;;;7685:62;-1:-1:-1;;;7763:18:1;;;7756:52;7825:19;;7464:131:0::1;7432:418:1::0;7464:131:0::1;7624:1;7614:7;:11;7606:58;;;;-1:-1:-1::0;;;7606:58:0::1;;;;;;;:::i;:::-;7708:43;::::0;-1:-1:-1;;;7708:43:0;;7745:4:::1;7708:43;::::0;::::1;1633:51:1::0;-1:-1:-1;;;;;7708:28:0;::::1;::::0;::::1;::::0;1606:18:1;;7708:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7697:7;:54;;7675:123;;;::::0;-1:-1:-1;;;7675:123:0;;3985:2:1;7675:123:0::1;::::0;::::1;3967:21:1::0;4024:2;4004:18;;;3997:30;-1:-1:-1;;;4043:18:1;;;4036:49;4102:18;;7675:123:0::1;3783:343:1::0;7675:123:0::1;7837:9;::::0;7809:47:::1;::::0;-1:-1:-1;;;7809:47:0;;-1:-1:-1;;;;;7837:9:0;;::::1;7809:47;::::0;::::1;8226:51:1::0;8293:18;;;8286:34;;;7809:27:0;;::::1;::::0;::::1;::::0;8199:18:1;;7809:47:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;7872:28:0::1;::::0;7892:7;;7872:28:::1;::::0;;;::::1;7350:558:::0;;:::o;14074:274::-;3238:6;;-1:-1:-1;;;;;3238:6:0;2750:10;3238:22;3230:67;;;;-1:-1:-1;;;3230:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14168:21:0;::::1;;::::0;;;:12:::1;:21;::::0;;;;;::::1;;:30;;::::0;;14146:107:::1;;;::::0;-1:-1:-1;;;14146:107:0;;8815:2:1;14146:107:0::1;::::0;::::1;8797:21:1::0;8854:2;8834:18;;;8827:30;8893:29;8873:18;;;8866:57;8940:18;;14146:107:0::1;8613:351:1::0;14146:107:0::1;-1:-1:-1::0;;;;;14264:21:0;::::1;14288:5;14264:21:::0;;;:12:::1;:21;::::0;;;;;:29;;-1:-1:-1;;14264:29:0::1;::::0;;14309:31;::::1;::::0;14288:5;14309:31:::1;14074:274:::0;:::o;6786:208::-;3238:6;;-1:-1:-1;;;;;3238:6:0;2750:10;3238:22;3230:67;;;;-1:-1:-1;;;3230:67:0;;;;;;;:::i;:::-;6848:12:::1;::::0;::::1;::::0;::::1;;;6847:13;6839:49;;;::::0;-1:-1:-1;;;6839:49:0;;9171:2:1;6839:49:0::1;::::0;::::1;9153:21:1::0;9210:2;9190:18;;;9183:30;9249:25;9229:18;;;9222:53;9292:18;;6839:49:0::1;8969:347:1::0;6839:49:0::1;6899:12;:19:::0;;-1:-1:-1;;6929:18:0;;;;;6963:23:::1;::::0;::::1;::::0;-1:-1:-1;;6963:23:0::1;6786:208::o:0;5942:622::-;3238:6;;-1:-1:-1;;;;;3238:6:0;2750:10;3238:22;3230:67;;;;-1:-1:-1;;;3230:67:0;;;;;;;:::i;:::-;6007:15:::1;:97:::0;;-1:-1:-1;;;;;;6007:97:0::1;6051:42;6007:97:::0;;::::1;::::0;;;6144:25:::1;::::0;;-1:-1:-1;;;6144:25:0;;;;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;6051:42;6144:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6131:50:0::1;;6204:4;6224:15;;;;;;;;;-1:-1:-1::0;;;;;6224:15:0::1;-1:-1:-1::0;;;;;6224:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6131:126;::::0;-1:-1:-1;;;;;;6131:126:0::1;::::0;;;;;;-1:-1:-1;;;;;9807:15:1;;;6131:126:0::1;::::0;::::1;9789:34:1::0;9859:15;;9839:18;;;9832:43;9724:18;;6131:126:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6115:13;:142:::0;;-1:-1:-1;;;;;;6115:142:0::1;-1:-1:-1::0;;;;;6115:142:0;;::::1;;::::0;;6302:15:::1;::::0;6270:62:::1;::::0;6287:4:::1;::::0;6302:15:::1;-1:-1:-1::0;;6270:8:0::1;:62::i;:::-;6345:15;::::0;-1:-1:-1;;;;;6345:15:0::1;:31;6384:9;6417:4;6437:24;6417:4:::0;-1:-1:-1;;;;;13761:17:0;13734:7;13761:17;;;:8;:17;;;;;;;13668:118;6437:24:::1;6476:1;6492::::0;6508:7:::1;3151::::0;3178:6;-1:-1:-1;;;;;3178:6:0;;3113:79;6508:7:::1;6345:211;::::0;::::1;::::0;;;-1:-1:-1;;;;;;6345:211:0;;;-1:-1:-1;;;;;10245:15:1;;;6345:211:0::1;::::0;::::1;10227:34:1::0;10277:18;;;10270:34;;;;10320:18;;;10313:34;;;;10363:18;;;10356:34;10427:15;;;10406:19;;;10399:44;6530:15:0::1;10459:19:1::0;;;10452:35;10161:19;;6345:211:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5942:622::o:0;3323:238::-;3238:6;;-1:-1:-1;;;;;3238:6:0;2750:10;3238:22;3230:67;;;;-1:-1:-1;;;3230:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3426:22:0;::::1;3404:110;;;::::0;-1:-1:-1;;;3404:110:0;;11011:2:1;3404:110:0::1;::::0;::::1;10993:21:1::0;11050:2;11030:18;;;11023:30;11089:34;11069:18;;;11062:62;-1:-1:-1;;;11140:18:1;;;11133:36;11186:19;;3404:110:0::1;10809:402:1::0;3404:110:0::1;3525:28;3544:8;3525:18;:28::i;:::-;3323:238:::0;:::o;12388:335::-;-1:-1:-1;;;;;12481:19:0;;12473:68;;;;-1:-1:-1;;;12473:68:0;;11418:2:1;12473:68:0;;;11400:21:1;11457:2;11437:18;;;11430:30;11496:34;11476:18;;;11469:62;-1:-1:-1;;;11547:18:1;;;11540:34;11591:19;;12473:68:0;11216:400:1;12473:68:0;-1:-1:-1;;;;;12560:21:0;;12552:68;;;;-1:-1:-1;;;12552:68:0;;11823:2:1;12552:68:0;;;11805:21:1;11862:2;11842:18;;;11835:30;11901:34;11881:18;;;11874:62;-1:-1:-1;;;11952:18:1;;;11945:32;11994:19;;12552:68:0;11621:398:1;12552:68:0;-1:-1:-1;;;;;12631:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12683:32;;1841:25:1;;;12683:32:0;;1814:18:1;12683:32:0;;;;;;;12388:335;;;:::o;9521:2822::-;-1:-1:-1;;;;;9609:18:0;;9601:68;;;;-1:-1:-1;;;9601:68:0;;12226:2:1;9601:68:0;;;12208:21:1;12265:2;12245:18;;;12238:30;12304:34;12284:18;;;12277:62;-1:-1:-1;;;12355:18:1;;;12348:35;12400:19;;9601:68:0;12024:401:1;9601:68:0;-1:-1:-1;;;;;9688:16:0;;9680:64;;;;-1:-1:-1;;;9680:64:0;;12632:2:1;9680:64:0;;;12614:21:1;12671:2;12651:18;;;12644:30;12710:34;12690:18;;;12683:62;-1:-1:-1;;;12761:18:1;;;12754:33;12804:19;;9680:64:0;12430:399:1;9680:64:0;9772:1;9763:6;:10;9755:64;;;;-1:-1:-1;;;9755:64:0;;13036:2:1;9755:64:0;;;13018:21:1;13075:2;13055:18;;;13048:30;13114:34;13094:18;;;13087:62;-1:-1:-1;;;13165:18:1;;;13158:39;13214:19;;9755:64:0;12834:405:1;9755:64:0;9874:10;;-1:-1:-1;;;;;9900:18:0;;9830:17;9900:18;;;:12;:18;;;;;;;;9899:19;:40;;;;-1:-1:-1;;;;;;9923:16:0;;;;;;:12;:16;;;;;;;;9922:17;9899:40;9895:117;;;9964:12;;;;;;;9956:44;;;;-1:-1:-1;;;9956:44:0;;13446:2:1;9956:44:0;;;13428:21:1;13485:2;13465:18;;;13458:30;-1:-1:-1;;;13504:18:1;;;13497:49;13563:18;;9956:44:0;13244:343:1;9956:44:0;10026:10;;;;;:26;;-1:-1:-1;10041:11:0;;;;;;;10040:12;10026:26;10022:187;;;-1:-1:-1;;;;;10069:14:0;;;;;;:8;:14;;;;;:24;;10087:6;;10069:14;:24;;10087:6;;10069:24;:::i;:::-;;;;-1:-1:-1;;;;;;;10108:12:0;;;;;;:8;:12;;;;;:22;;10124:6;;10108:12;:22;;10124:6;;10108:22;:::i;:::-;;;;;;;;10165:2;-1:-1:-1;;;;;10150:26:0;10159:4;-1:-1:-1;;;;;10150:26:0;-1:-1:-1;;;;;;;;;;;10169:6:0;10150:26;;;;1841:25:1;;1829:2;1814:18;;1695:177;10150:26:0;;;;;;;;10191:7;9521:2822;;;:::o;10022:187::-;10245:13;;-1:-1:-1;;;;;10237:21:0;;;10245:13;;10237:21;:68;;;;-1:-1:-1;10289:15:0;;-1:-1:-1;;;;;10275:30:0;;;10289:15;;10275:30;;10237:68;:102;;;;-1:-1:-1;;;;;;10323:16:0;;;;;;:12;:16;;;;;;;;10322:17;10237:102;10219:389;;;10384:14;;10374:6;:24;;10366:62;;;;-1:-1:-1;;;10366:62:0;;13924:2:1;10366:62:0;;;13906:21:1;13963:2;13943:18;;;13936:30;-1:-1:-1;;;13982:18:1;;;13975:55;14047:18;;10366:62:0;13722:349:1;10366:62:0;10495:14;;10485:6;10469:13;10479:2;-1:-1:-1;;;;;13761:17:0;13734:7;13761:17;;;:8;:17;;;;;;;13668:118;10469:13;:22;;;;:::i;:::-;:40;;10443:128;;;;-1:-1:-1;;;10443:128:0;;14278:2:1;10443:128:0;;;14260:21:1;14317:2;14297:18;;;14290:30;14356:28;14336:18;;;14329:56;14402:18;;10443:128:0;14076:350:1;10443:128:0;10586:8;:10;;;:8;:10;;;:::i;:::-;;;;;;10219:389;10644:13;;-1:-1:-1;;;;;10636:21:0;;;10644:13;;10636:21;;;;:57;;-1:-1:-1;;;;;;10675:18:0;;;;;;:12;:18;;;;;;;;10674:19;10636:57;:91;;;;-1:-1:-1;;;;;;10711:16:0;;;;;;:12;:16;;;;;;;;10710:17;10636:91;10618:210;;;10772:14;;10762:6;:24;;10754:62;;;;-1:-1:-1;;;10754:62:0;;13924:2:1;10754:62:0;;;13906:21:1;13963:2;13943:18;;;13936:30;-1:-1:-1;;;13982:18:1;;;13975:55;14047:18;;10754:62:0;13722:349:1;10754:62:0;10862:13;;-1:-1:-1;;;;;10856:19:0;;;10862:13;;10856:19;:57;;;;-1:-1:-1;;;;;;10892:21:0;;10908:4;10892:21;;10856:57;:93;;;;-1:-1:-1;;;;;;10931:18:0;;;;;;:12;:18;;;;;;;;10930:19;10856:93;:127;;;;-1:-1:-1;;;;;;10967:16:0;;;;;;:12;:16;;;;;;;;10966:17;10856:127;10838:207;;;-1:-1:-1;11022:11:0;;10838:207;11105:4;11055:29;13761:17;;;:8;:17;;;;;;11140:11;;;;;;;:39;;;;-1:-1:-1;11169:10:0;;;;11168:11;11140:39;:68;;;;;11207:1;11196:8;;:12;11140:68;:108;;;;;11235:13;;11225:6;:23;;11140:108;:144;;;;-1:-1:-1;11271:13:0;;-1:-1:-1;;;;;11265:19:0;;;11271:13;;11265:19;11140:144;:199;;;;;11326:13;;11301:21;:38;;11140:199;:235;;;;-1:-1:-1;;;;;;11357:18:0;;;;;;:12;:18;;;;;;;;11356:19;11140:235;:269;;;;-1:-1:-1;;;;;;11393:16:0;;;;;;:12;:16;;;;;;;;11392:17;11140:269;11122:570;;;11436:68;11451:52;11455:6;11463:39;11467:21;11490:11;;11463:3;:39::i;:::-;11451:3;:52::i;:::-;11436:14;:68::i;:::-;11547:21;11587;;11583:98;;11629:36;11643:21;11629:13;:36::i;:::-;11421:271;11122:570;11706:14;;11702:634;;11737:13;11776:3;11754:18;11763:9;11754:6;:18;:::i;:::-;11753:26;;;;:::i;:::-;11737:42;-1:-1:-1;11794:16:0;11813:14;11737:42;11813:6;:14;:::i;:::-;-1:-1:-1;;;;;11861:18:0;;11842:16;11861:18;;;:12;:18;;;;;;11794:33;;-1:-1:-1;11842:16:0;11861:18;;:41;;11897:4;11861:41;;;11882:4;11861:41;-1:-1:-1;;;;;11925:18:0;;;;;;:12;:18;;;;;;11842:60;;-1:-1:-1;11925:18:0;;:35;;11955:5;11925:35;;;11946:6;11925:35;-1:-1:-1;;;;;11975:18:0;;;;;;:8;:18;;;;;:27;;11917:43;;-1:-1:-1;11917:43:0;;11975:18;;;:27;;11917:43;;11975:27;:::i;:::-;;;;-1:-1:-1;;12022:36:0;;1841:25:1;;;12045:4:0;;-1:-1:-1;;;;;12022:36:0;;;-1:-1:-1;;;;;;;;;;;12022:36:0;1829:2:1;1814:18;12022:36:0;;;;;;;-1:-1:-1;;;;;12073:14:0;;;;;;:8;:14;;;;;:24;;12091:6;;12073:14;:24;;12091:6;;12073:24;:::i;:::-;;;;-1:-1:-1;;;;;;;12112:12:0;;;;;;:8;:12;;;;;:24;;12128:8;;12112:12;:24;;12128:8;;12112:24;:::i;:::-;;;;;;;;12171:2;-1:-1:-1;;;;;12156:28:0;12165:4;-1:-1:-1;;;;;12156:28:0;-1:-1:-1;;;;;;;;;;;12175:8:0;12156:28;;;;1841:25:1;;1829:2;1814:18;;1695:177;12156:28:0;;;;;;;;11722:474;;;11702:634;;;-1:-1:-1;;;;;12217:14:0;;;;;;:8;:14;;;;;:24;;12235:6;;12217:14;:24;;12235:6;;12217:24;:::i;:::-;;;;-1:-1:-1;;;;;;;12256:12:0;;;;;;:8;:12;;;;;:22;;12272:6;;12256:12;:22;;12272:6;;12256:22;:::i;:::-;;;;;;;;12313:2;-1:-1:-1;;;;;12298:26:0;12307:4;-1:-1:-1;;;;;12298:26:0;-1:-1:-1;;;;;;;;;;;12317:6:0;12298:26;;;;1841:25:1;;1829:2;1814:18;;1695:177;12298:26:0;;;;;;;;11702:634;9590:2753;;9521:2822;;;:::o;3567:191::-;3641:16;3660:6;;-1:-1:-1;;;;;3677:17:0;;;-1:-1:-1;;;;;;3677:17:0;;;;;;3710:40;;3660:6;;;;;;;3710:40;;3641:16;3710:40;3630:128;3567:191;:::o;7002:107::-;7059:7;7091:1;7087;:5;7086:15;;7100:1;7086:15;;;7096:1;7086:15;7079:22;7002:107;-1:-1:-1;;;7002:107:0:o;8963:550::-;5360:10;:17;;-1:-1:-1;;5360:17:0;5373:4;5360:17;;;9048:15;9040:57:::1;;;::::0;-1:-1:-1;;;9040:57:0;;14995:2:1;9040:57:0::1;::::0;::::1;14977:21:1::0;15034:2;15014:18;;;15007:30;15073:31;15053:18;;;15046:59;15122:18;;9040:57:0::1;14793:353:1::0;9040:57:0::1;9132:16;::::0;;9146:1:::1;9132:16:::0;;;;;::::1;::::0;;9108:21:::1;::::0;9132:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9132:16:0::1;9108:40;;9177:4;9159;9164:1;9159:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9159:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9203:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9203:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9159:7;;9203:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9193:4;9198:1;9193:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9193:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9268:15:::1;::::0;9236:62:::1;::::0;9253:4:::1;::::0;9268:15:::1;9286:11:::0;9236:8:::1;:62::i;:::-;9309:15;::::0;:196:::1;::::0;-1:-1:-1;;;9309:196:0;;-1:-1:-1;;;;;9309:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9390:11;;9309:15:::1;::::0;9432:4;;9459::::1;::::0;9479:15:::1;::::0;9309:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5400:10:0;:18;;-1:-1:-1;;5400:18:0;;;-1:-1:-1;;;;8963:550:0:o;6572:206::-;6647:1;6638:6;:10;6630:52;;;;-1:-1:-1;;;6630:52:0;;14995:2:1;6630:52:0;;;14977:21:1;15034:2;15014:18;;;15007:30;15073:31;15053:18;;;15046:59;15122:18;;6630:52:0;14793:353:1;6630:52:0;6693:15;;-1:-1:-1;;;;;6693:15:0;:36;6718:10;6727:1;6718:6;:10;:::i;:::-;6693:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6740:9:0;;-1:-1:-1;;;;;6740:9:0;:30;6759:10;6768:1;6759:6;:10;:::i;:::-;6740:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6572:206;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:248::-;1283:6;1291;1344:2;1332:9;1323:7;1319:23;1315:32;1312:52;;;1360:1;1357;1350:12;1312:52;-1:-1:-1;;1383:23:1;;;1453:2;1438:18;;;1425:32;;-1:-1:-1;1215:248:1:o;1877:456::-;1954:6;1962;1970;2023:2;2011:9;2002:7;1998:23;1994:32;1991:52;;;2039:1;2036;2029:12;1991:52;2078:9;2065:23;2097:31;2122:5;2097:31;:::i;:::-;2147:5;-1:-1:-1;2204:2:1;2189:18;;2176:32;2217:33;2176:32;2217:33;:::i;:::-;1877:456;;2269:7;;-1:-1:-1;;;2323:2:1;2308:18;;;;2295:32;;1877:456::o;2735:247::-;2794:6;2847:2;2835:9;2826:7;2822:23;2818:32;2815:52;;;2863:1;2860;2853:12;2815:52;2902:9;2889:23;2921:31;2946:5;2921:31;:::i;2987:388::-;3055:6;3063;3116:2;3104:9;3095:7;3091:23;3087:32;3084:52;;;3132:1;3129;3122:12;3084:52;3171:9;3158:23;3190:31;3215:5;3190:31;:::i;:::-;3240:5;-1:-1:-1;3297:2:1;3282:18;;3269:32;3310:33;3269:32;3310:33;:::i;:::-;3362:7;3352:17;;;2987:388;;;;;:::o;3380:398::-;3582:2;3564:21;;;3621:2;3601:18;;;3594:30;3660:34;3655:2;3640:18;;3633:62;-1:-1:-1;;;3726:2:1;3711:18;;3704:32;3768:3;3753:19;;3380:398::o;4131:356::-;4333:2;4315:21;;;4352:18;;;4345:30;4411:34;4406:2;4391:18;;4384:62;4478:2;4463:18;;4131:356::o;4846:127::-;4907:10;4902:3;4898:20;4895:1;4888:31;4938:4;4935:1;4928:15;4962:4;4959:1;4952:15;4978:422;5067:1;5110:5;5067:1;5124:270;5145:7;5135:8;5132:21;5124:270;;;5204:4;5200:1;5196:6;5192:17;5186:4;5183:27;5180:53;;;5213:18;;:::i;:::-;5263:7;5253:8;5249:22;5246:55;;;5283:16;;;;5246:55;5362:22;;;;5322:15;;;;5124:270;;;5128:3;4978:422;;;;;:::o;5405:806::-;5454:5;5484:8;5474:80;;-1:-1:-1;5525:1:1;5539:5;;5474:80;5573:4;5563:76;;-1:-1:-1;5610:1:1;5624:5;;5563:76;5655:4;5673:1;5668:59;;;;5741:1;5736:130;;;;5648:218;;5668:59;5698:1;5689:10;;5712:5;;;5736:130;5773:3;5763:8;5760:17;5757:43;;;5780:18;;:::i;:::-;-1:-1:-1;;5836:1:1;5822:16;;5851:5;;5648:218;;5950:2;5940:8;5937:16;5931:3;5925:4;5922:13;5918:36;5912:2;5902:8;5899:16;5894:2;5888:4;5885:12;5881:35;5878:77;5875:159;;;-1:-1:-1;5987:19:1;;;6019:5;;5875:159;6066:34;6091:8;6085:4;6066:34;:::i;:::-;6136:6;6132:1;6128:6;6124:19;6115:7;6112:32;6109:58;;;6147:18;;:::i;:::-;6185:20;;5405:806;-1:-1:-1;;;5405:806:1:o;6216:140::-;6274:5;6303:47;6344:4;6334:8;6330:19;6324:4;6303:47;:::i;6361:168::-;6434:9;;;6465;;6482:15;;;6476:22;;6462:37;6452:71;;6503:18;;:::i;6943:128::-;7010:9;;;7031:11;;;7028:37;;;7045:18;;:::i;7855:184::-;7925:6;7978:2;7966:9;7957:7;7953:23;7949:32;7946:52;;;7994:1;7991;7984:12;7946:52;-1:-1:-1;8017:16:1;;7855:184;-1:-1:-1;7855:184:1:o;8331:277::-;8398:6;8451:2;8439:9;8430:7;8426:23;8422:32;8419:52;;;8467:1;8464;8457:12;8419:52;8499:9;8493:16;8552:5;8545:13;8538:21;8531:5;8528:32;8518:60;;8574:1;8571;8564:12;9321:251;9391:6;9444:2;9432:9;9423:7;9419:23;9415:32;9412:52;;;9460:1;9457;9450:12;9412:52;9492:9;9486:16;9511:31;9536:5;9511:31;:::i;10498:306::-;10586:6;10594;10602;10655:2;10643:9;10634:7;10630:23;10626:32;10623:52;;;10671:1;10668;10661:12;10623:52;10700:9;10694:16;10684:26;;10750:2;10739:9;10735:18;10729:25;10719:35;;10794:2;10783:9;10779:18;10773:25;10763:35;;10498:306;;;;;:::o;13592:125::-;13657:9;;;13678:10;;;13675:36;;;13691:18;;:::i;14431:135::-;14470:3;14491:17;;;14488:43;;14511:18;;:::i;:::-;-1:-1:-1;14558:1:1;14547:13;;14431:135::o;14571:217::-;14611:1;14637;14627:132;;14681:10;14676:3;14672:20;14669:1;14662:31;14716:4;14713:1;14706:15;14744:4;14741:1;14734:15;14627:132;-1:-1:-1;14773:9:1;;14571:217::o;15283:127::-;15344:10;15339:3;15335:20;15332:1;15325:31;15375:4;15372:1;15365:15;15399:4;15396:1;15389:15;15415:980;15677:4;15725:3;15714:9;15710:19;15756:6;15745:9;15738:25;15782:2;15820:6;15815:2;15804:9;15800:18;15793:34;15863:3;15858:2;15847:9;15843:18;15836:31;15887:6;15922;15916:13;15953:6;15945;15938:22;15991:3;15980:9;15976:19;15969:26;;16030:2;16022:6;16018:15;16004:29;;16051:1;16061:195;16075:6;16072:1;16069:13;16061:195;;;16140:13;;-1:-1:-1;;;;;16136:39:1;16124:52;;16231:15;;;;16196:12;;;;16172:1;16090:9;16061:195;;;-1:-1:-1;;;;;;;16312:32:1;;;;16307:2;16292:18;;16285:60;-1:-1:-1;;;16376:3:1;16361:19;16354:35;16273:3;15415:980;-1:-1:-1;;;15415:980:1:o

Swarm Source

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