ETH Price: $2,437.42 (-9.23%)
Gas: 1.55 Gwei

Token

Minty Fresh (MINTY)
 

Overview

Max Total Supply

100,000,000 MINTY

Holders

17

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
999,900.000000000304770718 MINTY

Value
$0.00
0xfa97c92FD158aF026B30096dC73a6460A452f300
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:
MintyFresh

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-04
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

/*

Minty Fresh (MINTY)

An experimental no-fee, time launch contract that collects dev fees from the uniswap pair itself through a novel accounting mechanism.

Fees:
    0%

Special Features:
    fee amount is convertable into temporary tokens that are used by the contract to collect a fee.
    Token has a high tax timed launch feature to slowly reduce the fee % from very high to very low.

    0-10 minutes post launch  - 70% BUY/99% sell fee
    10-20 minutes post launch - 50% BUY/99% sell fee
    20-30 minutes post launch - 40% BUY/75% sell fee
    30-40 minutes post launch - 30% BUY/50% sell fee
    40-50 minutes post launch - 15% BUY/25% sell fee
    50-60 minutes post launch - 10% BUY/10% sell fee
    Final fees                - 2% BUY/2% sell fee

    There will be a 1% wallet limit/txn limit until 50% of the supply has been purchased.
    There will be a 1.5% wallet limit/txn limit between 50% and 25% of the supply purchased.
    Once less than 25% of tokens remain in the liquidty pair the max wallet will be the total supply and will never change.
    NOTE: If the uniswap pair regains a large portion of tokens no change to max wallet will occur. 

*/

abstract contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(msg.sender);
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

}

interface IERC20 {

    function allowance(address owner, address spender) external view returns (uint256);
    event Transfer(address indexed from, address indexed to, uint256 value);
    function approve(address spender, uint256 amount) external returns (bool);

    function transfer(address recipient, uint256 amount) external returns (bool);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function balanceOf(address account) external view returns (uint256);

}

interface IERC20Metadata is IERC20 {

    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);

    function name() external view returns (string memory);

}

contract ERC20 is IERC20, IERC20Metadata {

    mapping(address => uint256) private _balances;


    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "ERC20: transfer amount greater than allowance");
        unchecked {
            _approve(sender, msg.sender, currentAllowance - amount);
        }

        return true;
    }

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);
    }

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

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(msg.sender, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from zero address");
        require(recipient != address(0), "ERC20: transfer to zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount greater than balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 decimals() public view virtual override returns (uint8) {
        return 18;
    }

}

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

interface IUniswapV2Pair {
    function sync() external;
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (
        uint256 amountToken,
        uint256 amountETH,
        uint256 liquidity
    );
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract MintyFresh is ERC20, Ownable {

    enum FeePhase {
        PRELAUNCH,
        MINUTE_0_10,  // default value
        MINUTE_10_20,
        MINUTE_20_30,
        MINUTE_30_40,
        MINUTE_40_50,
        MINUTE_50_60,
        FINAL
    }

    enum Side {
        TRANSFER,
        BUY,
        SELL
    }

    enum TransactionLimitPhase {
        LOW_LIMIT,  // default value
        HIGH_LIMIT,
        FINAL_LIMIT
    }

    enum WalletLimitPhase {
        LOW_LIMIT,  // default value
        HIGH_LIMIT,
        NO_LIMIT
    }

    mapping(Side => mapping(FeePhase => uint256)) public feeMapping;
    uint256[] public feePhaseStart;
    mapping(TransactionLimitPhase => uint256) public maxTxnMapping;
    mapping(WalletLimitPhase => uint256) public maxWalletMapping;

    FeePhase feePhase;
    TransactionLimitPhase txnLimitPhase;
    WalletLimitPhase walletLimitPhase;

    uint256 feeTokens;    
    address public collectionsWallet;
    IUniswapV2Router02 public immutable router;

    mapping(address => bool) private isFeeExcluded;
    address public immutable uniswapPair;
    mapping(address => bool) public isExcludedMaxTxnAmount;


    uint256 public maxTransactionAmount;
    uint256 public maxWallet;
    uint256 public feeDenominator = 1000;

    bool public limitsInEffect = true;
    bool private collectingFee;


    constructor(address router_, address collectionsWallet_) ERC20("Minty Fresh", "MINTY") {
        router = IUniswapV2Router02(router_);
        uniswapPair = IUniswapV2Factory(
                router.factory()
        ).createPair(
            address(this),
            router.WETH()
        );
        collectionsWallet = collectionsWallet_;
        
        isExcludedMaxTxnAmount[address(uniswapPair)] = true;        
        isExcludedMaxTxnAmount[address(router)] = true;
        isExcludedMaxTxnAmount[address(this)] = true;
        isExcludedMaxTxnAmount[address(0xdead)] = true;

        isFeeExcluded[address(0xdead)] = true;
        isFeeExcluded[address(this)] = true;

        uint256 totalSupply = 100_000_000 * 1e18;

        maxTxnMapping[TransactionLimitPhase.LOW_LIMIT] = totalSupply * 10 / 1000;
        maxTxnMapping[TransactionLimitPhase.HIGH_LIMIT] = totalSupply * 15 / 1000;
        maxTxnMapping[TransactionLimitPhase.FINAL_LIMIT] = totalSupply;

        maxWalletMapping[WalletLimitPhase.LOW_LIMIT] = totalSupply * 10 / 1000;
        maxWalletMapping[WalletLimitPhase.HIGH_LIMIT] = totalSupply * 15 / 1000;
        maxWalletMapping[WalletLimitPhase.NO_LIMIT] = totalSupply;

        feeMapping[Side.BUY][FeePhase.MINUTE_0_10] = 700;
        feeMapping[Side.BUY][FeePhase.MINUTE_10_20] = 500;
        feeMapping[Side.BUY][FeePhase.MINUTE_20_30] = 400;
        feeMapping[Side.BUY][FeePhase.MINUTE_30_40] = 300;
        feeMapping[Side.BUY][FeePhase.MINUTE_40_50] = 150;
        feeMapping[Side.BUY][FeePhase.MINUTE_50_60] = 100;
        feeMapping[Side.BUY][FeePhase.FINAL] = 20;

        feeMapping[Side.SELL][FeePhase.MINUTE_0_10] = 990;
        feeMapping[Side.SELL][FeePhase.MINUTE_10_20] = 990;
        feeMapping[Side.SELL][FeePhase.MINUTE_20_30] = 750;
        feeMapping[Side.SELL][FeePhase.MINUTE_30_40] = 500;
        feeMapping[Side.SELL][FeePhase.MINUTE_40_50] = 250;
        feeMapping[Side.SELL][FeePhase.MINUTE_50_60] = 100;
        feeMapping[Side.SELL][FeePhase.FINAL] = 20;

        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(address(this), totalSupply);
    }

    function rescueStuckETH() external {
        if (address(this).balance > 0) {
            (bool success, ) = address(collectionsWallet).call{value: address(this).balance}("");
            require(success);
        }
    }

    receive() external payable {}

    function addLiquidityAndLaunch() external payable onlyOwner {
        feePhaseStart = [
            0, // no fee
            block.timestamp,
            block.timestamp + 60 * 10,
            block.timestamp + 60 * 20,
            block.timestamp + 60 * 30,
            block.timestamp + 60 * 40,
            block.timestamp + 60 * 50,
            block.timestamp + 60 * 60
        ];

        _addUniswapLiquidity(balanceOf(address(this)), msg.value, collectionsWallet);
         renounceOwnership();
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        Side side;

        if (to == uniswapPair) {
            side = Side.SELL;
        } else if (from == uniswapPair) {
            side == Side.BUY;
        }

        if (feePhase != FeePhase.FINAL) {
            FeePhase currentFeePhase;

            for ( uint256 i=uint256(feePhase); i <= uint256(FeePhase.FINAL); i++ ) {
                if (block.timestamp >= feePhaseStart[i]) {
                    currentFeePhase = FeePhase(i);                    
                    continue;
                }

                if (block.timestamp < feePhaseStart[i]) {
                    break;
                }
            }

            if (feePhase != currentFeePhase) {
                feePhase = currentFeePhase;
            }
        }

        if (feePhase != FeePhase.PRELAUNCH) {
            uint256 pairBalance = balanceOf(uniswapPair);

            if (pairBalance > totalSupply() / 2) {
                txnLimitPhase = TransactionLimitPhase.LOW_LIMIT;
                if (walletLimitPhase != WalletLimitPhase.NO_LIMIT) {
                    walletLimitPhase = WalletLimitPhase.LOW_LIMIT;
                }
            } else if (pairBalance > totalSupply() / 4) {
                txnLimitPhase = TransactionLimitPhase.HIGH_LIMIT;
                if (walletLimitPhase != WalletLimitPhase.NO_LIMIT) {
                    walletLimitPhase = WalletLimitPhase.HIGH_LIMIT;
                }
            } else {
                if (walletLimitPhase != WalletLimitPhase.NO_LIMIT) {
                    walletLimitPhase = WalletLimitPhase.NO_LIMIT;
                }

                if (txnLimitPhase != TransactionLimitPhase.FINAL_LIMIT) {
                    txnLimitPhase = TransactionLimitPhase.FINAL_LIMIT;
                }
            }
        }

        if (!isExcludedMaxTxnAmount[from]) {
            require(amount <= maxTxnMapping[txnLimitPhase]);
        }

        if (!isExcludedMaxTxnAmount[to]) {
            require(amount <= maxWalletMapping[walletLimitPhase]);
        }

        if (!collectingFee && side != Side.TRANSFER && !isFeeExcluded[from] && !isFeeExcluded[to]) {
            uint256 fees = amount * feeMapping[side][feePhase] / feeDenominator;
            feeTokens += fees;
            if (feePhase != FeePhase.FINAL) {
                amount -= fees;
            }
        }

        if (
            !collectingFee &&
            side == Side.SELL &&
            !isFeeExcluded[from] &&
            !isFeeExcluded[to]
        ) {
            collectingFee = true;

            collectFee();

            collectingFee = false;
        }

        super._transfer(from, to, amount);
    }

    function collectFee() internal {
        if (feeTokens == 0) {
            return;
        }

        _mint(address(this), feeTokens);
        swapTokensForEth(balanceOf(address(this)));
        _burn(uniswapPair, feeTokens);

        IUniswapV2Pair pair = IUniswapV2Pair(uniswapPair);
        pair.sync();

        feeTokens = 0;
    }

    function swapTokensForEth(uint256 tokenAmount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function _addUniswapLiquidity(uint256 tokenAmount, uint256 ethAmount, address tokenRecipient) internal {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ethAmount} (
            address(this),
            tokenAmount,
            0,
            0,
            tokenRecipient,
            block.timestamp
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"router_","type":"address"},{"internalType":"address","name":"collectionsWallet_","type":"address"}],"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":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":"addLiquidityAndLaunch","outputs":[],"stateMutability":"payable","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":"collectionsWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum MintyFresh.Side","name":"","type":"uint8"},{"internalType":"enum MintyFresh.FeePhase","name":"","type":"uint8"}],"name":"feeMapping","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"feePhaseStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedMaxTxnAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum MintyFresh.TransactionLimitPhase","name":"","type":"uint8"}],"name":"maxTxnMapping","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum MintyFresh.WalletLimitPhase","name":"","type":"uint8"}],"name":"maxWalletMapping","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526103e86011556012805460ff191660011790553480156200002457600080fd5b50604051620028b1380380620028b18339810160408190526200004791620007de565b6040518060400160405280600b81526020016a09ad2dce8f2408ce4cae6d60ab1b815250604051806040016040528060058152602001644d494e545960d81b81525081600390816200009a9190620008bb565b506004620000a98282620008bb565b505050620000bd336200068760201b60201c565b6001600160a01b03821660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000108573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200012e919062000987565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200017e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a4919062000987565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620001f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000218919062000987565b6001600160a01b0390811660a0819052600c80546001600160a01b0319168484161790556000908152600e60209081526040808320805460ff1990811660019081179092556080519095168452818420805486168217905530845281842080548616821790557ff77e91909e61d18f67b875b2bfcae1f683a8d555e55382e3a6b082e2c59ea57a8054861682179055600d9092527fdc7fafdc41998a74ecacb8f8bd877011aba1f1d03a3a0d37a2e7879a393b1d6a805485168317905590912080549092161790556a52b7d2dcc80cd2e40000006103e8620002fc82600a620009c2565b620003089190620009e2565b6000805260086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7556103e86200034382600f620009c2565b6200034f9190620009e2565b60086020527fad67d757c34507f157cacfa2e3153e9f260a2244f30428821be7be64587ac55f5560026000527f6add646517a5b0f6793cd5891b7937d28a5b2981a5d88ebc7cd776088fea90418190556103e8620003af82600a620009c2565b620003bb9190620009e2565b6000805260096020527fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b556103e8620003f682600f620009c2565b620004029190620009e2565b7f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38190556102bc7f0f44af8394d12f4d2493817decf7ae460f4010dc707becaefcc522b156cf8914556101f47fc5ab4a74920faf8555678fb3de0a5cca786df401ae6d7a3376075739d60be5a48190556101907f08db3a5a3fef285ea17549d954d4a42d5c978a4a3404fc6e5a3c7fac90d38d405561012c7f94199b25a009aaea7088994d35d40be1992a5a5be5b40e3445eebd0ed9039bc75560967f62d4b85b5b6da9d8194ac7d300d99e6ad117b586936725c7f520a6f3888cfd5f5560647f4c3928a74f284c060275a0d82155f5d8f5b6afd346efd7731a7e5cc0402a495a81905560147f33dfb89d329bb5c46d12686879998eb88b50e388d6fdcfd97366536743161bd58190556103de7f1e54a9adfa3544fab9ab81a89b64f496f0df09417f9acc8af4ec2e2fddf082078190557f712462b36ea0b35fd0622653c37f5bdd6dd34cda95cd12b2c4ca4a4d334b8c86556102ee7f7db66dcb65d0b0376b0c1a71df499296a98267c8f5febf9e59b466ff55ff3a9d557f2893e74b1097fe26cac239e1748e4e14bb5daf0318aba85306ac430cc11f7b789290925560fa7f45ffade0cd866c92c2bcdc5fb9325d54a65bdf0544843c22114ae8205d42b23e557f86f942a1b05ec17aaa5cbc0752a6bc79d38c4c7114724cde8db5996949624e575560076000527f8819ef417987f8ae7a81f42cdfb18815282fe989326fbff903d13cf0e03ace296020527f53863d64ee68e629a95d448f467bf28cb2b229f49f0f60288ec29ed7a2396e1a556200067e3082620006d9565b50505062000a1b565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620007345760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000748919062000a05565b90915550506001600160a01b038216600090815260208190526040812080548392906200077790849062000a05565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b80516001600160a01b0381168114620007d957600080fd5b919050565b60008060408385031215620007f257600080fd5b620007fd83620007c1565b91506200080d60208401620007c1565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200084157607f821691505b6020821081036200086257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620008b657600081815260208120601f850160051c81016020861015620008915750805b601f850160051c820191505b81811015620008b2578281556001016200089d565b5050505b505050565b81516001600160401b03811115620008d757620008d762000816565b620008ef81620008e884546200082c565b8462000868565b602080601f8311600181146200092757600084156200090e5750858301515b600019600386901b1c1916600185901b178555620008b2565b600085815260208120601f198616915b82811015620009585788860151825594840194600190910190840162000937565b5085821015620009775787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200099a57600080fd5b620009a582620007c1565b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620009dc57620009dc620009ac565b92915050565b60008262000a0057634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620009dc57620009dc620009ac565b60805160a051611e2a62000a876000396000818161049101528181610c7901528181610cba01528181610e37015281816115a501526115d0015260008181610581015281816112cf01528181611334015281816117820152818161183b01526118770152611e2a6000f3fe6080604052600436106101ba5760003560e01c80638da5cb5b116100ec578063c8c8ebe41161008a578063f2fde38b11610064578063f2fde38b1461052f578063f566fdf61461054f578063f887ea401461056f578063f8b45b05146105a357600080fd5b8063c8c8ebe4146104b3578063dd62ed3e146104c9578063def821881461050f57600080fd5b80639e049ad4116100c65780639e049ad414610437578063a457c2d71461043f578063a9059cbb1461045f578063c816841b1461047f57600080fd5b80638da5cb5b146103c357806395d89b41146103f55780639d2d3f711461040a57600080fd5b8063313ce567116101595780634a62bb65116101335780634a62bb65146103265780636b3507a41461034057806370a0823114610378578063715018a6146103ae57600080fd5b8063313ce567146102bd57806337ab60c3146102d9578063395093511461030657600080fd5b8063095ea7b311610195578063095ea7b314610244578063180b0d7e1461026457806318160ddd1461028857806323b872dd1461029d57600080fd5b8062d6f177146101c65780630150fe4c1461020b57806306fdde031461022257600080fd5b366101c157005b600080fd5b3480156101d257600080fd5b506101f66101e1366004611a82565b600e6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561021757600080fd5b506102206105b9565b005b34801561022e57600080fd5b50610237610623565b6040516102029190611aa6565b34801561025057600080fd5b506101f661025f366004611af4565b6106b5565b34801561027057600080fd5b5061027a60115481565b604051908152602001610202565b34801561029457600080fd5b5060025461027a565b3480156102a957600080fd5b506101f66102b8366004611b20565b6106cc565b3480156102c957600080fd5b5060405160128152602001610202565b3480156102e557600080fd5b5061027a6102f4366004611b6e565b60096020526000908152604090205481565b34801561031257600080fd5b506101f6610321366004611af4565b610780565b34801561033257600080fd5b506012546101f69060ff1681565b34801561034c57600080fd5b5061027a61035b366004611b8b565b600660209081526000928352604080842090915290825290205481565b34801561038457600080fd5b5061027a610393366004611a82565b6001600160a01b031660009081526020819052604090205490565b3480156103ba57600080fd5b506102206107bc565b3480156103cf57600080fd5b506005546001600160a01b03165b6040516001600160a01b039091168152602001610202565b34801561040157600080fd5b506102376107ff565b34801561041657600080fd5b5061027a610425366004611b6e565b60086020526000908152604090205481565b61022061080e565b34801561044b57600080fd5b506101f661045a366004611af4565b610903565b34801561046b57600080fd5b506101f661047a366004611af4565b61099c565b34801561048b57600080fd5b506103dd7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104bf57600080fd5b5061027a600f5481565b3480156104d557600080fd5b5061027a6104e4366004611bc8565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561051b57600080fd5b50600c546103dd906001600160a01b031681565b34801561053b57600080fd5b5061022061054a366004611a82565b6109a9565b34801561055b57600080fd5b5061027a61056a366004611bf6565b610a50565b34801561057b57600080fd5b506103dd7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105af57600080fd5b5061027a60105481565b471561062157600c546040516000916001600160a01b03169047908381818185875af1925050503d806000811461060c576040519150601f19603f3d011682016040523d82523d6000602084013e610611565b606091505b505090508061061f57600080fd5b505b565b60606003805461063290611c0f565b80601f016020809104026020016040519081016040528092919081815260200182805461065e90611c0f565b80156106ab5780601f10610680576101008083540402835291602001916106ab565b820191906000526020600020905b81548152906001019060200180831161068e57829003601f168201915b5050505050905090565b60006106c2338484610a71565b5060015b92915050565b60006106d9848484610b96565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156107685760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526c68616e20616c6c6f77616e636560981b60648201526084015b60405180910390fd5b6107758533858403610a71565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916106c29185906107b7908690611c5f565b610a71565b336107cf6005546001600160a01b031690565b6001600160a01b0316146107f55760405162461bcd60e51b815260040161075f90611c72565b6106216000611277565b60606004805461063290611c0f565b336108216005546001600160a01b031690565b6001600160a01b0316146108475760405162461bcd60e51b815260040161075f90611c72565b604051806101000160405280600081526020014281526020014261025861086e9190611c5f565b815260200161087f426104b0611c5f565b815260200161089042610708611c5f565b81526020016108a142610960611c5f565b81526020016108b242610bb8611c5f565b81526020016108c342610e10611c5f565b90526108d3906007906008611a0d565b50306000908152602081905260409020546108fb90600c5434906001600160a01b03166112c9565b6106216107bc565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156109855760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161075f565b6109923385858403610a71565b5060019392505050565b60006106c2338484610b96565b336109bc6005546001600160a01b031690565b6001600160a01b0316146109e25760405162461bcd60e51b815260040161075f90611c72565b6001600160a01b038116610a475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161075f565b61061f81611277565b60078181548110610a6057600080fd5b600091825260209091200154905081565b6001600160a01b038316610ad35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161075f565b6001600160a01b038216610b345760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161075f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610bfa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161075f565b6001600160a01b038216610c5c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161075f565b80600003610c7557610c70838360006113ab565b505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603610cb857506002610d08565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031603610d08576001816002811115610d0557610d05611ca7565b50505b6007600a5460ff166007811115610d2157610d21611ca7565b14610e1757600a54600090819060ff166007811115610d4257610d42611ca7565b90505b60078111610dc15760078181548110610d6057610d60611cbd565b90600052602060002001544210610d8a57806007811115610d8357610d83611ca7565b9150610daf565b60078181548110610d9d57610d9d611cbd565b90600052602060002001544210610dc1575b80610db981611cd3565b915050610d45565b50806007811115610dd457610dd4611ca7565b600a5460ff166007811115610deb57610deb611ca7565b14610e1557600a805482919060ff19166001836007811115610e0f57610e0f611ca7565b02179055505b505b6000600a5460ff166007811115610e3057610e30611ca7565b14610fa1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660009081526020819052604090205460028054610e7c9190611cec565b811115610ed057600a805461ff0019169081905560029062010000900460ff1681811115610eac57610eac611ca7565b14610ecb57600a80546000919062ff0000191662010000835b02179055505b610f9f565b6004610edb60025490565b610ee59190611cec565b811115610f3657600a805461ff001916610100179081905560029062010000900460ff1681811115610f1957610f19611ca7565b14610ecb57600a80546001919062ff000019166201000083610ec5565b6002600a5462010000900460ff166002811115610f5557610f55611ca7565b14610f6c57600a805462ff00001916620200001790555b6002600a54610100900460ff166002811115610f8a57610f8a611ca7565b14610f9f57600a805461ff0019166102001790555b505b6001600160a01b0384166000908152600e602052604090205460ff1661100f57600a54600890600090610100900460ff166002811115610fe357610fe3611ca7565b6002811115610ff457610ff4611ca7565b81526020019081526020016000205482111561100f57600080fd5b6001600160a01b0383166000908152600e602052604090205460ff1661107e57600a5460099060009062010000900460ff16600281111561105257611052611ca7565b600281111561106357611063611ca7565b81526020019081526020016000205482111561107e57600080fd5b601254610100900460ff161580156110a8575060008160028111156110a5576110a5611ca7565b14155b80156110cd57506001600160a01b0384166000908152600d602052604090205460ff16155b80156110f257506001600160a01b0383166000908152600d602052604090205460ff16155b156111cb5760006011546006600084600281111561111257611112611ca7565b600281111561112357611123611ca7565b815260208101919091526040016000908120600a5490919060ff16600781111561114f5761114f611ca7565b600781111561116057611160611ca7565b8152602001908152602001600020548461117a9190611d0e565b6111849190611cec565b905080600b60008282546111989190611c5f565b9091555060079050600a5460ff1660078111156111b7576111b7611ca7565b146111c9576111c68184611d25565b92505b505b601254610100900460ff161580156111f4575060028160028111156111f2576111f2611ca7565b145b801561121957506001600160a01b0384166000908152600d602052604090205460ff16155b801561123e57506001600160a01b0383166000908152600d602052604090205460ff16155b15611266576012805461ff00191661010017905561125a61156f565b6012805461ff00191690555b6112718484846113ab565b50505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6112f4307f000000000000000000000000000000000000000000000000000000000000000085610a71565b60405163f305d71960e01b81523060048201526024810184905260006044820181905260648201526001600160a01b0382811660848301524260a48301527f0000000000000000000000000000000000000000000000000000000000000000169063f305d71990849060c40160606040518083038185885af115801561137e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113a39190611d38565b505050505050565b6001600160a01b03831661140b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b606482015260840161075f565b6001600160a01b0382166114615760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f206164647265737300604482015260640161075f565b6001600160a01b038316600090815260208190526040902054818110156114de5760405162461bcd60e51b815260206004820152602b60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526a68616e2062616c616e636560a81b606482015260840161075f565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611515908490611c5f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161156191815260200190565b60405180910390a350505050565b600b5460000361157b57565b61158730600b5461164c565b306000908152602081905260409020546115a09061172b565b6115cc7f0000000000000000000000000000000000000000000000000000000000000000600b546118e3565b60007f00000000000000000000000000000000000000000000000000000000000000009050806001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561162c57600080fd5b505af1158015611640573d6000803e3d6000fd5b50506000600b55505050565b6001600160a01b0382166116a25760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161075f565b80600260008282546116b49190611c5f565b90915550506001600160a01b038216600090815260208190526040812080548392906116e1908490611c5f565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061176057611760611cbd565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118029190611d66565b8160018151811061181557611815611cbd565b60200260200101906001600160a01b031690816001600160a01b031681525050611860307f000000000000000000000000000000000000000000000000000000000000000084610a71565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906118b5908590600090869030904290600401611d83565b600060405180830381600087803b1580156118cf57600080fd5b505af11580156113a3573d6000803e3d6000fd5b6001600160a01b0382166119435760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161075f565b6001600160a01b038216600090815260208190526040902054818110156119b75760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161075f565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610b89565b828054828255906000526020600020908101928215611a48579160200282015b82811115611a48578251825591602001919060010190611a2d565b50611a54929150611a58565b5090565b5b80821115611a545760008155600101611a59565b6001600160a01b038116811461061f57600080fd5b600060208284031215611a9457600080fd5b8135611a9f81611a6d565b9392505050565b600060208083528351808285015260005b81811015611ad357858101830151858201604001528201611ab7565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611b0757600080fd5b8235611b1281611a6d565b946020939093013593505050565b600080600060608486031215611b3557600080fd5b8335611b4081611a6d565b92506020840135611b5081611a6d565b929592945050506040919091013590565b6003811061061f57600080fd5b600060208284031215611b8057600080fd5b8135611a9f81611b61565b60008060408385031215611b9e57600080fd5b8235611ba981611b61565b9150602083013560088110611bbd57600080fd5b809150509250929050565b60008060408385031215611bdb57600080fd5b8235611be681611a6d565b91506020830135611bbd81611a6d565b600060208284031215611c0857600080fd5b5035919050565b600181811c90821680611c2357607f821691505b602082108103611c4357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156106c6576106c6611c49565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060018201611ce557611ce5611c49565b5060010190565b600082611d0957634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176106c6576106c6611c49565b818103818111156106c6576106c6611c49565b600080600060608486031215611d4d57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611d7857600080fd5b8151611a9f81611a6d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611dd35784516001600160a01b031683529383019391830191600101611dae565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f6bd2c9d4fb39ffa61374c74c39a1b82f552b8d4659685b3674a1daf35eb519e64736f6c634300081100330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c86b74062edabc1419c6375949331b7f7ae43f42

Deployed Bytecode

0x6080604052600436106101ba5760003560e01c80638da5cb5b116100ec578063c8c8ebe41161008a578063f2fde38b11610064578063f2fde38b1461052f578063f566fdf61461054f578063f887ea401461056f578063f8b45b05146105a357600080fd5b8063c8c8ebe4146104b3578063dd62ed3e146104c9578063def821881461050f57600080fd5b80639e049ad4116100c65780639e049ad414610437578063a457c2d71461043f578063a9059cbb1461045f578063c816841b1461047f57600080fd5b80638da5cb5b146103c357806395d89b41146103f55780639d2d3f711461040a57600080fd5b8063313ce567116101595780634a62bb65116101335780634a62bb65146103265780636b3507a41461034057806370a0823114610378578063715018a6146103ae57600080fd5b8063313ce567146102bd57806337ab60c3146102d9578063395093511461030657600080fd5b8063095ea7b311610195578063095ea7b314610244578063180b0d7e1461026457806318160ddd1461028857806323b872dd1461029d57600080fd5b8062d6f177146101c65780630150fe4c1461020b57806306fdde031461022257600080fd5b366101c157005b600080fd5b3480156101d257600080fd5b506101f66101e1366004611a82565b600e6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561021757600080fd5b506102206105b9565b005b34801561022e57600080fd5b50610237610623565b6040516102029190611aa6565b34801561025057600080fd5b506101f661025f366004611af4565b6106b5565b34801561027057600080fd5b5061027a60115481565b604051908152602001610202565b34801561029457600080fd5b5060025461027a565b3480156102a957600080fd5b506101f66102b8366004611b20565b6106cc565b3480156102c957600080fd5b5060405160128152602001610202565b3480156102e557600080fd5b5061027a6102f4366004611b6e565b60096020526000908152604090205481565b34801561031257600080fd5b506101f6610321366004611af4565b610780565b34801561033257600080fd5b506012546101f69060ff1681565b34801561034c57600080fd5b5061027a61035b366004611b8b565b600660209081526000928352604080842090915290825290205481565b34801561038457600080fd5b5061027a610393366004611a82565b6001600160a01b031660009081526020819052604090205490565b3480156103ba57600080fd5b506102206107bc565b3480156103cf57600080fd5b506005546001600160a01b03165b6040516001600160a01b039091168152602001610202565b34801561040157600080fd5b506102376107ff565b34801561041657600080fd5b5061027a610425366004611b6e565b60086020526000908152604090205481565b61022061080e565b34801561044b57600080fd5b506101f661045a366004611af4565b610903565b34801561046b57600080fd5b506101f661047a366004611af4565b61099c565b34801561048b57600080fd5b506103dd7f000000000000000000000000c029d5a0a5b0926485cc3ecda37f2bc696f009be81565b3480156104bf57600080fd5b5061027a600f5481565b3480156104d557600080fd5b5061027a6104e4366004611bc8565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561051b57600080fd5b50600c546103dd906001600160a01b031681565b34801561053b57600080fd5b5061022061054a366004611a82565b6109a9565b34801561055b57600080fd5b5061027a61056a366004611bf6565b610a50565b34801561057b57600080fd5b506103dd7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156105af57600080fd5b5061027a60105481565b471561062157600c546040516000916001600160a01b03169047908381818185875af1925050503d806000811461060c576040519150601f19603f3d011682016040523d82523d6000602084013e610611565b606091505b505090508061061f57600080fd5b505b565b60606003805461063290611c0f565b80601f016020809104026020016040519081016040528092919081815260200182805461065e90611c0f565b80156106ab5780601f10610680576101008083540402835291602001916106ab565b820191906000526020600020905b81548152906001019060200180831161068e57829003601f168201915b5050505050905090565b60006106c2338484610a71565b5060015b92915050565b60006106d9848484610b96565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156107685760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526c68616e20616c6c6f77616e636560981b60648201526084015b60405180910390fd5b6107758533858403610a71565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916106c29185906107b7908690611c5f565b610a71565b336107cf6005546001600160a01b031690565b6001600160a01b0316146107f55760405162461bcd60e51b815260040161075f90611c72565b6106216000611277565b60606004805461063290611c0f565b336108216005546001600160a01b031690565b6001600160a01b0316146108475760405162461bcd60e51b815260040161075f90611c72565b604051806101000160405280600081526020014281526020014261025861086e9190611c5f565b815260200161087f426104b0611c5f565b815260200161089042610708611c5f565b81526020016108a142610960611c5f565b81526020016108b242610bb8611c5f565b81526020016108c342610e10611c5f565b90526108d3906007906008611a0d565b50306000908152602081905260409020546108fb90600c5434906001600160a01b03166112c9565b6106216107bc565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156109855760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161075f565b6109923385858403610a71565b5060019392505050565b60006106c2338484610b96565b336109bc6005546001600160a01b031690565b6001600160a01b0316146109e25760405162461bcd60e51b815260040161075f90611c72565b6001600160a01b038116610a475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161075f565b61061f81611277565b60078181548110610a6057600080fd5b600091825260209091200154905081565b6001600160a01b038316610ad35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161075f565b6001600160a01b038216610b345760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161075f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610bfa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161075f565b6001600160a01b038216610c5c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161075f565b80600003610c7557610c70838360006113ab565b505050565b60007f000000000000000000000000c029d5a0a5b0926485cc3ecda37f2bc696f009be6001600160a01b0316836001600160a01b031603610cb857506002610d08565b7f000000000000000000000000c029d5a0a5b0926485cc3ecda37f2bc696f009be6001600160a01b0316846001600160a01b031603610d08576001816002811115610d0557610d05611ca7565b50505b6007600a5460ff166007811115610d2157610d21611ca7565b14610e1757600a54600090819060ff166007811115610d4257610d42611ca7565b90505b60078111610dc15760078181548110610d6057610d60611cbd565b90600052602060002001544210610d8a57806007811115610d8357610d83611ca7565b9150610daf565b60078181548110610d9d57610d9d611cbd565b90600052602060002001544210610dc1575b80610db981611cd3565b915050610d45565b50806007811115610dd457610dd4611ca7565b600a5460ff166007811115610deb57610deb611ca7565b14610e1557600a805482919060ff19166001836007811115610e0f57610e0f611ca7565b02179055505b505b6000600a5460ff166007811115610e3057610e30611ca7565b14610fa1577f000000000000000000000000c029d5a0a5b0926485cc3ecda37f2bc696f009be6001600160a01b031660009081526020819052604090205460028054610e7c9190611cec565b811115610ed057600a805461ff0019169081905560029062010000900460ff1681811115610eac57610eac611ca7565b14610ecb57600a80546000919062ff0000191662010000835b02179055505b610f9f565b6004610edb60025490565b610ee59190611cec565b811115610f3657600a805461ff001916610100179081905560029062010000900460ff1681811115610f1957610f19611ca7565b14610ecb57600a80546001919062ff000019166201000083610ec5565b6002600a5462010000900460ff166002811115610f5557610f55611ca7565b14610f6c57600a805462ff00001916620200001790555b6002600a54610100900460ff166002811115610f8a57610f8a611ca7565b14610f9f57600a805461ff0019166102001790555b505b6001600160a01b0384166000908152600e602052604090205460ff1661100f57600a54600890600090610100900460ff166002811115610fe357610fe3611ca7565b6002811115610ff457610ff4611ca7565b81526020019081526020016000205482111561100f57600080fd5b6001600160a01b0383166000908152600e602052604090205460ff1661107e57600a5460099060009062010000900460ff16600281111561105257611052611ca7565b600281111561106357611063611ca7565b81526020019081526020016000205482111561107e57600080fd5b601254610100900460ff161580156110a8575060008160028111156110a5576110a5611ca7565b14155b80156110cd57506001600160a01b0384166000908152600d602052604090205460ff16155b80156110f257506001600160a01b0383166000908152600d602052604090205460ff16155b156111cb5760006011546006600084600281111561111257611112611ca7565b600281111561112357611123611ca7565b815260208101919091526040016000908120600a5490919060ff16600781111561114f5761114f611ca7565b600781111561116057611160611ca7565b8152602001908152602001600020548461117a9190611d0e565b6111849190611cec565b905080600b60008282546111989190611c5f565b9091555060079050600a5460ff1660078111156111b7576111b7611ca7565b146111c9576111c68184611d25565b92505b505b601254610100900460ff161580156111f4575060028160028111156111f2576111f2611ca7565b145b801561121957506001600160a01b0384166000908152600d602052604090205460ff16155b801561123e57506001600160a01b0383166000908152600d602052604090205460ff16155b15611266576012805461ff00191661010017905561125a61156f565b6012805461ff00191690555b6112718484846113ab565b50505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6112f4307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d85610a71565b60405163f305d71960e01b81523060048201526024810184905260006044820181905260648201526001600160a01b0382811660848301524260a48301527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063f305d71990849060c40160606040518083038185885af115801561137e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113a39190611d38565b505050505050565b6001600160a01b03831661140b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b606482015260840161075f565b6001600160a01b0382166114615760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f206164647265737300604482015260640161075f565b6001600160a01b038316600090815260208190526040902054818110156114de5760405162461bcd60e51b815260206004820152602b60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526a68616e2062616c616e636560a81b606482015260840161075f565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611515908490611c5f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161156191815260200190565b60405180910390a350505050565b600b5460000361157b57565b61158730600b5461164c565b306000908152602081905260409020546115a09061172b565b6115cc7f000000000000000000000000c029d5a0a5b0926485cc3ecda37f2bc696f009be600b546118e3565b60007f000000000000000000000000c029d5a0a5b0926485cc3ecda37f2bc696f009be9050806001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561162c57600080fd5b505af1158015611640573d6000803e3d6000fd5b50506000600b55505050565b6001600160a01b0382166116a25760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161075f565b80600260008282546116b49190611c5f565b90915550506001600160a01b038216600090815260208190526040812080548392906116e1908490611c5f565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061176057611760611cbd565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118029190611d66565b8160018151811061181557611815611cbd565b60200260200101906001600160a01b031690816001600160a01b031681525050611860307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610a71565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906118b5908590600090869030904290600401611d83565b600060405180830381600087803b1580156118cf57600080fd5b505af11580156113a3573d6000803e3d6000fd5b6001600160a01b0382166119435760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161075f565b6001600160a01b038216600090815260208190526040902054818110156119b75760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161075f565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610b89565b828054828255906000526020600020908101928215611a48579160200282015b82811115611a48578251825591602001919060010190611a2d565b50611a54929150611a58565b5090565b5b80821115611a545760008155600101611a59565b6001600160a01b038116811461061f57600080fd5b600060208284031215611a9457600080fd5b8135611a9f81611a6d565b9392505050565b600060208083528351808285015260005b81811015611ad357858101830151858201604001528201611ab7565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611b0757600080fd5b8235611b1281611a6d565b946020939093013593505050565b600080600060608486031215611b3557600080fd5b8335611b4081611a6d565b92506020840135611b5081611a6d565b929592945050506040919091013590565b6003811061061f57600080fd5b600060208284031215611b8057600080fd5b8135611a9f81611b61565b60008060408385031215611b9e57600080fd5b8235611ba981611b61565b9150602083013560088110611bbd57600080fd5b809150509250929050565b60008060408385031215611bdb57600080fd5b8235611be681611a6d565b91506020830135611bbd81611a6d565b600060208284031215611c0857600080fd5b5035919050565b600181811c90821680611c2357607f821691505b602082108103611c4357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156106c6576106c6611c49565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060018201611ce557611ce5611c49565b5060010190565b600082611d0957634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176106c6576106c6611c49565b818103818111156106c6576106c6611c49565b600080600060608486031215611d4d57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611d7857600080fd5b8151611a9f81611a6d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611dd35784516001600160a01b031683529383019391830191600101611dae565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f6bd2c9d4fb39ffa61374c74c39a1b82f552b8d4659685b3674a1daf35eb519e64736f6c63430008110033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c86b74062edabc1419c6375949331b7f7ae43f42

-----Decoded View---------------
Arg [0] : router_ (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : collectionsWallet_ (address): 0xC86B74062EdaBC1419C6375949331b7F7ae43F42

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 000000000000000000000000c86b74062edabc1419c6375949331b7f7ae43f42


Deployed Bytecode Sourcemap

8514:8763:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9659:54;;;;;;;;;;-1:-1:-1;9659:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;567:14:1;;560:22;542:41;;530:2;515:18;9659:54:0;;;;;;;;12187:226;;;;;;;;;;;;;:::i;:::-;;4399:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4735:167::-;;;;;;;;;;-1:-1:-1;4735:167:0;;;;;:::i;:::-;;:::i;9797:36::-;;;;;;;;;;;;;;;;;;;1613:25:1;;;1601:2;1586:18;9797:36:0;1467:177:1;4619:108:0;;;;;;;;;;-1:-1:-1;4707:12:0;;4619:108;;3544:493;;;;;;;;;;-1:-1:-1;3544:493:0;;;;;:::i;:::-;;:::i;7520:93::-;;;;;;;;;;-1:-1:-1;7520:93:0;;7603:2;2252:36:1;;2240:2;2225:18;7520:93:0;2110:184:1;9268:60:0;;;;;;;;;;-1:-1:-1;9268:60:0;;;;;:::i;:::-;;;;;;;;;;;;;;4180:211;;;;;;;;;;-1:-1:-1;4180:211:0;;;;;:::i;:::-;;:::i;9842:33::-;;;;;;;;;;-1:-1:-1;9842:33:0;;;;;;;;9092:63;;;;;;;;;;-1:-1:-1;9092:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;4045:127;;;;;;;;;;-1:-1:-1;4045:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;4146:18:0;4119:7;4146:18;;;;;;;;;;;;4045:127;1494:103;;;;;;;;;;;;;:::i;1605:87::-;;;;;;;;;;-1:-1:-1;1678:6:0;;-1:-1:-1;;;;;1678:6:0;1605:87;;;-1:-1:-1;;;;;3305:32:1;;;3287:51;;3275:2;3260:18;1605:87:0;3141:203:1;4507:104:0;;;;;;;;;;;;;:::i;9199:62::-;;;;;;;;;;-1:-1:-1;9199:62:0;;;;;:::i;:::-;;;;;;;;;;;;;;12458:522;;;:::i;6094:409::-;;;;;;;;;;-1:-1:-1;6094:409:0;;;;;:::i;:::-;;:::i;5913:173::-;;;;;;;;;;-1:-1:-1;5913:173:0;;;;;:::i;:::-;;:::i;9616:36::-;;;;;;;;;;;;;;;9724:35;;;;;;;;;;;;;;;;5754:151;;;;;;;;;;-1:-1:-1;5754:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;5870:18:0;;;5843:7;5870:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5754:151;9473:32;;;;;;;;;;-1:-1:-1;9473:32:0;;;;-1:-1:-1;;;;;9473:32:0;;;1826:201;;;;;;;;;;-1:-1:-1;1826:201:0;;;;;:::i;:::-;;:::i;9162:30::-;;;;;;;;;;-1:-1:-1;9162:30:0;;;;;:::i;:::-;;:::i;9512:42::-;;;;;;;;;;;;;;;9766:24;;;;;;;;;;;;;;;;12187:226;12237:21;:25;12233:173;;12306:17;;12298:65;;12280:12;;-1:-1:-1;;;;;12306:17:0;;12337:21;;12280:12;12298:65;12280:12;12298:65;12337:21;12306:17;12298:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12279:84;;;12386:7;12378:16;;;;;;12264:142;12233:173;12187:226::o;4399:100::-;4453:13;4486:5;4479:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4399:100;:::o;4735:167::-;4818:4;4835:37;4844:10;4856:7;4865:6;4835:8;:37::i;:::-;-1:-1:-1;4890:4:0;4735:167;;;;;:::o;3544:493::-;3684:4;3701:36;3711:6;3719:9;3730:6;3701:9;:36::i;:::-;-1:-1:-1;;;;;3777:19:0;;3750:24;3777:19;;;:11;:19;;;;;;;;3797:10;3777:31;;;;;;;;3827:26;;;;3819:84;;;;-1:-1:-1;;;3819:84:0;;5249:2:1;3819:84:0;;;5231:21:1;5288:2;5268:18;;;5261:30;5327:34;5307:18;;;5300:62;-1:-1:-1;;;5378:18:1;;;5371:43;5431:19;;3819:84:0;;;;;;;;;3939:55;3948:6;3956:10;3987:6;3968:16;:25;3939:8;:55::i;:::-;-1:-1:-1;4025:4:0;;3544:493;-1:-1:-1;;;;3544:493:0:o;4180:211::-;4294:10;4268:4;4315:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4315:32:0;;;;;;;;;;4268:4;;4285:76;;4306:7;;4315:45;;4350:10;;4315:45;:::i;:::-;4285:8;:76::i;1494:103::-;1751:10;1740:7;1678:6;;-1:-1:-1;;;;;1678:6:0;;1605:87;1740:7;-1:-1:-1;;;;;1740:21:0;;1732:66;;;;-1:-1:-1;;;1732:66:0;;;;;;;:::i;:::-;1559:30:::1;1586:1;1559:18;:30::i;4507:104::-:0;4563:13;4596:7;4589:14;;;;;:::i;12458:522::-;1751:10;1740:7;1678:6;;-1:-1:-1;;;;;1678:6:0;;1605:87;1740:7;-1:-1:-1;;;;;1740:21:0;;1732:66;;;;-1:-1:-1;;;1732:66:0;;;;;;;:::i;:::-;12529:323:::1;;;;;;;;12560:1;12529:323;;;;12586:15;12529:323;;;;12616:15;12634:7;12616:25;;;;:::i;:::-;12529:323:::0;;::::1;;12656:25;:15;12674:7;12656:25;:::i;:::-;12529:323:::0;;::::1;;12696:25;:15;12714:7;12696:25;:::i;:::-;12529:323:::0;;::::1;;12736:25;:15;12754:7;12736:25;:::i;:::-;12529:323:::0;;::::1;;12776:25;:15;12794:7;12776:25;:::i;:::-;12529:323:::0;;::::1;;12816:25;:15;12834:7;12816:25;:::i;:::-;12529:323:::0;;::::1;::::0;:13:::1;::::0;:323:::1;;:::i;:::-;-1:-1:-1::0;12904:4:0::1;4119:7:::0;4146:18;;;;;;;;;;;12865:76:::1;::::0;12923:17:::1;::::0;12912:9:::1;::::0;-1:-1:-1;;;;;12923:17:0::1;12865:20;:76::i;:::-;12953:19;:17;:19::i;6094:409::-:0;6243:10;6187:4;6231:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6231:32:0;;;;;;;;;;6282:35;;;;6274:85;;;;-1:-1:-1;;;6274:85:0;;6286:2:1;6274:85:0;;;6268:21:1;6325:2;6305:18;;;6298:30;6364:34;6344:18;;;6337:62;-1:-1:-1;;;6415:18:1;;;6408:35;6460:19;;6274:85:0;6084:401:1;6274:85:0;6395:65;6404:10;6416:7;6444:15;6425:16;:34;6395:8;:65::i;:::-;-1:-1:-1;6491:4:0;;6094:409;-1:-1:-1;;;6094:409:0:o;5913:173::-;5999:4;6016:40;6026:10;6038:9;6049:6;6016:9;:40::i;1826:201::-;1751:10;1740:7;1678:6;;-1:-1:-1;;;;;1678:6:0;;1605:87;1740:7;-1:-1:-1;;;;;1740:21:0;;1732:66;;;;-1:-1:-1;;;1732:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1915:22:0;::::1;1907:73;;;::::0;-1:-1:-1;;;1907:73:0;;6692:2:1;1907:73:0::1;::::0;::::1;6674:21:1::0;6731:2;6711:18;;;6704:30;6770:34;6750:18;;;6743:62;-1:-1:-1;;;6821:18:1;;;6814:36;6867:19;;1907:73:0::1;6490:402:1::0;1907:73:0::1;1991:28;2010:8;1991:18;:28::i;9162:30::-:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9162:30:0;:::o;7132:380::-;-1:-1:-1;;;;;7268:19:0;;7260:68;;;;-1:-1:-1;;;7260:68:0;;7099:2:1;7260:68:0;;;7081:21:1;7138:2;7118:18;;;7111:30;7177:34;7157:18;;;7150:62;-1:-1:-1;;;7228:18:1;;;7221:34;7272:19;;7260:68:0;6897:400:1;7260:68:0;-1:-1:-1;;;;;7347:21:0;;7339:68;;;;-1:-1:-1;;;7339:68:0;;7504:2:1;7339:68:0;;;7486:21:1;7543:2;7523:18;;;7516:30;7582:34;7562:18;;;7555:62;-1:-1:-1;;;7633:18:1;;;7626:32;7675:19;;7339:68:0;7302:398:1;7339:68:0;-1:-1:-1;;;;;7420:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7472:32;;1613:25:1;;;7472:32:0;;1586:18:1;7472:32:0;;;;;;;;7132:380;;;:::o;12988:3085::-;-1:-1:-1;;;;;13120:18:0;;13112:68;;;;-1:-1:-1;;;13112:68:0;;7907:2:1;13112:68:0;;;7889:21:1;7946:2;7926:18;;;7919:30;7985:34;7965:18;;;7958:62;-1:-1:-1;;;8036:18:1;;;8029:35;8081:19;;13112:68:0;7705:401:1;13112:68:0;-1:-1:-1;;;;;13199:16:0;;13191:64;;;;-1:-1:-1;;;13191:64:0;;8313:2:1;13191:64:0;;;8295:21:1;8352:2;8332:18;;;8325:30;8391:34;8371:18;;;8364:62;-1:-1:-1;;;8442:18:1;;;8435:33;8485:19;;13191:64:0;8111:399:1;13191:64:0;13272:6;13282:1;13272:11;13268:93;;13300:28;13316:4;13322:2;13326:1;13300:15;:28::i;:::-;12988:3085;;;:::o;13268:93::-;13373:9;13405:11;-1:-1:-1;;;;;13399:17:0;:2;-1:-1:-1;;;;;13399:17:0;;13395:140;;-1:-1:-1;13440:9:0;13395:140;;;13479:11;-1:-1:-1;;;;;13471:19:0;:4;-1:-1:-1;;;;;13471:19:0;;13467:68;;13515:8;13507:4;:16;;;;;;;;:::i;:::-;;;13467:68;13563:14;13551:8;;;;:26;;;;;;;;:::i;:::-;;13547:586;;13659:8;;13594:24;;;;13659:8;;13651:17;;;;;;;;:::i;:::-;13641:27;;13635:377;13683:14;13670:1;:28;13635:377;;13748:13;13762:1;13748:16;;;;;;;;:::i;:::-;;;;;;;;;13729:15;:35;13725:164;;13816:1;13807:11;;;;;;;;:::i;:::-;13789:29;;13861:8;;13725:164;13931:13;13945:1;13931:16;;;;;;;;:::i;:::-;;;;;;;;;13913:15;:34;13972:5;13909:88;;13700:3;;;;:::i;:::-;;;;13635:377;;;;14044:15;14032:27;;;;;;;;:::i;:::-;:8;;;;:27;;;;;;;;:::i;:::-;;14028:94;;14080:8;:26;;14091:15;;14080:8;-1:-1:-1;;14080:26:0;;14091:15;14080:26;;;;;;;;:::i;:::-;;;;;;14028:94;13579:554;13547:586;14161:18;14149:8;;;;:30;;;;;;;;:::i;:::-;;14145:1029;;14228:11;-1:-1:-1;;;;;4146:18:0;14196:19;4146:18;;;;;;;;;;;14291:1;4707:12;;14275:17;;;;:::i;:::-;14261:11;:31;14257:906;;;14313:13;:47;;-1:-1:-1;;14313:47:0;;;;;14403:25;;14383:16;;;;;:45;;;;;;;;:::i;:::-;;14379:139;;14453:16;:45;;14472:26;;14453:16;-1:-1:-1;;14453:45:0;;14472:26;14453:45;;;;;;14379:139;14257:906;;;14573:1;14557:13;4707:12;;;4619:108;14557:13;:17;;;;:::i;:::-;14543:11;:31;14539:624;;;14595:13;:48;;-1:-1:-1;;14595:48:0;;;;;;;14686:25;;14666:16;;;;;:45;;;;;;;;:::i;:::-;;14662:140;;14736:16;:46;;14755:27;;14736:16;-1:-1:-1;;14736:46:0;;14755:27;14736:46;;14539:624;14866:25;14846:16;;;;;;;;:45;;;;;;;:::i;:::-;;14842:138;;14916:16;:44;;-1:-1:-1;;14916:44:0;;;;;14842:138;15021:33;15004:13;;;;;;;:50;;;;;;;;:::i;:::-;;15000:148;;15079:13;:49;;-1:-1:-1;;15079:49:0;;;;;15000:148;14181:993;14145:1029;-1:-1:-1;;;;;15191:28:0;;;;;;:22;:28;;;;;;;;15186:109;;15268:13;;15254;;:28;;15268:13;;;;;15254:28;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;15244:6;:38;;15236:47;;;;;;-1:-1:-1;;;;;15312:26:0;;;;;;:22;:26;;;;;;;;15307:113;;15390:16;;15373;;:34;;15390:16;;;;;;15373:34;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;15363:6;:44;;15355:53;;;;;;15437:13;;;;;;;15436:14;:39;;;;-1:-1:-1;15462:13:0;15454:4;:21;;;;;;;;:::i;:::-;;;15436:39;:63;;;;-1:-1:-1;;;;;;15480:19:0;;;;;;:13;:19;;;;;;;;15479:20;15436:63;:85;;;;-1:-1:-1;;;;;;15504:17:0;;;;;;:13;:17;;;;;;;;15503:18;15436:85;15432:312;;;15538:12;15591:14;;15562:10;:16;15573:4;15562:16;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;15562:16:0;;;15579:8;;15562:16;;-1:-1:-1;15579:8:0;;15562:26;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;15553:6;:35;;;;:::i;:::-;:52;;;;:::i;:::-;15538:67;;15633:4;15620:9;;:17;;;;;;;:::i;:::-;;;;-1:-1:-1;15668:14:0;;-1:-1:-1;15656:8:0;;;;:26;;;;;;;;:::i;:::-;;15652:81;;15703:14;15713:4;15703:14;;:::i;:::-;;;15652:81;15523:221;15432:312;15775:13;;;;;;;15774:14;:48;;;;-1:-1:-1;15813:9:0;15805:4;:17;;;;;;;;:::i;:::-;;15774:48;:85;;;;-1:-1:-1;;;;;;15840:19:0;;;;;;:13;:19;;;;;;;;15839:20;15774:85;:120;;;;-1:-1:-1;;;;;;15877:17:0;;;;;;:13;:17;;;;;;;;15876:18;15774:120;15756:264;;;15921:13;:20;;-1:-1:-1;;15921:20:0;;;;;15958:12;:10;:12::i;:::-;15987:13;:21;;-1:-1:-1;;15987:21:0;;;15756:264;16032:33;16048:4;16054:2;16058:6;16032:15;:33::i;:::-;13101:2972;12988:3085;;;:::o;2035:191::-;2128:6;;;-1:-1:-1;;;;;2145:17:0;;;-1:-1:-1;;;;;;2145:17:0;;;;;;;2178:40;;2128:6;;;2145:17;2128:6;;2178:40;;2109:16;;2178:40;2098:128;2035:191;:::o;16891:383::-;17005:53;17022:4;17037:6;17046:11;17005:8;:53::i;:::-;17069:197;;-1:-1:-1;;;17069:197:0;;17133:4;17069:197;;;9788:34:1;9838:18;;;9831:34;;;17179:1:0;9881:18:1;;;9874:34;;;9924:18;;;9917:34;-1:-1:-1;;;;;9988:15:1;;;9967:19;;;9960:44;17240:15:0;10020:19:1;;;10013:35;17069:6:0;:22;;;;17099:9;;9722:19:1;;17069:197:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16891:383;;;:::o;6511:613::-;-1:-1:-1;;;;;6651:20:0;;6643:66;;;;-1:-1:-1;;;6643:66:0;;10572:2:1;6643:66:0;;;10554:21:1;10611:2;10591:18;;;10584:30;10650:34;10630:18;;;10623:62;-1:-1:-1;;;10701:18:1;;;10694:31;10742:19;;6643:66:0;10370:397:1;6643:66:0;-1:-1:-1;;;;;6728:23:0;;6720:67;;;;-1:-1:-1;;;6720:67:0;;10974:2:1;6720:67:0;;;10956:21:1;11013:2;10993:18;;;10986:30;11052:33;11032:18;;;11025:61;11103:18;;6720:67:0;10772:355:1;6720:67:0;-1:-1:-1;;;;;6824:17:0;;6800:21;6824:17;;;;;;;;;;;6860:23;;;;6852:79;;;;-1:-1:-1;;;6852:79:0;;11334:2:1;6852:79:0;;;11316:21:1;11373:2;11353:18;;;11346:30;11412:34;11392:18;;;11385:62;-1:-1:-1;;;11463:18:1;;;11456:41;11514:19;;6852:79:0;11132:407:1;6852:79:0;-1:-1:-1;;;;;6967:17:0;;;:9;:17;;;;;;;;;;;6987:22;;;6967:42;;7031:20;;;;;;;;:30;;7003:6;;6967:9;7031:30;;7003:6;;7031:30;:::i;:::-;;;;;;;;7096:9;-1:-1:-1;;;;;7079:35:0;7088:6;-1:-1:-1;;;;;7079:35:0;;7107:6;7079:35;;;;1613:25:1;;1601:2;1586:18;;1467:177;7079:35:0;;;;;;;;6632:492;6511:613;;;:::o;16081:349::-;16127:9;;16140:1;16127:14;16123:53;;16081:349::o;16123:53::-;16188:31;16202:4;16209:9;;16188:5;:31::i;:::-;16265:4;4119:7;4146:18;;;;;;;;;;;16230:42;;:16;:42::i;:::-;16283:29;16289:11;16302:9;;16283:5;:29::i;:::-;16325:19;16362:11;16325:49;;16385:4;-1:-1:-1;;;;;16385:9:0;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16421:1:0;16409:9;:13;-1:-1:-1;;;16081:349:0:o;4910:276::-;-1:-1:-1;;;;;4994:21:0;;4986:65;;;;-1:-1:-1;;;4986:65:0;;11746:2:1;4986:65:0;;;11728:21:1;11785:2;11765:18;;;11758:30;11824:33;11804:18;;;11797:61;11875:18;;4986:65:0;11544:355:1;4986:65:0;5080:6;5064:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;5097:18:0;;:9;:18;;;;;;;;;;:28;;5119:6;;5097:9;:28;;5119:6;;5097:28;:::i;:::-;;;;-1:-1:-1;;5141:37:0;;1613:25:1;;;-1:-1:-1;;;;;5141:37:0;;;5158:1;;5141:37;;1601:2:1;1586:18;5141:37:0;;;;;;;4910:276;;:::o;16438:445::-;16529:16;;;16543:1;16529:16;;;;;;;;16505:21;;16529:16;;;;;;;;;;-1:-1:-1;16529:16:0;16505:40;;16574:4;16556;16561:1;16556:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;16556:23:0;;;-1:-1:-1;;;;;16556:23:0;;;;;16600:6;-1:-1:-1;;;;;16600:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16590:4;16595:1;16590:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;16590:23:0;;;-1:-1:-1;;;;;16590:23:0;;;;;16624:53;16641:4;16656:6;16665:11;16624:8;:53::i;:::-;16688:187;;-1:-1:-1;;;16688:187:0;;-1:-1:-1;;;;;16688:6:0;:57;;;;:187;;16760:11;;16786:1;;16802:4;;16829;;16849:15;;16688:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5194:552;-1:-1:-1;;;;;5278:21:0;;5270:67;;;;-1:-1:-1;;;5270:67:0;;13479:2:1;5270:67:0;;;13461:21:1;13518:2;13498:18;;;13491:30;13557:34;13537:18;;;13530:62;-1:-1:-1;;;13608:18:1;;;13601:31;13649:19;;5270:67:0;13277:397:1;5270:67:0;-1:-1:-1;;;;;5375:18:0;;5350:22;5375:18;;;;;;;;;;;5412:24;;;;5404:71;;;;-1:-1:-1;;;5404:71:0;;13881:2:1;5404:71:0;;;13863:21:1;13920:2;13900:18;;;13893:30;13959:34;13939:18;;;13932:62;-1:-1:-1;;;14010:18:1;;;14003:32;14052:19;;5404:71:0;13679:398:1;5404:71:0;-1:-1:-1;;;;;5511:18:0;;:9;:18;;;;;;;;;;;5532:23;;;5511:44;;5650:12;:22;;;;;;;5701:37;1613:25:1;;;5511:9:0;;:18;5701:37;;1586:18:1;5701:37:0;1467:177:1;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:131:1;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:247;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;:::-;386:5;150:247;-1:-1:-1;;;150:247:1:o;594:548::-;706:4;735:2;764;753:9;746:21;796:6;790:13;839:6;834:2;823:9;819:18;812:34;864:1;874:140;888:6;885:1;882:13;874:140;;;983:14;;;979:23;;973:30;949:17;;;968:2;945:26;938:66;903:10;;874:140;;;878:3;1063:1;1058:2;1049:6;1038:9;1034:22;1030:31;1023:42;1133:2;1126;1122:7;1117:2;1109:6;1105:15;1101:29;1090:9;1086:45;1082:54;1074:62;;;;594:548;;;;:::o;1147:315::-;1215:6;1223;1276:2;1264:9;1255:7;1251:23;1247:32;1244:52;;;1292:1;1289;1282:12;1244:52;1331:9;1318:23;1350:31;1375:5;1350:31;:::i;:::-;1400:5;1452:2;1437:18;;;;1424:32;;-1:-1:-1;;;1147:315:1:o;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;2299:115::-;2388:1;2381:5;2378:12;2368:40;;2404:1;2401;2394:12;2419:281;2498:6;2551:2;2539:9;2530:7;2526:23;2522:32;2519:52;;;2567:1;2564;2557:12;2519:52;2606:9;2593:23;2625:45;2664:5;2625:45;:::i;2705:431::-;2793:6;2801;2854:2;2842:9;2833:7;2829:23;2825:32;2822:52;;;2870:1;2867;2860:12;2822:52;2909:9;2896:23;2928:45;2967:5;2928:45;:::i;:::-;2992:5;-1:-1:-1;3049:2:1;3034:18;;3021:32;3084:1;3072:14;;3062:42;;3100:1;3097;3090:12;3062:42;3123:7;3113:17;;;2705:431;;;;;:::o;3640:388::-;3708:6;3716;3769:2;3757:9;3748:7;3744:23;3740:32;3737:52;;;3785:1;3782;3775:12;3737:52;3824:9;3811:23;3843:31;3868:5;3843:31;:::i;:::-;3893:5;-1:-1:-1;3950:2:1;3935:18;;3922:32;3963:33;3922:32;3963:33;:::i;4033:180::-;4092:6;4145:2;4133:9;4124:7;4120:23;4116:32;4113:52;;;4161:1;4158;4151:12;4113:52;-1:-1:-1;4184:23:1;;4033:180;-1:-1:-1;4033:180:1:o;4662:380::-;4741:1;4737:12;;;;4784;;;4805:61;;4859:4;4851:6;4847:17;4837:27;;4805:61;4912:2;4904:6;4901:14;4881:18;4878:38;4875:161;;4958:10;4953:3;4949:20;4946:1;4939:31;4993:4;4990:1;4983:15;5021:4;5018:1;5011:15;4875:161;;4662:380;;;:::o;5461:127::-;5522:10;5517:3;5513:20;5510:1;5503:31;5553:4;5550:1;5543:15;5577:4;5574:1;5567:15;5593:125;5658:9;;;5679:10;;;5676:36;;;5692:18;;:::i;5723:356::-;5925:2;5907:21;;;5944:18;;;5937:30;6003:34;5998:2;5983:18;;5976:62;6070:2;6055:18;;5723:356::o;8515:127::-;8576:10;8571:3;8567:20;8564:1;8557:31;8607:4;8604:1;8597:15;8631:4;8628:1;8621:15;8647:127;8708:10;8703:3;8699:20;8696:1;8689:31;8739:4;8736:1;8729:15;8763:4;8760:1;8753:15;8779:135;8818:3;8839:17;;;8836:43;;8859:18;;:::i;:::-;-1:-1:-1;8906:1:1;8895:13;;8779:135::o;8919:217::-;8959:1;8985;8975:132;;9029:10;9024:3;9020:20;9017:1;9010:31;9064:4;9061:1;9054:15;9092:4;9089:1;9082:15;8975:132;-1:-1:-1;9121:9:1;;8919:217::o;9141:168::-;9214:9;;;9245;;9262:15;;;9256:22;;9242:37;9232:71;;9283:18;;:::i;9314:128::-;9381:9;;;9402:11;;;9399:37;;;9416:18;;:::i;10059:306::-;10147:6;10155;10163;10216:2;10204:9;10195:7;10191:23;10187:32;10184:52;;;10232:1;10229;10222:12;10184:52;10261:9;10255:16;10245:26;;10311:2;10300:9;10296:18;10290:25;10280:35;;10355:2;10344:9;10340:18;10334:25;10324:35;;10059:306;;;;;:::o;12036:251::-;12106:6;12159:2;12147:9;12138:7;12134:23;12130:32;12127:52;;;12175:1;12172;12165:12;12127:52;12207:9;12201:16;12226:31;12251:5;12226:31;:::i;12292:980::-;12554:4;12602:3;12591:9;12587:19;12633:6;12622:9;12615:25;12659:2;12697:6;12692:2;12681:9;12677:18;12670:34;12740:3;12735:2;12724:9;12720:18;12713:31;12764:6;12799;12793:13;12830:6;12822;12815:22;12868:3;12857:9;12853:19;12846:26;;12907:2;12899:6;12895:15;12881:29;;12928:1;12938:195;12952:6;12949:1;12946:13;12938:195;;;13017:13;;-1:-1:-1;;;;;13013:39:1;13001:52;;13108:15;;;;13073:12;;;;13049:1;12967:9;12938:195;;;-1:-1:-1;;;;;;;13189:32:1;;;;13184:2;13169:18;;13162:60;-1:-1:-1;;;13253:3:1;13238:19;13231:35;13150:3;12292:980;-1:-1:-1;;;12292:980:1:o

Swarm Source

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