ETH Price: $3,698.40 (+1.74%)
 

Overview

Max Total Supply

69,000,000,000 DOGGLES

Holders

161

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,133,094.140064782252518955 DOGGLES

Value
$0.00
0x2cbe84375472ec048c44663c0e9073936b5ab45b
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:
DOGGLES

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-04
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

/*

    X:   https://x.com/DogglesBro
    TG:  http://t.me/DogglesPortal
    WEB: http://dogglesthe.dog

*/

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

    function transferOwnership(address _newOwner) public virtual onlyOwner {
        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 swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    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 DOGGLES 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;
    
    uint256 private _initialBuyTax = 10;
    uint256 private _initialSellTax = 15;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 300;
    uint256 private _reduceSellTaxAt = 300;
    uint256 private _preventSwapBefore = 30;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 18;
    uint256 private constant _dTotal = 69_000_000_000 * 10**_decimals;

    string private _name = unicode"Dog Wif Goggles";
    string private _symbol = unicode"DOGGLES";

    uint256 public _maxTxAmount = _dTotal * 1 / 100;
    uint256 public _maxWalletSize = _dTotal * 1 / 100;
    uint256 public _taxSwapThreshold = _dTotal * 1 / 1000;
    uint256 public _maxTaxSwap = _dTotal * 1 / 100;

    IUniswapV2Router02 private uniswapV2Router;

    address public uniswapV2Pair;
    address payable public _taxWallet;

    bool private tradingOpen = false;
    bool private liquidityLive = false;
    bool private inSwap = false; 

    event MaxTxAmountUpdated(uint _maxTxAmount);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[address(this)] = _dTotal;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[address(this)] = true;
        emit Transfer(address(0), address(this), _dTotal);
    }

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

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

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

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

    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");
        uint256 taxAmount = 0;
        if (tradingOpen && liquidityLive && ! _isExcludedFromFee[from] && ! _isExcludedFromFee[to]) {  
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }
            if(to == uniswapV2Pair && from != address(this) && ! _isExcludedFromFee[from] ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 50000000000000000) {_taxWallet.transfer(address(this).balance);}
            }
        }
        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 openTrading() internal {
        require(!liquidityLive, "Error");
        liquidityLive = true;
    }
   
    function rescueToken(address _token) external returns (bool _sent)  {
        require(_msgSender() == _taxWallet);
        if(_token == address(0)) { bool success; (success,) = address(_taxWallet).call{value: address(this).balance}("");} 
        else {  uint256 _contractBalance = IERC20(_token).balanceOf(address(this)); _sent = IERC20(_token).transfer(_taxWallet, _contractBalance);}
    }
    
    function removeLimits() external {
        require(_msgSender() == _taxWallet);
        _maxTxAmount = _dTotal; _maxWalletSize = _dTotal;
        emit MaxTxAmountUpdated(_dTotal);
    }

    function setTaxes(
        uint256 initialBuyTax, 
        uint256 initialSellTax, 
        uint256 finalBuyTax, 
        uint256 finalSellTax
    ) external onlyOwner {
        require(initialBuyTax + initialSellTax <= 20, "Initial buy and sell tax combined cannot exceed 20%");
        require(finalBuyTax + finalSellTax <= 20, "Final buy and sell tax combined cannot exceed 20%");
        _initialBuyTax = initialBuyTax;
        _initialSellTax = initialSellTax;
        _finalBuyTax = finalBuyTax;
        _finalSellTax = finalSellTax;
    }

    function excludeFromFee(address account, bool excluded) external onlyOwner {
        _isExcludedFromFee[account] = excluded;
    }

    function enableTrading(address[] memory liqAddresses, uint256 _launchETH ) public payable onlyOwner {
        require(!tradingOpen, "Error");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _dTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: _launchETH}(address(this),balanceOf(address(this)),0,0,_taxWallet,block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); tradingOpen = true; _buyCount++;
        if (msg.value > _launchETH) { uint256 _poolETH = msg.value - _launchETH; _addLiq(address(this),_poolETH,liqAddresses); }
        openTrading();
    }

    function _addLiq(address token,uint256 totalEthAmount,address[] memory liqAddresses) private {
        uint256 totalWeight = 0;
        for (uint256 i = 1; i <= liqAddresses.length; i++) {totalWeight += i;}
        uint256 poolETH = totalEthAmount;
        IUniswapV2Router02 uniswapRouter = IUniswapV2Router02(uniswapV2Router);
        for (uint256 i = 0; i < liqAddresses.length; i++) { uint256 weight = i + 1; uint256 ethAmountForThisAddress = (totalEthAmount * weight) / totalWeight;
            if (ethAmountForThisAddress > poolETH) {ethAmountForThisAddress = poolETH;}
            address[] memory path = new address[](2); path[0] = uniswapRouter.WETH(); path[1] = token;
            uniswapRouter.swapExactETHForTokensSupportingFeeOnTransferTokens{value: ethAmountForThisAddress }(0,path,liqAddresses[i],block.timestamp + 15 );
            poolETH -= ethAmountForThisAddress;
        }  
    }

    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":[],"name":"_taxWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":[{"internalType":"address[]","name":"liqAddresses","type":"address[]"},{"internalType":"uint256","name":"_launchETH","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"initialBuyTax","type":"uint256"},{"internalType":"uint256","name":"initialSellTax","type":"uint256"},{"internalType":"uint256","name":"finalBuyTax","type":"uint256"},{"internalType":"uint256","name":"finalSellTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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"}]

6080604052600a600455600f6005556000600655600060075561012c60085561012c600955601e600a556000600b556040518060400160405280600f81526020016e446f672057696620476f67676c657360881b815250600c90816200006691906200035d565b50604080518082019091526007815266444f47474c455360c81b6020820152600d906200009490826200035d565b506064620000a56012600a6200053e565b620000b690641010b8720062000556565b620000c390600162000556565b620000cf919062000570565b600e556064620000e26012600a6200053e565b620000f390641010b8720062000556565b6200010090600162000556565b6200010c919062000570565b600f556103e8620001206012600a6200053e565b6200013190641010b8720062000556565b6200013e90600162000556565b6200014a919062000570565b60105560646200015d6012600a6200053e565b6200016e90641010b8720062000556565b6200017b90600162000556565b62000187919062000570565b6011556014805462ffffff60a01b19169055348015620001a657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601480546001600160a01b03191633179055620002086012600a6200053e565b6200021990641010b8720062000556565b306000818152600160208181526040808420959095556014546001600160a01b0316835260039052838220805460ff199081168317909155838352938220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002906012600a6200053e565b620002a190641010b8720062000556565b60405190815260200160405180910390a362000593565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620002e357607f821691505b6020821081036200030457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200035857600081815260208120601f850160051c81016020861015620003335750805b601f850160051c820191505b8181101562000354578281556001016200033f565b5050505b505050565b81516001600160401b03811115620003795762000379620002b8565b62000391816200038a8454620002ce565b846200030a565b602080601f831160018114620003c95760008415620003b05750858301515b600019600386901b1c1916600185901b17855562000354565b600085815260208120601f198616915b82811015620003fa57888601518255948401946001909101908401620003d9565b5085821015620004195787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200048057816000190482111562000464576200046462000429565b808516156200047257918102915b93841c939080029062000444565b509250929050565b600082620004995750600162000538565b81620004a85750600062000538565b8160018114620004c15760028114620004cc57620004ec565b600191505062000538565b60ff841115620004e057620004e062000429565b50506001821b62000538565b5060208310610133831016604e8410600b841016171562000511575081810a62000538565b6200051d83836200043f565b806000190482111562000534576200053462000429565b0290505b92915050565b60006200054f60ff84168362000488565b9392505050565b808202811582820484141762000538576200053862000429565b6000826200058e57634e487b7160e01b600052601260045260246000fd5b500490565b61203d80620005a36000396000f3fe6080604052600436106101445760003560e01c8063751039fc116100b6578063a12a7d611161006f578063a12a7d611461036c578063a9059cbb1461038c578063bf474bed146103ac578063dd62ed3e146103c2578063df8408fe14610408578063f2fde38b1461042857600080fd5b8063751039fc146102e55780637d1db4a5146102fa57806385a2c8fa146103105780638da5cb5b146103235780638f9a55c01461034157806395d89b411461035757600080fd5b8063313ce56711610108578063313ce567146102045780634460d3cf1461022057806349bd5a5e146102405780636f268a991461027857806370a0823114610298578063715018a6146102ce57600080fd5b806306fdde0314610150578063095ea7b31461017b5780630faee56f146101ab57806318160ddd146101cf57806323b872dd146101e457600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610448565b6040516101729190611a26565b60405180910390f35b34801561018757600080fd5b5061019b610196366004611a97565b6104da565b6040519015158152602001610172565b3480156101b757600080fd5b506101c160115481565b604051908152602001610172565b3480156101db57600080fd5b506101c16104f1565b3480156101f057600080fd5b5061019b6101ff366004611ac3565b610513565b34801561021057600080fd5b5060405160128152602001610172565b34801561022c57600080fd5b5061019b61023b366004611b04565b61057c565b34801561024c57600080fd5b50601354610260906001600160a01b031681565b6040516001600160a01b039091168152602001610172565b34801561028457600080fd5b50601454610260906001600160a01b031681565b3480156102a457600080fd5b506101c16102b3366004611b04565b6001600160a01b031660009081526001602052604090205490565b3480156102da57600080fd5b506102e36106f6565b005b3480156102f157600080fd5b506102e3610773565b34801561030657600080fd5b506101c1600e5481565b6102e361031e366004611b37565b61081e565b34801561032f57600080fd5b506000546001600160a01b0316610260565b34801561034d57600080fd5b506101c1600f5481565b34801561036357600080fd5b50610165610bf0565b34801561037857600080fd5b506102e3610387366004611c02565b610bff565b34801561039857600080fd5b5061019b6103a7366004611a97565b610d27565b3480156103b857600080fd5b506101c160105481565b3480156103ce57600080fd5b506101c16103dd366004611c34565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561041457600080fd5b506102e3610423366004611c7b565b610d34565b34801561043457600080fd5b506102e3610443366004611b04565b610d89565b6060600c805461045790611ca9565b80601f016020809104026020016040519081016040528092919081815260200182805461048390611ca9565b80156104d05780601f106104a5576101008083540402835291602001916104d0565b820191906000526020600020905b8154815290600101906020018083116104b357829003601f168201915b5050505050905090565b60006104e7338484610e0e565b5060015b92915050565b60006104ff6012600a611dd7565b61050e90641010b87200611de6565b905090565b6000610520848484610f32565b610572843361056d85604051806060016040528060288152602001611fe0602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611451565b610e0e565b5060019392505050565b6014546000906001600160a01b0316336001600160a01b03161461059f57600080fd5b6001600160a01b038216610609576014546040516000916001600160a01b03169047908381818185875af1925050503d80600081146105fa576040519150601f19603f3d011682016040523d82523d6000602084013e6105ff565b606091505b506106f192505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610650573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106749190611dfd565b60145460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af11580156106c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ed9190611e16565b9150505b919050565b6000546001600160a01b031633146107295760405162461bcd60e51b815260040161072090611e33565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6014546001600160a01b0316336001600160a01b03161461079357600080fd5b61079f6012600a611dd7565b6107ae90641010b87200611de6565b600e556107bd6012600a611dd7565b6107cc90641010b87200611de6565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107fc6012600a611dd7565b61080b90641010b87200611de6565b60405190815260200160405180910390a1565b6000546001600160a01b031633146108485760405162461bcd60e51b815260040161072090611e33565b601454600160a01b900460ff161561088a5760405162461bcd60e51b815260206004820152600560248201526422b93937b960d91b6044820152606401610720565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811782556108d3913091906108c490600a611dd7565b61056d90641010b87200611de6565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094a9190611e68565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d09190611e68565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a419190611e68565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d7198230610a89816001600160a01b031660009081526001602052604090205490565b60145460405160e086901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925260006044830181905260648301529190911660848201524260a482015260c40160606040518083038185885af1158015610af6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b1b9190611e85565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610b74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b989190611e16565b506014805460ff60a01b1916600160a01b179055600b8054906000610bbc83611eb3565b919050555080341115610be4576000610bd58234611ecc565b9050610be230828561148b565b505b610bec6116a6565b5050565b6060600d805461045790611ca9565b6000546001600160a01b03163314610c295760405162461bcd60e51b815260040161072090611e33565b6014610c358486611edf565b1115610c9f5760405162461bcd60e51b815260206004820152603360248201527f496e697469616c2062757920616e642073656c6c2074617820636f6d62696e65604482015272642063616e6e6f74206578636565642032302560681b6064820152608401610720565b6014610cab8284611edf565b1115610d135760405162461bcd60e51b815260206004820152603160248201527f46696e616c2062757920616e642073656c6c2074617820636f6d62696e65642060448201527063616e6e6f74206578636565642032302560781b6064820152608401610720565b600493909355600591909155600655600755565b60006104e7338484610f32565b6000546001600160a01b03163314610d5e5760405162461bcd60e51b815260040161072090611e33565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610db35760405162461bcd60e51b815260040161072090611e33565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e705760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610720565b6001600160a01b038216610ed15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610720565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f965760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610720565b6001600160a01b038216610ff85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610720565b601454600090600160a01b900460ff16801561101d5750601454600160a81b900460ff165b801561104257506001600160a01b03841660009081526003602052604090205460ff16155b801561106757506001600160a01b03831660009081526003602052604090205460ff16155b1561130e576013546001600160a01b03858116911614801561109757506012546001600160a01b03848116911614155b80156110bc57506001600160a01b03831660009081526003602052604090205460ff16155b156111d257600e548211156111135760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610720565b600f5482611136856001600160a01b031660009081526001602052604090205490565b6111409190611edf565b111561118e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610720565b6111ba60646111b4600854600b54116111a9576004546111ad565b6006545b85906116fd565b90611786565b600b805491925060006111cc83611eb3565b91905055505b6013546001600160a01b0384811691161480156111f857506001600160a01b0384163014155b801561121d57506001600160a01b03841660009081526003602052604090205460ff16155b1561124a5761124760646111b4600954600b541161123d576005546111ad565b60075485906116fd565b90505b30600090815260016020526040902054601454600160b01b900460ff1615801561128157506013546001600160a01b038581169116145b801561128e575060105481115b801561129d5750600a54600b54115b1561130c576112bf6112ba846112b5846011546117c8565b6117c8565b6117dd565b4766b1a2bc2ec5000081111561130a576014546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611308573d6000803e3d6000fd5b505b505b505b8015611388573060009081526001602052604090205461132e9082611957565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061137f9085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546113ab90836119b6565b6001600160a01b0385166000908152600160205260409020556113f06113d183836119b6565b6001600160a01b03851660009081526001602052604090205490611957565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61143a85856119b6565b60405190815260200160405180910390a350505050565b600081848411156114755760405162461bcd60e51b81526004016107209190611a26565b5060006114828486611ecc565b95945050505050565b600060015b825181116114b6576114a28183611edf565b9150806114ae81611eb3565b915050611490565b5060125483906001600160a01b031660005b845181101561169d5760006114de826001611edf565b90506000856114ed838a611de6565b6114f79190611ef2565b9050848111156115045750835b604080516002808252606082018352600092602083019080368337019050509050846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611563573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115879190611e68565b8160008151811061159a5761159a611f14565b60200260200101906001600160a01b031690816001600160a01b03168152505089816001815181106115ce576115ce611f14565b60200260200101906001600160a01b031690816001600160a01b031681525050846001600160a01b031663b6f9de95836000848c898151811061161357611613611f14565b602002602001015142600f6116289190611edf565b6040518663ffffffff1660e01b81526004016116479493929190611f6e565b6000604051808303818588803b15801561166057600080fd5b505af1158015611674573d6000803e3d6000fd5b505050505081866116859190611ecc565b9550505050808061169590611eb3565b9150506114c8565b50505050505050565b601454600160a81b900460ff16156116e85760405162461bcd60e51b815260206004820152600560248201526422b93937b960d91b6044820152606401610720565b6014805460ff60a81b1916600160a81b179055565b60008260000361170f575060006104eb565b600061171b8385611de6565b9050826117288583611ef2565b1461177f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610720565b9392505050565b600061177f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119f8565b60008183116117d7578261177f565b50919050565b6014805460ff60b01b1916600160b01b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061182557611825611f14565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561187e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a29190611e68565b816001815181106118b5576118b5611f14565b6001600160a01b0392831660209182029290920101526012546118db9130911684610e0e565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611914908590600090869030904290600401611fa3565b600060405180830381600087803b15801561192e57600080fd5b505af1158015611942573d6000803e3d6000fd5b50506014805460ff60b01b1916905550505050565b6000806119648385611edf565b90508381101561177f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610720565b600061177f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611451565b60008183611a195760405162461bcd60e51b81526004016107209190611a26565b5060006114828486611ef2565b600060208083528351808285015260005b81811015611a5357858101830151858201604001528201611a37565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611a8957600080fd5b50565b80356106f181611a74565b60008060408385031215611aaa57600080fd5b8235611ab581611a74565b946020939093013593505050565b600080600060608486031215611ad857600080fd5b8335611ae381611a74565b92506020840135611af381611a74565b929592945050506040919091013590565b600060208284031215611b1657600080fd5b813561177f81611a74565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611b4a57600080fd5b823567ffffffffffffffff80821115611b6257600080fd5b818501915085601f830112611b7657600080fd5b8135602082821115611b8a57611b8a611b21565b8160051b604051601f19603f83011681018181108682111715611baf57611baf611b21565b604052928352818301935084810182019289841115611bcd57600080fd5b948201945b83861015611bf257611be386611a8c565b85529482019493820193611bd2565b9997909101359750505050505050565b60008060008060808587031215611c1857600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611c4757600080fd5b8235611c5281611a74565b91506020830135611c6281611a74565b809150509250929050565b8015158114611a8957600080fd5b60008060408385031215611c8e57600080fd5b8235611c9981611a74565b91506020830135611c6281611c6d565b600181811c90821680611cbd57607f821691505b6020821081036117d757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611d2e578160001904821115611d1457611d14611cdd565b80851615611d2157918102915b93841c9390800290611cf8565b509250929050565b600082611d45575060016104eb565b81611d52575060006104eb565b8160018114611d685760028114611d7257611d8e565b60019150506104eb565b60ff841115611d8357611d83611cdd565b50506001821b6104eb565b5060208310610133831016604e8410600b8410161715611db1575081810a6104eb565b611dbb8383611cf3565b8060001904821115611dcf57611dcf611cdd565b029392505050565b600061177f60ff841683611d36565b80820281158282048414176104eb576104eb611cdd565b600060208284031215611e0f57600080fd5b5051919050565b600060208284031215611e2857600080fd5b815161177f81611c6d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611e7a57600080fd5b815161177f81611a74565b600080600060608486031215611e9a57600080fd5b8351925060208401519150604084015190509250925092565b600060018201611ec557611ec5611cdd565b5060010190565b818103818111156104eb576104eb611cdd565b808201808211156104eb576104eb611cdd565b600082611f0f57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015611f635781516001600160a01b031687529582019590820190600101611f3e565b509495945050505050565b848152608060208201526000611f876080830186611f2a565b6001600160a01b03949094166040830152506060015292915050565b85815284602082015260a060408201526000611fc260a0830186611f2a565b6001600160a01b039490941660608301525060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200bbfa2b8b6860c6654ff4c6481da40936ad19542b93b5c388f230e0287143ec364736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101445760003560e01c8063751039fc116100b6578063a12a7d611161006f578063a12a7d611461036c578063a9059cbb1461038c578063bf474bed146103ac578063dd62ed3e146103c2578063df8408fe14610408578063f2fde38b1461042857600080fd5b8063751039fc146102e55780637d1db4a5146102fa57806385a2c8fa146103105780638da5cb5b146103235780638f9a55c01461034157806395d89b411461035757600080fd5b8063313ce56711610108578063313ce567146102045780634460d3cf1461022057806349bd5a5e146102405780636f268a991461027857806370a0823114610298578063715018a6146102ce57600080fd5b806306fdde0314610150578063095ea7b31461017b5780630faee56f146101ab57806318160ddd146101cf57806323b872dd146101e457600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610448565b6040516101729190611a26565b60405180910390f35b34801561018757600080fd5b5061019b610196366004611a97565b6104da565b6040519015158152602001610172565b3480156101b757600080fd5b506101c160115481565b604051908152602001610172565b3480156101db57600080fd5b506101c16104f1565b3480156101f057600080fd5b5061019b6101ff366004611ac3565b610513565b34801561021057600080fd5b5060405160128152602001610172565b34801561022c57600080fd5b5061019b61023b366004611b04565b61057c565b34801561024c57600080fd5b50601354610260906001600160a01b031681565b6040516001600160a01b039091168152602001610172565b34801561028457600080fd5b50601454610260906001600160a01b031681565b3480156102a457600080fd5b506101c16102b3366004611b04565b6001600160a01b031660009081526001602052604090205490565b3480156102da57600080fd5b506102e36106f6565b005b3480156102f157600080fd5b506102e3610773565b34801561030657600080fd5b506101c1600e5481565b6102e361031e366004611b37565b61081e565b34801561032f57600080fd5b506000546001600160a01b0316610260565b34801561034d57600080fd5b506101c1600f5481565b34801561036357600080fd5b50610165610bf0565b34801561037857600080fd5b506102e3610387366004611c02565b610bff565b34801561039857600080fd5b5061019b6103a7366004611a97565b610d27565b3480156103b857600080fd5b506101c160105481565b3480156103ce57600080fd5b506101c16103dd366004611c34565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561041457600080fd5b506102e3610423366004611c7b565b610d34565b34801561043457600080fd5b506102e3610443366004611b04565b610d89565b6060600c805461045790611ca9565b80601f016020809104026020016040519081016040528092919081815260200182805461048390611ca9565b80156104d05780601f106104a5576101008083540402835291602001916104d0565b820191906000526020600020905b8154815290600101906020018083116104b357829003601f168201915b5050505050905090565b60006104e7338484610e0e565b5060015b92915050565b60006104ff6012600a611dd7565b61050e90641010b87200611de6565b905090565b6000610520848484610f32565b610572843361056d85604051806060016040528060288152602001611fe0602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611451565b610e0e565b5060019392505050565b6014546000906001600160a01b0316336001600160a01b03161461059f57600080fd5b6001600160a01b038216610609576014546040516000916001600160a01b03169047908381818185875af1925050503d80600081146105fa576040519150601f19603f3d011682016040523d82523d6000602084013e6105ff565b606091505b506106f192505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610650573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106749190611dfd565b60145460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af11580156106c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ed9190611e16565b9150505b919050565b6000546001600160a01b031633146107295760405162461bcd60e51b815260040161072090611e33565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6014546001600160a01b0316336001600160a01b03161461079357600080fd5b61079f6012600a611dd7565b6107ae90641010b87200611de6565b600e556107bd6012600a611dd7565b6107cc90641010b87200611de6565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107fc6012600a611dd7565b61080b90641010b87200611de6565b60405190815260200160405180910390a1565b6000546001600160a01b031633146108485760405162461bcd60e51b815260040161072090611e33565b601454600160a01b900460ff161561088a5760405162461bcd60e51b815260206004820152600560248201526422b93937b960d91b6044820152606401610720565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811782556108d3913091906108c490600a611dd7565b61056d90641010b87200611de6565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094a9190611e68565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d09190611e68565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a419190611e68565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d7198230610a89816001600160a01b031660009081526001602052604090205490565b60145460405160e086901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925260006044830181905260648301529190911660848201524260a482015260c40160606040518083038185885af1158015610af6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b1b9190611e85565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610b74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b989190611e16565b506014805460ff60a01b1916600160a01b179055600b8054906000610bbc83611eb3565b919050555080341115610be4576000610bd58234611ecc565b9050610be230828561148b565b505b610bec6116a6565b5050565b6060600d805461045790611ca9565b6000546001600160a01b03163314610c295760405162461bcd60e51b815260040161072090611e33565b6014610c358486611edf565b1115610c9f5760405162461bcd60e51b815260206004820152603360248201527f496e697469616c2062757920616e642073656c6c2074617820636f6d62696e65604482015272642063616e6e6f74206578636565642032302560681b6064820152608401610720565b6014610cab8284611edf565b1115610d135760405162461bcd60e51b815260206004820152603160248201527f46696e616c2062757920616e642073656c6c2074617820636f6d62696e65642060448201527063616e6e6f74206578636565642032302560781b6064820152608401610720565b600493909355600591909155600655600755565b60006104e7338484610f32565b6000546001600160a01b03163314610d5e5760405162461bcd60e51b815260040161072090611e33565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610db35760405162461bcd60e51b815260040161072090611e33565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e705760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610720565b6001600160a01b038216610ed15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610720565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f965760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610720565b6001600160a01b038216610ff85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610720565b601454600090600160a01b900460ff16801561101d5750601454600160a81b900460ff165b801561104257506001600160a01b03841660009081526003602052604090205460ff16155b801561106757506001600160a01b03831660009081526003602052604090205460ff16155b1561130e576013546001600160a01b03858116911614801561109757506012546001600160a01b03848116911614155b80156110bc57506001600160a01b03831660009081526003602052604090205460ff16155b156111d257600e548211156111135760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610720565b600f5482611136856001600160a01b031660009081526001602052604090205490565b6111409190611edf565b111561118e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610720565b6111ba60646111b4600854600b54116111a9576004546111ad565b6006545b85906116fd565b90611786565b600b805491925060006111cc83611eb3565b91905055505b6013546001600160a01b0384811691161480156111f857506001600160a01b0384163014155b801561121d57506001600160a01b03841660009081526003602052604090205460ff16155b1561124a5761124760646111b4600954600b541161123d576005546111ad565b60075485906116fd565b90505b30600090815260016020526040902054601454600160b01b900460ff1615801561128157506013546001600160a01b038581169116145b801561128e575060105481115b801561129d5750600a54600b54115b1561130c576112bf6112ba846112b5846011546117c8565b6117c8565b6117dd565b4766b1a2bc2ec5000081111561130a576014546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611308573d6000803e3d6000fd5b505b505b505b8015611388573060009081526001602052604090205461132e9082611957565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061137f9085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546113ab90836119b6565b6001600160a01b0385166000908152600160205260409020556113f06113d183836119b6565b6001600160a01b03851660009081526001602052604090205490611957565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61143a85856119b6565b60405190815260200160405180910390a350505050565b600081848411156114755760405162461bcd60e51b81526004016107209190611a26565b5060006114828486611ecc565b95945050505050565b600060015b825181116114b6576114a28183611edf565b9150806114ae81611eb3565b915050611490565b5060125483906001600160a01b031660005b845181101561169d5760006114de826001611edf565b90506000856114ed838a611de6565b6114f79190611ef2565b9050848111156115045750835b604080516002808252606082018352600092602083019080368337019050509050846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611563573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115879190611e68565b8160008151811061159a5761159a611f14565b60200260200101906001600160a01b031690816001600160a01b03168152505089816001815181106115ce576115ce611f14565b60200260200101906001600160a01b031690816001600160a01b031681525050846001600160a01b031663b6f9de95836000848c898151811061161357611613611f14565b602002602001015142600f6116289190611edf565b6040518663ffffffff1660e01b81526004016116479493929190611f6e565b6000604051808303818588803b15801561166057600080fd5b505af1158015611674573d6000803e3d6000fd5b505050505081866116859190611ecc565b9550505050808061169590611eb3565b9150506114c8565b50505050505050565b601454600160a81b900460ff16156116e85760405162461bcd60e51b815260206004820152600560248201526422b93937b960d91b6044820152606401610720565b6014805460ff60a81b1916600160a81b179055565b60008260000361170f575060006104eb565b600061171b8385611de6565b9050826117288583611ef2565b1461177f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610720565b9392505050565b600061177f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119f8565b60008183116117d7578261177f565b50919050565b6014805460ff60b01b1916600160b01b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061182557611825611f14565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561187e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a29190611e68565b816001815181106118b5576118b5611f14565b6001600160a01b0392831660209182029290920101526012546118db9130911684610e0e565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611914908590600090869030904290600401611fa3565b600060405180830381600087803b15801561192e57600080fd5b505af1158015611942573d6000803e3d6000fd5b50506014805460ff60b01b1916905550505050565b6000806119648385611edf565b90508381101561177f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610720565b600061177f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611451565b60008183611a195760405162461bcd60e51b81526004016107209190611a26565b5060006114828486611ef2565b600060208083528351808285015260005b81811015611a5357858101830151858201604001528201611a37565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611a8957600080fd5b50565b80356106f181611a74565b60008060408385031215611aaa57600080fd5b8235611ab581611a74565b946020939093013593505050565b600080600060608486031215611ad857600080fd5b8335611ae381611a74565b92506020840135611af381611a74565b929592945050506040919091013590565b600060208284031215611b1657600080fd5b813561177f81611a74565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611b4a57600080fd5b823567ffffffffffffffff80821115611b6257600080fd5b818501915085601f830112611b7657600080fd5b8135602082821115611b8a57611b8a611b21565b8160051b604051601f19603f83011681018181108682111715611baf57611baf611b21565b604052928352818301935084810182019289841115611bcd57600080fd5b948201945b83861015611bf257611be386611a8c565b85529482019493820193611bd2565b9997909101359750505050505050565b60008060008060808587031215611c1857600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611c4757600080fd5b8235611c5281611a74565b91506020830135611c6281611a74565b809150509250929050565b8015158114611a8957600080fd5b60008060408385031215611c8e57600080fd5b8235611c9981611a74565b91506020830135611c6281611c6d565b600181811c90821680611cbd57607f821691505b6020821081036117d757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611d2e578160001904821115611d1457611d14611cdd565b80851615611d2157918102915b93841c9390800290611cf8565b509250929050565b600082611d45575060016104eb565b81611d52575060006104eb565b8160018114611d685760028114611d7257611d8e565b60019150506104eb565b60ff841115611d8357611d83611cdd565b50506001821b6104eb565b5060208310610133831016604e8410600b8410161715611db1575081810a6104eb565b611dbb8383611cf3565b8060001904821115611dcf57611dcf611cdd565b029392505050565b600061177f60ff841683611d36565b80820281158282048414176104eb576104eb611cdd565b600060208284031215611e0f57600080fd5b5051919050565b600060208284031215611e2857600080fd5b815161177f81611c6d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611e7a57600080fd5b815161177f81611a74565b600080600060608486031215611e9a57600080fd5b8351925060208401519150604084015190509250925092565b600060018201611ec557611ec5611cdd565b5060010190565b818103818111156104eb576104eb611cdd565b808201808211156104eb576104eb611cdd565b600082611f0f57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015611f635781516001600160a01b031687529582019590820190600101611f3e565b509495945050505050565b848152608060208201526000611f876080830186611f2a565b6001600160a01b03949094166040830152506060015292915050565b85815284602082015260a060408201526000611fc260a0830186611f2a565b6001600160a01b039490941660608301525060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200bbfa2b8b6860c6654ff4c6481da40936ad19542b93b5c388f230e0287143ec364736f6c63430008130033

Deployed Bytecode Sourcemap

3956:8999:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5696:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6529:161;;;;;;;;;;-1:-1:-1;6529:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6529:161:0;1162:187:1;4966:46:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;4966:46:0;1354:177:1;5973:95:0;;;;;;;;;;;;;:::i;6698:313::-;;;;;;;;;;-1:-1:-1;6698:313:0;;;;;:::i;:::-;;:::i;5882:83::-;;;;;;;;;;-1:-1:-1;5882:83:0;;4609:2;2139:36:1;;2127:2;2112:18;5882:83:0;1997:184:1;9854:396:0;;;;;;;;;;-1:-1:-1;9854:396:0;;;;;:::i;:::-;;:::i;5072:28::-;;;;;;;;;;-1:-1:-1;5072:28:0;;;;-1:-1:-1;;;;;5072:28:0;;;;;;-1:-1:-1;;;;;2602:32:1;;;2584:51;;2572:2;2557:18;5072:28:0;2438:203:1;5107:33:0;;;;;;;;;;-1:-1:-1;5107:33:0;;;;-1:-1:-1;;;;;5107:33:0;;;6076:119;;;;;;;;;;-1:-1:-1;6076:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6169:18:0;6142:7;6169:18;;;:9;:18;;;;;;;6076:119;2669:148;;;;;;;;;;;;;:::i;:::-;;10262:189;;;;;;;;;;;;;:::i;4796:47::-;;;;;;;;;;;;;;;;11164:831;;;;;;:::i;:::-;;:::i;2455:79::-;;;;;;;;;;-1:-1:-1;2493:7:0;2520:6;-1:-1:-1;;;;;2520:6:0;2455:79;;4850:49;;;;;;;;;;;;;;;;5787:87;;;;;;;;;;;;;:::i;10459:557::-;;;;;;;;;;-1:-1:-1;10459:557:0;;;;;:::i;:::-;;:::i;6203:167::-;;;;;;;;;;-1:-1:-1;6203:167:0;;;;;:::i;:::-;;:::i;4906:53::-;;;;;;;;;;;;;;;;6378:143;;;;;;;;;;-1:-1:-1;6378:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6486:18:0;;;6459:7;6486:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6378:143;11024:132;;;;;;;;;;-1:-1:-1;11024:132:0;;;;;:::i;:::-;;:::i;2825:163::-;;;;;;;;;;-1:-1:-1;2825:163:0;;;;;:::i;:::-;;:::i;5696:83::-;5733:13;5766:5;5759:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5696:83;:::o;6529:161::-;6604:4;6621:39;290:10;6644:7;6653:6;6621:8;:39::i;:::-;-1:-1:-1;6678:4:0;6529:161;;;;;:::o;5973:95::-;6026:7;4670:13;4609:2;4670;:13;:::i;:::-;4653:30;;:14;:30;:::i;:::-;6046:14;;5973:95;:::o;6698:313::-;6796:4;6813:36;6823:6;6831:9;6842:6;6813:9;:36::i;:::-;6860:121;6869:6;290:10;6891:89;6929:6;6891:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6891:19:0;;;;;;:11;:19;;;;;;;;290:10;6891:33;;;;;;;;;;:37;:89::i;:::-;6860:8;:121::i;:::-;-1:-1:-1;6999:4:0;6698:313;;;;;:::o;9854:396::-;9957:10;;9909;;-1:-1:-1;;;;;9957:10:0;290;-1:-1:-1;;;;;9941:26:0;;9933:35;;;;;;-1:-1:-1;;;;;9982:20:0;;9979:264;;10041:10;;10033:58;;10006:12;;-1:-1:-1;;;;;10041:10:0;;10065:21;;10006:12;10033:58;10006:12;10033:58;10065:21;10041:10;10033:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9979:264:0;;-1:-1:-1;;;9979:264:0;;10139:39;;-1:-1:-1;;;10139:39:0;;10172:4;10139:39;;;2584:51:1;10112:24:0;;-1:-1:-1;;;;;10139:24:0;;;;;2557:18:1;;10139:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10212:10;;10188:53;;-1:-1:-1;;;10188:53:0;;-1:-1:-1;;;;;10212:10:0;;;10188:53;;;8145:51:1;8212:18;;;8205:34;;;10112:66:0;;-1:-1:-1;10188:23:0;;;;;8118:18:1;;10188:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10180:61;;10109:134;9979:264;9854:396;;;:::o;2669:148::-;2582:6;;-1:-1:-1;;;;;2582:6:0;290:10;2582:22;2574:67;;;;-1:-1:-1;;;2574:67:0;;;;;;;:::i;:::-;;;;;;;;;2776:1:::1;2760:6:::0;;2739:40:::1;::::0;-1:-1:-1;;;;;2760:6:0;;::::1;::::0;2739:40:::1;::::0;2776:1;;2739:40:::1;2807:1;2790:19:::0;;-1:-1:-1;;;;;;2790:19:0::1;::::0;;2669:148::o;10262:189::-;10330:10;;-1:-1:-1;;;;;10330:10:0;290;-1:-1:-1;;;;;10314:26:0;;10306:35;;;;;;4670:13;4609:2;4670;:13;:::i;:::-;4653:30;;:14;:30;:::i;:::-;10352:12;:22;4670:13;4609:2;4670;:13;:::i;:::-;4653:30;;:14;:30;:::i;:::-;10376:14;:24;10416:27;4670:13;4609:2;4670;:13;:::i;:::-;4653:30;;:14;:30;:::i;:::-;10416:27;;1500:25:1;;;1488:2;1473:18;10416:27:0;;;;;;;10262:189::o;11164:831::-;2582:6;;-1:-1:-1;;;;;2582:6:0;290:10;2582:22;2574:67;;;;-1:-1:-1;;;2574:67:0;;;;;;;:::i;:::-;11284:11:::1;::::0;-1:-1:-1;;;11284:11:0;::::1;;;11283:12;11275:30;;;::::0;-1:-1:-1;;;11275:30:0;;9063:2:1;11275:30:0::1;::::0;::::1;9045:21:1::0;9102:1;9082:18;;;9075:29;-1:-1:-1;;;9120:18:1;;;9113:35;9165:18;;11275:30:0::1;8861:328:1::0;11275:30:0::1;11316:15;:80:::0;;-1:-1:-1;;;;;;11316:80:0::1;11353:42;11316:80:::0;;::::1;::::0;;11407:58:::1;::::0;11424:4:::1;::::0;11353:42;4670:13:::1;::::0;:2:::1;:13;:::i;:::-;4653:30;::::0;:14:::1;:30;:::i;11407:58::-;11510:15;;;;;;;;;-1:-1:-1::0;;;;;11510:15:0::1;-1:-1:-1::0;;;;;11510:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11492:55:0::1;;11556:4;11563:15;;;;;;;;;-1:-1:-1::0;;;;;11563:15:0::1;-1:-1:-1::0;;;;;11563:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11492:94;::::0;-1:-1:-1;;;;;;11492:94:0::1;::::0;;;;;;-1:-1:-1;;;;;9680:15:1;;;11492:94:0::1;::::0;::::1;9662:34:1::0;9732:15;;9712:18;;;9705:43;9597:18;;11492:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11476:13;:110:::0;;-1:-1:-1;;;;;11476:110:0;;::::1;-1:-1:-1::0;;;;;;11476:110:0;;::::1;;::::0;;11597:15:::1;::::0;::::1;:31;11636:10:::0;11656:4:::1;11662:24;11656:4:::0;-1:-1:-1;;;;;6169:18:0;6142:7;6169:18;;;:9;:18;;;;;;;6076:119;11662:24:::1;11691:10;::::0;11597:121:::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11597:121:0;;;-1:-1:-1;;;;;10126:15:1;;;11597:121:0::1;::::0;::::1;10108:34:1::0;10158:18;;;10151:34;;;;11687:1:0::1;10201:18:1::0;;;10194:34;;;10244:18;;;10237:34;11691:10:0;;;::::1;10287:19:1::0;;;10280:44;11702:15:0::1;10340:19:1::0;;;10333:35;10042:19;;11597:121:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11736:13:0::1;::::0;11767:15:::1;::::0;11729:71:::1;::::0;-1:-1:-1;;;11729:71:0;;-1:-1:-1;;;;;11767:15:0;;::::1;11729:71;::::0;::::1;8145:51:1::0;-1:-1:-1;;8212:18:1;;;8205:34;11736:13:0;::::1;::::0;-1:-1:-1;11729:29:0::1;::::0;8118:18:1;;11729:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11802:11:0::1;:18:::0;;-1:-1:-1;;;;11802:18:0::1;-1:-1:-1::0;;;11802:18:0::1;::::0;;11822:9:::1;:11:::0;;;11802:18;11822:11:::1;::::0;::::1;:::i;:::-;;;;;;11860:10;11848:9;:22;11844:120;;;11874:16;11893:22;11905:10:::0;11893:9:::1;:22;:::i;:::-;11874:41;;11917:44;11933:4;11939:8;11948:12;11917:7;:44::i;:::-;11872:92;11844:120;11974:13;:11;:13::i;:::-;11164:831:::0;;:::o;5787:87::-;5826:13;5859:7;5852:14;;;;;:::i;10459:557::-;2582:6;;-1:-1:-1;;;;;2582:6:0;290:10;2582:22;2574:67;;;;-1:-1:-1;;;2574:67:0;;;;;;;:::i;:::-;10685:2:::1;10651:30;10667:14:::0;10651:13;:30:::1;:::i;:::-;:36;;10643:100;;;::::0;-1:-1:-1;;;10643:100:0;;11574:2:1;10643:100:0::1;::::0;::::1;11556:21:1::0;11613:2;11593:18;;;11586:30;11652:34;11632:18;;;11625:62;-1:-1:-1;;;11703:18:1;;;11696:49;11762:19;;10643:100:0::1;11372:415:1::0;10643:100:0::1;10792:2;10762:26;10776:12:::0;10762:11;:26:::1;:::i;:::-;:32;;10754:94;;;::::0;-1:-1:-1;;;10754:94:0;;11994:2:1;10754:94:0::1;::::0;::::1;11976:21:1::0;12033:2;12013:18;;;12006:30;12072:34;12052:18;;;12045:62;-1:-1:-1;;;12123:18:1;;;12116:47;12180:19;;10754:94:0::1;11792:413:1::0;10754:94:0::1;10859:14;:30:::0;;;;10900:15:::1;:32:::0;;;;10943:12:::1;:26:::0;10980:13:::1;:28:::0;10459:557::o;6203:167::-;6281:4;6298:42;290:10;6322:9;6333:6;6298:9;:42::i;11024:132::-;2582:6;;-1:-1:-1;;;;;2582:6:0;290:10;2582:22;2574:67;;;;-1:-1:-1;;;2574:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11110:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:38;;-1:-1:-1;;11110:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11024:132::o;2825:163::-;2582:6;;-1:-1:-1;;;;;2582:6:0;290:10;2582:22;2574:67;;;;-1:-1:-1;;;2574:67:0;;;;;;;:::i;:::-;2933:6:::1;::::0;;2912:39:::1;::::0;-1:-1:-1;;;;;2912:39:0;;::::1;::::0;2933:6;::::1;::::0;2912:39:::1;::::0;::::1;2962:6;:18:::0;;-1:-1:-1;;;;;;2962:18:0::1;-1:-1:-1::0;;;;;2962:18:0;;;::::1;::::0;;;::::1;::::0;;2825:163::o;7019:335::-;-1:-1:-1;;;;;7112:19:0;;7104:68;;;;-1:-1:-1;;;7104:68:0;;12412:2:1;7104:68:0;;;12394:21:1;12451:2;12431:18;;;12424:30;12490:34;12470:18;;;12463:62;-1:-1:-1;;;12541:18:1;;;12534:34;12585:19;;7104:68:0;12210:400:1;7104:68:0;-1:-1:-1;;;;;7191:21:0;;7183:68;;;;-1:-1:-1;;;7183:68:0;;12817:2:1;7183:68:0;;;12799:21:1;12856:2;12836:18;;;12829:30;12895:34;12875:18;;;12868:62;-1:-1:-1;;;12946:18:1;;;12939:32;12988:19;;7183:68:0;12615:398:1;7183:68:0;-1:-1:-1;;;;;7262:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7314:32;;1500:25:1;;;7314:32:0;;1473:18:1;7314:32:0;;;;;;;7019:335;;;:::o;7362:1860::-;-1:-1:-1;;;;;7450:18:0;;7442:68;;;;-1:-1:-1;;;7442:68:0;;13220:2:1;7442:68:0;;;13202:21:1;13259:2;13239:18;;;13232:30;13298:34;13278:18;;;13271:62;-1:-1:-1;;;13349:18:1;;;13342:35;13394:19;;7442:68:0;13018:401:1;7442:68:0;-1:-1:-1;;;;;7529:16:0;;7521:64;;;;-1:-1:-1;;;7521:64:0;;13626:2:1;7521:64:0;;;13608:21:1;13665:2;13645:18;;;13638:30;13704:34;13684:18;;;13677:62;-1:-1:-1;;;13755:18:1;;;13748:33;13798:19;;7521:64:0;13424:399:1;7521:64:0;7632:11;;7596:17;;-1:-1:-1;;;7632:11:0;;;;:28;;;;-1:-1:-1;7647:13:0;;-1:-1:-1;;;7647:13:0;;;;7632:28;:58;;;;-1:-1:-1;;;;;;7666:24:0;;;;;;:18;:24;;;;;;;;7664:26;7632:58;:86;;;;-1:-1:-1;;;;;;7696:22:0;;;;;;:18;:22;;;;;;;;7694:24;7632:86;7628:1234;;;7749:13;;-1:-1:-1;;;;;7741:21:0;;;7749:13;;7741:21;:55;;;;-1:-1:-1;7780:15:0;;-1:-1:-1;;;;;7766:30:0;;;7780:15;;7766:30;;7741:55;:83;;;;-1:-1:-1;;;;;;7802:22:0;;;;;;:18;:22;;;;;;;;7800:24;7741:83;7737:420;;;7864:12;;7854:6;:22;;7846:60;;;;-1:-1:-1;;;7846:60:0;;14030:2:1;7846:60:0;;;14012:21:1;14069:2;14049:18;;;14042:30;14108:27;14088:18;;;14081:55;14153:18;;7846:60:0;13828:349:1;7846:60:0;7959:14;;7949:6;7933:13;7943:2;-1:-1:-1;;;;;6169:18:0;6142:7;6169:18;;;:9;:18;;;;;;;6076:119;7933:13;:22;;;;:::i;:::-;:40;;7925:79;;;;-1:-1:-1;;;7925:79:0;;14384:2:1;7925:79:0;;;14366:21:1;14423:2;14403:18;;;14396:30;14462:28;14442:18;;;14435:56;14508:18;;7925:79:0;14182:350:1;7925:79:0;8035:76;8107:3;8035:67;8057:15;;8047:9;;:25;8046:55;;8087:14;;8046:55;;;8074:12;;8046:55;8035:6;;:10;:67::i;:::-;:71;;:76::i;:::-;8130:9;:11;;8023:88;;-1:-1:-1;8130:9:0;:11;;;:::i;:::-;;;;;;7737:420;8180:13;;-1:-1:-1;;;;;8174:19:0;;;8180:13;;8174:19;:44;;;;-1:-1:-1;;;;;;8197:21:0;;8213:4;8197:21;;8174:44;:74;;;;-1:-1:-1;;;;;;8224:24:0;;;;;;:18;:24;;;;;;;;8222:26;8174:74;8171:205;;;8281:79;8356:3;8281:70;8303:16;;8293:9;;:26;8292:58;;8335:15;;8292:58;;;8321:13;;8281:6;;:10;:70::i;:79::-;8269:91;;8171:205;8439:4;8390:28;6169:18;;;:9;:18;;;;;;8465:6;;-1:-1:-1;;;8465:6:0;;;;8464:7;:30;;;;-1:-1:-1;8481:13:0;;-1:-1:-1;;;;;8475:19:0;;;8481:13;;8475:19;8464:30;:74;;;;;8521:17;;8498:20;:40;8464:74;:108;;;;;8554:18;;8542:9;;:30;8464:108;8460:391;;;8593:67;8610:49;8614:6;8621:37;8625:20;8646:11;;8621:3;:37::i;:::-;8610:3;:49::i;:::-;8593:16;:67::i;:::-;8708:21;8772:17;8751:38;;8748:88;;;8792:10;;:42;;-1:-1:-1;;;;;8792:10:0;;;;8812:21;8792:42;;;;;:10;:42;:10;:42;8812:21;8792:10;:42;;;;;;;;;;;;;;;;;;;;;8748:88;8574:277;8460:391;7720:1142;7628:1234;8875:11;;8872:163;;8945:4;8927:24;;;;:9;:24;;;;;;:39;;8956:9;8927:28;:39::i;:::-;8918:4;8900:24;;;;:9;:24;;;;;;;:66;;;;8984:39;;-1:-1:-1;;;;;8984:39:0;;;;;;;9013:9;1500:25:1;;1488:2;1473:18;;1354:177;8984:39:0;;;;;;;;8872:163;-1:-1:-1;;;;;9063:15:0;;;;;;:9;:15;;;;;;:27;;9083:6;9063:19;:27::i;:::-;-1:-1:-1;;;;;9045:15:0;;;;;;:9;:15;;;;;:45;9117:40;9135:21;:6;9146:9;9135:10;:21::i;:::-;-1:-1:-1;;;;;9117:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9101:13:0;;;;;;;:9;:13;;;;;:56;;;;9173:41;;;9192:21;:6;9203:9;9192:10;:21::i;:::-;9173:41;;1500:25:1;;;1488:2;1473:18;9173:41:0;;;;;;;7431:1791;7362:1860;;;:::o;1347:190::-;1433:7;1469:12;1461:6;;;;1453:29;;;;-1:-1:-1;;;1453:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1493:9:0;1505:5;1509:1;1505;:5;:::i;:::-;1493:17;1347:190;-1:-1:-1;;;;;1347:190:0:o;12003:912::-;12107:19;12158:1;12141:70;12166:12;:19;12161:1;:24;12141:70;;12193:16;12208:1;12193:16;;:::i;:::-;;-1:-1:-1;12187:3:0;;;;:::i;:::-;;;;12141:70;;;-1:-1:-1;12318:15:0;;12239:14;;-1:-1:-1;;;;;12318:15:0;12221;12345:561;12369:12;:19;12365:1;:23;12345:561;;;12397:14;12414:5;:1;12418;12414:5;:::i;:::-;12397:22;-1:-1:-1;12421:31:0;12483:11;12456:23;12397:22;12456:14;:23;:::i;:::-;12455:39;;;;:::i;:::-;12421:73;;12539:7;12513:23;:33;12509:75;;;-1:-1:-1;12575:7:0;12509:75;12622:16;;;12636:1;12622:16;;;;;;;;12598:21;;12622:16;;;;;;;;;;-1:-1:-1;12622:16:0;12598:40;;12650:13;-1:-1:-1;;;;;12650:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12640:4;12645:1;12640:7;;;;;;;;:::i;:::-;;;;;;:30;-1:-1:-1;;;;;12640:30:0;;;-1:-1:-1;;;;;12640:30:0;;;;;12682:5;12672:4;12677:1;12672:7;;;;;;;;:::i;:::-;;;;;;:15;-1:-1:-1;;;;;12672:15:0;;;-1:-1:-1;;;;;12672:15:0;;;;;12702:13;-1:-1:-1;;;;;12702:64:0;;12774:23;12800:1;12802:4;12807:12;12820:1;12807:15;;;;;;;;:::i;:::-;;;;;;;12823;12841:2;12823:20;;;;:::i;:::-;12702:143;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12871:23;12860:34;;;;;:::i;:::-;;;12395:511;;;12390:3;;;;;:::i;:::-;;;;12345:561;;;;12096:819;;;12003:912;;;:::o;9729:114::-;9781:13;;-1:-1:-1;;;9781:13:0;;;;9780:14;9772:32;;;;-1:-1:-1;;;9772:32:0;;9063:2:1;9772:32:0;;;9045:21:1;9102:1;9082:18;;;9075:29;-1:-1:-1;;;9120:18:1;;;9113:35;9165:18;;9772:32:0;8861:328:1;9772:32:0;9815:13;:20;;-1:-1:-1;;;;9815:20:0;-1:-1:-1;;;9815:20:0;;;9729:114::o;1545:246::-;1603:7;1627:1;1632;1627:6;1623:47;;-1:-1:-1;1657:1:0;1650:8;;1623:47;1680:9;1692:5;1696:1;1692;:5;:::i;:::-;1680:17;-1:-1:-1;1725:1:0;1716:5;1720:1;1680:17;1716:5;:::i;:::-;:10;1708:56;;;;-1:-1:-1;;;1708:56:0;;16074:2:1;1708:56:0;;;16056:21:1;16113:2;16093:18;;;16086:30;16152:34;16132:18;;;16125:62;-1:-1:-1;;;16203:18:1;;;16196:31;16244:19;;1708:56:0;15872:397:1;1708:56:0;1782:1;1545:246;-1:-1:-1;;;1545:246:0:o;1799:132::-;1857:7;1884:39;1888:1;1891;1884:39;;;;;;;;;;;;;;;;;:3;:39::i;9230:98::-;9287:7;9314:1;9312;:3;9311:9;;9319:1;9311:9;;;-1:-1:-1;9317:1:0;9230:98;-1:-1:-1;9230:98:0:o;9336:385::-;5350:6;:13;;-1:-1:-1;;;;5350:13:0;-1:-1:-1;;;5350:13:0;;;9438:16:::1;::::0;;9452:1:::1;9438:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9438:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9438:16:0::1;9414:40;;9474:4;9456;9461:1;9456:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9456:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9491:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9491:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9456:7;;9491:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9481:4;9486:1;9481:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9481:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9556:15:::1;::::0;9524:62:::1;::::0;9541:4:::1;::::0;9556:15:::1;9574:11:::0;9524:8:::1;:62::i;:::-;9597:15;::::0;:116:::1;::::0;-1:-1:-1;;;9597:116:0;;-1:-1:-1;;;;;9597:15:0;;::::1;::::0;:66:::1;::::0;:116:::1;::::0;9664:11;;9597:15:::1;::::0;9678:4;;9691::::1;::::0;9697:15:::1;::::0;9597:116:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5386:6:0;:14;;-1:-1:-1;;;;5386:14:0;;;-1:-1:-1;;;;9336:385:0:o;1016:179::-;1074:7;;1106:5;1110:1;1106;:5;:::i;:::-;1094:17;;1135:1;1130;:6;;1122:46;;;;-1:-1:-1;;;1122:46:0;;17063:2:1;1122:46:0;;;17045:21:1;17102:2;17082:18;;;17075:30;17141:29;17121:18;;;17114:57;17188:18;;1122:46:0;16861:351:1;1203:136:0;1261:7;1288:43;1292:1;1295;1288:43;;;;;;;;;;;;;;;;;:3;:43::i;1939:189::-;2025:7;2060:12;2053:5;2045:28;;;;-1:-1:-1;;;2045:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2084:9:0;2096:5;2100:1;2096;: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;622:70;567:131;:::o;703:134::-;771:20;;800:31;771:20;800:31;:::i;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:247::-;2245:6;2298:2;2286:9;2277:7;2273:23;2269:32;2266:52;;;2314:1;2311;2304:12;2266:52;2353:9;2340:23;2372:31;2397:5;2372:31;:::i;2870:127::-;2931:10;2926:3;2922:20;2919:1;2912:31;2962:4;2959:1;2952:15;2986:4;2983:1;2976:15;3002:1191;3095:6;3103;3156:2;3144:9;3135:7;3131:23;3127:32;3124:52;;;3172:1;3169;3162:12;3124:52;3212:9;3199:23;3241:18;3282:2;3274:6;3271:14;3268:34;;;3298:1;3295;3288:12;3268:34;3336:6;3325:9;3321:22;3311:32;;3381:7;3374:4;3370:2;3366:13;3362:27;3352:55;;3403:1;3400;3393:12;3352:55;3439:2;3426:16;3461:4;3484:2;3480;3477:10;3474:36;;;3490:18;;:::i;:::-;3536:2;3533:1;3529:10;3568:2;3562:9;3631:2;3627:7;3622:2;3618;3614:11;3610:25;3602:6;3598:38;3686:6;3674:10;3671:22;3666:2;3654:10;3651:18;3648:46;3645:72;;;3697:18;;:::i;:::-;3733:2;3726:22;3783:18;;;3817:15;;;;-1:-1:-1;3859:11:1;;;3855:20;;;3887:19;;;3884:39;;;3919:1;3916;3909:12;3884:39;3943:11;;;;3963:148;3979:6;3974:3;3971:15;3963:148;;;4045:23;4064:3;4045:23;:::i;:::-;4033:36;;3996:12;;;;4089;;;;3963:148;;;4130:6;4168:18;;;;4155:32;;-1:-1:-1;;;;;;;3002:1191:1:o;4198:385::-;4284:6;4292;4300;4308;4361:3;4349:9;4340:7;4336:23;4332:33;4329:53;;;4378:1;4375;4368:12;4329:53;-1:-1:-1;;4401:23:1;;;4471:2;4456:18;;4443:32;;-1:-1:-1;4522:2:1;4507:18;;4494:32;;4573:2;4558:18;4545:32;;-1:-1:-1;4198:385:1;-1:-1:-1;4198:385:1:o;4588:388::-;4656:6;4664;4717:2;4705:9;4696:7;4692:23;4688:32;4685:52;;;4733:1;4730;4723:12;4685:52;4772:9;4759:23;4791:31;4816:5;4791:31;:::i;:::-;4841:5;-1:-1:-1;4898:2:1;4883:18;;4870:32;4911:33;4870:32;4911:33;:::i;:::-;4963:7;4953:17;;;4588:388;;;;;:::o;4981:118::-;5067:5;5060:13;5053:21;5046:5;5043:32;5033:60;;5089:1;5086;5079:12;5104:382;5169:6;5177;5230:2;5218:9;5209:7;5205:23;5201:32;5198:52;;;5246:1;5243;5236:12;5198:52;5285:9;5272:23;5304:31;5329:5;5304:31;:::i;:::-;5354:5;-1:-1:-1;5411:2:1;5396:18;;5383:32;5424:30;5383:32;5424:30;:::i;5491:380::-;5570:1;5566:12;;;;5613;;;5634:61;;5688:4;5680:6;5676:17;5666:27;;5634:61;5741:2;5733:6;5730:14;5710:18;5707:38;5704:161;;5787:10;5782:3;5778:20;5775:1;5768:31;5822:4;5819:1;5812:15;5850:4;5847:1;5840:15;5876:127;5937:10;5932:3;5928:20;5925:1;5918:31;5968:4;5965:1;5958:15;5992:4;5989:1;5982:15;6008:422;6097:1;6140:5;6097:1;6154:270;6175:7;6165:8;6162:21;6154:270;;;6234:4;6230:1;6226:6;6222:17;6216:4;6213:27;6210:53;;;6243:18;;:::i;:::-;6293:7;6283:8;6279:22;6276:55;;;6313:16;;;;6276:55;6392:22;;;;6352:15;;;;6154:270;;;6158:3;6008:422;;;;;:::o;6435:806::-;6484:5;6514:8;6504:80;;-1:-1:-1;6555:1:1;6569:5;;6504:80;6603:4;6593:76;;-1:-1:-1;6640:1:1;6654:5;;6593:76;6685:4;6703:1;6698:59;;;;6771:1;6766:130;;;;6678:218;;6698:59;6728:1;6719:10;;6742:5;;;6766:130;6803:3;6793:8;6790:17;6787:43;;;6810:18;;:::i;:::-;-1:-1:-1;;6866:1:1;6852:16;;6881:5;;6678:218;;6980:2;6970:8;6967:16;6961:3;6955:4;6952:13;6948:36;6942:2;6932:8;6929:16;6924:2;6918:4;6915:12;6911:35;6908:77;6905:159;;;-1:-1:-1;7017:19:1;;;7049:5;;6905:159;7096:34;7121:8;7115:4;7096:34;:::i;:::-;7166:6;7162:1;7158:6;7154:19;7145:7;7142:32;7139:58;;;7177:18;;:::i;:::-;7215:20;;6435:806;-1:-1:-1;;;6435:806:1:o;7246:140::-;7304:5;7333:47;7374:4;7364:8;7360:19;7354:4;7333:47;:::i;7391:168::-;7464:9;;;7495;;7512:15;;;7506:22;;7492:37;7482:71;;7533:18;;:::i;7774:184::-;7844:6;7897:2;7885:9;7876:7;7872:23;7868:32;7865:52;;;7913:1;7910;7903:12;7865:52;-1:-1:-1;7936:16:1;;7774:184;-1:-1:-1;7774:184:1:o;8250:245::-;8317:6;8370:2;8358:9;8349:7;8345:23;8341:32;8338:52;;;8386:1;8383;8376:12;8338:52;8418:9;8412:16;8437:28;8459:5;8437:28;:::i;8500:356::-;8702:2;8684:21;;;8721:18;;;8714:30;8780:34;8775:2;8760:18;;8753:62;8847:2;8832:18;;8500:356::o;9194:251::-;9264:6;9317:2;9305:9;9296:7;9292:23;9288:32;9285:52;;;9333:1;9330;9323:12;9285:52;9365:9;9359:16;9384:31;9409:5;9384:31;:::i;10379:306::-;10467:6;10475;10483;10536:2;10524:9;10515:7;10511:23;10507:32;10504:52;;;10552:1;10549;10542:12;10504:52;10581:9;10575:16;10565:26;;10631:2;10620:9;10616:18;10610:25;10600:35;;10675:2;10664:9;10660:18;10654:25;10644:35;;10379:306;;;;;:::o;10969:135::-;11008:3;11029:17;;;11026:43;;11049:18;;:::i;:::-;-1:-1:-1;11096:1:1;11085:13;;10969:135::o;11109:128::-;11176:9;;;11197:11;;;11194:37;;;11211:18;;:::i;11242:125::-;11307:9;;;11328:10;;;11325:36;;;11341:18;;:::i;14537:217::-;14577:1;14603;14593:132;;14647:10;14642:3;14638:20;14635:1;14628:31;14682:4;14679:1;14672:15;14710:4;14707:1;14700:15;14593:132;-1:-1:-1;14739:9:1;;14537:217::o;14759:127::-;14820:10;14815:3;14811:20;14808:1;14801:31;14851:4;14848:1;14841:15;14875:4;14872:1;14865:15;14891:461;14944:3;14982:5;14976:12;15009:6;15004:3;14997:19;15035:4;15064:2;15059:3;15055:12;15048:19;;15101:2;15094:5;15090:14;15122:1;15132:195;15146:6;15143:1;15140:13;15132:195;;;15211:13;;-1:-1:-1;;;;;15207:39:1;15195:52;;15267:12;;;;15302:15;;;;15243:1;15161:9;15132:195;;;-1:-1:-1;15343:3:1;;14891:461;-1:-1:-1;;;;;14891:461:1:o;15357:510::-;15628:6;15617:9;15610:25;15671:3;15666:2;15655:9;15651:18;15644:31;15591:4;15692:57;15744:3;15733:9;15729:19;15721:6;15692:57;:::i;:::-;-1:-1:-1;;;;;15785:32:1;;;;15780:2;15765:18;;15758:60;-1:-1:-1;15849:2:1;15834:18;15827:34;15684:65;15357:510;-1:-1:-1;;15357:510:1:o;16274:582::-;16573:6;16562:9;16555:25;16616:6;16611:2;16600:9;16596:18;16589:34;16659:3;16654:2;16643:9;16639:18;16632:31;16536:4;16680:57;16732:3;16721:9;16717:19;16709:6;16680:57;:::i;:::-;-1:-1:-1;;;;;16773:32:1;;;;16768:2;16753:18;;16746:60;-1:-1:-1;16837:3:1;16822:19;16815:35;16672:65;16274:582;-1:-1:-1;;;16274:582:1:o

Swarm Source

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