ETH Price: $2,359.16 (+0.80%)

Token

Dev Inu (DINU)
 

Overview

Max Total Supply

1,000,000,000 DINU

Holders

57

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
5,745,940.8015579 DINU

Value
$0.00
0x4dccdd460521a6059830c1cd9b0268b69d900db7
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:
DevInu

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-28
*/

// https://devinu.xyz	

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

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 DevInu 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;
    address payable private _taxWallet;

    uint256 private _initialTax=4;
    uint256 private _finalTax=4;
    uint256 private _reduceTaxAt=20;
    uint256 private _preventSwapBefore=30;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = "Dev Inu";
    string private constant _symbol = "DINU";
    uint256 public _maxTxAmount =   20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold=15000000 * 10**_decimals;
    uint256 public _maxTaxSwap=25000000 * 10**_decimals;

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

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

    constructor () {
        _taxWallet = payable(_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]);
            if(!inSwap){
              taxAmount = amount.mul((_buyCount>_reduceTaxAt)?_finalTax:_initialTax).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++;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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

    function setExcludedFromFee(address adds, bool onoff) external onlyOwner{
        _isExcludedFromFee[adds] = onoff;
    }

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

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

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

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

    function setMaxTxnAmount(uint256 maxTxAmount) external onlyOwner {
        if(maxTxAmount > _tTotal.mul(1).div(1000)){
        _maxTxAmount = maxTxAmount;
        }
    }
 
    function setMaxWalletSize(uint256 maxWalletSize) external onlyOwner {
        if(maxWalletSize > _tTotal.mul(1).div(1000)){
        _maxWalletSize = maxWalletSize;
        }
    }
  
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount, uint256 maxTaxSwap) external {
        require(_msgSender() == _taxWallet);
        _taxSwapThreshold = swapTokensAtAmount;
        _maxTaxSwap = maxTaxSwap;
    }

    function setFinalTax(uint256 ftax) external {
        require(_msgSender() == _taxWallet);
        if(ftax < 5){
        _finalTax = ftax;
        }
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender() == _taxWallet);
        swapTokensForEth(balanceOf(address(this)));
    }

    function manualSend() external {
        require(_msgSender() == _taxWallet);
        sendETHToFee(address(this).balance);
    }
}

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","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":"manualSend","outputs":[],"stateMutability":"nonpayable","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":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adds","type":"address"},{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ftax","type":"uint256"}],"name":"setFinalTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"},{"internalType":"uint256","name":"maxTaxSwap","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setNewPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600460065560046007556014600855601e6009556000600a556008600a6200002d91906200032f565b6200003d906301312d0062000347565b600b556200004e6008600a6200032f565b6200005e906301312d0062000347565b600c556200006f6008600a6200032f565b6200007e9062e4e1c062000347565b600d556200008f6008600a6200032f565b6200009f9063017d784062000347565b600e556010805461ffff60a81b19169055348015620000bd57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b031916331790556200011f6008600a6200032f565b6200012f90633b9aca0062000347565b3360009081526001602081905260408220929092556003906200015a6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620001b93390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001f36008600a6200032f565b6200020390633b9aca0062000347565b60405190815260200160405180910390a362000361565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002715781600019048211156200025557620002556200021a565b808516156200026357918102915b93841c939080029062000235565b509250929050565b6000826200028a5750600162000329565b81620002995750600062000329565b8160018114620002b25760028114620002bd57620002dd565b600191505062000329565b60ff841115620002d157620002d16200021a565b50506001821b62000329565b5060208310610133831016604e8410600b841016171562000302575081810a62000329565b6200030e838362000230565b80600019048211156200032557620003256200021a565b0290505b92915050565b60006200034060ff84168362000279565b9392505050565b80820281158282048414176200032957620003296200021a565b611d2880620003716000396000f3fe6080604052600436106101a05760003560e01c806374010ece116100ec578063bf474bed1161008a578063dc19164c11610064578063dc19164c14610496578063dd62ed3e146104ab578063ea1644d5146104f1578063f42938901461051157600080fd5b8063bf474bed1461044b578063c9567bf914610461578063d34628cc1461047657600080fd5b80638da5cb5b116100c65780638da5cb5b146103c05780638f9a55c0146103e857806395d89b41146103fe578063a9059cbb1461042b57600080fd5b806374010ece14610375578063751039fc146103955780637d1db4a5146103aa57600080fd5b80632b64a0aa1161015957806351bc3c851161013357806351bc3c85146102f55780636612e66f1461030a57806370a082311461032a578063715018a61461036057600080fd5b80632b64a0aa14610299578063313ce567146102b957806331c2d847146102d557600080fd5b806306fdde03146101ac578063095ea7b3146101ee5780630faee56f1461021e57806312e808011461024257806318160ddd1461026457806323b872dd1461027957600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b5060408051808201909152600781526644657620496e7560c81b60208201525b6040516101e5919061179d565b60405180910390f35b3480156101fa57600080fd5b5061020e610209366004611810565b610526565b60405190151581526020016101e5565b34801561022a57600080fd5b50610234600e5481565b6040519081526020016101e5565b34801561024e57600080fd5b5061026261025d36600461183c565b61053d565b005b34801561027057600080fd5b50610234610568565b34801561028557600080fd5b5061020e61029436600461185e565b610589565b3480156102a557600080fd5b506102626102b436600461189f565b6105f2565b3480156102c557600080fd5b50604051600881526020016101e5565b3480156102e157600080fd5b506102626102f03660046118ce565b610624565b34801561030157600080fd5b506102626106c3565b34801561031657600080fd5b506102626103253660046119a1565b610703565b34801561033657600080fd5b506102346103453660046119da565b6001600160a01b031660009081526001602052604090205490565b34801561036c57600080fd5b50610262610758565b34801561038157600080fd5b5061026261039036600461189f565b6107cc565b3480156103a157600080fd5b50610262610833565b3480156103b657600080fd5b50610234600b5481565b3480156103cc57600080fd5b506000546040516001600160a01b0390911681526020016101e5565b3480156103f457600080fd5b50610234600c5481565b34801561040a57600080fd5b5060408051808201909152600481526344494e5560e01b60208201526101d8565b34801561043757600080fd5b5061020e610446366004611810565b6108e5565b34801561045757600080fd5b50610234600d5481565b34801561046d57600080fd5b506102626108f2565b34801561048257600080fd5b506102626104913660046118ce565b610add565b3480156104a257600080fd5b50610262610b6f565b3480156104b757600080fd5b506102346104c63660046119f7565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104fd57600080fd5b5061026261050c36600461189f565b610d72565b34801561051d57600080fd5b50610262610dbf565b6000610533338484610de8565b5060015b92915050565b6005546001600160a01b0316336001600160a01b03161461055d57600080fd5b600d91909155600e55565b60006105766008600a611b1f565b61058490633b9aca00611b2e565b905090565b6000610596848484610f0c565b6105e884336105e385604051806060016040528060288152602001611ccb602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611400565b610de8565b5060019392505050565b6005546001600160a01b0316336001600160a01b03161461061257600080fd5b60058110156106215760078190555b50565b6000546001600160a01b031633146106575760405162461bcd60e51b815260040161064e90611b45565b60405180910390fd5b60005b81518110156106bf5760006004600084848151811061067b5761067b611b7a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106b781611b90565b91505061065a565b5050565b6005546001600160a01b0316336001600160a01b0316146106e357600080fd5b306000908152600160205260409020546107019061143a565b61143a565b565b6000546001600160a01b0316331461072d5760405162461bcd60e51b815260040161064e90611b45565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107825760405162461bcd60e51b815260040161064e90611b45565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107f65760405162461bcd60e51b815260040161064e90611b45565b6108276103e8610821600161080d6008600a611b1f565b61081b90633b9aca00611b2e565b906115b4565b9061163d565b81111561062157600b55565b6000546001600160a01b0316331461085d5760405162461bcd60e51b815260040161064e90611b45565b6108696008600a611b1f565b61087790633b9aca00611b2e565b600b556108866008600a611b1f565b61089490633b9aca00611b2e565b600c557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108c46008600a611b1f565b6108d290633b9aca00611b2e565b60405190815260200160405180910390a1565b6000610533338484610f0c565b6000546001600160a01b0316331461091c5760405162461bcd60e51b815260040161064e90611b45565b601054600160a01b900460ff16156109765760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161064e565b600f546001600160a01b031663f305d71947306109a8816001600160a01b031660009081526001602052604090205490565b6000806109bd6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a25573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a4a9190611ba9565b50506010805462ff00ff60a01b1981166201000160a01b17909155600f5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610ab9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106219190611bd7565b6000546001600160a01b03163314610b075760405162461bcd60e51b815260040161064e90611b45565b60005b81518110156106bf57600160046000848481518110610b2b57610b2b611b7a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b6781611b90565b915050610b0a565b6000546001600160a01b03163314610b995760405162461bcd60e51b815260040161064e90611b45565b600f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610be2903090610bd46008600a611b1f565b6105e390633b9aca00611b2e565b600f60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c599190611bf4565b6001600160a01b031663c9c6539630600f60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdf9190611bf4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610d2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d509190611bf4565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d9c5760405162461bcd60e51b815260040161064e90611b45565b610db36103e8610821600161080d6008600a611b1f565b81111561062157600c55565b6005546001600160a01b0316336001600160a01b031614610ddf57600080fd5b6107014761167f565b6001600160a01b038316610e4a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161064e565b6001600160a01b038216610eab5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161064e565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f705760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161064e565b6001600160a01b038216610fd25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161064e565b600081116110345760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161064e565b600080546001600160a01b0385811691161480159061106157506000546001600160a01b03848116911614155b156112bd576001600160a01b03841660009081526004602052604090205460ff161580156110a857506001600160a01b03831660009081526004602052604090205460ff16155b6110b157600080fd5b601054600160a81b900460ff166110eb576110e86064610821600854600a54116110dd576006546110e1565b6007545b85906115b4565b90505b6010546001600160a01b0385811691161480156111165750600f546001600160a01b03848116911614155b801561113b57506001600160a01b03831660009081526003602052604090205460ff16155b1561122357600b548211156111925760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e0000000000000000604482015260640161064e565b600c54826111b5856001600160a01b031660009081526001602052604090205490565b6111bf9190611c11565b111561120d5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161064e565b600a805490600061121d83611b90565b91905055505b30600090815260016020526040902054601054600160a81b900460ff1615801561125b57506010546001600160a01b03868116911614155b80156112705750601054600160b01b900460ff165b801561127d5750600d5481115b801561128c5750600954600a54115b156112bb576112a96106fc846112a484600e546116b9565b6116b9565b4780156112b9576112b94761167f565b505b505b6001600160a01b0384166000908152600160205260409020546112e090836116ce565b6001600160a01b03851660009081526001602052604090205561132561130683836116ce565b6001600160a01b03851660009081526001602052604090205490611710565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61136f85856116ce565b60405190815260200160405180910390a380156113fa57306000908152600160205260409020546113a09082611710565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113f19085815260200190565b60405180910390a35b50505050565b600081848411156114245760405162461bcd60e51b815260040161064e919061179d565b5060006114318486611c24565b95945050505050565b6010805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061148257611482611b7a565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ff9190611bf4565b8160018151811061151257611512611b7a565b6001600160a01b039283166020918202929092010152600f546115389130911684610de8565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611571908590600090869030904290600401611c37565b600060405180830381600087803b15801561158b57600080fd5b505af115801561159f573d6000803e3d6000fd5b50506010805460ff60a81b1916905550505050565b6000826000036115c657506000610537565b60006115d28385611b2e565b9050826115df8583611ca8565b146116365760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161064e565b9392505050565b600061163683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061176f565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156106bf573d6000803e3d6000fd5b60008183116116c85782611636565b50919050565b600061163683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611400565b60008061171d8385611c11565b9050838110156116365760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161064e565b600081836117905760405162461bcd60e51b815260040161064e919061179d565b5060006114318486611ca8565b600060208083528351808285015260005b818110156117ca578581018301518582016040015282016117ae565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461062157600080fd5b803561180b816117eb565b919050565b6000806040838503121561182357600080fd5b823561182e816117eb565b946020939093013593505050565b6000806040838503121561184f57600080fd5b50508035926020909101359150565b60008060006060848603121561187357600080fd5b833561187e816117eb565b9250602084013561188e816117eb565b929592945050506040919091013590565b6000602082840312156118b157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156118e157600080fd5b823567ffffffffffffffff808211156118f957600080fd5b818501915085601f83011261190d57600080fd5b81358181111561191f5761191f6118b8565b8060051b604051601f19603f83011681018181108582111715611944576119446118b8565b60405291825284820192508381018501918883111561196257600080fd5b938501935b828510156119875761197885611800565b84529385019392850192611967565b98975050505050505050565b801515811461062157600080fd5b600080604083850312156119b457600080fd5b82356119bf816117eb565b915060208301356119cf81611993565b809150509250929050565b6000602082840312156119ec57600080fd5b8135611636816117eb565b60008060408385031215611a0a57600080fd5b8235611a15816117eb565b915060208301356119cf816117eb565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611a76578160001904821115611a5c57611a5c611a25565b80851615611a6957918102915b93841c9390800290611a40565b509250929050565b600082611a8d57506001610537565b81611a9a57506000610537565b8160018114611ab05760028114611aba57611ad6565b6001915050610537565b60ff841115611acb57611acb611a25565b50506001821b610537565b5060208310610133831016604e8410600b8410161715611af9575081810a610537565b611b038383611a3b565b8060001904821115611b1757611b17611a25565b029392505050565b600061163660ff841683611a7e565b808202811582820484141761053757610537611a25565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611ba257611ba2611a25565b5060010190565b600080600060608486031215611bbe57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611be957600080fd5b815161163681611993565b600060208284031215611c0657600080fd5b8151611636816117eb565b8082018082111561053757610537611a25565b8181038181111561053757610537611a25565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c875784516001600160a01b031683529383019391830191600101611c62565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611cc557634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122021e95ccfe1d7e814094ae777f68bd09b9e15f755ce88467ae9cab08237648b5164736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c806374010ece116100ec578063bf474bed1161008a578063dc19164c11610064578063dc19164c14610496578063dd62ed3e146104ab578063ea1644d5146104f1578063f42938901461051157600080fd5b8063bf474bed1461044b578063c9567bf914610461578063d34628cc1461047657600080fd5b80638da5cb5b116100c65780638da5cb5b146103c05780638f9a55c0146103e857806395d89b41146103fe578063a9059cbb1461042b57600080fd5b806374010ece14610375578063751039fc146103955780637d1db4a5146103aa57600080fd5b80632b64a0aa1161015957806351bc3c851161013357806351bc3c85146102f55780636612e66f1461030a57806370a082311461032a578063715018a61461036057600080fd5b80632b64a0aa14610299578063313ce567146102b957806331c2d847146102d557600080fd5b806306fdde03146101ac578063095ea7b3146101ee5780630faee56f1461021e57806312e808011461024257806318160ddd1461026457806323b872dd1461027957600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b5060408051808201909152600781526644657620496e7560c81b60208201525b6040516101e5919061179d565b60405180910390f35b3480156101fa57600080fd5b5061020e610209366004611810565b610526565b60405190151581526020016101e5565b34801561022a57600080fd5b50610234600e5481565b6040519081526020016101e5565b34801561024e57600080fd5b5061026261025d36600461183c565b61053d565b005b34801561027057600080fd5b50610234610568565b34801561028557600080fd5b5061020e61029436600461185e565b610589565b3480156102a557600080fd5b506102626102b436600461189f565b6105f2565b3480156102c557600080fd5b50604051600881526020016101e5565b3480156102e157600080fd5b506102626102f03660046118ce565b610624565b34801561030157600080fd5b506102626106c3565b34801561031657600080fd5b506102626103253660046119a1565b610703565b34801561033657600080fd5b506102346103453660046119da565b6001600160a01b031660009081526001602052604090205490565b34801561036c57600080fd5b50610262610758565b34801561038157600080fd5b5061026261039036600461189f565b6107cc565b3480156103a157600080fd5b50610262610833565b3480156103b657600080fd5b50610234600b5481565b3480156103cc57600080fd5b506000546040516001600160a01b0390911681526020016101e5565b3480156103f457600080fd5b50610234600c5481565b34801561040a57600080fd5b5060408051808201909152600481526344494e5560e01b60208201526101d8565b34801561043757600080fd5b5061020e610446366004611810565b6108e5565b34801561045757600080fd5b50610234600d5481565b34801561046d57600080fd5b506102626108f2565b34801561048257600080fd5b506102626104913660046118ce565b610add565b3480156104a257600080fd5b50610262610b6f565b3480156104b757600080fd5b506102346104c63660046119f7565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104fd57600080fd5b5061026261050c36600461189f565b610d72565b34801561051d57600080fd5b50610262610dbf565b6000610533338484610de8565b5060015b92915050565b6005546001600160a01b0316336001600160a01b03161461055d57600080fd5b600d91909155600e55565b60006105766008600a611b1f565b61058490633b9aca00611b2e565b905090565b6000610596848484610f0c565b6105e884336105e385604051806060016040528060288152602001611ccb602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611400565b610de8565b5060019392505050565b6005546001600160a01b0316336001600160a01b03161461061257600080fd5b60058110156106215760078190555b50565b6000546001600160a01b031633146106575760405162461bcd60e51b815260040161064e90611b45565b60405180910390fd5b60005b81518110156106bf5760006004600084848151811061067b5761067b611b7a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106b781611b90565b91505061065a565b5050565b6005546001600160a01b0316336001600160a01b0316146106e357600080fd5b306000908152600160205260409020546107019061143a565b61143a565b565b6000546001600160a01b0316331461072d5760405162461bcd60e51b815260040161064e90611b45565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107825760405162461bcd60e51b815260040161064e90611b45565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107f65760405162461bcd60e51b815260040161064e90611b45565b6108276103e8610821600161080d6008600a611b1f565b61081b90633b9aca00611b2e565b906115b4565b9061163d565b81111561062157600b55565b6000546001600160a01b0316331461085d5760405162461bcd60e51b815260040161064e90611b45565b6108696008600a611b1f565b61087790633b9aca00611b2e565b600b556108866008600a611b1f565b61089490633b9aca00611b2e565b600c557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108c46008600a611b1f565b6108d290633b9aca00611b2e565b60405190815260200160405180910390a1565b6000610533338484610f0c565b6000546001600160a01b0316331461091c5760405162461bcd60e51b815260040161064e90611b45565b601054600160a01b900460ff16156109765760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161064e565b600f546001600160a01b031663f305d71947306109a8816001600160a01b031660009081526001602052604090205490565b6000806109bd6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a25573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a4a9190611ba9565b50506010805462ff00ff60a01b1981166201000160a01b17909155600f5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610ab9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106219190611bd7565b6000546001600160a01b03163314610b075760405162461bcd60e51b815260040161064e90611b45565b60005b81518110156106bf57600160046000848481518110610b2b57610b2b611b7a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b6781611b90565b915050610b0a565b6000546001600160a01b03163314610b995760405162461bcd60e51b815260040161064e90611b45565b600f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610be2903090610bd46008600a611b1f565b6105e390633b9aca00611b2e565b600f60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c599190611bf4565b6001600160a01b031663c9c6539630600f60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdf9190611bf4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610d2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d509190611bf4565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d9c5760405162461bcd60e51b815260040161064e90611b45565b610db36103e8610821600161080d6008600a611b1f565b81111561062157600c55565b6005546001600160a01b0316336001600160a01b031614610ddf57600080fd5b6107014761167f565b6001600160a01b038316610e4a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161064e565b6001600160a01b038216610eab5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161064e565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f705760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161064e565b6001600160a01b038216610fd25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161064e565b600081116110345760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161064e565b600080546001600160a01b0385811691161480159061106157506000546001600160a01b03848116911614155b156112bd576001600160a01b03841660009081526004602052604090205460ff161580156110a857506001600160a01b03831660009081526004602052604090205460ff16155b6110b157600080fd5b601054600160a81b900460ff166110eb576110e86064610821600854600a54116110dd576006546110e1565b6007545b85906115b4565b90505b6010546001600160a01b0385811691161480156111165750600f546001600160a01b03848116911614155b801561113b57506001600160a01b03831660009081526003602052604090205460ff16155b1561122357600b548211156111925760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e0000000000000000604482015260640161064e565b600c54826111b5856001600160a01b031660009081526001602052604090205490565b6111bf9190611c11565b111561120d5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161064e565b600a805490600061121d83611b90565b91905055505b30600090815260016020526040902054601054600160a81b900460ff1615801561125b57506010546001600160a01b03868116911614155b80156112705750601054600160b01b900460ff165b801561127d5750600d5481115b801561128c5750600954600a54115b156112bb576112a96106fc846112a484600e546116b9565b6116b9565b4780156112b9576112b94761167f565b505b505b6001600160a01b0384166000908152600160205260409020546112e090836116ce565b6001600160a01b03851660009081526001602052604090205561132561130683836116ce565b6001600160a01b03851660009081526001602052604090205490611710565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61136f85856116ce565b60405190815260200160405180910390a380156113fa57306000908152600160205260409020546113a09082611710565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113f19085815260200190565b60405180910390a35b50505050565b600081848411156114245760405162461bcd60e51b815260040161064e919061179d565b5060006114318486611c24565b95945050505050565b6010805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061148257611482611b7a565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ff9190611bf4565b8160018151811061151257611512611b7a565b6001600160a01b039283166020918202929092010152600f546115389130911684610de8565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611571908590600090869030904290600401611c37565b600060405180830381600087803b15801561158b57600080fd5b505af115801561159f573d6000803e3d6000fd5b50506010805460ff60a81b1916905550505050565b6000826000036115c657506000610537565b60006115d28385611b2e565b9050826115df8583611ca8565b146116365760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161064e565b9392505050565b600061163683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061176f565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156106bf573d6000803e3d6000fd5b60008183116116c85782611636565b50919050565b600061163683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611400565b60008061171d8385611c11565b9050838110156116365760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161064e565b600081836117905760405162461bcd60e51b815260040161064e919061179d565b5060006114318486611ca8565b600060208083528351808285015260005b818110156117ca578581018301518582016040015282016117ae565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461062157600080fd5b803561180b816117eb565b919050565b6000806040838503121561182357600080fd5b823561182e816117eb565b946020939093013593505050565b6000806040838503121561184f57600080fd5b50508035926020909101359150565b60008060006060848603121561187357600080fd5b833561187e816117eb565b9250602084013561188e816117eb565b929592945050506040919091013590565b6000602082840312156118b157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156118e157600080fd5b823567ffffffffffffffff808211156118f957600080fd5b818501915085601f83011261190d57600080fd5b81358181111561191f5761191f6118b8565b8060051b604051601f19603f83011681018181108582111715611944576119446118b8565b60405291825284820192508381018501918883111561196257600080fd5b938501935b828510156119875761197885611800565b84529385019392850192611967565b98975050505050505050565b801515811461062157600080fd5b600080604083850312156119b457600080fd5b82356119bf816117eb565b915060208301356119cf81611993565b809150509250929050565b6000602082840312156119ec57600080fd5b8135611636816117eb565b60008060408385031215611a0a57600080fd5b8235611a15816117eb565b915060208301356119cf816117eb565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611a76578160001904821115611a5c57611a5c611a25565b80851615611a6957918102915b93841c9390800290611a40565b509250929050565b600082611a8d57506001610537565b81611a9a57506000610537565b8160018114611ab05760028114611aba57611ad6565b6001915050610537565b60ff841115611acb57611acb611a25565b50506001821b610537565b5060208310610133831016604e8410600b8410161715611af9575081810a610537565b611b038383611a3b565b8060001904821115611b1757611b17611a25565b029392505050565b600061163660ff841683611a7e565b808202811582820484141761053757610537611a25565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611ba257611ba2611a25565b5060010190565b600080600060608486031215611bbe57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611be957600080fd5b815161163681611993565b600060208284031215611c0657600080fd5b8151611636816117eb565b8082018082111561053757610537611a25565b8181038181111561053757610537611a25565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c875784516001600160a01b031683529383019391830191600101611c62565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611cc557634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122021e95ccfe1d7e814094ae777f68bd09b9e15f755ce88467ae9cab08237648b5164736f6c63430008110033

Deployed Bytecode Sourcemap

3497:8281:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5165:83;;;;;;;;;;-1:-1:-1;5235:5:0;;;;;;;;;;;;-1:-1:-1;;;5235:5:0;;;;5165:83;;;;;;;:::i;:::-;;;;;;;;5998:161;;;;;;;;;;-1:-1:-1;5998:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;5998:161:0;1162:187:1;4441:51:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;4441:51:0;1354:177:1;11056:230:0;;;;;;;;;;-1:-1:-1;11056:230:0;;;;;:::i;:::-;;:::i;:::-;;5442:95;;;;;;;;;;;;;:::i;6167:313::-;;;;;;;;;;-1:-1:-1;6167:313:0;;;;;:::i;:::-;;:::i;11294:159::-;;;;;;;;;;-1:-1:-1;11294:159:0;;;;;:::i;:::-;;:::i;5351:83::-;;;;;;;;;;-1:-1:-1;5351:83:0;;4080:1;2577:36:1;;2565:2;2550:18;5351:83:0;2435:184:1;9773:164:0;;;;;;;;;;-1:-1:-1;9773:164:0;;;;;:::i;:::-;;:::i;11498:138::-;;;;;;;;;;;;;:::i;8604:123::-;;;;;;;;;;-1:-1:-1;8604:123:0;;;;;:::i;:::-;;:::i;5545:119::-;;;;;;;;;;-1:-1:-1;5545:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5638:18:0;5611:7;5638:18;;;:9;:18;;;;;;;5545:119;2578:148;;;;;;;;;;;;;:::i;10680:174::-;;;;;;;;;;-1:-1:-1;10680:174:0;;;;;:::i;:::-;;:::i;9332:159::-;;;;;;;;;;;;;:::i;4251:56::-;;;;;;;;;;;;;;;;2364:79;;;;;;;;;;-1:-1:-1;2402:7:0;2429:6;2364:79;;-1:-1:-1;;;;;2429:6:0;;;4790:51:1;;4778:2;4763:18;2364:79:0;4644:203:1;4314:56:0;;;;;;;;;;;;;;;;5256:87;;;;;;;;;;-1:-1:-1;5328:7:0;;;;;;;;;;;;-1:-1:-1;;;5328:7:0;;;;5256:87;;5672:167;;;;;;;;;;-1:-1:-1;5672:167:0;;;;;:::i;:::-;;:::i;4377:57::-;;;;;;;;;;;;;;;;10282:390;;;;;;;;;;;;;:::i;9599:166::-;;;;;;;;;;-1:-1:-1;9599:166:0;;;;;:::i;:::-;;:::i;9945:329::-;;;;;;;;;;;;;:::i;5847:143::-;;;;;;;;;;-1:-1:-1;5847:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5955:18:0;;;5928:7;5955:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5847:143;10863:183;;;;;;;;;;-1:-1:-1;10863:183:0;;;;;:::i;:::-;;:::i;11644:131::-;;;;;;;;;;;;;:::i;5998:161::-;6073:4;6090:39;199:10;6113:7;6122:6;6090:8;:39::i;:::-;-1:-1:-1;6147:4:0;5998:161;;;;;:::o;11056:230::-;11183:10;;-1:-1:-1;;;;;11183:10:0;199;-1:-1:-1;;;;;11167:26:0;;11159:35;;;;;;11205:17;:38;;;;11254:11;:24;11056:230::o;5442:95::-;5495:7;4136:13;4080:1;4136:2;:13;:::i;:::-;4123:26;;:10;:26;:::i;:::-;5515:14;;5442:95;:::o;6167:313::-;6265:4;6282:36;6292:6;6300:9;6311:6;6282:9;:36::i;:::-;6329:121;6338:6;199:10;6360:89;6398:6;6360:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6360:19:0;;;;;;:11;:19;;;;;;;;199:10;6360:33;;;;;;;;;;:37;:89::i;:::-;6329:8;:121::i;:::-;-1:-1:-1;6468:4:0;6167:313;;;;;:::o;11294:159::-;11373:10;;-1:-1:-1;;;;;11373:10:0;199;-1:-1:-1;;;;;11357:26:0;;11349:35;;;;;;11405:1;11398:4;:8;11395:51;;;11418:9;:16;;;11395:51;11294:159;:::o;9773:164::-;2491:6;;-1:-1:-1;;;;;2491:6:0;199:10;2491:22;2483:67;;;;-1:-1:-1;;;2483:67:0;;;;;;;:::i;:::-;;;;;;;;;9848:6:::1;9843:87;9864:6;:13;9860:1;:17;9843:87;;;9915:5;9897:4;:15;9902:6;9909:1;9902:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9897:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;9897:15:0;:23;;-1:-1:-1;;9897:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9879:3;::::1;::::0;::::1;:::i;:::-;;;;9843:87;;;;9773:164:::0;:::o;11498:138::-;11564:10;;-1:-1:-1;;;;;11564:10:0;199;-1:-1:-1;;;;;11548:26:0;;11540:35;;;;;;11621:4;5611:7;5638:18;;;:9;:18;;;;;;11586:42;;:16;:42::i;11603:24::-;11586:16;:42::i;:::-;11498:138::o;8604:123::-;2491:6;;-1:-1:-1;;;;;2491:6:0;199:10;2491:22;2483:67;;;;-1:-1:-1;;;2483:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8687:24:0;;;::::1;;::::0;;;:18:::1;:24;::::0;;;;:32;;-1:-1:-1;;8687:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8604:123::o;2578:148::-;2491:6;;-1:-1:-1;;;;;2491:6:0;199:10;2491:22;2483:67;;;;-1:-1:-1;;;2483:67:0;;;;;;;:::i;:::-;2685:1:::1;2669:6:::0;;2648:40:::1;::::0;-1:-1:-1;;;;;2669:6:0;;::::1;::::0;2648:40:::1;::::0;2685:1;;2648:40:::1;2716:1;2699:19:::0;;-1:-1:-1;;;;;;2699:19:0::1;::::0;;2578:148::o;10680:174::-;2491:6;;-1:-1:-1;;;;;2491:6:0;199:10;2491:22;2483:67;;;;-1:-1:-1;;;2483:67:0;;;;;;;:::i;:::-;10773:24:::1;10792:4;10773:14;10785:1;4136:13;4080:1;4136:2;:13;:::i;:::-;4123:26;::::0;:10:::1;:26;:::i;:::-;10773:11:::0;::::1;:14::i;:::-;:18:::0;::::1;:24::i;:::-;10759:11;:38;10756:91;;;10809:12;:26:::0;10680:174::o;9332:159::-;2491:6;;-1:-1:-1;;;;;2491:6:0;199:10;2491:22;2483:67;;;;-1:-1:-1;;;2483:67:0;;;;;;;:::i;:::-;4136:13:::1;4080:1;4136:2;:13;:::i;:::-;4123:26;::::0;:10:::1;:26;:::i;:::-;9385:12;:22:::0;4136:13:::1;4080:1;4136:2;:13;:::i;:::-;4123:26;::::0;:10:::1;:26;:::i;:::-;9418:14;:22:::0;9456:27:::1;4136:13;4080:1;4136:2;:13;:::i;:::-;4123:26;::::0;:10:::1;:26;:::i;:::-;9456:27;::::0;1500:25:1;;;1488:2;1473:18;9456:27:0::1;;;;;;;9332:159::o:0;5672:167::-;5750:4;5767:42;199:10;5791:9;5802:6;5767:9;:42::i;10282:390::-;2491:6;;-1:-1:-1;;;;;2491:6:0;199:10;2491:22;2483:67;;;;-1:-1:-1;;;2483:67:0;;;;;;;:::i;:::-;10346:11:::1;::::0;-1:-1:-1;;;10346:11:0;::::1;;;10345:12;10337:47;;;::::0;-1:-1:-1;;;10337:47:0;;7768:2:1;10337:47:0::1;::::0;::::1;7750:21:1::0;7807:2;7787:18;;;7780:30;7846:25;7826:18;;;7819:53;7889:18;;10337:47:0::1;7566:347:1::0;10337:47:0::1;10395:15;::::0;-1:-1:-1;;;;;10395:15:0::1;:31;10434:21;10465:4;10471:24;10465:4:::0;-1:-1:-1;;;;;5638:18:0;5611:7;5638:18;;;:9;:18;;;;;;;5545:119;10471:24:::1;10496:1;10498::::0;10500:7:::1;2402::::0;2429:6;-1:-1:-1;;;;;2429:6:0;;2364:79;10500:7:::1;10395:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10395:129:0;;;-1:-1:-1;;;;;8277:15:1;;;10395:129:0::1;::::0;::::1;8259:34:1::0;8309:18;;;8302:34;;;;8352:18;;;8345:34;;;;8395:18;;;8388:34;8459:15;;;8438:19;;;8431:44;10508:15:0::1;8491:19:1::0;;;8484:35;8193:19;;10395:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10535:11:0::1;:18:::0;;-1:-1:-1;;;;10564:18:0;;-1:-1:-1;;;10564:18:0;;;;10631:15:::1;::::0;10593:71:::1;::::0;-1:-1:-1;;;10593:71:0;;-1:-1:-1;;;;;10631:15:0;;::::1;10593:71;::::0;::::1;9015:51:1::0;-1:-1:-1;;9082:18:1;;;9075:34;10600:13:0;;;-1:-1:-1;10593:29:0::1;::::0;8988:18:1;;10593:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9599:166::-:0;2491:6;;-1:-1:-1;;;;;2491:6:0;199:10;2491:22;2483:67;;;;-1:-1:-1;;;2483:67:0;;;;;;;:::i;:::-;9675:6:::1;9670:88;9691:5;:12;9687:1;:16;9670:88;;;9742:4;9725;:14;9730:5;9736:1;9730:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9725:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;9725:14:0;:21;;-1:-1:-1;;9725:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9705:3;::::1;::::0;::::1;:::i;:::-;;;;9670:88;;9945:329:::0;2491:6;;-1:-1:-1;;;;;2491:6:0;199:10;2491:22;2483:67;;;;-1:-1:-1;;;2483:67:0;;;;;;;:::i;:::-;9996:15:::1;:80:::0;;-1:-1:-1;;;;;;9996:80:0::1;10033:42;9996:80:::0;;::::1;::::0;;;10087:58:::1;::::0;10104:4:::1;::::0;4136:13:::1;4080:1;4136:2;:13;:::i;:::-;4123:26;::::0;:10:::1;:26;:::i;10087:58::-;10190:15;;;;;;;;;-1:-1:-1::0;;;;;10190:15:0::1;-1:-1:-1::0;;;;;10190:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10172:55:0::1;;10236:4;10243:15;;;;;;;;;-1:-1:-1::0;;;;;10243:15:0::1;-1:-1:-1::0;;;;;10243:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10172:94;::::0;-1:-1:-1;;;;;;10172:94:0::1;::::0;;;;;;-1:-1:-1;;;;;9856:15:1;;;10172:94:0::1;::::0;::::1;9838:34:1::0;9908:15;;9888:18;;;9881:43;9773:18;;10172:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10156:13;:110:::0;;-1:-1:-1;;;;;;10156:110:0::1;-1:-1:-1::0;;;;;10156:110:0;;;::::1;::::0;;;::::1;::::0;;9945:329::o;10863:183::-;2491:6;;-1:-1:-1;;;;;2491:6:0;199:10;2491:22;2483:67;;;;-1:-1:-1;;;2483:67:0;;;;;;;:::i;:::-;10961:24:::1;10980:4;10961:14;10973:1;4136:13;4080:1;4136:2;:13;:::i;10961:24::-;10945:13;:40;10942:97;;;10997:14;:30:::0;10863:183::o;11644:131::-;11710:10;;-1:-1:-1;;;;;11710:10:0;199;-1:-1:-1;;;;;11694:26:0;;11686:35;;;;;;11732;11745:21;11732:12;:35::i;6488:335::-;-1:-1:-1;;;;;6581:19:0;;6573:68;;;;-1:-1:-1;;;6573:68:0;;10137:2:1;6573:68:0;;;10119:21:1;10176:2;10156:18;;;10149:30;10215:34;10195:18;;;10188:62;-1:-1:-1;;;10266:18:1;;;10259:34;10310:19;;6573:68:0;9935:400:1;6573:68:0;-1:-1:-1;;;;;6660:21:0;;6652:68;;;;-1:-1:-1;;;6652:68:0;;10542:2:1;6652:68:0;;;10524:21:1;10581:2;10561:18;;;10554:30;10620:34;10600:18;;;10593:62;-1:-1:-1;;;10671:18:1;;;10664:32;10713:19;;6652:68:0;10340:398:1;6652:68:0;-1:-1:-1;;;;;6731:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6783:32;;1500:25:1;;;6783:32:0;;1473:18:1;6783:32:0;;;;;;;6488:335;;;:::o;6831:1765::-;-1:-1:-1;;;;;6919:18:0;;6911:68;;;;-1:-1:-1;;;6911:68:0;;10945:2:1;6911:68:0;;;10927:21:1;10984:2;10964:18;;;10957:30;11023:34;11003:18;;;10996:62;-1:-1:-1;;;11074:18:1;;;11067:35;11119:19;;6911:68:0;10743:401:1;6911:68:0;-1:-1:-1;;;;;6998:16:0;;6990:64;;;;-1:-1:-1;;;6990:64:0;;11351:2:1;6990:64:0;;;11333:21:1;11390:2;11370:18;;;11363:30;11429:34;11409:18;;;11402:62;-1:-1:-1;;;11480:18:1;;;11473:33;11523:19;;6990:64:0;11149:399:1;6990:64:0;7082:1;7073:6;:10;7065:64;;;;-1:-1:-1;;;7065:64:0;;11755:2:1;7065:64:0;;;11737:21:1;11794:2;11774:18;;;11767:30;11833:34;11813:18;;;11806:62;-1:-1:-1;;;11884:18:1;;;11877:39;11933:19;;7065:64:0;11553:405:1;7065:64:0;7140:17;2429:6;;-1:-1:-1;;;;;7174:15:0;;;2429:6;;7174:15;;;;:32;;-1:-1:-1;2402:7:0;2429:6;-1:-1:-1;;;;;7193:13:0;;;2429:6;;7193:13;;7174:32;7170:1070;;;-1:-1:-1;;;;;7232:10:0;;;;;;:4;:10;;;;;;;;7231:11;:24;;;;-1:-1:-1;;;;;;7247:8:0;;;;;;:4;:8;;;;;;;;7246:9;7231:24;7223:33;;;;;;7275:6;;-1:-1:-1;;;7275:6:0;;;;7271:123;;7311:67;7374:3;7311:58;7333:12;;7323:9;;:22;7322:46;;7357:11;;7322:46;;;7347:9;;7322:46;7311:6;;:10;:58::i;:67::-;7299:79;;7271:123;7422:13;;-1:-1:-1;;;;;7414:21:0;;;7422:13;;7414:21;:55;;;;-1:-1:-1;7453:15:0;;-1:-1:-1;;;;;7439:30:0;;;7453:15;;7439:30;;7414:55;:83;;;;-1:-1:-1;;;;;;7475:22:0;;;;;;:18;:22;;;;;;;;7473:24;7414:83;7410:312;;;7537:12;;7527:6;:22;;7519:59;;;;-1:-1:-1;;;7519:59:0;;12165:2:1;7519:59:0;;;12147:21:1;12204:2;12184:18;;;12177:30;12243:26;12223:18;;;12216:54;12287:18;;7519:59:0;11963:348:1;7519:59:0;7631:14;;7621:6;7605:13;7615:2;-1:-1:-1;;;;;5638:18:0;5611:7;5638:18;;;:9;:18;;;;;;;5545:119;7605:13;:22;;;;:::i;:::-;:40;;7597:79;;;;-1:-1:-1;;;7597:79:0;;12648:2:1;7597:79:0;;;12630:21:1;12687:2;12667:18;;;12660:30;12726:28;12706:18;;;12699:56;12772:18;;7597:79:0;12446:350:1;7597:79:0;7695:9;:11;;;:9;:11;;;:::i;:::-;;;;;;7410:312;7787:4;7738:28;5638:18;;;:9;:18;;;;;;7813:6;;-1:-1:-1;;;7813:6:0;;;;7812:7;:32;;;;-1:-1:-1;7831:13:0;;-1:-1:-1;;;;;7823:21:0;;;7831:13;;7823:21;;7812:32;:47;;;;-1:-1:-1;7848:11:0;;-1:-1:-1;;;7848:11:0;;;;7812:47;:89;;;;;7884:17;;7863:20;:38;7812:89;:121;;;;;7915:18;;7905:9;;:28;7812:121;7808:421;;;7954:67;7971:49;7975:6;7982:37;7986:20;8007:11;;7982:3;:37::i;:::-;7971:3;:49::i;7954:67::-;8069:21;8112:22;;8109:105;;8159:35;8172:21;8159:12;:35::i;:::-;7935:294;7808:421;7208:1032;7170:1070;-1:-1:-1;;;;;8268:15:0;;;;;;:9;:15;;;;;;:27;;8288:6;8268:19;:27::i;:::-;-1:-1:-1;;;;;8252:15:0;;;;;;:9;:15;;;;;:43;8320:40;8338:21;:6;8349:9;8338:10;:21::i;:::-;-1:-1:-1;;;;;8320:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;8306:13:0;;;;;;;:9;:13;;;;;:54;;;;8376:41;;;8395:21;:6;8406:9;8395:10;:21::i;:::-;8376:41;;1500:25:1;;;1488:2;1473:18;8376:41:0;;;;;;;8431:11;;8428:161;;8499:4;8481:24;;;;:9;:24;;;;;;:39;;8510:9;8481:28;:39::i;:::-;8474:4;8456:24;;;;:9;:24;;;;;;;:64;;;;8538:39;;-1:-1:-1;;;;;8538:39:0;;;;;;;8567:9;1500:25:1;;1488:2;1473:18;;1354:177;8538:39:0;;;;;;;;8428:161;6900:1696;6831:1765;;;:::o;1256:190::-;1342:7;1378:12;1370:6;;;;1362:29;;;;-1:-1:-1;;;1362:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1402:9:0;1414:5;1418:1;1414;:5;:::i;:::-;1402:17;1256:190;-1:-1:-1;;;;;1256:190:0:o;8841:483::-;4774:6;:13;;-1:-1:-1;;;;4774:13:0;-1:-1:-1;;;4774:13:0;;;8943:16:::1;::::0;;8957:1:::1;8943:16:::0;;;;;::::1;::::0;;-1:-1:-1;;8943:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8943:16:0::1;8919:40;;8988:4;8970;8975:1;8970:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8970:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9014:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9014:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;8970:7;;9014:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9004:4;9009:1;9004:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9004:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9079:15:::1;::::0;9047:62:::1;::::0;9064:4:::1;::::0;9079:15:::1;9097:11:::0;9047:8:::1;:62::i;:::-;9120:15;::::0;:196:::1;::::0;-1:-1:-1;;;9120:196:0;;-1:-1:-1;;;;;9120:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9201:11;;9120:15:::1;::::0;9243:4;;9270::::1;::::0;9290:15:::1;::::0;9120:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4810:6:0;:14;;-1:-1:-1;;;;4810:14:0;;;-1:-1:-1;;;;8841:483:0:o;1454:246::-;1512:7;1536:1;1541;1536:6;1532:47;;-1:-1:-1;1566:1:0;1559:8;;1532:47;1589:9;1601:5;1605:1;1601;:5;:::i;:::-;1589:17;-1:-1:-1;1634:1:0;1625:5;1629:1;1589:17;1625:5;:::i;:::-;:10;1617:56;;;;-1:-1:-1;;;1617:56:0;;14343:2:1;1617:56:0;;;14325:21:1;14382:2;14362:18;;;14355:30;14421:34;14401:18;;;14394:62;-1:-1:-1;;;14472:18:1;;;14465:31;14513:19;;1617:56:0;14141:397:1;1617:56:0;1691:1;1454:246;-1:-1:-1;;;1454:246:0:o;1708:132::-;1766:7;1793:39;1797:1;1800;1793:39;;;;;;;;;;;;;;;;;:3;:39::i;9499:92::-;9556:10;;:27;;-1:-1:-1;;;;;9556:10:0;;;;:27;;;;;9576:6;;9556:10;:27;:10;:27;9576:6;9556:10;:27;;;;;;;;;;;;;;;;;;;8735:98;8792:7;8819:1;8817;:3;8816:9;;8824:1;8816:9;;;-1:-1:-1;8822:1:0;8735:98;-1:-1:-1;8735:98:0:o;1112:136::-;1170:7;1197:43;1201:1;1204;1197:43;;;;;;;;;;;;;;;;;:3;:43::i;925:179::-;983:7;;1015:5;1019:1;1015;:5;:::i;:::-;1003:17;;1044:1;1039;:6;;1031:46;;;;-1:-1:-1;;;1031:46:0;;14745:2:1;1031:46:0;;;14727:21:1;14784:2;14764:18;;;14757:30;14823:29;14803:18;;;14796:57;14870:18;;1031:46:0;14543:351:1;1848:189:0;1934:7;1969:12;1962:5;1954:28;;;;-1:-1:-1;;;1954:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1993:9:0;2005:5;2009:1;2005;: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:248::-;1604:6;1612;1665:2;1653:9;1644:7;1640:23;1636:32;1633:52;;;1681:1;1678;1671:12;1633:52;-1:-1:-1;;1704:23:1;;;1774:2;1759:18;;;1746:32;;-1:-1:-1;1536:248:1:o;1789:456::-;1866:6;1874;1882;1935:2;1923:9;1914:7;1910:23;1906:32;1903:52;;;1951:1;1948;1941:12;1903:52;1990:9;1977:23;2009:31;2034:5;2009:31;:::i;:::-;2059:5;-1:-1:-1;2116:2:1;2101:18;;2088:32;2129:33;2088:32;2129:33;:::i;:::-;1789:456;;2181:7;;-1:-1:-1;;;2235:2:1;2220:18;;;;2207:32;;1789:456::o;2250:180::-;2309:6;2362:2;2350:9;2341:7;2337:23;2333:32;2330:52;;;2378:1;2375;2368:12;2330:52;-1:-1:-1;2401:23:1;;2250:180;-1:-1:-1;2250:180:1:o;2624:127::-;2685:10;2680:3;2676:20;2673:1;2666:31;2716:4;2713:1;2706:15;2740:4;2737:1;2730:15;2756:1121;2840:6;2871:2;2914;2902:9;2893:7;2889:23;2885:32;2882:52;;;2930:1;2927;2920:12;2882:52;2970:9;2957:23;2999:18;3040:2;3032:6;3029:14;3026:34;;;3056:1;3053;3046:12;3026:34;3094:6;3083:9;3079:22;3069:32;;3139:7;3132:4;3128:2;3124:13;3120:27;3110:55;;3161:1;3158;3151:12;3110:55;3197:2;3184:16;3219:2;3215;3212:10;3209:36;;;3225:18;;:::i;:::-;3271:2;3268:1;3264:10;3303:2;3297:9;3366:2;3362:7;3357:2;3353;3349:11;3345:25;3337:6;3333:38;3421:6;3409:10;3406:22;3401:2;3389:10;3386:18;3383:46;3380:72;;;3432:18;;:::i;:::-;3468:2;3461:22;3518:18;;;3552:15;;;;-1:-1:-1;3594:11:1;;;3590:20;;;3622:19;;;3619:39;;;3654:1;3651;3644:12;3619:39;3678:11;;;;3698:148;3714:6;3709:3;3706:15;3698:148;;;3780:23;3799:3;3780:23;:::i;:::-;3768:36;;3731:12;;;;3824;;;;3698:148;;;3865:6;2756:1121;-1:-1:-1;;;;;;;;2756:1121:1:o;3882:118::-;3968:5;3961:13;3954:21;3947:5;3944:32;3934:60;;3990:1;3987;3980:12;4005:382;4070:6;4078;4131:2;4119:9;4110:7;4106:23;4102:32;4099:52;;;4147:1;4144;4137:12;4099:52;4186:9;4173:23;4205:31;4230:5;4205:31;:::i;:::-;4255:5;-1:-1:-1;4312:2:1;4297:18;;4284:32;4325:30;4284:32;4325:30;:::i;:::-;4374:7;4364:17;;;4005:382;;;;;:::o;4392:247::-;4451:6;4504:2;4492:9;4483:7;4479:23;4475:32;4472:52;;;4520:1;4517;4510:12;4472:52;4559:9;4546:23;4578:31;4603:5;4578:31;:::i;4852:388::-;4920:6;4928;4981:2;4969:9;4960:7;4956:23;4952:32;4949:52;;;4997:1;4994;4987:12;4949:52;5036:9;5023:23;5055:31;5080:5;5055:31;:::i;:::-;5105:5;-1:-1:-1;5162:2:1;5147:18;;5134:32;5175:33;5134:32;5175:33;:::i;5245:127::-;5306:10;5301:3;5297:20;5294:1;5287:31;5337:4;5334:1;5327:15;5361:4;5358:1;5351:15;5377:422;5466:1;5509:5;5466:1;5523:270;5544:7;5534:8;5531:21;5523:270;;;5603:4;5599:1;5595:6;5591:17;5585:4;5582:27;5579:53;;;5612:18;;:::i;:::-;5662:7;5652:8;5648:22;5645:55;;;5682:16;;;;5645:55;5761:22;;;;5721:15;;;;5523:270;;;5527:3;5377:422;;;;;:::o;5804:806::-;5853:5;5883:8;5873:80;;-1:-1:-1;5924:1:1;5938:5;;5873:80;5972:4;5962:76;;-1:-1:-1;6009:1:1;6023:5;;5962:76;6054:4;6072:1;6067:59;;;;6140:1;6135:130;;;;6047:218;;6067:59;6097:1;6088:10;;6111:5;;;6135:130;6172:3;6162:8;6159:17;6156:43;;;6179:18;;:::i;:::-;-1:-1:-1;;6235:1:1;6221:16;;6250:5;;6047:218;;6349:2;6339:8;6336:16;6330:3;6324:4;6321:13;6317:36;6311:2;6301:8;6298:16;6293:2;6287:4;6284:12;6280:35;6277:77;6274:159;;;-1:-1:-1;6386:19:1;;;6418:5;;6274:159;6465:34;6490:8;6484:4;6465:34;:::i;:::-;6535:6;6531:1;6527:6;6523:19;6514:7;6511:32;6508:58;;;6546:18;;:::i;:::-;6584:20;;5804:806;-1:-1:-1;;;5804:806:1:o;6615:140::-;6673:5;6702:47;6743:4;6733:8;6729:19;6723:4;6702:47;:::i;6760:168::-;6833:9;;;6864;;6881:15;;;6875:22;;6861:37;6851:71;;6902:18;;:::i;6933:356::-;7135:2;7117:21;;;7154:18;;;7147:30;7213:34;7208:2;7193:18;;7186:62;7280:2;7265:18;;6933:356::o;7294:127::-;7355:10;7350:3;7346:20;7343:1;7336:31;7386:4;7383:1;7376:15;7410:4;7407:1;7400:15;7426:135;7465:3;7486:17;;;7483:43;;7506:18;;:::i;:::-;-1:-1:-1;7553:1:1;7542:13;;7426:135::o;8530:306::-;8618:6;8626;8634;8687:2;8675:9;8666:7;8662:23;8658:32;8655:52;;;8703:1;8700;8693:12;8655:52;8732:9;8726:16;8716:26;;8782:2;8771:9;8767:18;8761:25;8751:35;;8826:2;8815:9;8811:18;8805:25;8795:35;;8530:306;;;;;:::o;9120:245::-;9187:6;9240:2;9228:9;9219:7;9215:23;9211:32;9208:52;;;9256:1;9253;9246:12;9208:52;9288:9;9282:16;9307:28;9329:5;9307:28;:::i;9370:251::-;9440:6;9493:2;9481:9;9472:7;9468:23;9464:32;9461:52;;;9509:1;9506;9499:12;9461:52;9541:9;9535:16;9560:31;9585:5;9560:31;:::i;12316:125::-;12381:9;;;12402:10;;;12399:36;;;12415:18;;:::i;12801:128::-;12868:9;;;12889:11;;;12886:37;;;12903:18;;:::i;12934:980::-;13196:4;13244:3;13233:9;13229:19;13275:6;13264:9;13257:25;13301:2;13339:6;13334:2;13323:9;13319:18;13312:34;13382:3;13377:2;13366:9;13362:18;13355:31;13406:6;13441;13435:13;13472:6;13464;13457:22;13510:3;13499:9;13495:19;13488:26;;13549:2;13541:6;13537:15;13523:29;;13570:1;13580:195;13594:6;13591:1;13588:13;13580:195;;;13659:13;;-1:-1:-1;;;;;13655:39:1;13643:52;;13750:15;;;;13715:12;;;;13691:1;13609:9;13580:195;;;-1:-1:-1;;;;;;;13831:32:1;;;;13826:2;13811:18;;13804:60;-1:-1:-1;;;13895:3:1;13880:19;13873:35;13792:3;12934:980;-1:-1:-1;;;12934:980:1:o;13919:217::-;13959:1;13985;13975:132;;14029:10;14024:3;14020:20;14017:1;14010:31;14064:4;14061:1;14054:15;14092:4;14089:1;14082:15;13975:132;-1:-1:-1;14121:9:1;;13919:217::o

Swarm Source

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