ETH Price: $3,075.75 (+3.53%)
Gas: 9 Gwei

Token

UGLY PEPE (UGLYPEPE)
 

Overview

Max Total Supply

100,000,000,000 UGLYPEPE

Holders

29

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
913,853,917.613260978996657239 UGLYPEPE

Value
$0.00
0xacb5a473e40383297561b53b314402058a801360
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:
UGLYPEPE

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 2023-07-18
*/

// SPDX-License-Identifier: MIT
/** 

:::    :::  ::::::::  :::        :::   :::  :::::::::  :::::::::: :::::::::  :::::::::: 
:+:    :+: :+:    :+: :+:        :+:   :+:  :+:    :+: :+:        :+:    :+: :+:        
+:+    +:+ +:+        +:+         +:+ +:+   +:+    +:+ +:+        +:+    +:+ +:+        
+#+    +:+ :#:        +#+          +#++:    +#++:++#+  +#++:++#   +#++:++#+  +#++:++#   
+#+    +#+ +#+   +#+# +#+           +#+     +#+        +#+        +#+        +#+        
#+#    #+# #+#    #+# #+#           #+#     #+#        #+#        #+#        #+#        
 ########   ########  ##########    ###     ###        ########## ###        ########## 

https://t.me/UglyPepeCoin
https://twitter.com/UglyPepeEth
https://uglypepe.com/
**/


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

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

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

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

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

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

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

}

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

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

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

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

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

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view 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 UGLYPEPE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    
    address payable private _taxWallet;

    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=25;
    uint256 public  _finalBuyTax=1;
    uint256 public  _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=15;
    uint256 private _reduceSellTaxAt=15;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 100000000000 * 10**_decimals;
    string private constant _name = unicode"UGLY PEPE";
    string private constant _symbol = unicode"UGLYPEPE";
    uint256 public _maxTxAmount = 1000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 1000000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 1400000001 * 10**_decimals;
    uint256 public _maxTaxSwap= 1400000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

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

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        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 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) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        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 taxAmount=0;

        if (to != owner() &&
            to != _taxWallet &&
            to != address(this) &&
            to != uniswapV2Pair &&
            from != owner()){
            uint256 heldTokens = balanceOf(to);
            require((heldTokens + amount) <= _maxWalletSize,"You are trying to buy too many tokens. You have reached the limit for one wallet.");}


        if (from != owner() && to != owner()) {
            

            

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

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

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


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

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

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        
        emit MaxTxAmountUpdated(_tTotal);
    }

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


    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    function manualSend() external {
        require(_msgSender() == _taxWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    receive() external payable {}

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

    function manualSendTokens(address tokenAddress, uint256 amount) external {
        require(_msgSender()==_taxWallet);
        IERC20 token = IERC20(tokenAddress);
        uint256 contractBalance = token.balanceOf(address(this));
        require(contractBalance >= amount, "Insufficient token balance in the contract.");

        bool success = token.transfer(_taxWallet, amount);
        require(success, "Token transfer failed.");
    }


    function setMaxTxAndWallet(uint256 maxTXUpdate, uint256 maxWalletUpdate) external {
        require(maxTXUpdate > 0 && maxWalletUpdate > 0, "Amounts must be greater than 0");
        require(_msgSender()==_taxWallet);
        _maxTxAmount = maxTXUpdate;
        _maxWalletSize = maxWalletUpdate;
        emit MaxTxAmountUpdated(maxTXUpdate);
    }

    function adjustFinalFees(uint256 finalBuyTaxUpdate, uint256 finalSellTaxUpdate) external {
        require(finalBuyTaxUpdate >= 0 && finalSellTaxUpdate >= 0, "Amounts must be greater than or equal to 0");
        require(finalBuyTaxUpdate <= 2 && finalSellTaxUpdate <= 2, "Amounts must not be great than 2%");
        require(_msgSender()==_taxWallet);
        _finalBuyTax = finalBuyTaxUpdate;
        _finalSellTax = finalSellTaxUpdate;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_finalBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_finalSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"finalBuyTaxUpdate","type":"uint256"},{"internalType":"uint256","name":"finalSellTaxUpdate","type":"uint256"}],"name":"adjustFinalFees","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXUpdate","type":"uint256"},{"internalType":"uint256","name":"maxWalletUpdate","type":"uint256"}],"name":"setMaxTxAndWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526014600755601960085560016009556001600a55600f600b55600f600c556014600d555f600e556012600a6200003b919062000334565b6200004b90633b9aca006200034b565b600f556200005c6012600a62000334565b6200006c90633b9aca006200034b565b6010556200007d6012600a62000334565b6200008d906353724e016200034b565b6011556200009e6012600a62000334565b620000ae906353724e006200034b565b6012556014805461ffff60a81b19169055348015620000cb575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600680546001600160a01b031916331790556200012c6012600a62000334565b6200013d9064174876e8006200034b565b335f908152600160208190526040822092909255600390620001665f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600654909116835291208054909216179055620001c43390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001fd6012600a62000334565b6200020e9064174876e8006200034b565b60405190815260200160405180910390a362000365565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200027957815f19048211156200025d576200025d62000225565b808516156200026b57918102915b93841c93908002906200023e565b509250929050565b5f8262000291575060016200032e565b816200029f57505f6200032e565b8160018114620002b85760028114620002c357620002e3565b60019150506200032e565b60ff841115620002d757620002d762000225565b50506001821b6200032e565b5060208310610133831016604e8410600b841016171562000308575081810a6200032e565b62000314838362000239565b805f19048211156200032a576200032a62000225565b0290505b92915050565b5f6200034460ff84168362000281565b9392505050565b80820281158282048414176200032e576200032e62000225565b611bc680620003735f395ff3fe60806040526004361061014a575f3560e01c8063751039fc116100b3578063baeb7a7d1161006d578063baeb7a7d1461039c578063bf474bed146103b1578063c9567bf9146103c6578063dd62ed3e146103da578063f288fc8d1461041e578063f42938901461043d575f80fd5b8063751039fc146102e95780637d1db4a5146102fd5780638da5cb5b146103125780638f9a55c01461033857806395d89b411461034d578063a9059cbb1461037d575f80fd5b8063303e332211610104578063303e33221461023e578063313ce5671461025d5780633ef947211461027857806351bc3c851461028d57806370a08231146102a1578063715018a6146102d5575f80fd5b8063047190301461015557806306fdde0314610176578063095ea7b3146101b95780630faee56f146101e857806318160ddd1461020b57806323b872dd1461021f575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5061017461016f366004611799565b610451565b005b348015610181575f80fd5b5060408051808201909152600981526855474c59205045504560b81b60208201525b6040516101b091906117c3565b60405180910390f35b3480156101c4575f80fd5b506101d86101d3366004611799565b610609565b60405190151581526020016101b0565b3480156101f3575f80fd5b506101fd60125481565b6040519081526020016101b0565b348015610216575f80fd5b506101fd61061f565b34801561022a575f80fd5b506101d861023936600461180e565b610640565b348015610249575f80fd5b5061017461025836600461184c565b6106a7565b348015610268575f80fd5b50604051601281526020016101b0565b348015610283575f80fd5b506101fd600a5481565b348015610298575f80fd5b50610174610761565b3480156102ac575f80fd5b506101fd6102bb36600461186c565b6001600160a01b03165f9081526001602052604090205490565b3480156102e0575f80fd5b506101746107a1565b3480156102f4575f80fd5b50610174610812565b348015610308575f80fd5b506101fd600f5481565b34801561031d575f80fd5b505f546040516001600160a01b0390911681526020016101b0565b348015610343575f80fd5b506101fd60105481565b348015610358575f80fd5b5060408051808201909152600881526755474c595045504560c01b60208201526101a3565b348015610388575f80fd5b506101d8610397366004611799565b6108c6565b3480156103a7575f80fd5b506101fd60095481565b3480156103bc575f80fd5b506101fd60115481565b3480156103d1575f80fd5b506101746108d2565b3480156103e5575f80fd5b506101fd6103f4366004611887565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610429575f80fd5b5061017461043836600461184c565b610c7c565b348015610448575f80fd5b50610174610d0e565b6006546001600160a01b0316336001600160a01b031614610470575f80fd5b6040516370a0823160e01b815230600482015282905f906001600160a01b038316906370a0823190602401602060405180830381865afa1580156104b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104da91906118be565b9050828110156105455760405162461bcd60e51b815260206004820152602b60248201527f496e73756666696369656e7420746f6b656e2062616c616e636520696e20746860448201526a329031b7b73a3930b1ba1760a91b60648201526084015b60405180910390fd5b60065460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018590525f9184169063a9059cbb906044016020604051808303815f875af1158015610596573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ba91906118d5565b9050806106025760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b7103a3930b739b332b9103330b4b632b21760511b604482015260640161053c565b5050505050565b5f610615338484610d37565b5060015b92915050565b5f61062c6012600a6119e8565b61063b9064174876e8006119f6565b905090565b5f61064c848484610e5a565b61069d843361069885604051806060016040528060288152602001611b69602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906113fd565b610d37565b5060019392505050565b5f821180156106b557505f81115b6107015760405162461bcd60e51b815260206004820152601e60248201527f416d6f756e7473206d7573742062652067726561746572207468616e20300000604482015260640161053c565b6006546001600160a01b0316336001600160a01b031614610720575f80fd5b600f82905560108190556040518281527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a15050565b6006546001600160a01b0316336001600160a01b031614610780575f80fd5b305f90815260016020526040902054801561079e5761079e81611435565b50565b5f546001600160a01b031633146107ca5760405162461bcd60e51b815260040161053c90611a0d565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461083b5760405162461bcd60e51b815260040161053c90611a0d565b6108476012600a6119e8565b6108569064174876e8006119f6565b600f556108656012600a6119e8565b6108749064174876e8006119f6565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108a46012600a6119e8565b6108b39064174876e8006119f6565b60405190815260200160405180910390a1565b5f610615338484610e5a565b5f546001600160a01b031633146108fb5760405162461bcd60e51b815260040161053c90611a0d565b601454600160a01b900460ff16156109555760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161053c565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561099f9030906109906012600a6119e8565b6106989064174876e8006119f6565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a139190611a42565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a969190611a42565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610ae0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b049190611a42565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610b4b816001600160a01b03165f9081526001602052604090205490565b5f80610b5e5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610bc4573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610be99190611a5d565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610c3e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6291906118d5565b506014805462ff00ff60a01b19166201000160a01b179055565b60028211158015610c8e575060028111155b610ce45760405162461bcd60e51b815260206004820152602160248201527f416d6f756e7473206d757374206e6f74206265206772656174207468616e20326044820152602560f81b606482015260840161053c565b6006546001600160a01b0316336001600160a01b031614610d03575f80fd5b600991909155600a55565b6006546001600160a01b0316336001600160a01b031614610d2d575f80fd5b4761079e816115a5565b6001600160a01b038316610d995760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161053c565b6001600160a01b038216610dfa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161053c565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ebe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161053c565b6001600160a01b038216610f205760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161053c565b5f8111610f815760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161053c565b5f80546001600160a01b03848116911614801590610fad57506006546001600160a01b03848116911614155b8015610fc257506001600160a01b0383163014155b8015610fdc57506014546001600160a01b03848116911614155b8015610ff557505f546001600160a01b03858116911614155b156110af576001600160a01b0383165f9081526001602052604090205460105461101f8483611a88565b11156110ad5760405162461bcd60e51b815260206004820152605160248201527f596f752061726520747279696e6720746f2062757920746f6f206d616e79207460448201527f6f6b656e732e20596f752068617665207265616368656420746865206c696d696064820152703a103337b91037b732903bb0b63632ba1760791b608482015260a40161053c565b505b5f546001600160a01b038581169116148015906110d957505f546001600160a01b03848116911614155b156112c0576014546001600160a01b03858116911614801561110957506013546001600160a01b03848116911614155b801561112d57506001600160a01b0383165f9081526003602052604090205460ff16155b156111c757600f548211156111845760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161053c565b6111b060646111aa600b54600e541161119f576007546111a3565b6009545b85906115e0565b90611665565b600e80549192505f6111c183611a9b565b91905055505b6014546001600160a01b0384811691161480156111ed57506001600160a01b0384163014155b1561121a5761121760646111aa600c54600e541161120d576008546111a3565b600a5485906115e0565b90505b305f90815260016020526040902054601454600160a81b900460ff1615801561125057506014546001600160a01b038581169116145b80156112655750601454600160b01b900460ff165b8015611272575060115481115b80156112815750600d54600e54115b156112be576112a361129e84611299846012546116a6565b6116a6565b611435565b4766b1a2bc2ec500008111156112bc576112bc476115a5565b505b505b801561133857305f908152600160205260409020546112df90826116ba565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061132f9085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461135a9083611718565b6001600160a01b0385165f9081526001602052604090205561139d61137f8383611718565b6001600160a01b0385165f90815260016020526040902054906116ba565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6113e68585611718565b60405190815260200160405180910390a350505050565b5f81848411156114205760405162461bcd60e51b815260040161053c91906117c3565b505f61142c8486611ab3565b95945050505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061147b5761147b611ac6565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114f69190611a42565b8160018151811061150957611509611ac6565b6001600160a01b03928316602091820292909201015260135461152f9130911684610d37565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906115679085905f90869030904290600401611ada565b5f604051808303815f87803b15801561157e575f80fd5b505af1158015611590573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156115dc573d5f803e3d5ffd5b5050565b5f825f036115ef57505f610619565b5f6115fa83856119f6565b9050826116078583611b49565b1461165e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161053c565b9392505050565b5f61165e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611759565b5f8183116116b4578261165e565b50919050565b5f806116c68385611a88565b90508381101561165e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161053c565b5f61165e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113fd565b5f81836117795760405162461bcd60e51b815260040161053c91906117c3565b505f61142c8486611b49565b6001600160a01b038116811461079e575f80fd5b5f80604083850312156117aa575f80fd5b82356117b581611785565b946020939093013593505050565b5f6020808352835180828501525f5b818110156117ee578581018301518582016040015282016117d2565b505f604082860101526040601f19601f8301168501019250505092915050565b5f805f60608486031215611820575f80fd5b833561182b81611785565b9250602084013561183b81611785565b929592945050506040919091013590565b5f806040838503121561185d575f80fd5b50508035926020909101359150565b5f6020828403121561187c575f80fd5b813561165e81611785565b5f8060408385031215611898575f80fd5b82356118a381611785565b915060208301356118b381611785565b809150509250929050565b5f602082840312156118ce575f80fd5b5051919050565b5f602082840312156118e5575f80fd5b8151801515811461165e575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561194257815f1904821115611928576119286118f4565b8085161561193557918102915b93841c939080029061190d565b509250929050565b5f8261195857506001610619565b8161196457505f610619565b816001811461197a5760028114611984576119a0565b6001915050610619565b60ff841115611995576119956118f4565b50506001821b610619565b5060208310610133831016604e8410600b84101617156119c3575081810a610619565b6119cd8383611908565b805f19048211156119e0576119e06118f4565b029392505050565b5f61165e60ff84168361194a565b8082028115828204841417610619576106196118f4565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611a52575f80fd5b815161165e81611785565b5f805f60608486031215611a6f575f80fd5b8351925060208401519150604084015190509250925092565b80820180821115610619576106196118f4565b5f60018201611aac57611aac6118f4565b5060010190565b81810381811115610619576106196118f4565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611b285784516001600160a01b031683529383019391830191600101611b03565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b6357634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122011b9820b407372b5e72c4a3db1ce931571290549c2fc67515630059eaf80c60664736f6c63430008140033

Deployed Bytecode

0x60806040526004361061014a575f3560e01c8063751039fc116100b3578063baeb7a7d1161006d578063baeb7a7d1461039c578063bf474bed146103b1578063c9567bf9146103c6578063dd62ed3e146103da578063f288fc8d1461041e578063f42938901461043d575f80fd5b8063751039fc146102e95780637d1db4a5146102fd5780638da5cb5b146103125780638f9a55c01461033857806395d89b411461034d578063a9059cbb1461037d575f80fd5b8063303e332211610104578063303e33221461023e578063313ce5671461025d5780633ef947211461027857806351bc3c851461028d57806370a08231146102a1578063715018a6146102d5575f80fd5b8063047190301461015557806306fdde0314610176578063095ea7b3146101b95780630faee56f146101e857806318160ddd1461020b57806323b872dd1461021f575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5061017461016f366004611799565b610451565b005b348015610181575f80fd5b5060408051808201909152600981526855474c59205045504560b81b60208201525b6040516101b091906117c3565b60405180910390f35b3480156101c4575f80fd5b506101d86101d3366004611799565b610609565b60405190151581526020016101b0565b3480156101f3575f80fd5b506101fd60125481565b6040519081526020016101b0565b348015610216575f80fd5b506101fd61061f565b34801561022a575f80fd5b506101d861023936600461180e565b610640565b348015610249575f80fd5b5061017461025836600461184c565b6106a7565b348015610268575f80fd5b50604051601281526020016101b0565b348015610283575f80fd5b506101fd600a5481565b348015610298575f80fd5b50610174610761565b3480156102ac575f80fd5b506101fd6102bb36600461186c565b6001600160a01b03165f9081526001602052604090205490565b3480156102e0575f80fd5b506101746107a1565b3480156102f4575f80fd5b50610174610812565b348015610308575f80fd5b506101fd600f5481565b34801561031d575f80fd5b505f546040516001600160a01b0390911681526020016101b0565b348015610343575f80fd5b506101fd60105481565b348015610358575f80fd5b5060408051808201909152600881526755474c595045504560c01b60208201526101a3565b348015610388575f80fd5b506101d8610397366004611799565b6108c6565b3480156103a7575f80fd5b506101fd60095481565b3480156103bc575f80fd5b506101fd60115481565b3480156103d1575f80fd5b506101746108d2565b3480156103e5575f80fd5b506101fd6103f4366004611887565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610429575f80fd5b5061017461043836600461184c565b610c7c565b348015610448575f80fd5b50610174610d0e565b6006546001600160a01b0316336001600160a01b031614610470575f80fd5b6040516370a0823160e01b815230600482015282905f906001600160a01b038316906370a0823190602401602060405180830381865afa1580156104b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104da91906118be565b9050828110156105455760405162461bcd60e51b815260206004820152602b60248201527f496e73756666696369656e7420746f6b656e2062616c616e636520696e20746860448201526a329031b7b73a3930b1ba1760a91b60648201526084015b60405180910390fd5b60065460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018590525f9184169063a9059cbb906044016020604051808303815f875af1158015610596573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ba91906118d5565b9050806106025760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b7103a3930b739b332b9103330b4b632b21760511b604482015260640161053c565b5050505050565b5f610615338484610d37565b5060015b92915050565b5f61062c6012600a6119e8565b61063b9064174876e8006119f6565b905090565b5f61064c848484610e5a565b61069d843361069885604051806060016040528060288152602001611b69602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906113fd565b610d37565b5060019392505050565b5f821180156106b557505f81115b6107015760405162461bcd60e51b815260206004820152601e60248201527f416d6f756e7473206d7573742062652067726561746572207468616e20300000604482015260640161053c565b6006546001600160a01b0316336001600160a01b031614610720575f80fd5b600f82905560108190556040518281527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a15050565b6006546001600160a01b0316336001600160a01b031614610780575f80fd5b305f90815260016020526040902054801561079e5761079e81611435565b50565b5f546001600160a01b031633146107ca5760405162461bcd60e51b815260040161053c90611a0d565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461083b5760405162461bcd60e51b815260040161053c90611a0d565b6108476012600a6119e8565b6108569064174876e8006119f6565b600f556108656012600a6119e8565b6108749064174876e8006119f6565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108a46012600a6119e8565b6108b39064174876e8006119f6565b60405190815260200160405180910390a1565b5f610615338484610e5a565b5f546001600160a01b031633146108fb5760405162461bcd60e51b815260040161053c90611a0d565b601454600160a01b900460ff16156109555760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161053c565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561099f9030906109906012600a6119e8565b6106989064174876e8006119f6565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a139190611a42565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a969190611a42565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610ae0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b049190611a42565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610b4b816001600160a01b03165f9081526001602052604090205490565b5f80610b5e5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610bc4573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610be99190611a5d565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610c3e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6291906118d5565b506014805462ff00ff60a01b19166201000160a01b179055565b60028211158015610c8e575060028111155b610ce45760405162461bcd60e51b815260206004820152602160248201527f416d6f756e7473206d757374206e6f74206265206772656174207468616e20326044820152602560f81b606482015260840161053c565b6006546001600160a01b0316336001600160a01b031614610d03575f80fd5b600991909155600a55565b6006546001600160a01b0316336001600160a01b031614610d2d575f80fd5b4761079e816115a5565b6001600160a01b038316610d995760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161053c565b6001600160a01b038216610dfa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161053c565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ebe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161053c565b6001600160a01b038216610f205760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161053c565b5f8111610f815760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161053c565b5f80546001600160a01b03848116911614801590610fad57506006546001600160a01b03848116911614155b8015610fc257506001600160a01b0383163014155b8015610fdc57506014546001600160a01b03848116911614155b8015610ff557505f546001600160a01b03858116911614155b156110af576001600160a01b0383165f9081526001602052604090205460105461101f8483611a88565b11156110ad5760405162461bcd60e51b815260206004820152605160248201527f596f752061726520747279696e6720746f2062757920746f6f206d616e79207460448201527f6f6b656e732e20596f752068617665207265616368656420746865206c696d696064820152703a103337b91037b732903bb0b63632ba1760791b608482015260a40161053c565b505b5f546001600160a01b038581169116148015906110d957505f546001600160a01b03848116911614155b156112c0576014546001600160a01b03858116911614801561110957506013546001600160a01b03848116911614155b801561112d57506001600160a01b0383165f9081526003602052604090205460ff16155b156111c757600f548211156111845760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161053c565b6111b060646111aa600b54600e541161119f576007546111a3565b6009545b85906115e0565b90611665565b600e80549192505f6111c183611a9b565b91905055505b6014546001600160a01b0384811691161480156111ed57506001600160a01b0384163014155b1561121a5761121760646111aa600c54600e541161120d576008546111a3565b600a5485906115e0565b90505b305f90815260016020526040902054601454600160a81b900460ff1615801561125057506014546001600160a01b038581169116145b80156112655750601454600160b01b900460ff165b8015611272575060115481115b80156112815750600d54600e54115b156112be576112a361129e84611299846012546116a6565b6116a6565b611435565b4766b1a2bc2ec500008111156112bc576112bc476115a5565b505b505b801561133857305f908152600160205260409020546112df90826116ba565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061132f9085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461135a9083611718565b6001600160a01b0385165f9081526001602052604090205561139d61137f8383611718565b6001600160a01b0385165f90815260016020526040902054906116ba565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6113e68585611718565b60405190815260200160405180910390a350505050565b5f81848411156114205760405162461bcd60e51b815260040161053c91906117c3565b505f61142c8486611ab3565b95945050505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061147b5761147b611ac6565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114f69190611a42565b8160018151811061150957611509611ac6565b6001600160a01b03928316602091820292909201015260135461152f9130911684610d37565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906115679085905f90869030904290600401611ada565b5f604051808303815f87803b15801561157e575f80fd5b505af1158015611590573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156115dc573d5f803e3d5ffd5b5050565b5f825f036115ef57505f610619565b5f6115fa83856119f6565b9050826116078583611b49565b1461165e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161053c565b9392505050565b5f61165e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611759565b5f8183116116b4578261165e565b50919050565b5f806116c68385611a88565b90508381101561165e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161053c565b5f61165e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113fd565b5f81836117795760405162461bcd60e51b815260040161053c91906117c3565b505f61142c8486611b49565b6001600160a01b038116811461079e575f80fd5b5f80604083850312156117aa575f80fd5b82356117b581611785565b946020939093013593505050565b5f6020808352835180828501525f5b818110156117ee578581018301518582016040015282016117d2565b505f604082860101526040601f19601f8301168501019250505092915050565b5f805f60608486031215611820575f80fd5b833561182b81611785565b9250602084013561183b81611785565b929592945050506040919091013590565b5f806040838503121561185d575f80fd5b50508035926020909101359150565b5f6020828403121561187c575f80fd5b813561165e81611785565b5f8060408385031215611898575f80fd5b82356118a381611785565b915060208301356118b381611785565b809150509250929050565b5f602082840312156118ce575f80fd5b5051919050565b5f602082840312156118e5575f80fd5b8151801515811461165e575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561194257815f1904821115611928576119286118f4565b8085161561193557918102915b93841c939080029061190d565b509250929050565b5f8261195857506001610619565b8161196457505f610619565b816001811461197a5760028114611984576119a0565b6001915050610619565b60ff841115611995576119956118f4565b50506001821b610619565b5060208310610133831016604e8410600b84101617156119c3575081810a610619565b6119cd8383611908565b805f19048211156119e0576119e06118f4565b029392505050565b5f61165e60ff84168361194a565b8082028115828204841417610619576106196118f4565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611a52575f80fd5b815161165e81611785565b5f805f60608486031215611a6f575f80fd5b8351925060208401519150604084015190509250925092565b80820180821115610619576106196118f4565b5f60018201611aac57611aac6118f4565b5060010190565b81810381811115610619576106196118f4565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611b285784516001600160a01b031683529383019391830191600101611b03565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b6357634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122011b9820b407372b5e72c4a3db1ce931571290549c2fc67515630059eaf80c60664736f6c63430008140033

Deployed Bytecode Sourcemap

4295:9068:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12094:445;;;;;;;;;;-1:-1:-1;12094:445:0;;;;;:::i;:::-;;:::i;:::-;;6204:83;;;;;;;;;;-1:-1:-1;6274:5:0;;;;;;;;;;;;-1:-1:-1;;;6274:5:0;;;;6204:83;;;;;;;:::i;:::-;;;;;;;;7037:161;;;;;;;;;;-1:-1:-1;7037:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7037:161:0;1023:187:1;5477:54:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5477:54:0;1215:177:1;6481:95:0;;;;;;;;;;;;;:::i;7206:313::-;;;;;;;;;;-1:-1:-1;7206:313:0;;;;;:::i;:::-;;:::i;12549:353::-;;;;;;;;;;-1:-1:-1;12549:353:0;;;;;:::i;:::-;;:::i;6390:83::-;;;;;;;;;;-1:-1:-1;6390:83:0;;5088:2;2253:36:1;;2241:2;2226:18;6390:83:0;2111:184:1;4852:31:0;;;;;;;;;;;;;;;;11864:222;;;;;;;;;;;;;:::i;6584:119::-;;;;;;;;;;-1:-1:-1;6584:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6677:18:0;6650:7;6677:18;;;:9;:18;;;;;;;6584:119;3284:148;;;;;;;;;;;;;:::i;10672:169::-;;;;;;;;;;;;;:::i;5282:56::-;;;;;;;;;;;;;;;;3070:79;;;;;;;;;;-1:-1:-1;3108:7:0;3135:6;3070:79;;-1:-1:-1;;;;;3135:6:0;;;2698:51:1;;2686:2;2671:18;3070:79:0;2552:203:1;5345:58:0;;;;;;;;;;;;;;;;6295:87;;;;;;;;;;-1:-1:-1;6367:7:0;;;;;;;;;;;;-1:-1:-1;;;6367:7:0;;;;6295:87;;6711:167;;;;;;;;;;-1:-1:-1;6711:167:0;;;;;:::i;:::-;;:::i;4815:30::-;;;;;;;;;;;;;;;;5410:60;;;;;;;;;;;;;;;;10951:671;;;;;;;;;;;;;:::i;6886:143::-;;;;;;;;;;-1:-1:-1;6886:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6994:18:0;;;6967:7;6994:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6886:143;12910:450;;;;;;;;;;-1:-1:-1;12910:450:0;;;;;:::i;:::-;;:::i;11630:189::-;;;;;;;;;;;;;:::i;12094:445::-;12200:10;;-1:-1:-1;;;;;12200:10:0;905;-1:-1:-1;;;;;12186:24:0;;12178:33;;;;;;12294:30;;-1:-1:-1;;;12294:30:0;;12318:4;12294:30;;;2698:51:1;12244:12:0;;12222;;-1:-1:-1;;;;;12294:15:0;;;;;2671:18:1;;12294:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12268:56;;12362:6;12343:15;:25;;12335:81;;;;-1:-1:-1;;;12335:81:0;;3544:2:1;12335:81:0;;;3526:21:1;3583:2;3563:18;;;3556:30;3622:34;3602:18;;;3595:62;-1:-1:-1;;;3673:18:1;;;3666:41;3724:19;;12335:81:0;;;;;;;;;12459:10;;12444:34;;-1:-1:-1;;;12444:34:0;;-1:-1:-1;;;;;12459:10:0;;;12444:34;;;3936:51:1;4003:18;;;3996:34;;;12429:12:0;;12444:14;;;;;3909:18:1;;12444:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12429:49;;12497:7;12489:42;;;;-1:-1:-1;;;12489:42:0;;4525:2:1;12489:42:0;;;4507:21:1;4564:2;4544:18;;;4537:30;-1:-1:-1;;;4583:18:1;;;4576:52;4645:18;;12489:42:0;4323:346:1;12489:42:0;12167:372;;;12094:445;;:::o;7037:161::-;7112:4;7129:39;905:10;7152:7;7161:6;7129:8;:39::i;:::-;-1:-1:-1;7186:4:0;7037:161;;;;;:::o;6481:95::-;6534:7;5147:13;5088:2;5147;:13;:::i;:::-;5132:28;;:12;:28;:::i;:::-;6554:14;;6481:95;:::o;7206:313::-;7304:4;7321:36;7331:6;7339:9;7350:6;7321:9;:36::i;:::-;7368:121;7377:6;905:10;7399:89;7437:6;7399:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7399:19:0;;;;;;:11;:19;;;;;;;;905:10;7399:33;;;;;;;;;;:37;:89::i;:::-;7368:8;:121::i;:::-;-1:-1:-1;7507:4:0;7206:313;;;;;:::o;12549:353::-;12664:1;12650:11;:15;:38;;;;;12687:1;12669:15;:19;12650:38;12642:81;;;;-1:-1:-1;;;12642:81:0;;6564:2:1;12642:81:0;;;6546:21:1;6603:2;6583:18;;;6576:30;6642:32;6622:18;;;6615:60;6692:18;;12642:81:0;6362:354:1;12642:81:0;12756:10;;-1:-1:-1;;;;;12756:10:0;905;-1:-1:-1;;;;;12742:24:0;;12734:33;;;;;;12778:12;:26;;;12815:14;:32;;;12863:31;;1361:25:1;;;12863:31:0;;1349:2:1;1334:18;12863:31:0;;;;;;;12549:353;;:::o;11864:222::-;11928:10;;-1:-1:-1;;;;;11928:10:0;905;-1:-1:-1;;;;;11914:24:0;;11906:33;;;;;;11989:4;11950:20;6677:18;;;:9;:18;;;;;;12009:14;;12006:73;;12037:30;12054:12;12037:16;:30::i;:::-;11895:191;11864:222::o;3284:148::-;3197:6;;-1:-1:-1;;;;;3197:6:0;905:10;3197:22;3189:67;;;;-1:-1:-1;;;3189:67:0;;;;;;;:::i;:::-;3391:1:::1;3375:6:::0;;3354:40:::1;::::0;-1:-1:-1;;;;;3375:6:0;;::::1;::::0;3354:40:::1;::::0;3391:1;;3354:40:::1;3422:1;3405:19:::0;;-1:-1:-1;;;;;;3405:19:0::1;::::0;;3284:148::o;10672:169::-;3197:6;;-1:-1:-1;;;;;3197:6:0;905:10;3197:22;3189:67;;;;-1:-1:-1;;;3189:67:0;;;;;;;:::i;:::-;5147:13:::1;5088:2;5147;:13;:::i;:::-;5132:28;::::0;:12:::1;:28;:::i;:::-;10725:12;:22:::0;5147:13:::1;5088:2;5147;:13;:::i;:::-;5132:28;::::0;:12:::1;:28;:::i;:::-;10758:14;:22:::0;10806:27:::1;5147:13;5088:2;5147;:13;:::i;:::-;5132:28;::::0;:12:::1;:28;:::i;:::-;10806:27;::::0;1361:25:1;;;1349:2;1334:18;10806:27:0::1;;;;;;;10672:169::o:0;6711:167::-;6789:4;6806:42;905:10;6830:9;6841:6;6806:9;:42::i;10951:671::-;3197:6;;-1:-1:-1;;;;;3197:6:0;905:10;3197:22;3189:67;;;;-1:-1:-1;;;3189:67:0;;;;;;;:::i;:::-;11015:11:::1;::::0;-1:-1:-1;;;11015:11:0;::::1;;;11014:12;11006:47;;;::::0;-1:-1:-1;;;11006:47:0;;7284:2:1;11006:47:0::1;::::0;::::1;7266:21:1::0;7323:2;7303:18;;;7296:30;7362:25;7342:18;;;7335:53;7405:18;;11006:47:0::1;7082:347:1::0;11006:47:0::1;11064:15;:80:::0;;-1:-1:-1;;;;;;11064:80:0::1;11101:42;11064:80:::0;;::::1;::::0;;;11155:58:::1;::::0;11172:4:::1;::::0;5147:13:::1;5088:2;5147;:13;:::i;:::-;5132:28;::::0;:12:::1;:28;:::i;11155:58::-;11258:15;;;;;;;;;-1:-1:-1::0;;;;;11258:15:0::1;-1:-1:-1::0;;;;;11258:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11240:55:0::1;;11304:4;11311:15;;;;;;;;;-1:-1:-1::0;;;;;11311:15:0::1;-1:-1:-1::0;;;;;11311:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11240:94;::::0;-1:-1:-1;;;;;;11240:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7920:15:1;;;11240:94:0::1;::::0;::::1;7902:34:1::0;7972:15;;7952:18;;;7945:43;7837:18;;11240:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11224:13;:110:::0;;-1:-1:-1;;;;;11224:110:0;;::::1;-1:-1:-1::0;;;;;;11224:110:0;;::::1;;::::0;;11345:15:::1;::::0;::::1;:31;11384:21;11415:4;11421:24;11415:4:::0;-1:-1:-1;;;;;6677:18:0;6650:7;6677:18;;;:9;:18;;;;;;;6584:119;11421:24:::1;11446:1;11448::::0;11450:7:::1;3108::::0;3135:6;-1:-1:-1;;;;;3135:6:0;;3070:79;11450:7:::1;11345:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11345:129:0;;;-1:-1:-1;;;;;8358:15:1;;;11345:129:0::1;::::0;::::1;8340:34:1::0;8390:18;;;8383:34;;;;8433:18;;;8426:34;;;;8476:18;;;8469:34;8540:15;;;8519:19;;;8512:44;11458:15:0::1;8572:19:1::0;;;8565:35;8274:19;;11345:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11492:13:0::1;::::0;11523:15:::1;::::0;11485:71:::1;::::0;-1:-1:-1;;;11485:71:0;;-1:-1:-1;;;;;11523:15:0;;::::1;11485:71;::::0;::::1;3936:51:1::0;-1:-1:-1;;4003:18:1;;;3996:34;11492:13:0;::::1;::::0;-1:-1:-1;11485:29:0::1;::::0;3909:18:1;;11485:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11567:11:0::1;:18:::0;;-1:-1:-1;;;;11596:18:0;-1:-1:-1;;;11596:18:0;;;10951:671::o;12910:450::-;13154:1;13133:17;:22;;:49;;;;;13181:1;13159:18;:23;;13133:49;13125:95;;;;-1:-1:-1;;;13125:95:0;;9814:2:1;13125:95:0;;;9796:21:1;9853:2;9833:18;;;9826:30;9892:34;9872:18;;;9865:62;-1:-1:-1;;;9943:18:1;;;9936:31;9984:19;;13125:95:0;9612:397:1;13125:95:0;13253:10;;-1:-1:-1;;;;;13253:10:0;905;-1:-1:-1;;;;;13239:24:0;;13231:33;;;;;;13275:12;:32;;;;13318:13;:34;12910:450::o;11630:189::-;11696:10;;-1:-1:-1;;;;;11696:10:0;905;-1:-1:-1;;;;;11680:26:0;;11672:35;;;;;;11747:21;11779:32;11747:21;11779:12;:32::i;7527:335::-;-1:-1:-1;;;;;7620:19:0;;7612:68;;;;-1:-1:-1;;;7612:68:0;;10216:2:1;7612:68:0;;;10198:21:1;10255:2;10235:18;;;10228:30;10294:34;10274:18;;;10267:62;-1:-1:-1;;;10345:18:1;;;10338:34;10389:19;;7612:68:0;10014:400:1;7612:68:0;-1:-1:-1;;;;;7699:21:0;;7691:68;;;;-1:-1:-1;;;7691:68:0;;10621:2:1;7691:68:0;;;10603:21:1;10660:2;10640:18;;;10633:30;10699:34;10679:18;;;10672:62;-1:-1:-1;;;10750:18:1;;;10743:32;10792:19;;7691:68:0;10419:398:1;7691:68:0;-1:-1:-1;;;;;7770:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7822:32;;1361:25:1;;;7822:32:0;;1334:18:1;7822:32:0;;;;;;;7527:335;;;:::o;7870:2195::-;-1:-1:-1;;;;;7958:18:0;;7950:68;;;;-1:-1:-1;;;7950:68:0;;11024:2:1;7950:68:0;;;11006:21:1;11063:2;11043:18;;;11036:30;11102:34;11082:18;;;11075:62;-1:-1:-1;;;11153:18:1;;;11146:35;11198:19;;7950:68:0;10822:401:1;7950:68:0;-1:-1:-1;;;;;8037:16:0;;8029:64;;;;-1:-1:-1;;;8029:64:0;;11430:2:1;8029:64:0;;;11412:21:1;11469:2;11449:18;;;11442:30;11508:34;11488:18;;;11481:62;-1:-1:-1;;;11559:18:1;;;11552:33;11602:19;;8029:64:0;11228:399:1;8029:64:0;8121:1;8112:6;:10;8104:64;;;;-1:-1:-1;;;8104:64:0;;11834:2:1;8104:64:0;;;11816:21:1;11873:2;11853:18;;;11846:30;11912:34;11892:18;;;11885:62;-1:-1:-1;;;11963:18:1;;;11956:39;12012:19;;8104:64:0;11632:405:1;8104:64:0;8179:17;3135:6;;-1:-1:-1;;;;;8215:13:0;;;3135:6;;8215:13;;;;:46;;-1:-1:-1;8251:10:0;;-1:-1:-1;;;;;8245:16:0;;;8251:10;;8245:16;;8215:46;:82;;;;-1:-1:-1;;;;;;8278:19:0;;8292:4;8278:19;;8215:82;:118;;;;-1:-1:-1;8320:13:0;;-1:-1:-1;;;;;8314:19:0;;;8320:13;;8314:19;;8215:118;:150;;;;-1:-1:-1;3108:7:0;3135:6;-1:-1:-1;;;;;8350:15:0;;;3135:6;;8350:15;;8215:150;8211:353;;;-1:-1:-1;;;;;6677:18:0;;8381;6677;;;:9;:18;;;;;;8463:14;;8439:19;8452:6;6677:18;8439:19;:::i;:::-;8438:39;;8430:132;;;;-1:-1:-1;;;8430:132:0;;12374:2:1;8430:132:0;;;12356:21:1;12413:2;12393:18;;;12386:30;12452:34;12432:18;;;12425:62;12523:34;12503:18;;;12496:62;-1:-1:-1;;;12574:19:1;;;12567:48;12632:19;;8430:132:0;12172:485:1;8430:132:0;8366:198;8211:353;3108:7;3135:6;-1:-1:-1;;;;;8582:15:0;;;3135:6;;8582:15;;;;:32;;-1:-1:-1;3108:7:0;3135:6;-1:-1:-1;;;;;8601:13:0;;;3135:6;;8601:13;;8582:32;8578:1131;;;8675:13;;-1:-1:-1;;;;;8667:21:0;;;8675:13;;8667:21;:55;;;;-1:-1:-1;8706:15:0;;-1:-1:-1;;;;;8692:30:0;;;8706:15;;8692:30;;8667:55;:83;;;;-1:-1:-1;;;;;;8728:22:0;;;;;;:18;:22;;;;;;;;8726:24;8667:83;8663:322;;;8790:12;;8780:6;:22;;8772:60;;;;-1:-1:-1;;;8772:60:0;;12864:2:1;8772:60:0;;;12846:21:1;12903:2;12883:18;;;12876:30;12942:27;12922:18;;;12915:55;12987:18;;8772:60:0;12662:349:1;8772:60:0;8863:76;8935:3;8863:67;8885:15;;8875:9;;:25;8874:55;;8915:14;;8874:55;;;8902:12;;8874:55;8863:6;;:10;:67::i;:::-;:71;;:76::i;:::-;8958:9;:11;;8851:88;;-1:-1:-1;8958:9:0;:11;;;:::i;:::-;;;;;;8663:322;9010:13;;-1:-1:-1;;;;;9004:19:0;;;9010:13;;9004:19;:43;;;;-1:-1:-1;;;;;;9027:20:0;;9042:4;9027:20;;9004:43;9001:174;;;9080:79;9155:3;9080:70;9102:16;;9092:9;;:26;9091:58;;9134:15;;9091:58;;;9120:13;;9080:6;;:10;:70::i;:79::-;9068:91;;9001:174;9240:4;9191:28;6677:18;;;:9;:18;;;;;;9266:6;;-1:-1:-1;;;9266:6:0;;;;9265:7;:32;;;;-1:-1:-1;9284:13:0;;-1:-1:-1;;;;;9276:21:0;;;9284:13;;9276:21;9265:32;:47;;;;-1:-1:-1;9301:11:0;;-1:-1:-1;;;9301:11:0;;;;9265:47;:89;;;;;9337:17;;9316:20;:38;9265:89;:121;;;;;9368:18;;9358:9;;:28;9265:121;9261:437;;;9407:67;9424:49;9428:6;9435:37;9439:20;9460:11;;9435:3;:37::i;:::-;9424:3;:49::i;:::-;9407:16;:67::i;:::-;9522:21;9586:17;9565:38;;9562:121;;;9628:35;9641:21;9628:12;:35::i;:::-;9388:310;9261:437;8616:1093;8578:1131;9724:11;;9721:161;;9792:4;9774:24;;;;:9;:24;;;;;;:39;;9803:9;9774:28;:39::i;:::-;9767:4;9749:24;;;;:9;:24;;;;;;;:64;;;;9831:39;;-1:-1:-1;;;;;9831:39:0;;;;;;;9860:9;1361:25:1;;1349:2;1334:18;;1215:177;9831:39:0;;;;;;;;9721:161;-1:-1:-1;;;;;9908:15:0;;;;;;:9;:15;;;;;;:27;;9928:6;9908:19;:27::i;:::-;-1:-1:-1;;;;;9892:15:0;;;;;;:9;:15;;;;;:43;9960:40;9978:21;:6;9989:9;9978:10;:21::i;:::-;-1:-1:-1;;;;;9960:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9946:13:0;;;;;;;:9;:13;;;;;:54;;;;10016:41;;;10035:21;:6;10046:9;10035:10;:21::i;:::-;10016:41;;1361:25:1;;;1349:2;1334:18;10016:41:0;;;;;;;7939:2126;7870:2195;;;:::o;1962:190::-;2048:7;2084:12;2076:6;;;;2068:29;;;;-1:-1:-1;;;2068:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2108:9:0;2120:5;2124:1;2120;:5;:::i;:::-;2108:17;1962:190;-1:-1:-1;;;;;1962:190:0:o;10181:483::-;5813:6;:13;;-1:-1:-1;;;;5813:13:0;-1:-1:-1;;;5813:13:0;;;10283:16:::1;::::0;;10297:1:::1;10283:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10283:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10283:16:0::1;10259:40;;10328:4;10310;10315:1;10310:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10310:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10354:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10354:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10310:7;;10354:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10344:4;10349:1;10344:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10344:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10419:15:::1;::::0;10387:62:::1;::::0;10404:4:::1;::::0;10419:15:::1;10437:11:::0;10387:8:::1;:62::i;:::-;10460:15;::::0;:196:::1;::::0;-1:-1:-1;;;10460:196:0;;-1:-1:-1;;;;;10460:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10541:11;;10460:15:::1;::::0;10583:4;;10610::::1;::::0;10630:15:::1;::::0;10460:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5849:6:0;:14;;-1:-1:-1;;;;5849:14:0;;;-1:-1:-1;;;;10181:483:0:o;10849:92::-;10906:10;;:27;;-1:-1:-1;;;;;10906:10:0;;;;:27;;;;;10926:6;;10906:10;:27;:10;:27;10926:6;10906:10;:27;;;;;;;;;;;;;;;;;;;;;10849:92;:::o;2160:246::-;2218:7;2242:1;2247;2242:6;2238:47;;-1:-1:-1;2272:1:0;2265:8;;2238:47;2295:9;2307:5;2311:1;2307;:5;:::i;:::-;2295:17;-1:-1:-1;2340:1:0;2331:5;2335:1;2295:17;2331:5;:::i;:::-;:10;2323:56;;;;-1:-1:-1;;;2323:56:0;;14962:2:1;2323:56:0;;;14944:21:1;15001:2;14981:18;;;14974:30;15040:34;15020:18;;;15013:62;-1:-1:-1;;;15091:18:1;;;15084:31;15132:19;;2323:56:0;14760:397:1;2323:56:0;2397:1;2160:246;-1:-1:-1;;;2160:246:0:o;2414:132::-;2472:7;2499:39;2503:1;2506;2499:39;;;;;;;;;;;;;;;;;:3;:39::i;10075:98::-;10132:7;10159:1;10157;:3;10156:9;;10164:1;10156:9;;;-1:-1:-1;10162:1:0;10075:98;-1:-1:-1;10075:98:0:o;1631:179::-;1689:7;;1721:5;1725:1;1721;:5;:::i;:::-;1709:17;;1750:1;1745;:6;;1737:46;;;;-1:-1:-1;;;1737:46:0;;15364:2:1;1737:46:0;;;15346:21:1;15403:2;15383:18;;;15376:30;15442:29;15422:18;;;15415:57;15489:18;;1737:46:0;15162:351:1;1818:136:0;1876:7;1903:43;1907:1;1910;1903:43;;;;;;;;;;;;;;;;;:3;:43::i;2554:189::-;2640:7;2675:12;2668:5;2660:28;;;;-1:-1:-1;;;2660:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2699:9:0;2711:5;2715:1;2711;:5;:::i;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:315;218:6;226;279:2;267:9;258:7;254:23;250:32;247:52;;;295:1;292;285:12;247:52;334:9;321:23;353:31;378:5;353:31;:::i;:::-;403:5;455:2;440:18;;;;427:32;;-1:-1:-1;;;150:315:1:o;470:548::-;582:4;611:2;640;629:9;622:21;672:6;666:13;715:6;710:2;699:9;695:18;688:34;740:1;750:140;764:6;761:1;758:13;750:140;;;859:14;;;855:23;;849:30;825:17;;;844:2;821:26;814:66;779:10;;750:140;;;754:3;939:1;934:2;925:6;914:9;910:22;906:31;899:42;1009:2;1002;998:7;993:2;985:6;981:15;977:29;966:9;962:45;958:54;950:62;;;;470:548;;;;:::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;1858:248::-;1926:6;1934;1987:2;1975:9;1966:7;1962:23;1958:32;1955:52;;;2003:1;2000;1993:12;1955:52;-1:-1:-1;;2026:23:1;;;2096:2;2081:18;;;2068:32;;-1:-1:-1;1858:248:1:o;2300:247::-;2359:6;2412:2;2400:9;2391:7;2387:23;2383:32;2380:52;;;2428:1;2425;2418:12;2380:52;2467:9;2454:23;2486:31;2511:5;2486:31;:::i;2760:388::-;2828:6;2836;2889:2;2877:9;2868:7;2864:23;2860:32;2857:52;;;2905:1;2902;2895:12;2857:52;2944:9;2931:23;2963:31;2988:5;2963:31;:::i;:::-;3013:5;-1:-1:-1;3070:2:1;3055:18;;3042:32;3083:33;3042:32;3083:33;:::i;:::-;3135:7;3125:17;;;2760:388;;;;;:::o;3153:184::-;3223:6;3276:2;3264:9;3255:7;3251:23;3247:32;3244:52;;;3292:1;3289;3282:12;3244:52;-1:-1:-1;3315:16:1;;3153:184;-1:-1:-1;3153:184:1:o;4041:277::-;4108:6;4161:2;4149:9;4140:7;4136:23;4132:32;4129:52;;;4177:1;4174;4167:12;4129:52;4209:9;4203:16;4262:5;4255:13;4248:21;4241:5;4238:32;4228:60;;4284:1;4281;4274:12;4674:127;4735:10;4730:3;4726:20;4723:1;4716:31;4766:4;4763:1;4756:15;4790:4;4787:1;4780:15;4806:422;4895:1;4938:5;4895:1;4952:270;4973:7;4963:8;4960:21;4952:270;;;5032:4;5028:1;5024:6;5020:17;5014:4;5011:27;5008:53;;;5041:18;;:::i;:::-;5091:7;5081:8;5077:22;5074:55;;;5111:16;;;;5074:55;5190:22;;;;5150:15;;;;4952:270;;;4956:3;4806:422;;;;;:::o;5233:806::-;5282:5;5312:8;5302:80;;-1:-1:-1;5353:1:1;5367:5;;5302:80;5401:4;5391:76;;-1:-1:-1;5438:1:1;5452:5;;5391:76;5483:4;5501:1;5496:59;;;;5569:1;5564:130;;;;5476:218;;5496:59;5526:1;5517:10;;5540:5;;;5564:130;5601:3;5591:8;5588:17;5585:43;;;5608:18;;:::i;:::-;-1:-1:-1;;5664:1:1;5650:16;;5679:5;;5476:218;;5778:2;5768:8;5765:16;5759:3;5753:4;5750:13;5746:36;5740:2;5730:8;5727:16;5722:2;5716:4;5713:12;5709:35;5706:77;5703:159;;;-1:-1:-1;5815:19:1;;;5847:5;;5703:159;5894:34;5919:8;5913:4;5894:34;:::i;:::-;5964:6;5960:1;5956:6;5952:19;5943:7;5940:32;5937:58;;;5975:18;;:::i;:::-;6013:20;;5233:806;-1:-1:-1;;;5233:806:1:o;6044:140::-;6102:5;6131:47;6172:4;6162:8;6158:19;6152:4;6131:47;:::i;6189:168::-;6262:9;;;6293;;6310:15;;;6304:22;;6290:37;6280:71;;6331:18;;:::i;6721:356::-;6923:2;6905:21;;;6942:18;;;6935:30;7001:34;6996:2;6981:18;;6974:62;7068:2;7053:18;;6721:356::o;7434:251::-;7504:6;7557:2;7545:9;7536:7;7532:23;7528:32;7525:52;;;7573:1;7570;7563:12;7525:52;7605:9;7599:16;7624:31;7649:5;7624:31;:::i;8611:306::-;8699:6;8707;8715;8768:2;8756:9;8747:7;8743:23;8739:32;8736:52;;;8784:1;8781;8774:12;8736:52;8813:9;8807:16;8797:26;;8863:2;8852:9;8848:18;8842:25;8832:35;;8907:2;8896:9;8892:18;8886:25;8876:35;;8611:306;;;;;:::o;12042:125::-;12107:9;;;12128:10;;;12125:36;;;12141:18;;:::i;13016:135::-;13055:3;13076:17;;;13073:43;;13096:18;;:::i;:::-;-1:-1:-1;13143:1:1;13132:13;;13016:135::o;13156:128::-;13223:9;;;13244:11;;;13241:37;;;13258:18;;:::i;13421:127::-;13482:10;13477:3;13473:20;13470:1;13463:31;13513:4;13510:1;13503:15;13537:4;13534:1;13527:15;13553:980;13815:4;13863:3;13852:9;13848:19;13894:6;13883:9;13876:25;13920:2;13958:6;13953:2;13942:9;13938:18;13931:34;14001:3;13996:2;13985:9;13981:18;13974:31;14025:6;14060;14054:13;14091:6;14083;14076:22;14129:3;14118:9;14114:19;14107:26;;14168:2;14160:6;14156:15;14142:29;;14189:1;14199:195;14213:6;14210:1;14207:13;14199:195;;;14278:13;;-1:-1:-1;;;;;14274:39:1;14262:52;;14369:15;;;;14334:12;;;;14310:1;14228:9;14199:195;;;-1:-1:-1;;;;;;;14450:32:1;;;;14445:2;14430:18;;14423:60;-1:-1:-1;;;14514:3:1;14499:19;14492:35;14411:3;13553:980;-1:-1:-1;;;13553:980:1:o;14538:217::-;14578:1;14604;14594:132;;14648:10;14643:3;14639:20;14636:1;14629:31;14683:4;14680:1;14673:15;14711:4;14708:1;14701:15;14594:132;-1:-1:-1;14740:9:1;;14538:217::o

Swarm Source

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