ETH Price: $3,189.78 (+1.89%)

Token

Flashpad Token (FLASH)
 

Overview

Max Total Supply

10,000,000 FLASH

Holders

287

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
14,440.564046564 FLASH

Value
$0.00
0xd12d692017a62d6804ca0e1784b63d3d19d689e8
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:
FLASH

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-01-24
*/

/*
Flashpad is the first native combination of DEX & Launchpad, 
built on the Linea chain with the following features: Swap, 
Add Liquidity, Bridge, Staking, Farming, and Launchpad.
*/

//website: https://www.flashpad.io
//telegram: https://t.me/flashpad
//twitter: https://twitter.com/flashpad_io
//medium: https://medium.com/@flashpad.io

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
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);
}
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 transferOwnership(address newOwner) public virtual onlyOwner() {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
    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 FLASH is Context, IERC20, Ownable {
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;
    address payable private MarketingWallet;
    
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal =  10000000 * 10**_decimals; 
    string private constant _name = "Flashpad Token";
    string private constant _symbol = "FLASH";
    uint256 private _minSwapTokens = 10000 * 10**_decimals; 
    uint256 private _maxSwapTokens = 200000 * 10**_decimals;
    uint256 public maxTxAmount = 100000 * 10**_decimals; 
    uint256 public maxWalletSize = 200000 * 10**_decimals; 
    uint256 private buyTaxes = 25;
    uint256 private sellTaxes = 35;
   
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool public tradeEnable = false;
    bool private _SwapBackEnable = false;
    bool private inSwap = false;
    
    // event
    event FeesRecieverUpdated(address indexed _newWallet);
    event ExcludeFromFeeUpdated(address indexed account);
    event includeFromFeeUpdated(address indexed account);
    event SwapBackSettingUpdated(bool indexed state);
    event ERC20TokensRecovered(uint256 indexed _amount);
    event TradingOpenUpdated();
    event ETHBalanceRecovered();
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
    if (block.chainid == 56){
     uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E); // PCS BSC Mainnet Router
     }
    else if(block.chainid == 1 || block.chainid == 5){
          uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Uniswap ETH Mainnet Router
      }
    else if(block.chainid == 42161){
           uniswapV2Router = IUniswapV2Router02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506); // Sushi Arbitrum Mainnet Router
      }
    else  if (block.chainid == 97){
     uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); // PCS BSC Testnet Router
     }
    else {
         revert("Wrong Chain Id");
        }
    uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
         MarketingWallet = payable(0xdF8915C81efF8dE1cAEC17a97FFA1d856F2a430e);
        _isExcludedFromFee[_msgSender()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[MarketingWallet] = true;
        _isExcludedFromFee[deadWallet] = true;

       _balances[_msgSender()] = _tTotal;
       emit Transfer(address(0), _msgSender(), _tTotal);
    }
   
    function name() public pure returns (string memory) {
        return _name;
    }
   
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
  
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
   
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
   
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
   
    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }
   
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
   
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
   
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
   
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), currentAllowance - 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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 feesum=0;

        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            require(tradeEnable, "Trading not enabled");       
               feesum = amount * (buyTaxes) / (100);
        }
        
         if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            feesum = 0;
        } 
         
          if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
             require(amount <= maxTxAmount, "Exceeds the _maxTxAmount.");
             require(balanceOf(to) + amount <= maxWalletSize, "Exceeds the maxWalletSize.");
          } 
        
          if (from != uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
             require(amount <= maxTxAmount, "Exceeds the _maxTxAmount.");
          }
        
          if (to == uniswapV2Pair && from != address(this) && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                   feesum = amount * (sellTaxes) / (100);
                
                } 
       
             uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && _SwapBackEnable && contractTokenBalance > _minSwapTokens) {
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxSwapTokens)));
               uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        _balances[from] = _balances[from] - amount; 
        _balances[to] = _balances[to] + (amount - (feesum));
        emit Transfer(from, to, amount - (feesum));
         if(feesum > 0){
          _balances[address(this)] = _balances[address(this)] + (feesum);
          emit Transfer(from, address(this),feesum);
        }
    }
    
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        require(tokenAmount > 0, "amount must be greeter than 0");
        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 sendETHToFee(uint256 amount) private {
       require(amount > 0, "amount must be greeter than 0");
        MarketingWallet.transfer(amount);
    }
   
   function removeAllLimit() external onlyOwner {
    maxTxAmount = _tTotal;
    maxWalletSize = _tTotal;
    }
  
   function changeFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 40 && _sellFee <= 40, "revert wrong fee settings");
        buyTaxes = _buyFee;
        sellTaxes = _sellFee;
    }
   
   function updateSwapBackSetting(bool state) external onlyOwner {
    _SwapBackEnable = state;
    emit SwapBackSettingUpdated(state);
    }
    
    function Whitelist(address account) external onlyOwner {
      require(_isExcludedFromFee[account] != true,"Account is already excluded");
       _isExcludedFromFee[account] = true;
    emit ExcludeFromFeeUpdated(account);
   }
   
    function removeWhitelist(address account) external onlyOwner {
         require(_isExcludedFromFee[account] != false, "Account is already included");
        _isExcludedFromFee[account] = false;
     emit includeFromFeeUpdated(account);
    }
   
    function enabledTrading() external onlyOwner() {
        require(!tradeEnable,"trading is already open");
        _SwapBackEnable = true;
         tradeEnable = true;
       emit TradingOpenUpdated();
    }
    
    receive() external payable {}
   
    function rescueERC20FromContract(address _tokenAddy, uint256 _amount) external {
        require(_tokenAddy != address(this), "Owner can't claim contract's balance of its own tokens");
        require(_amount > 0, "Amount should be greater than zero");
        require(_amount <= IERC20(_tokenAddy).balanceOf(address(this)), "Insufficient Amount");
        IERC20(_tokenAddy).transfer(MarketingWallet, _amount);
      emit ERC20TokensRecovered(_amount); 
    }
   
    function rescueETHfromContract() external {
        uint256 contractETHBalance = address(this).balance;
        require(contractETHBalance > 0, "Amount should be greater than zero");
        require(contractETHBalance <= address(this).balance, "Insufficient Amount");
        payable(address(MarketingWallet)).transfer(contractETHBalance);
      emit ETHBalanceRecovered();
    }
}

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":"uint256","name":"_amount","type":"uint256"}],"name":"ERC20TokensRecovered","type":"event"},{"anonymous":false,"inputs":[],"name":"ETHBalanceRecovered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newWallet","type":"address"}],"name":"FeesRecieverUpdated","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":"bool","name":"state","type":"bool"}],"name":"SwapBackSettingUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingOpenUpdated","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":true,"internalType":"address","name":"account","type":"address"}],"name":"includeFromFeeUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"Whitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"changeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enabledTrading","outputs":[],"stateMutability":"nonpayable","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":"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":"removeAllLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueERC20FromContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETHfromContract","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":[],"name":"tradeEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateSwapBackSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620005ef565b620000209061271062000607565b600555620000316009600a620005ef565b620000409062030d4062000607565b600655620000516009600a620005ef565b6200006090620186a062000607565b600755620000716009600a620005ef565b620000809062030d4062000607565b60085560196009556023600a55600c805462ffffff60a01b19169055348015620000a957600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350466038036200012057600b80546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e1790556200020a565b4660011480620001305750466005145b156200016257600b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556200020a565b4661a4b1036200019857600b80546001600160a01b031916731b02da8cb0d097eb8d57a175b88c7d8b479975061790556200020a565b46606103620001cd57600b80546001600160a01b03191673d99d1c33f9fc3444f8101754abc46c52416550d11790556200020a565b60405162461bcd60e51b815260206004820152600e60248201526d15dc9bdb99c810da185a5b88125960921b604482015260640160405180910390fd5b600b60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000284919062000621565b6001600160a01b031663c9c6539630600b60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030d919062000621565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200035b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000381919062000621565b600c80546001600160a01b03929092166001600160a01b03199283161790556004805490911673df8915c81eff8de1caec17a97ffa1d856f2a430e179055600160036000620003cd3390565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556004549091168352908220805484168217905561dead9091527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054909216179055620004626009600a620005ef565b62000471906298968062000607565b33600081815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620004b46009600a620005ef565b620004c3906298968062000607565b60405190815260200160405180910390a36200064c565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000531578160001904821115620005155762000515620004da565b808516156200052357918102915b93841c9390800290620004f5565b509250929050565b6000826200054a57506001620005e9565b816200055957506000620005e9565b81600181146200057257600281146200057d576200059d565b6001915050620005e9565b60ff841115620005915762000591620004da565b50506001821b620005e9565b5060208310610133831016604e8410600b8410161715620005c2575081810a620005e9565b620005ce8383620004f0565b8060001904821115620005e557620005e5620004da565b0290505b92915050565b60006200060060ff84168362000539565b9392505050565b8082028115828204841417620005e957620005e9620004da565b6000602082840312156200063457600080fd5b81516001600160a01b03811681146200060057600080fd5b611bf9806200065c6000396000f3fe60806040526004361061014f5760003560e01c80638f3fa860116100b6578063d5e1cbff1161006f578063d5e1cbff146103d0578063dd62ed3e146103e5578063e3ca2d651461042b578063eb73900b1461044b578063f2fde38b1461046b578063f87dc2c61461048b57600080fd5b80638f3fa8601461031757806395d89b411461032d578063a333b4ab1461035b578063a62ccc2c1461037b578063a9059cbb14610390578063bb9e95af146103b057600080fd5b806370a082311161010857806370a082311461024a578063715018a61461028057806378c8cda71461029557806385141a77146102b55780638c0b5e22146102e35780638da5cb5b146102f957600080fd5b806306fdde031461015b578063095ea7b3146101a457806318160ddd146101d45780631b7e8145146101f757806323b872dd1461020e578063313ce5671461022e57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600e81526d233630b9b43830b2102a37b5b2b760911b60208201525b60405161019b9190611797565b60405180910390f35b3480156101b057600080fd5b506101c46101bf3660046117fa565b6104ac565b604051901515815260200161019b565b3480156101e057600080fd5b506101e96104c3565b60405190815260200161019b565b34801561020357600080fd5b5061020c6104e3565b005b34801561021a57600080fd5b506101c4610229366004611826565b6105b7565b34801561023a57600080fd5b506040516009815260200161019b565b34801561025657600080fd5b506101e9610265366004611867565b6001600160a01b031660009081526001602052604090205490565b34801561028c57600080fd5b5061020c610666565b3480156102a157600080fd5b5061020c6102b0366004611867565b6106da565b3480156102c157600080fd5b506102cb61dead81565b6040516001600160a01b03909116815260200161019b565b3480156102ef57600080fd5b506101e960075481565b34801561030557600080fd5b506000546001600160a01b03166102cb565b34801561032357600080fd5b506101e960085481565b34801561033957600080fd5b5060408051808201909152600581526408c9882a6960db1b602082015261018e565b34801561036757600080fd5b5061020c610376366004611892565b6107b9565b34801561038757600080fd5b5061020c61082c565b34801561039c57600080fd5b506101c46103ab3660046117fa565b6108f0565b3480156103bc57600080fd5b5061020c6103cb3660046117fa565b6108fd565b3480156103dc57600080fd5b5061020c610aea565b3480156103f157600080fd5b506101e96104003660046118af565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561043757600080fd5b5061020c6104463660046118e8565b610b4e565b34801561045757600080fd5b5061020c610466366004611867565b610be1565b34801561047757600080fd5b5061020c610486366004611867565b610cc4565b34801561049757600080fd5b50600c546101c490600160a01b900460ff1681565b60006104b9338484610d5f565b5060015b92915050565b60006104d16009600a611a04565b6104de9062989680611a13565b905090565b478061050a5760405162461bcd60e51b815260040161050190611a2a565b60405180910390fd5b478111156105505760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610501565b6004546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561058a573d6000803e3d6000fd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767590600090a150565b6001600160a01b03831660009081526002602090815260408083203384529091528120548281101561063c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610501565b610647858585610e83565b61065b85336106568685611a6c565b610d5f565b506001949350505050565b6000546001600160a01b031633146106905760405162461bcd60e51b815260040161050190611a7f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107045760405162461bcd60e51b815260040161050190611a7f565b6001600160a01b03811660009081526003602052604081205460ff16151590036107705760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610501565b6001600160a01b038116600081815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b6000546001600160a01b031633146107e35760405162461bcd60e51b815260040161050190611a7f565b600c805460ff60a81b1916600160a81b831515908102919091179091556040517f3a9ce3b0c56e8f872f7647ac57385353c6cc3474ddf4b76a77ffbb8ad1fb0ccb90600090a250565b6000546001600160a01b031633146108565760405162461bcd60e51b815260040161050190611a7f565b600c54600160a01b900460ff16156108b05760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610501565b600c805461ffff60a01b191661010160a01b1790556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93590600090a1565b60006104b9338484610e83565b306001600160a01b038316036109745760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610501565b600081116109945760405162461bcd60e51b815260040161050190611a2a565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa1580156109d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fc9190611ab4565b811115610a415760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610501565b6004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820183905283169063a9059cbb906044016020604051808303816000875af1158015610a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aba9190611acd565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2290600090a25050565b6000546001600160a01b03163314610b145760405162461bcd60e51b815260040161050190611a7f565b610b206009600a611a04565b610b2d9062989680611a13565b600755610b3c6009600a611a04565b610b499062989680611a13565b600855565b6000546001600160a01b03163314610b785760405162461bcd60e51b815260040161050190611a7f565b60288211158015610b8a575060288111155b610bd65760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e6773000000000000006044820152606401610501565b600991909155600a55565b6000546001600160a01b03163314610c0b5760405162461bcd60e51b815260040161050190611a7f565b6001600160a01b03811660009081526003602052604090205460ff161515600103610c785760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610501565b6001600160a01b038116600081815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b6000546001600160a01b03163314610cee5760405162461bcd60e51b815260040161050190611a7f565b6001600160a01b038116610d535760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610501565b610d5c816114da565b50565b6001600160a01b038316610dc15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610501565b6001600160a01b038216610e225760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610501565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ee75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610501565b6001600160a01b038216610f495760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610501565b60008111610fab5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610501565b6001600160a01b03831660009081526003602052604081205460ff16158015610fed57506001600160a01b03831660009081526003602052604090205460ff16155b1561105e57600c54600160a01b900460ff166110415760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610501565b6064600954836110519190611a13565b61105b9190611aea565b90505b6001600160a01b03841660009081526003602052604090205460ff168061109d57506001600160a01b03831660009081526003602052604090205460ff165b156110a6575060005b600c546001600160a01b0385811691161480156110d15750600b546001600160a01b03848116911614155b80156110f657506001600160a01b03831660009081526003602052604090205460ff16155b156111c4576007548211156111495760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610501565b6008548261116c856001600160a01b031660009081526001602052604090205490565b6111769190611b0c565b11156111c45760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610501565b600c546001600160a01b038581169116148015906111fb57506001600160a01b03841660009081526003602052604090205460ff16155b801561122057506001600160a01b03831660009081526003602052604090205460ff16155b15611273576007548211156112735760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610501565b600c546001600160a01b03848116911614801561129957506001600160a01b0384163014155b80156112be57506001600160a01b03841660009081526003602052604090205460ff16155b80156112e357506001600160a01b03831660009081526003602052604090205460ff16155b15611305576064600a54836112f89190611a13565b6113029190611aea565b90505b30600090815260016020526040902054600c54600160b01b900460ff1615801561133d5750600c546001600160a01b03868116911614155b80156113525750600c54600160a81b900460ff165b801561135f575060055481115b156113935761138161137c846113778460065461152a565b61152a565b611542565b4780156113915761139147611709565b505b6001600160a01b0385166000908152600160205260409020546113b7908490611a6c565b6001600160a01b0386166000908152600160205260409020556113da8284611a6c565b6001600160a01b0385166000908152600160205260409020546113fd9190611b0c565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6114478587611a6c565b60405190815260200160405180910390a381156114d35730600090815260016020526040902054611479908390611b0c565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114ca9086815260200190565b60405180910390a35b5050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000818311611539578261153b565b815b9392505050565b600c805460ff60b01b1916600160b01b179055806115a25760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610501565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106115d7576115d7611b1f565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611630573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116549190611b35565b8160018151811061166757611667611b1f565b6001600160a01b039283166020918202929092010152600b5461168d9130911684610d5f565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac947906116c6908590600090869030904290600401611b52565b600060405180830381600087803b1580156116e057600080fd5b505af11580156116f4573d6000803e3d6000fd5b5050600c805460ff60b01b1916905550505050565b600081116117595760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610501565b6004546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611793573d6000803e3d6000fd5b5050565b600060208083528351808285015260005b818110156117c4578581018301518582016040015282016117a8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d5c57600080fd5b6000806040838503121561180d57600080fd5b8235611818816117e5565b946020939093013593505050565b60008060006060848603121561183b57600080fd5b8335611846816117e5565b92506020840135611856816117e5565b929592945050506040919091013590565b60006020828403121561187957600080fd5b813561153b816117e5565b8015158114610d5c57600080fd5b6000602082840312156118a457600080fd5b813561153b81611884565b600080604083850312156118c257600080fd5b82356118cd816117e5565b915060208301356118dd816117e5565b809150509250929050565b600080604083850312156118fb57600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561195b5781600019048211156119415761194161190a565b8085161561194e57918102915b93841c9390800290611925565b509250929050565b600082611972575060016104bd565b8161197f575060006104bd565b8160018114611995576002811461199f576119bb565b60019150506104bd565b60ff8411156119b0576119b061190a565b50506001821b6104bd565b5060208310610133831016604e8410600b84101617156119de575081810a6104bd565b6119e88383611920565b80600019048211156119fc576119fc61190a565b029392505050565b600061153b60ff841683611963565b80820281158282048414176104bd576104bd61190a565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b818103818111156104bd576104bd61190a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611ac657600080fd5b5051919050565b600060208284031215611adf57600080fd5b815161153b81611884565b600082611b0757634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156104bd576104bd61190a565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611b4757600080fd5b815161153b816117e5565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ba25784516001600160a01b031683529383019391830191600101611b7d565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204271ccfe1176cfefa9916dc8bce50bd50710324cf787b54375fe4d1311974b2164736f6c63430008130033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c80638f3fa860116100b6578063d5e1cbff1161006f578063d5e1cbff146103d0578063dd62ed3e146103e5578063e3ca2d651461042b578063eb73900b1461044b578063f2fde38b1461046b578063f87dc2c61461048b57600080fd5b80638f3fa8601461031757806395d89b411461032d578063a333b4ab1461035b578063a62ccc2c1461037b578063a9059cbb14610390578063bb9e95af146103b057600080fd5b806370a082311161010857806370a082311461024a578063715018a61461028057806378c8cda71461029557806385141a77146102b55780638c0b5e22146102e35780638da5cb5b146102f957600080fd5b806306fdde031461015b578063095ea7b3146101a457806318160ddd146101d45780631b7e8145146101f757806323b872dd1461020e578063313ce5671461022e57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600e81526d233630b9b43830b2102a37b5b2b760911b60208201525b60405161019b9190611797565b60405180910390f35b3480156101b057600080fd5b506101c46101bf3660046117fa565b6104ac565b604051901515815260200161019b565b3480156101e057600080fd5b506101e96104c3565b60405190815260200161019b565b34801561020357600080fd5b5061020c6104e3565b005b34801561021a57600080fd5b506101c4610229366004611826565b6105b7565b34801561023a57600080fd5b506040516009815260200161019b565b34801561025657600080fd5b506101e9610265366004611867565b6001600160a01b031660009081526001602052604090205490565b34801561028c57600080fd5b5061020c610666565b3480156102a157600080fd5b5061020c6102b0366004611867565b6106da565b3480156102c157600080fd5b506102cb61dead81565b6040516001600160a01b03909116815260200161019b565b3480156102ef57600080fd5b506101e960075481565b34801561030557600080fd5b506000546001600160a01b03166102cb565b34801561032357600080fd5b506101e960085481565b34801561033957600080fd5b5060408051808201909152600581526408c9882a6960db1b602082015261018e565b34801561036757600080fd5b5061020c610376366004611892565b6107b9565b34801561038757600080fd5b5061020c61082c565b34801561039c57600080fd5b506101c46103ab3660046117fa565b6108f0565b3480156103bc57600080fd5b5061020c6103cb3660046117fa565b6108fd565b3480156103dc57600080fd5b5061020c610aea565b3480156103f157600080fd5b506101e96104003660046118af565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561043757600080fd5b5061020c6104463660046118e8565b610b4e565b34801561045757600080fd5b5061020c610466366004611867565b610be1565b34801561047757600080fd5b5061020c610486366004611867565b610cc4565b34801561049757600080fd5b50600c546101c490600160a01b900460ff1681565b60006104b9338484610d5f565b5060015b92915050565b60006104d16009600a611a04565b6104de9062989680611a13565b905090565b478061050a5760405162461bcd60e51b815260040161050190611a2a565b60405180910390fd5b478111156105505760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610501565b6004546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561058a573d6000803e3d6000fd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767590600090a150565b6001600160a01b03831660009081526002602090815260408083203384529091528120548281101561063c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610501565b610647858585610e83565b61065b85336106568685611a6c565b610d5f565b506001949350505050565b6000546001600160a01b031633146106905760405162461bcd60e51b815260040161050190611a7f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107045760405162461bcd60e51b815260040161050190611a7f565b6001600160a01b03811660009081526003602052604081205460ff16151590036107705760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610501565b6001600160a01b038116600081815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b6000546001600160a01b031633146107e35760405162461bcd60e51b815260040161050190611a7f565b600c805460ff60a81b1916600160a81b831515908102919091179091556040517f3a9ce3b0c56e8f872f7647ac57385353c6cc3474ddf4b76a77ffbb8ad1fb0ccb90600090a250565b6000546001600160a01b031633146108565760405162461bcd60e51b815260040161050190611a7f565b600c54600160a01b900460ff16156108b05760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610501565b600c805461ffff60a01b191661010160a01b1790556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93590600090a1565b60006104b9338484610e83565b306001600160a01b038316036109745760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610501565b600081116109945760405162461bcd60e51b815260040161050190611a2a565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa1580156109d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fc9190611ab4565b811115610a415760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610501565b6004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820183905283169063a9059cbb906044016020604051808303816000875af1158015610a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aba9190611acd565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2290600090a25050565b6000546001600160a01b03163314610b145760405162461bcd60e51b815260040161050190611a7f565b610b206009600a611a04565b610b2d9062989680611a13565b600755610b3c6009600a611a04565b610b499062989680611a13565b600855565b6000546001600160a01b03163314610b785760405162461bcd60e51b815260040161050190611a7f565b60288211158015610b8a575060288111155b610bd65760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e6773000000000000006044820152606401610501565b600991909155600a55565b6000546001600160a01b03163314610c0b5760405162461bcd60e51b815260040161050190611a7f565b6001600160a01b03811660009081526003602052604090205460ff161515600103610c785760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610501565b6001600160a01b038116600081815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b6000546001600160a01b03163314610cee5760405162461bcd60e51b815260040161050190611a7f565b6001600160a01b038116610d535760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610501565b610d5c816114da565b50565b6001600160a01b038316610dc15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610501565b6001600160a01b038216610e225760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610501565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ee75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610501565b6001600160a01b038216610f495760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610501565b60008111610fab5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610501565b6001600160a01b03831660009081526003602052604081205460ff16158015610fed57506001600160a01b03831660009081526003602052604090205460ff16155b1561105e57600c54600160a01b900460ff166110415760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610501565b6064600954836110519190611a13565b61105b9190611aea565b90505b6001600160a01b03841660009081526003602052604090205460ff168061109d57506001600160a01b03831660009081526003602052604090205460ff165b156110a6575060005b600c546001600160a01b0385811691161480156110d15750600b546001600160a01b03848116911614155b80156110f657506001600160a01b03831660009081526003602052604090205460ff16155b156111c4576007548211156111495760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610501565b6008548261116c856001600160a01b031660009081526001602052604090205490565b6111769190611b0c565b11156111c45760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610501565b600c546001600160a01b038581169116148015906111fb57506001600160a01b03841660009081526003602052604090205460ff16155b801561122057506001600160a01b03831660009081526003602052604090205460ff16155b15611273576007548211156112735760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610501565b600c546001600160a01b03848116911614801561129957506001600160a01b0384163014155b80156112be57506001600160a01b03841660009081526003602052604090205460ff16155b80156112e357506001600160a01b03831660009081526003602052604090205460ff16155b15611305576064600a54836112f89190611a13565b6113029190611aea565b90505b30600090815260016020526040902054600c54600160b01b900460ff1615801561133d5750600c546001600160a01b03868116911614155b80156113525750600c54600160a81b900460ff165b801561135f575060055481115b156113935761138161137c846113778460065461152a565b61152a565b611542565b4780156113915761139147611709565b505b6001600160a01b0385166000908152600160205260409020546113b7908490611a6c565b6001600160a01b0386166000908152600160205260409020556113da8284611a6c565b6001600160a01b0385166000908152600160205260409020546113fd9190611b0c565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6114478587611a6c565b60405190815260200160405180910390a381156114d35730600090815260016020526040902054611479908390611b0c565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114ca9086815260200190565b60405180910390a35b5050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000818311611539578261153b565b815b9392505050565b600c805460ff60b01b1916600160b01b179055806115a25760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610501565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106115d7576115d7611b1f565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611630573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116549190611b35565b8160018151811061166757611667611b1f565b6001600160a01b039283166020918202929092010152600b5461168d9130911684610d5f565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac947906116c6908590600090869030904290600401611b52565b600060405180830381600087803b1580156116e057600080fd5b505af11580156116f4573d6000803e3d6000fd5b5050600c805460ff60b01b1916905550505050565b600081116117595760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610501565b6004546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611793573d6000803e3d6000fd5b5050565b600060208083528351808285015260005b818110156117c4578581018301518582016040015282016117a8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d5c57600080fd5b6000806040838503121561180d57600080fd5b8235611818816117e5565b946020939093013593505050565b60008060006060848603121561183b57600080fd5b8335611846816117e5565b92506020840135611856816117e5565b929592945050506040919091013590565b60006020828403121561187957600080fd5b813561153b816117e5565b8015158114610d5c57600080fd5b6000602082840312156118a457600080fd5b813561153b81611884565b600080604083850312156118c257600080fd5b82356118cd816117e5565b915060208301356118dd816117e5565b809150509250929050565b600080604083850312156118fb57600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561195b5781600019048211156119415761194161190a565b8085161561194e57918102915b93841c9390800290611925565b509250929050565b600082611972575060016104bd565b8161197f575060006104bd565b8160018114611995576002811461199f576119bb565b60019150506104bd565b60ff8411156119b0576119b061190a565b50506001821b6104bd565b5060208310610133831016604e8410600b84101617156119de575081810a6104bd565b6119e88383611920565b80600019048211156119fc576119fc61190a565b029392505050565b600061153b60ff841683611963565b80820281158282048414176104bd576104bd61190a565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b818103818111156104bd576104bd61190a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611ac657600080fd5b5051919050565b600060208284031215611adf57600080fd5b815161153b81611884565b600082611b0757634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156104bd576104bd61190a565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611b4757600080fd5b815161153b816117e5565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ba25784516001600160a01b031683529383019391830191600101611b7d565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204271ccfe1176cfefa9916dc8bce50bd50710324cf787b54375fe4d1311974b2164736f6c63430008130033

Deployed Bytecode Sourcemap

3068:9756:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5930:83;;;;;;;;;;-1:-1:-1;6000:5:0;;;;;;;;;;;;-1:-1:-1;;;6000:5:0;;;;5930:83;;;;;;;:::i;:::-;;;;;;;;6901:161;;;;;;;;;;-1:-1:-1;6901:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6901:161:0;1023:187:1;6215:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;6215:95:0;1215:177:1;12436:385:0;;;;;;;;;;;;;:::i;:::-;;7073:410;;;;;;;;;;-1:-1:-1;7073:410:0;;;;;:::i;:::-;;:::i;6121:83::-;;;;;;;;;;-1:-1:-1;6121:83:0;;3479:1;2000:36:1;;1988:2;1973:18;6121:83:0;1858:184:1;6321:119:0;;;;;;;;;;-1:-1:-1;6321:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6414:18:0;6387:7;6414:18;;;:9;:18;;;;;;;6321:119;2153:148;;;;;;;;;;;;;:::i;11439:246::-;;;;;;;;;;-1:-1:-1;11439:246:0;;;;;:::i;:::-;;:::i;3306:79::-;;;;;;;;;;;;3343:42;3306:79;;;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;3306:79:0;2299:203:1;3782:51:0;;;;;;;;;;;;;;;;1537:79;;;;;;;;;;-1:-1:-1;1575:7:0;1602:6;-1:-1:-1;;;;;1602:6:0;1537:79;;3841:53;;;;;;;;;;;;;;;;6024:87;;;;;;;;;;-1:-1:-1;6096:7:0;;;;;;;;;;;;-1:-1:-1;;;6096:7:0;;;;6024:87;;11044:141;;;;;;;;;;-1:-1:-1;11044:141:0;;;;;:::i;:::-;;:::i;11696:211::-;;;;;;;;;;;;;:::i;6569:167::-;;;;;;;;;;-1:-1:-1;6569:167:0;;;;;:::i;:::-;;:::i;11959:466::-;;;;;;;;;;-1:-1:-1;11959:466:0;;;;;:::i;:::-;;:::i;10693:111::-;;;;;;;;;;;;;:::i;6747:143::-;;;;;;;;;;-1:-1:-1;6747:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6855:18:0;;;6828:7;6855:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6747:143;10813:221;;;;;;;;;;-1:-1:-1;10813:221:0;;;;;:::i;:::-;;:::i;11197:231::-;;;;;;;;;;-1:-1:-1;11197:231:0;;;;;:::i;:::-;;:::i;1747:203::-;;;;;;;;;;-1:-1:-1;1747:203:0;;;;;:::i;:::-;;:::i;4065:31::-;;;;;;;;;;-1:-1:-1;4065:31:0;;;;-1:-1:-1;;;4065:31:0;;;;;;6901:161;6976:4;6993:39;523:10;7016:7;7025:6;6993:8;:39::i;:::-;-1:-1:-1;7050:4:0;6901:161;;;;;:::o;6215:95::-;6268:7;3534:13;3479:1;3534:2;:13;:::i;:::-;3523:24;;:8;:24;:::i;:::-;6288:14;;6215:95;:::o;12436:385::-;12518:21;12558:22;12550:69;;;;-1:-1:-1;;;12550:69:0;;;;;;;:::i;:::-;;;;;;;;;12660:21;12638:18;:43;;12630:75;;;;-1:-1:-1;;;12630:75:0;;5815:2:1;12630:75:0;;;5797:21:1;5854:2;5834:18;;;5827:30;-1:-1:-1;;;5873:18:1;;;5866:49;5932:18;;12630:75:0;5613:343:1;12630:75:0;12732:15;;12716:62;;-1:-1:-1;;;;;12732:15:0;;;;12716:62;;;;;12759:18;;12732:15;12716:62;12732:15;12716:62;12759:18;12732:15;12716:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12792:21:0;;;;;;;12478:343;12436:385::o;7073:410::-;-1:-1:-1;;;;;7215:19:0;;7171:4;7215:19;;;:11;:19;;;;;;;;523:10;7215:33;;;;;;;;7267:26;;;;7259:79;;;;-1:-1:-1;;;7259:79:0;;6163:2:1;7259:79:0;;;6145:21:1;6202:2;6182:18;;;6175:30;6241:34;6221:18;;;6214:62;-1:-1:-1;;;6292:18:1;;;6285:38;6340:19;;7259:79:0;5961:404:1;7259:79:0;7349:36;7359:6;7367:9;7378:6;7349:9;:36::i;:::-;7396:57;7405:6;523:10;7427:25;7446:6;7427:16;:25;:::i;:::-;7396:8;:57::i;:::-;-1:-1:-1;7471:4:0;;7073:410;-1:-1:-1;;;;7073:410:0:o;2153:148::-;1662:6;;-1:-1:-1;;;;;1662:6:0;523:10;1662:22;1654:67;;;;-1:-1:-1;;;1654:67:0;;;;;;;:::i;:::-;2260:1:::1;2244:6:::0;;2223:40:::1;::::0;-1:-1:-1;;;;;2244:6:0;;::::1;::::0;2223:40:::1;::::0;2260:1;;2223:40:::1;2291:1;2274:19:::0;;-1:-1:-1;;;;;;2274:19:0::1;::::0;;2153:148::o;11439:246::-;1662:6;;-1:-1:-1;;;;;1662:6:0;523:10;1662:22;1654:67;;;;-1:-1:-1;;;1654:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11520:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;::::1;;:36;;::::0;;11512:76:::1;;;::::0;-1:-1:-1;;;11512:76:0;;7066:2:1;11512:76:0::1;::::0;::::1;7048:21:1::0;7105:2;7085:18;;;7078:30;7144:29;7124:18;;;7117:57;7191:18;;11512:76:0::1;6864:351:1::0;11512:76:0::1;-1:-1:-1::0;;;;;11599:27:0;::::1;11629:5;11599:27:::0;;;:18:::1;:27;::::0;;;;;:35;;-1:-1:-1;;11599:35:0::1;::::0;;11647:30;::::1;::::0;11629:5;11647:30:::1;11439:246:::0;:::o;11044:141::-;1662:6;;-1:-1:-1;;;;;1662:6:0;523:10;1662:22;1654:67;;;;-1:-1:-1;;;1654:67:0;;;;;;;:::i;:::-;11113:15:::1;:23:::0;;-1:-1:-1;;;;11113:23:0::1;-1:-1:-1::0;;;11113:23:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;11148:29:::1;::::0;::::1;::::0;-1:-1:-1;;11148:29:0::1;11044:141:::0;:::o;11696:211::-;1662:6;;-1:-1:-1;;;;;1662:6:0;523:10;1662:22;1654:67;;;;-1:-1:-1;;;1654:67:0;;;;;;;:::i;:::-;11763:11:::1;::::0;-1:-1:-1;;;11763:11:0;::::1;;;11762:12;11754:47;;;::::0;-1:-1:-1;;;11754:47:0;;7422:2:1;11754:47:0::1;::::0;::::1;7404:21:1::0;7461:2;7441:18;;;7434:30;7500:25;7480:18;;;7473:53;7543:18;;11754:47:0::1;7220:347:1::0;11754:47:0::1;11812:15;:22:::0;;-1:-1:-1;;;;11846:18:0;-1:-1:-1;;;11846:18:0;;;11879:20:::1;::::0;::::1;::::0;-1:-1:-1;;11879:20:0::1;11696:211::o:0;6569:167::-;6647:4;6664:42;523:10;6688:9;6699:6;6664:9;:42::i;11959:466::-;12079:4;-1:-1:-1;;;;;12057:27:0;;;12049:94;;;;-1:-1:-1;;;12049:94:0;;7774:2:1;12049:94:0;;;7756:21:1;7813:2;7793:18;;;7786:30;7852:34;7832:18;;;7825:62;-1:-1:-1;;;7903:18:1;;;7896:52;7965:19;;12049:94:0;7572:418:1;12049:94:0;12172:1;12162:7;:11;12154:58;;;;-1:-1:-1;;;12154:58:0;;;;;;;:::i;:::-;12242:43;;-1:-1:-1;;;12242:43:0;;12279:4;12242:43;;;2445:51:1;-1:-1:-1;;;;;12242:28:0;;;;;2418:18:1;;12242:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12231:7;:54;;12223:86;;;;-1:-1:-1;;;12223:86:0;;5815:2:1;12223:86:0;;;5797:21:1;5854:2;5834:18;;;5827:30;-1:-1:-1;;;5873:18:1;;;5866:49;5932:18;;12223:86:0;5613:343:1;12223:86:0;12348:15;;;12320:53;;-1:-1:-1;;;12320:53:0;;-1:-1:-1;;;;;12348:15:0;;;12320:53;;;8366:51:1;;;;8433:18;;;8426:34;;;12320:27:0;;;;;8339:18:1;;12320:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;12387:29:0;;12408:7;;12387:29;;;;;11959:466;;:::o;10693:111::-;1662:6;;-1:-1:-1;;;;;1662:6:0;523:10;1662:22;1654:67;;;;-1:-1:-1;;;1654:67:0;;;;;;;:::i;:::-;3534:13:::1;3479:1;3534:2;:13;:::i;:::-;3523:24;::::0;:8:::1;:24;:::i;:::-;10745:11;:21:::0;3534:13:::1;3479:1;3534:2;:13;:::i;:::-;3523:24;::::0;:8:::1;:24;:::i;:::-;10773:13;:23:::0;10693:111::o;10813:221::-;1662:6;;-1:-1:-1;;;;;1662:6:0;523:10;1662:22;1654:67;;;;-1:-1:-1;;;1654:67:0;;;;;;;:::i;:::-;10916:2:::1;10905:7;:13;;:31;;;;;10934:2;10922:8;:14;;10905:31;10897:69;;;::::0;-1:-1:-1;;;10897:69:0;;8923:2:1;10897:69:0::1;::::0;::::1;8905:21:1::0;8962:2;8942:18;;;8935:30;9001:27;8981:18;;;8974:55;9046:18;;10897:69:0::1;8721:349:1::0;10897:69:0::1;10977:8;:18:::0;;;;11006:9:::1;:20:::0;10813:221::o;11197:231::-;1662:6;;-1:-1:-1;;;;;1662:6:0;523:10;1662:22;1654:67;;;;-1:-1:-1;;;1654:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11269:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;::::1;;:35;;:27:::0;:35;11261:74:::1;;;::::0;-1:-1:-1;;;11261:74:0;;9277:2:1;11261:74:0::1;::::0;::::1;9259:21:1::0;9316:2;9296:18;;;9289:30;9355:29;9335:18;;;9328:57;9402:18;;11261:74:0::1;9075:351:1::0;11261:74:0::1;-1:-1:-1::0;;;;;11345:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;:34;;-1:-1:-1;;11345:34:0::1;11375:4;11345:34;::::0;;11391:30;::::1;::::0;11345:27;11391:30:::1;11197:231:::0;:::o;1747:203::-;1662:6;;-1:-1:-1;;;;;1662:6:0;523:10;1662:22;1654:67;;;;-1:-1:-1;;;1654:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1838:22:0;::::1;1830:73;;;::::0;-1:-1:-1;;;1830:73:0;;9633:2:1;1830:73:0::1;::::0;::::1;9615:21:1::0;9672:2;9652:18;;;9645:30;9711:34;9691:18;;;9684:62;-1:-1:-1;;;9762:18:1;;;9755:36;9808:19;;1830:73:0::1;9431:402:1::0;1830:73:0::1;1914:28;1933:8;1914:18;:28::i;:::-;1747:203:::0;:::o;7494:335::-;-1:-1:-1;;;;;7587:19:0;;7579:68;;;;-1:-1:-1;;;7579:68:0;;10040:2:1;7579:68:0;;;10022:21:1;10079:2;10059:18;;;10052:30;10118:34;10098:18;;;10091:62;-1:-1:-1;;;10169:18:1;;;10162:34;10213:19;;7579:68:0;9838:400:1;7579:68:0;-1:-1:-1;;;;;7666:21:0;;7658:68;;;;-1:-1:-1;;;7658:68:0;;10445:2:1;7658:68:0;;;10427:21:1;10484:2;10464:18;;;10457:30;10523:34;10503:18;;;10496:62;-1:-1:-1;;;10574:18:1;;;10567:32;10616:19;;7658:68:0;10243:398:1;7658:68:0;-1:-1:-1;;;;;7737:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7789:32;;1361:25:1;;;7789:32:0;;1334:18:1;7789:32:0;;;;;;;7494:335;;;:::o;7840:2189::-;-1:-1:-1;;;;;7928:18:0;;7920:68;;;;-1:-1:-1;;;7920:68:0;;10848:2:1;7920:68:0;;;10830:21:1;10887:2;10867:18;;;10860:30;10926:34;10906:18;;;10899:62;-1:-1:-1;;;10977:18:1;;;10970:35;11022:19;;7920:68:0;10646:401:1;7920:68:0;-1:-1:-1;;;;;8007:16:0;;7999:64;;;;-1:-1:-1;;;7999:64:0;;11254:2:1;7999:64:0;;;11236:21:1;11293:2;11273:18;;;11266:30;11332:34;11312:18;;;11305:62;-1:-1:-1;;;11383:18:1;;;11376:33;11426:19;;7999:64:0;11052:399:1;7999:64:0;8091:1;8082:6;:10;8074:64;;;;-1:-1:-1;;;8074:64:0;;11658:2:1;8074:64:0;;;11640:21:1;11697:2;11677:18;;;11670:30;11736:34;11716:18;;;11709:62;-1:-1:-1;;;11787:18:1;;;11780:39;11836:19;;8074:64:0;11456:405:1;8074:64:0;-1:-1:-1;;;;;8183:24:0;;8149:14;8183:24;;;:18;:24;;;;;;;;8182:25;:52;;;;-1:-1:-1;;;;;;8212:22:0;;;;;;:18;:22;;;;;;;;8211:23;8182:52;8178:189;;;8259:11;;-1:-1:-1;;;8259:11:0;;;;8251:43;;;;-1:-1:-1;;;8251:43:0;;12068:2:1;8251:43:0;;;12050:21:1;12107:2;12087:18;;;12080:30;-1:-1:-1;;;12126:18:1;;;12119:49;12185:18;;8251:43:0;11866:343:1;8251:43:0;8351:3;8338:8;;8328:6;:19;;;;:::i;:::-;:27;;;;:::i;:::-;8319:36;;8178:189;-1:-1:-1;;;;;8392:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;8420:22:0;;;;;;:18;:22;;;;;;;;8392:50;8388:93;;;-1:-1:-1;8468:1:0;8388:93;8517:13;;-1:-1:-1;;;;;8509:21:0;;;8517:13;;8509:21;:55;;;;-1:-1:-1;8548:15:0;;-1:-1:-1;;;;;8534:30:0;;;8548:15;;8534:30;;8509:55;:82;;;;-1:-1:-1;;;;;;8569:22:0;;;;;;:18;:22;;;;;;;;8568:23;8509:82;8505:271;;;8627:11;;8617:6;:21;;8609:59;;;;-1:-1:-1;;;8609:59:0;;12638:2:1;8609:59:0;;;12620:21:1;12677:2;12657:18;;;12650:30;-1:-1:-1;;;12696:18:1;;;12689:55;12761:18;;8609:59:0;12436:349:1;8609:59:0;8718:13;;8708:6;8692:13;8702:2;-1:-1:-1;;;;;6414:18:0;6387:7;6414:18;;;:9;:18;;;;;;;6321:119;8692:13;:22;;;;:::i;:::-;:39;;8684:78;;;;-1:-1:-1;;;8684:78:0;;13122:2:1;8684:78:0;;;13104:21:1;13161:2;13141:18;;;13134:30;13200:28;13180:18;;;13173:56;13246:18;;8684:78:0;12920:350:1;8684:78:0;8811:13;;-1:-1:-1;;;;;8803:21:0;;;8811:13;;8803:21;;;;:50;;-1:-1:-1;;;;;;8829:24:0;;;;;;:18;:24;;;;;;;;8828:25;8803:50;:77;;;;-1:-1:-1;;;;;;8858:22:0;;;;;;:18;:22;;;;;;;;8857:23;8803:77;8799:172;;;8916:11;;8906:6;:21;;8898:59;;;;-1:-1:-1;;;8898:59:0;;12638:2:1;8898:59:0;;;12620:21:1;12677:2;12657:18;;;12650:30;-1:-1:-1;;;12696:18:1;;;12689:55;12761:18;;8898:59:0;12436:349:1;8898:59:0;9003:13;;-1:-1:-1;;;;;8997:19:0;;;9003:13;;8997:19;:44;;;;-1:-1:-1;;;;;;9020:21:0;;9036:4;9020:21;;8997:44;:73;;;;-1:-1:-1;;;;;;9046:24:0;;;;;;:18;:24;;;;;;;;9045:25;8997:73;:100;;;;-1:-1:-1;;;;;;9075:22:0;;;;;;:18;:22;;;;;;;;9074:23;8997:100;8993:203;;;9154:3;9140:9;;9130:6;:20;;;;:::i;:::-;:28;;;;:::i;:::-;9121:37;;8993:203;9270:4;9221:28;6414:18;;;:9;:18;;;;;;9296:6;;-1:-1:-1;;;9296:6:0;;;;9295:7;:32;;;;-1:-1:-1;9314:13:0;;-1:-1:-1;;;;;9306:21:0;;;9314:13;;9306:21;;9295:32;:51;;;;-1:-1:-1;9331:15:0;;-1:-1:-1;;;9331:15:0;;;;9295:51;:92;;;;;9373:14;;9350:20;:37;9295:92;9291:396;;;9408:72;9425:54;9429:6;9437:41;9441:20;9463:14;;9437:3;:41::i;:::-;9425:3;:54::i;:::-;9408:16;:72::i;:::-;9527:21;9570:22;;9567:105;;9617:35;9630:21;9617:12;:35::i;:::-;9389:298;9291:396;-1:-1:-1;;;;;9715:15:0;;;;;;:9;:15;;;;;;:24;;9733:6;;9715:24;:::i;:::-;-1:-1:-1;;;;;9697:15:0;;;;;;:9;:15;;;;;:42;9784:17;9794:6;9784;:17;:::i;:::-;-1:-1:-1;;;;;9767:13:0;;;;;;:9;:13;;;;;;:35;;;;:::i;:::-;-1:-1:-1;;;;;9751:13:0;;;;;;;:9;:13;;;;;:51;;;;9818:37;;;9837:17;9847:6;9837;:17;:::i;:::-;9818:37;;1361:25:1;;;1349:2;1334:18;9818:37:0;;;;;;;9870:10;;9867:155;;9939:4;9921:24;;;;:9;:24;;;;;;:35;;9949:6;;9921:35;:::i;:::-;9912:4;9894:24;;;;:9;:24;;;;;;;:62;;;;9974:36;;-1:-1:-1;;;;;9974:36:0;;;;;;;10003:6;1361:25:1;;1349:2;1334:18;;1215:177;9974:36:0;;;;;;;;9867:155;7909:2120;;7840:2189;;;:::o;1956:191::-;2030:16;2049:6;;-1:-1:-1;;;;;2066:17:0;;;-1:-1:-1;;;;;;2066:17:0;;;;;;2099:40;;2049:6;;;;;;;2099:40;;2030:16;2099:40;2019:128;1956:191;:::o;6451:107::-;6508:7;6540:1;6536;:5;6535:15;;6549:1;6535:15;;;6545:1;6535:15;6528:22;6451:107;-1:-1:-1;;;6451:107:0:o;10041:471::-;4596:6;:13;;-1:-1:-1;;;;4596:13:0;-1:-1:-1;;;4596:13:0;;;10127:15;10119:57:::1;;;::::0;-1:-1:-1;;;10119:57:0;;13477:2:1;10119:57:0::1;::::0;::::1;13459:21:1::0;13516:2;13496:18;;;13489:30;13555:31;13535:18;;;13528:59;13604:18;;10119:57:0::1;13275:353:1::0;10119:57:0::1;10211:16;::::0;;10225:1:::1;10211:16:::0;;;;;::::1;::::0;;10187:21:::1;::::0;10211:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10211:16:0::1;10187:40;;10256:4;10238;10243:1;10238:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10238:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10282:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10282:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10238:7;;10282:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10272:4;10277:1;10272:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10272:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10347:15:::1;::::0;10315:62:::1;::::0;10332:4:::1;::::0;10347:15:::1;10365:11:::0;10315:8:::1;:62::i;:::-;10388:15;::::0;:116:::1;::::0;-1:-1:-1;;;10388:116:0;;-1:-1:-1;;;;;10388:15:0;;::::1;::::0;:66:::1;::::0;:116:::1;::::0;10455:11;;10388:15:::1;::::0;10469:4;;10482::::1;::::0;10488:15:::1;::::0;10388:116:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4632:6:0;:14;;-1:-1:-1;;;;4632:14:0;;;-1:-1:-1;;;;10041:471:0:o;10524:159::-;10597:1;10588:6;:10;10580:52;;;;-1:-1:-1;;;10580:52:0;;13477:2:1;10580:52:0;;;13459:21:1;13516:2;13496:18;;;13489:30;13555:31;13535:18;;;13528:59;13604:18;;10580:52:0;13275:353:1;10580:52:0;10643:15;;:32;;-1:-1:-1;;;;;10643:15:0;;;;:32;;;;;10668:6;;10643:15;:32;:15;:32;10668:6;10643:15;:32;;;;;;;;;;;;;;;;;;;;;10524:159;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:118::-;2593:5;2586:13;2579:21;2572:5;2569:32;2559:60;;2615:1;2612;2605:12;2630:241;2686:6;2739:2;2727:9;2718:7;2714:23;2710:32;2707:52;;;2755:1;2752;2745:12;2707:52;2794:9;2781:23;2813:28;2835:5;2813:28;:::i;2876:388::-;2944:6;2952;3005:2;2993:9;2984:7;2980:23;2976:32;2973:52;;;3021:1;3018;3011:12;2973:52;3060:9;3047:23;3079:31;3104:5;3079:31;:::i;:::-;3129:5;-1:-1:-1;3186:2:1;3171:18;;3158:32;3199:33;3158:32;3199:33;:::i;:::-;3251:7;3241:17;;;2876:388;;;;;:::o;3269:248::-;3337:6;3345;3398:2;3386:9;3377:7;3373:23;3369:32;3366:52;;;3414:1;3411;3404:12;3366:52;-1:-1:-1;;3437:23:1;;;3507:2;3492:18;;;3479:32;;-1:-1:-1;3269:248:1:o;3522:127::-;3583:10;3578:3;3574:20;3571:1;3564:31;3614:4;3611:1;3604:15;3638:4;3635:1;3628:15;3654:422;3743:1;3786:5;3743:1;3800:270;3821:7;3811:8;3808:21;3800:270;;;3880:4;3876:1;3872:6;3868:17;3862:4;3859:27;3856:53;;;3889:18;;:::i;:::-;3939:7;3929:8;3925:22;3922:55;;;3959:16;;;;3922:55;4038:22;;;;3998:15;;;;3800:270;;;3804:3;3654:422;;;;;:::o;4081:806::-;4130:5;4160:8;4150:80;;-1:-1:-1;4201:1:1;4215:5;;4150:80;4249:4;4239:76;;-1:-1:-1;4286:1:1;4300:5;;4239:76;4331:4;4349:1;4344:59;;;;4417:1;4412:130;;;;4324:218;;4344:59;4374:1;4365:10;;4388:5;;;4412:130;4449:3;4439:8;4436:17;4433:43;;;4456:18;;:::i;:::-;-1:-1:-1;;4512:1:1;4498:16;;4527:5;;4324:218;;4626:2;4616:8;4613:16;4607:3;4601:4;4598:13;4594:36;4588:2;4578:8;4575:16;4570:2;4564:4;4561:12;4557:35;4554:77;4551:159;;;-1:-1:-1;4663:19:1;;;4695:5;;4551:159;4742:34;4767:8;4761:4;4742:34;:::i;:::-;4812:6;4808:1;4804:6;4800:19;4791:7;4788:32;4785:58;;;4823:18;;:::i;:::-;4861:20;;4081:806;-1:-1:-1;;;4081:806:1:o;4892:140::-;4950:5;4979:47;5020:4;5010:8;5006:19;5000:4;4979:47;:::i;5037:168::-;5110:9;;;5141;;5158:15;;;5152:22;;5138:37;5128:71;;5179:18;;:::i;5210:398::-;5412:2;5394:21;;;5451:2;5431:18;;;5424:30;5490:34;5485:2;5470:18;;5463:62;-1:-1:-1;;;5556:2:1;5541:18;;5534:32;5598:3;5583:19;;5210:398::o;6370:128::-;6437:9;;;6458:11;;;6455:37;;;6472:18;;:::i;6503:356::-;6705:2;6687:21;;;6724:18;;;6717:30;6783:34;6778:2;6763:18;;6756:62;6850:2;6835:18;;6503:356::o;7995:184::-;8065:6;8118:2;8106:9;8097:7;8093:23;8089:32;8086:52;;;8134:1;8131;8124:12;8086:52;-1:-1:-1;8157:16:1;;7995:184;-1:-1:-1;7995:184:1:o;8471:245::-;8538:6;8591:2;8579:9;8570:7;8566:23;8562:32;8559:52;;;8607:1;8604;8597:12;8559:52;8639:9;8633:16;8658:28;8680:5;8658:28;:::i;12214:217::-;12254:1;12280;12270:132;;12324:10;12319:3;12315:20;12312:1;12305:31;12359:4;12356:1;12349:15;12387:4;12384:1;12377:15;12270:132;-1:-1:-1;12416:9:1;;12214:217::o;12790:125::-;12855:9;;;12876:10;;;12873:36;;;12889:18;;:::i;13765:127::-;13826:10;13821:3;13817:20;13814:1;13807:31;13857:4;13854:1;13847:15;13881:4;13878:1;13871:15;13897:251;13967:6;14020:2;14008:9;13999:7;13995:23;13991:32;13988:52;;;14036:1;14033;14026:12;13988:52;14068:9;14062:16;14087:31;14112:5;14087:31;:::i;14153:980::-;14415:4;14463:3;14452:9;14448:19;14494:6;14483:9;14476:25;14520:2;14558:6;14553:2;14542:9;14538:18;14531:34;14601:3;14596:2;14585:9;14581:18;14574:31;14625:6;14660;14654:13;14691:6;14683;14676:22;14729:3;14718:9;14714:19;14707:26;;14768:2;14760:6;14756:15;14742:29;;14789:1;14799:195;14813:6;14810:1;14807:13;14799:195;;;14878:13;;-1:-1:-1;;;;;14874:39:1;14862:52;;14969:15;;;;14934:12;;;;14910:1;14828:9;14799:195;;;-1:-1:-1;;;;;;;15050:32:1;;;;15045:2;15030:18;;15023:60;-1:-1:-1;;;15114:3:1;15099:19;15092:35;15011:3;14153:980;-1:-1:-1;;;14153:980:1:o

Swarm Source

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