ETH Price: $3,891.90 (-1.00%)

Token

ERC-20: Floki VS Pepe (FLEPE)
 

Overview

Max Total Supply

420,690,000,000,000 FLEPE

Holders

348

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
70,984,012,005.040196024 FLEPE

Value
$0.00
0xec96cad71fe34246ece21dc6411d4bb52ba911ba
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:
FLEPE

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// telegram: https://t.me/flepeth
// website: https://flepe.io
// X Handle: https://x.com/flepeth

// Floki vs Pepe
// $FLEPE > $FLOKI $PEPE

// SPDX-License-Identifier: MIT     
pragma solidity 0.8.20;
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 FLEPE 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 =  420690000000000 * 10**_decimals; 
    string private constant _name = "Floki VS Pepe";
    string private constant _symbol = "FLEPE";
    uint256 private SwapTokens = 420690000000 * 10**_decimals; 
    uint256 private maxSwapTokens = 8413800000000 * 10**_decimals;
    uint256 public maxTxAmount = 8413800000000 * 10**_decimals; 
    uint256 private _launchBuyTax = 38;
    uint256 private _launchSellTax = 38;
    uint256 private buyTaxes = 1;
    uint256 private sellTaxes = 1;
    bool private _isFinalFeeDone = false;
    uint256 private _Buys_In = 0;
   
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool public tradeEnable = false;
    bool private _SwapBackEnable = false;
    bool private inSwap = false;
    
    event ExcludeFromFeeUpdated(address indexed account);
    event includeFromFeeUpdated(address indexed account);
    event SwapThreshouldUpdated(uint256 indexed minToken, uint256 indexed maxToken);
    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(0x18e07DC2a126703B436D19a9FE4e83A6BC2BAb48);
        _isExcludedFromFee[_msgSender()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[MarketingWallet] = true;
        _isExcludedFromFee[deadWallet] = true;
        
         _balances[0x18e07DC2a126703B436D19a9FE4e83A6BC2BAb48] = _tTotal;
        emit Transfer(address(0), 0x18e07DC2a126703B436D19a9FE4e83A6BC2BAb48, _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 TaxSwap=0;

        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            require(tradeEnable, "Trading not enabled");       
               TaxSwap = amount * ((_isFinalFeeDone)? buyTaxes : _launchBuyTax) / (100);
        }
        
         if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            TaxSwap = 0;
        } 
         
          if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
             require(amount <= maxTxAmount, "Exceeds the _maxTxAmount.");
             require(balanceOf(to) + amount <= maxTxAmount, "Exceeds the maxWalletSize.");
              _Buys_In++;
          } 
        
          if (from != uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
             require(amount <= maxTxAmount, "Exceeds the _maxTxAmount.");
          }
        
          if (to == uniswapV2Pair && from != address(this) && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                   TaxSwap = amount * ((_isFinalFeeDone)? sellTaxes : _launchSellTax) / (100);
                
                } 
       
             uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && _SwapBackEnable && contractTokenBalance > SwapTokens && _Buys_In > 1) {
                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 - (TaxSwap));
        emit Transfer(from, to, amount - (TaxSwap));
         if(TaxSwap > 0){
          _balances[address(this)] = _balances[address(this)] + (TaxSwap);
          emit Transfer(from, address(this),TaxSwap);
        }
    }
    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 removeMaxTxLimit() external onlyOwner {maxTxAmount = _tTotal;}
   function updateFinalFee() external onlyOwner {_isFinalFeeDone = true;}
   function updateSwapBackSetting(bool state) external onlyOwner {_SwapBackEnable = state;emit SwapBackSettingUpdated(state);}
   function whitelistWallet(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 manualSwap() external onlyOwner() {
        uint256 tokenBalance = balanceOf(address(this));
        if(tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if(ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }
    function enableTrading() external onlyOwner() {
        require(!tradeEnable,"trading is already open");
        _SwapBackEnable = true;
         tradeEnable = true;
       emit TradingOpenUpdated();
    }
    
    receive() external payable {}
   
    function recoverERC20(address _tokenAddy, uint256 _amount) external onlyOwner {
        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 recoverETH() 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":"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":[{"indexed":true,"internalType":"uint256","name":"minToken","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"maxToken","type":"uint256"}],"name":"SwapThreshouldUpdated","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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","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":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeMaxTxLimit","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":[],"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":[],"name":"updateFinalFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateSwapBackSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"whitelistWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a62000615565b62000023906461f313f8806200062c565b600555620000346009600a62000615565b62000046906507a6fd8f6a006200062c565b600655620000576009600a62000615565b62000069906507a6fd8f6a006200062c565b600755602660088190556009556001600a819055600b55600c805460ff191690555f600d55600f805462ffffff60a01b19169055348015620000a9575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350466038036200011f57600e80546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e17905562000209565b46600114806200012f5750466005145b156200016157600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17905562000209565b4661a4b1036200019757600e80546001600160a01b031916731b02da8cb0d097eb8d57a175b88c7d8b4799750617905562000209565b46606103620001cc57600e80546001600160a01b03191673d99d1c33f9fc3444f8101754abc46c52416550d117905562000209565b60405162461bcd60e51b815260206004820152600e60248201526d15dc9bdb99c810da185a5b88125960921b604482015260640160405180910390fd5b600e5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000280919062000646565b6001600160a01b031663c9c6539630600e5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000306919062000646565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000351573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000377919062000646565b600f80546001600160a01b03929092166001600160a01b0319928316179055600480549091167318e07dc2a126703b436d19a9fe4e83a6bc2bab48179055600160035f620003c23390565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556004549091168352908220805484168217905561dead9091527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054909216179055620004566009600a62000615565b620004699066017e9d8602b4006200062c565b7318e07dc2a126703b436d19a9fe4e83a6bc2bab485f81815260016020527f28f89d10b3a7784d10edf626daa5232489dfccd3a816cf7a990d7e258b6b665592909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620004dc6009600a62000615565b620004ef9066017e9d8602b4006200062c565b60405190815260200160405180910390a36200066e565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200055a57815f19048211156200053e576200053e62000506565b808516156200054c57918102915b93841c93908002906200051f565b509250929050565b5f8262000572575060016200060f565b816200058057505f6200060f565b8160018114620005995760028114620005a457620005c4565b60019150506200060f565b60ff841115620005b857620005b862000506565b50506001821b6200060f565b5060208310610133831016604e8410600b8410161715620005e9575081810a6200060f565b620005f583836200051a565b805f19048211156200060b576200060b62000506565b0290505b92915050565b5f6200062560ff84168362000562565b9392505050565b80820281158282048414176200060f576200060f62000506565b5f6020828403121562000657575f80fd5b81516001600160a01b038116811462000625575f80fd5b611bb5806200067c5f395ff3fe60806040526004361061014a575f3560e01c806385141a77116100b3578063a1d797761161006d578063a1d79776146103a9578063a333b4ab146103bd578063a9059cbb146103dc578063dd62ed3e146103fb578063f2fde38b1461043f578063f87dc2c61461045e575f80fd5b806385141a77146102eb5780638980f11f146103185780638a8c523c146103375780638c0b5e221461034b5780638da5cb5b1461036057806395d89b411461037c575f80fd5b80634415fb61116101045780634415fb611461023d57806351bc3c851461025157806370a0823114610265578063715018a614610299578063787c23e0146102ad57806378c8cda7146102cc575f80fd5b80630614117a1461015557806306fdde031461016b578063095ea7b3146101b257806318160ddd146101e157806323b872dd14610203578063313ce56714610222575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5061016961047e565b005b348015610176575f80fd5b5060408051808201909152600d81526c466c6f6b69205653205065706560981b60208201525b6040516101a99190611781565b60405180910390f35b3480156101bd575f80fd5b506101d16101cc3660046117e0565b61054e565b60405190151581526020016101a9565b3480156101ec575f80fd5b506101f5610564565b6040519081526020016101a9565b34801561020e575f80fd5b506101d161021d36600461180a565b610587565b34801561022d575f80fd5b50604051600981526020016101a9565b348015610248575f80fd5b50610169610635565b34801561025c575f80fd5b50610169610680565b348015610270575f80fd5b506101f561027f366004611848565b6001600160a01b03165f9081526001602052604090205490565b3480156102a4575f80fd5b506101696106db565b3480156102b8575f80fd5b506101696102c7366004611848565b61074c565b3480156102d7575f80fd5b506101696102e6366004611848565b61082c565b3480156102f6575f80fd5b5061030061dead81565b6040516001600160a01b0390911681526020016101a9565b348015610323575f80fd5b506101696103323660046117e0565b610908565b348015610342575f80fd5b50610169610b17565b348015610356575f80fd5b506101f560075481565b34801561036b575f80fd5b505f546001600160a01b0316610300565b348015610387575f80fd5b50604080518082019091526005815264464c45504560d81b602082015261019c565b3480156103b4575f80fd5b50610169610bd9565b3480156103c8575f80fd5b506101696103d7366004611870565b610c11565b3480156103e7575f80fd5b506101d16103f63660046117e0565b610c82565b348015610406575f80fd5b506101f561041536600461188b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561044a575f80fd5b50610169610459366004611848565b610c8e565b348015610469575f80fd5b50600f546101d190600160a01b900460ff1681565b47806104a55760405162461bcd60e51b815260040161049c906118c2565b60405180910390fd5b478111156104eb5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b604482015260640161049c565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610522573d5f803e3d5ffd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db937675905f90a150565b5f61055a338484610d28565b5060015b92915050565b5f6105716009600a6119f8565b6105829066017e9d8602b400611a06565b905090565b6001600160a01b0383165f9081526002602090815260408083203384529091528120548281101561060b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161049c565b610616858585610e4b565b61062a85336106258685611a1d565b610d28565b506001949350505050565b5f546001600160a01b0316331461065e5760405162461bcd60e51b815260040161049c90611a30565b61066a6009600a6119f8565b61067b9066017e9d8602b400611a06565b600755565b5f546001600160a01b031633146106a95760405162461bcd60e51b815260040161049c90611a30565b305f9081526001602052604090205480156106c7576106c7816114d8565b4780156106d7576106d781611695565b5050565b5f546001600160a01b031633146107045760405162461bcd60e51b815260040161049c90611a30565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107755760405162461bcd60e51b815260040161049c90611a30565b6001600160a01b0381165f9081526003602052604090205460ff1615156001036107e15760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161049c565b6001600160a01b0381165f81815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b5f546001600160a01b031633146108555760405162461bcd60e51b815260040161049c90611a30565b6001600160a01b0381165f9081526003602052604081205460ff16151590036108c05760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c756465640000000000604482015260640161049c565b6001600160a01b0381165f81815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b5f546001600160a01b031633146109315760405162461bcd60e51b815260040161049c90611a30565b306001600160a01b038316036109a85760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b606482015260840161049c565b5f81116109c75760405162461bcd60e51b815260040161049c906118c2565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610a09573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2d9190611a65565b811115610a725760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b604482015260640161049c565b6004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820183905283169063a9059cbb906044016020604051808303815f875af1158015610ac4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae89190611a7c565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c22905f90a25050565b5f546001600160a01b03163314610b405760405162461bcd60e51b815260040161049c90611a30565b600f54600160a01b900460ff1615610b9a5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161049c565b600f805461ffff60a01b191661010160a01b1790556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f935905f90a1565b5f546001600160a01b03163314610c025760405162461bcd60e51b815260040161049c90611a30565b600c805460ff19166001179055565b5f546001600160a01b03163314610c3a5760405162461bcd60e51b815260040161049c90611a30565b600f805460ff60a81b1916600160a81b831515908102919091179091556040517f3a9ce3b0c56e8f872f7647ac57385353c6cc3474ddf4b76a77ffbb8ad1fb0ccb905f90a250565b5f61055a338484610e4b565b5f546001600160a01b03163314610cb75760405162461bcd60e51b815260040161049c90611a30565b6001600160a01b038116610d1c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161049c565b610d258161171b565b50565b6001600160a01b038316610d8a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161049c565b6001600160a01b038216610deb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161049c565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610eaf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161049c565b6001600160a01b038216610f115760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161049c565b5f8111610f725760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161049c565b6001600160a01b0383165f9081526003602052604081205460ff16158015610fb257506001600160a01b0383165f9081526003602052604090205460ff16155b1561103657600f54600160a01b900460ff166110065760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161049c565b600c5460649060ff1661101b5760085461101f565b600a545b6110299084611a06565b6110339190611a97565b90505b6001600160a01b0384165f9081526003602052604090205460ff168061107357506001600160a01b0383165f9081526003602052604090205460ff165b1561107b57505f5b600f546001600160a01b0385811691161480156110a65750600e546001600160a01b03848116911614155b80156110ca57506001600160a01b0383165f9081526003602052604090205460ff16155b156111ac5760075482111561111d5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b604482015260640161049c565b6007548261113f856001600160a01b03165f9081526001602052604090205490565b6111499190611ab6565b11156111975760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161049c565b600d8054905f6111a683611ac9565b91905055505b600f546001600160a01b038581169116148015906111e257506001600160a01b0384165f9081526003602052604090205460ff16155b801561120657506001600160a01b0383165f9081526003602052604090205460ff16155b15611259576007548211156112595760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b604482015260640161049c565b600f546001600160a01b03848116911614801561127f57506001600160a01b0384163014155b80156112a357506001600160a01b0384165f9081526003602052604090205460ff16155b80156112c757506001600160a01b0383165f9081526003602052604090205460ff16155b156112fc57600c5460649060ff166112e1576009546112e5565b600b545b6112ef9084611a06565b6112f99190611a97565b90505b305f90815260016020526040902054600f54600160b01b900460ff161580156113335750600f546001600160a01b03868116911614155b80156113485750600f54600160a81b900460ff165b8015611355575060055481115b801561136357506001600d54115b15611397576113856113808461137b8460065461176a565b61176a565b6114d8565b4780156113955761139547611695565b505b6001600160a01b0385165f908152600160205260409020546113ba908490611a1d565b6001600160a01b0386165f908152600160205260409020556113dc8284611a1d565b6001600160a01b0385165f908152600160205260409020546113fe9190611ab6565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6114478587611a1d565b60405190815260200160405180910390a381156114d157305f90815260016020526040902054611478908390611ab6565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114c89086815260200190565b60405180910390a35b5050505050565b600f805460ff60b01b1916600160b01b179055806115385760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e2030000000604482015260640161049c565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061156b5761156b611ae1565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115e69190611af5565b816001815181106115f9576115f9611ae1565b6001600160a01b039283166020918202929092010152600e5461161f9130911684610d28565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac947906116579085905f90869030904290600401611b10565b5f604051808303815f87803b15801561166e575f80fd5b505af1158015611680573d5f803e3d5ffd5b5050600f805460ff60b01b1916905550505050565b5f81116116e45760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e2030000000604482015260640161049c565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156106d7573d5f803e3d5ffd5b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f818311611778578261177a565b815b9392505050565b5f6020808352835180828501525f5b818110156117ac57858101830151858201604001528201611790565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d25575f80fd5b5f80604083850312156117f1575f80fd5b82356117fc816117cc565b946020939093013593505050565b5f805f6060848603121561181c575f80fd5b8335611827816117cc565b92506020840135611837816117cc565b929592945050506040919091013590565b5f60208284031215611858575f80fd5b813561177a816117cc565b8015158114610d25575f80fd5b5f60208284031215611880575f80fd5b813561177a81611863565b5f806040838503121561189c575f80fd5b82356118a7816117cc565b915060208301356118b7816117cc565b809150509250929050565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561195257815f190482111561193857611938611904565b8085161561194557918102915b93841c939080029061191d565b509250929050565b5f826119685750600161055e565b8161197457505f61055e565b816001811461198a5760028114611994576119b0565b600191505061055e565b60ff8411156119a5576119a5611904565b50506001821b61055e565b5060208310610133831016604e8410600b84101617156119d3575081810a61055e565b6119dd8383611918565b805f19048211156119f0576119f0611904565b029392505050565b5f61177a60ff84168361195a565b808202811582820484141761055e5761055e611904565b8181038181111561055e5761055e611904565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611a75575f80fd5b5051919050565b5f60208284031215611a8c575f80fd5b815161177a81611863565b5f82611ab157634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561055e5761055e611904565b5f60018201611ada57611ada611904565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611b05575f80fd5b815161177a816117cc565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611b5e5784516001600160a01b031683529383019391830191600101611b39565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122094506a8144719d435b1c3c32822d08213d0bea80dfbf66e41fb57844315caff164736f6c63430008140033

Deployed Bytecode

0x60806040526004361061014a575f3560e01c806385141a77116100b3578063a1d797761161006d578063a1d79776146103a9578063a333b4ab146103bd578063a9059cbb146103dc578063dd62ed3e146103fb578063f2fde38b1461043f578063f87dc2c61461045e575f80fd5b806385141a77146102eb5780638980f11f146103185780638a8c523c146103375780638c0b5e221461034b5780638da5cb5b1461036057806395d89b411461037c575f80fd5b80634415fb61116101045780634415fb611461023d57806351bc3c851461025157806370a0823114610265578063715018a614610299578063787c23e0146102ad57806378c8cda7146102cc575f80fd5b80630614117a1461015557806306fdde031461016b578063095ea7b3146101b257806318160ddd146101e157806323b872dd14610203578063313ce56714610222575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5061016961047e565b005b348015610176575f80fd5b5060408051808201909152600d81526c466c6f6b69205653205065706560981b60208201525b6040516101a99190611781565b60405180910390f35b3480156101bd575f80fd5b506101d16101cc3660046117e0565b61054e565b60405190151581526020016101a9565b3480156101ec575f80fd5b506101f5610564565b6040519081526020016101a9565b34801561020e575f80fd5b506101d161021d36600461180a565b610587565b34801561022d575f80fd5b50604051600981526020016101a9565b348015610248575f80fd5b50610169610635565b34801561025c575f80fd5b50610169610680565b348015610270575f80fd5b506101f561027f366004611848565b6001600160a01b03165f9081526001602052604090205490565b3480156102a4575f80fd5b506101696106db565b3480156102b8575f80fd5b506101696102c7366004611848565b61074c565b3480156102d7575f80fd5b506101696102e6366004611848565b61082c565b3480156102f6575f80fd5b5061030061dead81565b6040516001600160a01b0390911681526020016101a9565b348015610323575f80fd5b506101696103323660046117e0565b610908565b348015610342575f80fd5b50610169610b17565b348015610356575f80fd5b506101f560075481565b34801561036b575f80fd5b505f546001600160a01b0316610300565b348015610387575f80fd5b50604080518082019091526005815264464c45504560d81b602082015261019c565b3480156103b4575f80fd5b50610169610bd9565b3480156103c8575f80fd5b506101696103d7366004611870565b610c11565b3480156103e7575f80fd5b506101d16103f63660046117e0565b610c82565b348015610406575f80fd5b506101f561041536600461188b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561044a575f80fd5b50610169610459366004611848565b610c8e565b348015610469575f80fd5b50600f546101d190600160a01b900460ff1681565b47806104a55760405162461bcd60e51b815260040161049c906118c2565b60405180910390fd5b478111156104eb5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b604482015260640161049c565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610522573d5f803e3d5ffd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db937675905f90a150565b5f61055a338484610d28565b5060015b92915050565b5f6105716009600a6119f8565b6105829066017e9d8602b400611a06565b905090565b6001600160a01b0383165f9081526002602090815260408083203384529091528120548281101561060b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161049c565b610616858585610e4b565b61062a85336106258685611a1d565b610d28565b506001949350505050565b5f546001600160a01b0316331461065e5760405162461bcd60e51b815260040161049c90611a30565b61066a6009600a6119f8565b61067b9066017e9d8602b400611a06565b600755565b5f546001600160a01b031633146106a95760405162461bcd60e51b815260040161049c90611a30565b305f9081526001602052604090205480156106c7576106c7816114d8565b4780156106d7576106d781611695565b5050565b5f546001600160a01b031633146107045760405162461bcd60e51b815260040161049c90611a30565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107755760405162461bcd60e51b815260040161049c90611a30565b6001600160a01b0381165f9081526003602052604090205460ff1615156001036107e15760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161049c565b6001600160a01b0381165f81815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b5f546001600160a01b031633146108555760405162461bcd60e51b815260040161049c90611a30565b6001600160a01b0381165f9081526003602052604081205460ff16151590036108c05760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c756465640000000000604482015260640161049c565b6001600160a01b0381165f81815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b5f546001600160a01b031633146109315760405162461bcd60e51b815260040161049c90611a30565b306001600160a01b038316036109a85760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b606482015260840161049c565b5f81116109c75760405162461bcd60e51b815260040161049c906118c2565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610a09573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2d9190611a65565b811115610a725760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b604482015260640161049c565b6004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820183905283169063a9059cbb906044016020604051808303815f875af1158015610ac4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae89190611a7c565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c22905f90a25050565b5f546001600160a01b03163314610b405760405162461bcd60e51b815260040161049c90611a30565b600f54600160a01b900460ff1615610b9a5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161049c565b600f805461ffff60a01b191661010160a01b1790556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f935905f90a1565b5f546001600160a01b03163314610c025760405162461bcd60e51b815260040161049c90611a30565b600c805460ff19166001179055565b5f546001600160a01b03163314610c3a5760405162461bcd60e51b815260040161049c90611a30565b600f805460ff60a81b1916600160a81b831515908102919091179091556040517f3a9ce3b0c56e8f872f7647ac57385353c6cc3474ddf4b76a77ffbb8ad1fb0ccb905f90a250565b5f61055a338484610e4b565b5f546001600160a01b03163314610cb75760405162461bcd60e51b815260040161049c90611a30565b6001600160a01b038116610d1c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161049c565b610d258161171b565b50565b6001600160a01b038316610d8a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161049c565b6001600160a01b038216610deb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161049c565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610eaf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161049c565b6001600160a01b038216610f115760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161049c565b5f8111610f725760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161049c565b6001600160a01b0383165f9081526003602052604081205460ff16158015610fb257506001600160a01b0383165f9081526003602052604090205460ff16155b1561103657600f54600160a01b900460ff166110065760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161049c565b600c5460649060ff1661101b5760085461101f565b600a545b6110299084611a06565b6110339190611a97565b90505b6001600160a01b0384165f9081526003602052604090205460ff168061107357506001600160a01b0383165f9081526003602052604090205460ff165b1561107b57505f5b600f546001600160a01b0385811691161480156110a65750600e546001600160a01b03848116911614155b80156110ca57506001600160a01b0383165f9081526003602052604090205460ff16155b156111ac5760075482111561111d5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b604482015260640161049c565b6007548261113f856001600160a01b03165f9081526001602052604090205490565b6111499190611ab6565b11156111975760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161049c565b600d8054905f6111a683611ac9565b91905055505b600f546001600160a01b038581169116148015906111e257506001600160a01b0384165f9081526003602052604090205460ff16155b801561120657506001600160a01b0383165f9081526003602052604090205460ff16155b15611259576007548211156112595760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b604482015260640161049c565b600f546001600160a01b03848116911614801561127f57506001600160a01b0384163014155b80156112a357506001600160a01b0384165f9081526003602052604090205460ff16155b80156112c757506001600160a01b0383165f9081526003602052604090205460ff16155b156112fc57600c5460649060ff166112e1576009546112e5565b600b545b6112ef9084611a06565b6112f99190611a97565b90505b305f90815260016020526040902054600f54600160b01b900460ff161580156113335750600f546001600160a01b03868116911614155b80156113485750600f54600160a81b900460ff165b8015611355575060055481115b801561136357506001600d54115b15611397576113856113808461137b8460065461176a565b61176a565b6114d8565b4780156113955761139547611695565b505b6001600160a01b0385165f908152600160205260409020546113ba908490611a1d565b6001600160a01b0386165f908152600160205260409020556113dc8284611a1d565b6001600160a01b0385165f908152600160205260409020546113fe9190611ab6565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6114478587611a1d565b60405190815260200160405180910390a381156114d157305f90815260016020526040902054611478908390611ab6565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114c89086815260200190565b60405180910390a35b5050505050565b600f805460ff60b01b1916600160b01b179055806115385760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e2030000000604482015260640161049c565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061156b5761156b611ae1565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115e69190611af5565b816001815181106115f9576115f9611ae1565b6001600160a01b039283166020918202929092010152600e5461161f9130911684610d28565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac947906116579085905f90869030904290600401611b10565b5f604051808303815f87803b15801561166e575f80fd5b505af1158015611680573d5f803e3d5ffd5b5050600f805460ff60b01b1916905550505050565b5f81116116e45760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e2030000000604482015260640161049c565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156106d7573d5f803e3d5ffd5b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f818311611778578261177a565b815b9392505050565b5f6020808352835180828501525f5b818110156117ac57858101830151858201604001528201611790565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d25575f80fd5b5f80604083850312156117f1575f80fd5b82356117fc816117cc565b946020939093013593505050565b5f805f6060848603121561181c575f80fd5b8335611827816117cc565b92506020840135611837816117cc565b929592945050506040919091013590565b5f60208284031215611858575f80fd5b813561177a816117cc565b8015158114610d25575f80fd5b5f60208284031215611880575f80fd5b813561177a81611863565b5f806040838503121561189c575f80fd5b82356118a7816117cc565b915060208301356118b7816117cc565b809150509250929050565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561195257815f190482111561193857611938611904565b8085161561194557918102915b93841c939080029061191d565b509250929050565b5f826119685750600161055e565b8161197457505f61055e565b816001811461198a5760028114611994576119b0565b600191505061055e565b60ff8411156119a5576119a5611904565b50506001821b61055e565b5060208310610133831016604e8410600b84101617156119d3575081810a61055e565b6119dd8383611918565b805f19048211156119f0576119f0611904565b029392505050565b5f61177a60ff84168361195a565b808202811582820484141761055e5761055e611904565b8181038181111561055e5761055e611904565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611a75575f80fd5b5051919050565b5f60208284031215611a8c575f80fd5b815161177a81611863565b5f82611ab157634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561055e5761055e611904565b5f60018201611ada57611ada611904565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611b05575f80fd5b815161177a816117cc565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611b5e5784516001600160a01b031683529383019391830191600101611b39565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122094506a8144719d435b1c3c32822d08213d0bea80dfbf66e41fb57844315caff164736f6c63430008140033

Deployed Bytecode Sourcemap

2868:10163:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12654:374;;;;;;;;;;;;;:::i;:::-;;5922:83;;;;;;;;;;-1:-1:-1;5992:5:0;;;;;;;;;;;;-1:-1:-1;;;5992:5:0;;;;5922:83;;;;;;;:::i;:::-;;;;;;;;6854:161;;;;;;;;;;-1:-1:-1;6854:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6854:161:0;1023:187:1;6193:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;6193:95:0;1215:177:1;7021:410:0;;;;;;;;;;-1:-1:-1;7021:410:0;;;;;:::i;:::-;;:::i;6104:83::-;;;;;;;;;;-1:-1:-1;6104:83:0;;3273:1;2000:36:1;;1988:2;1973:18;6104:83:0;1858:184:1;10811:71:0;;;;;;;;;;;;;:::i;11585:330::-;;;;;;;;;;;;;:::i;6294:119::-;;;;;;;;;;-1:-1:-1;6294:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6387:18:0;6360:7;6387:18;;;:9;:18;;;;;;;6294:119;1955:148;;;;;;;;;;;;;:::i;11090:237::-;;;;;;;;;;-1:-1:-1;11090:237:0;;;;;:::i;:::-;;:::i;11333:246::-;;;;;;;;;;-1:-1:-1;11333:246:0;;;;;:::i;:::-;;:::i;3106:79::-;;;;;;;;;;;;3143:42;3106:79;;;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;3106:79:0;2299:203:1;12183:465:0;;;;;;;;;;-1:-1:-1;12183:465:0;;;;;:::i;:::-;;:::i;11921:210::-;;;;;;;;;;;;;:::i;3591:58::-;;;;;;;;;;;;;;;;1339:79;;;;;;;;;;-1:-1:-1;1377:7:0;1404:6;-1:-1:-1;;;;;1404:6:0;1339:79;;6011:87;;;;;;;;;;-1:-1:-1;6083:7:0;;;;;;;;;;;;-1:-1:-1;;;6083:7:0;;;;6011:87;;10887:70;;;;;;;;;;;;;:::i;10962:123::-;;;;;;;;;;-1:-1:-1;10962:123:0;;;;;:::i;:::-;;:::i;6532:167::-;;;;;;;;;;-1:-1:-1;6532:167:0;;;;;:::i;:::-;;:::i;6705:143::-;;;;;;;;;;-1:-1:-1;6705:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6813:18:0;;;6786:7;6813:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6705:143;1549:203;;;;;;;;;;-1:-1:-1;1549:203:0;;;;;:::i;:::-;;:::i;3979:31::-;;;;;;;;;;-1:-1:-1;3979:31:0;;;;-1:-1:-1;;;3979:31:0;;;;;;12654:374;12725:21;12765:22;12757:69;;;;-1:-1:-1;;;12757:69:0;;;;;;;:::i;:::-;;;;;;;;;12867:21;12845:18;:43;;12837:75;;;;-1:-1:-1;;;12837:75:0;;3874:2:1;12837:75:0;;;3856:21:1;3913:2;3893:18;;;3886:30;-1:-1:-1;;;3932:18:1;;;3925:49;3991:18;;12837:75:0;3672:343:1;12837:75:0;12939:15;;12923:62;;-1:-1:-1;;;;;12939:15:0;;;;12923:62;;;;;12966:18;;12939:15;12923:62;12939:15;12923:62;12966:18;12939:15;12923:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12999:21:0;;;;;;;12685:343;12654:374::o;6854:161::-;6929:4;6946:39;325:10;6969:7;6978:6;6946:8;:39::i;:::-;-1:-1:-1;7003:4:0;6854:161;;;;;:::o;6193:95::-;6246:7;3335:13;3273:1;3335:2;:13;:::i;:::-;3317:31;;:15;:31;:::i;:::-;6266:14;;6193:95;:::o;7021:410::-;-1:-1:-1;;;;;7163:19:0;;7119:4;7163:19;;;:11;:19;;;;;;;;325:10;7163:33;;;;;;;;7215:26;;;;7207:79;;;;-1:-1:-1;;;7207:79:0;;5910:2:1;7207:79:0;;;5892:21:1;5949:2;5929:18;;;5922:30;5988:34;5968:18;;;5961:62;-1:-1:-1;;;6039:18:1;;;6032:38;6087:19;;7207:79:0;5708:404:1;7207:79:0;7297:36;7307:6;7315:9;7326:6;7297:9;:36::i;:::-;7344:57;7353:6;325:10;7375:25;7394:6;7375:16;:25;:::i;:::-;7344:8;:57::i;:::-;-1:-1:-1;7419:4:0;;7021:410;-1:-1:-1;;;;7021:410:0:o;10811:71::-;1464:6;;-1:-1:-1;;;;;1464:6:0;325:10;1464:22;1456:67;;;;-1:-1:-1;;;1456:67:0;;;;;;;:::i;:::-;3335:13:::1;3273:1;3335:2;:13;:::i;:::-;3317:31;::::0;:15:::1;:31;:::i;:::-;10859:11;:21:::0;10811:71::o;11585:330::-;1464:6;;-1:-1:-1;;;;;1464:6:0;325:10;1464:22;1456:67;;;;-1:-1:-1;;;1456:67:0;;;;;;;:::i;:::-;11680:4:::1;11639:20;6387:18:::0;;;:9;:18;;;;;;11700:16;;11697:78:::1;;11733:30;11750:12;11733:16;:30::i;:::-;11806:21;11841:14:::0;;11838:70:::1;;11872:24;11885:10;11872:12;:24::i;:::-;11628:287;;11585:330::o:0;1955:148::-;1464:6;;-1:-1:-1;;;;;1464:6:0;325:10;1464:22;1456:67;;;;-1:-1:-1;;;1456:67:0;;;;;;;:::i;:::-;2062:1:::1;2046:6:::0;;2025:40:::1;::::0;-1:-1:-1;;;;;2046:6:0;;::::1;::::0;2025:40:::1;::::0;2062:1;;2025:40:::1;2093:1;2076:19:::0;;-1:-1:-1;;;;;;2076:19:0::1;::::0;;1955:148::o;11090:237::-;1464:6;;-1:-1:-1;;;;;1464:6:0;325:10;1464:22;1456:67;;;;-1:-1:-1;;;1456:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11168:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;::::1;;:35;;:27:::0;:35;11160:74:::1;;;::::0;-1:-1:-1;;;11160:74:0;;6813:2:1;11160:74:0::1;::::0;::::1;6795:21:1::0;6852:2;6832:18;;;6825:30;6891:29;6871:18;;;6864:57;6938:18;;11160:74:0::1;6611:351:1::0;11160:74:0::1;-1:-1:-1::0;;;;;11244:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;:34;;-1:-1:-1;;11244:34:0::1;11274:4;11244:34;::::0;;11290:30;::::1;::::0;11244:27;11290:30:::1;11090:237:::0;:::o;11333:246::-;1464:6;;-1:-1:-1;;;;;1464:6:0;325:10;1464:22;1456:67;;;;-1:-1:-1;;;1456:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11414:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;::::1;;:36;;::::0;;11406:76:::1;;;::::0;-1:-1:-1;;;11406:76:0;;7169:2:1;11406:76:0::1;::::0;::::1;7151:21:1::0;7208:2;7188:18;;;7181:30;7247:29;7227:18;;;7220:57;7294:18;;11406:76:0::1;6967:351:1::0;11406:76:0::1;-1:-1:-1::0;;;;;11493:27:0;::::1;11523:5;11493:27:::0;;;:18:::1;:27;::::0;;;;;:35;;-1:-1:-1;;11493:35:0::1;::::0;;11541:30;::::1;::::0;11523:5;11541:30:::1;11333:246:::0;:::o;12183:465::-;1464:6;;-1:-1:-1;;;;;1464:6:0;325:10;1464:22;1456:67;;;;-1:-1:-1;;;1456:67:0;;;;;;;:::i;:::-;12302:4:::1;-1:-1:-1::0;;;;;12280:27:0;::::1;::::0;12272:94:::1;;;::::0;-1:-1:-1;;;12272:94:0;;7525:2:1;12272:94:0::1;::::0;::::1;7507:21:1::0;7564:2;7544:18;;;7537:30;7603:34;7583:18;;;7576:62;-1:-1:-1;;;7654:18:1;;;7647:52;7716:19;;12272:94:0::1;7323:418:1::0;12272:94:0::1;12395:1;12385:7;:11;12377:58;;;;-1:-1:-1::0;;;12377:58:0::1;;;;;;;:::i;:::-;12465:43;::::0;-1:-1:-1;;;12465:43:0;;12502:4:::1;12465:43;::::0;::::1;2445:51:1::0;-1:-1:-1;;;;;12465:28:0;::::1;::::0;::::1;::::0;2418:18:1;;12465:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12454:7;:54;;12446:86;;;::::0;-1:-1:-1;;;12446:86:0;;3874:2:1;12446:86:0::1;::::0;::::1;3856:21:1::0;3913:2;3893:18;;;3886:30;-1:-1:-1;;;3932:18:1;;;3925:49;3991:18;;12446:86:0::1;3672:343:1::0;12446:86:0::1;12571:15;::::0;;12543:53:::1;::::0;-1:-1:-1;;;12543:53:0;;-1:-1:-1;;;;;12571:15:0;;::::1;12543:53:::0;;::::1;8117:51:1::0;;;;8184:18;;;8177:34;;;12543:27:0;::::1;::::0;::::1;::::0;8090:18:1;;12543:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12610:29:0::1;::::0;12631:7;;12610:29:::1;::::0;;;::::1;12183:465:::0;;:::o;11921:210::-;1464:6;;-1:-1:-1;;;;;1464:6:0;325:10;1464:22;1456:67;;;;-1:-1:-1;;;1456:67:0;;;;;;;:::i;:::-;11987:11:::1;::::0;-1:-1:-1;;;11987:11:0;::::1;;;11986:12;11978:47;;;::::0;-1:-1:-1;;;11978:47:0;;8674:2:1;11978:47:0::1;::::0;::::1;8656:21:1::0;8713:2;8693:18;;;8686:30;8752:25;8732:18;;;8725:53;8795:18;;11978:47:0::1;8472:347:1::0;11978:47:0::1;12036:15;:22:::0;;-1:-1:-1;;;;12070:18:0;-1:-1:-1;;;12070:18:0;;;12103:20:::1;::::0;::::1;::::0;-1:-1:-1;;12103:20:0::1;11921:210::o:0;10887:70::-;1464:6;;-1:-1:-1;;;;;1464:6:0;325:10;1464:22;1456:67;;;;-1:-1:-1;;;1456:67:0;;;;;;;:::i;:::-;10933:15:::1;:22:::0;;-1:-1:-1;;10933:22:0::1;10951:4;10933:22;::::0;;10887:70::o;10962:123::-;1464:6;;-1:-1:-1;;;;;1464:6:0;325:10;1464:22;1456:67;;;;-1:-1:-1;;;1456:67:0;;;;;;;:::i;:::-;11025:15:::1;:23:::0;;-1:-1:-1;;;;11025:23:0::1;-1:-1:-1::0;;;11025:23:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;11054:29:::1;::::0;::::1;::::0;-1:-1:-1;;11054:29:0::1;10962:123:::0;:::o;6532:167::-;6610:4;6627:42;325:10;6651:9;6662:6;6627:9;:42::i;1549:203::-;1464:6;;-1:-1:-1;;;;;1464:6:0;325:10;1464:22;1456:67;;;;-1:-1:-1;;;1456:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1640:22:0;::::1;1632:73;;;::::0;-1:-1:-1;;;1632:73:0;;9026:2:1;1632:73:0::1;::::0;::::1;9008:21:1::0;9065:2;9045:18;;;9038:30;9104:34;9084:18;;;9077:62;-1:-1:-1;;;9155:18:1;;;9148:36;9201:19;;1632:73:0::1;8824:402:1::0;1632:73:0::1;1716:28;1735:8;1716:18;:28::i;:::-;1549:203:::0;:::o;7437:335::-;-1:-1:-1;;;;;7530:19:0;;7522:68;;;;-1:-1:-1;;;7522:68:0;;9433:2:1;7522:68:0;;;9415:21:1;9472:2;9452:18;;;9445:30;9511:34;9491:18;;;9484:62;-1:-1:-1;;;9562:18:1;;;9555:34;9606:19;;7522:68:0;9231:400:1;7522:68:0;-1:-1:-1;;;;;7609:21:0;;7601:68;;;;-1:-1:-1;;;7601:68:0;;9838:2:1;7601:68:0;;;9820:21:1;9877:2;9857:18;;;9850:30;9916:34;9896:18;;;9889:62;-1:-1:-1;;;9967:18:1;;;9960:32;10009:19;;7601:68:0;9636:398:1;7601:68:0;-1:-1:-1;;;;;7680:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7732:32;;1361:25:1;;;7732:32:0;;1334:18:1;7732:32:0;;;;;;;7437:335;;;:::o;7778:2305::-;-1:-1:-1;;;;;7866:18:0;;7858:68;;;;-1:-1:-1;;;7858:68:0;;10241:2:1;7858:68:0;;;10223:21:1;10280:2;10260:18;;;10253:30;10319:34;10299:18;;;10292:62;-1:-1:-1;;;10370:18:1;;;10363:35;10415:19;;7858:68:0;10039:401:1;7858:68:0;-1:-1:-1;;;;;7945:16:0;;7937:64;;;;-1:-1:-1;;;7937:64:0;;10647:2:1;7937:64:0;;;10629:21:1;10686:2;10666:18;;;10659:30;10725:34;10705:18;;;10698:62;-1:-1:-1;;;10776:18:1;;;10769:33;10819:19;;7937:64:0;10445:399:1;7937:64:0;8029:1;8020:6;:10;8012:64;;;;-1:-1:-1;;;8012:64:0;;11051:2:1;8012:64:0;;;11033:21:1;11090:2;11070:18;;;11063:30;11129:34;11109:18;;;11102:62;-1:-1:-1;;;11180:18:1;;;11173:39;11229:19;;8012:64:0;10849:405:1;8012:64:0;-1:-1:-1;;;;;8122:24:0;;8087:15;8122:24;;;:18;:24;;;;;;;;8121:25;:52;;;;-1:-1:-1;;;;;;8151:22:0;;;;;;:18;:22;;;;;;;;8150:23;8121:52;8117:225;;;8198:11;;-1:-1:-1;;;8198:11:0;;;;8190:43;;;;-1:-1:-1;;;8190:43:0;;11461:2:1;8190:43:0;;;11443:21:1;11500:2;11480:18;;;11473:30;-1:-1:-1;;;11519:18:1;;;11512:49;11578:18;;8190:43:0;11259:343:1;8190:43:0;8279:15;;8326:3;;8279:15;;8278:43;;8308:13;;8278:43;;;8297:8;;8278:43;8268:54;;:6;:54;:::i;:::-;:62;;;;:::i;:::-;8258:72;;8117:225;-1:-1:-1;;;;;8367:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;8395:22:0;;;;;;:18;:22;;;;;;;;8367:50;8363:94;;;-1:-1:-1;8444:1:0;8363:94;8493:13;;-1:-1:-1;;;;;8485:21:0;;;8493:13;;8485:21;:55;;;;-1:-1:-1;8524:15:0;;-1:-1:-1;;;;;8510:30:0;;;8524:15;;8510:30;;8485:55;:82;;;;-1:-1:-1;;;;;;8545:22:0;;;;;;:18;:22;;;;;;;;8544:23;8485:82;8481:296;;;8603:11;;8593:6;:21;;8585:59;;;;-1:-1:-1;;;8585:59:0;;12031:2:1;8585:59:0;;;12013:21:1;12070:2;12050:18;;;12043:30;-1:-1:-1;;;12089:18:1;;;12082:55;12154:18;;8585:59:0;11829:349:1;8585:59:0;8694:11;;8684:6;8668:13;8678:2;-1:-1:-1;;;;;6387:18:0;6360:7;6387:18;;;:9;:18;;;;;;;6294:119;8668:13;:22;;;;:::i;:::-;:37;;8660:76;;;;-1:-1:-1;;;8660:76:0;;12515:2:1;8660:76:0;;;12497:21:1;12554:2;12534:18;;;12527:30;12593:28;12573:18;;;12566:56;12639:18;;8660:76:0;12313:350:1;8660:76:0;8753:8;:10;;;:8;:10;;;:::i;:::-;;;;;;8481:296;8812:13;;-1:-1:-1;;;;;8804:21:0;;;8812:13;;8804:21;;;;:50;;-1:-1:-1;;;;;;8830:24:0;;;;;;:18;:24;;;;;;;;8829:25;8804:50;:77;;;;-1:-1:-1;;;;;;8859:22:0;;;;;;:18;:22;;;;;;;;8858:23;8804:77;8800:172;;;8917:11;;8907:6;:21;;8899:59;;;;-1:-1:-1;;;8899:59:0;;12031:2:1;8899:59:0;;;12013:21:1;12070:2;12050:18;;;12043:30;-1:-1:-1;;;12089:18:1;;;12082:55;12154:18;;8899:59:0;11829:349:1;8899:59:0;9004:13;;-1:-1:-1;;;;;8998:19:0;;;9004:13;;8998:19;:44;;;;-1:-1:-1;;;;;;9021:21:0;;9037:4;9021:21;;8998:44;:73;;;;-1:-1:-1;;;;;;9047:24:0;;;;;;:18;:24;;;;;;;;9046:25;8998:73;:100;;;;-1:-1:-1;;;;;;9076:22:0;;;;;;:18;:22;;;;;;;;9075:23;8998:100;8994:240;;;9143:15;;9192:3;;9143:15;;9142:45;;9173:14;;9142:45;;;9161:9;;9142:45;9132:56;;:6;:56;:::i;:::-;:64;;;;:::i;:::-;9122:74;;8994:240;9308:4;9259:28;6387:18;;;:9;:18;;;;;;9334:6;;-1:-1:-1;;;9334:6:0;;;;9333:7;:32;;;;-1:-1:-1;9352:13:0;;-1:-1:-1;;;;;9344:21:0;;;9352:13;;9344:21;;9333:32;:51;;;;-1:-1:-1;9369:15:0;;-1:-1:-1;;;9369:15:0;;;;9333:51;:88;;;;;9411:10;;9388:20;:33;9333:88;:104;;;;;9436:1;9425:8;;:12;9333:104;9329:407;;;9458:71;9475:53;9479:6;9487:40;9491:20;9513:13;;9487:3;:40::i;:::-;9475:3;:53::i;:::-;9458:16;:71::i;:::-;9576:21;9619:22;;9616:105;;9666:35;9679:21;9666:12;:35::i;:::-;9439:297;9329:407;-1:-1:-1;;;;;9764:15:0;;;;;;:9;:15;;;;;;:24;;9782:6;;9764:24;:::i;:::-;-1:-1:-1;;;;;9746:15:0;;;;;;:9;:15;;;;;:42;9833:18;9843:7;9833:6;:18;:::i;:::-;-1:-1:-1;;;;;9816:13:0;;;;;;:9;:13;;;;;;:36;;;;:::i;:::-;-1:-1:-1;;;;;9800:13:0;;;;;;;:9;:13;;;;;:52;;;;9868:38;;;9887:18;9897:7;9887:6;:18;:::i;:::-;9868:38;;1361:25:1;;;1349:2;1334:18;9868:38:0;;;;;;;9921:11;;9918:158;;9991:4;9973:24;;;;:9;:24;;;;;;:36;;10001:7;;9973:36;:::i;:::-;9964:4;9946:24;;;;:9;:24;;;;;;;:63;;;;10027:37;;-1:-1:-1;;;;;10027:37:0;;;;;;;10056:7;1361:25:1;;1349:2;1334:18;;1215:177;10027:37:0;;;;;;;;9918:158;7847:2236;;7778:2305;;;:::o;10089:552::-;4522:6;:13;;-1:-1:-1;;;;4522:13:0;-1:-1:-1;;;4522:13:0;;;10175:15;10167:57:::1;;;::::0;-1:-1:-1;;;10167:57:0;;13010:2:1;10167:57:0::1;::::0;::::1;12992:21:1::0;13049:2;13029:18;;;13022:30;13088:31;13068:18;;;13061:59;13137:18;;10167:57:0::1;12808:353:1::0;10167:57:0::1;10259:16;::::0;;10273:1:::1;10259:16:::0;;;;;::::1;::::0;;10235:21:::1;::::0;10259:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10259:16:0::1;10235:40;;10304:4;10286;10291:1;10286:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10286:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10330:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10330:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10286:7;;10330:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10320:4;10325:1;10320:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10320:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10395:15:::1;::::0;10363:62:::1;::::0;10380:4:::1;::::0;10395:15:::1;10413:11:::0;10363:8:::1;:62::i;:::-;10436:15;::::0;:197:::1;::::0;-1:-1:-1;;;10436:197:0;;-1:-1:-1;;;;;10436:15:0;;::::1;::::0;:66:::1;::::0;:197:::1;::::0;10517:11;;10436:15:::1;::::0;10559:4;;10586::::1;::::0;10606:15:::1;::::0;10436:197:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4558:6:0;:14;;-1:-1:-1;;;;4558:14:0;;;-1:-1:-1;;;;10089:552:0:o;10647:159::-;10720:1;10711:6;:10;10703:52;;;;-1:-1:-1;;;10703:52:0;;13010:2:1;10703:52:0;;;12992:21:1;13049:2;13029:18;;;13022:30;13088:31;13068:18;;;13061:59;13137:18;;10703:52:0;12808:353:1;10703:52:0;10766:15;;:32;;-1:-1:-1;;;;;10766:15:0;;;;:32;;;;;10791:6;;10766:15;:32;:15;:32;10791:6;10766:15;:32;;;;;;;;;;;;;;;;;;;1758:191;1832:16;1851:6;;-1:-1:-1;;;;;1868:17:0;;;-1:-1:-1;;;;;;1868:17:0;;;;;;1901:40;;1851:6;;;;;;;1901:40;;1832:16;1901:40;1821:128;1758:191;:::o;6419:107::-;6476:7;6508:1;6504;:5;6503:15;;6517:1;6503:15;;;6513:1;6503:15;6496:22;6419:107;-1:-1:-1;;;6419:107:0: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:398::-;3471:2;3453:21;;;3510:2;3490:18;;;3483:30;3549:34;3544:2;3529:18;;3522:62;-1:-1:-1;;;3615:2:1;3600:18;;3593:32;3657:3;3642:19;;3269:398::o;4020:127::-;4081:10;4076:3;4072:20;4069:1;4062:31;4112:4;4109:1;4102:15;4136:4;4133:1;4126:15;4152:422;4241:1;4284:5;4241:1;4298:270;4319:7;4309:8;4306:21;4298:270;;;4378:4;4374:1;4370:6;4366:17;4360:4;4357:27;4354:53;;;4387:18;;:::i;:::-;4437:7;4427:8;4423:22;4420:55;;;4457:16;;;;4420:55;4536:22;;;;4496:15;;;;4298:270;;;4302:3;4152:422;;;;;:::o;4579:806::-;4628:5;4658:8;4648:80;;-1:-1:-1;4699:1:1;4713:5;;4648:80;4747:4;4737:76;;-1:-1:-1;4784:1:1;4798:5;;4737:76;4829:4;4847:1;4842:59;;;;4915:1;4910:130;;;;4822:218;;4842:59;4872:1;4863:10;;4886:5;;;4910:130;4947:3;4937:8;4934:17;4931:43;;;4954:18;;:::i;:::-;-1:-1:-1;;5010:1:1;4996:16;;5025:5;;4822:218;;5124:2;5114:8;5111:16;5105:3;5099:4;5096:13;5092:36;5086:2;5076:8;5073:16;5068:2;5062:4;5059:12;5055:35;5052:77;5049:159;;;-1:-1:-1;5161:19:1;;;5193:5;;5049:159;5240:34;5265:8;5259:4;5240:34;:::i;:::-;5310:6;5306:1;5302:6;5298:19;5289:7;5286:32;5283:58;;;5321:18;;:::i;:::-;5359:20;;4579:806;-1:-1:-1;;;4579:806:1:o;5390:140::-;5448:5;5477:47;5518:4;5508:8;5504:19;5498:4;5477:47;:::i;5535:168::-;5608:9;;;5639;;5656:15;;;5650:22;;5636:37;5626:71;;5677:18;;:::i;6117:128::-;6184:9;;;6205:11;;;6202:37;;;6219:18;;:::i;6250:356::-;6452:2;6434:21;;;6471:18;;;6464:30;6530:34;6525:2;6510:18;;6503:62;6597:2;6582:18;;6250:356::o;7746:184::-;7816:6;7869:2;7857:9;7848:7;7844:23;7840:32;7837:52;;;7885:1;7882;7875:12;7837:52;-1:-1:-1;7908:16:1;;7746:184;-1:-1:-1;7746:184:1:o;8222:245::-;8289:6;8342:2;8330:9;8321:7;8317:23;8313:32;8310:52;;;8358:1;8355;8348:12;8310:52;8390:9;8384:16;8409:28;8431:5;8409:28;:::i;11607:217::-;11647:1;11673;11663:132;;11717:10;11712:3;11708:20;11705:1;11698:31;11752:4;11749:1;11742:15;11780:4;11777:1;11770:15;11663:132;-1:-1:-1;11809:9:1;;11607:217::o;12183:125::-;12248:9;;;12269:10;;;12266:36;;;12282:18;;:::i;12668:135::-;12707:3;12728:17;;;12725:43;;12748:18;;:::i;:::-;-1:-1:-1;12795:1:1;12784:13;;12668:135::o;13298:127::-;13359:10;13354:3;13350:20;13347:1;13340:31;13390:4;13387:1;13380:15;13414:4;13411:1;13404:15;13430:251;13500:6;13553:2;13541:9;13532:7;13528:23;13524:32;13521:52;;;13569:1;13566;13559:12;13521:52;13601:9;13595:16;13620:31;13645:5;13620:31;:::i;13686:980::-;13948:4;13996:3;13985:9;13981:19;14027:6;14016:9;14009:25;14053:2;14091:6;14086:2;14075:9;14071:18;14064:34;14134:3;14129:2;14118:9;14114:18;14107:31;14158:6;14193;14187:13;14224:6;14216;14209:22;14262:3;14251:9;14247:19;14240:26;;14301:2;14293:6;14289:15;14275:29;;14322:1;14332:195;14346:6;14343:1;14340:13;14332:195;;;14411:13;;-1:-1:-1;;;;;14407:39:1;14395:52;;14502:15;;;;14467:12;;;;14443:1;14361:9;14332:195;;;-1:-1:-1;;;;;;;14583:32:1;;;;14578:2;14563:18;;14556:60;-1:-1:-1;;;14647:3:1;14632:19;14625:35;14544:3;13686:980;-1:-1:-1;;;13686:980:1:o

Swarm Source

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