ETH Price: $3,506.16 (+0.16%)
Gas: 4 Gwei

Token

Luma AI (LUMA)
 

Overview

Max Total Supply

1,000,000,000 LUMA

Holders

59

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
85,292,343.882161579 LUMA

Value
$0.00
0x36c8ef0dd544bd38c69e57a7e03291080fbc5f98
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:
LUMA

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-04
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.17;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract LUMA is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    uint256 private enabled = 0;
    address payable private _taxWallet = payable(0x7545Ab497B10E54c4c44D9662936609458d9788a);
    uint256 private _finalBuyTax=20;
    uint256 private _finalSellTax=20;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Luma AI";
    string private constant _symbol = unicode"LUMA";
    uint256 public _maxTxAmount =   20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold=2000000 * 10**_decimals;
    uint256 public _maxTaxSwap=20000000 * 10**_decimals;
    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = false;

    uint public userCostEth = 0.2 ether;
    uint public userCostTokens = 500000 * 10**_decimals;
    uint256 public _marketingReserves = 0;
    address public DEAD = 0x000000000000000000000000000000000000dEaD;
    mapping(string => userUnlock) public unlockedUsers;
    mapping(string => channelUnlock) public unlockedChannels;
    event UserUnlocked(string tg_username, uint256 unlockTime);
    event ChannelUnlocked(string tg_channel, uint256 unlockTime);

    struct userUnlock {
        string tgUserName;
        bool unlocked;
        uint256 unlockedAt;
        uint256 totalEthPaid;
    }

    struct channelUnlock {
        string tgChannel;
        bool unlocked;
        uint256 unlockedAt;
        uint256 totalEthPaid;
    }


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

    constructor () {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_msgSender()] = true;
        _isExcludedFromFee[_taxWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function excludeFromFees(address[] memory wallets_) public onlyOwner {
        for (uint i = 0; i < wallets_.length; i++) {
            _isExcludedFromFee[wallets_[i]] = true;
        }
    }

    function removeExcluded(address[] memory wallets_) public onlyOwner {
        for (uint i = 0; i < wallets_.length; i++) {
            _isExcludedFromFee[wallets_[i]] = false;
        }
    }    

    function enableTrading() external onlyOwner() {
        require(!tradingOpen,"ERROR: Requirement already met");
        swapEnabled = true;
        tradingOpen = true;
    }
       
    function changeTax(uint256 _newBuyFee, uint256 _newSellFee) external onlyOwner() {
      _finalBuyTax=_newBuyFee;
      _finalSellTax=_newSellFee;
    }


    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

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

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


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


    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be bigger than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(tradingOpen, "Trading not open");
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul(_finalBuyTax).div(100);
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul(_finalSellTax).div(100);
            }

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

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

        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

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

    function unlockUser(string memory tg_username) external payable {
        require(msg.value >= userCostEth, "Not enough ETH sent!");
        require(msg.sender.balance >= userCostTokens, "Not enough tokens!");
        _marketingReserves += msg.value;
        _transfer(msg.sender, DEAD, userCostTokens);

        unlockedUsers[tg_username] = userUnlock(
            tg_username,
            true,
            block.timestamp,
            unlockedUsers[tg_username].totalEthPaid + msg.value
        );
        emit UserUnlocked(tg_username, block.timestamp);
    }

    function unlockChannel(string memory tg_channel) external payable {
        require(msg.value >= userCostEth, "Not enough ETH sent!");
        require(msg.sender.balance >= userCostTokens, "Not enough tokens!");
        _marketingReserves += msg.value;
        _transfer(msg.sender, DEAD, userCostTokens);
        
        unlockedChannels[tg_channel] = channelUnlock(
            tg_channel,
            true,
            block.timestamp,
            unlockedChannels[tg_channel].totalEthPaid + msg.value
        );
        emit ChannelUnlocked(tg_channel, block.timestamp);
    }
    
    
    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

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

    function manualSend() external {
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    receive() external payable {}

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"tg_channel","type":"string"},{"indexed":false,"internalType":"uint256","name":"unlockTime","type":"uint256"}],"name":"ChannelUnlocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"tg_username","type":"string"},{"indexed":false,"internalType":"uint256","name":"unlockTime","type":"uint256"}],"name":"UserUnlocked","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingReserves","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuyFee","type":"uint256"},{"internalType":"uint256","name":"_newSellFee","type":"uint256"}],"name":"changeTax","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":[{"internalType":"address[]","name":"wallets_","type":"address[]"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets_","type":"address[]"}],"name":"removeExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"tg_channel","type":"string"}],"name":"unlockChannel","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"string","name":"tg_username","type":"string"}],"name":"unlockUser","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"unlockedChannels","outputs":[{"internalType":"string","name":"tgChannel","type":"string"},{"internalType":"bool","name":"unlocked","type":"bool"},{"internalType":"uint256","name":"unlockedAt","type":"uint256"},{"internalType":"uint256","name":"totalEthPaid","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"unlockedUsers","outputs":[{"internalType":"string","name":"tgUserName","type":"string"},{"internalType":"bool","name":"unlocked","type":"bool"},{"internalType":"uint256","name":"unlockedAt","type":"uint256"},{"internalType":"uint256","name":"totalEthPaid","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"userCostEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"userCostTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600455600580546001600160a01b031916737545ab497b10e54c4c44d9662936609458d9788a17905560146006819055600755620000476009600a62000566565b62000057906301312d006200057e565b600855620000686009600a62000566565b62000078906301312d006200057e565b6009556009600a6200008b919062000566565b6200009a90621e84806200057e565b600a556009600a620000ad919062000566565b620000bd906301312d006200057e565b600b55600d805462ffffff60a01b191690556702c68af0bb140000600e55620000e96009600a62000566565b620000f8906207a1206200057e565b600f556000601055601180546001600160a01b03191661dead1790553480156200012157600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ee919062000598565b6001600160a01b031663c9c6539630600c60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000251573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000277919062000598565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002eb919062000598565b600d80546001600160a01b0319166001600160a01b0392909216919091179055620003196009600a62000566565b6200032990633b9aca006200057e565b336000908152600160208190526040822092909255600390620003546000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260039283905290812080549093166001908117909355620003a13390565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560055490911681526003909252902080549091166001179055620003f03390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200042a6009600a62000566565b6200043a90633b9aca006200057e565b60405190815260200160405180910390a3620005c3565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004a85781600019048211156200048c576200048c62000451565b808516156200049a57918102915b93841c93908002906200046c565b509250929050565b600082620004c15750600162000560565b81620004d05750600062000560565b8160018114620004e95760028114620004f45762000514565b600191505062000560565b60ff84111562000508576200050862000451565b50506001821b62000560565b5060208310610133831016604e8410600b841016171562000539575081810a62000560565b62000545838362000467565b80600019048211156200055c576200055c62000451565b0290505b92915050565b60006200057760ff841683620004b0565b9392505050565b808202811582820484141762000560576200056062000451565b600060208284031215620005ab57600080fd5b81516001600160a01b03811681146200057757600080fd5b611f5880620005d36000396000f3fe6080604052600436106101dc5760003560e01c8063715018a61161010257806395d89b4111610095578063c0fdea5711610064578063c0fdea5714610548578063dd62ed3e1461055e578063f4293890146105a4578063fbee93ba146105b957600080fd5b806395d89b41146104c5578063a2330d97146104f2578063a9059cbb14610512578063bf474bed1461053257600080fd5b80638da5cb5b116100d15780638da5cb5b146104515780638f9a55c01461046f5780639036ed4d1461048557806392f42870146104a557600080fd5b8063715018a6146103fc578063751039fc146104115780637d1db4a5146104265780638a8c523c1461043c57600080fd5b806316a7b1601161017a57806349bd5a5e1161014957806349bd5a5e1461036157806351bc3c851461038157806363cdf60f1461039657806370a08231146103c657600080fd5b806316a7b160146102fd57806318160ddd1461031057806323b872dd14610325578063313ce5671461034557600080fd5b806306fdde03116101b657806306fdde031461026b578063095ea7b3146102a45780630f1d7ad9146102d45780630faee56f146102e757600080fd5b806301fac39b146101e857806303fd2a451461020a578063054dee0f1461024757600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b50610208610203366004611861565b6105cf565b005b34801561021657600080fd5b5060115461022a906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561025357600080fd5b5061025d600e5481565b60405190815260200161023e565b34801561027757600080fd5b506040805180820190915260078152664c756d6120414960c81b60208201525b60405161023e9190611963565b3480156102b057600080fd5b506102c46102bf366004611976565b61066e565b604051901515815260200161023e565b6102086102e23660046119a2565b610685565b3480156102f357600080fd5b5061025d600b5481565b61020861030b3660046119a2565b610832565b34801561031c57600080fd5b5061025d6109d4565b34801561033157600080fd5b506102c4610340366004611a37565b6109f5565b34801561035157600080fd5b506040516009815260200161023e565b34801561036d57600080fd5b50600d5461022a906001600160a01b031681565b34801561038d57600080fd5b50610208610a5e565b3480156103a257600080fd5b506103b66103b13660046119a2565b610aad565b60405161023e9493929190611a78565b3480156103d257600080fd5b5061025d6103e1366004611aa7565b6001600160a01b031660009081526001602052604090205490565b34801561040857600080fd5b50610208610b6e565b34801561041d57600080fd5b50610208610be2565b34801561043257600080fd5b5061025d60085481565b34801561044857600080fd5b50610208610c96565b34801561045d57600080fd5b506000546001600160a01b031661022a565b34801561047b57600080fd5b5061025d60095481565b34801561049157600080fd5b506102086104a0366004611ac4565b610d33565b3480156104b157600080fd5b506102086104c0366004611861565b610d68565b3480156104d157600080fd5b506040805180820190915260048152634c554d4160e01b6020820152610297565b3480156104fe57600080fd5b506103b661050d3660046119a2565b610dfa565b34801561051e57600080fd5b506102c461052d366004611976565b610e20565b34801561053e57600080fd5b5061025d600a5481565b34801561055457600080fd5b5061025d60105481565b34801561056a57600080fd5b5061025d610579366004611ae6565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156105b057600080fd5b50610208610e2d565b3480156105c557600080fd5b5061025d600f5481565b6000546001600160a01b031633146106025760405162461bcd60e51b81526004016105f990611b1f565b60405180910390fd5b60005b815181101561066a5760006003600084848151811061062657610626611b54565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061066281611b80565b915050610605565b5050565b600061067b338484610e40565b5060015b92915050565b600e543410156106ce5760405162461bcd60e51b81526020600482015260146024820152734e6f7420656e6f756768204554482073656e742160601b60448201526064016105f9565b600f54333110156107165760405162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f75676820746f6b656e732160701b60448201526064016105f9565b34601060008282546107289190611b99565b9091555050601154600f5461074a9133916001600160a01b0390911690610f64565b60405180608001604052808281526020016001151581526020014281526020013460138460405161077b9190611bac565b9081526020016040518091039020600301546107979190611b99565b8152506013826040516107aa9190611bac565b908152604051908190036020019020815181906107c79082611c4b565b50602082015160018201805460ff19169115159190911790556040808301516002830155606090920151600390910155517f8382dfeb92e23123a91d983e4f179a9fbe329ff91e14e11cd3c3b5252f115122906108279083904290611d0b565b60405180910390a150565b600e5434101561087b5760405162461bcd60e51b81526020600482015260146024820152734e6f7420656e6f756768204554482073656e742160601b60448201526064016105f9565b600f54333110156108c35760405162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f75676820746f6b656e732160701b60448201526064016105f9565b34601060008282546108d59190611b99565b9091555050601154600f546108f79133916001600160a01b0390911690610f64565b6040518060800160405280828152602001600115158152602001428152602001346012846040516109289190611bac565b9081526020016040518091039020600301546109449190611b99565b8152506012826040516109579190611bac565b908152604051908190036020019020815181906109749082611c4b565b50602082015160018201805460ff19169115159190911790556040808301516002830155606090920151600390910155517f892c7b6af36dc1cd7c78d56ead1e536ddf81fe5688e6b3f631cdfadf7ad4c508906108279083904290611d0b565b60006109e26009600a611e11565b6109f090633b9aca00611e20565b905090565b6000610a02848484610f64565b610a548433610a4f85604051806060016040528060288152602001611efb602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611468565b610e40565b5060019392505050565b6005546001600160a01b0316336001600160a01b031614610a7e57600080fd5b306000908152600160205260409020548015610a9d57610a9d816114a2565b47801561066a5761066a8161161c565b8051602081830181018051601282529282019190930120915280548190610ad390611bc8565b80601f0160208091040260200160405190810160405280929190818152602001828054610aff90611bc8565b8015610b4c5780601f10610b2157610100808354040283529160200191610b4c565b820191906000526020600020905b815481529060010190602001808311610b2f57829003601f168201915b5050505060018301546002840154600390940154929360ff9091169290915084565b6000546001600160a01b03163314610b985760405162461bcd60e51b81526004016105f990611b1f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c0c5760405162461bcd60e51b81526004016105f990611b1f565b610c186009600a611e11565b610c2690633b9aca00611e20565b600855610c356009600a611e11565b610c4390633b9aca00611e20565b60099081557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf90610c7590600a611e11565b610c8390633b9aca00611e20565b60405190815260200160405180910390a1565b6000546001600160a01b03163314610cc05760405162461bcd60e51b81526004016105f990611b1f565b600d54600160a01b900460ff1615610d1a5760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a20526571756972656d656e7420616c7265616479206d6574000060448201526064016105f9565b600d805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b03163314610d5d5760405162461bcd60e51b81526004016105f990611b1f565b600691909155600755565b6000546001600160a01b03163314610d925760405162461bcd60e51b81526004016105f990611b1f565b60005b815181101561066a57600160036000848481518110610db657610db6611b54565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610df281611b80565b915050610d95565b8051602081830181018051601382529282019190930120915280548190610ad390611bc8565b600061067b338484610f64565b478015610e3d57610e3d8161161c565b50565b6001600160a01b038316610ea25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105f9565b6001600160a01b038216610f035760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105f9565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fc85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105f9565b6001600160a01b03821661102a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105f9565b6000811161108b5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206d75737420626520626967676572207460448201526768616e207a65726f60c01b60648201526084016105f9565b600080546001600160a01b038581169116148015906110b857506000546001600160a01b03848116911614155b1561132557600d546001600160a01b0385811691161480156110e85750600c546001600160a01b03848116911614155b801561110d57506001600160a01b03831660009081526003602052604090205460ff16155b1561124e57600d54600160a01b900460ff1661115e5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016105f9565b6008548211156111b05760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105f9565b600954826111d3856001600160a01b031660009081526001602052604090205490565b6111dd9190611b99565b111561122b5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105f9565b61124b60646112456006548561165690919063ffffffff16565b906116df565b90505b600d546001600160a01b03848116911614801561127457506001600160a01b0384163014155b156112965761129360646112456007548561165690919063ffffffff16565b90505b30600090815260016020526040902054600d54600160a81b900460ff161580156112cd5750600d546001600160a01b038581169116145b80156112e25750600d54600160b01b900460ff165b80156112ef5750600a5481115b156113235761131161130c8461130784600b54611721565b611721565b6114a2565b478015611321576113214761161c565b505b505b801561139f57306000908152600160205260409020546113459082611736565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113969085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546113c29083611795565b6001600160a01b0385166000908152600160205260409020556114076113e88383611795565b6001600160a01b03851660009081526001602052604090205490611736565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6114518585611795565b60405190815260200160405180910390a350505050565b6000818484111561148c5760405162461bcd60e51b81526004016105f99190611963565b5060006114998486611e37565b95945050505050565b600d805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106114ea576114ea611b54565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190611e4a565b8160018151811061157a5761157a611b54565b6001600160a01b039283166020918202929092010152600c546115a09130911684610e40565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906115d9908590600090869030904290600401611e67565b600060405180830381600087803b1580156115f357600080fd5b505af1158015611607573d6000803e3d6000fd5b5050600d805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561066a573d6000803e3d6000fd5b6000826000036116685750600061067f565b60006116748385611e20565b9050826116818583611ed8565b146116d85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105f9565b9392505050565b60006116d883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117d7565b600081831161173057826116d8565b50919050565b6000806117438385611b99565b9050838110156116d85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105f9565b60006116d883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611468565b600081836117f85760405162461bcd60e51b81526004016105f99190611963565b5060006114998486611ed8565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561184457611844611805565b604052919050565b6001600160a01b0381168114610e3d57600080fd5b6000602080838503121561187457600080fd5b823567ffffffffffffffff8082111561188c57600080fd5b818501915085601f8301126118a057600080fd5b8135818111156118b2576118b2611805565b8060051b91506118c384830161181b565b81815291830184019184810190888411156118dd57600080fd5b938501935b8385101561190757843592506118f78361184c565b82825293850193908501906118e2565b98975050505050505050565b60005b8381101561192e578181015183820152602001611916565b50506000910152565b6000815180845261194f816020860160208601611913565b601f01601f19169290920160200192915050565b6020815260006116d86020830184611937565b6000806040838503121561198957600080fd5b82356119948161184c565b946020939093013593505050565b600060208083850312156119b557600080fd5b823567ffffffffffffffff808211156119cd57600080fd5b818501915085601f8301126119e157600080fd5b8135818111156119f3576119f3611805565b611a05601f8201601f1916850161181b565b91508082528684828501011115611a1b57600080fd5b8084840185840137600090820190930192909252509392505050565b600080600060608486031215611a4c57600080fd5b8335611a578161184c565b92506020840135611a678161184c565b929592945050506040919091013590565b608081526000611a8b6080830187611937565b9415156020830152506040810192909252606090910152919050565b600060208284031215611ab957600080fd5b81356116d88161184c565b60008060408385031215611ad757600080fd5b50508035926020909101359150565b60008060408385031215611af957600080fd5b8235611b048161184c565b91506020830135611b148161184c565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611b9257611b92611b6a565b5060010190565b8082018082111561067f5761067f611b6a565b60008251611bbe818460208701611913565b9190910192915050565b600181811c90821680611bdc57607f821691505b60208210810361173057634e487b7160e01b600052602260045260246000fd5b601f821115611c4657600081815260208120601f850160051c81016020861015611c235750805b601f850160051c820191505b81811015611c4257828155600101611c2f565b5050505b505050565b815167ffffffffffffffff811115611c6557611c65611805565b611c7981611c738454611bc8565b84611bfc565b602080601f831160018114611cae5760008415611c965750858301515b600019600386901b1c1916600185901b178555611c42565b600085815260208120601f198616915b82811015611cdd57888601518255948401946001909101908401611cbe565b5085821015611cfb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000611d1e6040830185611937565b90508260208301529392505050565b600181815b80851115611d68578160001904821115611d4e57611d4e611b6a565b80851615611d5b57918102915b93841c9390800290611d32565b509250929050565b600082611d7f5750600161067f565b81611d8c5750600061067f565b8160018114611da25760028114611dac57611dc8565b600191505061067f565b60ff841115611dbd57611dbd611b6a565b50506001821b61067f565b5060208310610133831016604e8410600b8410161715611deb575081810a61067f565b611df58383611d2d565b8060001904821115611e0957611e09611b6a565b029392505050565b60006116d860ff841683611d70565b808202811582820484141761067f5761067f611b6a565b8181038181111561067f5761067f611b6a565b600060208284031215611e5c57600080fd5b81516116d88161184c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611eb75784516001600160a01b031683529383019391830191600101611e92565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ef557634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ca3a39d55dff08ca64a051f8dae9cd25af29c2f49333dac4b26d4e695475a3ca64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c8063715018a61161010257806395d89b4111610095578063c0fdea5711610064578063c0fdea5714610548578063dd62ed3e1461055e578063f4293890146105a4578063fbee93ba146105b957600080fd5b806395d89b41146104c5578063a2330d97146104f2578063a9059cbb14610512578063bf474bed1461053257600080fd5b80638da5cb5b116100d15780638da5cb5b146104515780638f9a55c01461046f5780639036ed4d1461048557806392f42870146104a557600080fd5b8063715018a6146103fc578063751039fc146104115780637d1db4a5146104265780638a8c523c1461043c57600080fd5b806316a7b1601161017a57806349bd5a5e1161014957806349bd5a5e1461036157806351bc3c851461038157806363cdf60f1461039657806370a08231146103c657600080fd5b806316a7b160146102fd57806318160ddd1461031057806323b872dd14610325578063313ce5671461034557600080fd5b806306fdde03116101b657806306fdde031461026b578063095ea7b3146102a45780630f1d7ad9146102d45780630faee56f146102e757600080fd5b806301fac39b146101e857806303fd2a451461020a578063054dee0f1461024757600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b50610208610203366004611861565b6105cf565b005b34801561021657600080fd5b5060115461022a906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561025357600080fd5b5061025d600e5481565b60405190815260200161023e565b34801561027757600080fd5b506040805180820190915260078152664c756d6120414960c81b60208201525b60405161023e9190611963565b3480156102b057600080fd5b506102c46102bf366004611976565b61066e565b604051901515815260200161023e565b6102086102e23660046119a2565b610685565b3480156102f357600080fd5b5061025d600b5481565b61020861030b3660046119a2565b610832565b34801561031c57600080fd5b5061025d6109d4565b34801561033157600080fd5b506102c4610340366004611a37565b6109f5565b34801561035157600080fd5b506040516009815260200161023e565b34801561036d57600080fd5b50600d5461022a906001600160a01b031681565b34801561038d57600080fd5b50610208610a5e565b3480156103a257600080fd5b506103b66103b13660046119a2565b610aad565b60405161023e9493929190611a78565b3480156103d257600080fd5b5061025d6103e1366004611aa7565b6001600160a01b031660009081526001602052604090205490565b34801561040857600080fd5b50610208610b6e565b34801561041d57600080fd5b50610208610be2565b34801561043257600080fd5b5061025d60085481565b34801561044857600080fd5b50610208610c96565b34801561045d57600080fd5b506000546001600160a01b031661022a565b34801561047b57600080fd5b5061025d60095481565b34801561049157600080fd5b506102086104a0366004611ac4565b610d33565b3480156104b157600080fd5b506102086104c0366004611861565b610d68565b3480156104d157600080fd5b506040805180820190915260048152634c554d4160e01b6020820152610297565b3480156104fe57600080fd5b506103b661050d3660046119a2565b610dfa565b34801561051e57600080fd5b506102c461052d366004611976565b610e20565b34801561053e57600080fd5b5061025d600a5481565b34801561055457600080fd5b5061025d60105481565b34801561056a57600080fd5b5061025d610579366004611ae6565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156105b057600080fd5b50610208610e2d565b3480156105c557600080fd5b5061025d600f5481565b6000546001600160a01b031633146106025760405162461bcd60e51b81526004016105f990611b1f565b60405180910390fd5b60005b815181101561066a5760006003600084848151811061062657610626611b54565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061066281611b80565b915050610605565b5050565b600061067b338484610e40565b5060015b92915050565b600e543410156106ce5760405162461bcd60e51b81526020600482015260146024820152734e6f7420656e6f756768204554482073656e742160601b60448201526064016105f9565b600f54333110156107165760405162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f75676820746f6b656e732160701b60448201526064016105f9565b34601060008282546107289190611b99565b9091555050601154600f5461074a9133916001600160a01b0390911690610f64565b60405180608001604052808281526020016001151581526020014281526020013460138460405161077b9190611bac565b9081526020016040518091039020600301546107979190611b99565b8152506013826040516107aa9190611bac565b908152604051908190036020019020815181906107c79082611c4b565b50602082015160018201805460ff19169115159190911790556040808301516002830155606090920151600390910155517f8382dfeb92e23123a91d983e4f179a9fbe329ff91e14e11cd3c3b5252f115122906108279083904290611d0b565b60405180910390a150565b600e5434101561087b5760405162461bcd60e51b81526020600482015260146024820152734e6f7420656e6f756768204554482073656e742160601b60448201526064016105f9565b600f54333110156108c35760405162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f75676820746f6b656e732160701b60448201526064016105f9565b34601060008282546108d59190611b99565b9091555050601154600f546108f79133916001600160a01b0390911690610f64565b6040518060800160405280828152602001600115158152602001428152602001346012846040516109289190611bac565b9081526020016040518091039020600301546109449190611b99565b8152506012826040516109579190611bac565b908152604051908190036020019020815181906109749082611c4b565b50602082015160018201805460ff19169115159190911790556040808301516002830155606090920151600390910155517f892c7b6af36dc1cd7c78d56ead1e536ddf81fe5688e6b3f631cdfadf7ad4c508906108279083904290611d0b565b60006109e26009600a611e11565b6109f090633b9aca00611e20565b905090565b6000610a02848484610f64565b610a548433610a4f85604051806060016040528060288152602001611efb602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611468565b610e40565b5060019392505050565b6005546001600160a01b0316336001600160a01b031614610a7e57600080fd5b306000908152600160205260409020548015610a9d57610a9d816114a2565b47801561066a5761066a8161161c565b8051602081830181018051601282529282019190930120915280548190610ad390611bc8565b80601f0160208091040260200160405190810160405280929190818152602001828054610aff90611bc8565b8015610b4c5780601f10610b2157610100808354040283529160200191610b4c565b820191906000526020600020905b815481529060010190602001808311610b2f57829003601f168201915b5050505060018301546002840154600390940154929360ff9091169290915084565b6000546001600160a01b03163314610b985760405162461bcd60e51b81526004016105f990611b1f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c0c5760405162461bcd60e51b81526004016105f990611b1f565b610c186009600a611e11565b610c2690633b9aca00611e20565b600855610c356009600a611e11565b610c4390633b9aca00611e20565b60099081557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf90610c7590600a611e11565b610c8390633b9aca00611e20565b60405190815260200160405180910390a1565b6000546001600160a01b03163314610cc05760405162461bcd60e51b81526004016105f990611b1f565b600d54600160a01b900460ff1615610d1a5760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a20526571756972656d656e7420616c7265616479206d6574000060448201526064016105f9565b600d805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b03163314610d5d5760405162461bcd60e51b81526004016105f990611b1f565b600691909155600755565b6000546001600160a01b03163314610d925760405162461bcd60e51b81526004016105f990611b1f565b60005b815181101561066a57600160036000848481518110610db657610db6611b54565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610df281611b80565b915050610d95565b8051602081830181018051601382529282019190930120915280548190610ad390611bc8565b600061067b338484610f64565b478015610e3d57610e3d8161161c565b50565b6001600160a01b038316610ea25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105f9565b6001600160a01b038216610f035760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105f9565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fc85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105f9565b6001600160a01b03821661102a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105f9565b6000811161108b5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206d75737420626520626967676572207460448201526768616e207a65726f60c01b60648201526084016105f9565b600080546001600160a01b038581169116148015906110b857506000546001600160a01b03848116911614155b1561132557600d546001600160a01b0385811691161480156110e85750600c546001600160a01b03848116911614155b801561110d57506001600160a01b03831660009081526003602052604090205460ff16155b1561124e57600d54600160a01b900460ff1661115e5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016105f9565b6008548211156111b05760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105f9565b600954826111d3856001600160a01b031660009081526001602052604090205490565b6111dd9190611b99565b111561122b5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105f9565b61124b60646112456006548561165690919063ffffffff16565b906116df565b90505b600d546001600160a01b03848116911614801561127457506001600160a01b0384163014155b156112965761129360646112456007548561165690919063ffffffff16565b90505b30600090815260016020526040902054600d54600160a81b900460ff161580156112cd5750600d546001600160a01b038581169116145b80156112e25750600d54600160b01b900460ff165b80156112ef5750600a5481115b156113235761131161130c8461130784600b54611721565b611721565b6114a2565b478015611321576113214761161c565b505b505b801561139f57306000908152600160205260409020546113459082611736565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113969085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546113c29083611795565b6001600160a01b0385166000908152600160205260409020556114076113e88383611795565b6001600160a01b03851660009081526001602052604090205490611736565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6114518585611795565b60405190815260200160405180910390a350505050565b6000818484111561148c5760405162461bcd60e51b81526004016105f99190611963565b5060006114998486611e37565b95945050505050565b600d805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106114ea576114ea611b54565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190611e4a565b8160018151811061157a5761157a611b54565b6001600160a01b039283166020918202929092010152600c546115a09130911684610e40565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906115d9908590600090869030904290600401611e67565b600060405180830381600087803b1580156115f357600080fd5b505af1158015611607573d6000803e3d6000fd5b5050600d805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561066a573d6000803e3d6000fd5b6000826000036116685750600061067f565b60006116748385611e20565b9050826116818583611ed8565b146116d85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105f9565b9392505050565b60006116d883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117d7565b600081831161173057826116d8565b50919050565b6000806117438385611b99565b9050838110156116d85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105f9565b60006116d883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611468565b600081836117f85760405162461bcd60e51b81526004016105f99190611963565b5060006114998486611ed8565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561184457611844611805565b604052919050565b6001600160a01b0381168114610e3d57600080fd5b6000602080838503121561187457600080fd5b823567ffffffffffffffff8082111561188c57600080fd5b818501915085601f8301126118a057600080fd5b8135818111156118b2576118b2611805565b8060051b91506118c384830161181b565b81815291830184019184810190888411156118dd57600080fd5b938501935b8385101561190757843592506118f78361184c565b82825293850193908501906118e2565b98975050505050505050565b60005b8381101561192e578181015183820152602001611916565b50506000910152565b6000815180845261194f816020860160208601611913565b601f01601f19169290920160200192915050565b6020815260006116d86020830184611937565b6000806040838503121561198957600080fd5b82356119948161184c565b946020939093013593505050565b600060208083850312156119b557600080fd5b823567ffffffffffffffff808211156119cd57600080fd5b818501915085601f8301126119e157600080fd5b8135818111156119f3576119f3611805565b611a05601f8201601f1916850161181b565b91508082528684828501011115611a1b57600080fd5b8084840185840137600090820190930192909252509392505050565b600080600060608486031215611a4c57600080fd5b8335611a578161184c565b92506020840135611a678161184c565b929592945050506040919091013590565b608081526000611a8b6080830187611937565b9415156020830152506040810192909252606090910152919050565b600060208284031215611ab957600080fd5b81356116d88161184c565b60008060408385031215611ad757600080fd5b50508035926020909101359150565b60008060408385031215611af957600080fd5b8235611b048161184c565b91506020830135611b148161184c565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611b9257611b92611b6a565b5060010190565b8082018082111561067f5761067f611b6a565b60008251611bbe818460208701611913565b9190910192915050565b600181811c90821680611bdc57607f821691505b60208210810361173057634e487b7160e01b600052602260045260246000fd5b601f821115611c4657600081815260208120601f850160051c81016020861015611c235750805b601f850160051c820191505b81811015611c4257828155600101611c2f565b5050505b505050565b815167ffffffffffffffff811115611c6557611c65611805565b611c7981611c738454611bc8565b84611bfc565b602080601f831160018114611cae5760008415611c965750858301515b600019600386901b1c1916600185901b178555611c42565b600085815260208120601f198616915b82811015611cdd57888601518255948401946001909101908401611cbe565b5085821015611cfb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000611d1e6040830185611937565b90508260208301529392505050565b600181815b80851115611d68578160001904821115611d4e57611d4e611b6a565b80851615611d5b57918102915b93841c9390800290611d32565b509250929050565b600082611d7f5750600161067f565b81611d8c5750600061067f565b8160018114611da25760028114611dac57611dc8565b600191505061067f565b60ff841115611dbd57611dbd611b6a565b50506001821b61067f565b5060208310610133831016604e8410600b8410161715611deb575081810a61067f565b611df58383611d2d565b8060001904821115611e0957611e09611b6a565b029392505050565b60006116d860ff841683611d70565b808202811582820484141761067f5761067f611b6a565b8181038181111561067f5761067f611b6a565b600060208284031215611e5c57600080fd5b81516116d88161184c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611eb75784516001600160a01b031683529383019391830191600101611e92565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ef557634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ca3a39d55dff08ca64a051f8dae9cd25af29c2f49333dac4b26d4e695475a3ca64736f6c63430008110033

Deployed Bytecode Sourcemap

3473:9461:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6270:195;;;;;;;;;;-1:-1:-1;6270:195:0;;;;;:::i;:::-;;:::i;:::-;;4758:64;;;;;;;;;;-1:-1:-1;4758:64:0;;;;-1:-1:-1;;;;;4758:64:0;;;;;;-1:-1:-1;;;;;1752:32:1;;;1734:51;;1722:2;1707:18;4758:64:0;;;;;;;;4614:35;;;;;;;;;;;;;;;;;;;1942:25:1;;;1930:2;1915:18;4614:35:0;1796:177:1;6834:83:0;;;;;;;;;;-1:-1:-1;6904:5:0;;;;;;;;;;;;-1:-1:-1;;;6904:5:0;;;;6834:83;;;;;;;:::i;8010:161::-;;;;;;;;;;-1:-1:-1;8010:161:0;;;;;:::i;:::-;;:::i;:::-;;;3219:14:1;;3212:22;3194:41;;3182:2;3167:18;8010:161:0;3054:187:1;11729:594:0;;;;;;:::i;:::-;;:::i;4358:51::-;;;;;;;;;;;;;;;;11145:576;;;;;;:::i;:::-;;:::i;7111:95::-;;;;;;;;;;;;;:::i;8537:313::-;;;;;;;;;;-1:-1:-1;8537:313:0;;;;;:::i;:::-;;:::i;7020:83::-;;;;;;;;;;-1:-1:-1;7020:83:0;;3984:1;4618:36:1;;4606:2;4591:18;7020:83:0;4476:184:1;4465:28:0;;;;;;;;;;-1:-1:-1;4465:28:0;;;;-1:-1:-1;;;;;4465:28:0;;;8179:348;;;;;;;;;;;;;:::i;4829:50::-;;;;;;;;;;-1:-1:-1;4829:50:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;7214:119::-;;;;;;;;;;-1:-1:-1;7214:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7307:18:0;7280:7;7307:18;;;:9;:18;;;;;;;7214:119;2554:148;;;;;;;;;;;;;:::i;12341:159::-;;;;;;;;;;;;;:::i;4169:56::-;;;;;;;;;;;;;;;;6477:177;;;;;;;;;;;;;:::i;2340:79::-;;;;;;;;;;-1:-1:-1;2378:7:0;2405:6;-1:-1:-1;;;;;2405:6:0;2340:79;;4232:56;;;;;;;;;;;;;;;;6669:155;;;;;;;;;;-1:-1:-1;6669:155:0;;;;;:::i;:::-;;:::i;6067:195::-;;;;;;;;;;-1:-1:-1;6067:195:0;;;;;:::i;:::-;;:::i;6925:87::-;;;;;;;;;;-1:-1:-1;6997:7:0;;;;;;;;;;;;-1:-1:-1;;;6997:7:0;;;;6925:87;;4886:56;;;;;;;;;;-1:-1:-1;4886:56:0;;;;;:::i;:::-;;:::i;7341:167::-;;;;;;;;;;-1:-1:-1;7341:167:0;;;;;:::i;:::-;;:::i;4295:56::-;;;;;;;;;;;;;;;;4714:37;;;;;;;;;;;;;;;;7859:143;;;;;;;;;;-1:-1:-1;7859:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7967:18:0;;;7940:7;7967:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7859:143;12727:165;;;;;;;;;;;;;:::i;4656:51::-;;;;;;;;;;;;;;;;6270:195;2467:6;;-1:-1:-1;;;;;2467:6:0;175:10;2467:22;2459:67;;;;-1:-1:-1;;;2459:67:0;;;;;;;:::i;:::-;;;;;;;;;6354:6:::1;6349:109;6370:8;:15;6366:1;:19;6349:109;;;6441:5;6407:18;:31;6426:8;6435:1;6426:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;6407:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;6407:31:0;:39;;-1:-1:-1;;6407:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;6387:3;::::1;::::0;::::1;:::i;:::-;;;;6349:109;;;;6270:195:::0;:::o;8010:161::-;8085:4;8102:39;175:10;8125:7;8134:6;8102:8;:39::i;:::-;-1:-1:-1;8159:4:0;8010:161;;;;;:::o;11729:594::-;11827:11;;11814:9;:24;;11806:57;;;;-1:-1:-1;;;11806:57:0;;6980:2:1;11806:57:0;;;6962:21:1;7019:2;6999:18;;;6992:30;-1:-1:-1;;;7038:18:1;;;7031:50;7098:18;;11806:57:0;6778:344:1;11806:57:0;11904:14;;11882:10;:18;:36;;11874:67;;;;-1:-1:-1;;;11874:67:0;;7329:2:1;11874:67:0;;;7311:21:1;7368:2;7348:18;;;7341:30;-1:-1:-1;;;7387:18:1;;;7380:48;7445:18;;11874:67:0;7127:342:1;11874:67:0;11974:9;11952:18;;:31;;;;;;;:::i;:::-;;;;-1:-1:-1;;12016:4:0;;12022:14;;11994:43;;12004:10;;-1:-1:-1;;;;;12016:4:0;;;;11994:9;:43::i;:::-;12089:166;;;;;;;;12117:10;12089:166;;;;12142:4;12089:166;;;;;;12161:15;12089:166;;;;12235:9;12191:16;12208:10;12191:28;;;;;;:::i;:::-;;;;;;;;;;;;;:41;;;:53;;;;:::i;:::-;12089:166;;;12058:16;12075:10;12058:28;;;;;;:::i;:::-;;;;;;;;;;;;;;:197;;:28;;:197;;:28;:197;:::i;:::-;-1:-1:-1;12058:197:0;;;;;;;;;-1:-1:-1;;12058:197:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12271:44;;;;;12287:10;;12299:15;;12271:44;:::i;:::-;;;;;;;;11729:594;:::o;11145:576::-;11241:11;;11228:9;:24;;11220:57;;;;-1:-1:-1;;;11220:57:0;;6980:2:1;11220:57:0;;;6962:21:1;7019:2;6999:18;;;6992:30;-1:-1:-1;;;7038:18:1;;;7031:50;7098:18;;11220:57:0;6778:344:1;11220:57:0;11318:14;;11296:10;:18;:36;;11288:67;;;;-1:-1:-1;;;11288:67:0;;7329:2:1;11288:67:0;;;7311:21:1;7368:2;7348:18;;;7341:30;-1:-1:-1;;;7387:18:1;;;7380:48;7445:18;;11288:67:0;7127:342:1;11288:67:0;11388:9;11366:18;;:31;;;;;;;:::i;:::-;;;;-1:-1:-1;;11430:4:0;;11436:14;;11408:43;;11418:10;;-1:-1:-1;;;;;11430:4:0;;;;11408:9;:43::i;:::-;11493:162;;;;;;;;11518:11;11493:162;;;;11544:4;11493:162;;;;;;11563:15;11493:162;;;;11635:9;11593:13;11607:11;11593:26;;;;;;:::i;:::-;;;;;;;;;;;;;:39;;;:51;;;;:::i;:::-;11493:162;;;11464:13;11478:11;11464:26;;;;;;:::i;:::-;;;;;;;;;;;;;;:191;;:26;;:191;;:26;:191;:::i;:::-;-1:-1:-1;11464:191:0;;;;;;;;;-1:-1:-1;;11464:191:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11671:42;;;;;11684:11;;11697:15;;11671:42;:::i;7111:95::-;7164:7;4040:13;3984:1;4040:2;:13;:::i;:::-;4027:26;;:10;:26;:::i;:::-;7184:14;;7111:95;:::o;8537:313::-;8635:4;8652:36;8662:6;8670:9;8681:6;8652:9;:36::i;:::-;8699:121;8708:6;175:10;8730:89;8768:6;8730:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8730:19:0;;;;;;:11;:19;;;;;;;;175:10;8730:33;;;;;;;;;;:37;:89::i;:::-;8699:8;:121::i;:::-;-1:-1:-1;8838:4:0;8537:313;;;;;:::o;8179:348::-;8243:10;;-1:-1:-1;;;;;8243:10:0;175;-1:-1:-1;;;;;8229:24:0;;8221:33;;;;;;8304:4;8265:20;7307:18;;;:9;:18;;;;;;8324:14;;8321:73;;8352:30;8369:12;8352:16;:30::i;:::-;8423:21;8458:12;;8455:65;;8484:24;8497:10;8484:12;:24::i;4829:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4829:50:0;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4829:50:0;:::o;2554:148::-;2467:6;;-1:-1:-1;;;;;2467:6:0;175:10;2467:22;2459:67;;;;-1:-1:-1;;;2459:67:0;;;;;;;:::i;:::-;2661:1:::1;2645:6:::0;;2624:40:::1;::::0;-1:-1:-1;;;;;2645:6:0;;::::1;::::0;2624:40:::1;::::0;2661:1;;2624:40:::1;2692:1;2675:19:::0;;-1:-1:-1;;;;;;2675:19:0::1;::::0;;2554:148::o;12341:159::-;2467:6;;-1:-1:-1;;;;;2467:6:0;175:10;2467:22;2459:67;;;;-1:-1:-1;;;2459:67:0;;;;;;;:::i;:::-;4040:13:::1;3984:1;4040:2;:13;:::i;:::-;4027:26;::::0;:10:::1;:26;:::i;:::-;12394:12;:22:::0;4040:13:::1;3984:1;4040:2;:13;:::i;:::-;4027:26;::::0;:10:::1;:26;:::i;:::-;12427:14;:22:::0;;;12465:27:::1;::::0;4040:13:::1;::::0;:2:::1;:13;:::i;:::-;4027:26;::::0;:10:::1;:26;:::i;:::-;12465:27;::::0;1942:25:1;;;1930:2;1915:18;12465:27:0::1;;;;;;;12341:159::o:0;6477:177::-;2467:6;;-1:-1:-1;;;;;2467:6:0;175:10;2467:22;2459:67;;;;-1:-1:-1;;;2459:67:0;;;;;;;:::i;:::-;6543:11:::1;::::0;-1:-1:-1;;;6543:11:0;::::1;;;6542:12;6534:54;;;::::0;-1:-1:-1;;;6534:54:0;;12541:2:1;6534:54:0::1;::::0;::::1;12523:21:1::0;12580:2;12560:18;;;12553:30;12619:32;12599:18;;;12592:60;12669:18;;6534:54:0::1;12339:354:1::0;6534:54:0::1;6599:11;:18:::0;;-1:-1:-1;;;;6628:18:0;-1:-1:-1;;;6628:18:0;;;6477:177::o;6669:155::-;2467:6;;-1:-1:-1;;;;;2467:6:0;175:10;2467:22;2459:67;;;;-1:-1:-1;;;2459:67:0;;;;;;;:::i;:::-;6759:12:::1;:23:::0;;;;6791:13:::1;:25:::0;6669:155::o;6067:195::-;2467:6;;-1:-1:-1;;;;;2467:6:0;175:10;2467:22;2459:67;;;;-1:-1:-1;;;2459:67:0;;;;;;;:::i;:::-;6152:6:::1;6147:108;6168:8;:15;6164:1;:19;6147:108;;;6239:4;6205:18;:31;6224:8;6233:1;6224:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;6205:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;6205:31:0;:38;;-1:-1:-1;;6205:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;6185:3;::::1;::::0;::::1;:::i;:::-;;;;6147:108;;4886:56:::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7341:167::-;7419:4;7436:42;175:10;7460:9;7471:6;7436:9;:42::i;12727:165::-;12788:21;12823:12;;12820:65;;12849:24;12862:10;12849:12;:24::i;:::-;12758:134;12727:165::o;7516:335::-;-1:-1:-1;;;;;7609:19:0;;7601:68;;;;-1:-1:-1;;;7601:68:0;;12900:2:1;7601:68:0;;;12882:21:1;12939:2;12919:18;;;12912:30;12978:34;12958:18;;;12951:62;-1:-1:-1;;;13029:18:1;;;13022:34;13073:19;;7601:68:0;12698:400:1;7601:68:0;-1:-1:-1;;;;;7688:21:0;;7680:68;;;;-1:-1:-1;;;7680:68:0;;13305:2:1;7680:68:0;;;13287:21:1;13344:2;13324:18;;;13317:30;13383:34;13363:18;;;13356:62;-1:-1:-1;;;13434:18:1;;;13427:32;13476:19;;7680:68:0;13103:398:1;7680:68:0;-1:-1:-1;;;;;7759:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7811:32;;1942:25:1;;;7811:32:0;;1915:18:1;7811:32:0;;;;;;;7516:335;;;:::o;8860:1786::-;-1:-1:-1;;;;;8948:18:0;;8940:68;;;;-1:-1:-1;;;8940:68:0;;13708:2:1;8940:68:0;;;13690:21:1;13747:2;13727:18;;;13720:30;13786:34;13766:18;;;13759:62;-1:-1:-1;;;13837:18:1;;;13830:35;13882:19;;8940:68:0;13506:401:1;8940:68:0;-1:-1:-1;;;;;9027:16:0;;9019:64;;;;-1:-1:-1;;;9019:64:0;;14114:2:1;9019:64:0;;;14096:21:1;14153:2;14133:18;;;14126:30;14192:34;14172:18;;;14165:62;-1:-1:-1;;;14243:18:1;;;14236:33;14286:19;;9019:64:0;13912:399:1;9019:64:0;9111:1;9102:6;:10;9094:63;;;;-1:-1:-1;;;9094:63:0;;14518:2:1;9094:63:0;;;14500:21:1;14557:2;14537:18;;;14530:30;14596:34;14576:18;;;14569:62;-1:-1:-1;;;14647:18:1;;;14640:38;14695:19;;9094:63:0;14316:404:1;9094:63:0;9168:17;2405:6;;-1:-1:-1;;;;;9202:15:0;;;2405:6;;9202:15;;;;:32;;-1:-1:-1;2378:7:0;2405:6;-1:-1:-1;;;;;9221:13:0;;;2405:6;;9221:13;;9202:32;9198:1090;;;9263:13;;-1:-1:-1;;;;;9255:21:0;;;9263:13;;9255:21;:55;;;;-1:-1:-1;9294:15:0;;-1:-1:-1;;;;;9280:30:0;;;9294:15;;9280:30;;9255:55;:83;;;;-1:-1:-1;;;;;;9316:22:0;;;;;;:18;:22;;;;;;;;9314:24;9255:83;9251:406;;;9368:11;;-1:-1:-1;;;9368:11:0;;;;9360:40;;;;-1:-1:-1;;;9360:40:0;;14927:2:1;9360:40:0;;;14909:21:1;14966:2;14946:18;;;14939:30;-1:-1:-1;;;14985:18:1;;;14978:46;15041:18;;9360:40:0;14725:340:1;9360:40:0;9437:12;;9427:6;:22;;9419:60;;;;-1:-1:-1;;;9419:60:0;;15272:2:1;9419:60:0;;;15254:21:1;15311:2;15291:18;;;15284:30;15350:27;15330:18;;;15323:55;15395:18;;9419:60:0;15070:349:1;9419:60:0;9532:14;;9522:6;9506:13;9516:2;-1:-1:-1;;;;;7307:18:0;7280:7;7307:18;;;:9;:18;;;;;;;7214:119;9506:13;:22;;;;:::i;:::-;:40;;9498:79;;;;-1:-1:-1;;;9498:79:0;;15626:2:1;9498:79:0;;;15608:21:1;15665:2;15645:18;;;15638:30;15704:28;15684:18;;;15677:56;15750:18;;9498:79:0;15424:350:1;9498:79:0;9608:33;9637:3;9608:24;9619:12;;9608:6;:10;;:24;;;;:::i;:::-;:28;;:33::i;:::-;9596:45;;9251:406;9682:13;;-1:-1:-1;;;;;9676:19:0;;;9682:13;;9676:19;:43;;;;-1:-1:-1;;;;;;9699:20:0;;9714:4;9699:20;;9676:43;9673:129;;;9752:34;9782:3;9752:25;9763:13;;9752:6;:10;;:25;;;;:::i;:34::-;9740:46;;9673:129;9867:4;9818:28;7307:18;;;:9;:18;;;;;;9893:6;;-1:-1:-1;;;9893:6:0;;;;9892:7;:32;;;;-1:-1:-1;9911:13:0;;-1:-1:-1;;;;;9903:21:0;;;9911:13;;9903:21;9892:32;:47;;;;-1:-1:-1;9928:11:0;;-1:-1:-1;;;9928:11:0;;;;9892:47;:89;;;;;9964:17;;9943:20;:38;9892:89;9888:389;;;10002:67;10019:49;10023:6;10030:37;10034:20;10055:11;;10030:3;:37::i;:::-;10019:3;:49::i;:::-;10002:16;:67::i;:::-;10117:21;10160:22;;10157:105;;10207:35;10220:21;10207:12;:35::i;:::-;9983:294;9888:389;9236:1052;9198:1090;10303:11;;10300:161;;10371:4;10353:24;;;;:9;:24;;;;;;:39;;10382:9;10353:28;:39::i;:::-;10346:4;10328:24;;;;:9;:24;;;;;;;:64;;;;10410:39;;-1:-1:-1;;;;;10410:39:0;;;;;;;10439:9;1942:25:1;;1930:2;1915:18;;1796:177;10410:39:0;;;;;;;;10300:161;-1:-1:-1;;;;;10489:15:0;;;;;;:9;:15;;;;;;:27;;10509:6;10489:19;:27::i;:::-;-1:-1:-1;;;;;10473:15:0;;;;;;:9;:15;;;;;:43;10541:40;10559:21;:6;10570:9;10559:10;:21::i;:::-;-1:-1:-1;;;;;10541:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10527:13:0;;;;;;;:9;:13;;;;;:54;;;;10597:41;;;10616:21;:6;10627:9;10616:10;:21::i;:::-;10597:41;;1942:25:1;;;1930:2;1915:18;10597:41:0;;;;;;;8929:1717;8860:1786;;;:::o;1232:190::-;1318:7;1354:12;1346:6;;;;1338:29;;;;-1:-1:-1;;;1338:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1378:9:0;1390:5;1394:1;1390;:5;:::i;:::-;1378:17;1232:190;-1:-1:-1;;;;;1232:190:0:o;10654:483::-;5461:6;:13;;-1:-1:-1;;;;5461:13:0;-1:-1:-1;;;5461:13:0;;;10756:16:::1;::::0;;10770:1:::1;10756:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10756:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10756:16:0::1;10732:40;;10801:4;10783;10788:1;10783:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10783:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10827:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10827:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10783:7;;10827:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10817:4;10822:1;10817:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10817:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10892:15:::1;::::0;10860:62:::1;::::0;10877:4:::1;::::0;10892:15:::1;10910:11:::0;10860:8:::1;:62::i;:::-;10933:15;::::0;:196:::1;::::0;-1:-1:-1;;;10933:196:0;;-1:-1:-1;;;;;10933:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11014:11;;10933:15:::1;::::0;11056:4;;11083::::1;::::0;11103:15:::1;::::0;10933:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5497:6:0;:14;;-1:-1:-1;;;;5497:14:0;;;-1:-1:-1;;;;10654:483:0:o;12614:92::-;12671:10;;:27;;-1:-1:-1;;;;;12671:10:0;;;;:27;;;;;12691:6;;12671:10;:27;:10;:27;12691:6;12671:10;:27;;;;;;;;;;;;;;;;;;;1430:246;1488:7;1512:1;1517;1512:6;1508:47;;-1:-1:-1;1542:1:0;1535:8;;1508:47;1565:9;1577:5;1581:1;1577;:5;:::i;:::-;1565:17;-1:-1:-1;1610:1:0;1601:5;1605:1;1565:17;1601:5;:::i;:::-;:10;1593:56;;;;-1:-1:-1;;;1593:56:0;;17577:2:1;1593:56:0;;;17559:21:1;17616:2;17596:18;;;17589:30;17655:34;17635:18;;;17628:62;-1:-1:-1;;;17706:18:1;;;17699:31;17747:19;;1593:56:0;17375:397:1;1593:56:0;1667:1;1430:246;-1:-1:-1;;;1430:246:0:o;1684:132::-;1742:7;1769:39;1773:1;1776;1769:39;;;;;;;;;;;;;;;;;:3;:39::i;12508:98::-;12565:7;12592:1;12590;:3;12589:9;;12597:1;12589:9;;;-1:-1:-1;12595:1:0;12508:98;-1:-1:-1;12508:98:0:o;901:179::-;959:7;;991:5;995:1;991;:5;:::i;:::-;979:17;;1020:1;1015;:6;;1007:46;;;;-1:-1:-1;;;1007:46:0;;17979:2:1;1007:46:0;;;17961:21:1;18018:2;17998:18;;;17991:30;18057:29;18037:18;;;18030:57;18104:18;;1007:46:0;17777:351:1;1088:136:0;1146:7;1173:43;1177:1;1180;1173:43;;;;;;;;;;;;;;;;;:3;:43::i;1824:189::-;1910:7;1945:12;1938:5;1930:28;;;;-1:-1:-1;;;1930:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1969:9:0;1981:5;1985:1;1981;:5;:::i;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:275;217:2;211:9;282:2;263:13;;-1:-1:-1;;259:27:1;247:40;;317:18;302:34;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:1:o;426:131::-;-1:-1:-1;;;;;501:31:1;;491:42;;481:70;;547:1;544;537:12;562:1021;646:6;677:2;720;708:9;699:7;695:23;691:32;688:52;;;736:1;733;726:12;688:52;776:9;763:23;805:18;846:2;838:6;835:14;832:34;;;862:1;859;852:12;832:34;900:6;889:9;885:22;875:32;;945:7;938:4;934:2;930:13;926:27;916:55;;967:1;964;957:12;916:55;1003:2;990:16;1025:2;1021;1018:10;1015:36;;;1031:18;;:::i;:::-;1077:2;1074:1;1070:10;1060:20;;1100:28;1124:2;1120;1116:11;1100:28;:::i;:::-;1162:15;;;1232:11;;;1228:20;;;1193:12;;;;1260:19;;;1257:39;;;1292:1;1289;1282:12;1257:39;1316:11;;;;1336:217;1352:6;1347:3;1344:15;1336:217;;;1432:3;1419:17;1406:30;;1449:31;1474:5;1449:31;:::i;:::-;1493:18;;;1369:12;;;;1531;;;;1336:217;;;1572:5;562:1021;-1:-1:-1;;;;;;;;562:1021:1:o;1978:250::-;2063:1;2073:113;2087:6;2084:1;2081:13;2073:113;;;2163:11;;;2157:18;2144:11;;;2137:39;2109:2;2102:10;2073:113;;;-1:-1:-1;;2220:1:1;2202:16;;2195:27;1978:250::o;2233:271::-;2275:3;2313:5;2307:12;2340:6;2335:3;2328:19;2356:76;2425:6;2418:4;2413:3;2409:14;2402:4;2395:5;2391:16;2356:76;:::i;:::-;2486:2;2465:15;-1:-1:-1;;2461:29:1;2452:39;;;;2493:4;2448:50;;2233:271;-1:-1:-1;;2233:271:1:o;2509:220::-;2658:2;2647:9;2640:21;2621:4;2678:45;2719:2;2708:9;2704:18;2696:6;2678:45;:::i;2734:315::-;2802:6;2810;2863:2;2851:9;2842:7;2838:23;2834:32;2831:52;;;2879:1;2876;2869:12;2831:52;2918:9;2905:23;2937:31;2962:5;2937:31;:::i;:::-;2987:5;3039:2;3024:18;;;;3011:32;;-1:-1:-1;;;2734:315:1:o;3246:764::-;3315:6;3346:2;3389;3377:9;3368:7;3364:23;3360:32;3357:52;;;3405:1;3402;3395:12;3357:52;3445:9;3432:23;3474:18;3515:2;3507:6;3504:14;3501:34;;;3531:1;3528;3521:12;3501:34;3569:6;3558:9;3554:22;3544:32;;3614:7;3607:4;3603:2;3599:13;3595:27;3585:55;;3636:1;3633;3626:12;3585:55;3672:2;3659:16;3694:2;3690;3687:10;3684:36;;;3700:18;;:::i;:::-;3742:53;3785:2;3766:13;;-1:-1:-1;;3762:27:1;3758:36;;3742:53;:::i;:::-;3729:66;;3818:2;3811:5;3804:17;3858:7;3853:2;3848;3844;3840:11;3836:20;3833:33;3830:53;;;3879:1;3876;3869:12;3830:53;3934:2;3929;3925;3921:11;3916:2;3909:5;3905:14;3892:45;3978:1;3957:14;;;3953:23;;;3946:34;;;;-1:-1:-1;3961:5:1;3246:764;-1:-1:-1;;;3246:764:1:o;4015:456::-;4092:6;4100;4108;4161:2;4149:9;4140:7;4136:23;4132:32;4129:52;;;4177:1;4174;4167:12;4129:52;4216:9;4203:23;4235:31;4260:5;4235:31;:::i;:::-;4285:5;-1:-1:-1;4342:2:1;4327:18;;4314:32;4355:33;4314:32;4355:33;:::i;:::-;4015:456;;4407:7;;-1:-1:-1;;;4461:2:1;4446:18;;;;4433:32;;4015:456::o;4665:445::-;4892:3;4881:9;4874:22;4855:4;4913:46;4954:3;4943:9;4939:19;4931:6;4913:46;:::i;:::-;5002:14;;4995:22;4990:2;4975:18;;4968:50;-1:-1:-1;5049:2:1;5034:18;;5027:34;;;;5092:2;5077:18;;;5070:34;4905:54;4665:445;-1:-1:-1;4665:445:1:o;5115:247::-;5174:6;5227:2;5215:9;5206:7;5202:23;5198:32;5195:52;;;5243:1;5240;5233:12;5195:52;5282:9;5269:23;5301:31;5326:5;5301:31;:::i;5367:248::-;5435:6;5443;5496:2;5484:9;5475:7;5471:23;5467:32;5464:52;;;5512:1;5509;5502:12;5464:52;-1:-1:-1;;5535:23:1;;;5605:2;5590:18;;;5577:32;;-1:-1:-1;5367:248:1:o;5620:388::-;5688:6;5696;5749:2;5737:9;5728:7;5724:23;5720:32;5717:52;;;5765:1;5762;5755:12;5717:52;5804:9;5791:23;5823:31;5848:5;5823:31;:::i;:::-;5873:5;-1:-1:-1;5930:2:1;5915:18;;5902:32;5943:33;5902:32;5943:33;:::i;:::-;5995:7;5985:17;;;5620:388;;;;;:::o;6013:356::-;6215:2;6197:21;;;6234:18;;;6227:30;6293:34;6288:2;6273:18;;6266:62;6360:2;6345:18;;6013:356::o;6374:127::-;6435:10;6430:3;6426:20;6423:1;6416:31;6466:4;6463:1;6456:15;6490:4;6487:1;6480:15;6506:127;6567:10;6562:3;6558:20;6555:1;6548:31;6598:4;6595:1;6588:15;6622:4;6619:1;6612:15;6638:135;6677:3;6698:17;;;6695:43;;6718:18;;:::i;:::-;-1:-1:-1;6765:1:1;6754:13;;6638:135::o;7474:125::-;7539:9;;;7560:10;;;7557:36;;;7573:18;;:::i;7604:289::-;7735:3;7773:6;7767:13;7789:66;7848:6;7843:3;7836:4;7828:6;7824:17;7789:66;:::i;:::-;7871:16;;;;;7604:289;-1:-1:-1;;7604:289:1:o;7898:380::-;7977:1;7973:12;;;;8020;;;8041:61;;8095:4;8087:6;8083:17;8073:27;;8041:61;8148:2;8140:6;8137:14;8117:18;8114:38;8111:161;;8194:10;8189:3;8185:20;8182:1;8175:31;8229:4;8226:1;8219:15;8257:4;8254:1;8247:15;8409:545;8511:2;8506:3;8503:11;8500:448;;;8547:1;8572:5;8568:2;8561:17;8617:4;8613:2;8603:19;8687:2;8675:10;8671:19;8668:1;8664:27;8658:4;8654:38;8723:4;8711:10;8708:20;8705:47;;;-1:-1:-1;8746:4:1;8705:47;8801:2;8796:3;8792:12;8789:1;8785:20;8779:4;8775:31;8765:41;;8856:82;8874:2;8867:5;8864:13;8856:82;;;8919:17;;;8900:1;8889:13;8856:82;;;8860:3;;;8500:448;8409:545;;;:::o;9130:1352::-;9256:3;9250:10;9283:18;9275:6;9272:30;9269:56;;;9305:18;;:::i;:::-;9334:97;9424:6;9384:38;9416:4;9410:11;9384:38;:::i;:::-;9378:4;9334:97;:::i;:::-;9486:4;;9550:2;9539:14;;9567:1;9562:663;;;;10269:1;10286:6;10283:89;;;-1:-1:-1;10338:19:1;;;10332:26;10283:89;-1:-1:-1;;9087:1:1;9083:11;;;9079:24;9075:29;9065:40;9111:1;9107:11;;;9062:57;10385:81;;9532:944;;9562:663;8356:1;8349:14;;;8393:4;8380:18;;-1:-1:-1;;9598:20:1;;;9716:236;9730:7;9727:1;9724:14;9716:236;;;9819:19;;;9813:26;9798:42;;9911:27;;;;9879:1;9867:14;;;;9746:19;;9716:236;;;9720:3;9980:6;9971:7;9968:19;9965:201;;;10041:19;;;10035:26;-1:-1:-1;;10124:1:1;10120:14;;;10136:3;10116:24;10112:37;10108:42;10093:58;10078:74;;9965:201;-1:-1:-1;;;;;10212:1:1;10196:14;;;10192:22;10179:36;;-1:-1:-1;9130:1352:1:o;10487:291::-;10664:2;10653:9;10646:21;10627:4;10684:45;10725:2;10714:9;10710:18;10702:6;10684:45;:::i;:::-;10676:53;;10765:6;10760:2;10749:9;10745:18;10738:34;10487:291;;;;;:::o;10783:422::-;10872:1;10915:5;10872:1;10929:270;10950:7;10940:8;10937:21;10929:270;;;11009:4;11005:1;11001:6;10997:17;10991:4;10988:27;10985:53;;;11018:18;;:::i;:::-;11068:7;11058:8;11054:22;11051:55;;;11088:16;;;;11051:55;11167:22;;;;11127:15;;;;10929:270;;;10933:3;10783:422;;;;;:::o;11210:806::-;11259:5;11289:8;11279:80;;-1:-1:-1;11330:1:1;11344:5;;11279:80;11378:4;11368:76;;-1:-1:-1;11415:1:1;11429:5;;11368:76;11460:4;11478:1;11473:59;;;;11546:1;11541:130;;;;11453:218;;11473:59;11503:1;11494:10;;11517:5;;;11541:130;11578:3;11568:8;11565:17;11562:43;;;11585:18;;:::i;:::-;-1:-1:-1;;11641:1:1;11627:16;;11656:5;;11453:218;;11755:2;11745:8;11742:16;11736:3;11730:4;11727:13;11723:36;11717:2;11707:8;11704:16;11699:2;11693:4;11690:12;11686:35;11683:77;11680:159;;;-1:-1:-1;11792:19:1;;;11824:5;;11680:159;11871:34;11896:8;11890:4;11871:34;:::i;:::-;11941:6;11937:1;11933:6;11929:19;11920:7;11917:32;11914:58;;;11952:18;;:::i;:::-;11990:20;;11210:806;-1:-1:-1;;;11210:806:1:o;12021:140::-;12079:5;12108:47;12149:4;12139:8;12135:19;12129:4;12108:47;:::i;12166:168::-;12239:9;;;12270;;12287:15;;;12281:22;;12267:37;12257:71;;12308:18;;:::i;15779:128::-;15846:9;;;15867:11;;;15864:37;;;15881:18;;:::i;15912:251::-;15982:6;16035:2;16023:9;16014:7;16010:23;16006:32;16003:52;;;16051:1;16048;16041:12;16003:52;16083:9;16077:16;16102:31;16127:5;16102:31;:::i;16168:980::-;16430:4;16478:3;16467:9;16463:19;16509:6;16498:9;16491:25;16535:2;16573:6;16568:2;16557:9;16553:18;16546:34;16616:3;16611:2;16600:9;16596:18;16589:31;16640:6;16675;16669:13;16706:6;16698;16691:22;16744:3;16733:9;16729:19;16722:26;;16783:2;16775:6;16771:15;16757:29;;16804:1;16814:195;16828:6;16825:1;16822:13;16814:195;;;16893:13;;-1:-1:-1;;;;;16889:39:1;16877:52;;16984:15;;;;16949:12;;;;16925:1;16843:9;16814:195;;;-1:-1:-1;;;;;;;17065:32:1;;;;17060:2;17045:18;;17038:60;-1:-1:-1;;;17129:3:1;17114:19;17107:35;17026:3;16168:980;-1:-1:-1;;;16168:980:1:o;17153:217::-;17193:1;17219;17209:132;;17263:10;17258:3;17254:20;17251:1;17244:31;17298:4;17295:1;17288:15;17326:4;17323:1;17316:15;17209:132;-1:-1:-1;17355:9:1;;17153:217::o

Swarm Source

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