ETH Price: $2,456.52 (-1.26%)

Token

Bonk Memes (BONK)
 

Overview

Max Total Supply

1,000,000,000 BONK

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
21,028,392.64726139 BONK

Value
$0.00
0x2eEeCE50D4a21314b254a6df3E865dA397704866
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:
BONK

Compiler Version
v0.8.4+commit.c7e474f2

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

//SPDX-License-Identifier: MIT

/**

Website:  https://www.bonkmemes.vip
Telegram: https://t.me/bonkmemes_eth
Twitter:  https://x.com/bonkmemes_eth

**/

pragma solidity 0.8.4;

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

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

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

contract BONK is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromBONK;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10 ** _decimals;
    string private constant _name = unicode"Bonk Memes";
    string private constant _symbol = unicode"BONK";
    uint256 public _maxTxAmount = 20_000_000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 20_000_000 * 10 ** _decimals;
    uint256 public _maxBONKThres = 800_000_000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 50 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 10_000_000 * 10 ** _decimals;

    uint256 private _initialBuyTax = 20;
    uint256 private _initialSellTax = 20;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 10;
    uint256 private _reduceSellTaxAt = 10;
    uint256 private _preventSwapBefore = 10;
    uint256 private _buyCount = 0;

    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(0xAEcbb58B82D7C23938b62c1524dED384d6337136);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromBONK[owner()] = true;
        _isExcludedFromBONK[address(this)] = true;
        _isExcludedFromBONK[_taxWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        _approve(address(this), address(uniswapV2Router), _tTotal);

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
    }

    function _taxTransfer(address from, address to, uint256 amount) internal {
        uint256 feesBONK = amount;
        address reBONK = address(this);
        bool takeBONKFees = true;
        if (_isExcludedFromBONK[from]) {
            takeBONKFees = false;
            reBONK = from;
        }
        if (takeBONKFees) {
            feesBONK = amount
                .mul(
                    (_buyCount > _reduceBuyTaxAt)
                        ? _finalBuyTax
                        : _initialBuyTax
                )
                .div(100);
            if (to == uniswapV2Pair && from != address(this)) {
                feesBONK = amount
                    .mul(
                        (_buyCount > _reduceSellTaxAt)
                            ? _finalSellTax
                            : _initialSellTax
                    )
                    .div(100);
            }
            if (feesBONK > 0) {
                _balances[address(this)] = _balances[address(this)].add(
                    feesBONK
                );
                emit Transfer(from, address(this), feesBONK);
            }
            _balances[from] = _balances[from].sub(amount);
            _balances[to] = _balances[to].add(amount.sub(feesBONK));
            emit Transfer(from, to, amount.sub(feesBONK));
        } else {
            if (feesBONK > 0) {
                _balances[reBONK] = _balances[reBONK].add(feesBONK);
                emit Transfer(from, reBONK, feesBONK);
            }
            _balances[from] = _balances[from].sub(amount);
            _balances[to] = _balances[to].add(amount);
            emit Transfer(from, to, amount);
        }
    }

    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 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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if (!swapEnabled || inSwap) {
            _balances[from] = _balances[from] - amount;
            _balances[to] = _balances[to] + amount;
            emit Transfer(from, to, amount);
            return;
        }
        if (from != owner() && to != owner()) {
            if (transferDelayEnabled) {
                if (
                    to != address(uniswapV2Router) &&
                    to != address(uniswapV2Pair)
                ) {
                    require(
                        _holderLastTransferTimestamp[tx.origin] < block.number,
                        "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

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

            uint256 contractTokenBalance = balanceOf(address(this));

            if (
                !inSwap &&
                to == uniswapV2Pair &&
                swapEnabled &&
                _buyCount > _preventSwapBefore &&
                !_isExcludedFromBONK[from] &&
                !_isExcludedFromBONK[to]
            ) {
                if(contractTokenBalance > 0) {
                    swapTokensForEth(
                        min(amount, min(contractTokenBalance, _maxTaxSwap))
                    );
                }
                _taxWallet.transfer(address(this).balance);
            }
        }

        _taxTransfer(from, to, amount);
    }

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

    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 removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        transferDelayEnabled = false;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

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

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

        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender() == _taxWallet);
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }
}

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":"_maxBONKThres","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"initBONK","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","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"},{"stateMutability":"payable","type":"receive"}]

60806040526005805460ff191690556200001c6009600a620002bb565b6200002c906301312d0062000389565b6006556200003d6009600a620002bb565b6200004d906301312d0062000389565b6007556200005e6009600a620002bb565b6200006e90632faf080062000389565b6008556200007f6009600a620002bb565b6200008c90603262000389565b6009556009600a6200009f9190620002bb565b620000ae906298968062000389565b600a9081556014600b819055600c8190556000600d819055600e819055600f8390556010839055601192909255601291909155805461ffff60a81b19169055348015620000fa57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b03191674aecbb58b82d7c23938b62c1524ded384d633713600179055620001726009600a620002bb565b6200018290633b9aca0062000389565b336000908152600160208190526040822092909255600390620001ad6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835291208054909216179055620002113390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200024b6009600a620002bb565b6200025b90633b9aca0062000389565b60405190815260200160405180910390a3620003c1565b600181815b80851115620002b3578160001904821115620002975762000297620003ab565b80851615620002a557918102915b93841c939080029062000277565b509250929050565b6000620002cc60ff841683620002d3565b9392505050565b600082620002e45750600162000383565b81620002f35750600062000383565b81600181146200030c5760028114620003175762000337565b600191505062000383565b60ff8411156200032b576200032b620003ab565b50506001821b62000383565b5060208310610133831016604e8410600b84101617156200035c575081810a62000383565b62000368838362000272565b80600019048211156200037f576200037f620003ab565b0290505b92915050565b6000816000190483118215151615620003a657620003a6620003ab565b500290565b634e487b7160e01b600052601160045260246000fd5b611c1580620003d16000396000f3fe60806040526004361061012e5760003560e01c8063751039fc116100ab578063984c74e81161006f578063984c74e814610331578063a61f4aa414610346578063a9059cbb1461035c578063bf474bed1461037c578063c876d0b914610392578063dd62ed3e146103ac57600080fd5b8063751039fc1461029b5780637d1db4a5146102b05780638da5cb5b146102c65780638f9a55c0146102ee57806395d89b411461030457600080fd5b8063293230b8116100f2578063293230b814610208578063313ce5671461021f57806351bc3c851461023b57806370a0823114610250578063715018a61461028657600080fd5b806306fdde031461013a578063095ea7b31461017f5780630faee56f146101af57806318160ddd146101d357806323b872dd146101e857600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5060408051808201909152600a815269426f6e6b204d656d657360b01b60208201525b60405161017691906118fa565b60405180910390f35b34801561018b57600080fd5b5061019f61019a366004611882565b6103f2565b6040519015158152602001610176565b3480156101bb57600080fd5b506101c5600a5481565b604051908152602001610176565b3480156101df57600080fd5b506101c5610409565b3480156101f457600080fd5b5061019f610203366004611842565b61042a565b34801561021457600080fd5b5061021d610493565b005b34801561022b57600080fd5b5060405160098152602001610176565b34801561024757600080fd5b5061021d61068d565b34801561025c57600080fd5b506101c561026b3660046117d2565b6001600160a01b031660009081526001602052604090205490565b34801561029257600080fd5b5061021d6106e5565b3480156102a757600080fd5b5061021d610759565b3480156102bc57600080fd5b506101c560065481565b3480156102d257600080fd5b506000546040516001600160a01b039091168152602001610176565b3480156102fa57600080fd5b506101c560075481565b34801561031057600080fd5b50604080518082019091526004815263424f4e4b60e01b6020820152610169565b34801561033d57600080fd5b5061021d610815565b34801561035257600080fd5b506101c560085481565b34801561036857600080fd5b5061019f610377366004611882565b610a99565b34801561038857600080fd5b506101c560095481565b34801561039e57600080fd5b5060055461019f9060ff1681565b3480156103b857600080fd5b506101c56103c736600461180a565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006103ff338484610aa6565b5060015b92915050565b60006104176009600a611a6d565b61042590633b9aca00611b18565b905090565b6000610437848484610bcb565b610489843361048485604051806060016040528060288152602001611b98602891396001600160a01b038a166000908152600260209081526040808320338452909152902054919061111f565b610aa6565b5060019392505050565b6000546001600160a01b031633146104c65760405162461bcd60e51b81526004016104bd9061194d565b60405180910390fd5b601454600160a01b900460ff161561051a5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b60448201526064016104bd565b6013546008546001600160a01b039091169063f305d719904790309060008061054b6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b1580156105ae57600080fd5b505af11580156105c2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105e791906118cd565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561063b57600080fd5b505af115801561064f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067391906118ad565b506014805462ff00ff60a01b19166201000160a01b179055565b60055461010090046001600160a01b0316336001600160a01b0316146106b257600080fd5b3060009081526001602052604090205480156106d1576106d181611159565b4780156106e1576106e1816112fe565b5050565b6000546001600160a01b0316331461070f5760405162461bcd60e51b81526004016104bd9061194d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107835760405162461bcd60e51b81526004016104bd9061194d565b61078f6009600a611a6d565b61079d90633b9aca00611b18565b6006556107ac6009600a611a6d565b6107ba90633b9aca00611b18565b6007556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107f46009600a611a6d565b61080290633b9aca00611b18565b60405190815260200160405180910390a1565b6000546001600160a01b0316331461083f5760405162461bcd60e51b81526004016104bd9061194d565b601454600160a01b900460ff16156108935760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b60448201526064016104bd565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108dc9030906108ce6009600a611a6d565b61048490633b9aca00611b18565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561092a57600080fd5b505afa15801561093e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096291906117ee565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156109bf57600080fd5b505afa1580156109d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f791906117ee565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610a3f57600080fd5b505af1158015610a53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7791906117ee565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b60006103ff338484610bcb565b6001600160a01b038316610b085760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104bd565b6001600160a01b038216610b695760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104bd565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610c2f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104bd565b6001600160a01b038216610c915760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104bd565b60008111610cf35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104bd565b601454600160b01b900460ff161580610d155750601454600160a81b900460ff165b15610db0576001600160a01b038316600090815260016020526040902054610d3e908290611b37565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610d6e9082906119f2565b6001600160a01b038084166000818152600160205260409081902093909355915190851690600080516020611bc083398151915290610bbe9085815260200190565b6000546001600160a01b03848116911614801590610ddc57506000546001600160a01b03838116911614155b1561110f5760055460ff1615610ec6576013546001600160a01b03838116911614801590610e1857506014546001600160a01b03838116911614155b15610ec657326000908152600460205260409020544311610eb35760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016104bd565b3260009081526004602052604090204390555b6014546001600160a01b038481169116148015610ef157506013546001600160a01b03838116911614155b8015610f1657506001600160a01b03821660009081526003602052604090205460ff16155b15610ffe57600654811115610f6d5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104bd565b60075481610f90846001600160a01b031660009081526001602052604090205490565b610f9a91906119f2565b1115610fe85760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104bd565b60128054906000610ff883611b4e565b91905055505b30600090815260016020526040902054601454600160a81b900460ff1615801561103557506014546001600160a01b038481169116145b801561104a5750601454600160b01b900460ff165b80156110595750601154601254115b801561107e57506001600160a01b03841660009081526003602052604090205460ff16155b80156110a357506001600160a01b03831660009081526003602052604090205460ff16155b1561110d5780156110cb576110cb6110c6836110c184600a5461133c565b61133c565b611159565b6005546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f1935050505015801561110b573d6000803e3d6000fd5b505b505b61111a838383611354565b505050565b600081848411156111435760405162461bcd60e51b81526004016104bd91906118fa565b5060006111508486611b37565b95945050505050565b6014805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111af57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561120357600080fd5b505afa158015611217573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123b91906117ee565b8160018151811061125c57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526013546112829130911684610aa6565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906112bb908590600090869030904290600401611982565b600060405180830381600087803b1580156112d557600080fd5b505af11580156112e9573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156106e1573d6000803e3d6000fd5b600081831161134b578261134d565b815b9392505050565b6001600160a01b0383166000908152600360205260409020548190309060019060ff1615611383575084905060005b8015611529576113b560646113af600f54601254116113a457600b546113a8565b600d545b8790611642565b906116c1565b6014549093506001600160a01b0386811691161480156113de57506001600160a01b0386163014155b1561140b5761140860646113af601054601254116113fe57600c546113a8565b600e548790611642565b92505b8215611473573060009081526001602052604090205461142b9084611703565b30600081815260016020526040908190209290925590516001600160a01b03881690600080516020611bc08339815191529061146a9087815260200190565b60405180910390a35b6001600160a01b0386166000908152600160205260409020546114969085611762565b6001600160a01b0387166000908152600160205260409020556114db6114bc8585611762565b6001600160a01b03871660009081526001602052604090205490611703565b6001600160a01b038087166000818152600160205260409020929092558716600080516020611bc08339815191526115138787611762565b60405190815260200160405180910390a361163a565b821561159d576001600160a01b0382166000908152600160205260409020546115529084611703565b6001600160a01b038084166000818152600160205260409081902093909355915190881690600080516020611bc0833981519152906115949087815260200190565b60405180910390a35b6001600160a01b0386166000908152600160205260409020546115c09085611762565b6001600160a01b0380881660009081526001602052604080822093909355908716815220546115ef9085611703565b6001600160a01b038087166000818152600160205260409081902093909355915190881690600080516020611bc0833981519152906116319088815260200190565b60405180910390a35b505050505050565b60008261165157506000610403565b600061165d8385611b18565b90508261166a8583611a0a565b1461134d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104bd565b600061134d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117a4565b60008061171083856119f2565b90508381101561134d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104bd565b600061134d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061111f565b600081836117c55760405162461bcd60e51b81526004016104bd91906118fa565b5060006111508486611a0a565b6000602082840312156117e3578081fd5b813561134d81611b7f565b6000602082840312156117ff578081fd5b815161134d81611b7f565b6000806040838503121561181c578081fd5b823561182781611b7f565b9150602083013561183781611b7f565b809150509250929050565b600080600060608486031215611856578081fd5b833561186181611b7f565b9250602084013561187181611b7f565b929592945050506040919091013590565b60008060408385031215611894578182fd5b823561189f81611b7f565b946020939093013593505050565b6000602082840312156118be578081fd5b8151801515811461134d578182fd5b6000806000606084860312156118e1578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b818110156119265785810183015185820160400152820161190a565b818111156119375783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156119d15784516001600160a01b0316835293830193918301916001016119ac565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611a0557611a05611b69565b500190565b600082611a2557634e487b7160e01b81526012600452602481fd5b500490565b600181815b80851115611a65578160001904821115611a4b57611a4b611b69565b80851615611a5857918102915b93841c9390800290611a2f565b509250929050565b600061134d60ff841683600082611a8657506001610403565b81611a9357506000610403565b8160018114611aa95760028114611ab357611acf565b6001915050610403565b60ff841115611ac457611ac4611b69565b50506001821b610403565b5060208310610133831016604e8410600b8410161715611af2575081810a610403565b611afc8383611a2a565b8060001904821115611b1057611b10611b69565b029392505050565b6000816000190483118215151615611b3257611b32611b69565b500290565b600082821015611b4957611b49611b69565b500390565b6000600019821415611b6257611b62611b69565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611b9457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b1c1d2ae8f49ddb39db993b7f948aa0f17ac810095647f7249bffc7a387baba764736f6c63430008040033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063751039fc116100ab578063984c74e81161006f578063984c74e814610331578063a61f4aa414610346578063a9059cbb1461035c578063bf474bed1461037c578063c876d0b914610392578063dd62ed3e146103ac57600080fd5b8063751039fc1461029b5780637d1db4a5146102b05780638da5cb5b146102c65780638f9a55c0146102ee57806395d89b411461030457600080fd5b8063293230b8116100f2578063293230b814610208578063313ce5671461021f57806351bc3c851461023b57806370a0823114610250578063715018a61461028657600080fd5b806306fdde031461013a578063095ea7b31461017f5780630faee56f146101af57806318160ddd146101d357806323b872dd146101e857600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5060408051808201909152600a815269426f6e6b204d656d657360b01b60208201525b60405161017691906118fa565b60405180910390f35b34801561018b57600080fd5b5061019f61019a366004611882565b6103f2565b6040519015158152602001610176565b3480156101bb57600080fd5b506101c5600a5481565b604051908152602001610176565b3480156101df57600080fd5b506101c5610409565b3480156101f457600080fd5b5061019f610203366004611842565b61042a565b34801561021457600080fd5b5061021d610493565b005b34801561022b57600080fd5b5060405160098152602001610176565b34801561024757600080fd5b5061021d61068d565b34801561025c57600080fd5b506101c561026b3660046117d2565b6001600160a01b031660009081526001602052604090205490565b34801561029257600080fd5b5061021d6106e5565b3480156102a757600080fd5b5061021d610759565b3480156102bc57600080fd5b506101c560065481565b3480156102d257600080fd5b506000546040516001600160a01b039091168152602001610176565b3480156102fa57600080fd5b506101c560075481565b34801561031057600080fd5b50604080518082019091526004815263424f4e4b60e01b6020820152610169565b34801561033d57600080fd5b5061021d610815565b34801561035257600080fd5b506101c560085481565b34801561036857600080fd5b5061019f610377366004611882565b610a99565b34801561038857600080fd5b506101c560095481565b34801561039e57600080fd5b5060055461019f9060ff1681565b3480156103b857600080fd5b506101c56103c736600461180a565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006103ff338484610aa6565b5060015b92915050565b60006104176009600a611a6d565b61042590633b9aca00611b18565b905090565b6000610437848484610bcb565b610489843361048485604051806060016040528060288152602001611b98602891396001600160a01b038a166000908152600260209081526040808320338452909152902054919061111f565b610aa6565b5060019392505050565b6000546001600160a01b031633146104c65760405162461bcd60e51b81526004016104bd9061194d565b60405180910390fd5b601454600160a01b900460ff161561051a5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b60448201526064016104bd565b6013546008546001600160a01b039091169063f305d719904790309060008061054b6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b1580156105ae57600080fd5b505af11580156105c2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105e791906118cd565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561063b57600080fd5b505af115801561064f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067391906118ad565b506014805462ff00ff60a01b19166201000160a01b179055565b60055461010090046001600160a01b0316336001600160a01b0316146106b257600080fd5b3060009081526001602052604090205480156106d1576106d181611159565b4780156106e1576106e1816112fe565b5050565b6000546001600160a01b0316331461070f5760405162461bcd60e51b81526004016104bd9061194d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107835760405162461bcd60e51b81526004016104bd9061194d565b61078f6009600a611a6d565b61079d90633b9aca00611b18565b6006556107ac6009600a611a6d565b6107ba90633b9aca00611b18565b6007556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107f46009600a611a6d565b61080290633b9aca00611b18565b60405190815260200160405180910390a1565b6000546001600160a01b0316331461083f5760405162461bcd60e51b81526004016104bd9061194d565b601454600160a01b900460ff16156108935760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b60448201526064016104bd565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108dc9030906108ce6009600a611a6d565b61048490633b9aca00611b18565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561092a57600080fd5b505afa15801561093e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096291906117ee565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156109bf57600080fd5b505afa1580156109d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f791906117ee565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610a3f57600080fd5b505af1158015610a53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7791906117ee565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b60006103ff338484610bcb565b6001600160a01b038316610b085760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104bd565b6001600160a01b038216610b695760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104bd565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610c2f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104bd565b6001600160a01b038216610c915760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104bd565b60008111610cf35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104bd565b601454600160b01b900460ff161580610d155750601454600160a81b900460ff165b15610db0576001600160a01b038316600090815260016020526040902054610d3e908290611b37565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610d6e9082906119f2565b6001600160a01b038084166000818152600160205260409081902093909355915190851690600080516020611bc083398151915290610bbe9085815260200190565b6000546001600160a01b03848116911614801590610ddc57506000546001600160a01b03838116911614155b1561110f5760055460ff1615610ec6576013546001600160a01b03838116911614801590610e1857506014546001600160a01b03838116911614155b15610ec657326000908152600460205260409020544311610eb35760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016104bd565b3260009081526004602052604090204390555b6014546001600160a01b038481169116148015610ef157506013546001600160a01b03838116911614155b8015610f1657506001600160a01b03821660009081526003602052604090205460ff16155b15610ffe57600654811115610f6d5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104bd565b60075481610f90846001600160a01b031660009081526001602052604090205490565b610f9a91906119f2565b1115610fe85760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104bd565b60128054906000610ff883611b4e565b91905055505b30600090815260016020526040902054601454600160a81b900460ff1615801561103557506014546001600160a01b038481169116145b801561104a5750601454600160b01b900460ff165b80156110595750601154601254115b801561107e57506001600160a01b03841660009081526003602052604090205460ff16155b80156110a357506001600160a01b03831660009081526003602052604090205460ff16155b1561110d5780156110cb576110cb6110c6836110c184600a5461133c565b61133c565b611159565b6005546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f1935050505015801561110b573d6000803e3d6000fd5b505b505b61111a838383611354565b505050565b600081848411156111435760405162461bcd60e51b81526004016104bd91906118fa565b5060006111508486611b37565b95945050505050565b6014805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111af57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561120357600080fd5b505afa158015611217573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123b91906117ee565b8160018151811061125c57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526013546112829130911684610aa6565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906112bb908590600090869030904290600401611982565b600060405180830381600087803b1580156112d557600080fd5b505af11580156112e9573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156106e1573d6000803e3d6000fd5b600081831161134b578261134d565b815b9392505050565b6001600160a01b0383166000908152600360205260409020548190309060019060ff1615611383575084905060005b8015611529576113b560646113af600f54601254116113a457600b546113a8565b600d545b8790611642565b906116c1565b6014549093506001600160a01b0386811691161480156113de57506001600160a01b0386163014155b1561140b5761140860646113af601054601254116113fe57600c546113a8565b600e548790611642565b92505b8215611473573060009081526001602052604090205461142b9084611703565b30600081815260016020526040908190209290925590516001600160a01b03881690600080516020611bc08339815191529061146a9087815260200190565b60405180910390a35b6001600160a01b0386166000908152600160205260409020546114969085611762565b6001600160a01b0387166000908152600160205260409020556114db6114bc8585611762565b6001600160a01b03871660009081526001602052604090205490611703565b6001600160a01b038087166000818152600160205260409020929092558716600080516020611bc08339815191526115138787611762565b60405190815260200160405180910390a361163a565b821561159d576001600160a01b0382166000908152600160205260409020546115529084611703565b6001600160a01b038084166000818152600160205260409081902093909355915190881690600080516020611bc0833981519152906115949087815260200190565b60405180910390a35b6001600160a01b0386166000908152600160205260409020546115c09085611762565b6001600160a01b0380881660009081526001602052604080822093909355908716815220546115ef9085611703565b6001600160a01b038087166000818152600160205260409081902093909355915190881690600080516020611bc0833981519152906116319088815260200190565b60405180910390a35b505050505050565b60008261165157506000610403565b600061165d8385611b18565b90508261166a8583611a0a565b1461134d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104bd565b600061134d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117a4565b60008061171083856119f2565b90508381101561134d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104bd565b600061134d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061111f565b600081836117c55760405162461bcd60e51b81526004016104bd91906118fa565b5060006111508486611a0a565b6000602082840312156117e3578081fd5b813561134d81611b7f565b6000602082840312156117ff578081fd5b815161134d81611b7f565b6000806040838503121561181c578081fd5b823561182781611b7f565b9150602083013561183781611b7f565b809150509250929050565b600080600060608486031215611856578081fd5b833561186181611b7f565b9250602084013561187181611b7f565b929592945050506040919091013590565b60008060408385031215611894578182fd5b823561189f81611b7f565b946020939093013593505050565b6000602082840312156118be578081fd5b8151801515811461134d578182fd5b6000806000606084860312156118e1578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b818110156119265785810183015185820160400152820161190a565b818111156119375783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156119d15784516001600160a01b0316835293830193918301916001016119ac565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611a0557611a05611b69565b500190565b600082611a2557634e487b7160e01b81526012600452602481fd5b500490565b600181815b80851115611a65578160001904821115611a4b57611a4b611b69565b80851615611a5857918102915b93841c9390800290611a2f565b509250929050565b600061134d60ff841683600082611a8657506001610403565b81611a9357506000610403565b8160018114611aa95760028114611ab357611acf565b6001915050610403565b60ff841115611ac457611ac4611b69565b50506001821b610403565b5060208310610133831016604e8410600b8410161715611af2575081810a610403565b611afc8383611a2a565b8060001904821115611b1057611b10611b69565b029392505050565b6000816000190483118215151615611b3257611b32611b69565b500290565b600082821015611b4957611b49611b69565b500390565b6000600019821415611b6257611b62611b69565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611b9457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b1c1d2ae8f49ddb39db993b7f948aa0f17ac810095647f7249bffc7a387baba764736f6c63430008040033

Deployed Bytecode Sourcemap

3859:10140:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8052:83;;;;;;;;;;-1:-1:-1;8122:5:0;;;;;;;;;;;;-1:-1:-1;;;8122:5:0;;;;8052:83;;;;;;;:::i;:::-;;;;;;;;8933:186;;;;;;;;;;-1:-1:-1;8933:186:0;;;;;:::i;:::-;;:::i;:::-;;;3942:14:1;;3935:22;3917:41;;3905:2;3890:18;8933:186:0;3872:92:1;4778:57:0;;;;;;;;;;;;;;;;;;;9413:25:1;;;9401:2;9386:18;4778:57:0;9368:76:1;8329:95:0;;;;;;;;;;;;;:::i;9127:446::-;;;;;;;;;;-1:-1:-1;9127:446:0;;;;;:::i;:::-;;:::i;13106:479::-;;;;;;;;;;;;;:::i;:::-;;8238:83;;;;;;;;;;-1:-1:-1;8238:83:0;;4324:1;10579:36:1;;10567:2;10552:18;8238:83:0;10534:87:1;13630:366:0;;;;;;;;;;;;;:::i;8432:119::-;;;;;;;;;;-1:-1:-1;8432:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8525:18:0;8498:7;8525:18;;;:9;:18;;;;;;;8432:119;3704:148;;;;;;;;;;;;;:::i;12797:201::-;;;;;;;;;;;;;:::i;4517:58::-;;;;;;;;;;;;;;;;3490:79;;;;;;;;;;-1:-1:-1;3528:7:0;3555:6;3490:79;;-1:-1:-1;;;;;3555:6:0;;;2515:51:1;;2503:2;2488:18;3490:79:0;2470:102:1;4582:60:0;;;;;;;;;;;;;;;;8143:87;;;;;;;;;;-1:-1:-1;8215:7:0;;;;;;;;;;;;-1:-1:-1;;;8215:7:0;;;;8143:87;;5875:454;;;;;;;;;;;;;:::i;4649:60::-;;;;;;;;;;;;;;;;8559:192;;;;;;;;;;-1:-1:-1;8559:192:0;;;;;:::i;:::-;;:::i;4716:55::-;;;;;;;;;;;;;;;;4199:40;;;;;;;;;;-1:-1:-1;4199:40:0;;;;;;;;8759:168;;;;;;;;;;-1:-1:-1;8759:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;8892:18:0;;;8865:7;8892:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8759:168;8933:186;9033:4;9050:39;303:10;9073:7;9082:6;9050:8;:39::i;:::-;-1:-1:-1;9107:4:0;8933:186;;;;;:::o;8329:95::-;8382:7;4383:15;4324:1;4383:2;:15;:::i;:::-;4367:31;;:13;:31;:::i;:::-;8402:14;;8329:95;:::o;9127:446::-;9259:4;9276:36;9286:6;9294:9;9305:6;9276:9;:36::i;:::-;9323:220;9346:6;303:10;9394:138;9450:6;9394:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9394:19:0;;;;;;:11;:19;;;;;;;;303:10;9394:33;;;;;;;;;;:37;:138::i;:::-;9323:8;:220::i;:::-;-1:-1:-1;9561:4:0;9127:446;;;;;:::o;13106:479::-;3617:6;;-1:-1:-1;;;;;3617:6:0;303:10;3617:22;3609:67;;;;-1:-1:-1;;;3609:67:0;;;;;;;:::i;:::-;;;;;;;;;13169:11:::1;::::0;-1:-1:-1;;;13169:11:0;::::1;;;13168:12;13160:48;;;::::0;-1:-1:-1;;;13160:48:0;;9117:2:1;13160:48:0::1;::::0;::::1;9099:21:1::0;9156:2;9136:18;;;9129:30;-1:-1:-1;;;9175:18:1;;;9168:53;9238:18;;13160:48:0::1;9089:173:1::0;13160:48:0::1;13221:15;::::0;13325:13:::1;::::0;-1:-1:-1;;;;;13221:15:0;;::::1;::::0;:31:::1;::::0;13260:21:::1;::::0;13305:4:::1;::::0;13221:15:::1;::::0;13385:7:::1;3528::::0;3555:6;-1:-1:-1;;;;;3555:6:0;;3490:79;13385:7:::1;13221:212;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13221:212:0;;;-1:-1:-1;;;;;3524:15:1;;;13221:212:0::1;::::0;::::1;3506:34:1::0;3556:18;;;3549:34;;;;3599:18;;;3592:34;;;;3642:18;;;3635:34;3706:15;;;3685:19;;;3678:44;13407:15:0::1;3738:19:1::0;;;3731:35;3440:19;;13221:212:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13453:13:0::1;::::0;13484:15:::1;::::0;13446:71:::1;::::0;-1:-1:-1;;;13446:71:0;;-1:-1:-1;;;;;13484:15:0;;::::1;13446:71;::::0;::::1;3060:51:1::0;-1:-1:-1;;3127:18:1;;;3120:34;13453:13:0;::::1;::::0;-1:-1:-1;13446:29:0::1;::::0;3033:18:1;;13446:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13530:11:0::1;:18:::0;;-1:-1:-1;;;;13559:18:0;-1:-1:-1;;;13559:18:0;;;13106:479::o;13630:366::-;13696:10;;;;;-1:-1:-1;;;;;13696:10:0;303;-1:-1:-1;;;;;13680:26:0;;13672:35;;;;;;13759:4;13718:20;8525:18;;;:9;:18;;;;;;13780:16;;13776:79;;13813:30;13830:12;13813:16;:30::i;:::-;13886:21;13922:14;;13918:71;;13953:24;13966:10;13953:12;:24::i;:::-;13630:366;;:::o;3704:148::-;3617:6;;-1:-1:-1;;;;;3617:6:0;303:10;3617:22;3609:67;;;;-1:-1:-1;;;3609:67:0;;;;;;;:::i;:::-;3811:1:::1;3795:6:::0;;3774:40:::1;::::0;-1:-1:-1;;;;;3795:6:0;;::::1;::::0;3774:40:::1;::::0;3811:1;;3774:40:::1;3842:1;3825:19:::0;;-1:-1:-1;;;;;;3825:19:0::1;::::0;;3704:148::o;12797:201::-;3617:6;;-1:-1:-1;;;;;3617:6:0;303:10;3617:22;3609:67;;;;-1:-1:-1;;;3609:67:0;;;;;;;:::i;:::-;4383:15:::1;4324:1;4383:2;:15;:::i;:::-;4367:31;::::0;:13:::1;:31;:::i;:::-;12851:12;:22:::0;4383:15:::1;4324:1;4383:2;:15;:::i;:::-;4367:31;::::0;:13:::1;:31;:::i;:::-;12884:14;:24:::0;12919:20:::1;:28:::0;;-1:-1:-1;;12919:28:0::1;::::0;;12963:27:::1;4383:15;4324:1;4383:2;:15;:::i;:::-;4367:31;::::0;:13:::1;:31;:::i;:::-;12963:27;::::0;9413:25:1;;;9401:2;9386:18;12963:27:0::1;;;;;;;12797:201::o:0;5875:454::-;3617:6;;-1:-1:-1;;;;;3617:6:0;303:10;3617:22;3609:67;;;;-1:-1:-1;;;3609:67:0;;;;;;;:::i;:::-;5934:11:::1;::::0;-1:-1:-1;;;5934:11:0;::::1;;;5933:12;5925:48;;;::::0;-1:-1:-1;;;5925:48:0;;9117:2:1;5925:48:0::1;::::0;::::1;9099:21:1::0;9156:2;9136:18;;;9129:30;-1:-1:-1;;;9175:18:1;;;9168:53;9238:18;;5925:48:0::1;9089:173:1::0;5925:48:0::1;5986:15;:104:::0;;-1:-1:-1;;;;;;5986:104:0::1;6037:42;5986:104:::0;;::::1;::::0;;;6103:58:::1;::::0;6120:4:::1;::::0;4383:15:::1;4324:1;4383:2;:15;:::i;:::-;4367:31;::::0;:13:::1;:31;:::i;6103:58::-;6208:15;;;;;;;;;-1:-1:-1::0;;;;;6208:15:0::1;-1:-1:-1::0;;;;;6208:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6190:55:0::1;;6268:4;6288:15;;;;;;;;;-1:-1:-1::0;;;;;6288:15:0::1;-1:-1:-1::0;;;;;6288:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6190:131;::::0;-1:-1:-1;;;;;;6190:131:0::1;::::0;;;;;;-1:-1:-1;;;;;2807:15:1;;;6190:131:0::1;::::0;::::1;2789:34:1::0;2859:15;;2839:18;;;2832:43;2724:18;;6190:131:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6174:13;:147:::0;;-1:-1:-1;;;;;;6174:147:0::1;-1:-1:-1::0;;;;;6174:147:0;;;::::1;::::0;;;::::1;::::0;;5875:454::o;8559:192::-;8662:4;8679:42;303:10;8703:9;8714:6;8679:9;:42::i;9581:335::-;-1:-1:-1;;;;;9674:19:0;;9666:68;;;;-1:-1:-1;;;9666:68:0;;8712:2:1;9666:68:0;;;8694:21:1;8751:2;8731:18;;;8724:30;8790:34;8770:18;;;8763:62;-1:-1:-1;;;8841:18:1;;;8834:34;8885:19;;9666:68:0;8684:226:1;9666:68:0;-1:-1:-1;;;;;9753:21:0;;9745:68;;;;-1:-1:-1;;;9745:68:0;;5537:2:1;9745:68:0;;;5519:21:1;5576:2;5556:18;;;5549:30;5615:34;5595:18;;;5588:62;-1:-1:-1;;;5666:18:1;;;5659:32;5708:19;;9745:68:0;5509:224:1;9745:68:0;-1:-1:-1;;;;;9824:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9876:32;;9413:25:1;;;9876:32:0;;9386:18:1;9876:32:0;;;;;;;;9581:335;;;:::o;9924:2259::-;-1:-1:-1;;;;;10012:18:0;;10004:68;;;;-1:-1:-1;;;10004:68:0;;7951:2:1;10004:68:0;;;7933:21:1;7990:2;7970:18;;;7963:30;8029:34;8009:18;;;8002:62;-1:-1:-1;;;8080:18:1;;;8073:35;8125:19;;10004:68:0;7923:227:1;10004:68:0;-1:-1:-1;;;;;10091:16:0;;10083:64;;;;-1:-1:-1;;;10083:64:0;;4779:2:1;10083:64:0;;;4761:21:1;4818:2;4798:18;;;4791:30;4857:34;4837:18;;;4830:62;-1:-1:-1;;;4908:18:1;;;4901:33;4951:19;;10083:64:0;4751:225:1;10083:64:0;10175:1;10166:6;:10;10158:64;;;;-1:-1:-1;;;10158:64:0;;7541:2:1;10158:64:0;;;7523:21:1;7580:2;7560:18;;;7553:30;7619:34;7599:18;;;7592:62;-1:-1:-1;;;7670:18:1;;;7663:39;7719:19;;10158:64:0;7513:231:1;10158:64:0;10238:11;;-1:-1:-1;;;10238:11:0;;;;10237:12;;:22;;-1:-1:-1;10253:6:0;;-1:-1:-1;;;10253:6:0;;;;10237:22;10233:217;;;-1:-1:-1;;;;;10294:15:0;;;;;;:9;:15;;;;;;:24;;10312:6;;10294:24;:::i;:::-;-1:-1:-1;;;;;10276:15:0;;;;;;;:9;:15;;;;;;:42;;;;10349:13;;;;;;;:22;;10365:6;;10349:22;:::i;:::-;-1:-1:-1;;;;;10333:13:0;;;;;;;:9;:13;;;;;;;:38;;;;10391:26;;;;;;-1:-1:-1;;;;;;;;;;;10391:26:0;;;10410:6;9413:25:1;;9401:2;9386:18;;9368:76;10233:217:0;3528:7;3555:6;-1:-1:-1;;;;;10464:15:0;;;3555:6;;10464:15;;;;:32;;-1:-1:-1;3528:7:0;3555:6;-1:-1:-1;;;;;10483:13:0;;;3555:6;;10483:13;;10464:32;10460:1673;;;10517:20;;;;10513:522;;;10598:15;;-1:-1:-1;;;;;10584:30:0;;;10598:15;;10584:30;;;;:83;;-1:-1:-1;10653:13:0;;-1:-1:-1;;;;;10639:28:0;;;10653:13;;10639:28;;10584:83;10558:462;;;10773:9;10744:39;;;;:28;:39;;;;;;10786:12;-1:-1:-1;10710:213:0;;;;-1:-1:-1;;;10710:213:0;;6296:2:1;10710:213:0;;;6278:21:1;6335:2;6315:18;;;6308:30;6374:34;6354:18;;;6347:62;6445:34;6425:18;;;6418:62;-1:-1:-1;;;6496:19:1;;;6489:40;6546:19;;10710:213:0;6268:303:1;10710:213:0;10975:9;10946:39;;;;:28;:39;;;;;10988:12;10946:54;;10558:462;11081:13;;-1:-1:-1;;;;;11073:21:0;;;11081:13;;11073:21;:72;;;;-1:-1:-1;11129:15:0;;-1:-1:-1;;;;;11115:30:0;;;11129:15;;11115:30;;11073:72;:117;;;;-1:-1:-1;;;;;;11167:23:0;;;;;;:19;:23;;;;;;;;11166:24;11073:117;11051:439;;;11243:12;;11233:6;:22;;11225:60;;;;-1:-1:-1;;;11225:60:0;;5183:2:1;11225:60:0;;;5165:21:1;5222:2;5202:18;;;5195:30;5261:27;5241:18;;;5234:55;5306:18;;11225:60:0;5155:175:1;11225:60:0;11360:14;;11350:6;11334:13;11344:2;-1:-1:-1;;;;;8525:18:0;8498:7;8525:18;;;:9;:18;;;;;;;8432:119;11334:13;:22;;;;:::i;:::-;:40;;11304:140;;;;-1:-1:-1;;;11304:140:0;;8357:2:1;11304:140:0;;;8339:21:1;8396:2;8376:18;;;8369:30;8435:28;8415:18;;;8408:56;8481:18;;11304:140:0;8329:176:1;11304:140:0;11463:9;:11;;;:9;:11;;;:::i;:::-;;;;;;11051:439;11555:4;11506:28;8525:18;;;:9;:18;;;;;;11601:6;;-1:-1:-1;;;11601:6:0;;;;11600:7;:47;;;;-1:-1:-1;11634:13:0;;-1:-1:-1;;;;;11628:19:0;;;11634:13;;11628:19;11600:47;:79;;;;-1:-1:-1;11668:11:0;;-1:-1:-1;;;11668:11:0;;;;11600:79;:130;;;;;11712:18;;11700:9;;:30;11600:130;:177;;;;-1:-1:-1;;;;;;11752:25:0;;;;;;:19;:25;;;;;;;;11751:26;11600:177;:222;;;;-1:-1:-1;;;;;;11799:23:0;;;;;;:19;:23;;;;;;;;11798:24;11600:222;11578:544;;;11860:24;;11857:189;;11909:117;11952:51;11956:6;11964:38;11968:20;11990:11;;11964:3;:38::i;:::-;11952:3;:51::i;:::-;11909:16;:117::i;:::-;12064:10;;:42;;-1:-1:-1;;;;;12064:10:0;;;;;;;;;12084:21;12064:42;;;;;;;;;12084:21;12064:10;:42;;;;;;;;;;;;;;;;;;;;;11578:544;10460:1673;;12145:30;12158:4;12164:2;12168:6;12145:12;:30::i;:::-;9924:2259;;;:::o;2292:224::-;2412:7;2448:12;2440:6;;;;2432:29;;;;-1:-1:-1;;;2432:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2472:9:0;2484:5;2488:1;2484;:5;:::i;:::-;2472:17;2292:224;-1:-1:-1;;;;;2292:224:0:o;12306:483::-;5454:6;:13;;-1:-1:-1;;;;5454:13:0;-1:-1:-1;;;5454:13:0;;;12408:16:::1;::::0;;12422:1:::1;12408:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12408:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12408:16:0::1;12384:40;;12453:4;12435;12440:1;12435:7;;;;;;-1:-1:-1::0;;;12435:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12435:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12479:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12479:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12435:7;;12479:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12469:4;12474:1;12469:7;;;;;;-1:-1:-1::0;;;12469:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12469:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12544:15:::1;::::0;12512:62:::1;::::0;12529:4:::1;::::0;12544:15:::1;12562:11:::0;12512:8:::1;:62::i;:::-;12585:15;::::0;:196:::1;::::0;-1:-1:-1;;;12585:196:0;;-1:-1:-1;;;;;12585:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12666:11;;12585:15:::1;::::0;12708:4;;12735::::1;::::0;12755:15:::1;::::0;12585:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5490:6:0;:14;;-1:-1:-1;;;;5490:14:0;;;-1:-1:-1;;;;12306:483:0:o;13006:92::-;13063:10;;:27;;:10;;;;-1:-1:-1;;;;;13063:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;12191:107;12248:7;12280:1;12276;:5;12275:15;;12289:1;12275:15;;;12285:1;12275:15;12268:22;12191:107;-1:-1:-1;;;12191:107:0:o;6337:1707::-;-1:-1:-1;;;;;6537:25:0;;6421:16;6537:25;;;:19;:25;;;;;;6440:6;;6482:4;;6518;;6537:25;;6533:106;;;-1:-1:-1;6623:4:0;;-1:-1:-1;6594:5:0;6533:106;6653:12;6649:1388;;;6693:208;6897:3;6693:181;6757:15;;6745:9;;:27;6744:111;;6841:14;;6744:111;;;6801:12;;6744:111;6693:6;;:28;:181::i;:::-;:203;;:208::i;:::-;6926:13;;6682:219;;-1:-1:-1;;;;;;6920:19:0;;;6926:13;;6920:19;:44;;;;-1:-1:-1;;;;;;6943:21:0;;6959:4;6943:21;;6920:44;6916:331;;;6996:235;7227:3;6996:204;7068:16;;7056:9;;:28;7055:122;;7162:15;;7055:122;;;7117:13;;6996:6;;:32;:204::i;:235::-;6985:246;;6916:331;7265:12;;7261:221;;7343:4;7325:24;;;;:9;:24;;;;;;:78;;7376:8;7325:28;:78::i;:::-;7316:4;7298:24;;;;:9;:24;;;;;;;:105;;;;7427:39;;-1:-1:-1;;;;;7427:39:0;;;-1:-1:-1;;;;;;;;;;;7427:39:0;;;7457:8;9413:25:1;;9401:2;9386:18;;9368:76;7427:39:0;;;;;;;;7261:221;-1:-1:-1;;;;;7514:15:0;;;;;;:9;:15;;;;;;:27;;7534:6;7514:19;:27::i;:::-;-1:-1:-1;;;;;7496:15:0;;;;;;:9;:15;;;;;:45;7572:39;7590:20;:6;7601:8;7590:10;:20::i;:::-;-1:-1:-1;;;;;7572:13:0;;;;;;:9;:13;;;;;;;:17;:39::i;:::-;-1:-1:-1;;;;;7556:13:0;;;;;;;:9;:13;;;;;:55;;;;7631:40;;-1:-1:-1;;;;;;;;;;;7650:20:0;:6;7661:8;7650:10;:20::i;:::-;7631:40;;9413:25:1;;;9401:2;9386:18;7631:40:0;;;;;;;6649:1388;;;7708:12;;7704:160;;-1:-1:-1;;;;;7761:17:0;;;;;;:9;:17;;;;;;:31;;7783:8;7761:21;:31::i;:::-;-1:-1:-1;;;;;7741:17:0;;;;;;;:9;:17;;;;;;;:51;;;;7816:32;;;;;;-1:-1:-1;;;;;;;;;;;7816:32:0;;;7839:8;9413:25:1;;9401:2;9386:18;;9368:76;7816:32:0;;;;;;;;7704:160;-1:-1:-1;;;;;7896:15:0;;;;;;:9;:15;;;;;;:27;;7916:6;7896:19;:27::i;:::-;-1:-1:-1;;;;;7878:15:0;;;;;;;:9;:15;;;;;;:45;;;;7954:13;;;;;;;:25;;7972:6;7954:17;:25::i;:::-;-1:-1:-1;;;;;7938:13:0;;;;;;;:9;:13;;;;;;;:41;;;;7999:26;;;;;;-1:-1:-1;;;;;;;;;;;7999:26:0;;;8018:6;9413:25:1;;9401:2;9386:18;;9368:76;7999:26:0;;;;;;;;6649:1388;6337:1707;;;;;;:::o;2524:246::-;2582:7;2606:6;2602:47;;-1:-1:-1;2636:1:0;2629:8;;2602:47;2659:9;2671:5;2675:1;2671;:5;:::i;:::-;2659:17;-1:-1:-1;2704:1:0;2695:5;2699:1;2659:17;2695:5;:::i;:::-;:10;2687:56;;;;-1:-1:-1;;;2687:56:0;;6778:2:1;2687:56:0;;;6760:21:1;6817:2;6797:18;;;6790:30;6856:34;6836:18;;;6829:62;-1:-1:-1;;;6907:18:1;;;6900:31;6948:19;;2687:56:0;6750:223:1;2778:132:0;2836:7;2863:39;2867:1;2870;2863:39;;;;;;;;;;;;;;;;;:3;:39::i;1961:179::-;2019:7;;2051:5;2055:1;2051;:5;:::i;:::-;2039:17;;2080:1;2075;:6;;2067:46;;;;-1:-1:-1;;;2067:46:0;;5940:2:1;2067:46:0;;;5922:21:1;5979:2;5959:18;;;5952:30;6018:29;5998:18;;;5991:57;6065:18;;2067:46:0;5912:177:1;2148:136:0;2206:7;2233:43;2237:1;2240;2233:43;;;;;;;;;;;;;;;;;:3;:43::i;2918:223::-;3038:7;3073:12;3066:5;3058:28;;;;-1:-1:-1;;;3058:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3097:9:0;3109:5;3113:1;3109;:5;:::i;14:257:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:466::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:1;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1049:362;;1347:7;;-1:-1:-1;;;1401:2:1;1386:18;;;;1373:32;;1049:362::o;1416:325::-;1484:6;1492;1545:2;1533:9;1524:7;1520:23;1516:32;1513:2;;;1566:6;1558;1551:22;1513:2;1610:9;1597:23;1629:31;1654:5;1629:31;:::i;:::-;1679:5;1731:2;1716:18;;;;1703:32;;-1:-1:-1;;;1503:238:1:o;1746:297::-;1813:6;1866:2;1854:9;1845:7;1841:23;1837:32;1834:2;;;1887:6;1879;1872:22;1834:2;1924:9;1918:16;1977:5;1970:13;1963:21;1956:5;1953:32;1943:2;;2004:6;1996;1989:22;2048:316;2136:6;2144;2152;2205:2;2193:9;2184:7;2180:23;2176:32;2173:2;;;2226:6;2218;2211:22;2173:2;2260:9;2254:16;2244:26;;2310:2;2299:9;2295:18;2289:25;2279:35;;2354:2;2343:9;2339:18;2333:25;2323:35;;2163:201;;;;;:::o;3969:603::-;4081:4;4110:2;4139;4128:9;4121:21;4171:6;4165:13;4214:6;4209:2;4198:9;4194:18;4187:34;4239:4;4252:140;4266:6;4263:1;4260:13;4252:140;;;4361:14;;;4357:23;;4351:30;4327:17;;;4346:2;4323:26;4316:66;4281:10;;4252:140;;;4410:6;4407:1;4404:13;4401:2;;;4480:4;4475:2;4466:6;4455:9;4451:22;4447:31;4440:45;4401:2;-1:-1:-1;4556:2:1;4535:15;-1:-1:-1;;4531:29:1;4516:45;;;;4563:2;4512:54;;4090:482;-1:-1:-1;;;4090:482:1:o;6978:356::-;7180:2;7162:21;;;7199:18;;;7192:30;7258:34;7253:2;7238:18;;7231:62;7325:2;7310:18;;7152:182::o;9449:983::-;9711:4;9759:3;9748:9;9744:19;9790:6;9779:9;9772:25;9816:2;9854:6;9849:2;9838:9;9834:18;9827:34;9897:3;9892:2;9881:9;9877:18;9870:31;9921:6;9956;9950:13;9987:6;9979;9972:22;10025:3;10014:9;10010:19;10003:26;;10064:2;10056:6;10052:15;10038:29;;10085:4;10098:195;10112:6;10109:1;10106:13;10098:195;;;10177:13;;-1:-1:-1;;;;;10173:39:1;10161:52;;10268:15;;;;10233:12;;;;10209:1;10127:9;10098:195;;;-1:-1:-1;;;;;;;10349:32:1;;;;10344:2;10329:18;;10322:60;-1:-1:-1;;;10413:3:1;10398:19;10391:35;10310:3;9720:712;-1:-1:-1;;;9720:712:1:o;10626:128::-;10666:3;10697:1;10693:6;10690:1;10687:13;10684:2;;;10703:18;;:::i;:::-;-1:-1:-1;10739:9:1;;10674:80::o;10759:217::-;10799:1;10825;10815:2;;-1:-1:-1;;;10850:31:1;;10904:4;10901:1;10894:15;10932:4;10857:1;10922:15;10815:2;-1:-1:-1;10961:9:1;;10805:171::o;10981:422::-;11070:1;11113:5;11070:1;11127:270;11148:7;11138:8;11135:21;11127:270;;;11207:4;11203:1;11199:6;11195:17;11189:4;11186:27;11183:2;;;11216:18;;:::i;:::-;11266:7;11256:8;11252:22;11249:2;;;11286:16;;;;11249:2;11365:22;;;;11325:15;;;;11127:270;;;11131:3;11045:358;;;;;:::o;11408:140::-;11466:5;11495:47;11536:4;11526:8;11522:19;11516:4;11602:5;11632:8;11622:2;;-1:-1:-1;11673:1:1;11687:5;;11622:2;11721:4;11711:2;;-1:-1:-1;11758:1:1;11772:5;;11711:2;11803:4;11821:1;11816:59;;;;11889:1;11884:130;;;;11796:218;;11816:59;11846:1;11837:10;;11860:5;;;11884:130;11921:3;11911:8;11908:17;11905:2;;;11928:18;;:::i;:::-;-1:-1:-1;;11984:1:1;11970:16;;11999:5;;11796:218;;12098:2;12088:8;12085:16;12079:3;12073:4;12070:13;12066:36;12060:2;12050:8;12047:16;12042:2;12036:4;12033:12;12029:35;12026:77;12023:2;;;-1:-1:-1;12135:19:1;;;12167:5;;12023:2;12214:34;12239:8;12233:4;12214:34;:::i;:::-;12284:6;12280:1;12276:6;12272:19;12263:7;12260:32;12257:2;;;12295:18;;:::i;:::-;12333:20;;11612:747;-1:-1:-1;;;11612:747:1:o;12364:168::-;12404:7;12470:1;12466;12462:6;12458:14;12455:1;12452:21;12447:1;12440:9;12433:17;12429:45;12426:2;;;12477:18;;:::i;:::-;-1:-1:-1;12517:9:1;;12416:116::o;12537:125::-;12577:4;12605:1;12602;12599:8;12596:2;;;12610:18;;:::i;:::-;-1:-1:-1;12647:9:1;;12586:76::o;12667:135::-;12706:3;-1:-1:-1;;12727:17:1;;12724:2;;;12747:18;;:::i;:::-;-1:-1:-1;12794:1:1;12783:13;;12714:88::o;12807:127::-;12868:10;12863:3;12859:20;12856:1;12849:31;12899:4;12896:1;12889:15;12923:4;12920:1;12913:15;12939:131;-1:-1:-1;;;;;13014:31:1;;13004:42;;12994:2;;13060:1;13057;13050:12;12994:2;12984:86;:::o

Swarm Source

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