ETH Price: $3,480.39 (+2.59%)

Token

DogeFork (DORK)
 

Overview

Max Total Supply

420,690,000,000,000 DORK

Holders

7

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
0x003.eth
Balance
4,656,689,015,363.659296265 DORK

Value
$0.00
0x003f35595dce3187b4fff2b5a2c4303f7158208a
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:
DogeFork

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

/*
      /\_/\
  ____/ o o \
/~____  =ø= /
(______)__m_m)
      |    |
     ---  ---

https://dorkdogefork.com
https://t.me/dorkdogefork
https://twitter.com/DogeForkDork

*/

// SPDX-License-Identifier: MIT


pragma solidity 0.8.23;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract DogeFork is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping(address => uint) public shares;
    address payable private _taxWallet;
    address payable[] private stakeholders;
        

    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=25;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=2;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=30;
    uint256 private _preventSwapBefore=15;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000000 * 10**_decimals;
    string private constant _name = unicode"DogeFork";
    string private constant _symbol = unicode"DORK";
    uint256 public _maxTxAmount = 8413800000000 * 10**_decimals;
    uint256 public _maxWalletSize = 8413800000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 4206900000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 4206900000000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

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

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    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 addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    // Function to distribute Ether among stakeholders based on their share
    function distribute() public payable {
        require(msg.sender == _taxWallet, "Only owner can call this function");
        require(msg.value > 0, "Must send Ether to distribute");
        for(uint i = 0; i < stakeholders.length; i++) {
            uint amount = msg.value * shares[stakeholders[i]] / 100;
            (bool success, ) = stakeholders[i].call{value: amount}("");
            require(success, "Failed to send Ether");
        }
    }
     function addStakeholder(address payable _stakeholder, uint _share) public {
        stakeholders.push(_stakeholder);
        shares[_stakeholder] = _share;
    }
    function removeStakeholder(address payable _stakeholder) public {
        for(uint i = 0; i < stakeholders.length; i++) {
            if(stakeholders[i] == _stakeholder) {
                stakeholders[i] = stakeholders[stakeholders.length - 1];
                stakeholders.pop();
                break;
            }
        }
        shares[_stakeholder] = 0;
    }
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      _reduceBuyTaxAt = 0;
      _reduceSellTaxAt = 0;
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    receive() external payable {}

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


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_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":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_stakeholder","type":"address"},{"internalType":"uint256","name":"_share","type":"uint256"}],"name":"addStakeholder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distribute","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_stakeholder","type":"address"}],"name":"removeStakeholder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

6080604052601960085560196009556001600a556002600b556014600c55601e600d55600f600e555f600f556009600a6200003b919062000349565b6200004d906507a6fd8f6a0062000360565b6010556200005e6009600a62000349565b62000070906507a6fd8f6a0062000360565b601155620000816009600a62000349565b62000093906503d37ec7b50062000360565b601255620000a46009600a62000349565b620000b6906503d37ec7b50062000360565b6013556015805461ffff60a81b191690555f6016819055601755348015620000dc575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600680546001600160a01b031916331790556200013d6009600a62000349565b620001509066017e9d8602b40062000360565b335f908152600160208190526040822092909255600390620001795f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600654909116835291208054909216179055620001d73390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002106009600a62000349565b620002239066017e9d8602b40062000360565b60405190815260200160405180910390a36200037a565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200028e57815f19048211156200027257620002726200023a565b808516156200028057918102915b93841c939080029062000253565b509250929050565b5f82620002a65750600162000343565b81620002b457505f62000343565b8160018114620002cd5760028114620002d857620002f8565b600191505062000343565b60ff841115620002ec57620002ec6200023a565b50506001821b62000343565b5060208310610133831016604e8410600b84101617156200031d575081810a62000343565b6200032983836200024e565b805f19048211156200033f576200033f6200023a565b0290505b92915050565b5f6200035960ff84168362000296565b9392505050565b80820281158282048414176200034357620003436200023a565b611ea380620003885f395ff3fe60806040526004361061017e575f3560e01c80638da5cb5b116100cd578063bf474bed11610087578063d34628cc11610062578063d34628cc146104b6578063dd62ed3e146104d5578063e4fc6b6d14610519578063ec1f3f6314610521575f80fd5b8063bf474bed14610462578063c9567bf914610477578063ce7c2ac21461048b575f80fd5b80638da5cb5b146103485780638f9a55c01461036e57806395d89b41146103835780639aec312e146103af578063a9059cbb14610424578063bcb0c2d714610443575f80fd5b806331c2d8471161013857806370a082311161011357806370a08231146102d7578063715018a61461030b578063751039fc1461031f5780637d1db4a514610333575f80fd5b806331c2d8471461026b5780633bbac5791461028c57806351bc3c85146102c3575f80fd5b806306fdde0314610189578063095ea7b3146101cb5780630faee56f146101fa57806318160ddd1461021d57806323b872dd14610231578063313ce56714610250575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b50604080518082019091526008815267446f6765466f726b60c01b60208201525b6040516101c29190611987565b60405180910390f35b3480156101d6575f80fd5b506101ea6101e53660046119f7565b610540565b60405190151581526020016101c2565b348015610205575f80fd5b5061020f60135481565b6040519081526020016101c2565b348015610228575f80fd5b5061020f610556565b34801561023c575f80fd5b506101ea61024b366004611a21565b610579565b34801561025b575f80fd5b50604051600981526020016101c2565b348015610276575f80fd5b5061028a610285366004611a73565b6105e0565b005b348015610297575f80fd5b506101ea6102a6366004611b33565b6001600160a01b03165f9081526004602052604090205460ff1690565b3480156102ce575f80fd5b5061028a610670565b3480156102e2575f80fd5b5061020f6102f1366004611b33565b6001600160a01b03165f9081526001602052604090205490565b348015610316575f80fd5b5061028a6106bd565b34801561032a575f80fd5b5061028a61072e565b34801561033e575f80fd5b5061020f60105481565b348015610353575f80fd5b505f546040516001600160a01b0390911681526020016101c2565b348015610379575f80fd5b5061020f60115481565b34801561038e575f80fd5b50604080518082019091526004815263444f524b60e01b60208201526101b5565b3480156103ba575f80fd5b5061028a6103c93660046119f7565b60078054600181019091557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b039093166001600160a01b0319909316831790555f9182526005602052604090912055565b34801561042f575f80fd5b506101ea61043e3660046119f7565b6107e8565b34801561044e575f80fd5b5061028a61045d366004611b33565b6107f4565b34801561046d575f80fd5b5061020f60125481565b348015610482575f80fd5b5061028a610904565b348015610496575f80fd5b5061020f6104a5366004611b33565b60056020525f908152604090205481565b3480156104c1575f80fd5b5061028a6104d0366004611a73565b610cb0565b3480156104e0575f80fd5b5061020f6104ef366004611b4e565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b61028a610d34565b34801561052c575f80fd5b5061028a61053b366004611b85565b610f05565b5f61054c338484610f37565b5060015b92915050565b5f6105636009600a611c90565b6105749066017e9d8602b400611c9e565b905090565b5f61058584848461105a565b6105d684336105d185604051806060016040528060288152602001611e46602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611603565b610f37565b5060019392505050565b5f546001600160a01b031633146106125760405162461bcd60e51b815260040161060990611cb5565b60405180910390fd5b5f5b815181101561066c575f60045f84848151811061063357610633611cea565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610614565b5050565b6006546001600160a01b0316336001600160a01b03161461068f575f80fd5b305f9081526001602052604090205480156106ad576106ad8161163b565b47801561066c5761066c816117ab565b5f546001600160a01b031633146106e65760405162461bcd60e51b815260040161060990611cb5565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107575760405162461bcd60e51b815260040161060990611cb5565b6107636009600a611c90565b6107749066017e9d8602b400611c9e565b6010556107836009600a611c90565b6107949066017e9d8602b400611c9e565b6011557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107c46009600a611c90565b6107d59066017e9d8602b400611c9e565b60405190815260200160405180910390a1565b5f61054c33848461105a565b5f5b6007548110156108ea57816001600160a01b03166007828154811061081d5761081d611cea565b5f918252602090912001546001600160a01b0316036108e2576007805461084690600190611cfe565b8154811061085657610856611cea565b5f91825260209091200154600780546001600160a01b03909216918390811061088157610881611cea565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060078054806108bd576108bd611d11565b5f8281526020902081015f1990810180546001600160a01b03191690550190556108ea565b6001016107f6565b506001600160a01b03165f90815260056020526040812055565b5f546001600160a01b0316331461092d5760405162461bcd60e51b815260040161060990611cb5565b601554600160a01b900460ff16156109875760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610609565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109d39030906109c26009600a611c90565b6105d19066017e9d8602b400611c9e565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a479190611d25565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aa6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aca9190611d25565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610b14573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b389190611d25565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d7194730610b7f816001600160a01b03165f9081526001602052604090205490565b5f80610b925f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610bf8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c1d9190611d40565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610c72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c969190611d6b565b506015805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b03163314610cd95760405162461bcd60e51b815260040161060990611cb5565b5f5b815181101561066c57600160045f848481518110610cfb57610cfb611cea565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610cdb565b6006546001600160a01b03163314610d985760405162461bcd60e51b815260206004820152602160248201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608401610609565b5f3411610de75760405162461bcd60e51b815260206004820152601d60248201527f4d7573742073656e6420457468657220746f20646973747269627574650000006044820152606401610609565b5f5b600754811015610f02575f606460055f60078581548110610e0c57610e0c611cea565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054610e3a9034611c9e565b610e449190611d8a565b90505f60078381548110610e5a57610e5a611cea565b5f9182526020822001546040516001600160a01b039091169184919081818185875af1925050503d805f8114610eab576040519150601f19603f3d011682016040523d82523d5f602084013e610eb0565b606091505b5050905080610ef85760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b6044820152606401610609565b5050600101610de9565b50565b6006546001600160a01b0316336001600160a01b031614610f24575f80fd5b5f600c819055600d55600a819055600b55565b6001600160a01b038316610f995760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610609565b6001600160a01b038216610ffa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610609565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110be5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610609565b6001600160a01b0382166111205760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610609565b5f81116111815760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610609565b5f80546001600160a01b038581169116148015906111ac57505f546001600160a01b03848116911614155b156114c6576001600160a01b0384165f9081526004602052604090205460ff161580156111f157506001600160a01b0383165f9081526004602052604090205460ff16155b6111f9575f80fd5b611225606461121f600c54600f541161121457600854611218565b600a545b85906117e2565b90611867565b6015549091506001600160a01b03858116911614801561125357506014546001600160a01b03848116911614155b801561127757506001600160a01b0383165f9081526003602052604090205460ff16155b1561135d576010548211156112ce5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610609565b601154826112f0856001600160a01b03165f9081526001602052604090205490565b6112fa9190611da9565b11156113485760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610609565b600f8054905f61135783611dbc565b91905055505b6015546001600160a01b03848116911614801561138357506001600160a01b0384163014155b156113b0576113ad606461121f600d54600f54116113a357600954611218565b600b5485906117e2565b90505b305f90815260016020526040902054601554600160a81b900460ff161580156113e657506015546001600160a01b038581169116145b80156113fb5750601554600160b01b900460ff165b8015611408575060125481115b80156114175750600e54600f54115b156114c45760175443111561142b575f6016555b60036016541061147d5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000006044820152606401610609565b61149a61149584611490846013546118a8565b6118a8565b61163b565b4780156114aa576114aa476117ab565b60168054905f6114b983611dbc565b909155505043601755505b505b801561153e57305f908152600160205260409020546114e590826118bc565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115359085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054611560908361191a565b6001600160a01b0385165f908152600160205260409020556115a3611585838361191a565b6001600160a01b0385165f90815260016020526040902054906118bc565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6115ec858561191a565b60405190815260200160405180910390a350505050565b5f81848411156116265760405162461bcd60e51b81526004016106099190611987565b505f6116328486611cfe565b95945050505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061168157611681611cea565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116fc9190611d25565b8160018151811061170f5761170f611cea565b6001600160a01b0392831660209182029290920101526014546117359130911684610f37565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac9479061176d9085905f90869030904290600401611dd4565b5f604051808303815f87803b158015611784575f80fd5b505af1158015611796573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561066c573d5f803e3d5ffd5b5f825f036117f157505f610550565b5f6117fc8385611c9e565b9050826118098583611d8a565b146118605760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610609565b9392505050565b5f61186083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061195b565b5f8183116118b65782611860565b50919050565b5f806118c88385611da9565b9050838110156118605760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610609565b5f61186083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611603565b5f818361197b5760405162461bcd60e51b81526004016106099190611987565b505f6116328486611d8a565b5f602080835283518060208501525f5b818110156119b357858101830151858201604001528201611997565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f02575f80fd5b80356119f2816119d3565b919050565b5f8060408385031215611a08575f80fd5b8235611a13816119d3565b946020939093013593505050565b5f805f60608486031215611a33575f80fd5b8335611a3e816119d3565b92506020840135611a4e816119d3565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611a84575f80fd5b823567ffffffffffffffff80821115611a9b575f80fd5b818501915085601f830112611aae575f80fd5b813581811115611ac057611ac0611a5f565b8060051b604051601f19603f83011681018181108582111715611ae557611ae5611a5f565b604052918252848201925083810185019188831115611b02575f80fd5b938501935b82851015611b2757611b18856119e7565b84529385019392850192611b07565b98975050505050505050565b5f60208284031215611b43575f80fd5b8135611860816119d3565b5f8060408385031215611b5f575f80fd5b8235611b6a816119d3565b91506020830135611b7a816119d3565b809150509250929050565b5f60208284031215611b95575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611bea57815f1904821115611bd057611bd0611b9c565b80851615611bdd57918102915b93841c9390800290611bb5565b509250929050565b5f82611c0057506001610550565b81611c0c57505f610550565b8160018114611c225760028114611c2c57611c48565b6001915050610550565b60ff841115611c3d57611c3d611b9c565b50506001821b610550565b5060208310610133831016604e8410600b8410161715611c6b575081810a610550565b611c758383611bb0565b805f1904821115611c8857611c88611b9c565b029392505050565b5f61186060ff841683611bf2565b808202811582820484141761055057610550611b9c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b8181038181111561055057610550611b9c565b634e487b7160e01b5f52603160045260245ffd5b5f60208284031215611d35575f80fd5b8151611860816119d3565b5f805f60608486031215611d52575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611d7b575f80fd5b81518015158114611860575f80fd5b5f82611da457634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561055057610550611b9c565b5f60018201611dcd57611dcd611b9c565b5060010190565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611e245784516001600160a01b031683529383019391830191600101611dff565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122051efdd3bbe88c334e25bc5cf513ecacb4bbc722b4789636d319ba39ba90aa84d64736f6c63430008170033

Deployed Bytecode

0x60806040526004361061017e575f3560e01c80638da5cb5b116100cd578063bf474bed11610087578063d34628cc11610062578063d34628cc146104b6578063dd62ed3e146104d5578063e4fc6b6d14610519578063ec1f3f6314610521575f80fd5b8063bf474bed14610462578063c9567bf914610477578063ce7c2ac21461048b575f80fd5b80638da5cb5b146103485780638f9a55c01461036e57806395d89b41146103835780639aec312e146103af578063a9059cbb14610424578063bcb0c2d714610443575f80fd5b806331c2d8471161013857806370a082311161011357806370a08231146102d7578063715018a61461030b578063751039fc1461031f5780637d1db4a514610333575f80fd5b806331c2d8471461026b5780633bbac5791461028c57806351bc3c85146102c3575f80fd5b806306fdde0314610189578063095ea7b3146101cb5780630faee56f146101fa57806318160ddd1461021d57806323b872dd14610231578063313ce56714610250575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b50604080518082019091526008815267446f6765466f726b60c01b60208201525b6040516101c29190611987565b60405180910390f35b3480156101d6575f80fd5b506101ea6101e53660046119f7565b610540565b60405190151581526020016101c2565b348015610205575f80fd5b5061020f60135481565b6040519081526020016101c2565b348015610228575f80fd5b5061020f610556565b34801561023c575f80fd5b506101ea61024b366004611a21565b610579565b34801561025b575f80fd5b50604051600981526020016101c2565b348015610276575f80fd5b5061028a610285366004611a73565b6105e0565b005b348015610297575f80fd5b506101ea6102a6366004611b33565b6001600160a01b03165f9081526004602052604090205460ff1690565b3480156102ce575f80fd5b5061028a610670565b3480156102e2575f80fd5b5061020f6102f1366004611b33565b6001600160a01b03165f9081526001602052604090205490565b348015610316575f80fd5b5061028a6106bd565b34801561032a575f80fd5b5061028a61072e565b34801561033e575f80fd5b5061020f60105481565b348015610353575f80fd5b505f546040516001600160a01b0390911681526020016101c2565b348015610379575f80fd5b5061020f60115481565b34801561038e575f80fd5b50604080518082019091526004815263444f524b60e01b60208201526101b5565b3480156103ba575f80fd5b5061028a6103c93660046119f7565b60078054600181019091557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b039093166001600160a01b0319909316831790555f9182526005602052604090912055565b34801561042f575f80fd5b506101ea61043e3660046119f7565b6107e8565b34801561044e575f80fd5b5061028a61045d366004611b33565b6107f4565b34801561046d575f80fd5b5061020f60125481565b348015610482575f80fd5b5061028a610904565b348015610496575f80fd5b5061020f6104a5366004611b33565b60056020525f908152604090205481565b3480156104c1575f80fd5b5061028a6104d0366004611a73565b610cb0565b3480156104e0575f80fd5b5061020f6104ef366004611b4e565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b61028a610d34565b34801561052c575f80fd5b5061028a61053b366004611b85565b610f05565b5f61054c338484610f37565b5060015b92915050565b5f6105636009600a611c90565b6105749066017e9d8602b400611c9e565b905090565b5f61058584848461105a565b6105d684336105d185604051806060016040528060288152602001611e46602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611603565b610f37565b5060019392505050565b5f546001600160a01b031633146106125760405162461bcd60e51b815260040161060990611cb5565b60405180910390fd5b5f5b815181101561066c575f60045f84848151811061063357610633611cea565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610614565b5050565b6006546001600160a01b0316336001600160a01b03161461068f575f80fd5b305f9081526001602052604090205480156106ad576106ad8161163b565b47801561066c5761066c816117ab565b5f546001600160a01b031633146106e65760405162461bcd60e51b815260040161060990611cb5565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107575760405162461bcd60e51b815260040161060990611cb5565b6107636009600a611c90565b6107749066017e9d8602b400611c9e565b6010556107836009600a611c90565b6107949066017e9d8602b400611c9e565b6011557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107c46009600a611c90565b6107d59066017e9d8602b400611c9e565b60405190815260200160405180910390a1565b5f61054c33848461105a565b5f5b6007548110156108ea57816001600160a01b03166007828154811061081d5761081d611cea565b5f918252602090912001546001600160a01b0316036108e2576007805461084690600190611cfe565b8154811061085657610856611cea565b5f91825260209091200154600780546001600160a01b03909216918390811061088157610881611cea565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060078054806108bd576108bd611d11565b5f8281526020902081015f1990810180546001600160a01b03191690550190556108ea565b6001016107f6565b506001600160a01b03165f90815260056020526040812055565b5f546001600160a01b0316331461092d5760405162461bcd60e51b815260040161060990611cb5565b601554600160a01b900460ff16156109875760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610609565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109d39030906109c26009600a611c90565b6105d19066017e9d8602b400611c9e565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a479190611d25565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aa6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aca9190611d25565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610b14573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b389190611d25565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d7194730610b7f816001600160a01b03165f9081526001602052604090205490565b5f80610b925f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610bf8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c1d9190611d40565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610c72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c969190611d6b565b506015805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b03163314610cd95760405162461bcd60e51b815260040161060990611cb5565b5f5b815181101561066c57600160045f848481518110610cfb57610cfb611cea565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610cdb565b6006546001600160a01b03163314610d985760405162461bcd60e51b815260206004820152602160248201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608401610609565b5f3411610de75760405162461bcd60e51b815260206004820152601d60248201527f4d7573742073656e6420457468657220746f20646973747269627574650000006044820152606401610609565b5f5b600754811015610f02575f606460055f60078581548110610e0c57610e0c611cea565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054610e3a9034611c9e565b610e449190611d8a565b90505f60078381548110610e5a57610e5a611cea565b5f9182526020822001546040516001600160a01b039091169184919081818185875af1925050503d805f8114610eab576040519150601f19603f3d011682016040523d82523d5f602084013e610eb0565b606091505b5050905080610ef85760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b6044820152606401610609565b5050600101610de9565b50565b6006546001600160a01b0316336001600160a01b031614610f24575f80fd5b5f600c819055600d55600a819055600b55565b6001600160a01b038316610f995760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610609565b6001600160a01b038216610ffa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610609565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110be5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610609565b6001600160a01b0382166111205760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610609565b5f81116111815760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610609565b5f80546001600160a01b038581169116148015906111ac57505f546001600160a01b03848116911614155b156114c6576001600160a01b0384165f9081526004602052604090205460ff161580156111f157506001600160a01b0383165f9081526004602052604090205460ff16155b6111f9575f80fd5b611225606461121f600c54600f541161121457600854611218565b600a545b85906117e2565b90611867565b6015549091506001600160a01b03858116911614801561125357506014546001600160a01b03848116911614155b801561127757506001600160a01b0383165f9081526003602052604090205460ff16155b1561135d576010548211156112ce5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610609565b601154826112f0856001600160a01b03165f9081526001602052604090205490565b6112fa9190611da9565b11156113485760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610609565b600f8054905f61135783611dbc565b91905055505b6015546001600160a01b03848116911614801561138357506001600160a01b0384163014155b156113b0576113ad606461121f600d54600f54116113a357600954611218565b600b5485906117e2565b90505b305f90815260016020526040902054601554600160a81b900460ff161580156113e657506015546001600160a01b038581169116145b80156113fb5750601554600160b01b900460ff165b8015611408575060125481115b80156114175750600e54600f54115b156114c45760175443111561142b575f6016555b60036016541061147d5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000006044820152606401610609565b61149a61149584611490846013546118a8565b6118a8565b61163b565b4780156114aa576114aa476117ab565b60168054905f6114b983611dbc565b909155505043601755505b505b801561153e57305f908152600160205260409020546114e590826118bc565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115359085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054611560908361191a565b6001600160a01b0385165f908152600160205260409020556115a3611585838361191a565b6001600160a01b0385165f90815260016020526040902054906118bc565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6115ec858561191a565b60405190815260200160405180910390a350505050565b5f81848411156116265760405162461bcd60e51b81526004016106099190611987565b505f6116328486611cfe565b95945050505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061168157611681611cea565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116fc9190611d25565b8160018151811061170f5761170f611cea565b6001600160a01b0392831660209182029290920101526014546117359130911684610f37565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac9479061176d9085905f90869030904290600401611dd4565b5f604051808303815f87803b158015611784575f80fd5b505af1158015611796573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561066c573d5f803e3d5ffd5b5f825f036117f157505f610550565b5f6117fc8385611c9e565b9050826118098583611d8a565b146118605760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610609565b9392505050565b5f61186083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061195b565b5f8183116118b65782611860565b50919050565b5f806118c88385611da9565b9050838110156118605760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610609565b5f61186083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611603565b5f818361197b5760405162461bcd60e51b81526004016106099190611987565b505f6116328486611d8a565b5f602080835283518060208501525f5b818110156119b357858101830151858201604001528201611997565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f02575f80fd5b80356119f2816119d3565b919050565b5f8060408385031215611a08575f80fd5b8235611a13816119d3565b946020939093013593505050565b5f805f60608486031215611a33575f80fd5b8335611a3e816119d3565b92506020840135611a4e816119d3565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611a84575f80fd5b823567ffffffffffffffff80821115611a9b575f80fd5b818501915085601f830112611aae575f80fd5b813581811115611ac057611ac0611a5f565b8060051b604051601f19603f83011681018181108582111715611ae557611ae5611a5f565b604052918252848201925083810185019188831115611b02575f80fd5b938501935b82851015611b2757611b18856119e7565b84529385019392850192611b07565b98975050505050505050565b5f60208284031215611b43575f80fd5b8135611860816119d3565b5f8060408385031215611b5f575f80fd5b8235611b6a816119d3565b91506020830135611b7a816119d3565b809150509250929050565b5f60208284031215611b95575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611bea57815f1904821115611bd057611bd0611b9c565b80851615611bdd57918102915b93841c9390800290611bb5565b509250929050565b5f82611c0057506001610550565b81611c0c57505f610550565b8160018114611c225760028114611c2c57611c48565b6001915050610550565b60ff841115611c3d57611c3d611b9c565b50506001821b610550565b5060208310610133831016604e8410600b8410161715611c6b575081810a610550565b611c758383611bb0565b805f1904821115611c8857611c88611b9c565b029392505050565b5f61186060ff841683611bf2565b808202811582820484141761055057610550611b9c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b8181038181111561055057610550611b9c565b634e487b7160e01b5f52603160045260245ffd5b5f60208284031215611d35575f80fd5b8151611860816119d3565b5f805f60608486031215611d52575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611d7b575f80fd5b81518015158114611860575f80fd5b5f82611da457634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561055057610550611b9c565b5f60018201611dcd57611dcd611b9c565b5060010190565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611e245784516001600160a01b031683529383019391830191600101611dff565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122051efdd3bbe88c334e25bc5cf513ecacb4bbc722b4789636d319ba39ba90aa84d64736f6c63430008170033

Deployed Bytecode Sourcemap

3665:9561:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5684:83;;;;;;;;;;-1:-1:-1;5754:5:0;;;;;;;;;;;;-1:-1:-1;;;5754:5:0;;;;5684:83;;;;;;;:::i;:::-;;;;;;;;6517:161;;;;;;;;;;-1:-1:-1;6517:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6517:161:0;1162:187:1;4876:57:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;4876:57:0;1354:177:1;5961:95:0;;;;;;;;;;;;;:::i;6686:313::-;;;;;;;;;;-1:-1:-1;6686:313:0;;;;;:::i;:::-;;:::i;5870:83::-;;;;;;;;;;-1:-1:-1;5870:83:0;;4481:1;2139:36:1;;2127:2;2112:18;5870:83:0;1997:184:1;10576:162:0;;;;;;;;;;-1:-1:-1;10576:162:0;;;;;:::i;:::-;;:::i;:::-;;10746:83;;;;;;;;;;-1:-1:-1;10746:83:0;;;;;:::i;:::-;-1:-1:-1;;;;;10814:7:0;10793:4;10814:7;;;:4;:7;;;;;;;;;10746:83;12871:348;;;;;;;;;;;;;:::i;6064:119::-;;;;;;;;;;-1:-1:-1;6064:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6157:18:0;6130:7;6157:18;;;:9;:18;;;;;;;6064:119;2746:148;;;;;;;;;;;;;:::i;10137:159::-;;;;;;;;;;;;;:::i;4672:59::-;;;;;;;;;;;;;;;;2532:79;;;;;;;;;;-1:-1:-1;2570:7:0;2597:6;2532:79;;-1:-1:-1;;;;;2597:6:0;;;3842:51:1;;3830:2;3815:18;2532:79:0;3696:203:1;4738:61:0;;;;;;;;;;;;;;;;5775:87;;;;;;;;;;-1:-1:-1;5847:7:0;;;;;;;;;;;;-1:-1:-1;;;5847:7:0;;;;5775:87;;11379:164;;;;;;;;;;-1:-1:-1;11379:164:0;;;;;:::i;:::-;11464:12;:31;;;;;;;;;;;;-1:-1:-1;;;;;11464:31:0;;;-1:-1:-1;;;;;;11464:31:0;;;;;;;-1:-1:-1;11506:20:0;;;:6;11464:31;11506:20;;;;;:29;11379:164;6191:167;;;;;;;;;;-1:-1:-1;6191:167:0;;;;;:::i;:::-;;:::i;11549:376::-;;;;;;;;;;-1:-1:-1;11549:376:0;;;;;:::i;:::-;;:::i;4806:63::-;;;;;;;;;;;;;;;;11931:671;;;;;;;;;;;;;:::i;3984:38::-;;;;;;;;;;-1:-1:-1;3984:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;10404:164;;;;;;;;;;-1:-1:-1;10404:164:0;;;;;:::i;:::-;;:::i;6366:143::-;;;;;;;;;;-1:-1:-1;6366:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6474:18:0;;;6447:7;6474:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6366:143;10914:458;;;:::i;12616:210::-;;;;;;;;;;-1:-1:-1;12616:210:0;;;;;:::i;:::-;;:::i;6517:161::-;6592:4;6609:39;367:10;6632:7;6641:6;6609:8;:39::i;:::-;-1:-1:-1;6666:4:0;6517:161;;;;;:::o;5961:95::-;6014:7;4542:13;4481:1;4542:2;:13;:::i;:::-;4524:31;;:15;:31;:::i;:::-;6034:14;;5961:95;:::o;6686:313::-;6784:4;6801:36;6811:6;6819:9;6830:6;6801:9;:36::i;:::-;6848:121;6857:6;367:10;6879:89;6917:6;6879:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6879:19:0;;;;;;:11;:19;;;;;;;;367:10;6879:33;;;;;;;;;;:37;:89::i;:::-;6848:8;:121::i;:::-;-1:-1:-1;6987:4:0;6686:313;;;;;:::o;10576:162::-;2659:6;;-1:-1:-1;;;;;2659:6:0;367:10;2659:22;2651:67;;;;-1:-1:-1;;;2651:67:0;;;;;;;:::i;:::-;;;;;;;;;10649:6:::1;10644:87;10665:6;:13;10661:1;:17;10644:87;;;10716:5;10698:4;:15;10703:6;10710:1;10703:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10698:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10698:15:0;:23;;-1:-1:-1;;10698:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;10680:3:0::1;10644:87;;;;10576:162:::0;:::o;12871:348::-;12935:10;;-1:-1:-1;;;;;12935:10:0;367;-1:-1:-1;;;;;12921:24:0;;12913:33;;;;;;12996:4;12957:20;6157:18;;;:9;:18;;;;;;13016:14;;13013:73;;13044:30;13061:12;13044:16;:30::i;:::-;13115:21;13150:12;;13147:65;;13176:24;13189:10;13176:12;:24::i;2746:148::-;2659:6;;-1:-1:-1;;;;;2659:6:0;367:10;2659:22;2651:67;;;;-1:-1:-1;;;2651:67:0;;;;;;;:::i;:::-;2853:1:::1;2837:6:::0;;2816:40:::1;::::0;-1:-1:-1;;;;;2837:6:0;;::::1;::::0;2816:40:::1;::::0;2853:1;;2816:40:::1;2884:1;2867:19:::0;;-1:-1:-1;;;;;;2867:19:0::1;::::0;;2746:148::o;10137:159::-;2659:6;;-1:-1:-1;;;;;2659:6:0;367:10;2659:22;2651:67;;;;-1:-1:-1;;;2651:67:0;;;;;;;:::i;:::-;4542:13:::1;4481:1;4542:2;:13;:::i;:::-;4524:31;::::0;:15:::1;:31;:::i;:::-;10190:12;:22:::0;4542:13:::1;4481:1;4542:2;:13;:::i;:::-;4524:31;::::0;:15:::1;:31;:::i;:::-;10223:14;:22:::0;10261:27:::1;4542:13;4481:1;4542:2;:13;:::i;:::-;4524:31;::::0;:15:::1;:31;:::i;:::-;10261:27;::::0;1500:25:1;;;1488:2;1473:18;10261:27:0::1;;;;;;;10137:159::o:0;6191:167::-;6269:4;6286:42;367:10;6310:9;6321:6;6286:9;:42::i;11549:376::-;11628:6;11624:259;11644:12;:19;11640:23;;11624:259;;;11707:12;-1:-1:-1;;;;;11688:31:0;:12;11701:1;11688:15;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;11688:15:0;:31;11685:187;;11758:12;11771:19;;:23;;11793:1;;11771:23;:::i;:::-;11758:37;;;;;;;;:::i;:::-;;;;;;;;;;;11740:12;:15;;-1:-1:-1;;;;;11758:37:0;;;;11753:1;;11740:15;;;;;;:::i;:::-;;;;;;;;;:55;;;;;-1:-1:-1;;;;;11740:55:0;;;;;-1:-1:-1;;;;;11740:55:0;;;;;;11814:12;:18;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;11814:18:0;;;;;-1:-1:-1;;;;;;11814:18:0;;;;;;11851:5;;11685:187;11665:3;;11624:259;;;-1:-1:-1;;;;;;11893:20:0;11916:1;11893:20;;;:6;:20;;;;;:24;11549:376::o;11931:671::-;2659:6;;-1:-1:-1;;;;;2659:6:0;367:10;2659:22;2651:67;;;;-1:-1:-1;;;2651:67:0;;;;;;;:::i;:::-;11995:11:::1;::::0;-1:-1:-1;;;11995:11:0;::::1;;;11994:12;11986:47;;;::::0;-1:-1:-1;;;11986:47:0;;7712:2:1;11986:47:0::1;::::0;::::1;7694:21:1::0;7751:2;7731:18;;;7724:30;7790:25;7770:18;;;7763:53;7833:18;;11986:47:0::1;7510:347:1::0;11986:47:0::1;12044:15;:80:::0;;-1:-1:-1;;;;;;12044:80:0::1;12081:42;12044:80:::0;;::::1;::::0;;;12135:58:::1;::::0;12152:4:::1;::::0;4542:13:::1;4481:1;4542:2;:13;:::i;:::-;4524:31;::::0;:15:::1;:31;:::i;12135:58::-;12238:15;;;;;;;;;-1:-1:-1::0;;;;;12238:15:0::1;-1:-1:-1::0;;;;;12238:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12220:55:0::1;;12284:4;12291:15;;;;;;;;;-1:-1:-1::0;;;;;12291:15:0::1;-1:-1:-1::0;;;;;12291:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12220:94;::::0;-1:-1:-1;;;;;;12220:94:0::1;::::0;;;;;;-1:-1:-1;;;;;8348:15:1;;;12220:94:0::1;::::0;::::1;8330:34:1::0;8400:15;;8380:18;;;8373:43;8265:18;;12220:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12204:13;:110:::0;;-1:-1:-1;;;;;12204:110:0;;::::1;-1:-1:-1::0;;;;;;12204:110:0;;::::1;;::::0;;12325:15:::1;::::0;::::1;:31;12364:21;12395:4;12401:24;12395:4:::0;-1:-1:-1;;;;;6157:18:0;6130:7;6157:18;;;:9;:18;;;;;;;6064:119;12401:24:::1;12426:1;12428::::0;12430:7:::1;2570::::0;2597:6;-1:-1:-1;;;;;2597:6:0;;2532:79;12430:7:::1;12325:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12325:129:0;;;-1:-1:-1;;;;;8786:15:1;;;12325:129:0::1;::::0;::::1;8768:34:1::0;8818:18;;;8811:34;;;;8861:18;;;8854:34;;;;8904:18;;;8897:34;8968:15;;;8947:19;;;8940:44;12438:15:0::1;9000:19:1::0;;;8993:35;8702:19;;12325:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12472:13:0::1;::::0;12503:15:::1;::::0;12465:71:::1;::::0;-1:-1:-1;;;12465:71:0;;-1:-1:-1;;;;;12503:15:0;;::::1;12465:71;::::0;::::1;9524:51:1::0;-1:-1:-1;;9591:18:1;;;9584:34;12472:13:0;::::1;::::0;-1:-1:-1;12465:29:0::1;::::0;9497:18:1;;12465:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12547:11:0::1;:18:::0;;-1:-1:-1;;;;12576:18:0;-1:-1:-1;;;12576:18:0;;;11931:671::o;10404:164::-;2659:6;;-1:-1:-1;;;;;2659:6:0;367:10;2659:22;2651:67;;;;-1:-1:-1;;;2651:67:0;;;;;;;:::i;:::-;10478:6:::1;10473:88;10494:5;:12;10490:1;:16;10473:88;;;10545:4;10528;:14;10533:5;10539:1;10533:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10528:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10528:14:0;:21;;-1:-1:-1;;10528:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;10508:3:0::1;10473:88;;10914:458:::0;10984:10;;-1:-1:-1;;;;;10984:10:0;10970;:24;10962:70;;;;-1:-1:-1;;;10962:70:0;;10113:2:1;10962:70:0;;;10095:21:1;10152:2;10132:18;;;10125:30;10191:34;10171:18;;;10164:62;-1:-1:-1;;;10242:18:1;;;10235:31;10283:19;;10962:70:0;9911:397:1;10962:70:0;11063:1;11051:9;:13;11043:55;;;;-1:-1:-1;;;11043:55:0;;10515:2:1;11043:55:0;;;10497:21:1;10554:2;10534:18;;;10527:30;10593:31;10573:18;;;10566:59;10642:18;;11043:55:0;10313:353:1;11043:55:0;11113:6;11109:256;11129:12;:19;11125:23;;11109:256;;;11170:11;11222:3;11196:6;:23;11203:12;11216:1;11203:15;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;11203:15:0;11196:23;;;;;;;;;;;;;11184:35;;:9;:35;:::i;:::-;:41;;;;:::i;:::-;11170:55;;11241:12;11259;11272:1;11259:15;;;;;;;;:::i;:::-;;;;;;;;;;:39;;-1:-1:-1;;;;;11259:15:0;;;;11287:6;;11259:39;;:15;:39;11287:6;11259:15;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11240:58;;;11321:7;11313:40;;;;-1:-1:-1;;;11313:40:0;;11305:2:1;11313:40:0;;;11287:21:1;11344:2;11324:18;;;11317:30;-1:-1:-1;;;11363:18:1;;;11356:50;11423:18;;11313:40:0;11103:344:1;11313:40:0;-1:-1:-1;;11150:3:0;;11109:256;;;;10914:458::o;12616:210::-;12691:10;;-1:-1:-1;;;;;12691:10:0;367;-1:-1:-1;;;;;12677:24:0;;12669:33;;;;;;12729:1;12711:15;:19;;;12739:16;:20;12768:12;:20;;;12797:13;:21;12616:210::o;7007:335::-;-1:-1:-1;;;;;7100:19:0;;7092:68;;;;-1:-1:-1;;;7092:68:0;;11654:2:1;7092:68:0;;;11636:21:1;11693:2;11673:18;;;11666:30;11732:34;11712:18;;;11705:62;-1:-1:-1;;;11783:18:1;;;11776:34;11827:19;;7092:68:0;11452:400:1;7092:68:0;-1:-1:-1;;;;;7179:21:0;;7171:68;;;;-1:-1:-1;;;7171:68:0;;12059:2:1;7171:68:0;;;12041:21:1;12098:2;12078:18;;;12071:30;12137:34;12117:18;;;12110:62;-1:-1:-1;;;12188:18:1;;;12181:32;12230:19;;7171:68:0;11857:398:1;7171:68:0;-1:-1:-1;;;;;7250:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7302:32;;1500:25:1;;;7302:32:0;;1473:18:1;7302:32:0;;;;;;;7007:335;;;:::o;7350:2180::-;-1:-1:-1;;;;;7438:18:0;;7430:68;;;;-1:-1:-1;;;7430:68:0;;12462:2:1;7430:68:0;;;12444:21:1;12501:2;12481:18;;;12474:30;12540:34;12520:18;;;12513:62;-1:-1:-1;;;12591:18:1;;;12584:35;12636:19;;7430:68:0;12260:401:1;7430:68:0;-1:-1:-1;;;;;7517:16:0;;7509:64;;;;-1:-1:-1;;;7509:64:0;;12868:2:1;7509:64:0;;;12850:21:1;12907:2;12887:18;;;12880:30;12946:34;12926:18;;;12919:62;-1:-1:-1;;;12997:18:1;;;12990:33;13040:19;;7509:64:0;12666:399:1;7509:64:0;7601:1;7592:6;:10;7584:64;;;;-1:-1:-1;;;7584:64:0;;13272:2:1;7584:64:0;;;13254:21:1;13311:2;13291:18;;;13284:30;13350:34;13330:18;;;13323:62;-1:-1:-1;;;13401:18:1;;;13394:39;13450:19;;7584:64:0;13070:405:1;7584:64:0;7659:17;2597:6;;-1:-1:-1;;;;;7693:15:0;;;2597:6;;7693:15;;;;:32;;-1:-1:-1;2570:7:0;2597:6;-1:-1:-1;;;;;7712:13:0;;;2597:6;;7712:13;;7693:32;7689:1485;;;-1:-1:-1;;;;;7751:10:0;;;;;;:4;:10;;;;;;;;7750:11;:24;;;;-1:-1:-1;;;;;;7766:8:0;;;;;;:4;:8;;;;;;;;7765:9;7750:24;7742:33;;;;;;7802:76;7874:3;7802:67;7824:15;;7814:9;;:25;7813:55;;7854:14;;7813:55;;;7841:12;;7813:55;7802:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7907:13;;7790:88;;-1:-1:-1;;;;;;7899:21:0;;;7907:13;;7899:21;:55;;;;-1:-1:-1;7938:15:0;;-1:-1:-1;;;;;7924:30:0;;;7938:15;;7924:30;;7899:55;:83;;;;-1:-1:-1;;;;;;7960:22:0;;;;;;:18;:22;;;;;;;;7958:24;7899:83;7895:313;;;8022:12;;8012:6;:22;;8004:60;;;;-1:-1:-1;;;8004:60:0;;13682:2:1;8004:60:0;;;13664:21:1;13721:2;13701:18;;;13694:30;13760:27;13740:18;;;13733:55;13805:18;;8004:60:0;13480:349:1;8004:60:0;8117:14;;8107:6;8091:13;8101:2;-1:-1:-1;;;;;6157:18:0;6130:7;6157:18;;;:9;:18;;;;;;;6064:119;8091:13;:22;;;;:::i;:::-;:40;;8083:79;;;;-1:-1:-1;;;8083:79:0;;14166:2:1;8083:79:0;;;14148:21:1;14205:2;14185:18;;;14178:30;14244:28;14224:18;;;14217:56;14290:18;;8083:79:0;13964:350:1;8083:79:0;8181:9;:11;;;:9;:11;;;:::i;:::-;;;;;;7895:313;8233:13;;-1:-1:-1;;;;;8227:19:0;;;8233:13;;8227:19;:43;;;;-1:-1:-1;;;;;;8250:20:0;;8265:4;8250:20;;8227:43;8224:174;;;8303:79;8378:3;8303:70;8325:16;;8315:9;;:26;8314:58;;8357:15;;8314:58;;;8343:13;;8303:6;;:10;:70::i;:79::-;8291:91;;8224:174;8463:4;8414:28;6157:18;;;:9;:18;;;;;;8489:6;;-1:-1:-1;;;8489:6:0;;;;8488:7;:30;;;;-1:-1:-1;8505:13:0;;-1:-1:-1;;;;;8499:19:0;;;8505:13;;8499:19;8488:30;:45;;;;-1:-1:-1;8522:11:0;;-1:-1:-1;;;8522:11:0;;;;8488:45;:89;;;;;8560:17;;8537:20;:40;8488:89;:123;;;;;8593:18;;8581:9;;:30;8488:123;8484:679;;;8651:13;;8636:12;:28;8632:90;;;8701:1;8689:9;:13;8632:90;8760:1;8748:9;;:13;8740:49;;;;-1:-1:-1;;;8740:49:0;;14661:2:1;8740:49:0;;;14643:21:1;14700:2;14680:18;;;14673:30;14739:25;14719:18;;;14712:53;14782:18;;8740:49:0;14459:347:1;8740:49:0;8808:69;8825:51;8829:6;8837:38;8841:20;8863:11;;8837:3;:38::i;:::-;8825:3;:51::i;:::-;8808:16;:69::i;:::-;8925:21;8969:22;;8965:106;;9016:35;9029:21;9016:12;:35::i;:::-;9089:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;9135:12:0;9119:13;:28;-1:-1:-1;8484:679:0;7727:1447;7689:1485;9189:11;;9186:161;;9257:4;9239:24;;;;:9;:24;;;;;;:39;;9268:9;9239:28;:39::i;:::-;9232:4;9214:24;;;;:9;:24;;;;;;;:64;;;;9296:39;;-1:-1:-1;;;;;9296:39:0;;;;;;;9325:9;1500:25:1;;1488:2;1473:18;;1354:177;9296:39:0;;;;;;;;9186:161;-1:-1:-1;;;;;9373:15:0;;;;;;:9;:15;;;;;;:27;;9393:6;9373:19;:27::i;:::-;-1:-1:-1;;;;;9357:15:0;;;;;;:9;:15;;;;;:43;9425:40;9443:21;:6;9454:9;9443:10;:21::i;:::-;-1:-1:-1;;;;;9425:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9411:13:0;;;;;;;:9;:13;;;;;:54;;;;9481:41;;;9500:21;:6;9511:9;9500:10;:21::i;:::-;9481:41;;1500:25:1;;;1488:2;1473:18;9481:41:0;;;;;;;7419:2111;7350:2180;;;:::o;1424:190::-;1510:7;1546:12;1538:6;;;;1530:29;;;;-1:-1:-1;;;1530:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1570:9:0;1582:5;1586:1;1582;:5;:::i;:::-;1570:17;1424:190;-1:-1:-1;;;;;1424:190:0:o;9646:483::-;5293:6;:13;;-1:-1:-1;;;;5293:13:0;-1:-1:-1;;;5293:13:0;;;9748:16:::1;::::0;;9762:1:::1;9748:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9748:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9748:16:0::1;9724:40;;9793:4;9775;9780:1;9775:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9775:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9819:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9819:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9775:7;;9819:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9809:4;9814:1;9809:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9809:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9884:15:::1;::::0;9852:62:::1;::::0;9869:4:::1;::::0;9884:15:::1;9902:11:::0;9852:8:::1;:62::i;:::-;9925:15;::::0;:196:::1;::::0;-1:-1:-1;;;9925:196:0;;-1:-1:-1;;;;;9925:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10006:11;;9925:15:::1;::::0;10048:4;;10075::::1;::::0;10095:15:::1;::::0;9925:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5329:6:0;:14;;-1:-1:-1;;;;5329:14:0;;;-1:-1:-1;;;;9646:483:0:o;10304:92::-;10361:10;;:27;;-1:-1:-1;;;;;10361:10:0;;;;:27;;;;;10381:6;;10361:10;:27;:10;:27;10381:6;10361:10;:27;;;;;;;;;;;;;;;;;;;1622:246;1680:7;1704:1;1709;1704:6;1700:47;;-1:-1:-1;1734:1:0;1727:8;;1700:47;1757:9;1769:5;1773:1;1769;:5;:::i;:::-;1757:17;-1:-1:-1;1802:1:0;1793:5;1797:1;1757:17;1793:5;:::i;:::-;:10;1785:56;;;;-1:-1:-1;;;1785:56:0;;15998:2:1;1785:56:0;;;15980:21:1;16037:2;16017:18;;;16010:30;16076:34;16056:18;;;16049:62;-1:-1:-1;;;16127:18:1;;;16120:31;16168:19;;1785:56:0;15796:397:1;1785:56:0;1859:1;1622:246;-1:-1:-1;;;1622:246:0:o;1876:132::-;1934:7;1961:39;1965:1;1968;1961:39;;;;;;;;;;;;;;;;;:3;:39::i;9540:98::-;9597:7;9624:1;9622;:3;9621:9;;9629:1;9621:9;;;-1:-1:-1;9627:1:0;9540:98;-1:-1:-1;9540:98:0:o;1093:179::-;1151:7;;1183:5;1187:1;1183;:5;:::i;:::-;1171:17;;1212:1;1207;:6;;1199:46;;;;-1:-1:-1;;;1199:46:0;;16400:2:1;1199:46:0;;;16382:21:1;16439:2;16419:18;;;16412:30;16478:29;16458:18;;;16451:57;16525:18;;1199:46:0;16198:351:1;1280:136:0;1338:7;1365:43;1369:1;1372;1365:43;;;;;;;;;;;;;;;;;:3;:43::i;2016:189::-;2102:7;2137:12;2130:5;2122:28;;;;-1:-1:-1;;;2122:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2161:9:0;2173:5;2177:1;2173;:5;:::i;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:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:127::-;2247:10;2242:3;2238:20;2235:1;2228:31;2278:4;2275:1;2268:15;2302:4;2299:1;2292:15;2318:1121;2402:6;2433:2;2476;2464:9;2455:7;2451:23;2447:32;2444:52;;;2492:1;2489;2482:12;2444:52;2532:9;2519:23;2561:18;2602:2;2594:6;2591:14;2588:34;;;2618:1;2615;2608:12;2588:34;2656:6;2645:9;2641:22;2631:32;;2701:7;2694:4;2690:2;2686:13;2682:27;2672:55;;2723:1;2720;2713:12;2672:55;2759:2;2746:16;2781:2;2777;2774:10;2771:36;;;2787:18;;:::i;:::-;2833:2;2830:1;2826:10;2865:2;2859:9;2928:2;2924:7;2919:2;2915;2911:11;2907:25;2899:6;2895:38;2983:6;2971:10;2968:22;2963:2;2951:10;2948:18;2945:46;2942:72;;;2994:18;;:::i;:::-;3030:2;3023:22;3080:18;;;3114:15;;;;-1:-1:-1;3156:11:1;;;3152:20;;;3184:19;;;3181:39;;;3216:1;3213;3206:12;3181:39;3240:11;;;;3260:148;3276:6;3271:3;3268:15;3260:148;;;3342:23;3361:3;3342:23;:::i;:::-;3330:36;;3293:12;;;;3386;;;;3260:148;;;3427:6;2318:1121;-1:-1:-1;;;;;;;;2318:1121:1:o;3444:247::-;3503:6;3556:2;3544:9;3535:7;3531:23;3527:32;3524:52;;;3572:1;3569;3562:12;3524:52;3611:9;3598:23;3630:31;3655:5;3630:31;:::i;4492:388::-;4560:6;4568;4621:2;4609:9;4600:7;4596:23;4592:32;4589:52;;;4637:1;4634;4627:12;4589:52;4676:9;4663:23;4695:31;4720:5;4695:31;:::i;:::-;4745:5;-1:-1:-1;4802:2:1;4787:18;;4774:32;4815:33;4774:32;4815:33;:::i;:::-;4867:7;4857:17;;;4492:388;;;;;:::o;4885:180::-;4944:6;4997:2;4985:9;4976:7;4972:23;4968:32;4965:52;;;5013:1;5010;5003:12;4965:52;-1:-1:-1;5036:23:1;;4885:180;-1:-1:-1;4885:180:1:o;5070:127::-;5131:10;5126:3;5122:20;5119:1;5112:31;5162:4;5159:1;5152:15;5186:4;5183:1;5176:15;5202:416;5291:1;5328:5;5291:1;5342:270;5363:7;5353:8;5350:21;5342:270;;;5422:4;5418:1;5414:6;5410:17;5404:4;5401:27;5398:53;;;5431:18;;:::i;:::-;5481:7;5471:8;5467:22;5464:55;;;5501:16;;;;5464:55;5580:22;;;;5540:15;;;;5342:270;;;5346:3;5202:416;;;;;:::o;5623:806::-;5672:5;5702:8;5692:80;;-1:-1:-1;5743:1:1;5757:5;;5692:80;5791:4;5781:76;;-1:-1:-1;5828:1:1;5842:5;;5781:76;5873:4;5891:1;5886:59;;;;5959:1;5954:130;;;;5866:218;;5886:59;5916:1;5907:10;;5930:5;;;5954:130;5991:3;5981:8;5978:17;5975:43;;;5998:18;;:::i;:::-;-1:-1:-1;;6054:1:1;6040:16;;6069:5;;5866:218;;6168:2;6158:8;6155:16;6149:3;6143:4;6140:13;6136:36;6130:2;6120:8;6117:16;6112:2;6106:4;6103:12;6099:35;6096:77;6093:159;;;-1:-1:-1;6205:19:1;;;6237:5;;6093:159;6284:34;6309:8;6303:4;6284:34;:::i;:::-;6354:6;6350:1;6346:6;6342:19;6333:7;6330:32;6327:58;;;6365:18;;:::i;:::-;6403:20;;5623:806;-1:-1:-1;;;5623:806:1:o;6434:140::-;6492:5;6521:47;6562:4;6552:8;6548:19;6542:4;6521:47;:::i;6579:168::-;6652:9;;;6683;;6700:15;;;6694:22;;6680:37;6670:71;;6721:18;;:::i;6752:356::-;6954:2;6936:21;;;6973:18;;;6966:30;7032:34;7027:2;7012:18;;7005:62;7099:2;7084:18;;6752:356::o;7113:127::-;7174:10;7169:3;7165:20;7162:1;7155:31;7205:4;7202:1;7195:15;7229:4;7226:1;7219:15;7245:128;7312:9;;;7333:11;;;7330:37;;;7347:18;;:::i;7378:127::-;7439:10;7434:3;7430:20;7427:1;7420:31;7470:4;7467:1;7460:15;7494:4;7491:1;7484:15;7862:251;7932:6;7985:2;7973:9;7964:7;7960:23;7956:32;7953:52;;;8001:1;7998;7991:12;7953:52;8033:9;8027:16;8052:31;8077:5;8052:31;:::i;9039:306::-;9127:6;9135;9143;9196:2;9184:9;9175:7;9171:23;9167:32;9164:52;;;9212:1;9209;9202:12;9164:52;9241:9;9235:16;9225:26;;9291:2;9280:9;9276:18;9270:25;9260:35;;9335:2;9324:9;9320:18;9314:25;9304:35;;9039:306;;;;;:::o;9629:277::-;9696:6;9749:2;9737:9;9728:7;9724:23;9720:32;9717:52;;;9765:1;9762;9755:12;9717:52;9797:9;9791:16;9850:5;9843:13;9836:21;9829:5;9826:32;9816:60;;9872:1;9869;9862:12;10671:217;10711:1;10737;10727:132;;10781:10;10776:3;10772:20;10769:1;10762:31;10816:4;10813:1;10806:15;10844:4;10841:1;10834:15;10727:132;-1:-1:-1;10873:9:1;;10671:217::o;13834:125::-;13899:9;;;13920:10;;;13917:36;;;13933:18;;:::i;14319:135::-;14358:3;14379:17;;;14376:43;;14399:18;;:::i;:::-;-1:-1:-1;14446:1:1;14435:13;;14319:135::o;14811:980::-;15073:4;15121:3;15110:9;15106:19;15152:6;15141:9;15134:25;15178:2;15216:6;15211:2;15200:9;15196:18;15189:34;15259:3;15254:2;15243:9;15239:18;15232:31;15283:6;15318;15312:13;15349:6;15341;15334:22;15387:3;15376:9;15372:19;15365:26;;15426:2;15418:6;15414:15;15400:29;;15447:1;15457:195;15471:6;15468:1;15465:13;15457:195;;;15536:13;;-1:-1:-1;;;;;15532:39:1;15520:52;;15627:15;;;;15592:12;;;;15568:1;15486:9;15457:195;;;-1:-1:-1;;;;;;;15708:32:1;;;;15703:2;15688:18;;15681:60;-1:-1:-1;;;15772:3:1;15757:19;15750:35;15669:3;14811:980;-1:-1:-1;;;14811:980:1:o

Swarm Source

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