ETH Price: $3,157.57 (+0.57%)
Gas: 2 Gwei

Token

Axiswap AI (AXS)
 

Overview

Max Total Supply

100,000,000 AXS

Holders

76

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
911,002.876324350062228414 AXS

Value
$0.00
0x437E72ed158fC409d6447AEFf6DacaD183900722
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:
AxiswapAI

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-30
*/

// SPDX-License-Identifier: MIT

/*
    Web      : https://axiswap.com
    App      : https://app.axiswap.com
    Doc      : https://gitbook.axiswap.com

    Twitter  : https://twitter.com/axiswaplabs
    Telegram : https://t.me/axiswap_official
*/

pragma solidity 0.8.19;

abstract contract Context {
    constructor() {
    }

    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view returns (bytes memory) {
        this;
        return msg.data;
    }
}


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

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IRouter01 {
    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);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

contract AxiswapAI is Context, Ownable, IERC20 {
    using SafeMath for uint256;

    function totalSupply() external pure override returns (uint256) { if (_totalSupply == 0) { revert(); } return _totalSupply; }
    function decimals() external pure override returns (uint8) { if (_totalSupply == 0) { revert(); } return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner(); }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function balanceOf(address account) public view override returns (uint256) {
        return balance[account];
    }

    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _noAxiswapFee;
    mapping (address => bool) private isLpPair;
    mapping (address => uint256) private balance;

    uint8 constant private _decimals = 18;
    uint256 constant public _totalSupply = 100_000_000 * 10**18;        
    uint256 private constant onePercent = 1000000 * 10**_decimals; // 1% from Liquidity 
    uint256 public maxWalletAmount = onePercent * 2;               // 2% max wallet at launch
    uint256 public swapThreshold = 420 * 10**_decimals;

    uint256 constant public buyfee = 0;        
    uint256 constant public sellfee = 5;

    uint256 constant public initialBatFee = 40;
    uint256 constant public fee_denominator = 100;
    
    uint256 constant private burnFee = 0;
    uint256 constant private burnDenominator = 100;
    address payable private  axiswapFees = payable(0x1EAb5A950f1f5c766591E44E0ca2A856c1747187); // Axiswap AI Fees

    IRouter02 public swapRouter;
    string constant private _name = "Axiswap AI";
    string constant private _symbol = "AXS";    
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;

    address public lpPair;
    bool private inSwap;
    
    uint256 private launchedAt;
    uint256 private launchDelay = 2;
    bool private launch = false;

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

    event updateAxiswapThresold(uint256 amount);

    constructor () {
        _noAxiswapFee[msg.sender] = true;
        _noAxiswapFee[address(this)] = true;
        _noAxiswapFee[axiswapFees] = true;
        
        balance[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    function createAxiswapPairs() external onlyOwner {

        require(!launch,"Already Axiswap AI launched!");

        swapRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Uniswap V2 Router
        
        _approve(address(this), address(swapRouter), _totalSupply);
        lpPair = IFactoryV2(swapRouter.factory()).createPair(address(this), swapRouter.WETH());
        isLpPair[lpPair] = true;
        swapRouter.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(lpPair).approve(address(swapRouter), type(uint).max);
    }

    receive() external payable {}

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

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");
        _allowances[sender][spender] = amount;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }

    function isNoAxiswapFeeWalletX(address account) external view returns(bool) {
        return _noAxiswapFee[account];
    }

        function internalSwap(uint256 contractBalance, uint256 tokensForSwap) internal inSwapFlag {
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = swapRouter.WETH();

        if (_allowances[address(this)][address(swapRouter)] != type(uint256).max) {
            _allowances[address(this)][address(swapRouter)] = type(uint256).max;
        }

        if(contractBalance > swapThreshold) {
            try swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokensForSwap,
                0,
                path,
                address(this),
                block.timestamp
            ) {} catch {
                return;
            }

            uint256 ethForMarketing = address(this).balance;
            axiswapFees.transfer(ethForMarketing);
        }
    }

    function removeAxiswapLimits() external onlyOwner {
        maxWalletAmount = _totalSupply;
    }

    function takeAxiswapTaxes(address from, bool issell, uint256 amount) internal returns (uint256) {

        uint256 fee;
        if (block.number < launchedAt + launchDelay) {
            fee = initialBatFee;
        } else {
            fee = buyfee;
            if (issell)  fee = sellfee;
        }

        if (fee == 0)  return amount; 

        uint256 feeAmount = amount * fee / fee_denominator;
        if (feeAmount > 0) {
            uint256 burnAmount = amount * burnFee / burnDenominator;
            balance[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);

            if(burnAmount > 0) {
                balance[address(this)] -= burnAmount;
                balance[address(DEAD)] += burnAmount;
                emit Transfer(address(this), DEAD, burnAmount);
            }
        }
        return amount - feeAmount;
    }

    function changeAxiswapThreshold(uint256 amount) external onlyOwner {
        require(amount >= 100,"Amount lower not accepted.");
        swapThreshold = amount;
        emit updateAxiswapThresold(swapThreshold);
    }

    function withdrawStuckEthBalance() external onlyOwner {
        require(address(this).balance > 0, "No Balance to withdraw!");
        payable(msg.sender).transfer(address(this).balance);
    }

    function is_AxiswapSell(address ins, address out) internal view returns (bool) { 
        bool _is_sell = isLpPair[out] && !isLpPair[ins];
        return _is_sell;
    }

    function isNoAxiswapInternalFees(address ins) internal view returns (bool) {
        return _noAxiswapFee[ins] && ins!=owner() && ins!=address(this);
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        uint256 amounts;
        balance[sender] = balance[sender].sub(
            amounts,
            "Insufficient Balance"
        );
        balance[recipient] = balance[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function _transfer(address from, address to, uint256 amount) internal returns  (bool) {
        bool takeFee = true;
        require(to != address(0), "ERC20: transfer to the zero address");
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(isNoAxiswapInternalFees(from)) {
            return _basicTransfer(from, to, amount);
        }

        if (_noAxiswapFee[from] || _noAxiswapFee[to]){
            takeFee = false;
        } else {
            require(launch, "Trading is not opened!");

            if(is_AxiswapSell(from, to) &&  !inSwap) {
                uint256 tokensToSwap = balanceOf(address(this));
                if(tokensToSwap >= swapThreshold && !inSwap) { 
                    if (tokensToSwap > onePercent) {
                        tokensToSwap = onePercent;
                    }                
                    internalSwap(amount, tokensToSwap);
                }
            } else {
                require(balanceOf(to) + amount <= maxWalletAmount, "Max wallet 2% at launch");
            }
        }

        balance[from] -= amount;
        uint256 amountAfterFee = (takeFee) ? takeAxiswapTaxes(from, is_AxiswapSell(from, to), amount) : amount;
        balance[to] += amountAfterFee; 
        emit Transfer(from, to, amountAfterFee);

        return true;
    }

    function enableTrading() external onlyOwner {
        require(!launch,"Already launched!");

        launch = true;
        launchedAt = block.number;
    }
}

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":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":"amount","type":"uint256"}],"name":"updateAxiswapThresold","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"buyfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"changeAxiswapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"createAxiswapPairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fee_denominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialBatFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isNoAxiswapFeeWalletX","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAxiswapLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckEthBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a6200029d565b6200002190620f4240620002b5565b6200002e906002620002b5565b6005556200003f6012600a6200029d565b6200004d906101a4620002b5565b600655600780546001600160a01b031916731eab5a950f1f5c766591e44e0ca2a856c17471871790556002600b55600c805460ff191690553480156200009257600080fd5b506200009e3362000138565b3360008181526002602090815260408083208054600160ff19918216811790925530855282852080548216831790556007546001600160a01b0316855282852080549091169091179055838352600482528083206a52b7d2dcc80cd2e40000009081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620002cf565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620001df578160001904821115620001c357620001c362000188565b80851615620001d157918102915b93841c9390800290620001a3565b509250929050565b600082620001f85750600162000297565b81620002075750600062000297565b81600181146200022057600281146200022b576200024b565b600191505062000297565b60ff8411156200023f576200023f62000188565b50506001821b62000297565b5060208310610133831016604e8410600b841016171562000270575081810a62000297565b6200027c83836200019e565b806000190482111562000293576200029362000188565b0290505b92915050565b6000620002ae60ff841683620001e7565b9392505050565b808202811582820484141762000297576200029762000188565b611b6180620002df6000396000f3fe6080604052600436106101c65760003560e01c8063715018a6116100f7578063aa4bde2811610095578063dc9d75b011610064578063dc9d75b0146104f2578063dd62ed3e14610507578063e9451f5f1461054d578063f2fde38b1461056257600080fd5b8063aa4bde2814610487578063b53457c61461049d578063c31c9c07146104b2578063cd912138146104d257600080fd5b80638b4e353a116100d15780638b4e353a146104265780638da5cb5b146103f357806395d89b411461043b578063a9059cbb1461046757600080fd5b8063715018a6146103de578063893d20e8146103f35780638a8c523c1461041157600080fd5b8063313ce56711610164578063597de4481161013e578063597de4481461034357806360cad12a1461037c578063652158491461039357806370a08231146103a857600080fd5b8063313ce567146102e85780633eaaf86b14610304578063452ed4f11461032357600080fd5b8063095ea7b3116101a0578063095ea7b31461026557806318160ddd146102955780631dc36945146102b357806323b872dd146102c857600080fd5b806303fd2a45146101d25780630445b6671461020557806306fdde031461022957600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e861dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561021157600080fd5b5061021b60065481565b6040519081526020016101fc565b34801561023557600080fd5b5060408051808201909152600a8152694178697377617020414960b01b60208201525b6040516101fc919061173b565b34801561027157600080fd5b5061028561028036600461179e565b610582565b60405190151581526020016101fc565b3480156102a157600080fd5b506a52b7d2dcc80cd2e400000061021b565b3480156102bf57600080fd5b5061021b600081565b3480156102d457600080fd5b506102856102e33660046117ca565b610599565b3480156102f457600080fd5b50604051601281526020016101fc565b34801561031057600080fd5b5061021b6a52b7d2dcc80cd2e400000081565b34801561032f57600080fd5b506009546101e8906001600160a01b031681565b34801561034f57600080fd5b5061028561035e36600461180b565b6001600160a01b031660009081526002602052604090205460ff1690565b34801561038857600080fd5b50610391610613565b005b34801561039f57600080fd5b506103916106c5565b3480156103b457600080fd5b5061021b6103c336600461180b565b6001600160a01b031660009081526004602052604090205490565b3480156103ea57600080fd5b50610391610a72565b3480156103ff57600080fd5b506000546001600160a01b03166101e8565b34801561041d57600080fd5b50610391610aa8565b34801561043257600080fd5b50610391610b2c565b34801561044757600080fd5b5060408051808201909152600381526241585360e81b6020820152610258565b34801561047357600080fd5b5061028561048236600461179e565b610b67565b34801561049357600080fd5b5061021b60055481565b3480156104a957600080fd5b5061021b602881565b3480156104be57600080fd5b506008546101e8906001600160a01b031681565b3480156104de57600080fd5b506103916104ed366004611828565b610b7e565b3480156104fe57600080fd5b5061021b606481565b34801561051357600080fd5b5061021b610522366004611841565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561055957600080fd5b5061021b600581565b34801561056e57600080fd5b5061039161057d36600461180b565b610c34565b600061058f338484610ccc565b5060015b92915050565b6001600160a01b0383166000908152600160209081526040808320338452909152812054600019146105fe576001600160a01b0384166000908152600160209081526040808320338452909152812080548492906105f8908490611890565b90915550505b610609848484610d90565b90505b9392505050565b6000546001600160a01b031633146106465760405162461bcd60e51b815260040161063d906118a3565b60405180910390fd5b600047116106965760405162461bcd60e51b815260206004820152601760248201527f4e6f2042616c616e636520746f20776974686472617721000000000000000000604482015260640161063d565b60405133904780156108fc02916000818181858888f193505050501580156106c2573d6000803e3d6000fd5b50565b6000546001600160a01b031633146106ef5760405162461bcd60e51b815260040161063d906118a3565b600c5460ff16156107425760405162461bcd60e51b815260206004820152601c60248201527f416c72656164792041786973776170204149206c61756e636865642100000000604482015260640161063d565b600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107829030906a52b7d2dcc80cd2e4000000610ccc565b600860009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f991906118d8565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561085b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087f91906118d8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f091906118d8565b600980546001600160a01b039283166001600160a01b031990911681179091556000908152600360205260409020805460ff191660011790556008541663f305d7194730610953816001600160a01b031660009081526004602052604090205490565b6000806109686000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109d0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109f591906118f5565b505060095460085460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c29190611923565b6000546001600160a01b03163314610a9c5760405162461bcd60e51b815260040161063d906118a3565b610aa6600061115b565b565b6000546001600160a01b03163314610ad25760405162461bcd60e51b815260040161063d906118a3565b600c5460ff1615610b195760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b604482015260640161063d565b600c805460ff1916600117905543600a55565b6000546001600160a01b03163314610b565760405162461bcd60e51b815260040161063d906118a3565b6a52b7d2dcc80cd2e4000000600555565b6000610b74338484610d90565b5060019392505050565b6000546001600160a01b03163314610ba85760405162461bcd60e51b815260040161063d906118a3565b6064811015610bf95760405162461bcd60e51b815260206004820152601a60248201527f416d6f756e74206c6f776572206e6f742061636365707465642e000000000000604482015260640161063d565b60068190556040518181527f4418ba6b1e59bc685b7c38519dff35cf4cfbbdbc05bf48c764f7040a7d4b43a79060200160405180910390a150565b6000546001600160a01b03163314610c5e5760405162461bcd60e51b815260040161063d906118a3565b6001600160a01b038116610cc35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161063d565b6106c28161115b565b6001600160a01b038316610d185760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161063d565b6001600160a01b038216610d645760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161063d565b6001600160a01b0392831660009081526001602090815260408083209490951682529290925291902055565b600060016001600160a01b038416610df65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161063d565b6001600160a01b038516610e5a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161063d565b60008311610ebc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161063d565b610ec5856111ab565b15610edd57610ed58585856111fb565b91505061060c565b6001600160a01b03851660009081526002602052604090205460ff1680610f1c57506001600160a01b03841660009081526002602052604090205460ff165b15610f2957506000611091565b600c5460ff16610f745760405162461bcd60e51b815260206004820152601660248201527554726164696e67206973206e6f74206f70656e65642160501b604482015260640161063d565b610f7e85856112d3565b8015610f945750600954600160a01b900460ff16155b1561101657306000908152600460205260409020546006548110801590610fc55750600954600160a01b900460ff16155b1561101057610fd66012600a611a29565b610fe390620f4240611a38565b81111561100657610ff66012600a611a29565b61100390620f4240611a38565b90505b611010848261131e565b50611091565b60055483611039866001600160a01b031660009081526004602052604090205490565b6110439190611a4f565b11156110915760405162461bcd60e51b815260206004820152601760248201527f4d61782077616c6c6574203225206174206c61756e6368000000000000000000604482015260640161063d565b6001600160a01b038516600090815260046020526040812080548592906110b9908490611890565b9091555060009050816110cc57836110e0565b6110e0866110da88886112d3565b86611528565b6001600160a01b03861660009081526004602052604081208054929350839290919061110d908490611a4f565b92505081905550846001600160a01b0316866001600160a01b0316600080516020611b0c8339815191528360405161114791815260200190565b60405180910390a350600195945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811660009081526002602052604081205460ff1680156111e157506000546001600160a01b03838116911614155b801561059357506001600160a01b03821630141592915050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600490915291822054829161124f919083906116a2565b6001600160a01b03808716600090815260046020526040808220939093559086168152205461127e90846116dc565b6001600160a01b038086166000818152600460205260409081902093909355915190871690600080516020611b0c833981519152906112c09087815260200190565b60405180910390a3506001949350505050565b6001600160a01b038116600090815260036020526040812054819060ff16801561131657506001600160a01b03841660009081526003602052604090205460ff16155b949350505050565b6009805460ff60a01b1916600160a01b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061136657611366611a62565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e391906118d8565b816001815181106113f6576113f6611a62565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220600854909416825292909152205460001914611460573060009081526001602090815260408083206008546001600160a01b03168452909152902060001990555b6006548311156115155760085460405163791ac94760e01b81526001600160a01b039091169063791ac947906114a3908590600090869030904290600401611a78565b600060405180830381600087803b1580156114bd57600080fd5b505af19250505080156114ce575060015b6114d85750611517565b60075460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015611512573d6000803e3d6000fd5b50505b505b50506009805460ff60a01b19169055565b600080600b54600a5461153b9190611a4f565b43101561154a57506028611557565b5060008315611557575060055b80600003611568578291505061060c565b600060646115768386611a38565b6115809190611ae9565b9050801561168e57600060646115968287611a38565b6115a09190611ae9565b306000908152600460205260408120805492935084929091906115c4908490611a4f565b909155505060405182815230906001600160a01b03891690600080516020611b0c8339815191529060200160405180910390a3801561168c57306000908152600460205260408120805483929061161c908490611890565b909155505061dead600090815260046020527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd805483929061165f908490611a4f565b909155505060405181815261dead903090600080516020611b0c8339815191529060200160405180910390a35b505b6116988185611890565b9695505050505050565b600081848411156116c65760405162461bcd60e51b815260040161063d919061173b565b5060006116d38486611890565b95945050505050565b6000806116e98385611a4f565b90508381101561060c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161063d565b600060208083528351808285015260005b818110156117685785810183015185820160400152820161174c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106c257600080fd5b600080604083850312156117b157600080fd5b82356117bc81611789565b946020939093013593505050565b6000806000606084860312156117df57600080fd5b83356117ea81611789565b925060208401356117fa81611789565b929592945050506040919091013590565b60006020828403121561181d57600080fd5b813561060c81611789565b60006020828403121561183a57600080fd5b5035919050565b6000806040838503121561185457600080fd5b823561185f81611789565b9150602083013561186f81611789565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156105935761059361187a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156118ea57600080fd5b815161060c81611789565b60008060006060848603121561190a57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561193557600080fd5b8151801515811461060c57600080fd5b600181815b808511156119805781600019048211156119665761196661187a565b8085161561197357918102915b93841c939080029061194a565b509250929050565b60008261199757506001610593565b816119a457506000610593565b81600181146119ba57600281146119c4576119e0565b6001915050610593565b60ff8411156119d5576119d561187a565b50506001821b610593565b5060208310610133831016604e8410600b8410161715611a03575081810a610593565b611a0d8383611945565b8060001904821115611a2157611a2161187a565b029392505050565b600061060c60ff841683611988565b80820281158282048414176105935761059361187a565b808201808211156105935761059361187a565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ac85784516001600160a01b031683529383019391830191600101611aa3565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b0657634e487b7160e01b600052601260045260246000fd5b50049056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122020ffab40c898983c8cb8eba8d8867c343736414ebe0b448020aa5b901c496ffd64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c8063715018a6116100f7578063aa4bde2811610095578063dc9d75b011610064578063dc9d75b0146104f2578063dd62ed3e14610507578063e9451f5f1461054d578063f2fde38b1461056257600080fd5b8063aa4bde2814610487578063b53457c61461049d578063c31c9c07146104b2578063cd912138146104d257600080fd5b80638b4e353a116100d15780638b4e353a146104265780638da5cb5b146103f357806395d89b411461043b578063a9059cbb1461046757600080fd5b8063715018a6146103de578063893d20e8146103f35780638a8c523c1461041157600080fd5b8063313ce56711610164578063597de4481161013e578063597de4481461034357806360cad12a1461037c578063652158491461039357806370a08231146103a857600080fd5b8063313ce567146102e85780633eaaf86b14610304578063452ed4f11461032357600080fd5b8063095ea7b3116101a0578063095ea7b31461026557806318160ddd146102955780631dc36945146102b357806323b872dd146102c857600080fd5b806303fd2a45146101d25780630445b6671461020557806306fdde031461022957600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e861dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561021157600080fd5b5061021b60065481565b6040519081526020016101fc565b34801561023557600080fd5b5060408051808201909152600a8152694178697377617020414960b01b60208201525b6040516101fc919061173b565b34801561027157600080fd5b5061028561028036600461179e565b610582565b60405190151581526020016101fc565b3480156102a157600080fd5b506a52b7d2dcc80cd2e400000061021b565b3480156102bf57600080fd5b5061021b600081565b3480156102d457600080fd5b506102856102e33660046117ca565b610599565b3480156102f457600080fd5b50604051601281526020016101fc565b34801561031057600080fd5b5061021b6a52b7d2dcc80cd2e400000081565b34801561032f57600080fd5b506009546101e8906001600160a01b031681565b34801561034f57600080fd5b5061028561035e36600461180b565b6001600160a01b031660009081526002602052604090205460ff1690565b34801561038857600080fd5b50610391610613565b005b34801561039f57600080fd5b506103916106c5565b3480156103b457600080fd5b5061021b6103c336600461180b565b6001600160a01b031660009081526004602052604090205490565b3480156103ea57600080fd5b50610391610a72565b3480156103ff57600080fd5b506000546001600160a01b03166101e8565b34801561041d57600080fd5b50610391610aa8565b34801561043257600080fd5b50610391610b2c565b34801561044757600080fd5b5060408051808201909152600381526241585360e81b6020820152610258565b34801561047357600080fd5b5061028561048236600461179e565b610b67565b34801561049357600080fd5b5061021b60055481565b3480156104a957600080fd5b5061021b602881565b3480156104be57600080fd5b506008546101e8906001600160a01b031681565b3480156104de57600080fd5b506103916104ed366004611828565b610b7e565b3480156104fe57600080fd5b5061021b606481565b34801561051357600080fd5b5061021b610522366004611841565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561055957600080fd5b5061021b600581565b34801561056e57600080fd5b5061039161057d36600461180b565b610c34565b600061058f338484610ccc565b5060015b92915050565b6001600160a01b0383166000908152600160209081526040808320338452909152812054600019146105fe576001600160a01b0384166000908152600160209081526040808320338452909152812080548492906105f8908490611890565b90915550505b610609848484610d90565b90505b9392505050565b6000546001600160a01b031633146106465760405162461bcd60e51b815260040161063d906118a3565b60405180910390fd5b600047116106965760405162461bcd60e51b815260206004820152601760248201527f4e6f2042616c616e636520746f20776974686472617721000000000000000000604482015260640161063d565b60405133904780156108fc02916000818181858888f193505050501580156106c2573d6000803e3d6000fd5b50565b6000546001600160a01b031633146106ef5760405162461bcd60e51b815260040161063d906118a3565b600c5460ff16156107425760405162461bcd60e51b815260206004820152601c60248201527f416c72656164792041786973776170204149206c61756e636865642100000000604482015260640161063d565b600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107829030906a52b7d2dcc80cd2e4000000610ccc565b600860009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f991906118d8565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561085b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087f91906118d8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f091906118d8565b600980546001600160a01b039283166001600160a01b031990911681179091556000908152600360205260409020805460ff191660011790556008541663f305d7194730610953816001600160a01b031660009081526004602052604090205490565b6000806109686000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109d0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109f591906118f5565b505060095460085460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c29190611923565b6000546001600160a01b03163314610a9c5760405162461bcd60e51b815260040161063d906118a3565b610aa6600061115b565b565b6000546001600160a01b03163314610ad25760405162461bcd60e51b815260040161063d906118a3565b600c5460ff1615610b195760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b604482015260640161063d565b600c805460ff1916600117905543600a55565b6000546001600160a01b03163314610b565760405162461bcd60e51b815260040161063d906118a3565b6a52b7d2dcc80cd2e4000000600555565b6000610b74338484610d90565b5060019392505050565b6000546001600160a01b03163314610ba85760405162461bcd60e51b815260040161063d906118a3565b6064811015610bf95760405162461bcd60e51b815260206004820152601a60248201527f416d6f756e74206c6f776572206e6f742061636365707465642e000000000000604482015260640161063d565b60068190556040518181527f4418ba6b1e59bc685b7c38519dff35cf4cfbbdbc05bf48c764f7040a7d4b43a79060200160405180910390a150565b6000546001600160a01b03163314610c5e5760405162461bcd60e51b815260040161063d906118a3565b6001600160a01b038116610cc35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161063d565b6106c28161115b565b6001600160a01b038316610d185760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161063d565b6001600160a01b038216610d645760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161063d565b6001600160a01b0392831660009081526001602090815260408083209490951682529290925291902055565b600060016001600160a01b038416610df65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161063d565b6001600160a01b038516610e5a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161063d565b60008311610ebc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161063d565b610ec5856111ab565b15610edd57610ed58585856111fb565b91505061060c565b6001600160a01b03851660009081526002602052604090205460ff1680610f1c57506001600160a01b03841660009081526002602052604090205460ff165b15610f2957506000611091565b600c5460ff16610f745760405162461bcd60e51b815260206004820152601660248201527554726164696e67206973206e6f74206f70656e65642160501b604482015260640161063d565b610f7e85856112d3565b8015610f945750600954600160a01b900460ff16155b1561101657306000908152600460205260409020546006548110801590610fc55750600954600160a01b900460ff16155b1561101057610fd66012600a611a29565b610fe390620f4240611a38565b81111561100657610ff66012600a611a29565b61100390620f4240611a38565b90505b611010848261131e565b50611091565b60055483611039866001600160a01b031660009081526004602052604090205490565b6110439190611a4f565b11156110915760405162461bcd60e51b815260206004820152601760248201527f4d61782077616c6c6574203225206174206c61756e6368000000000000000000604482015260640161063d565b6001600160a01b038516600090815260046020526040812080548592906110b9908490611890565b9091555060009050816110cc57836110e0565b6110e0866110da88886112d3565b86611528565b6001600160a01b03861660009081526004602052604081208054929350839290919061110d908490611a4f565b92505081905550846001600160a01b0316866001600160a01b0316600080516020611b0c8339815191528360405161114791815260200190565b60405180910390a350600195945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811660009081526002602052604081205460ff1680156111e157506000546001600160a01b03838116911614155b801561059357506001600160a01b03821630141592915050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600490915291822054829161124f919083906116a2565b6001600160a01b03808716600090815260046020526040808220939093559086168152205461127e90846116dc565b6001600160a01b038086166000818152600460205260409081902093909355915190871690600080516020611b0c833981519152906112c09087815260200190565b60405180910390a3506001949350505050565b6001600160a01b038116600090815260036020526040812054819060ff16801561131657506001600160a01b03841660009081526003602052604090205460ff16155b949350505050565b6009805460ff60a01b1916600160a01b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061136657611366611a62565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e391906118d8565b816001815181106113f6576113f6611a62565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220600854909416825292909152205460001914611460573060009081526001602090815260408083206008546001600160a01b03168452909152902060001990555b6006548311156115155760085460405163791ac94760e01b81526001600160a01b039091169063791ac947906114a3908590600090869030904290600401611a78565b600060405180830381600087803b1580156114bd57600080fd5b505af19250505080156114ce575060015b6114d85750611517565b60075460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015611512573d6000803e3d6000fd5b50505b505b50506009805460ff60a01b19169055565b600080600b54600a5461153b9190611a4f565b43101561154a57506028611557565b5060008315611557575060055b80600003611568578291505061060c565b600060646115768386611a38565b6115809190611ae9565b9050801561168e57600060646115968287611a38565b6115a09190611ae9565b306000908152600460205260408120805492935084929091906115c4908490611a4f565b909155505060405182815230906001600160a01b03891690600080516020611b0c8339815191529060200160405180910390a3801561168c57306000908152600460205260408120805483929061161c908490611890565b909155505061dead600090815260046020527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd805483929061165f908490611a4f565b909155505060405181815261dead903090600080516020611b0c8339815191529060200160405180910390a35b505b6116988185611890565b9695505050505050565b600081848411156116c65760405162461bcd60e51b815260040161063d919061173b565b5060006116d38486611890565b95945050505050565b6000806116e98385611a4f565b90508381101561060c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161063d565b600060208083528351808285015260005b818110156117685785810183015185820160400152820161174c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106c257600080fd5b600080604083850312156117b157600080fd5b82356117bc81611789565b946020939093013593505050565b6000806000606084860312156117df57600080fd5b83356117ea81611789565b925060208401356117fa81611789565b929592945050506040919091013590565b60006020828403121561181d57600080fd5b813561060c81611789565b60006020828403121561183a57600080fd5b5035919050565b6000806040838503121561185457600080fd5b823561185f81611789565b9150602083013561186f81611789565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156105935761059361187a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156118ea57600080fd5b815161060c81611789565b60008060006060848603121561190a57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561193557600080fd5b8151801515811461060c57600080fd5b600181815b808511156119805781600019048211156119665761196661187a565b8085161561197357918102915b93841c939080029061194a565b509250929050565b60008261199757506001610593565b816119a457506000610593565b81600181146119ba57600281146119c4576119e0565b6001915050610593565b60ff8411156119d5576119d561187a565b50506001821b610593565b5060208310610133831016604e8410600b8410161715611a03575081810a610593565b611a0d8383611945565b8060001904821115611a2157611a2161187a565b029392505050565b600061060c60ff841683611988565b80820281158282048414176105935761059361187a565b808201808211156105935761059361187a565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ac85784516001600160a01b031683529383019391830191600101611aa3565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b0657634e487b7160e01b600052601260045260246000fd5b50049056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122020ffab40c898983c8cb8eba8d8867c343736414ebe0b448020aa5b901c496ffd64736f6c63430008130033

Deployed Bytecode Sourcemap

5978:9150:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7990:73;;;;;;;;;;;;8021:42;7990:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;7990:73:0;;;;;;;;7382:50;;;;;;;;;;;;;;;;;;;368:25:1;;;356:2;341:18;7382:50:0;222:177:1;6411:80:0;;;;;;;;;;-1:-1:-1;6483:5:0;;;;;;;;;;;;-1:-1:-1;;;6483:5:0;;;;6411:80;;;;;;;:::i;9519:161::-;;;;;;;;;;-1:-1:-1;9519:161:0;;;;;:::i;:::-;;:::i;:::-;;;1578:14:1;;1571:22;1553:41;;1541:2;1526:18;9519:161:0;1413:187:1;6067:125:0;;;;;;;;;;-1:-1:-1;7162:20:0;6067:125;;7441:34;;;;;;;;;;;;7474:1;7441:34;;9955:306;;;;;;;;;;-1:-1:-1;9955:306:0;;;;;:::i;:::-;;:::i;6198:117::-;;;;;;;;;;-1:-1:-1;6198:117:0;;7114:2;2208:36:1;;2196:2;2181:18;6198:117:0;2066:184:1;7123:59:0;;;;;;;;;;;;7162:20;7123:59;;8072:21;;;;;;;;;;-1:-1:-1;8072:21:0;;;;-1:-1:-1;;;;;8072:21:0;;;10269:124;;;;;;;;;;-1:-1:-1;10269:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;10363:22:0;10339:4;10363:22;;;:13;:22;;;;;;;;;10269:124;12534:196;;;;;;;;;;;;;:::i;:::-;;8669:632;;;;;;;;;;;;;:::i;6722:117::-;;;;;;;;;;-1:-1:-1;6722:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;6815:16:0;6788:7;6815:16;;;:7;:16;;;;;;;6722:117;2246:94;;;;;;;;;;;;;:::i;6497:80::-;;;;;;;;;;-1:-1:-1;6549:7:0;2096:6;-1:-1:-1;;;;;2096:6:0;6497:80;;14964:161;;;;;;;;;;;;;:::i;11286:99::-;;;;;;;;;;;;;:::i;6321:84::-;;;;;;;;;;-1:-1:-1;6395:7:0;;;;;;;;;;;;-1:-1:-1;;;6395:7:0;;;;6321:84;;9346:165;;;;;;;;;;-1:-1:-1;9346:165:0;;;;;:::i;:::-;;:::i;7287:47::-;;;;;;;;;;;;;;;;7534:42;;;;;;;;;;;;7574:2;7534:42;;7855:27;;;;;;;;;;-1:-1:-1;7855:27:0;;;;-1:-1:-1;;;;;7855:27:0;;;12304:222;;;;;;;;;;-1:-1:-1;12304:222:0;;;;;:::i;:::-;;:::i;7583:45::-;;;;;;;;;;;;7625:3;7583:45;;6583:133;;;;;;;;;;-1:-1:-1;6583:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6685:19:0;;;6667:7;6685:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6583:133;7490:35;;;;;;;;;;;;7524:1;7490:35;;2348:192;;;;;;;;;;-1:-1:-1;2348:192:0;;;;;:::i;:::-;;:::i;9519:161::-;9596:4;9613:37;9622:10;9634:7;9643:6;9613:8;:37::i;:::-;-1:-1:-1;9668:4:0;9519:161;;;;;:::o;9955:306::-;-1:-1:-1;;;;;10076:19:0;;10055:4;10076:19;;;:11;:19;;;;;;;;10096:10;10076:31;;;;;;;;-1:-1:-1;;10076:52:0;10072:126;;-1:-1:-1;;;;;10145:19:0;;;;;;:11;:19;;;;;;;;10165:10;10145:31;;;;;;;:41;;10180:6;;10145:19;:41;;10180:6;;10145:41;:::i;:::-;;;;-1:-1:-1;;10072:126:0;10217:36;10227:6;10235:9;10246:6;10217:9;:36::i;:::-;10210:43;;9955:306;;;;;;:::o;12534:196::-;2069:7;2096:6;-1:-1:-1;;;;;2096:6:0;439:10;2158:23;2150:68;;;;-1:-1:-1;;;2150:68:0;;;;;;;:::i;:::-;;;;;;;;;12631:1:::1;12607:21;:25;12599:61;;;::::0;-1:-1:-1;;;12599:61:0;;4138:2:1;12599:61:0::1;::::0;::::1;4120:21:1::0;4177:2;4157:18;;;4150:30;4216:25;4196:18;;;4189:53;4259:18;;12599:61:0::1;3936:347:1::0;12599:61:0::1;12671:51;::::0;12679:10:::1;::::0;12700:21:::1;12671:51:::0;::::1;;;::::0;::::1;::::0;;;12700:21;12679:10;12671:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12534:196::o:0;8669:632::-;2069:7;2096:6;-1:-1:-1;;;;;2096:6:0;439:10;2158:23;2150:68;;;;-1:-1:-1;;;2150:68:0;;;;;;;:::i;:::-;8740:6:::1;::::0;::::1;;8739:7;8731:47;;;::::0;-1:-1:-1;;;8731:47:0;;4490:2:1;8731:47:0::1;::::0;::::1;4472:21:1::0;4529:2;4509:18;;;4502:30;4568;4548:18;;;4541:58;4616:18;;8731:47:0::1;4288:352:1::0;8731:47:0::1;8791:10;:66:::0;;-1:-1:-1;;;;;;8791:66:0::1;8814:42;8791:66:::0;;::::1;::::0;;;8899:58:::1;::::0;8916:4:::1;::::0;7162:20:::1;8899:8;:58::i;:::-;8988:10;;;;;;;;;-1:-1:-1::0;;;;;8988:10:0::1;-1:-1:-1::0;;;;;8988:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8977:43:0::1;;9029:4;9036:10;;;;;;;;;-1:-1:-1::0;;;;;9036:10:0::1;-1:-1:-1::0;;;;;9036:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8977:77;::::0;-1:-1:-1;;;;;;8977:77:0::1;::::0;;;;;;-1:-1:-1;;;;;5131:15:1;;;8977:77:0::1;::::0;::::1;5113:34:1::0;5183:15;;5163:18;;;5156:43;5048:18;;8977:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8968:6;:86:::0;;-1:-1:-1;;;;;8968:86:0;;::::1;-1:-1:-1::0;;;;;;8968:86:0;;::::1;::::0;::::1;::::0;;;:6:::1;9065:16:::0;;;:8:::1;:16;::::0;;;;:23;;-1:-1:-1;;9065:23:0::1;8968:86:::0;9065:23:::1;::::0;;9099:10:::1;::::0;::::1;:26;9133:21;9164:4;9170:24;9164:4:::0;-1:-1:-1;;;;;6815:16:0;6788:7;6815:16;;;:7;:16;;;;;;;6722:117;9170:24:::1;9195:1;9197::::0;9199:7:::1;2069::::0;2096:6;-1:-1:-1;;;;;2096:6:0;;2023:87;9199:7:::1;9099:124;::::0;::::1;::::0;;;-1:-1:-1;;;;;;9099:124:0;;;-1:-1:-1;;;;;5569:15:1;;;9099:124:0::1;::::0;::::1;5551:34:1::0;5601:18;;;5594:34;;;;5644:18;;;5637:34;;;;5687:18;;;5680:34;5751:15;;;5730:19;;;5723:44;9207:15:0::1;5783:19:1::0;;;5776:35;5485:19;;9099:124:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9241:6:0::1;::::0;9265:10:::1;::::0;9234:59:::1;::::0;-1:-1:-1;;;9234:59:0;;-1:-1:-1;;;;;9265:10:0;;::::1;9234:59;::::0;::::1;6307:51:1::0;-1:-1:-1;;6374:18:1;;;6367:34;9241:6:0;::::1;::::0;-1:-1:-1;9234:22:0::1;::::0;6280:18:1;;9234:59:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2246:94::-:0;2069:7;2096:6;-1:-1:-1;;;;;2096:6:0;439:10;2158:23;2150:68;;;;-1:-1:-1;;;2150:68:0;;;;;;;:::i;:::-;2311:21:::1;2329:1;2311:9;:21::i;:::-;2246:94::o:0;14964:161::-;2069:7;2096:6;-1:-1:-1;;;;;2096:6:0;439:10;2158:23;2150:68;;;;-1:-1:-1;;;2150:68:0;;;;;;;:::i;:::-;15028:6:::1;::::0;::::1;;15027:7;15019:36;;;::::0;-1:-1:-1;;;15019:36:0;;6896:2:1;15019:36:0::1;::::0;::::1;6878:21:1::0;6935:2;6915:18;;;6908:30;-1:-1:-1;;;6954:18:1;;;6947:47;7011:18;;15019:36:0::1;6694:341:1::0;15019:36:0::1;15068:6;:13:::0;;-1:-1:-1;;15068:13:0::1;15077:4;15068:13;::::0;;15105:12:::1;15092:10;:25:::0;14964:161::o;11286:99::-;2069:7;2096:6;-1:-1:-1;;;;;2096:6:0;439:10;2158:23;2150:68;;;;-1:-1:-1;;;2150:68:0;;;;;;;:::i;:::-;7162:20:::1;11347:15;:30:::0;11286:99::o;9346:165::-;9424:4;9441:40;9451:10;9463:9;9474:6;9441:9;:40::i;:::-;-1:-1:-1;9499:4:0;;9346:165;-1:-1:-1;;;9346:165:0:o;12304:222::-;2069:7;2096:6;-1:-1:-1;;;;;2096:6:0;439:10;2158:23;2150:68;;;;-1:-1:-1;;;2150:68:0;;;;;;;:::i;:::-;12400:3:::1;12390:6;:13;;12382:51;;;::::0;-1:-1:-1;;;12382:51:0;;7242:2:1;12382:51:0::1;::::0;::::1;7224:21:1::0;7281:2;7261:18;;;7254:30;7320:28;7300:18;;;7293:56;7366:18;;12382:51:0::1;7040:350:1::0;12382:51:0::1;12444:13;:22:::0;;;12482:36:::1;::::0;368:25:1;;;12482:36:0::1;::::0;356:2:1;341:18;12482:36:0::1;;;;;;;12304:222:::0;:::o;2348:192::-;2069:7;2096:6;-1:-1:-1;;;;;2096:6:0;439:10;2158:23;2150:68;;;;-1:-1:-1;;;2150:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2437:22:0;::::1;2429:73;;;::::0;-1:-1:-1;;;2429:73:0;;7597:2:1;2429:73:0::1;::::0;::::1;7579:21:1::0;7636:2;7616:18;;;7609:30;7675:34;7655:18;;;7648:62;-1:-1:-1;;;7726:18:1;;;7719:36;7772:19;;2429:73:0::1;7395:402:1::0;2429:73:0::1;2513:19;2523:8;2513:9;:19::i;9688:259::-:0;-1:-1:-1;;;;;9783:20:0;;9775:52;;;;-1:-1:-1;;;9775:52:0;;8004:2:1;9775:52:0;;;7986:21:1;8043:2;8023:18;;;8016:30;-1:-1:-1;;;8062:18:1;;;8055:49;8121:18;;9775:52:0;7802:343:1;9775:52:0;-1:-1:-1;;;;;9846:21:0;;9838:53;;;;-1:-1:-1;;;9838:53:0;;8004:2:1;9838:53:0;;;7986:21:1;8043:2;8023:18;;;8016:30;-1:-1:-1;;;8062:18:1;;;8055:49;8121:18;;9838:53:0;7802:343:1;9838:53:0;-1:-1:-1;;;;;9902:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;9688:259::o;13511:1445::-;13591:4;13623;-1:-1:-1;;;;;13646:16:0;;13638:64;;;;-1:-1:-1;;;13638:64:0;;8352:2:1;13638:64:0;;;8334:21:1;8391:2;8371:18;;;8364:30;8430:34;8410:18;;;8403:62;-1:-1:-1;;;8481:18:1;;;8474:33;8524:19;;13638:64:0;8150:399:1;13638:64:0;-1:-1:-1;;;;;13721:18:0;;13713:68;;;;-1:-1:-1;;;13713:68:0;;8756:2:1;13713:68:0;;;8738:21:1;8795:2;8775:18;;;8768:30;8834:34;8814:18;;;8807:62;-1:-1:-1;;;8885:18:1;;;8878:35;8930:19;;13713:68:0;8554:401:1;13713:68:0;13809:1;13800:6;:10;13792:64;;;;-1:-1:-1;;;13792:64:0;;9162:2:1;13792:64:0;;;9144:21:1;9201:2;9181:18;;;9174:30;9240:34;9220:18;;;9213:62;-1:-1:-1;;;9291:18:1;;;9284:39;9340:19;;13792:64:0;8960:405:1;13792:64:0;13872:29;13896:4;13872:23;:29::i;:::-;13869:100;;;13925:32;13940:4;13946:2;13950:6;13925:14;:32::i;:::-;13918:39;;;;;13869:100;-1:-1:-1;;;;;13985:19:0;;;;;;:13;:19;;;;;;;;;:40;;-1:-1:-1;;;;;;14008:17:0;;;;;;:13;:17;;;;;;;;13985:40;13981:704;;;-1:-1:-1;14051:5:0;13981:704;;;14097:6;;;;14089:41;;;;-1:-1:-1;;;14089:41:0;;9572:2:1;14089:41:0;;;9554:21:1;9611:2;9591:18;;;9584:30;-1:-1:-1;;;9630:18:1;;;9623:52;9692:18;;14089:41:0;9370:346:1;14089:41:0;14150:24;14165:4;14171:2;14150:14;:24::i;:::-;:36;;;;-1:-1:-1;14180:6:0;;-1:-1:-1;;;14180:6:0;;;;14179:7;14150:36;14147:527;;;14248:4;14207:20;6815:16;;;:7;:16;;;;;;14292:13;;14276:29;;;;;:40;;-1:-1:-1;14310:6:0;;-1:-1:-1;;;14310:6:0;;;;14309:7;14276:40;14273:268;;;7245:13;7114:2;7245;:13;:::i;:::-;7235:23;;:7;:23;:::i;:::-;14346:12;:25;14342:107;;;7245:13;7114:2;7245;:13;:::i;:::-;7235:23;;:7;:23;:::i;:::-;14400:25;;14342:107;14487:34;14500:6;14508:12;14487;:34::i;:::-;14188:368;14147:527;;;14615:15;;14605:6;14589:13;14599:2;-1:-1:-1;;;;;6815:16:0;6788:7;6815:16;;;:7;:16;;;;;;;6722:117;14589:13;:22;;;;:::i;:::-;:41;;14581:77;;;;-1:-1:-1;;;14581:77:0;;11609:2:1;14581:77:0;;;11591:21:1;11648:2;11628:18;;;11621:30;11687:25;11667:18;;;11660:53;11730:18;;14581:77:0;11407:347:1;14581:77:0;-1:-1:-1;;;;;14697:13:0;;;;;;:7;:13;;;;;:23;;14714:6;;14697:13;:23;;14714:6;;14697:23;:::i;:::-;;;;-1:-1:-1;14731:22:0;;-1:-1:-1;14757:7:0;14756:77;;14827:6;14756:77;;;14768:56;14785:4;14791:24;14806:4;14812:2;14791:14;:24::i;:::-;14817:6;14768:16;:56::i;:::-;-1:-1:-1;;;;;14844:11:0;;;;;;:7;:11;;;;;:29;;14731:102;;-1:-1:-1;14731:102:0;;14844:11;;;:29;;14731:102;;14844:29;:::i;:::-;;;;;;;;14905:2;-1:-1:-1;;;;;14890:34:0;14899:4;-1:-1:-1;;;;;14890:34:0;-1:-1:-1;;;;;;;;;;;14909:14:0;14890:34;;;;368:25:1;;356:2;341:18;;222:177;14890:34:0;;;;;;;;-1:-1:-1;14944:4:0;;13511:1445;-1:-1:-1;;;;;13511:1445:0:o;2548:173::-;2604:16;2623:6;;-1:-1:-1;;;;;2640:17:0;;;-1:-1:-1;;;;;;2640:17:0;;;;;;2673:40;;2623:6;;;;;;;2673:40;;2604:16;2673:40;2593:128;2548:173;:::o;12918:157::-;-1:-1:-1;;;;;13011:18:0;;12987:4;13011:18;;;:13;:18;;;;;;;;:34;;;;-1:-1:-1;2069:7:0;2096:6;-1:-1:-1;;;;;13033:12:0;;;2096:6;;13033:12;;13011:34;:56;;;;-1:-1:-1;;;;;;13049:18:0;;13062:4;13049:18;;13004:63;12918:157;-1:-1:-1;;12918:157:0:o;13083:420::-;13271:89;;;;;;;;;;;-1:-1:-1;;;13271:89:0;;;;;;;;-1:-1:-1;;;;;13271:15:0;;13210:4;13271:15;;;:7;:15;;;;;;;13210:4;;13271:89;;:15;13210:4;;13271:19;:89::i;:::-;-1:-1:-1;;;;;13253:15:0;;;;;;;:7;:15;;;;;;:107;;;;13392:18;;;;;;;:30;;13415:6;13392:22;:30::i;:::-;-1:-1:-1;;;;;13371:18:0;;;;;;;:7;:18;;;;;;;:51;;;;13438:35;;;;;;-1:-1:-1;;;;;;;;;;;13438:35:0;;;13466:6;368:25:1;;356:2;341:18;;222:177;13438:35:0;;;;;;;;-1:-1:-1;13491:4:0;;13083:420;-1:-1:-1;;;;13083:420:0:o;12738:172::-;-1:-1:-1;;;;;12845:13:0;;12811:4;12845:13;;;:8;:13;;;;;;12811:4;;12845:13;;:31;;;;-1:-1:-1;;;;;;12863:13:0;;;;;;:8;:13;;;;;;;;12862:14;12845:31;12829:47;12738:172;-1:-1:-1;;;;12738:172:0:o;10405:873::-;8270:6;:13;;-1:-1:-1;;;;8270:13:0;-1:-1:-1;;;8270:13:0;;;10540:16:::1;::::0;;10554:1:::1;10540:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10540:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10540:16:0::1;10516:40;;10585:4;10567;10572:1;10567:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10567:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10611:10:::1;::::0;:17:::1;::::0;;-1:-1:-1;;;10611:17:0;;;;:10;;;::::1;::::0;:15:::1;::::0;:17:::1;::::0;;::::1;::::0;10567:7;;10611:17;;;;;:10;:17:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10601:4;10606:1;10601:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10601:27:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:27;;;;10665:4:::1;10645:26;::::0;;;:11:::1;:26:::0;;;;;;10680:10:::1;::::0;;;::::1;10645:47:::0;;;;;;;;-1:-1:-1;;10645:68:0::1;10641:168;;10750:4;10730:26;::::0;;;:11:::1;:26;::::0;;;;;;;10765:10:::1;::::0;-1:-1:-1;;;;;10765:10:0::1;10730:47:::0;;;;;;;-1:-1:-1;;10730:67:0;;10641:168:::1;10842:13;;10824:15;:31;10821:450;;;10876:10;::::0;:217:::1;::::0;-1:-1:-1;;;10876:217:0;;-1:-1:-1;;;;;10876:10:0;;::::1;::::0;:61:::1;::::0;:217:::1;::::0;10956:13;;10876:10:::1;::::0;11008:4;;11039::::1;::::0;11063:15:::1;::::0;10876:217:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;10872:272;;11122:7;;;10872:272;11222:11;::::0;:37:::1;::::0;11186:21:::1;::::0;-1:-1:-1;;;;;11222:11:0::1;::::0;:37;::::1;;;::::0;11186:21;;11160:23:::1;11222:37:::0;11160:23;11222:37;11186:21;11222:11;:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10857:414;10821:450;10495:783;8294:1;-1:-1:-1::0;;8306:6:0;:14;;-1:-1:-1;;;;8306:14:0;;;10405:873::o;11393:903::-;11480:7;11502:11;11556;;11543:10;;:24;;;;:::i;:::-;11528:12;:39;11524:177;;;-1:-1:-1;7574:2:0;11524:177;;;-1:-1:-1;7474:1:0;11663:26;;;;-1:-1:-1;7524:1:0;11663:26;11717:3;11724:1;11717:8;11713:28;;11735:6;11728:13;;;;;11713:28;11755:17;7625:3;11775:12;11784:3;11775:6;:12;:::i;:::-;:30;;;;:::i;:::-;11755:50;-1:-1:-1;11820:13:0;;11816:437;;11850:18;7727:3;11871:16;11850:18;11871:6;:16;:::i;:::-;:34;;;;:::i;:::-;11936:4;11920:22;;;;:7;:22;;;;;:35;;11850:55;;-1:-1:-1;11946:9:0;;11920:22;;;:35;;11946:9;;11920:35;:::i;:::-;;;;-1:-1:-1;;11975:40:0;;368:25:1;;;11998:4:0;;-1:-1:-1;;;;;11975:40:0;;;-1:-1:-1;;;;;;;;;;;11975:40:0;356:2:1;341:18;11975:40:0;;;;;;;12035:14;;12032:210;;12086:4;12070:22;;;;:7;:22;;;;;:36;;12096:10;;12070:22;:36;;12096:10;;12070:36;:::i;:::-;;;;-1:-1:-1;;8021:42:0;12125:22;;;;:7;:22;;;:36;;12151:10;;12125:22;:36;;12151:10;;12125:36;:::i;:::-;;;;-1:-1:-1;;12185:41:0;;368:25:1;;;8021:42:0;;12202:4;;-1:-1:-1;;;;;;;;;;;12185:41:0;356:2:1;341:18;12185:41:0;;;;;;;12032:210;11835:418;11816:437;12270:18;12279:9;12270:6;:18;:::i;:::-;12263:25;11393:903;-1:-1:-1;;;;;;11393:903:0:o;936:224::-;1056:7;1092:12;1084:6;;;;1076:29;;;;-1:-1:-1;;;1076:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1116:9:0;1128:5;1132:1;1128;:5;:::i;:::-;1116:17;936:224;-1:-1:-1;;;;;936:224:0:o;605:179::-;663:7;;695:5;699:1;695;:5;:::i;:::-;683:17;;724:1;719;:6;;711:46;;;;-1:-1:-1;;;711:46:0;;13432:2:1;711:46:0;;;13414:21:1;13471:2;13451:18;;;13444:30;13510:29;13490:18;;;13483:57;13557:18;;711:46:0;13230:351:1;404:548;516:4;545:2;574;563:9;556:21;606:6;600:13;649:6;644:2;633:9;629:18;622:34;674:1;684:140;698:6;695:1;692:13;684:140;;;793:14;;;789:23;;783:30;759:17;;;778:2;755:26;748:66;713:10;;684:140;;;688:3;873:1;868:2;859:6;848:9;844:22;840:31;833:42;943:2;936;932:7;927:2;919:6;915:15;911:29;900:9;896:45;892:54;884:62;;;;404:548;;;;:::o;957:131::-;-1:-1:-1;;;;;1032:31:1;;1022:42;;1012:70;;1078:1;1075;1068:12;1093:315;1161:6;1169;1222:2;1210:9;1201:7;1197:23;1193:32;1190:52;;;1238:1;1235;1228:12;1190:52;1277:9;1264:23;1296:31;1321:5;1296:31;:::i;:::-;1346:5;1398:2;1383:18;;;;1370:32;;-1:-1:-1;;;1093:315:1:o;1605:456::-;1682:6;1690;1698;1751:2;1739:9;1730:7;1726:23;1722:32;1719:52;;;1767:1;1764;1757:12;1719:52;1806:9;1793:23;1825:31;1850:5;1825:31;:::i;:::-;1875:5;-1:-1:-1;1932:2:1;1917:18;;1904:32;1945:33;1904:32;1945:33;:::i;:::-;1605:456;;1997:7;;-1:-1:-1;;;2051:2:1;2036:18;;;;2023:32;;1605:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2732:180::-;2791:6;2844:2;2832:9;2823:7;2819:23;2815:32;2812:52;;;2860:1;2857;2850:12;2812:52;-1:-1:-1;2883:23:1;;2732:180;-1:-1:-1;2732:180:1:o;2917:388::-;2985:6;2993;3046:2;3034:9;3025:7;3021:23;3017:32;3014:52;;;3062:1;3059;3052:12;3014:52;3101:9;3088:23;3120:31;3145:5;3120:31;:::i;:::-;3170:5;-1:-1:-1;3227:2:1;3212:18;;3199:32;3240:33;3199:32;3240:33;:::i;:::-;3292:7;3282:17;;;2917:388;;;;;:::o;3310:127::-;3371:10;3366:3;3362:20;3359:1;3352:31;3402:4;3399:1;3392:15;3426:4;3423:1;3416:15;3442:128;3509:9;;;3530:11;;;3527:37;;;3544:18;;:::i;3575:356::-;3777:2;3759:21;;;3796:18;;;3789:30;3855:34;3850:2;3835:18;;3828:62;3922:2;3907:18;;3575:356::o;4645:251::-;4715:6;4768:2;4756:9;4747:7;4743:23;4739:32;4736:52;;;4784:1;4781;4774:12;4736:52;4816:9;4810:16;4835:31;4860:5;4835:31;:::i;5822:306::-;5910:6;5918;5926;5979:2;5967:9;5958:7;5954:23;5950:32;5947:52;;;5995:1;5992;5985:12;5947:52;6024:9;6018:16;6008:26;;6074:2;6063:9;6059:18;6053:25;6043:35;;6118:2;6107:9;6103:18;6097:25;6087:35;;5822:306;;;;;:::o;6412:277::-;6479:6;6532:2;6520:9;6511:7;6507:23;6503:32;6500:52;;;6548:1;6545;6538:12;6500:52;6580:9;6574:16;6633:5;6626:13;6619:21;6612:5;6609:32;6599:60;;6655:1;6652;6645:12;9721:422;9810:1;9853:5;9810:1;9867:270;9888:7;9878:8;9875:21;9867:270;;;9947:4;9943:1;9939:6;9935:17;9929:4;9926:27;9923:53;;;9956:18;;:::i;:::-;10006:7;9996:8;9992:22;9989:55;;;10026:16;;;;9989:55;10105:22;;;;10065:15;;;;9867:270;;;9871:3;9721:422;;;;;:::o;10148:806::-;10197:5;10227:8;10217:80;;-1:-1:-1;10268:1:1;10282:5;;10217:80;10316:4;10306:76;;-1:-1:-1;10353:1:1;10367:5;;10306:76;10398:4;10416:1;10411:59;;;;10484:1;10479:130;;;;10391:218;;10411:59;10441:1;10432:10;;10455:5;;;10479:130;10516:3;10506:8;10503:17;10500:43;;;10523:18;;:::i;:::-;-1:-1:-1;;10579:1:1;10565:16;;10594:5;;10391:218;;10693:2;10683:8;10680:16;10674:3;10668:4;10665:13;10661:36;10655:2;10645:8;10642:16;10637:2;10631:4;10628:12;10624:35;10621:77;10618:159;;;-1:-1:-1;10730:19:1;;;10762:5;;10618:159;10809:34;10834:8;10828:4;10809:34;:::i;:::-;10879:6;10875:1;10871:6;10867:19;10858:7;10855:32;10852:58;;;10890:18;;:::i;:::-;10928:20;;10148:806;-1:-1:-1;;;10148:806:1:o;10959:140::-;11017:5;11046:47;11087:4;11077:8;11073:19;11067:4;11046:47;:::i;11104:168::-;11177:9;;;11208;;11225:15;;;11219:22;;11205:37;11195:71;;11246:18;;:::i;11277:125::-;11342:9;;;11363:10;;;11360:36;;;11376:18;;:::i;11891:127::-;11952:10;11947:3;11943:20;11940:1;11933:31;11983:4;11980:1;11973:15;12007:4;12004:1;11997:15;12023:980;12285:4;12333:3;12322:9;12318:19;12364:6;12353:9;12346:25;12390:2;12428:6;12423:2;12412:9;12408:18;12401:34;12471:3;12466:2;12455:9;12451:18;12444:31;12495:6;12530;12524:13;12561:6;12553;12546:22;12599:3;12588:9;12584:19;12577:26;;12638:2;12630:6;12626:15;12612:29;;12659:1;12669:195;12683:6;12680:1;12677:13;12669:195;;;12748:13;;-1:-1:-1;;;;;12744:39:1;12732:52;;12839:15;;;;12804:12;;;;12780:1;12698:9;12669:195;;;-1:-1:-1;;;;;;;12920:32:1;;;;12915:2;12900:18;;12893:60;-1:-1:-1;;;12984:3:1;12969:19;12962:35;12881:3;12023:980;-1:-1:-1;;;12023:980:1:o;13008:217::-;13048:1;13074;13064:132;;13118:10;13113:3;13109:20;13106:1;13099:31;13153:4;13150:1;13143:15;13181:4;13178:1;13171:15;13064:132;-1:-1:-1;13210:9:1;;13008:217::o

Swarm Source

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