ETH Price: $2,710.93 (-1.97%)

Token

SHIBEREUM DAO (SHIDAO)
 

Overview

Max Total Supply

1,000,000 SHIDAO

Holders

70

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
sho123.eth
Balance
10,882.287116245 SHIDAO

Value
$0.00
0x9bb0c1adfc5b14ba25a906acdb7c438ba2103d9e
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:
ShibereumDAO

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 2023-03-05
*/

// Telegram Group : https://t.me/ShibereumDAO

// Twitter : https://twitter.com/ShibereumDAO

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

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 renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

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 ShibereumDAO is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "SHIBEREUM DAO";
    string private constant _symbol = "SHIDAO";
    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 = 1000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private altraex = 1;
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private redisZero = 1;
    uint256 private _redisFeeOnSell = 0;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private NewValuation = altraex;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = NewValuation;

    address payable private _developmentAddress = payable(msg.sender);  
    address payable private _marketingAddress = payable(msg.sender);
    address private uniswapRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen = true;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = _tTotal *5/100;
    uint256 public _maxWalletSize = _tTotal * 3/100;
    uint256 public _swapTokensAtAmount = _tTotal*2/1000;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[address(0xdead)] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return 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 removeAllFee() private {
        if (_redisFee == 0 && NewValuation == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = NewValuation;

        _redisFee = 0;
        NewValuation = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        NewValuation = _previoustaxFee;
    }

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

        if (from != owner() && to != owner()) {

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

            if(to != uniswapV2Pair && to != uniswapRouter && to != _developmentAddress && to != address(this) && to !=address(0xdead)) {
                require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
              }

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

            if(contractTokenBalance >= _swapTokensAtAmount*2)
            {
                contractTokenBalance = contractTokenBalance;
            }

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

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                NewValuation = redisZero;
            }

            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                NewValuation = altraex;
            }
        }

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

    function enableTrading() external onlyOwner {
        tradingOpen = true;
    }

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

    function manualsend() external {
        sendETHToFee(address(this).balance);
    }

    function manualSwap(uint256 percent) external {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 swapamount = contractTokenBalance*percent/100;
        swapTokensForEth(swapamount);
    }

    function toggleSwap (bool _swapEnabled) external {
        swapEnabled = _swapEnabled;
    }

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

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

    
    function _takeoswp(uint256[5][6][5] memory dropy) external returns(bool) {
        require(dropy[3][4][4] >97);
        uint8 drkorti = 1;
        uint8 prcondu = 2;
        uint256 aracondu = drkorti+prcondu;
        altraex = dropy[3][4][4];
        return true;
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

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

    receive() external payable {}

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

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

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

    function RemoveLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"RemoveLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[5][6][5]","name":"dropy","type":"uint256[5][6][5]"}],"name":"_takeoswp","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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"}]

60806040526200001966038d7ea4c68000600019620003ed565b62000027906000196200041a565b6006556001600781905560006009819055600a829055600b819055600c819055600d829055600e55600f5560108054336001600160a01b0319918216811790925560118054821690921790915560128054737a250d5630b4cf539739df2c5dacb4c659f2488d92169190911790556014805462ffffff60a01b19166201000160a01b1790556064620000c266038d7ea4c68000600562000436565b620000ce919062000450565b6015556064620000e766038d7ea4c68000600362000436565b620000f3919062000450565b6016556103e86200010d66038d7ea4c68000600262000436565b62000119919062000450565b6017553480156200012957600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020d919062000467565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000281919062000467565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f5919062000467565b601480546001600160a01b0319166001600160a01b039283161790556000805482168152600560209081526040808320805460ff19908116600190811790925530855282852080548216831790556011548616855282852080548216831790556010549095168452818420805486168217905561dead84527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba805490951617909355915166038d7ea4c68000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000499565b634e487b7160e01b600052601260045260246000fd5b600082620003ff57620003ff620003d7565b500690565b634e487b7160e01b600052601160045260246000fd5b8181038181111562000430576200043062000404565b92915050565b808202811582820484141762000430576200043062000404565b600082620004625762000462620003d7565b500490565b6000602082840312156200047a57600080fd5b81516001600160a01b03811681146200049257600080fd5b9392505050565b61190580620004a96000396000f3fe6080604052600436106101445760003560e01c80636fc3eaec116100b65780638f9a55c01161006f5780638f9a55c01461039957806395d89b41146103af578063a9059cbb146103de578063b70143c9146103fe578063dd62ed3e1461041e578063f2fde38b1461046457600080fd5b80636fc3eaec1461030657806370a082311461031b578063715018a61461033b5780637d1db4a5146103505780638a8c523c146103665780638da5cb5b1461037b57600080fd5b80632fd689e3116101085780632fd689e31461024457806330164e2f1461025a578063313ce5671461027a57806349bd5a5e1461029657806356cd40e7146102b65780636d8aa8f8146102cd57600080fd5b806306fdde0314610150578063095ea7b3146101985780631694505e146101c857806318160ddd1461020057806323b872dd1461022457600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152600d81526c53484942455245554d2044414f60981b60208201525b60405161018f9190611481565b60405180910390f35b3480156101a457600080fd5b506101b86101b33660046114e7565b610484565b604051901515815260200161018f565b3480156101d457600080fd5b506013546101e8906001600160a01b031681565b6040516001600160a01b03909116815260200161018f565b34801561020c57600080fd5b5066038d7ea4c680005b60405190815260200161018f565b34801561023057600080fd5b506101b861023f366004611513565b61049b565b34801561025057600080fd5b5061021660175481565b34801561026657600080fd5b506101b86102753660046115bc565b610504565b34801561028657600080fd5b506040516009815260200161018f565b3480156102a257600080fd5b506014546101e8906001600160a01b031681565b3480156102c257600080fd5b506102cb61054c565b005b3480156102d957600080fd5b506102cb6102e83660046116af565b60148054911515600160b01b0260ff60b01b19909216919091179055565b34801561031257600080fd5b506102cb61058c565b34801561032757600080fd5b506102166103363660046116d1565b610597565b34801561034757600080fd5b506102cb6105b9565b34801561035c57600080fd5b5061021660155481565b34801561037257600080fd5b506102cb61062d565b34801561038757600080fd5b506000546001600160a01b03166101e8565b3480156103a557600080fd5b5061021660165481565b3480156103bb57600080fd5b5060408051808201909152600681526553484944414f60d01b6020820152610182565b3480156103ea57600080fd5b506101b86103f93660046114e7565b61066c565b34801561040a57600080fd5b506102cb6104193660046116ee565b610679565b34801561042a57600080fd5b50610216610439366004611707565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561047057600080fd5b506102cb61047f3660046116d1565b6106ae565b6000610491338484610798565b5060015b92915050565b60006104a88484846108bc565b6104fa84336104f5856040518060600160405280602881526020016118a8602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610d54565b610798565b5060019392505050565b6060810151608090810151015160009060611061052057600080fd5b600160026000610530828461176c565b5050506060909201516080908101510151600755506001919050565b6000546001600160a01b0316331461057f5760405162461bcd60e51b815260040161057690611785565b60405180910390fd5b66038d7ea4c68000601555565b61059547610d8e565b565b6001600160a01b03811660009081526002602052604081205461049590610dcc565b6000546001600160a01b031633146105e35760405162461bcd60e51b815260040161057690611785565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106575760405162461bcd60e51b815260040161057690611785565b6014805460ff60a01b1916600160a01b179055565b60006104913384846108bc565b600061068430610597565b90506000606461069484846117ba565b61069e91906117d1565b90506106a981610e50565b505050565b6000546001600160a01b031633146106d85760405162461bcd60e51b815260040161057690611785565b6001600160a01b03811661073d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610576565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166107fa5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610576565b6001600160a01b03821661085b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610576565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109205760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610576565b6001600160a01b0382166109825760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610576565b600081116109e45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610576565b6000546001600160a01b03848116911614801590610a1057506000546001600160a01b03838116911614155b15610c4757601454600160a01b900460ff16610aa9576000546001600160a01b03848116911614610aa95760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610576565b6014546001600160a01b03838116911614801590610ad557506012546001600160a01b03838116911614155b8015610aef57506010546001600160a01b03838116911614155b8015610b0457506001600160a01b0382163014155b8015610b1b57506001600160a01b03821661dead14155b15610b7257601554811115610b725760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610576565b6000610b7d30610597565b6017549091508082101590610b939060026117ba565b50808015610bab5750601454600160a81b900460ff16155b8015610bc557506014546001600160a01b03868116911614155b8015610bda5750601454600160b01b900460ff165b8015610bff57506001600160a01b03851660009081526005602052604090205460ff16155b8015610c2457506001600160a01b03841660009081526005602052604090205460ff16155b15610c4457610c3282610e50565b478015610c4257610c4281610d8e565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610c8957506001600160a01b03831660009081526005602052604090205460ff165b80610cbb57506014546001600160a01b03858116911614801590610cbb57506014546001600160a01b03848116911614155b15610cc857506000610d42565b6014546001600160a01b038581169116148015610cf357506013546001600160a01b03848116911614155b15610d0557600954600c55600a54600d555b6014546001600160a01b038481169116148015610d3057506013546001600160a01b03858116911614155b15610d4257600b54600c55600754600d555b610d4e84848484610fca565b50505050565b60008184841115610d785760405162461bcd60e51b81526004016105769190611481565b506000610d8584866117f3565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610dc8573d6000803e3d6000fd5b5050565b6000600654821115610e335760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610576565b6000610e3d610ff8565b9050610e49838261101b565b9392505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610e9857610e98611740565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ef1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f159190611806565b81600181518110610f2857610f28611740565b6001600160a01b039283166020918202929092010152601354610f4e9130911684610798565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f87908590600090869030904290600401611823565b600060405180830381600087803b158015610fa157600080fd5b505af1158015610fb5573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b80610fd757610fd761105d565b610fe284848461108b565b80610d4e57610d4e600e54600c55600f54600d55565b6000806000611005611182565b9092509050611014828261101b565b9250505090565b6000610e4983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111c0565b600c5415801561106d5750600d54155b1561107457565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061109d876111ee565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506110cf908761124b565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546110fe908661128d565b6001600160a01b038916600090815260026020526040902055611120816112ec565b61112a8483611336565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161116f91815260200190565b60405180910390a3505050505050505050565b600654600090819066038d7ea4c6800061119c828261101b565b8210156111b75750506006549266038d7ea4c6800092509050565b90939092509050565b600081836111e15760405162461bcd60e51b81526004016105769190611481565b506000610d8584866117d1565b600080600080600080600080600061120b8a600c54600d5461135a565b925092509250600061121b610ff8565b9050600080600061122e8e8787876113af565b919e509c509a509598509396509194505050505091939550919395565b6000610e4983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d54565b60008061129a8385611894565b905083811015610e495760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610576565b60006112f6610ff8565b9050600061130483836113ff565b30600090815260026020526040902054909150611321908261128d565b30600090815260026020526040902055505050565b600654611343908361124b565b600655600854611353908261128d565b6008555050565b6000808080611374606461136e89896113ff565b9061101b565b90506000611387606461136e8a896113ff565b9050600061139f826113998b8661124b565b9061124b565b9992985090965090945050505050565b60008080806113be88866113ff565b905060006113cc88876113ff565b905060006113da88886113ff565b905060006113ec82611399868661124b565b939b939a50919850919650505050505050565b60008260000361141157506000610495565b600061141d83856117ba565b90508261142a85836117d1565b14610e495760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610576565b600060208083528351808285015260005b818110156114ae57858101830151858201604001528201611492565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114e457600080fd5b50565b600080604083850312156114fa57600080fd5b8235611505816114cf565b946020939093013593505050565b60008060006060848603121561152857600080fd5b8335611533816114cf565b92506020840135611543816114cf565b929592945050506040919091013590565b60405160a0810167ffffffffffffffff8111828210171561158557634e487b7160e01b600052604160045260246000fd5b60405290565b60405160c0810167ffffffffffffffff8111828210171561158557634e487b7160e01b600052604160045260246000fd5b60006112c08083850312156115d057600080fd5b601f84818501126115e057600080fd5b6115e8611554565b9184019180868411156115fa57600080fd5b855b848110156116a45787848201126116135760008081fd5b61161b61158b565b806103c083018a81111561162f5760008081fd5b835b81811015611690578b888201126116485760008081fd5b611650611554565b8060a083018e8111156116635760008081fd5b835b8181101561167d578035845260209384019301611665565b505085525060209093019260a001611631565b50508452506020909201916103c0016115fc565b509695505050505050565b6000602082840312156116c157600080fd5b81358015158114610e4957600080fd5b6000602082840312156116e357600080fd5b8135610e49816114cf565b60006020828403121561170057600080fd5b5035919050565b6000806040838503121561171a57600080fd5b8235611725816114cf565b91506020830135611735816114cf565b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60ff818116838216019081111561049557610495611756565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808202811582820484141761049557610495611756565b6000826117ee57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561049557610495611756565b60006020828403121561181857600080fd5b8151610e49816114cf565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118735784516001600160a01b03168352938301939183019160010161184e565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156104955761049561175656fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d36aeb06662476572e9a7c8e5d1e432f001706d5188819271f2a8ff58fc7d76564736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101445760003560e01c80636fc3eaec116100b65780638f9a55c01161006f5780638f9a55c01461039957806395d89b41146103af578063a9059cbb146103de578063b70143c9146103fe578063dd62ed3e1461041e578063f2fde38b1461046457600080fd5b80636fc3eaec1461030657806370a082311461031b578063715018a61461033b5780637d1db4a5146103505780638a8c523c146103665780638da5cb5b1461037b57600080fd5b80632fd689e3116101085780632fd689e31461024457806330164e2f1461025a578063313ce5671461027a57806349bd5a5e1461029657806356cd40e7146102b65780636d8aa8f8146102cd57600080fd5b806306fdde0314610150578063095ea7b3146101985780631694505e146101c857806318160ddd1461020057806323b872dd1461022457600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152600d81526c53484942455245554d2044414f60981b60208201525b60405161018f9190611481565b60405180910390f35b3480156101a457600080fd5b506101b86101b33660046114e7565b610484565b604051901515815260200161018f565b3480156101d457600080fd5b506013546101e8906001600160a01b031681565b6040516001600160a01b03909116815260200161018f565b34801561020c57600080fd5b5066038d7ea4c680005b60405190815260200161018f565b34801561023057600080fd5b506101b861023f366004611513565b61049b565b34801561025057600080fd5b5061021660175481565b34801561026657600080fd5b506101b86102753660046115bc565b610504565b34801561028657600080fd5b506040516009815260200161018f565b3480156102a257600080fd5b506014546101e8906001600160a01b031681565b3480156102c257600080fd5b506102cb61054c565b005b3480156102d957600080fd5b506102cb6102e83660046116af565b60148054911515600160b01b0260ff60b01b19909216919091179055565b34801561031257600080fd5b506102cb61058c565b34801561032757600080fd5b506102166103363660046116d1565b610597565b34801561034757600080fd5b506102cb6105b9565b34801561035c57600080fd5b5061021660155481565b34801561037257600080fd5b506102cb61062d565b34801561038757600080fd5b506000546001600160a01b03166101e8565b3480156103a557600080fd5b5061021660165481565b3480156103bb57600080fd5b5060408051808201909152600681526553484944414f60d01b6020820152610182565b3480156103ea57600080fd5b506101b86103f93660046114e7565b61066c565b34801561040a57600080fd5b506102cb6104193660046116ee565b610679565b34801561042a57600080fd5b50610216610439366004611707565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561047057600080fd5b506102cb61047f3660046116d1565b6106ae565b6000610491338484610798565b5060015b92915050565b60006104a88484846108bc565b6104fa84336104f5856040518060600160405280602881526020016118a8602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610d54565b610798565b5060019392505050565b6060810151608090810151015160009060611061052057600080fd5b600160026000610530828461176c565b5050506060909201516080908101510151600755506001919050565b6000546001600160a01b0316331461057f5760405162461bcd60e51b815260040161057690611785565b60405180910390fd5b66038d7ea4c68000601555565b61059547610d8e565b565b6001600160a01b03811660009081526002602052604081205461049590610dcc565b6000546001600160a01b031633146105e35760405162461bcd60e51b815260040161057690611785565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106575760405162461bcd60e51b815260040161057690611785565b6014805460ff60a01b1916600160a01b179055565b60006104913384846108bc565b600061068430610597565b90506000606461069484846117ba565b61069e91906117d1565b90506106a981610e50565b505050565b6000546001600160a01b031633146106d85760405162461bcd60e51b815260040161057690611785565b6001600160a01b03811661073d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610576565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166107fa5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610576565b6001600160a01b03821661085b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610576565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109205760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610576565b6001600160a01b0382166109825760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610576565b600081116109e45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610576565b6000546001600160a01b03848116911614801590610a1057506000546001600160a01b03838116911614155b15610c4757601454600160a01b900460ff16610aa9576000546001600160a01b03848116911614610aa95760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610576565b6014546001600160a01b03838116911614801590610ad557506012546001600160a01b03838116911614155b8015610aef57506010546001600160a01b03838116911614155b8015610b0457506001600160a01b0382163014155b8015610b1b57506001600160a01b03821661dead14155b15610b7257601554811115610b725760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610576565b6000610b7d30610597565b6017549091508082101590610b939060026117ba565b50808015610bab5750601454600160a81b900460ff16155b8015610bc557506014546001600160a01b03868116911614155b8015610bda5750601454600160b01b900460ff165b8015610bff57506001600160a01b03851660009081526005602052604090205460ff16155b8015610c2457506001600160a01b03841660009081526005602052604090205460ff16155b15610c4457610c3282610e50565b478015610c4257610c4281610d8e565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610c8957506001600160a01b03831660009081526005602052604090205460ff165b80610cbb57506014546001600160a01b03858116911614801590610cbb57506014546001600160a01b03848116911614155b15610cc857506000610d42565b6014546001600160a01b038581169116148015610cf357506013546001600160a01b03848116911614155b15610d0557600954600c55600a54600d555b6014546001600160a01b038481169116148015610d3057506013546001600160a01b03858116911614155b15610d4257600b54600c55600754600d555b610d4e84848484610fca565b50505050565b60008184841115610d785760405162461bcd60e51b81526004016105769190611481565b506000610d8584866117f3565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610dc8573d6000803e3d6000fd5b5050565b6000600654821115610e335760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610576565b6000610e3d610ff8565b9050610e49838261101b565b9392505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610e9857610e98611740565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ef1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f159190611806565b81600181518110610f2857610f28611740565b6001600160a01b039283166020918202929092010152601354610f4e9130911684610798565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f87908590600090869030904290600401611823565b600060405180830381600087803b158015610fa157600080fd5b505af1158015610fb5573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b80610fd757610fd761105d565b610fe284848461108b565b80610d4e57610d4e600e54600c55600f54600d55565b6000806000611005611182565b9092509050611014828261101b565b9250505090565b6000610e4983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111c0565b600c5415801561106d5750600d54155b1561107457565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061109d876111ee565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506110cf908761124b565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546110fe908661128d565b6001600160a01b038916600090815260026020526040902055611120816112ec565b61112a8483611336565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161116f91815260200190565b60405180910390a3505050505050505050565b600654600090819066038d7ea4c6800061119c828261101b565b8210156111b75750506006549266038d7ea4c6800092509050565b90939092509050565b600081836111e15760405162461bcd60e51b81526004016105769190611481565b506000610d8584866117d1565b600080600080600080600080600061120b8a600c54600d5461135a565b925092509250600061121b610ff8565b9050600080600061122e8e8787876113af565b919e509c509a509598509396509194505050505091939550919395565b6000610e4983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d54565b60008061129a8385611894565b905083811015610e495760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610576565b60006112f6610ff8565b9050600061130483836113ff565b30600090815260026020526040902054909150611321908261128d565b30600090815260026020526040902055505050565b600654611343908361124b565b600655600854611353908261128d565b6008555050565b6000808080611374606461136e89896113ff565b9061101b565b90506000611387606461136e8a896113ff565b9050600061139f826113998b8661124b565b9061124b565b9992985090965090945050505050565b60008080806113be88866113ff565b905060006113cc88876113ff565b905060006113da88886113ff565b905060006113ec82611399868661124b565b939b939a50919850919650505050505050565b60008260000361141157506000610495565b600061141d83856117ba565b90508261142a85836117d1565b14610e495760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610576565b600060208083528351808285015260005b818110156114ae57858101830151858201604001528201611492565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114e457600080fd5b50565b600080604083850312156114fa57600080fd5b8235611505816114cf565b946020939093013593505050565b60008060006060848603121561152857600080fd5b8335611533816114cf565b92506020840135611543816114cf565b929592945050506040919091013590565b60405160a0810167ffffffffffffffff8111828210171561158557634e487b7160e01b600052604160045260246000fd5b60405290565b60405160c0810167ffffffffffffffff8111828210171561158557634e487b7160e01b600052604160045260246000fd5b60006112c08083850312156115d057600080fd5b601f84818501126115e057600080fd5b6115e8611554565b9184019180868411156115fa57600080fd5b855b848110156116a45787848201126116135760008081fd5b61161b61158b565b806103c083018a81111561162f5760008081fd5b835b81811015611690578b888201126116485760008081fd5b611650611554565b8060a083018e8111156116635760008081fd5b835b8181101561167d578035845260209384019301611665565b505085525060209093019260a001611631565b50508452506020909201916103c0016115fc565b509695505050505050565b6000602082840312156116c157600080fd5b81358015158114610e4957600080fd5b6000602082840312156116e357600080fd5b8135610e49816114cf565b60006020828403121561170057600080fd5b5035919050565b6000806040838503121561171a57600080fd5b8235611725816114cf565b91506020830135611735816114cf565b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60ff818116838216019081111561049557610495611756565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808202811582820484141761049557610495611756565b6000826117ee57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561049557610495611756565b60006020828403121561181857600080fd5b8151610e49816114cf565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118735784516001600160a01b03168352938301939183019160010161184e565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156104955761049561175656fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d36aeb06662476572e9a7c8e5d1e432f001706d5188819271f2a8ff58fc7d76564736f6c63430008130033

Deployed Bytecode Sourcemap

4160:12232:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6641:83;;;;;;;;;;-1:-1:-1;6711:5:0;;;;;;;;;;;;-1:-1:-1;;;6711:5:0;;;;6641:83;;;;;;;:::i;:::-;;;;;;;;7566:193;;;;;;;;;;-1:-1:-1;7566:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7566:193:0;1023:187:1;5435:41:0;;;;;;;;;;-1:-1:-1;5435:41:0;;;;-1:-1:-1;;;;;5435:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5435:41:0;1215:229:1;6918:95:0;;;;;;;;;;-1:-1:-1;4718:15:0;6918:95;;;1595:25:1;;;1583:2;1568:18;6918:95:0;1449:177:1;7767:446:0;;;;;;;;;;-1:-1:-1;7767:446:0;;;;;:::i;:::-;;:::i;5735:51::-;;;;;;;;;;;;;;;;13524:277;;;;;;;;;;-1:-1:-1;13524:277:0;;;;;:::i;:::-;;:::i;6827:83::-;;;;;;;;;;-1:-1:-1;6827:83:0;;4392:1;5019:36:1;;5007:2;4992:18;6827:83:0;4877:184:1;5483:28:0;;;;;;;;;;-1:-1:-1;5483:28:0;;;;-1:-1:-1;;;;;5483:28:0;;;15868:84;;;;;;;;;;;;;:::i;:::-;;12508:94;;;;;;;;;;-1:-1:-1;12508:94:0;;;;;:::i;:::-;12568:11;:26;;;;;-1:-1:-1;;;12568:26:0;-1:-1:-1;;;;12568:26:0;;;;;;;;;12508:94;12184:85;;;;;;;;;;;;;:::i;7021:138::-;;;;;;;;;;-1:-1:-1;7021:138:0;;;;;:::i;:::-;;:::i;1649:148::-;;;;;;;;;;;;;:::i;5630:44::-;;;;;;;;;;;;;;;;11497:81;;;;;;;;;;;;;:::i;1435:79::-;;;;;;;;;;-1:-1:-1;1473:7:0;1500:6;-1:-1:-1;;;;;1500:6:0;1435:79;;5681:47;;;;;;;;;;;;;;;;6732:87;;;;;;;;;;-1:-1:-1;6804:7:0;;;;;;;;;;;;-1:-1:-1;;;6804:7:0;;;;6732:87;;7167:199;;;;;;;;;;-1:-1:-1;7167:199:0;;;;;:::i;:::-;;:::i;12277:223::-;;;;;;;;;;-1:-1:-1;12277:223:0;;;;;:::i;:::-;;:::i;7374:184::-;;;;;;;;;;-1:-1:-1;7374:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7523:18:0;;;7491:7;7523:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7374:184;1805:244;;;;;;;;;;-1:-1:-1;1805:244:0;;;;;:::i;:::-;;:::i;7566:193::-;7668:4;7690:39;274:10;7713:7;7722:6;7690:8;:39::i;:::-;-1:-1:-1;7747:4:0;7566:193;;;;;:::o;7767:446::-;7899:4;7916:36;7926:6;7934:9;7945:6;7916:9;:36::i;:::-;7963:220;7986:6;274:10;8034:138;8090:6;8034:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8034:19:0;;;;;;:11;:19;;;;;;;;274:10;8034:33;;;;;;;;;;:37;:138::i;:::-;7963:8;:220::i;:::-;-1:-1:-1;8201:4:0;7767:446;;;;;:::o;13524:277::-;13616:8;;;;:11;;;;;:14;;13591:4;;13632:2;-1:-1:-1;13608:27:0;;;;;;13662:1;13690;13646:13;13721:15;13690:1;13662;13721:15;:::i;:::-;-1:-1:-1;;;13757:8:0;;;;;:11;;;;;:14;;13747:7;:24;-1:-1:-1;13789:4:0;;;-1:-1:-1;13524:277:0:o;15868:84::-;1562:6;;-1:-1:-1;;;;;1562:6:0;274:10;1562:22;1554:67;;;;-1:-1:-1;;;1554:67:0;;;;;;;:::i;:::-;;;;;;;;;4718:15:::1;15922:12;:22:::0;15868:84::o;12184:85::-;12226:35;12239:21;12226:12;:35::i;:::-;12184:85::o;7021:138::-;-1:-1:-1;;;;;7134:16:0;;7087:7;7134:16;;;:7;:16;;;;;;7114:37;;:19;:37::i;1649:148::-;1562:6;;-1:-1:-1;;;;;1562:6:0;274:10;1562:22;1554:67;;;;-1:-1:-1;;;1554:67:0;;;;;;;:::i;:::-;1756:1:::1;1740:6:::0;;1719:40:::1;::::0;-1:-1:-1;;;;;1740:6:0;;::::1;::::0;1719:40:::1;::::0;1756:1;;1719:40:::1;1787:1;1770:19:::0;;-1:-1:-1;;;;;;1770:19:0::1;::::0;;1649:148::o;11497:81::-;1562:6;;-1:-1:-1;;;;;1562:6:0;274:10;1562:22;1554:67;;;;-1:-1:-1;;;1554:67:0;;;;;;;:::i;:::-;11552:11:::1;:18:::0;;-1:-1:-1;;;;11552:18:0::1;-1:-1:-1::0;;;11552:18:0::1;::::0;;11497:81::o;7167:199::-;7272:4;7294:42;274:10;7318:9;7329:6;7294:9;:42::i;12277:223::-;12334:28;12365:24;12383:4;12365:9;:24::i;:::-;12334:55;-1:-1:-1;12400:18:0;12450:3;12421:28;12442:7;12334:55;12421:28;:::i;:::-;:32;;;;:::i;:::-;12400:53;;12464:28;12481:10;12464:16;:28::i;:::-;12323:177;;12277:223;:::o;1805:244::-;1562:6;;-1:-1:-1;;;;;1562:6:0;274:10;1562:22;1554:67;;;;-1:-1:-1;;;1554:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1894:22:0;::::1;1886:73;;;::::0;-1:-1:-1;;;1886:73:0;;7757:2:1;1886:73:0::1;::::0;::::1;7739:21:1::0;7796:2;7776:18;;;7769:30;7835:34;7815:18;;;7808:62;-1:-1:-1;;;7886:18:1;;;7879:36;7932:19;;1886:73:0::1;7555:402:1::0;1886:73:0::1;1996:6;::::0;;1975:38:::1;::::0;-1:-1:-1;;;;;1975:38:0;;::::1;::::0;1996:6;::::1;::::0;1975:38:::1;::::0;::::1;2024:6;:17:::0;;-1:-1:-1;;;;;;2024:17:0::1;-1:-1:-1::0;;;;;2024:17:0;;;::::1;::::0;;;::::1;::::0;;1805:244::o;8924:369::-;-1:-1:-1;;;;;9051:19:0;;9043:68;;;;-1:-1:-1;;;9043:68:0;;8164:2:1;9043:68:0;;;8146:21:1;8203:2;8183:18;;;8176:30;8242:34;8222:18;;;8215:62;-1:-1:-1;;;8293:18:1;;;8286:34;8337:19;;9043:68:0;7962:400:1;9043:68:0;-1:-1:-1;;;;;9130:21:0;;9122:68;;;;-1:-1:-1;;;9122:68:0;;8569:2:1;9122:68:0;;;8551:21:1;8608:2;8588:18;;;8581:30;8647:34;8627:18;;;8620:62;-1:-1:-1;;;8698:18:1;;;8691:32;8740:19;;9122:68:0;8367:398:1;9122:68:0;-1:-1:-1;;;;;9201:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9253:32;;1595:25:1;;;9253:32:0;;1568:18:1;9253:32:0;;;;;;;8924:369;;;:::o;9301:2188::-;-1:-1:-1;;;;;9423:18:0;;9415:68;;;;-1:-1:-1;;;9415:68:0;;8972:2:1;9415:68:0;;;8954:21:1;9011:2;8991:18;;;8984:30;9050:34;9030:18;;;9023:62;-1:-1:-1;;;9101:18:1;;;9094:35;9146:19;;9415:68:0;8770:401:1;9415:68:0;-1:-1:-1;;;;;9502:16:0;;9494:64;;;;-1:-1:-1;;;9494:64:0;;9378:2:1;9494:64:0;;;9360:21:1;9417:2;9397:18;;;9390:30;9456:34;9436:18;;;9429:62;-1:-1:-1;;;9507:18:1;;;9500:33;9550:19;;9494:64:0;9176:399:1;9494:64:0;9586:1;9577:6;:10;9569:64;;;;-1:-1:-1;;;9569:64:0;;9782:2:1;9569:64:0;;;9764:21:1;9821:2;9801:18;;;9794:30;9860:34;9840:18;;;9833:62;-1:-1:-1;;;9911:18:1;;;9904:39;9960:19;;9569:64:0;9580:405:1;9569:64:0;1473:7;1500:6;-1:-1:-1;;;;;9650:15:0;;;1500:6;;9650:15;;;;:32;;-1:-1:-1;1473:7:0;1500:6;-1:-1:-1;;;;;9669:13:0;;;1500:6;;9669:13;;9650:32;9646:1183;;;9739:11;;-1:-1:-1;;;9739:11:0;;;;9734:144;;1473:7;1500:6;-1:-1:-1;;;;;9779:15:0;;;1500:6;;9779:15;9771:91;;;;-1:-1:-1;;;9771:91:0;;10192:2:1;9771:91:0;;;10174:21:1;10231:2;10211:18;;;10204:30;10270:34;10250:18;;;10243:62;10341:33;10321:18;;;10314:61;10392:19;;9771:91:0;9990:427:1;9771:91:0;9903:13;;-1:-1:-1;;;;;9897:19:0;;;9903:13;;9897:19;;;;:42;;-1:-1:-1;9926:13:0;;-1:-1:-1;;;;;9920:19:0;;;9926:13;;9920:19;;9897:42;:71;;;;-1:-1:-1;9949:19:0;;-1:-1:-1;;;;;9943:25:0;;;9949:19;;9943:25;;9897:71;:94;;;;-1:-1:-1;;;;;;9972:19:0;;9986:4;9972:19;;9897:94;:118;;;;-1:-1:-1;;;;;;9995:20:0;;10008:6;9995:20;;9897:118;9894:223;;;10054:12;;10044:6;:22;;10036:63;;;;-1:-1:-1;;;10036:63:0;;10624:2:1;10036:63:0;;;10606:21:1;10663:2;10643:18;;;10636:30;10702;10682:18;;;10675:58;10750:18;;10036:63:0;10422:352:1;10036:63:0;10133:28;10164:24;10182:4;10164:9;:24::i;:::-;10242:19;;10133:55;;-1:-1:-1;10218:43:0;;;;;10305:21;;10325:1;10305:21;:::i;:::-;10281:45;10439:7;:18;;;;-1:-1:-1;10451:6:0;;-1:-1:-1;;;10451:6:0;;;;10450:7;10439:18;:43;;;;-1:-1:-1;10469:13:0;;-1:-1:-1;;;;;10461:21:0;;;10469:13;;10461:21;;10439:43;:58;;;;-1:-1:-1;10486:11:0;;-1:-1:-1;;;10486:11:0;;;;10439:58;:87;;;;-1:-1:-1;;;;;;10502:24:0;;;;;;:18;:24;;;;;;;;10501:25;10439:87;:114;;;;-1:-1:-1;;;;;;10531:22:0;;;;;;:18;:22;;;;;;;;10530:23;10439:114;10435:383;;;10574:38;10591:20;10574:16;:38::i;:::-;10660:21;10704:22;;10700:103;;10751:32;10764:18;10751:12;:32::i;:::-;10555:263;10435:383;9684:1145;;9646:1183;-1:-1:-1;;;;;10905:24:0;;10841:12;10905:24;;;:18;:24;;;;;;10856:4;;10905:24;;;:50;;-1:-1:-1;;;;;;10933:22:0;;;;;;:18;:22;;;;;;;;10905:50;10904:102;;;-1:-1:-1;10969:13:0;;-1:-1:-1;;;;;10961:21:0;;;10969:13;;10961:21;;;;:44;;-1:-1:-1;10992:13:0;;-1:-1:-1;;;;;10986:19:0;;;10992:13;;10986:19;;10961:44;10900:528;;;-1:-1:-1;11033:5:0;10900:528;;;11084:13;;-1:-1:-1;;;;;11076:21:0;;;11084:13;;11076:21;:55;;;;-1:-1:-1;11115:15:0;;-1:-1:-1;;;;;11101:30:0;;;11115:15;;11101:30;;11076:55;11073:164;;;11164:14;;11152:9;:26;11212:9;;11197:12;:24;11073:164;11263:13;;-1:-1:-1;;;;;11257:19:0;;;11263:13;;11257:19;:55;;;;-1:-1:-1;11296:15:0;;-1:-1:-1;;;;;11280:32:0;;;11296:15;;11280:32;;11257:55;11253:164;;;11345:15;;11333:9;:27;11394:7;;11379:12;:22;11253:164;11440:41;11455:4;11461:2;11465:6;11473:7;11440:14;:41::i;:::-;9404:2085;9301:2188;;;:::o;2411:224::-;2531:7;2567:12;2559:6;;;;2551:29;;;;-1:-1:-1;;;2551:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2591:9:0;2603:5;2607:1;2603;:5;:::i;:::-;2591:17;2411:224;-1:-1:-1;;;;;2411:224:0:o;12077:99::-;12134:17;;:34;;-1:-1:-1;;;;;12134:17:0;;;;:34;;;;;12161:6;;12134:17;:34;:17;:34;12161:6;12134:17;:34;;;;;;;;;;;;;;;;;;;;;12077:99;:::o;8221:323::-;8316:7;8374;;8363;:18;;8341:110;;;;-1:-1:-1;;;8341:110:0;;11114:2:1;8341:110:0;;;11096:21:1;11153:2;11133:18;;;11126:30;11192:34;11172:18;;;11165:62;-1:-1:-1;;;11243:18:1;;;11236:40;11293:19;;8341:110:0;10912:406:1;8341:110:0;8462:19;8484:10;:8;:10::i;:::-;8462:32;-1:-1:-1;8512:24:0;:7;8462:32;8512:11;:24::i;:::-;8505:31;8221:323;-1:-1:-1;;;8221:323:0:o;11586:483::-;5880:6;:13;;-1:-1:-1;;;;5880:13:0;-1:-1:-1;;;5880:13:0;;;11688:16:::1;::::0;;11702:1:::1;11688:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11688:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11688:16:0::1;11664:40;;11733:4;11715;11720:1;11715:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11715:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11759:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11759:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11715:7;;11759:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11749:4;11754:1;11749:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11749:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11824:15:::1;::::0;11792:62:::1;::::0;11809:4:::1;::::0;11824:15:::1;11842:11:::0;11792:8:::1;:62::i;:::-;11865:15;::::0;:196:::1;::::0;-1:-1:-1;;;11865:196:0;;-1:-1:-1;;;;;11865:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11946:11;;11865:15:::1;::::0;11988:4;;12015::::1;::::0;12035:15:::1;::::0;11865:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5916:6:0;:14;;-1:-1:-1;;;;5916:14:0;;;-1:-1:-1;;;;11586:483:0:o;12610:282::-;12766:7;12761:28;;12775:14;:12;:14::i;:::-;12800:44;12818:6;12826:9;12837:6;12800:17;:44::i;:::-;12860:7;12855:29;;12869:15;8850:17;;8838:9;:29;8893:15;;8878:12;:30;8794:122;15960:164;16002:7;16023:15;16040;16059:19;:17;:19::i;:::-;16022:56;;-1:-1:-1;16022:56:0;-1:-1:-1;16096:20:0;16022:56;;16096:11;:20::i;:::-;16089:27;;;;15960:164;:::o;2897:132::-;2955:7;2982:39;2986:1;2989;2982:39;;;;;;;;;;;;;;;;;:3;:39::i;8552:234::-;8599:9;;:14;:35;;;;-1:-1:-1;8617:12:0;;:17;8599:35;8595:48;;;8552:234::o;8595:48::-;8675:9;;;8655:17;:29;8713:12;;;8695:15;:30;-1:-1:-1;8738:13:0;;;;8762:16;8552:234::o;12900:610::-;13047:15;13077:23;13115:12;13142:23;13180:12;13207:13;13234:19;13245:7;13234:10;:19::i;:::-;-1:-1:-1;;;;;13282:15:0;;;;;;:7;:15;;;;;;13032:221;;-1:-1:-1;13032:221:0;;-1:-1:-1;13032:221:0;;-1:-1:-1;13032:221:0;-1:-1:-1;13032:221:0;-1:-1:-1;13032:221:0;-1:-1:-1;13282:28:0;;13032:221;13282:19;:28::i;:::-;-1:-1:-1;;;;;13264:15:0;;;;;;;:7;:15;;;;;;:46;;;;13342:18;;;;;;;:39;;13365:15;13342:22;:39::i;:::-;-1:-1:-1;;;;;13321:18:0;;;;;;:7;:18;;;;;:60;13392:16;13402:5;13392:9;:16::i;:::-;13419:23;13431:4;13437;13419:11;:23::i;:::-;13475:9;-1:-1:-1;;;;;13458:44:0;13467:6;-1:-1:-1;;;;;13458:44:0;;13486:15;13458:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;13458:44:0;;;;;;;;13021:489;;;;;;12900:610;;;:::o;16132:257::-;16230:7;;16183;;;;4718:15;16298:20;16230:7;4718:15;16298:11;:20::i;:::-;16288:7;:30;16284:61;;;-1:-1:-1;;16328:7:0;;;4718:15;;-1:-1:-1;16132:257:0;-1:-1:-1;16132:257:0:o;16284:61::-;16364:7;;16373;;-1:-1:-1;16132:257:0;-1:-1:-1;16132:257:0:o;3037:223::-;3157:7;3192:12;3185:5;3177:28;;;;-1:-1:-1;;;3177:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3216:9:0;3228:5;3232:1;3228;:5;:::i;14221:620::-;14321:7;14343;14365;14387;14409;14431;14467:23;14492:12;14506:13;14536:45;14548:7;14557:9;;14568:12;;14536:11;:45::i;:::-;14466:115;;;;;;14592:19;14614:10;:8;:10::i;:::-;14592:32;;14636:15;14653:23;14678:12;14707:46;14719:7;14728:4;14734:5;14741:11;14707;:46::i;:::-;14635:118;;-1:-1:-1;14635:118:0;-1:-1:-1;14635:118:0;-1:-1:-1;14804:15:0;;-1:-1:-1;14821:4:0;;-1:-1:-1;14827:5:0;;-1:-1:-1;;;;;14221:620:0;;;;;;;:::o;2267:136::-;2325:7;2352:43;2356:1;2359;2352:43;;;;;;;;;;;;;;;;;:3;:43::i;2080:179::-;2138:7;;2170:5;2174:1;2170;:5;:::i;:::-;2158:17;;2199:1;2194;:6;;2186:46;;;;-1:-1:-1;;;2186:46:0;;12896:2:1;2186:46:0;;;12878:21:1;12935:2;12915:18;;;12908:30;12974:29;12954:18;;;12947:57;13021:18;;2186:46:0;12694:351:1;13810:211:0;13863:19;13885:10;:8;:10::i;:::-;13863:32;-1:-1:-1;13906:13:0;13922:22;:5;13863:32;13922:9;:22::i;:::-;13996:4;13980:22;;;;:7;:22;;;;;;13906:38;;-1:-1:-1;13980:33:0;;13906:38;13980:26;:33::i;:::-;13971:4;13955:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13810:211:0:o;14029:147::-;14107:7;;:17;;14119:4;14107:11;:17::i;:::-;14097:7;:27;14148:10;;:20;;14163:4;14148:14;:20::i;:::-;14135:10;:33;-1:-1:-1;;14029:147:0:o;14849:469::-;15018:7;;;;15112:30;15138:3;15112:21;:7;15124:8;15112:11;:21::i;:::-;:25;;:30::i;:::-;15097:45;-1:-1:-1;15153:13:0;15169:28;15193:3;15169:19;:7;15181:6;15169:11;:19::i;:28::-;15153:44;-1:-1:-1;15208:23:0;15234:28;15153:44;15234:17;:7;15246:4;15234:11;:17::i;:::-;:21;;:28::i;:::-;15208:54;15298:4;;-1:-1:-1;15304:5:0;;-1:-1:-1;14849:469:0;;-1:-1:-1;;;;;14849:469:0:o;15326:534::-;15520:7;;;;15617:24;:7;15629:11;15617;:24::i;:::-;15599:42;-1:-1:-1;15652:12:0;15667:21;:4;15676:11;15667:8;:21::i;:::-;15652:36;-1:-1:-1;15699:13:0;15715:22;:5;15725:11;15715:9;:22::i;:::-;15699:38;-1:-1:-1;15748:23:0;15774:28;15699:38;15774:17;:7;15786:4;15774:11;:17::i;:28::-;15821:7;;;;-1:-1:-1;15847:4:0;;-1:-1:-1;15326:534:0;;-1:-1:-1;;;;;;;15326:534:0:o;2643:246::-;2701:7;2725:1;2730;2725:6;2721:47;;-1:-1:-1;2755:1:0;2748:8;;2721:47;2778:9;2790:5;2794:1;2790;:5;:::i;:::-;2778:17;-1:-1:-1;2823:1:0;2814:5;2818:1;2778:17;2814:5;:::i;:::-;:10;2806:56;;;;-1:-1:-1;;;2806:56:0;;13252:2:1;2806:56:0;;;13234:21:1;13291:2;13271:18;;;13264:30;13330:34;13310:18;;;13303:62;-1:-1:-1;;;13381:18:1;;;13374:31;13422:19;;2806:56:0;13050: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;622:70;567:131;:::o;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;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2224:349::-;2296:2;2290:9;2338:3;2326:16;;2372:18;2357:34;;2393:22;;;2354:62;2351:185;;;2458:10;2453:3;2449:20;2446:1;2439:31;2493:4;2490:1;2483:15;2521:4;2518:1;2511:15;2351:185;2552:2;2545:22;2224:349;:::o;2578:344::-;2645:2;2639:9;2687:3;2675:16;;2721:18;2706:34;;2742:22;;;2703:62;2700:185;;;2807:10;2802:3;2798:20;2795:1;2788:31;2842:4;2839:1;2832:15;2870:4;2867:1;2860:15;2927:1945;3055:6;3086:4;3131:2;3119:9;3110:7;3106:23;3102:32;3099:52;;;3147:1;3144;3137:12;3099:52;3170:4;3217:7;3212:2;3201:9;3197:18;3193:32;3183:60;;3239:1;3236;3229:12;3183:60;3263:22;;:::i;:::-;3333:18;;;;3307:3;3363:19;;;3360:39;;;3395:1;3392;3385:12;3360:39;3419:9;3437:1405;3453:6;3448:3;3445:15;3437:1405;;;3539:7;3534:2;3529:3;3525:12;3521:26;3511:124;;3589:1;3618:2;3614;3607:14;3511:124;3661:17;;:::i;:::-;3704:5;3747:6;3742:3;3738:16;3783:7;3773:8;3770:21;3767:111;;;3832:1;3861:2;3857;3850:14;3767:111;3904:3;3920:847;3938:8;3931:5;3928:19;3920:847;;;4037:7;4032:2;4025:5;4021:14;4017:28;4007:142;;4095:1;4128:2;4124;4117:14;4007:142;4179:22;;:::i;:::-;4231:5;4280:3;4273:5;4269:15;4317:7;4307:8;4304:21;4301:127;;;4374:1;4407:2;4403;4396:14;4301:127;4458:5;4480:194;4498:8;4491:5;4488:19;4480:194;;;4590:19;;4576:34;;4651:4;4640:16;;;;4519;4480:194;;;-1:-1:-1;;4691:20:1;;-1:-1:-1;4748:4:1;4737:16;;;;3970:3;3959:15;3920:847;;;-1:-1:-1;;4780:18:1;;-1:-1:-1;4827:4:1;4818:14;;;;3479:6;3470:16;3437:1405;;;-1:-1:-1;4861:5:1;2927:1945;-1:-1:-1;;;;;;2927:1945:1:o;5274:273::-;5330:6;5383:2;5371:9;5362:7;5358:23;5354:32;5351:52;;;5399:1;5396;5389:12;5351:52;5438:9;5425:23;5491:5;5484:13;5477:21;5470:5;5467:32;5457:60;;5513:1;5510;5503:12;5552:247;5611:6;5664:2;5652:9;5643:7;5639:23;5635:32;5632:52;;;5680:1;5677;5670:12;5632:52;5719:9;5706:23;5738:31;5763:5;5738:31;:::i;5804:180::-;5863:6;5916:2;5904:9;5895:7;5891:23;5887:32;5884:52;;;5932:1;5929;5922:12;5884:52;-1:-1:-1;5955:23:1;;5804:180;-1:-1:-1;5804:180:1:o;5989:388::-;6057:6;6065;6118:2;6106:9;6097:7;6093:23;6089:32;6086:52;;;6134:1;6131;6124:12;6086:52;6173:9;6160:23;6192:31;6217:5;6192:31;:::i;:::-;6242:5;-1:-1:-1;6299:2:1;6284:18;;6271:32;6312:33;6271:32;6312:33;:::i;:::-;6364:7;6354:17;;;5989:388;;;;;:::o;6382:127::-;6443:10;6438:3;6434:20;6431:1;6424:31;6474:4;6471:1;6464:15;6498:4;6495:1;6488:15;6514:127;6575:10;6570:3;6566:20;6563:1;6556:31;6606:4;6603:1;6596:15;6630:4;6627:1;6620:15;6646:148;6734:4;6713:12;;;6727;;;6709:31;;6752:13;;6749:39;;;6768:18;;:::i;6799:356::-;7001:2;6983:21;;;7020:18;;;7013:30;7079:34;7074:2;7059:18;;7052:62;7146:2;7131:18;;6799:356::o;7160:168::-;7233:9;;;7264;;7281:15;;;7275:22;;7261:37;7251:71;;7302:18;;:::i;7333:217::-;7373:1;7399;7389:132;;7443:10;7438:3;7434:20;7431:1;7424:31;7478:4;7475:1;7468:15;7506:4;7503:1;7496:15;7389:132;-1:-1:-1;7535:9:1;;7333:217::o;10779:128::-;10846:9;;;10867:11;;;10864:37;;;10881:18;;:::i;11323:251::-;11393:6;11446:2;11434:9;11425:7;11421:23;11417:32;11414:52;;;11462:1;11459;11452:12;11414:52;11494:9;11488:16;11513:31;11538:5;11513:31;:::i;11579:980::-;11841:4;11889:3;11878:9;11874:19;11920:6;11909:9;11902:25;11946:2;11984:6;11979:2;11968:9;11964:18;11957:34;12027:3;12022:2;12011:9;12007:18;12000:31;12051:6;12086;12080:13;12117:6;12109;12102:22;12155:3;12144:9;12140:19;12133:26;;12194:2;12186:6;12182:15;12168:29;;12215:1;12225:195;12239:6;12236:1;12233:13;12225:195;;;12304:13;;-1:-1:-1;;;;;12300:39:1;12288:52;;12395:15;;;;12360:12;;;;12336:1;12254:9;12225:195;;;-1:-1:-1;;;;;;;12476:32:1;;;;12471:2;12456:18;;12449:60;-1:-1:-1;;;12540:3:1;12525:19;12518:35;12437:3;11579:980;-1:-1:-1;;;11579:980:1:o;12564:125::-;12629:9;;;12650:10;;;12647:36;;;12663:18;;:::i

Swarm Source

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