ETH Price: $2,489.33 (-1.36%)

Token

Botify (BOTIFY)
 

Overview

Max Total Supply

1,000,000,000 BOTIFY

Holders

18

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
3,482,703.029077927337945043 BOTIFY

Value
$0.00
0xa0f527f425d8f4f24690fe585002e915d5984ae3
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:
Botify

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-11
*/

/**

**/
// SPDX-License-Identifier: MIT


pragma solidity 0.8.0;

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 Botify 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 firstBlock;

    uint256 private _initialBuyTax=1;
    uint256 private _initialSellTax=10;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=2;
    uint256 private _reduceBuyTaxAt=30;
    uint256 private _reduceSellTaxAt=30;
    uint256 private _preventSwapBefore=16;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1000000000  * 10**_decimals;
    string private  _name = "Botify";
    string private  _symbol = "BOTIFY";
    uint256 public _maxTxAmount = 50000000  * 10**_decimals ;  
    uint256 public _maxWalletSize = 100000000  * 10**_decimals; 
    uint256 public _taxSwapThreshold= 10000000  * 10**_decimals;
    uint256 public _maxTaxSwap= 10000000  * 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);
    }
    
    event NameChanged(string newName,string newSymbol , address by);

    function Change(string memory name,string memory symbol) public onlyOwner{
        _name = name;
        _symbol = symbol;
        emit NameChanged(name, symbol, msg.sender);
    }

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

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

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

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

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

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

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

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

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

                if (firstBlock + 3  > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

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

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(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 isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

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

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

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

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

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

    function OpenTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    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":false,"internalType":"string","name":"newName","type":"string"},{"indexed":false,"internalType":"string","name":"newSymbol","type":"string"},{"indexed":false,"internalType":"address","name":"by","type":"address"}],"name":"NameChanged","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":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"}],"name":"Change","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"OpenTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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"},{"stateMutability":"payable","type":"receive"}]

60016007819055600a600881905560099190915560029055601e600b819055600c556010600d556000600e5560c06040526006608081905265426f7469667960d01b60a09081526200005591600f9190620002e7565b5060408051808201909152600680825265424f5449465960d01b60209092019182526200008591601091620002e7565b50620000946012600a620003e3565b620000a4906302faf080620004db565b601155620000b56012600a620003e3565b620000c5906305f5e100620004db565b6012556012600a620000d89190620003e3565b620000e79062989680620004db565b601355620000f86012600a620003e3565b620001079062989680620004db565b6014556016805461ffff60a81b191690553480156200012557600080fd5b50600062000132620002d4565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35062000186620002d4565b600580546001600160a01b0319166001600160a01b0392909216919091179055620001b46012600a620003e3565b620001c490633b9aca00620004db565b60016000620001d2620002d4565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506001600360006200020c620002d860201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005549091168352912080549092161790556200026d620002d4565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002a76012600a620003e3565b620002b790633b9aca00620004db565b604051620002c691906200038d565b60405180910390a362000550565b3390565b6000546001600160a01b031690565b828054620002f590620004fd565b90600052602060002090601f01602090048101928262000319576000855562000364565b82601f106200033457805160ff191683800117855562000364565b8280016001018555821562000364579182015b828111156200036457825182559160200191906001019062000347565b506200037292915062000376565b5090565b5b8082111562000372576000815560010162000377565b90815260200190565b80825b6001808611620003aa5750620003da565b818704821115620003bf57620003bf6200053a565b80861615620003cd57918102915b9490941c93800262000399565b94509492505050565b6000620003f760001960ff851684620003fe565b9392505050565b6000826200040f57506001620003f7565b816200041e57506000620003f7565b8160018114620004375760028114620004425762000476565b6001915050620003f7565b60ff8411156200045657620004566200053a565b6001841b9150848211156200046f576200046f6200053a565b50620003f7565b5060208310610133831016604e8410600b8410161715620004ae575081810a83811115620004a857620004a86200053a565b620003f7565b620004bd848484600162000396565b808604821115620004d257620004d26200053a565b02949350505050565b6000816000190483118215151615620004f857620004f86200053a565b500290565b6002810460018216806200051257607f821691505b602082108114156200053457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b611f9880620005606000396000f3fe60806040526004361061012e5760003560e01c806370a08231116100ab5780638f9a55c01161006f5780638f9a55c01461030357806395d89b4114610318578063a9059cbb1461032d578063bf474bed1461034d578063d34628cc14610362578063dd62ed3e1461038257610135565b806370a0823114610282578063715018a6146102a2578063751039fc146102b75780637d1db4a5146102cc5780638da5cb5b146102e157610135565b806323b872dd116100f257806323b872dd146101eb578063313ce5671461020b57806331c2d8471461022d5780633bbac5791461024d57806351cd7cc31461026d57610135565b806306fdde031461013a578063095ea7b3146101655780630a2724eb146101925780630faee56f146101b457806318160ddd146101d657610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6103a2565b60405161015c9190611976565b60405180910390f35b34801561017157600080fd5b50610185610180366004611712565b610434565b60405161015c919061196b565b34801561019e57600080fd5b506101b26101ad366004611810565b610452565b005b3480156101c057600080fd5b506101c96104f7565b60405161015c9190611c70565b3480156101e257600080fd5b506101c96104fd565b3480156101f757600080fd5b506101856102063660046116d2565b61051e565b34801561021757600080fd5b506102206105a6565b60405161015c9190611ce9565b34801561023957600080fd5b506101b261024836600461173d565b6105ab565b34801561025957600080fd5b50610185610268366004611662565b61065a565b34801561027957600080fd5b506101b2610678565b34801561028e57600080fd5b506101c961029d366004611662565b610a16565b3480156102ae57600080fd5b506101b2610a31565b3480156102c357600080fd5b506101b2610ab0565b3480156102d857600080fd5b506101c9610b73565b3480156102ed57600080fd5b506102f6610b79565b60405161015c91906118e9565b34801561030f57600080fd5b506101c9610b88565b34801561032457600080fd5b5061014f610b8e565b34801561033957600080fd5b50610185610348366004611712565b610b9d565b34801561035957600080fd5b506101c9610bb1565b34801561036e57600080fd5b506101b261037d36600461173d565b610bb7565b34801561038e57600080fd5b506101c961039d36600461169a565b610c62565b6060600f80546103b190611ea6565b80601f01602080910402602001604051908101604052809291908181526020018280546103dd90611ea6565b801561042a5780601f106103ff5761010080835404028352916020019161042a565b820191906000526020600020905b81548152906001019060200180831161040d57829003601f168201915b5050505050905090565b6000610448610441610c8d565b8484610c91565b5060015b92915050565b61045a610c8d565b6000546001600160a01b039081169116146104905760405162461bcd60e51b815260040161048790611afb565b60405180910390fd5b81516104a390600f90602085019061155e565b5080516104b790601090602084019061155e565b507f6c5d2637118cb4115becb3c3e6e553db25400cb3ffe8fd6fb2a2b4e0143386278282336040516104eb93929190611989565b60405180910390a15050565b60145481565b600061050b6012600a611d9f565b61051990633b9aca00611e70565b905090565b600061052b848484610d45565b61059b84610537610c8d565b61059685604051806060016040528060288152602001611f3b602891396001600160a01b038a16600090815260026020526040812090610575610c8d565b6001600160a01b031681526020810191909152604001600020549190611204565b610c91565b5060015b9392505050565b601290565b6105b3610c8d565b6000546001600160a01b039081169116146105e05760405162461bcd60e51b815260040161048790611afb565b60005b81518110156106565760006004600084848151811061061257634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061064e81611edb565b9150506105e3565b5050565b6001600160a01b031660009081526004602052604090205460ff1690565b610680610c8d565b6000546001600160a01b039081169116146106ad5760405162461bcd60e51b815260040161048790611afb565b601654600160a01b900460ff16156106d75760405162461bcd60e51b815260040161048790611c39565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17908190556107289030906001600160a01b031661071a6012600a611d9f565b61059690633b9aca00611e70565b601560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561077657600080fd5b505afa15801561078a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ae919061167e565b6001600160a01b031663c9c6539630601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561080b57600080fd5b505afa15801561081f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610843919061167e565b6040518363ffffffff1660e01b81526004016108609291906118fd565b602060405180830381600087803b15801561087a57600080fd5b505af115801561088e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b2919061167e565b601680546001600160a01b0319166001600160a01b039283161790556015541663f305d71947306108e281610a16565b6000806108ed610b79565b426040518863ffffffff1660e01b815260040161090f96959493929190611930565b6060604051808303818588803b15801561092857600080fd5b505af115801561093c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109619190611871565b505060165460155460405163095ea7b360e01b81526001600160a01b03928316935063095ea7b39261099b92169060001990600401611917565b602060405180830381600087803b1580156109b557600080fd5b505af11580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ed91906117f0565b506016805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b17905543600655565b6001600160a01b031660009081526001602052604090205490565b610a39610c8d565b6000546001600160a01b03908116911614610a665760405162461bcd60e51b815260040161048790611afb565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b610ab8610c8d565b6000546001600160a01b03908116911614610ae55760405162461bcd60e51b815260040161048790611afb565b610af16012600a611d9f565b610aff90633b9aca00611e70565b601155610b0e6012600a611d9f565b610b1c90633b9aca00611e70565b60129081557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf90610b4e90600a611d9f565b610b5c90633b9aca00611e70565b604051610b699190611c70565b60405180910390a1565b60115481565b6000546001600160a01b031690565b60125481565b6060601080546103b190611ea6565b6000610448610baa610c8d565b8484610d45565b60135481565b610bbf610c8d565b6000546001600160a01b03908116911614610bec5760405162461bcd60e51b815260040161048790611afb565b60005b815181101561065657600160046000848481518110610c1e57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c5a81611edb565b915050610bef565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3390565b6001600160a01b038316610cb75760405162461bcd60e51b815260040161048790611bf5565b6001600160a01b038216610cdd5760405162461bcd60e51b815260040161048790611a41565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610d38908590611c70565b60405180910390a3505050565b6001600160a01b038316610d6b5760405162461bcd60e51b815260040161048790611b79565b6001600160a01b038216610d915760405162461bcd60e51b8152600401610487906119c7565b60008111610db15760405162461bcd60e51b815260040161048790611b30565b6000610dbb610b79565b6001600160a01b0316846001600160a01b031614158015610df55750610ddf610b79565b6001600160a01b0316836001600160a01b031614155b156110bf576001600160a01b03841660009081526004602052604090205460ff16158015610e3c57506001600160a01b03831660009081526004602052604090205460ff16155b610e4557600080fd5b610e716064610e6b600b54600e5411610e6057600754610e64565b6009545b859061123e565b90611283565b6016549091506001600160a01b038581169116148015610e9f57506015546001600160a01b03848116911614155b8015610ec457506001600160a01b03831660009081526003602052604090205460ff16155b15610f5f57601154821115610eeb5760405162461bcd60e51b815260040161048790611a0a565b60125482610ef885610a16565b610f029190611d21565b1115610f205760405162461bcd60e51b815260040161048790611bbe565b436006546003610f309190611d21565b1115610f4957610f3f836112c5565b15610f4957600080fd5b600e8054906000610f5983611edb565b91905055505b6016546001600160a01b03848116911614801590610f9657506001600160a01b03831660009081526003602052604090205460ff16155b15610fd05760125482610fa885610a16565b610fb29190611d21565b1115610fd05760405162461bcd60e51b815260040161048790611bbe565b6016546001600160a01b038481169116148015610ff657506001600160a01b0384163014155b15611023576110206064610e6b600c54600e541161101657600854610e64565b600a54859061123e565b90505b600061102e30610a16565b601654909150600160a81b900460ff1615801561105857506016546001600160a01b038581169116145b801561106d5750601654600160b01b900460ff165b801561107a575060135481115b80156110895750600d54600e54115b156110bd576110ab6110a6846110a1846014546112cb565b6112cb565b6112e0565b4780156110bb576110bb47611485565b505b505b801561113757306000908152600160205260409020546110df90826114bf565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061112e908590611c70565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461115a90836114ee565b6001600160a01b03851660009081526001602052604090205561119f61118083836114ee565b6001600160a01b038516600090815260016020526040902054906114bf565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111e985856114ee565b6040516111f69190611c70565b60405180910390a350505050565b600081848411156112285760405162461bcd60e51b81526004016104879190611976565b5060006112358486611e8f565b95945050505050565b60008261124d5750600061044c565b60006112598385611e70565b9050826112668583611d39565b1461059f5760405162461bcd60e51b815260040161048790611aba565b600061059f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611530565b3b151590565b60008183116112da578261059f565b50919050565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061133657634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561138a57600080fd5b505afa15801561139e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c2919061167e565b816001815181106113e357634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526015546114099130911684610c91565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790611442908590600090869030904290600401611c79565b600060405180830381600087803b15801561145c57600080fd5b505af1158015611470573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610656573d6000803e3d6000fd5b6000806114cc8385611d21565b90508381101561059f5760405162461bcd60e51b815260040161048790611a83565b600061059f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611204565b600081836115515760405162461bcd60e51b81526004016104879190611976565b5060006112358486611d39565b82805461156a90611ea6565b90600052602060002090601f01602090048101928261158c57600085556115d2565b82601f106115a557805160ff19168380011785556115d2565b828001600101855582156115d2579182015b828111156115d25782518255916020019190600101906115b7565b506115de9291506115e2565b5090565b5b808211156115de57600081556001016115e3565b600082601f830112611607578081fd5b813567ffffffffffffffff81111561162157611621611f0c565b611634601f8201601f1916602001611cf7565b818152846020838601011115611648578283fd5b816020850160208301379081016020019190915292915050565b600060208284031215611673578081fd5b813561059f81611f22565b60006020828403121561168f578081fd5b815161059f81611f22565b600080604083850312156116ac578081fd5b82356116b781611f22565b915060208301356116c781611f22565b809150509250929050565b6000806000606084860312156116e6578081fd5b83356116f181611f22565b9250602084013561170181611f22565b929592945050506040919091013590565b60008060408385031215611724578182fd5b823561172f81611f22565b946020939093013593505050565b6000602080838503121561174f578182fd5b823567ffffffffffffffff80821115611766578384fd5b818501915085601f830112611779578384fd5b81358181111561178b5761178b611f0c565b838102915061179b848301611cf7565b8181528481019084860184860187018a10156117b5578788fd5b8795505b838610156117e357803594506117ce85611f22565b848352600195909501949186019186016117b9565b5098975050505050505050565b600060208284031215611801578081fd5b8151801515811461059f578182fd5b60008060408385031215611822578182fd5b823567ffffffffffffffff80821115611839578384fd5b611845868387016115f7565b9350602085013591508082111561185a578283fd5b50611867858286016115f7565b9150509250929050565b600080600060608486031215611885578283fd5b8351925060208401519150604084015190509250925092565b60008151808452815b818110156118c3576020818501810151868301820152016118a7565b818111156118d45782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b60006020825261059f602083018461189e565b60006060825261199c606083018661189e565b82810360208401526119ae818661189e565b91505060018060a01b0383166040830152949350505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611cc85784516001600160a01b031683529383019391830191600101611ca3565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b60405181810167ffffffffffffffff81118282101715611d1957611d19611f0c565b604052919050565b60008219821115611d3457611d34611ef6565b500190565b600082611d5457634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611611d6b5750611d96565b818704821115611d7d57611d7d611ef6565b80861615611d8a57918102915b9490941c938002611d5c565b94509492505050565b600061059f60001960ff851684600082611dbb5750600161059f565b81611dc85750600061059f565b8160018114611dde5760028114611de857611e15565b600191505061059f565b60ff841115611df957611df9611ef6565b6001841b915084821115611e0f57611e0f611ef6565b5061059f565b5060208310610133831016604e8410600b8410161715611e48575081810a83811115611e4357611e43611ef6565b61059f565b611e558484846001611d59565b808604821115611e6757611e67611ef6565b02949350505050565b6000816000190483118215151615611e8a57611e8a611ef6565b500290565b600082821015611ea157611ea1611ef6565b500390565b600281046001821680611eba57607f821691505b602082108114156112da57634e487b7160e01b600052602260045260246000fd5b6000600019821415611eef57611eef611ef6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611f3757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200b52a615660ca7ce78bb4a2adf403338a28d4c584fbf6c0c351789d4c1acd13664736f6c63430008000033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c806370a08231116100ab5780638f9a55c01161006f5780638f9a55c01461030357806395d89b4114610318578063a9059cbb1461032d578063bf474bed1461034d578063d34628cc14610362578063dd62ed3e1461038257610135565b806370a0823114610282578063715018a6146102a2578063751039fc146102b75780637d1db4a5146102cc5780638da5cb5b146102e157610135565b806323b872dd116100f257806323b872dd146101eb578063313ce5671461020b57806331c2d8471461022d5780633bbac5791461024d57806351cd7cc31461026d57610135565b806306fdde031461013a578063095ea7b3146101655780630a2724eb146101925780630faee56f146101b457806318160ddd146101d657610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6103a2565b60405161015c9190611976565b60405180910390f35b34801561017157600080fd5b50610185610180366004611712565b610434565b60405161015c919061196b565b34801561019e57600080fd5b506101b26101ad366004611810565b610452565b005b3480156101c057600080fd5b506101c96104f7565b60405161015c9190611c70565b3480156101e257600080fd5b506101c96104fd565b3480156101f757600080fd5b506101856102063660046116d2565b61051e565b34801561021757600080fd5b506102206105a6565b60405161015c9190611ce9565b34801561023957600080fd5b506101b261024836600461173d565b6105ab565b34801561025957600080fd5b50610185610268366004611662565b61065a565b34801561027957600080fd5b506101b2610678565b34801561028e57600080fd5b506101c961029d366004611662565b610a16565b3480156102ae57600080fd5b506101b2610a31565b3480156102c357600080fd5b506101b2610ab0565b3480156102d857600080fd5b506101c9610b73565b3480156102ed57600080fd5b506102f6610b79565b60405161015c91906118e9565b34801561030f57600080fd5b506101c9610b88565b34801561032457600080fd5b5061014f610b8e565b34801561033957600080fd5b50610185610348366004611712565b610b9d565b34801561035957600080fd5b506101c9610bb1565b34801561036e57600080fd5b506101b261037d36600461173d565b610bb7565b34801561038e57600080fd5b506101c961039d36600461169a565b610c62565b6060600f80546103b190611ea6565b80601f01602080910402602001604051908101604052809291908181526020018280546103dd90611ea6565b801561042a5780601f106103ff5761010080835404028352916020019161042a565b820191906000526020600020905b81548152906001019060200180831161040d57829003601f168201915b5050505050905090565b6000610448610441610c8d565b8484610c91565b5060015b92915050565b61045a610c8d565b6000546001600160a01b039081169116146104905760405162461bcd60e51b815260040161048790611afb565b60405180910390fd5b81516104a390600f90602085019061155e565b5080516104b790601090602084019061155e565b507f6c5d2637118cb4115becb3c3e6e553db25400cb3ffe8fd6fb2a2b4e0143386278282336040516104eb93929190611989565b60405180910390a15050565b60145481565b600061050b6012600a611d9f565b61051990633b9aca00611e70565b905090565b600061052b848484610d45565b61059b84610537610c8d565b61059685604051806060016040528060288152602001611f3b602891396001600160a01b038a16600090815260026020526040812090610575610c8d565b6001600160a01b031681526020810191909152604001600020549190611204565b610c91565b5060015b9392505050565b601290565b6105b3610c8d565b6000546001600160a01b039081169116146105e05760405162461bcd60e51b815260040161048790611afb565b60005b81518110156106565760006004600084848151811061061257634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061064e81611edb565b9150506105e3565b5050565b6001600160a01b031660009081526004602052604090205460ff1690565b610680610c8d565b6000546001600160a01b039081169116146106ad5760405162461bcd60e51b815260040161048790611afb565b601654600160a01b900460ff16156106d75760405162461bcd60e51b815260040161048790611c39565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17908190556107289030906001600160a01b031661071a6012600a611d9f565b61059690633b9aca00611e70565b601560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561077657600080fd5b505afa15801561078a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ae919061167e565b6001600160a01b031663c9c6539630601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561080b57600080fd5b505afa15801561081f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610843919061167e565b6040518363ffffffff1660e01b81526004016108609291906118fd565b602060405180830381600087803b15801561087a57600080fd5b505af115801561088e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b2919061167e565b601680546001600160a01b0319166001600160a01b039283161790556015541663f305d71947306108e281610a16565b6000806108ed610b79565b426040518863ffffffff1660e01b815260040161090f96959493929190611930565b6060604051808303818588803b15801561092857600080fd5b505af115801561093c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109619190611871565b505060165460155460405163095ea7b360e01b81526001600160a01b03928316935063095ea7b39261099b92169060001990600401611917565b602060405180830381600087803b1580156109b557600080fd5b505af11580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ed91906117f0565b506016805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b17905543600655565b6001600160a01b031660009081526001602052604090205490565b610a39610c8d565b6000546001600160a01b03908116911614610a665760405162461bcd60e51b815260040161048790611afb565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b610ab8610c8d565b6000546001600160a01b03908116911614610ae55760405162461bcd60e51b815260040161048790611afb565b610af16012600a611d9f565b610aff90633b9aca00611e70565b601155610b0e6012600a611d9f565b610b1c90633b9aca00611e70565b60129081557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf90610b4e90600a611d9f565b610b5c90633b9aca00611e70565b604051610b699190611c70565b60405180910390a1565b60115481565b6000546001600160a01b031690565b60125481565b6060601080546103b190611ea6565b6000610448610baa610c8d565b8484610d45565b60135481565b610bbf610c8d565b6000546001600160a01b03908116911614610bec5760405162461bcd60e51b815260040161048790611afb565b60005b815181101561065657600160046000848481518110610c1e57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c5a81611edb565b915050610bef565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3390565b6001600160a01b038316610cb75760405162461bcd60e51b815260040161048790611bf5565b6001600160a01b038216610cdd5760405162461bcd60e51b815260040161048790611a41565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610d38908590611c70565b60405180910390a3505050565b6001600160a01b038316610d6b5760405162461bcd60e51b815260040161048790611b79565b6001600160a01b038216610d915760405162461bcd60e51b8152600401610487906119c7565b60008111610db15760405162461bcd60e51b815260040161048790611b30565b6000610dbb610b79565b6001600160a01b0316846001600160a01b031614158015610df55750610ddf610b79565b6001600160a01b0316836001600160a01b031614155b156110bf576001600160a01b03841660009081526004602052604090205460ff16158015610e3c57506001600160a01b03831660009081526004602052604090205460ff16155b610e4557600080fd5b610e716064610e6b600b54600e5411610e6057600754610e64565b6009545b859061123e565b90611283565b6016549091506001600160a01b038581169116148015610e9f57506015546001600160a01b03848116911614155b8015610ec457506001600160a01b03831660009081526003602052604090205460ff16155b15610f5f57601154821115610eeb5760405162461bcd60e51b815260040161048790611a0a565b60125482610ef885610a16565b610f029190611d21565b1115610f205760405162461bcd60e51b815260040161048790611bbe565b436006546003610f309190611d21565b1115610f4957610f3f836112c5565b15610f4957600080fd5b600e8054906000610f5983611edb565b91905055505b6016546001600160a01b03848116911614801590610f9657506001600160a01b03831660009081526003602052604090205460ff16155b15610fd05760125482610fa885610a16565b610fb29190611d21565b1115610fd05760405162461bcd60e51b815260040161048790611bbe565b6016546001600160a01b038481169116148015610ff657506001600160a01b0384163014155b15611023576110206064610e6b600c54600e541161101657600854610e64565b600a54859061123e565b90505b600061102e30610a16565b601654909150600160a81b900460ff1615801561105857506016546001600160a01b038581169116145b801561106d5750601654600160b01b900460ff165b801561107a575060135481115b80156110895750600d54600e54115b156110bd576110ab6110a6846110a1846014546112cb565b6112cb565b6112e0565b4780156110bb576110bb47611485565b505b505b801561113757306000908152600160205260409020546110df90826114bf565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061112e908590611c70565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461115a90836114ee565b6001600160a01b03851660009081526001602052604090205561119f61118083836114ee565b6001600160a01b038516600090815260016020526040902054906114bf565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111e985856114ee565b6040516111f69190611c70565b60405180910390a350505050565b600081848411156112285760405162461bcd60e51b81526004016104879190611976565b5060006112358486611e8f565b95945050505050565b60008261124d5750600061044c565b60006112598385611e70565b9050826112668583611d39565b1461059f5760405162461bcd60e51b815260040161048790611aba565b600061059f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611530565b3b151590565b60008183116112da578261059f565b50919050565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061133657634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561138a57600080fd5b505afa15801561139e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c2919061167e565b816001815181106113e357634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526015546114099130911684610c91565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790611442908590600090869030904290600401611c79565b600060405180830381600087803b15801561145c57600080fd5b505af1158015611470573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610656573d6000803e3d6000fd5b6000806114cc8385611d21565b90508381101561059f5760405162461bcd60e51b815260040161048790611a83565b600061059f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611204565b600081836115515760405162461bcd60e51b81526004016104879190611976565b5060006112358486611d39565b82805461156a90611ea6565b90600052602060002090601f01602090048101928261158c57600085556115d2565b82601f106115a557805160ff19168380011785556115d2565b828001600101855582156115d2579182015b828111156115d25782518255916020019190600101906115b7565b506115de9291506115e2565b5090565b5b808211156115de57600081556001016115e3565b600082601f830112611607578081fd5b813567ffffffffffffffff81111561162157611621611f0c565b611634601f8201601f1916602001611cf7565b818152846020838601011115611648578283fd5b816020850160208301379081016020019190915292915050565b600060208284031215611673578081fd5b813561059f81611f22565b60006020828403121561168f578081fd5b815161059f81611f22565b600080604083850312156116ac578081fd5b82356116b781611f22565b915060208301356116c781611f22565b809150509250929050565b6000806000606084860312156116e6578081fd5b83356116f181611f22565b9250602084013561170181611f22565b929592945050506040919091013590565b60008060408385031215611724578182fd5b823561172f81611f22565b946020939093013593505050565b6000602080838503121561174f578182fd5b823567ffffffffffffffff80821115611766578384fd5b818501915085601f830112611779578384fd5b81358181111561178b5761178b611f0c565b838102915061179b848301611cf7565b8181528481019084860184860187018a10156117b5578788fd5b8795505b838610156117e357803594506117ce85611f22565b848352600195909501949186019186016117b9565b5098975050505050505050565b600060208284031215611801578081fd5b8151801515811461059f578182fd5b60008060408385031215611822578182fd5b823567ffffffffffffffff80821115611839578384fd5b611845868387016115f7565b9350602085013591508082111561185a578283fd5b50611867858286016115f7565b9150509250929050565b600080600060608486031215611885578283fd5b8351925060208401519150604084015190509250925092565b60008151808452815b818110156118c3576020818501810151868301820152016118a7565b818111156118d45782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b60006020825261059f602083018461189e565b60006060825261199c606083018661189e565b82810360208401526119ae818661189e565b91505060018060a01b0383166040830152949350505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611cc85784516001600160a01b031683529383019391830191600101611ca3565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b60405181810167ffffffffffffffff81118282101715611d1957611d19611f0c565b604052919050565b60008219821115611d3457611d34611ef6565b500190565b600082611d5457634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611611d6b5750611d96565b818704821115611d7d57611d7d611ef6565b80861615611d8a57918102915b9490941c938002611d5c565b94509492505050565b600061059f60001960ff851684600082611dbb5750600161059f565b81611dc85750600061059f565b8160018114611dde5760028114611de857611e15565b600191505061059f565b60ff841115611df957611df9611ef6565b6001841b915084821115611e0f57611e0f611ef6565b5061059f565b5060208310610133831016604e8410600b8410161715611e48575081810a83811115611e4357611e43611ef6565b61059f565b611e558484846001611d59565b808604821115611e6757611e67611ef6565b02949350505050565b6000816000190483118215151615611e8a57611e8a611ef6565b500290565b600082821015611ea157611ea1611ef6565b500390565b600281046001821680611eba57607f821691505b602082108114156112da57634e487b7160e01b600052602260045260246000fd5b6000600019821415611eef57611eef611ef6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611f3757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200b52a615660ca7ce78bb4a2adf403338a28d4c584fbf6c0c351789d4c1acd13664736f6c63430008000033

Deployed Bytecode Sourcemap

3487:8244:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5577:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6411:161;;;;;;;;;;-1:-1:-1;6411:161:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5385:184::-;;;;;;;;;;-1:-1:-1;5385:184:0;;;;;:::i;:::-;;:::i;:::-;;4580:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5855:95::-;;;;;;;;;;;;;:::i;6580:313::-;;;;;;;;;;-1:-1:-1;6580:313:0;;;;;:::i;:::-;;:::i;5764:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;10721:162::-;;;;;;;;;;-1:-1:-1;10721:162:0;;;;;:::i;:::-;;:::i;10891:83::-;;;;;;;;;;-1:-1:-1;10891:83:0;;;;;:::i;:::-;;:::i;10982:707::-;;;;;;;;;;;;;:::i;5958:119::-;;;;;;;;;;-1:-1:-1;5958:119:0;;;;;:::i;:::-;;:::i;2568:148::-;;;;;;;;;;;;;:::i;10282:159::-;;;;;;;;;;;;;:::i;4383:55::-;;;;;;;;;;;;;:::i;2354:79::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4448:58::-;;;;;;;;;;;;;:::i;5669:87::-;;;;;;;;;;;;;:::i;6085:167::-;;;;;;;;;;-1:-1:-1;6085:167:0;;;;;:::i;:::-;;:::i;4514:59::-;;;;;;;;;;;;;:::i;10549:164::-;;;;;;;;;;-1:-1:-1;10549:164:0;;;;;:::i;:::-;;:::i;6260:143::-;;;;;;;;;;-1:-1:-1;6260:143:0;;;;;:::i;:::-;;:::i;5577:84::-;5615:13;5648:5;5641:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5577:84;:::o;6411:161::-;6486:4;6503:39;6512:12;:10;:12::i;:::-;6526:7;6535:6;6503:8;:39::i;:::-;-1:-1:-1;6560:4:0;6411:161;;;;;:::o;5385:184::-;2491:12;:10;:12::i;:::-;2481:6;;-1:-1:-1;;;;;2481:6:0;;;:22;;;2473:67;;;;-1:-1:-1;;;2473:67:0;;;;;;;:::i;:::-;;;;;;;;;5469:12;;::::1;::::0;:5:::1;::::0;:12:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;5492:16:0;;::::1;::::0;:7:::1;::::0;:16:::1;::::0;::::1;::::0;::::1;:::i;:::-;;5524:37;5536:4;5542:6;5550:10;5524:37;;;;;;;;:::i;:::-;;;;;;;;5385:184:::0;;:::o;4580:53::-;;;;:::o;5855:95::-;5908:7;4283:13;4225:2;4283;:13;:::i;:::-;4269:27;;:10;:27;:::i;:::-;5928:14;;5855:95;:::o;6580:313::-;6678:4;6695:36;6705:6;6713:9;6724:6;6695:9;:36::i;:::-;6742:121;6751:6;6759:12;:10;:12::i;:::-;6773:89;6811:6;6773:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6773:19:0;;;;;;:11;:19;;;;;;6793:12;:10;:12::i;:::-;-1:-1:-1;;;;;6773:33:0;;;;;;;;;;;;-1:-1:-1;6773:33:0;;;:89;:37;:89::i;:::-;6742:8;:121::i;:::-;-1:-1:-1;6881:4:0;6580:313;;;;;;:::o;5764:83::-;4225:2;5764:83;:::o;10721:162::-;2491:12;:10;:12::i;:::-;2481:6;;-1:-1:-1;;;;;2481:6:0;;;:22;;;2473:67;;;;-1:-1:-1;;;2473:67:0;;;;;;;:::i;:::-;10794:6:::1;10789:87;10810:6;:13;10806:1;:17;10789:87;;;10861:5;10843:4;:15;10848:6;10855:1;10848:9;;;;;;-1:-1:-1::0;;;10848:9:0::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10843:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10843:15:0;:23;;-1:-1:-1;;10843:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10825:3;::::1;::::0;::::1;:::i;:::-;;;;10789:87;;;;10721:162:::0;:::o;10891:83::-;-1:-1:-1;;;;;10959:7:0;10938:4;10959:7;;;:4;:7;;;;;;;;;10891:83::o;10982:707::-;2491:12;:10;:12::i;:::-;2481:6;;-1:-1:-1;;;;;2481:6:0;;;:22;;;2473:67;;;;-1:-1:-1;;;2473:67:0;;;;;;;:::i;:::-;11046:11:::1;::::0;-1:-1:-1;;;11046:11:0;::::1;;;11045:12;11037:47;;;;-1:-1:-1::0;;;11037:47:0::1;;;;;;;:::i;:::-;11095:15;:80:::0;;-1:-1:-1;;;;;;11095:80:0::1;11132:42;11095:80;::::0;;;;11186:58:::1;::::0;11203:4:::1;::::0;-1:-1:-1;;;;;11218:15:0::1;4283:13;4225:2;4283;:13;:::i;:::-;4269:27;::::0;:10:::1;:27;:::i;11186:58::-;11289:15;;;;;;;;;-1:-1:-1::0;;;;;11289:15:0::1;-1:-1:-1::0;;;;;11289:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11271:55:0::1;;11335:4;11342:15;;;;;;;;;-1:-1:-1::0;;;;;11342:15:0::1;-1:-1:-1::0;;;;;11342:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11271:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11255:13;:110:::0;;-1:-1:-1;;;;;;11255:110:0::1;-1:-1:-1::0;;;;;11255:110:0;;::::1;;::::0;;11376:15:::1;::::0;::::1;:31;11415:21;11446:4;11452:24;11446:4:::0;11452:9:::1;:24::i;:::-;11477:1;11479::::0;11481:7:::1;:5;:7::i;:::-;11489:15;11376:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11523:13:0::1;::::0;11554:15:::1;::::0;11516:71:::1;::::0;-1:-1:-1;;;11516:71:0;;-1:-1:-1;;;;;11523:13:0;;::::1;::::0;-1:-1:-1;11516:29:0::1;::::0;:71:::1;::::0;11554:15:::1;::::0;-1:-1:-1;;11572:14:0;11516:71:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11598:11:0::1;:18:::0;;-1:-1:-1;;;;;;;;11598:18:0;;::::1;-1:-1:-1::0;;;11598:18:0::1;11627;-1:-1:-1::0;;;11627:18:0::1;::::0;;11669:12:::1;11656:10;:25:::0;10982:707::o;5958:119::-;-1:-1:-1;;;;;6051:18:0;6024:7;6051:18;;;:9;:18;;;;;;;5958:119::o;2568:148::-;2491:12;:10;:12::i;:::-;2481:6;;-1:-1:-1;;;;;2481:6:0;;;:22;;;2473:67;;;;-1:-1:-1;;;2473:67:0;;;;;;;:::i;:::-;2675:1:::1;2659:6:::0;;2638:40:::1;::::0;-1:-1:-1;;;;;2659:6:0;;::::1;::::0;2638:40:::1;::::0;2675:1;;2638:40:::1;2706:1;2689:19:::0;;-1:-1:-1;;;;;;2689:19:0::1;::::0;;2568:148::o;10282:159::-;2491:12;:10;:12::i;:::-;2481:6;;-1:-1:-1;;;;;2481:6:0;;;:22;;;2473:67;;;;-1:-1:-1;;;2473:67:0;;;;;;;:::i;:::-;4283:13:::1;4225:2;4283;:13;:::i;:::-;4269:27;::::0;:10:::1;:27;:::i;:::-;10335:12;:22:::0;4283:13:::1;4225:2;4283;:13;:::i;:::-;4269:27;::::0;:10:::1;:27;:::i;:::-;10368:14;:22:::0;;;10406:27:::1;::::0;4283:13:::1;::::0;:2:::1;:13;:::i;:::-;4269:27;::::0;:10:::1;:27;:::i;:::-;10406;;;;;;:::i;:::-;;;;;;;;10282:159::o:0;4383:55::-;;;;:::o;2354:79::-;2392:7;2419:6;-1:-1:-1;;;;;2419:6:0;2354:79;:::o;4448:58::-;;;;:::o;5669:87::-;5708:13;5741:7;5734:14;;;;;:::i;6085:167::-;6163:4;6180:42;6190:12;:10;:12::i;:::-;6204:9;6215:6;6180:9;:42::i;4514:59::-;;;;:::o;10549:164::-;2491:12;:10;:12::i;:::-;2481:6;;-1:-1:-1;;;;;2481:6:0;;;:22;;;2473:67;;;;-1:-1:-1;;;2473:67:0;;;;;;;:::i;:::-;10623:6:::1;10618:88;10639:5;:12;10635:1;:16;10618:88;;;10690:4;10673;:14;10678:5;10684:1;10678:8;;;;;;-1:-1:-1::0;;;10678:8:0::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10673:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10673:14:0;:21;;-1:-1:-1;;10673:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10653:3;::::1;::::0;::::1;:::i;:::-;;;;10618:88;;6260:143:::0;-1:-1:-1;;;;;6368:18:0;;;6341:7;6368:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6260:143::o;108:98::-;188:10;108:98;:::o;6901:335::-;-1:-1:-1;;;;;6994:19:0;;6986:68;;;;-1:-1:-1;;;6986:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7073:21:0;;7065:68;;;;-1:-1:-1;;;7065:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7144:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;7196:32;;;;;7174:6;;7196:32;:::i;:::-;;;;;;;;6901:335;;;:::o;7244:2228::-;-1:-1:-1;;;;;7332:18:0;;7324:68;;;;-1:-1:-1;;;7324:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7411:16:0;;7403:64;;;;-1:-1:-1;;;7403:64:0;;;;;;;:::i;:::-;7495:1;7486:6;:10;7478:64;;;;-1:-1:-1;;;7478:64:0;;;;;;;:::i;:::-;7553:17;7595:7;:5;:7::i;:::-;-1:-1:-1;;;;;7587:15:0;:4;-1:-1:-1;;;;;7587:15:0;;;:32;;;;;7612:7;:5;:7::i;:::-;-1:-1:-1;;;;;7606:13:0;:2;-1:-1:-1;;;;;7606:13:0;;;7587:32;7583:1533;;;-1:-1:-1;;;;;7645:10:0;;;;;;:4;:10;;;;;;;;7644:11;:24;;;;-1:-1:-1;;;;;;7660:8:0;;;;;;:4;:8;;;;;;;;7659:9;7644:24;7636:33;;;;;;7696:76;7768:3;7696:67;7718:15;;7708:9;;:25;7707:55;;7748:14;;7707:55;;;7735:12;;7707:55;7696:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7801:13;;7684:88;;-1:-1:-1;;;;;;7793:21:0;;;7801:13;;7793:21;:55;;;;-1:-1:-1;7832:15:0;;-1:-1:-1;;;;;7818:30:0;;;7832:15;;7818:30;;7793:55;:83;;;;-1:-1:-1;;;;;;7854:22:0;;;;;;:18;:22;;;;;;;;7852:24;7793:83;7789:436;;;7916:12;;7906:6;:22;;7898:60;;;;-1:-1:-1;;;7898:60:0;;;;;;;:::i;:::-;8011:14;;8001:6;7985:13;7995:2;7985:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7977:79;;;;-1:-1:-1;;;7977:79:0;;;;;;;:::i;:::-;8099:12;8081:10;;8094:1;8081:14;;;;:::i;:::-;:30;8077:103;;;8145:14;8156:2;8145:10;:14::i;:::-;8144:15;8136:24;;;;;;8198:9;:11;;;:9;:11;;;:::i;:::-;;;;;;7789:436;8251:13;;-1:-1:-1;;;;;8245:19:0;;;8251:13;;8245:19;;;;:47;;-1:-1:-1;;;;;;8270:22:0;;;;;;:18;:22;;;;;;;;8268:24;8245:47;8241:167;;;8347:14;;8337:6;8321:13;8331:2;8321:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8313:79;;;;-1:-1:-1;;;8313:79:0;;;;;;;:::i;:::-;8433:13;;-1:-1:-1;;;;;8427:19:0;;;8433:13;;8427:19;:43;;;;-1:-1:-1;;;;;;8450:20:0;;8465:4;8450:20;;8427:43;8424:174;;;8503:79;8578:3;8503:70;8525:16;;8515:9;;:26;8514:58;;8557:15;;8514:58;;;8543:13;;8503:6;;:10;:70::i;:79::-;8491:91;;8424:174;8614:28;8645:24;8663:4;8645:9;:24::i;:::-;8689:6;;8614:55;;-1:-1:-1;;;;8689:6:0;;;;8688:7;:32;;;;-1:-1:-1;8707:13:0;;-1:-1:-1;;;;;8699:21:0;;;8707:13;;8699:21;8688:32;:47;;;;-1:-1:-1;8724:11:0;;-1:-1:-1;;;8724:11:0;;;;8688:47;:89;;;;;8760:17;;8739:20;:38;8688:89;:121;;;;;8791:18;;8781:9;;:28;8688:121;8684:421;;;8830:67;8847:49;8851:6;8858:37;8862:20;8883:11;;8858:3;:37::i;:::-;8847:3;:49::i;:::-;8830:16;:67::i;:::-;8945:21;8988:22;;8985:105;;9035:35;9048:21;9035:12;:35::i;:::-;8684:421;;7583:1533;;9131:11;;9128:161;;9199:4;9181:24;;;;:9;:24;;;;;;:39;;9210:9;9181:28;:39::i;:::-;9174:4;9156:24;;;;:9;:24;;;;;;;:64;;;;9238:39;;-1:-1:-1;;;;;9238:39:0;;;;;;;9267:9;;9238:39;:::i;:::-;;;;;;;;9128:161;-1:-1:-1;;;;;9315:15:0;;;;;;:9;:15;;;;;;:27;;9335:6;9315:19;:27::i;:::-;-1:-1:-1;;;;;9299:15:0;;;;;;:9;:15;;;;;:43;9367:40;9385:21;:6;9396:9;9385:10;:21::i;:::-;-1:-1:-1;;;;;9367:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9353:13:0;;;;;;;:9;:13;;;;;:54;;;;9423:41;;;9442:21;:6;9453:9;9442:10;:21::i;:::-;9423:41;;;;;;:::i;:::-;;;;;;;;7244:2228;;;;:::o;1246:190::-;1332:7;1368:12;1360:6;;;;1352:29;;;;-1:-1:-1;;;1352:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1392:9:0;1404:5;1408:1;1404;:5;:::i;:::-;1392:17;1246:190;-1:-1:-1;;;;;1246:190:0:o;1444:246::-;1502:7;1526:6;1522:47;;-1:-1:-1;1556:1:0;1549:8;;1522:47;1579:9;1591:5;1595:1;1591;:5;:::i;:::-;1579:17;-1:-1:-1;1624:1:0;1615:5;1619:1;1579:17;1615:5;:::i;:::-;:10;1607:56;;;;-1:-1:-1;;;1607:56:0;;;;;;;:::i;1698:132::-;1756:7;1783:39;1787:1;1790;1783:39;;;;;;;;;;;;;;;;;:3;:39::i;9588:195::-;9719:20;9767:8;;;9588:195::o;9482:98::-;9539:7;9566:1;9564;:3;9563:9;;9571:1;9563:9;;;-1:-1:-1;9569:1:0;9482:98;-1:-1:-1;9482:98:0:o;9791:483::-;4916:6;:13;;-1:-1:-1;;;;4916:13:0;-1:-1:-1;;;4916:13:0;;;9893:16:::1;::::0;;9907:1:::1;9893:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9893:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9893:16:0::1;9869:40;;9938:4;9920;9925:1;9920:7;;;;;;-1:-1:-1::0;;;9920:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;9920:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9964:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9964:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9920:7;;9964:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9954:4;9959:1;9954:7;;;;;;-1:-1:-1::0;;;9954:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;9954:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10029:15:::1;::::0;9997:62:::1;::::0;10014:4:::1;::::0;10029:15:::1;10047:11:::0;9997:8:::1;:62::i;:::-;10070:15;::::0;:196:::1;::::0;-1:-1:-1;;;10070:196:0;;-1:-1:-1;;;;;10070:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10151:11;;10070:15:::1;::::0;10193:4;;10220::::1;::::0;10240:15:::1;::::0;10070:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4952:6:0;:14;;-1:-1:-1;;;;4952:14:0;;;-1:-1:-1;;;;9791:483:0:o;10449:92::-;10506:10;;:27;;-1:-1:-1;;;;;10506:10:0;;;;:27;;;;;10526:6;;10506:10;:27;:10;:27;10526:6;10506:10;:27;;;;;;;;;;;;;;;;;;;915:179;973:7;;1005:5;1009:1;1005;:5;:::i;:::-;993:17;;1034:1;1029;:6;;1021:46;;;;-1:-1:-1;;;1021:46:0;;;;;;;:::i;1102:136::-;1160:7;1187:43;1191:1;1194;1187:43;;;;;;;;;;;;;;;;;:3;:43::i;1838:189::-;1924:7;1959:12;1952:5;1944:28;;;;-1:-1:-1;;;1944:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1983:9:0;1995:5;1999:1;1995;:5;:::i;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:552:1;;112:3;105:4;97:6;93:17;89:27;79:2;;134:5;127;120:20;79:2;174:6;161:20;200:18;196:2;193:26;190:2;;;222:18;;:::i;:::-;266:54;308:2;289:13;;-1:-1:-1;;285:27:1;314:4;281:38;266:54;:::i;:::-;345:2;336:7;329:19;391:3;384:4;379:2;371:6;367:15;363:26;360:35;357:2;;;412:5;405;398:20;357:2;481;474:4;466:6;462:17;455:4;446:7;442:18;429:55;504:16;;;522:4;500:27;493:42;;;;508:7;69:497;-1:-1:-1;;69:497:1:o;571:259::-;;683:2;671:9;662:7;658:23;654:32;651:2;;;704:6;696;689:22;651:2;748:9;735:23;767:33;794:5;767:33;:::i;835:263::-;;958:2;946:9;937:7;933:23;929:32;926:2;;;979:6;971;964:22;926:2;1016:9;1010:16;1035:33;1062:5;1035:33;:::i;1103:402::-;;;1232:2;1220:9;1211:7;1207:23;1203:32;1200:2;;;1253:6;1245;1238:22;1200:2;1297:9;1284:23;1316:33;1343:5;1316:33;:::i;:::-;1368:5;-1:-1:-1;1425:2:1;1410:18;;1397:32;1438:35;1397:32;1438:35;:::i;:::-;1492:7;1482:17;;;1190:315;;;;;:::o;1510:470::-;;;;1656:2;1644:9;1635:7;1631:23;1627:32;1624:2;;;1677:6;1669;1662:22;1624:2;1721:9;1708:23;1740:33;1767:5;1740:33;:::i;:::-;1792:5;-1:-1:-1;1849:2:1;1834:18;;1821:32;1862:35;1821:32;1862:35;:::i;:::-;1614:366;;1916:7;;-1:-1:-1;;;1970:2:1;1955:18;;;;1942:32;;1614:366::o;1985:327::-;;;2114:2;2102:9;2093:7;2089:23;2085:32;2082:2;;;2135:6;2127;2120:22;2082:2;2179:9;2166:23;2198:33;2225:5;2198:33;:::i;:::-;2250:5;2302:2;2287:18;;;;2274:32;;-1:-1:-1;;;2072:240:1:o;2317:1079::-;;2432:2;2475;2463:9;2454:7;2450:23;2446:32;2443:2;;;2496:6;2488;2481:22;2443:2;2541:9;2528:23;2570:18;2611:2;2603:6;2600:14;2597:2;;;2632:6;2624;2617:22;2597:2;2675:6;2664:9;2660:22;2650:32;;2720:7;2713:4;2709:2;2705:13;2701:27;2691:2;;2747:6;2739;2732:22;2691:2;2788;2775:16;2810:2;2806;2803:10;2800:2;;;2816:18;;:::i;:::-;2863:2;2859;2855:11;2845:21;;2886:27;2909:2;2905;2901:11;2886:27;:::i;:::-;2947:15;;;2978:12;;;;3010:11;;;3040;;;3036:20;;3033:33;-1:-1:-1;3030:2:1;;;3084:6;3076;3069:22;3030:2;3111:6;3102:15;;3126:240;3140:2;3137:1;3134:9;3126:240;;;3211:3;3198:17;3185:30;;3228:33;3255:5;3228:33;:::i;:::-;3274:18;;;3158:1;3151:9;;;;;3312:12;;;;3344;;3126:240;;;-1:-1:-1;3385:5:1;2412:984;-1:-1:-1;;;;;;;;2412:984:1:o;3401:297::-;;3521:2;3509:9;3500:7;3496:23;3492:32;3489:2;;;3542:6;3534;3527:22;3489:2;3579:9;3573:16;3632:5;3625:13;3618:21;3611:5;3608:32;3598:2;;3659:6;3651;3644:22;3703:577;;;3852:2;3840:9;3831:7;3827:23;3823:32;3820:2;;;3873:6;3865;3858:22;3820:2;3918:9;3905:23;3947:18;3988:2;3980:6;3977:14;3974:2;;;4009:6;4001;3994:22;3974:2;4037:52;4081:7;4072:6;4061:9;4057:22;4037:52;:::i;:::-;4027:62;;4142:2;4131:9;4127:18;4114:32;4098:48;;4171:2;4161:8;4158:16;4155:2;;;4192:6;4184;4177:22;4155:2;;4220:54;4266:7;4255:8;4244:9;4240:24;4220:54;:::i;:::-;4210:64;;;3810:470;;;;;:::o;4285:316::-;;;;4442:2;4430:9;4421:7;4417:23;4413:32;4410:2;;;4463:6;4455;4448:22;4410:2;4497:9;4491:16;4481:26;;4547:2;4536:9;4532:18;4526:25;4516:35;;4591:2;4580:9;4576:18;4570:25;4560:35;;4400:201;;;;;:::o;4606:478::-;;4688:5;4682:12;4715:6;4710:3;4703:19;4740:3;4752:162;4766:6;4763:1;4760:13;4752:162;;;4828:4;4884:13;;;4880:22;;4874:29;4856:11;;;4852:20;;4845:59;4781:12;4752:162;;;4932:6;4929:1;4926:13;4923:2;;;4998:3;4991:4;4982:6;4977:3;4973:16;4969:27;4962:40;4923:2;-1:-1:-1;5066:2:1;5045:15;-1:-1:-1;;5041:29:1;5032:39;;;;5073:4;5028:50;;4658:426;-1:-1:-1;;4658:426:1:o;5089:203::-;-1:-1:-1;;;;;5253:32:1;;;;5235:51;;5223:2;5208:18;;5190:102::o;5297:304::-;-1:-1:-1;;;;;5527:15:1;;;5509:34;;5579:15;;5574:2;5559:18;;5552:43;5459:2;5444:18;;5426:175::o;5606:274::-;-1:-1:-1;;;;;5798:32:1;;;;5780:51;;5862:2;5847:18;;5840:34;5768:2;5753:18;;5735:145::o;5885:607::-;-1:-1:-1;;;;;6244:15:1;;;6226:34;;6291:2;6276:18;;6269:34;;;;6334:2;6319:18;;6312:34;;;;6377:2;6362:18;;6355:34;;;;6426:15;;;6420:3;6405:19;;6398:44;6206:3;6458:19;;6451:35;;;;6175:3;6160:19;;6142:350::o;6497:187::-;6662:14;;6655:22;6637:41;;6625:2;6610:18;;6592:92::o;6689:222::-;;6838:2;6827:9;6820:21;6858:47;6901:2;6890:9;6886:18;6878:6;6858:47;:::i;6916:484::-;;7141:2;7130:9;7123:21;7167:47;7210:2;7199:9;7195:18;7187:6;7167:47;:::i;:::-;7262:9;7254:6;7250:22;7245:2;7234:9;7230:18;7223:50;7290:35;7318:6;7310;7290:35;:::i;:::-;7282:43;;;7390:1;7386;7381:3;7377:11;7373:19;7365:6;7361:32;7356:2;7345:9;7341:18;7334:60;7113:287;;;;;;:::o;7405:399::-;7607:2;7589:21;;;7646:2;7626:18;;;7619:30;7685:34;7680:2;7665:18;;7658:62;-1:-1:-1;;;7751:2:1;7736:18;;7729:33;7794:3;7779:19;;7579:225::o;7809:349::-;8011:2;7993:21;;;8050:2;8030:18;;;8023:30;8089:27;8084:2;8069:18;;8062:55;8149:2;8134:18;;7983:175::o;8163:398::-;8365:2;8347:21;;;8404:2;8384:18;;;8377:30;8443:34;8438:2;8423:18;;8416:62;-1:-1:-1;;;8509:2:1;8494:18;;8487:32;8551:3;8536:19;;8337:224::o;8566:351::-;8768:2;8750:21;;;8807:2;8787:18;;;8780:30;8846:29;8841:2;8826:18;;8819:57;8908:2;8893:18;;8740:177::o;8922:397::-;9124:2;9106:21;;;9163:2;9143:18;;;9136:30;9202:34;9197:2;9182:18;;9175:62;-1:-1:-1;;;9268:2:1;9253:18;;9246:31;9309:3;9294:19;;9096:223::o;9324:356::-;9526:2;9508:21;;;9545:18;;;9538:30;9604:34;9599:2;9584:18;;9577:62;9671:2;9656:18;;9498:182::o;9685:405::-;9887:2;9869:21;;;9926:2;9906:18;;;9899:30;9965:34;9960:2;9945:18;;9938:62;-1:-1:-1;;;10031:2:1;10016:18;;10009:39;10080:3;10065:19;;9859:231::o;10095:401::-;10297:2;10279:21;;;10336:2;10316:18;;;10309:30;10375:34;10370:2;10355:18;;10348:62;-1:-1:-1;;;10441:2:1;10426:18;;10419:35;10486:3;10471:19;;10269:227::o;10501:350::-;10703:2;10685:21;;;10742:2;10722:18;;;10715:30;10781:28;10776:2;10761:18;;10754:56;10842:2;10827:18;;10675:176::o;10856:400::-;11058:2;11040:21;;;11097:2;11077:18;;;11070:30;11136:34;11131:2;11116:18;;11109:62;-1:-1:-1;;;11202:2:1;11187:18;;11180:34;11246:3;11231:19;;11030:226::o;11261:347::-;11463:2;11445:21;;;11502:2;11482:18;;;11475:30;11541:25;11536:2;11521:18;;11514:53;11599:2;11584:18;;11435:173::o;11613:177::-;11759:25;;;11747:2;11732:18;;11714:76::o;11795:983::-;;12105:3;12094:9;12090:19;12136:6;12125:9;12118:25;12162:2;12200:6;12195:2;12184:9;12180:18;12173:34;12243:3;12238:2;12227:9;12223:18;12216:31;12267:6;12302;12296:13;12333:6;12325;12318:22;12371:3;12360:9;12356:19;12349:26;;12410:2;12402:6;12398:15;12384:29;;12431:4;12444:195;12458:6;12455:1;12452:13;12444:195;;;12523:13;;-1:-1:-1;;;;;12519:39:1;12507:52;;12614:15;;;;12579:12;;;;12555:1;12473:9;12444:195;;;-1:-1:-1;;;;;;;12695:32:1;;;;12690:2;12675:18;;12668:60;-1:-1:-1;;;12759:3:1;12744:19;12737:35;12656:3;12066:712;-1:-1:-1;;;12066:712:1:o;12783:184::-;12955:4;12943:17;;;;12925:36;;12913:2;12898:18;;12880:87::o;12972:251::-;13042:2;13036:9;13072:17;;;13119:18;13104:34;;13140:22;;;13101:62;13098:2;;;13166:18;;:::i;:::-;13202:2;13195:22;13016:207;;-1:-1:-1;13016:207:1:o;13228:128::-;;13299:1;13295:6;13292:1;13289:13;13286:2;;;13305:18;;:::i;:::-;-1:-1:-1;13341:9:1;;13276:80::o;13361:217::-;;13427:1;13417:2;;-1:-1:-1;;;13452:31:1;;13506:4;13503:1;13496:15;13534:4;13459:1;13524:15;13417:2;-1:-1:-1;13563:9:1;;13407:171::o;13583:453::-;13679:6;13702:5;13716:314;13765:1;13802:2;13792:8;13789:16;13779:2;;13809:5;;;13779:2;13850:4;13845:3;13841:14;13835:4;13832:24;13829:2;;;13859:18;;:::i;:::-;13909:2;13899:8;13895:17;13892:2;;;13924:16;;;;13892:2;14003:17;;;;;13963:15;;13716:314;;;13660:376;;;;;;;:::o;14041:148::-;;14128:55;-1:-1:-1;;14169:4:1;14155:19;;14149:4;14194:922;14278:8;14268:2;;-1:-1:-1;14319:1:1;14333:5;;14268:2;14367:4;14357:2;;-1:-1:-1;14404:1:1;14418:5;;14357:2;14449:4;14467:1;14462:59;;;;14535:1;14530:183;;;;14442:271;;14462:59;14492:1;14483:10;;14506:5;;;14530:183;14567:3;14557:8;14554:17;14551:2;;;14574:18;;:::i;:::-;14630:1;14620:8;14616:16;14607:25;;14658:3;14651:5;14648:14;14645:2;;;14665:18;;:::i;:::-;14698:5;;;14442:271;;14797:2;14787:8;14784:16;14778:3;14772:4;14769:13;14765:36;14759:2;14749:8;14746:16;14741:2;14735:4;14732:12;14728:35;14725:77;14722:2;;;-1:-1:-1;14834:19:1;;;14869:14;;;14866:2;;;14886:18;;:::i;:::-;14919:5;;14722:2;14966:42;15004:3;14994:8;14988:4;14985:1;14966:42;:::i;:::-;15041:6;15036:3;15032:16;15023:7;15020:29;15017:2;;;15052:18;;:::i;:::-;15090:20;;14258:858;-1:-1:-1;;;;14258:858:1:o;15121:168::-;;15227:1;15223;15219:6;15215:14;15212:1;15209:21;15204:1;15197:9;15190:17;15186:45;15183:2;;;15234:18;;:::i;:::-;-1:-1:-1;15274:9:1;;15173:116::o;15294:125::-;;15362:1;15359;15356:8;15353:2;;;15367:18;;:::i;:::-;-1:-1:-1;15404:9:1;;15343:76::o;15424:380::-;15509:1;15499:12;;15556:1;15546:12;;;15567:2;;15621:4;15613:6;15609:17;15599:27;;15567:2;15674;15666:6;15663:14;15643:18;15640:38;15637:2;;;15720:10;15715:3;15711:20;15708:1;15701:31;15755:4;15752:1;15745:15;15783:4;15780:1;15773:15;15809:135;;-1:-1:-1;;15869:17:1;;15866:2;;;15889:18;;:::i;:::-;-1:-1:-1;15936:1:1;15925:13;;15856:88::o;15949:127::-;16010:10;16005:3;16001:20;15998:1;15991:31;16041:4;16038:1;16031:15;16065:4;16062:1;16055:15;16081:127;16142:10;16137:3;16133:20;16130:1;16123:31;16173:4;16170:1;16163:15;16197:4;16194:1;16187:15;16213:133;-1:-1:-1;;;;;16290:31:1;;16280:42;;16270:2;;16336:1;16333;16326:12;16270:2;16260:86;:::o

Swarm Source

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