ETH Price: $3,256.66 (-0.83%)
Gas: 2 Gwei

Token

ECCO Coin (ECCOCoin)
 

Overview

Max Total Supply

100,000,000,000 ECCOCoin

Holders

27

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,306,527,767.782521464 ECCOCoin

Value
$0.00
0x189c3788a2c3e9fee43204537b31cbc4be07e6bb
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:
ECCOCoin

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-11
*/

/**   




            ░█▀▀▀ ░█▀▀█ ░█▀▀█ ░█▀▀▀█ 
            ░█▀▀▀ ░█─── ░█─── ░█──░█ 
            ░█▄▄▄ ░█▄▄█ ░█▄▄█ ░█▄▄▄█
            
            The Ecco Coin is comprised of GameFi, SocialFi and NFTFi elements and built on blockchain technology.

        - Website: https://eccothecoin.online
        - Telegram: https://t.me/+Pzrfpj8XcDU2NWQ5






*/
     


// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

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

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract ECCOCoin is Context, IERC20, Ownable {
    using SafeMath for uint256;
    // EPays Launchpad
    string private constant _name = "ECCO Coin";
    string private constant _symbol = "ECCOCoin";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000000 * 10 ** 9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tClasterTotal;
    uint256 private _ClasterOneB = 0;
    uint256 private _ClasterTwoB = 0;
    uint256 private _ClasterThreeS = 0;
    uint256 private _ClasterFourS = 0;

    uint256 private _ClasterThreeSOne = _ClasterThreeS;
    uint256 private _ClasterFourSTwo = _ClasterFourS;

    uint256 private _previousThreeSOne = _ClasterThreeSOne;
    uint256 private _previousFourSTwo = _ClasterFourSTwo;

    mapping(address => bool) public clasterses;
    mapping(address => uint256) public _buyMap;
    address payable private _ClasterFourSAddress =
        payable(0x1859598C9e6c53F8ff0032B041e4a944EFB78648); //Rewards Wallet
    address payable private _ClasterFiveSAddress =
        payable(0x1859598C9e6c53F8ff0032B041e4a944EFB78648); //Rewards Wallet

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = true;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTA = 30000000000 * 10 ** 9;
    // swpTA
    uint256 public _maxWS = 100000000000 * 10 ** 9;
    uint256 public _swpTA = 100 * 10 ** 9;

    event MaxTAUpt(uint256 _maxTA);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _rOwned[_msgSender()] = _rTotal;
        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 tokenFromReflection(_rOwned[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 tokenFromReflection(
        uint256 rAmount
    ) private view returns (uint256) {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeClaster() private {
        if (_ClasterThreeSOne == 0 && _ClasterFourSTwo == 0) return;

        _previousThreeSOne = _ClasterThreeSOne;
        _previousFourSTwo = _ClasterFourSTwo;

        _ClasterThreeSOne = 0;
        _ClasterFourSTwo = 0;
    }

    function restoreClaster() private {
        _ClasterThreeSOne = _previousThreeSOne;
        _ClasterFourSTwo = _previousFourSTwo;
    }

    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 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");
        require(!clasterses[from] && !clasterses[to]);

        if (from != owner() && to != owner()) {
            //Trade start check
            if (!tradingOpen) {
                require(
                    from == owner(),
                    "TOKEN: This account cannot send tokens until trading is enabled"
                );
            }

            require(amount <= _maxTA, "TOKEN: Max Transaction Limit");
            require(
                !clasterses[from] && !clasterses[to],
                "TOKEN: Your account is not going!"
            );

            if (to != uniswapV2Pair) {
                require(
                    balanceOf(to) + amount < _maxWS,
                    "TOKEN: Balance exceeds wallet size!"
                );
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swpTA;

            if (contractTokenBalance >= _maxTA) {
                contractTokenBalance = _maxTA;
            }

            if (
                canSwap &&
                !inSwap &&
                from != uniswapV2Pair &&
                swapEnabled &&
                !_isExcludedFromFee[from] &&
                !_isExcludedFromFee[to]
            ) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    seeClaster(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        if (
            (_isExcludedFromFee[from] || _isExcludedFromFee[to]) ||
            (from != uniswapV2Pair && to != uniswapV2Pair)
        ) {
            takeFee = false;
        } else {
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _ClasterThreeSOne = _ClasterOneB;
                _ClasterFourSTwo = _ClasterTwoB;
            }

            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _ClasterThreeSOne = _ClasterThreeS;
                _ClasterFourSTwo = _ClasterFourS;
            }
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    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 seeClaster(uint256 amount) private {
        _ClasterFiveSAddress.transfer(amount);
    }

    function launchGo() external onlyOwner {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_ClasterFourSAddress] = true;
        _isExcludedFromFee[_ClasterFiveSAddress] = true;
    }

    function manualswap() external {
        require(
            _msgSender() == _ClasterFourSAddress ||
                _msgSender() == _ClasterFiveSAddress
        );
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(
            _msgSender() == _ClasterFourSAddress ||
                _msgSender() == _ClasterFiveSAddress
        );
        uint256 contractETHBalance = address(this).balance;
        seeClaster(contractETHBalance);
    }

    function serializeClasterses(
        address[] memory clasterses_
    ) public onlyOwner {
        for (uint256 i = 0; i < clasterses_.length; i++) {
            clasterses[clasterses_[i]] = true;
        }
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeClaster();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreClaster();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tFourSTwo
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeFourSTwo(tFourSTwo);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeFourSTwo(uint256 tFourSTwo) private {
        uint256 currentRate = _getRate();
        uint256 rFourSTwo = tFourSTwo.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rFourSTwo);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tClasterTotal = _tClasterTotal.add(tFee);
    }

    receive() external payable {}

    function _getTValues(
        uint256 tAmount,
        uint256 threeSOne,
        uint256 fourSTwo
    ) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(threeSOne).div(100);
        uint256 tFourSTwo = tAmount.mul(fourSTwo).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tFourSTwo);
        return (tTransferAmount, tFee, tFourSTwo);
    }

    function _getValues(
        uint256 tAmount
    )
        private
        view
        returns (uint256, uint256, uint256, uint256, uint256, uint256)
    {
        (
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tFourSTwo
        ) = _getTValues(tAmount, _ClasterThreeSOne, _ClasterFourSTwo);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(
            tAmount,
            tFee,
            tFourSTwo,
            currentRate
        );
        return (
            rAmount,
            rTransferAmount,
            rFee,
            tTransferAmount,
            tFee,
            tFourSTwo
        );
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tFourSTwo,
        uint256 currentRate
    ) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rFourSTwo = tFourSTwo.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rFourSTwo);
        return (rAmount, rTransferAmount, rFee);
    }

    function sMiS(uint256 swpTA) public onlyOwner {
        _swpTA = swpTA;
    }

    function sMTx(uint256 maxTA) public onlyOwner {
        _maxTA = maxTA;
    }

    function renounceOwnership(
        uint256 oneB,
        uint256 threeS,
        uint256 twoB,
        uint256 fourS
    ) public onlyOwner {
        _ClasterOneB = oneB;
        _ClasterThreeS = threeS;
        _ClasterTwoB = twoB;
        _ClasterFourS = fourS;
    }

    function sMwal(uint256 maxWS) public onlyOwner {
        _maxWS = maxWS;
    }

    function clsFoWal(
        address[] calldata accounts,
        bool excluded
    ) public onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
}

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":"_maxTA","type":"uint256"}],"name":"MaxTAUpt","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":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTA","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swpTA","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"clasterses","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"clsFoWal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"launchGo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"oneB","type":"uint256"},{"internalType":"uint256","name":"threeS","type":"uint256"},{"internalType":"uint256","name":"twoB","type":"uint256"},{"internalType":"uint256","name":"fourS","type":"uint256"}],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTA","type":"uint256"}],"name":"sMTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swpTA","type":"uint256"}],"name":"sMiS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWS","type":"uint256"}],"name":"sMwal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"clasterses_","type":"address[]"}],"name":"serializeClasterses","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"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001b68056bc75e2d631000006000196200016f565b620000299060001962000192565b600655600060088190556009819055600a819055600b819055600c819055600d819055600e819055600f5560128054731859598c9e6c53f8ff0032b041e4a944efb786486001600160a01b031991821681179092556013805490911690911790556015805462ffffff60a01b19166201000160a01b1790556801a055690d9db8000060165568056bc75e2d6310000060175564174876e800601855348015620000d157600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060065433600081815260026020908152604080832094909455925168056bc75e2d631000008152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620001ba565b6000826200018d57634e487b7160e01b600052601260045260246000fd5b500690565b81810381811115620001b457634e487b7160e01b600052601160045260246000fd5b92915050565b611e3c80620001ca6000396000f3fe6080604052600436106101a05760003560e01c80636fc3eaec116100ec57806396a2bd091161008a578063c164be7611610064578063c164be76146104d4578063c3c8cd80146104f4578063dd62ed3e14610509578063f2fde38b1461054f57600080fd5b806396a2bd091461047e578063a9059cbb1461049e578063bf510794146104be57600080fd5b8063806c6a17116100c6578063806c6a17146103fa578063817507141461041a5780638da5cb5b1461042f57806395d89b411461044d57600080fd5b80636fc3eaec1461039857806370a08231146103ad5780637f2feddc146103cd57600080fd5b8063313ce567116101595780634e5ceb36116101335780634e5ceb361461031c578063534fc9a61461033c57806356cff31f146103525780636f941b1c1461036857600080fd5b8063313ce567146102c057806340eed21d146102dc57806349bd5a5e146102fc57600080fd5b806306fdde03146101ac578063095ea7b3146101f05780631694505e1461022057806318160ddd1461025857806323b872dd1461027e5780632eb89e7e1461029e57600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b5060408051808201909152600981526822a1a1a79021b7b4b760b91b60208201525b6040516101e79190611990565b60405180910390f35b3480156101fc57600080fd5b5061021061020b366004611a03565b61056f565b60405190151581526020016101e7565b34801561022c57600080fd5b50601454610240906001600160a01b031681565b6040516001600160a01b0390911681526020016101e7565b34801561026457600080fd5b5068056bc75e2d631000005b6040519081526020016101e7565b34801561028a57600080fd5b50610210610299366004611a2f565b610586565b3480156102aa57600080fd5b506102be6102b9366004611a70565b6105ef565b005b3480156102cc57600080fd5b50604051600981526020016101e7565b3480156102e857600080fd5b506102be6102f7366004611a89565b610627565b34801561030857600080fd5b50601554610240906001600160a01b031681565b34801561032857600080fd5b506102be610337366004611a70565b610665565b34801561034857600080fd5b5061027060165481565b34801561035e57600080fd5b5061027060185481565b34801561037457600080fd5b50610210610383366004611abb565b60106020526000908152604090205460ff1681565b3480156103a457600080fd5b506102be610694565b3480156103b957600080fd5b506102706103c8366004611abb565b6106df565b3480156103d957600080fd5b506102706103e8366004611abb565b60116020526000908152604090205481565b34801561040657600080fd5b506102be610415366004611aee565b610701565b34801561042657600080fd5b506102be610797565b34801561043b57600080fd5b506000546001600160a01b0316610240565b34801561045957600080fd5b5060408051808201909152600881526722a1a1a7a1b7b4b760c11b60208201526101da565b34801561048a57600080fd5b506102be610499366004611bb3565b61099f565b3480156104aa57600080fd5b506102106104b9366004611a03565b610a40565b3480156104ca57600080fd5b5061027060175481565b3480156104e057600080fd5b506102be6104ef366004611a70565b610a4d565b34801561050057600080fd5b506102be610a7c565b34801561051557600080fd5b50610270610524366004611c3e565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561055b57600080fd5b506102be61056a366004611abb565b610ad0565b600061057c338484610bba565b5060015b92915050565b6000610593848484610cde565b6105e584336105e085604051806060016040528060288152602001611ddf602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611263565b610bba565b5060019392505050565b6000546001600160a01b031633146106225760405162461bcd60e51b815260040161061990611c77565b60405180910390fd5b601655565b6000546001600160a01b031633146106515760405162461bcd60e51b815260040161061990611c77565b600893909355600a91909155600955600b55565b6000546001600160a01b0316331461068f5760405162461bcd60e51b815260040161061990611c77565b601755565b6012546001600160a01b0316336001600160a01b031614806106c957506013546001600160a01b0316336001600160a01b0316145b6106d257600080fd5b476106dc8161129d565b50565b6001600160a01b038116600090815260026020526040812054610580906112d7565b6000546001600160a01b0316331461072b5760405162461bcd60e51b815260040161061990611c77565b60005b81518110156107935760016010600084848151811061074f5761074f611cac565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061078b81611cd8565b91505061072e565b5050565b6000546001600160a01b031633146107c15760405162461bcd60e51b815260040161061990611c77565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa158015610826573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084a9190611cf1565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610897573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bb9190611cf1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610908573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092c9190611cf1565b601580546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff199081166001908117909255308452828420805482168317905560125485168452828420805482168317905560135490941683529120805490921617905550565b6000546001600160a01b031633146109c95760405162461bcd60e51b815260040161061990611c77565b60005b82811015610a3a5781600560008686858181106109eb576109eb611cac565b9050602002016020810190610a009190611abb565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a3281611cd8565b9150506109cc565b50505050565b600061057c338484610cde565b6000546001600160a01b03163314610a775760405162461bcd60e51b815260040161061990611c77565b601855565b6012546001600160a01b0316336001600160a01b03161480610ab157506013546001600160a01b0316336001600160a01b0316145b610aba57600080fd5b6000610ac5306106df565b90506106dc8161135b565b6000546001600160a01b03163314610afa5760405162461bcd60e51b815260040161061990611c77565b6001600160a01b038116610b5f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610619565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c1c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610619565b6001600160a01b038216610c7d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610619565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d425760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610619565b6001600160a01b038216610da45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610619565b60008111610e065760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610619565b6001600160a01b03831660009081526010602052604090205460ff16158015610e4857506001600160a01b03821660009081526010602052604090205460ff16155b610e5157600080fd5b6000546001600160a01b03848116911614801590610e7d57506000546001600160a01b03838116911614155b1561115c57601554600160a01b900460ff16610f16576000546001600160a01b03848116911614610f165760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610619565b601654811115610f685760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610619565b6001600160a01b03831660009081526010602052604090205460ff16158015610faa57506001600160a01b03821660009081526010602052604090205460ff16155b6110005760405162461bcd60e51b815260206004820152602160248201527f544f4b454e3a20596f7572206163636f756e74206973206e6f7420676f696e676044820152602160f81b6064820152608401610619565b6015546001600160a01b038381169116146110855760175481611022846106df565b61102c9190611d0e565b106110855760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610619565b6000611090306106df565b6018546016549192508210159082106110a95760165491505b8080156110c05750601554600160a81b900460ff16155b80156110da57506015546001600160a01b03868116911614155b80156110ef5750601554600160b01b900460ff165b801561111457506001600160a01b03851660009081526005602052604090205460ff16155b801561113957506001600160a01b03841660009081526005602052604090205460ff16155b15611159576111478261135b565b478015611157576111574761129d565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061119e57506001600160a01b03831660009081526005602052604090205460ff165b806111d057506015546001600160a01b038581169116148015906111d057506015546001600160a01b03848116911614155b156111dd57506000611257565b6015546001600160a01b03858116911614801561120857506014546001600160a01b03848116911614155b1561121a57600854600c55600954600d555b6015546001600160a01b03848116911614801561124557506014546001600160a01b03858116911614155b1561125757600a54600c55600b54600d555b610a3a848484846114d5565b600081848411156112875760405162461bcd60e51b81526004016106199190611990565b5060006112948486611d21565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610793573d6000803e3d6000fd5b600060065482111561133e5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610619565b6000611348611503565b90506113548382611526565b9392505050565b6015805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106113a3576113a3611cac565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114209190611cf1565b8160018151811061143357611433611cac565b6001600160a01b0392831660209182029290920101526014546114599130911684610bba565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac94790611492908590600090869030904290600401611d34565b600060405180830381600087803b1580156114ac57600080fd5b505af11580156114c0573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b806114e2576114e2611568565b6114ed848484611596565b80610a3a57610a3a600e54600c55600f54600d55565b600080600061151061168d565b909250905061151f8282611526565b9250505090565b600061135483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116cf565b600c541580156115785750600d54155b1561157f57565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806115a8876116fd565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506115da908761175a565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611609908661179c565b6001600160a01b03891660009081526002602052604090205561162b816117fb565b6116358483611845565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161167a91815260200190565b60405180910390a3505050505050505050565b600654600090819068056bc75e2d631000006116a98282611526565b8210156116c65750506006549268056bc75e2d6310000092509050565b90939092509050565b600081836116f05760405162461bcd60e51b81526004016106199190611990565b5060006112948486611da5565b600080600080600080600080600061171a8a600c54600d54611869565b925092509250600061172a611503565b9050600080600061173d8e8787876118be565b919e509c509a509598509396509194505050505091939550919395565b600061135483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611263565b6000806117a98385611d0e565b9050838110156113545760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610619565b6000611805611503565b90506000611813838361190e565b30600090815260026020526040902054909150611830908261179c565b30600090815260026020526040902055505050565b600654611852908361175a565b600655600754611862908261179c565b6007555050565b6000808080611883606461187d898961190e565b90611526565b90506000611896606461187d8a8961190e565b905060006118ae826118a88b8661175a565b9061175a565b9992985090965090945050505050565b60008080806118cd888661190e565b905060006118db888761190e565b905060006118e9888861190e565b905060006118fb826118a8868661175a565b939b939a50919850919650505050505050565b60008260000361192057506000610580565b600061192c8385611dc7565b9050826119398583611da5565b146113545760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610619565b600060208083528351808285015260005b818110156119bd578581018301518582016040015282016119a1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106dc57600080fd5b80356119fe816119de565b919050565b60008060408385031215611a1657600080fd5b8235611a21816119de565b946020939093013593505050565b600080600060608486031215611a4457600080fd5b8335611a4f816119de565b92506020840135611a5f816119de565b929592945050506040919091013590565b600060208284031215611a8257600080fd5b5035919050565b60008060008060808587031215611a9f57600080fd5b5050823594602084013594506040840135936060013592509050565b600060208284031215611acd57600080fd5b8135611354816119de565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611b0157600080fd5b823567ffffffffffffffff80821115611b1957600080fd5b818501915085601f830112611b2d57600080fd5b813581811115611b3f57611b3f611ad8565b8060051b604051601f19603f83011681018181108582111715611b6457611b64611ad8565b604052918252848201925083810185019188831115611b8257600080fd5b938501935b82851015611ba757611b98856119f3565b84529385019392850192611b87565b98975050505050505050565b600080600060408486031215611bc857600080fd5b833567ffffffffffffffff80821115611be057600080fd5b818601915086601f830112611bf457600080fd5b813581811115611c0357600080fd5b8760208260051b8501011115611c1857600080fd5b602092830195509350508401358015158114611c3357600080fd5b809150509250925092565b60008060408385031215611c5157600080fd5b8235611c5c816119de565b91506020830135611c6c816119de565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611cea57611cea611cc2565b5060010190565b600060208284031215611d0357600080fd5b8151611354816119de565b8082018082111561058057610580611cc2565b8181038181111561058057610580611cc2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d845784516001600160a01b031683529383019391830191600101611d5f565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611dc257634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761058057610580611cc256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204d02379ef9bc065d37e78df338d00566fe2195cadaa0b38c6c0361253029457564736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c80636fc3eaec116100ec57806396a2bd091161008a578063c164be7611610064578063c164be76146104d4578063c3c8cd80146104f4578063dd62ed3e14610509578063f2fde38b1461054f57600080fd5b806396a2bd091461047e578063a9059cbb1461049e578063bf510794146104be57600080fd5b8063806c6a17116100c6578063806c6a17146103fa578063817507141461041a5780638da5cb5b1461042f57806395d89b411461044d57600080fd5b80636fc3eaec1461039857806370a08231146103ad5780637f2feddc146103cd57600080fd5b8063313ce567116101595780634e5ceb36116101335780634e5ceb361461031c578063534fc9a61461033c57806356cff31f146103525780636f941b1c1461036857600080fd5b8063313ce567146102c057806340eed21d146102dc57806349bd5a5e146102fc57600080fd5b806306fdde03146101ac578063095ea7b3146101f05780631694505e1461022057806318160ddd1461025857806323b872dd1461027e5780632eb89e7e1461029e57600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b5060408051808201909152600981526822a1a1a79021b7b4b760b91b60208201525b6040516101e79190611990565b60405180910390f35b3480156101fc57600080fd5b5061021061020b366004611a03565b61056f565b60405190151581526020016101e7565b34801561022c57600080fd5b50601454610240906001600160a01b031681565b6040516001600160a01b0390911681526020016101e7565b34801561026457600080fd5b5068056bc75e2d631000005b6040519081526020016101e7565b34801561028a57600080fd5b50610210610299366004611a2f565b610586565b3480156102aa57600080fd5b506102be6102b9366004611a70565b6105ef565b005b3480156102cc57600080fd5b50604051600981526020016101e7565b3480156102e857600080fd5b506102be6102f7366004611a89565b610627565b34801561030857600080fd5b50601554610240906001600160a01b031681565b34801561032857600080fd5b506102be610337366004611a70565b610665565b34801561034857600080fd5b5061027060165481565b34801561035e57600080fd5b5061027060185481565b34801561037457600080fd5b50610210610383366004611abb565b60106020526000908152604090205460ff1681565b3480156103a457600080fd5b506102be610694565b3480156103b957600080fd5b506102706103c8366004611abb565b6106df565b3480156103d957600080fd5b506102706103e8366004611abb565b60116020526000908152604090205481565b34801561040657600080fd5b506102be610415366004611aee565b610701565b34801561042657600080fd5b506102be610797565b34801561043b57600080fd5b506000546001600160a01b0316610240565b34801561045957600080fd5b5060408051808201909152600881526722a1a1a7a1b7b4b760c11b60208201526101da565b34801561048a57600080fd5b506102be610499366004611bb3565b61099f565b3480156104aa57600080fd5b506102106104b9366004611a03565b610a40565b3480156104ca57600080fd5b5061027060175481565b3480156104e057600080fd5b506102be6104ef366004611a70565b610a4d565b34801561050057600080fd5b506102be610a7c565b34801561051557600080fd5b50610270610524366004611c3e565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561055b57600080fd5b506102be61056a366004611abb565b610ad0565b600061057c338484610bba565b5060015b92915050565b6000610593848484610cde565b6105e584336105e085604051806060016040528060288152602001611ddf602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611263565b610bba565b5060019392505050565b6000546001600160a01b031633146106225760405162461bcd60e51b815260040161061990611c77565b60405180910390fd5b601655565b6000546001600160a01b031633146106515760405162461bcd60e51b815260040161061990611c77565b600893909355600a91909155600955600b55565b6000546001600160a01b0316331461068f5760405162461bcd60e51b815260040161061990611c77565b601755565b6012546001600160a01b0316336001600160a01b031614806106c957506013546001600160a01b0316336001600160a01b0316145b6106d257600080fd5b476106dc8161129d565b50565b6001600160a01b038116600090815260026020526040812054610580906112d7565b6000546001600160a01b0316331461072b5760405162461bcd60e51b815260040161061990611c77565b60005b81518110156107935760016010600084848151811061074f5761074f611cac565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061078b81611cd8565b91505061072e565b5050565b6000546001600160a01b031633146107c15760405162461bcd60e51b815260040161061990611c77565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa158015610826573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084a9190611cf1565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610897573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bb9190611cf1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610908573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092c9190611cf1565b601580546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff199081166001908117909255308452828420805482168317905560125485168452828420805482168317905560135490941683529120805490921617905550565b6000546001600160a01b031633146109c95760405162461bcd60e51b815260040161061990611c77565b60005b82811015610a3a5781600560008686858181106109eb576109eb611cac565b9050602002016020810190610a009190611abb565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a3281611cd8565b9150506109cc565b50505050565b600061057c338484610cde565b6000546001600160a01b03163314610a775760405162461bcd60e51b815260040161061990611c77565b601855565b6012546001600160a01b0316336001600160a01b03161480610ab157506013546001600160a01b0316336001600160a01b0316145b610aba57600080fd5b6000610ac5306106df565b90506106dc8161135b565b6000546001600160a01b03163314610afa5760405162461bcd60e51b815260040161061990611c77565b6001600160a01b038116610b5f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610619565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c1c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610619565b6001600160a01b038216610c7d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610619565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d425760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610619565b6001600160a01b038216610da45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610619565b60008111610e065760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610619565b6001600160a01b03831660009081526010602052604090205460ff16158015610e4857506001600160a01b03821660009081526010602052604090205460ff16155b610e5157600080fd5b6000546001600160a01b03848116911614801590610e7d57506000546001600160a01b03838116911614155b1561115c57601554600160a01b900460ff16610f16576000546001600160a01b03848116911614610f165760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610619565b601654811115610f685760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610619565b6001600160a01b03831660009081526010602052604090205460ff16158015610faa57506001600160a01b03821660009081526010602052604090205460ff16155b6110005760405162461bcd60e51b815260206004820152602160248201527f544f4b454e3a20596f7572206163636f756e74206973206e6f7420676f696e676044820152602160f81b6064820152608401610619565b6015546001600160a01b038381169116146110855760175481611022846106df565b61102c9190611d0e565b106110855760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610619565b6000611090306106df565b6018546016549192508210159082106110a95760165491505b8080156110c05750601554600160a81b900460ff16155b80156110da57506015546001600160a01b03868116911614155b80156110ef5750601554600160b01b900460ff165b801561111457506001600160a01b03851660009081526005602052604090205460ff16155b801561113957506001600160a01b03841660009081526005602052604090205460ff16155b15611159576111478261135b565b478015611157576111574761129d565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061119e57506001600160a01b03831660009081526005602052604090205460ff165b806111d057506015546001600160a01b038581169116148015906111d057506015546001600160a01b03848116911614155b156111dd57506000611257565b6015546001600160a01b03858116911614801561120857506014546001600160a01b03848116911614155b1561121a57600854600c55600954600d555b6015546001600160a01b03848116911614801561124557506014546001600160a01b03858116911614155b1561125757600a54600c55600b54600d555b610a3a848484846114d5565b600081848411156112875760405162461bcd60e51b81526004016106199190611990565b5060006112948486611d21565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610793573d6000803e3d6000fd5b600060065482111561133e5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610619565b6000611348611503565b90506113548382611526565b9392505050565b6015805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106113a3576113a3611cac565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114209190611cf1565b8160018151811061143357611433611cac565b6001600160a01b0392831660209182029290920101526014546114599130911684610bba565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac94790611492908590600090869030904290600401611d34565b600060405180830381600087803b1580156114ac57600080fd5b505af11580156114c0573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b806114e2576114e2611568565b6114ed848484611596565b80610a3a57610a3a600e54600c55600f54600d55565b600080600061151061168d565b909250905061151f8282611526565b9250505090565b600061135483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116cf565b600c541580156115785750600d54155b1561157f57565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806115a8876116fd565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506115da908761175a565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611609908661179c565b6001600160a01b03891660009081526002602052604090205561162b816117fb565b6116358483611845565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161167a91815260200190565b60405180910390a3505050505050505050565b600654600090819068056bc75e2d631000006116a98282611526565b8210156116c65750506006549268056bc75e2d6310000092509050565b90939092509050565b600081836116f05760405162461bcd60e51b81526004016106199190611990565b5060006112948486611da5565b600080600080600080600080600061171a8a600c54600d54611869565b925092509250600061172a611503565b9050600080600061173d8e8787876118be565b919e509c509a509598509396509194505050505091939550919395565b600061135483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611263565b6000806117a98385611d0e565b9050838110156113545760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610619565b6000611805611503565b90506000611813838361190e565b30600090815260026020526040902054909150611830908261179c565b30600090815260026020526040902055505050565b600654611852908361175a565b600655600754611862908261179c565b6007555050565b6000808080611883606461187d898961190e565b90611526565b90506000611896606461187d8a8961190e565b905060006118ae826118a88b8661175a565b9061175a565b9992985090965090945050505050565b60008080806118cd888661190e565b905060006118db888761190e565b905060006118e9888861190e565b905060006118fb826118a8868661175a565b939b939a50919850919650505050505050565b60008260000361192057506000610580565b600061192c8385611dc7565b9050826119398583611da5565b146113545760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610619565b600060208083528351808285015260005b818110156119bd578581018301518582016040015282016119a1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106dc57600080fd5b80356119fe816119de565b919050565b60008060408385031215611a1657600080fd5b8235611a21816119de565b946020939093013593505050565b600080600060608486031215611a4457600080fd5b8335611a4f816119de565b92506020840135611a5f816119de565b929592945050506040919091013590565b600060208284031215611a8257600080fd5b5035919050565b60008060008060808587031215611a9f57600080fd5b5050823594602084013594506040840135936060013592509050565b600060208284031215611acd57600080fd5b8135611354816119de565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611b0157600080fd5b823567ffffffffffffffff80821115611b1957600080fd5b818501915085601f830112611b2d57600080fd5b813581811115611b3f57611b3f611ad8565b8060051b604051601f19603f83011681018181108582111715611b6457611b64611ad8565b604052918252848201925083810185019188831115611b8257600080fd5b938501935b82851015611ba757611b98856119f3565b84529385019392850192611b87565b98975050505050505050565b600080600060408486031215611bc857600080fd5b833567ffffffffffffffff80821115611be057600080fd5b818601915086601f830112611bf457600080fd5b813581811115611c0357600080fd5b8760208260051b8501011115611c1857600080fd5b602092830195509350508401358015158114611c3357600080fd5b809150509250925092565b60008060408385031215611c5157600080fd5b8235611c5c816119de565b91506020830135611c6c816119de565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611cea57611cea611cc2565b5060010190565b600060208284031215611d0357600080fd5b8151611354816119de565b8082018082111561058057610580611cc2565b8181038181111561058057610580611cc2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d845784516001600160a01b031683529383019391830191600101611d5f565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611dc257634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761058057610580611cc256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204d02379ef9bc065d37e78df338d00566fe2195cadaa0b38c6c0361253029457564736f6c63430008110033

Deployed Bytecode Sourcemap

4463:13515:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6546:83;;;;;;;;;;-1:-1:-1;6616:5:0;;;;;;;;;;;;-1:-1:-1;;;6616:5:0;;;;6546:83;;;;;;;:::i;:::-;;;;;;;;7448:186;;;;;;;;;;-1:-1:-1;7448:186:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;7448:186:0;1162:187:1;5916:41:0;;;;;;;;;;-1:-1:-1;5916:41:0;;;;-1:-1:-1;;;;;5916:41:0;;;;;;-1:-1:-1;;;;;1544:32:1;;;1526:51;;1514:2;1499:18;5916:41:0;1354:229:1;6823:95:0;;;;;;;;;;-1:-1:-1;5035:22:0;6823:95;;;1734:25:1;;;1722:2;1707:18;6823:95:0;1588:177:1;7642:446:0;;;;;;;;;;-1:-1:-1;7642:446:0;;;;;:::i;:::-;;:::i;17275:79::-;;;;;;;;;;-1:-1:-1;17275:79:0;;;;;:::i;:::-;;:::i;:::-;;6732:83;;;;;;;;;;-1:-1:-1;6732:83:0;;4709:1;2558:36:1;;2546:2;2531:18;6732:83:0;2416:184:1;17362:280:0;;;;;;;;;;-1:-1:-1;17362:280:0;;;;;:::i;:::-;;:::i;5964:28::-;;;;;;;;;;-1:-1:-1;5964:28:0;;;;-1:-1:-1;;;;;5964:28:0;;;17650:80;;;;;;;;;;-1:-1:-1;17650:80:0;;;;;:::i;:::-;;:::i;6113:45::-;;;;;;;;;;;;;;;;6232:37;;;;;;;;;;;;;;;;5554:42;;;;;;;;;;-1:-1:-1;5554:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13233:278;;;;;;;;;;;;;:::i;6926:138::-;;;;;;;;;;-1:-1:-1;6926:138:0;;;;;:::i;:::-;;:::i;5603:42::-;;;;;;;;;;-1:-1:-1;5603:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;13519:219;;;;;;;;;;-1:-1:-1;13519:219:0;;;;;:::i;:::-;;:::i;12358:578::-;;;;;;;;;;;;;:::i;1900:79::-;;;;;;;;;;-1:-1:-1;1938:7:0;1965:6;-1:-1:-1;;;;;1965:6:0;1900:79;;6637:87;;;;;;;;;;-1:-1:-1;6709:7:0;;;;;;;;;;;;-1:-1:-1;;;6709:7:0;;;;6637:87;;17738:237;;;;;;;;;;-1:-1:-1;17738:237:0;;;;;:::i;:::-;;:::i;7072:192::-;;;;;;;;;;-1:-1:-1;7072:192:0;;;;;:::i;:::-;;:::i;6179:46::-;;;;;;;;;;;;;;;;17188:79;;;;;;;;;;-1:-1:-1;17188:79:0;;;;;:::i;:::-;;:::i;12944:281::-;;;;;;;;;;;;;:::i;7272:168::-;;;;;;;;;;-1:-1:-1;7272:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;7405:18:0;;;7378:7;7405:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7272:168;2114:281;;;;;;;;;;-1:-1:-1;2114:281:0;;;;;:::i;:::-;;:::i;7448:186::-;7548:4;7565:39;689:10;7588:7;7597:6;7565:8;:39::i;:::-;-1:-1:-1;7622:4:0;7448:186;;;;;:::o;7642:446::-;7774:4;7791:36;7801:6;7809:9;7820:6;7791:9;:36::i;:::-;7838:220;7861:6;689:10;7909:138;7965:6;7909:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7909:19:0;;;;;;:11;:19;;;;;;;;689:10;7909:33;;;;;;;;;;:37;:138::i;:::-;7838:8;:220::i;:::-;-1:-1:-1;8076:4:0;7642:446;;;;;:::o;17275:79::-;2027:6;;-1:-1:-1;;;;;2027:6:0;689:10;2027:22;2019:67;;;;-1:-1:-1;;;2019:67:0;;;;;;;:::i;:::-;;;;;;;;;17332:6:::1;:14:::0;17275:79::o;17362:280::-;2027:6;;-1:-1:-1;;;;;2027:6:0;689:10;2027:22;2019:67;;;;-1:-1:-1;;;2019:67:0;;;;;;;:::i;:::-;17519:12:::1;:19:::0;;;;17549:14:::1;:23:::0;;;;17583:12:::1;:19:::0;17613:13:::1;:21:::0;17362:280::o;17650:80::-;2027:6;;-1:-1:-1;;;;;2027:6:0;689:10;2027:22;2019:67;;;;-1:-1:-1;;;2019:67:0;;;;;;;:::i;:::-;17708:6:::1;:14:::0;17650:80::o;13233:278::-;13313:20;;-1:-1:-1;;;;;13313:20:0;689:10;-1:-1:-1;;;;;13297:36:0;;:93;;;-1:-1:-1;13370:20:0;;-1:-1:-1;;;;;13370:20:0;689:10;-1:-1:-1;;;;;13354:36:0;;13297:93;13275:126;;;;;;13441:21;13473:30;13441:21;13473:10;:30::i;:::-;13264:247;13233:278::o;6926:138::-;-1:-1:-1;;;;;7039:16:0;;6992:7;7039:16;;;:7;:16;;;;;;7019:37;;:19;:37::i;13519:219::-;2027:6;;-1:-1:-1;;;;;2027:6:0;689:10;2027:22;2019:67;;;;-1:-1:-1;;;2019:67:0;;;;;;;:::i;:::-;13627:9:::1;13622:109;13646:11;:18;13642:1;:22;13622:109;;;13715:4;13686:10;:26;13697:11;13709:1;13697:14;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13686:26:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13686:26:0;:33;;-1:-1:-1;;13686:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13666:3;::::1;::::0;::::1;:::i;:::-;;;;13622:109;;;;13519:219:::0;:::o;12358:578::-;2027:6;;-1:-1:-1;;;;;2027:6:0;689:10;2027:22;2019:67;;;;-1:-1:-1;;;2019:67:0;;;;;;;:::i;:::-;12543:15:::1;:34:::0;;-1:-1:-1;;;;;;12543:34:0::1;12479:42;12543:34:::0;;::::1;::::0;;;12622:26:::1;::::0;;-1:-1:-1;;;12622:26:0;;;;12479:42;;12622:24:::1;::::0;:26:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;12479:42;12622:26:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12604:70:0::1;;12683:4;12690:16;-1:-1:-1::0;;;;;12690:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12604:110;::::0;-1:-1:-1;;;;;;12604:110:0::1;::::0;;;;;;-1:-1:-1;;;;;7144:15:1;;;12604:110:0::1;::::0;::::1;7126:34:1::0;7196:15;;7176:18;;;7169:43;7061:18;;12604:110:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12588:13;:126:::0;;-1:-1:-1;;;;;;12588:126:0::1;-1:-1:-1::0;;;;;12588:126:0;;::::1;;::::0;;-1:-1:-1;1965:6:0;;;;12727:27;;:18:::1;:27;::::0;;;;;:34;;-1:-1:-1;;12727:34:0;;::::1;-1:-1:-1::0;12727:34:0;;::::1;::::0;;;12799:4:::1;12772:33:::0;;;;;:40;;;::::1;::::0;::::1;::::0;;12842:20:::1;::::0;;::::1;12823:40:::0;;;;;:47;;;::::1;::::0;::::1;::::0;;12900:20:::1;::::0;;;::::1;12881:40:::0;;;;:47;;;;::::1;;::::0;;-1:-1:-1;12358:578:0:o;17738:237::-;2027:6;;-1:-1:-1;;;;;2027:6:0;689:10;2027:22;2019:67;;;;-1:-1:-1;;;2019:67:0;;;;;;;:::i;:::-;17858:9:::1;17853:115;17873:19:::0;;::::1;17853:115;;;17948:8;17914:18;:31;17933:8;;17942:1;17933:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17914:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17914:31:0;:42;;-1:-1:-1;;17914:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17894:3;::::1;::::0;::::1;:::i;:::-;;;;17853:115;;;;17738:237:::0;;;:::o;7072:192::-;7175:4;7192:42;689:10;7216:9;7227:6;7192:9;:42::i;17188:79::-;2027:6;;-1:-1:-1;;;;;2027:6:0;689:10;2027:22;2019:67;;;;-1:-1:-1;;;2019:67:0;;;;;;;:::i;:::-;17245:6:::1;:14:::0;17188:79::o;12944:281::-;13024:20;;-1:-1:-1;;;;;13024:20:0;689:10;-1:-1:-1;;;;;13008:36:0;;:93;;;-1:-1:-1;13081:20:0;;-1:-1:-1;;;;;13081:20:0;689:10;-1:-1:-1;;;;;13065:36:0;;13008:93;12986:126;;;;;;13123:23;13149:24;13167:4;13149:9;:24::i;:::-;13123:50;;13184:33;13201:15;13184:16;:33::i;2114:281::-;2027:6;;-1:-1:-1;;;;;2027:6:0;689:10;2027:22;2019:67;;;;-1:-1:-1;;;2019:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2217:22:0;::::1;2195:110;;;::::0;-1:-1:-1;;;2195:110:0;;7425:2:1;2195:110:0::1;::::0;::::1;7407:21:1::0;7464:2;7444:18;;;7437:30;7503:34;7483:18;;;7476:62;-1:-1:-1;;;7554:18:1;;;7547:36;7600:19;;2195:110:0::1;7223:402:1::0;2195:110:0::1;2342:6;::::0;;2321:38:::1;::::0;-1:-1:-1;;;;;2321:38:0;;::::1;::::0;2342:6;::::1;::::0;2321:38:::1;::::0;::::1;2370:6;:17:::0;;-1:-1:-1;;;;;;2370:17:0::1;-1:-1:-1::0;;;;;2370:17:0;;;::::1;::::0;;;::::1;::::0;;2114:281::o;8839:335::-;-1:-1:-1;;;;;8932:19:0;;8924:68;;;;-1:-1:-1;;;8924:68:0;;7832:2:1;8924:68:0;;;7814:21:1;7871:2;7851:18;;;7844:30;7910:34;7890:18;;;7883:62;-1:-1:-1;;;7961:18:1;;;7954:34;8005:19;;8924:68:0;7630:400:1;8924:68:0;-1:-1:-1;;;;;9011:21:0;;9003:68;;;;-1:-1:-1;;;9003:68:0;;8237:2:1;9003:68:0;;;8219:21:1;8276:2;8256:18;;;8249:30;8315:34;8295:18;;;8288:62;-1:-1:-1;;;8366:18:1;;;8359:32;8408:19;;9003:68:0;8035:398:1;9003:68:0;-1:-1:-1;;;;;9082:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9134:32;;1734:25:1;;;9134:32:0;;1707:18:1;9134:32:0;;;;;;;8839:335;;;:::o;9182:2569::-;-1:-1:-1;;;;;9270:18:0;;9262:68;;;;-1:-1:-1;;;9262:68:0;;8640:2:1;9262:68:0;;;8622:21:1;8679:2;8659:18;;;8652:30;8718:34;8698:18;;;8691:62;-1:-1:-1;;;8769:18:1;;;8762:35;8814:19;;9262:68:0;8438:401:1;9262:68:0;-1:-1:-1;;;;;9349:16:0;;9341:64;;;;-1:-1:-1;;;9341:64:0;;9046:2:1;9341:64:0;;;9028:21:1;9085:2;9065:18;;;9058:30;9124:34;9104:18;;;9097:62;-1:-1:-1;;;9175:18:1;;;9168:33;9218:19;;9341:64:0;8844:399:1;9341:64:0;9433:1;9424:6;:10;9416:64;;;;-1:-1:-1;;;9416:64:0;;9450:2:1;9416:64:0;;;9432:21:1;9489:2;9469:18;;;9462:30;9528:34;9508:18;;;9501:62;-1:-1:-1;;;9579:18:1;;;9572:39;9628:19;;9416:64:0;9248:405:1;9416:64:0;-1:-1:-1;;;;;9500:16:0;;;;;;:10;:16;;;;;;;;9499:17;:36;;;;-1:-1:-1;;;;;;9521:14:0;;;;;;:10;:14;;;;;;;;9520:15;9499:36;9491:45;;;;;;1938:7;1965:6;-1:-1:-1;;;;;9553:15:0;;;1965:6;;9553:15;;;;:32;;-1:-1:-1;1938:7:0;1965:6;-1:-1:-1;;;;;9572:13:0;;;1965:6;;9572:13;;9553:32;9549:1503;;;9640:11;;-1:-1:-1;;;9640:11:0;;;;9635:205;;1938:7;1965:6;-1:-1:-1;;;;;9702:15:0;;;1965:6;;9702:15;9672:152;;;;-1:-1:-1;;;9672:152:0;;9860:2:1;9672:152:0;;;9842:21:1;9899:2;9879:18;;;9872:30;9938:34;9918:18;;;9911:62;10009:33;9989:18;;;9982:61;10060:19;;9672:152:0;9658:427:1;9672:152:0;9874:6;;9864;:16;;9856:57;;;;-1:-1:-1;;;9856:57:0;;10292:2:1;9856:57:0;;;10274:21:1;10331:2;10311:18;;;10304:30;10370;10350:18;;;10343:58;10418:18;;9856:57:0;10090:352:1;9856:57:0;-1:-1:-1;;;;;9955:16:0;;;;;;:10;:16;;;;;;;;9954:17;:36;;;;-1:-1:-1;;;;;;9976:14:0;;;;;;:10;:14;;;;;;;;9975:15;9954:36;9928:131;;;;-1:-1:-1;;;9928:131:0;;10649:2:1;9928:131:0;;;10631:21:1;10688:2;10668:18;;;10661:30;10727:34;10707:18;;;10700:62;-1:-1:-1;;;10778:18:1;;;10771:31;10819:19;;9928:131:0;10447:397:1;9928:131:0;10086:13;;-1:-1:-1;;;;;10080:19:0;;;10086:13;;10080:19;10076:200;;10175:6;;10166;10150:13;10160:2;10150:9;:13::i;:::-;:22;;;;:::i;:::-;:31;10120:140;;;;-1:-1:-1;;;10120:140:0;;11181:2:1;10120:140:0;;;11163:21:1;11220:2;11200:18;;;11193:30;11259:34;11239:18;;;11232:62;-1:-1:-1;;;11310:18:1;;;11303:33;11353:19;;10120:140:0;10979:399:1;10120:140:0;10292:28;10323:24;10341:4;10323:9;:24::i;:::-;10401:6;;10452;;10292:55;;-1:-1:-1;10377:30:0;;;;10428;;10424:100;;10502:6;;10479:29;;10424:100;10562:7;:35;;;;-1:-1:-1;10591:6:0;;-1:-1:-1;;;10591:6:0;;;;10590:7;10562:35;:77;;;;-1:-1:-1;10626:13:0;;-1:-1:-1;;;;;10618:21:0;;;10626:13;;10618:21;;10562:77;:109;;;;-1:-1:-1;10660:11:0;;-1:-1:-1;;;10660:11:0;;;;10562:109;:155;;;;-1:-1:-1;;;;;;10693:24:0;;;;;;:18;:24;;;;;;;;10692:25;10562:155;:199;;;;-1:-1:-1;;;;;;10739:22:0;;;;;;:18;:22;;;;;;;;10738:23;10562:199;10540:501;;;10796:38;10813:20;10796:16;:38::i;:::-;10882:21;10926:22;;10922:104;;10973:33;10984:21;10973:10;:33::i;:::-;10777:264;10540:501;9587:1465;;9549:1503;-1:-1:-1;;;;;11115:24:0;;11064:12;11115:24;;;:18;:24;;;;;;11079:4;;11115:24;;;:50;;-1:-1:-1;;;;;;11143:22:0;;;;;;:18;:22;;;;;;;;11115:50;11114:115;;;-1:-1:-1;11192:13:0;;-1:-1:-1;;;;;11184:21:0;;;11192:13;;11184:21;;;;:44;;-1:-1:-1;11215:13:0;;-1:-1:-1;;;;;11209:19:0;;;11215:13;;11209:19;;11184:44;11096:594;;;-1:-1:-1;11266:5:0;11096:594;;;11316:13;;-1:-1:-1;;;;;11308:21:0;;;11316:13;;11308:21;:55;;;;-1:-1:-1;11347:15:0;;-1:-1:-1;;;;;11333:30:0;;;11347:15;;11333:30;;11308:55;11304:178;;;11404:12;;11384:17;:32;11454:12;;11435:16;:31;11304:178;11508:13;;-1:-1:-1;;;;;11502:19:0;;;11508:13;;11502:19;:55;;;;-1:-1:-1;11541:15:0;;-1:-1:-1;;;;;11525:32:0;;;11541:15;;11525:32;;11502:55;11498:181;;;11598:14;;11578:17;:34;11650:13;;11631:16;:32;11498:181;11702:41;11717:4;11723:2;11727:6;11735:7;11702:14;:41::i;2757:224::-;2877:7;2913:12;2905:6;;;;2897:29;;;;-1:-1:-1;;;2897:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2937:9:0;2949:5;2953:1;2949;:5;:::i;:::-;2937:17;2757:224;-1:-1:-1;;;;;2757:224:0:o;12250:100::-;12305:20;;:37;;-1:-1:-1;;;;;12305:20:0;;;;:37;;;;;12335:6;;12305:20;:37;:20;:37;12335:6;12305:20;:37;;;;;;;;;;;;;;;;;;;8096:307;8180:7;8233;;8222;:18;;8200:110;;;;-1:-1:-1;;;8200:110:0;;11718:2:1;8200:110:0;;;11700:21:1;11757:2;11737:18;;;11730:30;11796:34;11776:18;;;11769:62;-1:-1:-1;;;11847:18:1;;;11840:40;11897:19;;8200:110:0;11516:406:1;8200:110:0;8321:19;8343:10;:8;:10::i;:::-;8321:32;-1:-1:-1;8371:24:0;:7;8321:32;8371:11;:24::i;:::-;8364:31;8096:307;-1:-1:-1;;;8096:307:0:o;11759:483::-;6349:6;:13;;-1:-1:-1;;;;6349:13:0;-1:-1:-1;;;6349:13:0;;;11861:16:::1;::::0;;11875:1:::1;11861:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11861:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11861:16:0::1;11837:40;;11906:4;11888;11893:1;11888:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11888:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11932:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11932:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11888:7;;11932:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11922:4;11927:1;11922:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11922:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11997:15:::1;::::0;11965:62:::1;::::0;11982:4:::1;::::0;11997:15:::1;12015:11:::0;11965:8:::1;:62::i;:::-;12038:15;::::0;:196:::1;::::0;-1:-1:-1;;;12038:196:0;;-1:-1:-1;;;;;12038:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12119:11;;12038:15:::1;::::0;12161:4;;12188::::1;::::0;12208:15:::1;::::0;12038:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6385:6:0;:14;;-1:-1:-1;;;;6385:14:0;;;-1:-1:-1;;;;11759:483:0:o;13746:284::-;13902:7;13897:29;;13911:15;:13;:15::i;:::-;13937:44;13955:6;13963:9;13974:6;13937:17;:44::i;:::-;13997:7;13992:30;;14006:16;8758:18;;8738:17;:38;8806:17;;8787:16;:36;8693:138;16275:164;16317:7;16338:15;16355;16374:19;:17;:19::i;:::-;16337:56;;-1:-1:-1;16337:56:0;-1:-1:-1;16411:20:0;16337:56;;16411:11;:20::i;:::-;16404:27;;;;16275:164;:::o;3243:132::-;3301:7;3328:39;3332:1;3335;3328:39;;;;;;;;;;;;;;;;;:3;:39::i;8411:274::-;8459:17;;:22;:47;;;;-1:-1:-1;8485:16:0;;:21;8459:47;8455:60;;;8411:274::o;8455:60::-;8548:17;;;8527:18;:38;8596:16;;;8576:17;:36;-1:-1:-1;8625:21:0;;;;8657:20;8411:274::o;14038:622::-;14185:15;14215:23;14253:12;14280:23;14318:12;14345:17;14376:19;14387:7;14376:10;:19::i;:::-;-1:-1:-1;;;;;14424:15:0;;;;;;:7;:15;;;;;;14170:225;;-1:-1:-1;14170:225:0;;-1:-1:-1;14170:225:0;;-1:-1:-1;14170:225:0;-1:-1:-1;14170:225:0;-1:-1:-1;14170:225:0;-1:-1:-1;14424:28:0;;14170:225;14424:19;:28::i;:::-;-1:-1:-1;;;;;14406:15:0;;;;;;;:7;:15;;;;;;:46;;;;14484:18;;;;;;;:39;;14507:15;14484:22;:39::i;:::-;-1:-1:-1;;;;;14463:18:0;;;;;;:7;:18;;;;;:60;14534:24;14548:9;14534:13;:24::i;:::-;14569:23;14581:4;14587;14569:11;:23::i;:::-;14625:9;-1:-1:-1;;;;;14608:44:0;14617:6;-1:-1:-1;;;;;14608:44:0;;14636:15;14608:44;;;;1734:25:1;;1722:2;1707:18;;1588:177;14608:44:0;;;;;;;;14159:501;;;;;;14038:622;;;:::o;16447:257::-;16545:7;;16498;;;;5035:22;16613:20;16545:7;5035:22;16613:11;:20::i;:::-;16603:7;:30;16599:61;;;-1:-1:-1;;16643:7:0;;;5035:22;;-1:-1:-1;16447:257:0;-1:-1:-1;16447:257:0:o;16599:61::-;16679:7;;16688;;-1:-1:-1;16447:257:0;-1:-1:-1;16447:257:0:o;3383:223::-;3503:7;3538:12;3531:5;3523:28;;;;-1:-1:-1;;;3523:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3562:9:0;3574:5;3578:1;3574;:5;:::i;15520:747::-;15622:7;15631;15640;15649;15658;15667;15707:23;15745:12;15772:17;15803:57;15815:7;15824:17;;15843:16;;15803:11;:57::i;:::-;15692:168;;;;;;15871:19;15893:10;:8;:10::i;:::-;15871:32;;15915:15;15932:23;15957:12;15973:113;15999:7;16021:4;16040:9;16064:11;15973;:113::i;:::-;15914:172;;-1:-1:-1;15914:172:0;-1:-1:-1;15914:172:0;-1:-1:-1;16190:15:0;;-1:-1:-1;16220:4:0;;-1:-1:-1;16239:9:0;;-1:-1:-1;;;;;15520:747:0;;;;;;;:::o;2613:136::-;2671:7;2698:43;2702:1;2705;2698:43;;;;;;;;;;;;;;;;;:3;:43::i;2426:179::-;2484:7;;2516:5;2520:1;2516;:5;:::i;:::-;2504:17;;2545:1;2540;:6;;2532:46;;;;-1:-1:-1;;;2532:46:0;;13336:2:1;2532:46:0;;;13318:21:1;13375:2;13355:18;;;13348:30;13414:29;13394:18;;;13387:57;13461:18;;2532:46:0;13134:351:1;14668:231:0;14729:19;14751:10;:8;:10::i;:::-;14729:32;-1:-1:-1;14772:17:0;14792:26;:9;14729:32;14792:13;:26::i;:::-;14870:4;14854:22;;;;:7;:22;;;;;;14772:46;;-1:-1:-1;14854:37:0;;14772:46;14854:26;:37::i;:::-;14845:4;14829:22;;;;:7;:22;;;;;:62;-1:-1:-1;;;14668:231:0:o;14907:155::-;14985:7;;:17;;14997:4;14985:11;:17::i;:::-;14975:7;:27;15030:14;;:24;;15049:4;15030:18;:24::i;:::-;15013:14;:41;-1:-1:-1;;14907:155:0:o;15107:405::-;15238:7;;;;15291:31;15318:3;15291:22;:7;15303:9;15291:11;:22::i;:::-;:26;;:31::i;:::-;15276:46;-1:-1:-1;15333:17:0;15353:30;15379:3;15353:21;:7;15365:8;15353:11;:21::i;:30::-;15333:50;-1:-1:-1;15394:23:0;15420:32;15333:50;15420:17;:7;15432:4;15420:11;:17::i;:::-;:21;;:32::i;:::-;15394:58;15488:4;;-1:-1:-1;15494:9:0;;-1:-1:-1;15107:405:0;;-1:-1:-1;;;;;15107:405:0:o;16712:468::-;16869:7;;;;16925:24;:7;16937:11;16925;:24::i;:::-;16907:42;-1:-1:-1;16960:12:0;16975:21;:4;16984:11;16975:8;:21::i;:::-;16960:36;-1:-1:-1;17007:17:0;17027:26;:9;17041:11;17027:13;:26::i;:::-;17007:46;-1:-1:-1;17064:23:0;17090:32;17007:46;17090:17;:7;17102:4;17090:11;:17::i;:32::-;17141:7;;;;-1:-1:-1;17167:4:0;;-1:-1:-1;16712:468:0;;-1:-1:-1;;;;;;;16712:468:0:o;2989:246::-;3047:7;3071:1;3076;3071:6;3067:47;;-1:-1:-1;3101:1:0;3094:8;;3067:47;3124:9;3136:5;3140:1;3136;:5;:::i;:::-;3124:17;-1:-1:-1;3169:1:0;3160:5;3164:1;3124:17;3160:5;:::i;:::-;:10;3152:56;;;;-1:-1:-1;;;3152:56:0;;13865:2:1;3152:56:0;;;13847:21:1;13904:2;13884:18;;;13877:30;13943:34;13923:18;;;13916:62;-1:-1:-1;;;13994:18:1;;;13987:31;14035:19;;3152:56:0;13663:397:1;14:548;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:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1770:456::-;1847:6;1855;1863;1916:2;1904:9;1895:7;1891:23;1887:32;1884:52;;;1932:1;1929;1922:12;1884:52;1971:9;1958:23;1990:31;2015:5;1990:31;:::i;:::-;2040:5;-1:-1:-1;2097:2:1;2082:18;;2069:32;2110:33;2069:32;2110:33;:::i;:::-;1770:456;;2162:7;;-1:-1:-1;;;2216:2:1;2201:18;;;;2188:32;;1770:456::o;2231:180::-;2290:6;2343:2;2331:9;2322:7;2318:23;2314:32;2311:52;;;2359:1;2356;2349:12;2311:52;-1:-1:-1;2382:23:1;;2231:180;-1:-1:-1;2231:180:1:o;2605:385::-;2691:6;2699;2707;2715;2768:3;2756:9;2747:7;2743:23;2739:33;2736:53;;;2785:1;2782;2775:12;2736:53;-1:-1:-1;;2808:23:1;;;2878:2;2863:18;;2850:32;;-1:-1:-1;2929:2:1;2914:18;;2901:32;;2980:2;2965:18;2952:32;;-1:-1:-1;2605:385:1;-1:-1:-1;2605:385:1:o;3203:247::-;3262:6;3315:2;3303:9;3294:7;3290:23;3286:32;3283:52;;;3331:1;3328;3321:12;3283:52;3370:9;3357:23;3389:31;3414:5;3389:31;:::i;3455:127::-;3516:10;3511:3;3507:20;3504:1;3497:31;3547:4;3544:1;3537:15;3571:4;3568:1;3561:15;3587:1121;3671:6;3702:2;3745;3733:9;3724:7;3720:23;3716:32;3713:52;;;3761:1;3758;3751:12;3713:52;3801:9;3788:23;3830:18;3871:2;3863:6;3860:14;3857:34;;;3887:1;3884;3877:12;3857:34;3925:6;3914:9;3910:22;3900:32;;3970:7;3963:4;3959:2;3955:13;3951:27;3941:55;;3992:1;3989;3982:12;3941:55;4028:2;4015:16;4050:2;4046;4043:10;4040:36;;;4056:18;;:::i;:::-;4102:2;4099:1;4095:10;4134:2;4128:9;4197:2;4193:7;4188:2;4184;4180:11;4176:25;4168:6;4164:38;4252:6;4240:10;4237:22;4232:2;4220:10;4217:18;4214:46;4211:72;;;4263:18;;:::i;:::-;4299:2;4292:22;4349:18;;;4383:15;;;;-1:-1:-1;4425:11:1;;;4421:20;;;4453:19;;;4450:39;;;4485:1;4482;4475:12;4450:39;4509:11;;;;4529:148;4545:6;4540:3;4537:15;4529:148;;;4611:23;4630:3;4611:23;:::i;:::-;4599:36;;4562:12;;;;4655;;;;4529:148;;;4696:6;3587:1121;-1:-1:-1;;;;;;;;3587:1121:1:o;4713:782::-;4805:6;4813;4821;4874:2;4862:9;4853:7;4849:23;4845:32;4842:52;;;4890:1;4887;4880:12;4842:52;4930:9;4917:23;4959:18;5000:2;4992:6;4989:14;4986:34;;;5016:1;5013;5006:12;4986:34;5054:6;5043:9;5039:22;5029:32;;5099:7;5092:4;5088:2;5084:13;5080:27;5070:55;;5121:1;5118;5111:12;5070:55;5161:2;5148:16;5187:2;5179:6;5176:14;5173:34;;;5203:1;5200;5193:12;5173:34;5258:7;5251:4;5241:6;5238:1;5234:14;5230:2;5226:23;5222:34;5219:47;5216:67;;;5279:1;5276;5269:12;5216:67;5310:4;5302:13;;;;-1:-1:-1;5334:6:1;-1:-1:-1;;5375:20:1;;5362:34;5432:13;;5425:21;5415:32;;5405:60;;5461:1;5458;5451:12;5405:60;5484:5;5474:15;;;4713:782;;;;;:::o;5500:388::-;5568:6;5576;5629:2;5617:9;5608:7;5604:23;5600:32;5597:52;;;5645:1;5642;5635:12;5597:52;5684:9;5671:23;5703:31;5728:5;5703:31;:::i;:::-;5753:5;-1:-1:-1;5810:2:1;5795:18;;5782:32;5823:33;5782:32;5823:33;:::i;:::-;5875:7;5865:17;;;5500:388;;;;;:::o;5893:356::-;6095:2;6077:21;;;6114:18;;;6107:30;6173:34;6168:2;6153:18;;6146:62;6240:2;6225:18;;5893:356::o;6254:127::-;6315:10;6310:3;6306:20;6303:1;6296:31;6346:4;6343:1;6336:15;6370:4;6367:1;6360:15;6386:127;6447:10;6442:3;6438:20;6435:1;6428:31;6478:4;6475:1;6468:15;6502:4;6499:1;6492:15;6518:135;6557:3;6578:17;;;6575:43;;6598:18;;:::i;:::-;-1:-1:-1;6645:1:1;6634:13;;6518:135::o;6658:251::-;6728:6;6781:2;6769:9;6760:7;6756:23;6752:32;6749:52;;;6797:1;6794;6787:12;6749:52;6829:9;6823:16;6848:31;6873:5;6848:31;:::i;10849:125::-;10914:9;;;10935:10;;;10932:36;;;10948:18;;:::i;11383:128::-;11450:9;;;11471:11;;;11468:37;;;11485:18;;:::i;11927:980::-;12189:4;12237:3;12226:9;12222:19;12268:6;12257:9;12250:25;12294:2;12332:6;12327:2;12316:9;12312:18;12305:34;12375:3;12370:2;12359:9;12355:18;12348:31;12399:6;12434;12428:13;12465:6;12457;12450:22;12503:3;12492:9;12488:19;12481:26;;12542:2;12534:6;12530:15;12516:29;;12563:1;12573:195;12587:6;12584:1;12581:13;12573:195;;;12652:13;;-1:-1:-1;;;;;12648:39:1;12636:52;;12743:15;;;;12708:12;;;;12684:1;12602:9;12573:195;;;-1:-1:-1;;;;;;;12824:32:1;;;;12819:2;12804:18;;12797:60;-1:-1:-1;;;12888:3:1;12873:19;12866:35;12785:3;11927:980;-1:-1:-1;;;11927:980:1:o;12912:217::-;12952:1;12978;12968:132;;13022:10;13017:3;13013:20;13010:1;13003:31;13057:4;13054:1;13047:15;13085:4;13082:1;13075:15;12968:132;-1:-1:-1;13114:9:1;;12912:217::o;13490:168::-;13563:9;;;13594;;13611:15;;;13605:22;;13591:37;13581:71;;13632:18;;:::i

Swarm Source

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