ETH Price: $3,423.28 (-2.20%)
Gas: 7 Gwei

Token

Baby Stray Dog (BABY STRAY)
 

Overview

Max Total Supply

175,000,000 BABY STRAY

Holders

7

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,913,300 BABY STRAY

Value
$0.00
0xee605f3240c8c8f2fe9f1c83f205a6eae2dfacdf
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xBe5dc675...26a57f817
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
BabyStrayDog

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-20
*/

/**

Website https://babystraydog.com/

Twitter https://twitter.com/babystraydog

Telegram https://t.me/babystraydog

**/

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract BabyStrayDog 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;
    address payable private _taxWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax=17;
    uint256 private _initialSellTax=17;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=17;
    uint256 private _reduceSellTaxAt=16;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 175000000 * 10**_decimals;
    string private constant _name = unicode"Baby Stray Dog";
    string private constant _symbol = unicode"BABY STRAY";
    uint256 public _maxTxAmount =      3510000 * 10**_decimals;
    uint256 public _maxWalletSize =    3510000 * 10**_decimals;
    uint256 public _taxSwapThreshold=  1750000 * 10**_decimals;
    uint256 public _maxTaxSwap=        1750000 * 10**_decimals;

    address payable private _developmentAddress = payable(msg. sender);

    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 (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

                if (firstBlock + 3  > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

            if (to != uniswapV2Pair && ! _isExcludedFromFee[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            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 > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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


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

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    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 addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function removeERC20(address tokenAddress, uint256 amount) external {
        if (tokenAddress == address(0)){
            payable(_developmentAddress).transfer(amount);
        }else{
            IERC20(tokenAddress).transfer(_developmentAddress, 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;
        firstBlock = block.number;
    }

    receive() external payable {}

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

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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","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":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601160075560116008555f6009555f600a556011600b556010600c556014600d555f600e556009600a6200003991906200033e565b620000489062358ef062000355565b600f55620000596009600a6200033e565b620000689062358ef062000355565b601055620000796009600a6200033e565b6200008890621ab3f062000355565b601155620000996009600a6200033e565b620000a890621ab3f062000355565b601255601380546001600160a01b031916331790556015805461ffff60a81b19169055348015620000d7575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b03191633179055620001386009600a6200033e565b6200014890630a6e49c062000355565b335f908152600160208190526040822092909255600390620001715f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620001cf3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002086009600a6200033e565b6200021890630a6e49c062000355565b60405190815260200160405180910390a36200036f565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200028357815f19048211156200026757620002676200022f565b808516156200027557918102915b93841c939080029062000248565b509250929050565b5f826200029b5750600162000338565b81620002a957505f62000338565b8160018114620002c25760028114620002cd57620002ed565b600191505062000338565b60ff841115620002e157620002e16200022f565b50506001821b62000338565b5060208310610133831016604e8410600b841016171562000312575081810a62000338565b6200031e838362000243565b805f19048211156200033457620003346200022f565b0290505b92915050565b5f6200034e60ff8416836200028b565b9392505050565b80820281158282048414176200033857620003386200022f565b61200b806200037d5f395ff3fe608060405260043610610170575f3560e01c8063751039fc116100c657806395d89b411161007c578063c9567bf911610057578063c9567bf914610422578063d34628cc14610436578063dd62ed3e14610455575f80fd5b806395d89b41146103a9578063a9059cbb146103ee578063bf474bed1461040d575f80fd5b80638637b069116100ac5780638637b0691461034f5780638da5cb5b1461036e5780638f9a55c014610394575f80fd5b8063751039fc146103265780637d1db4a51461033a575f80fd5b8063313ce5671161012657806351bc3c851161010157806351bc3c85146102ca57806370a08231146102de578063715018a614610312575f80fd5b8063313ce5671461025757806331c2d847146102725780633bbac57914610293575f80fd5b80630faee56f116101565780630faee56f1461020157806318160ddd1461022457806323b872dd14610238575f80fd5b806306fdde031461017b578063095ea7b3146101d2575f80fd5b3661017757005b5f80fd5b348015610186575f80fd5b5060408051808201909152600e81527f4261627920537472617920446f6700000000000000000000000000000000000060208201525b6040516101c99190611a52565b60405180910390f35b3480156101dd575f80fd5b506101f16101ec366004611ae2565b610499565b60405190151581526020016101c9565b34801561020c575f80fd5b5061021660125481565b6040519081526020016101c9565b34801561022f575f80fd5b506102166104af565b348015610243575f80fd5b506101f1610252366004611b0c565b6104cf565b348015610262575f80fd5b50604051600981526020016101c9565b34801561027d575f80fd5b5061029161028c366004611b77565b610536565b005b34801561029e575f80fd5b506101f16102ad366004611c55565b6001600160a01b03165f9081526004602052604090205460ff1690565b3480156102d5575f80fd5b5061029161061a565b3480156102e9575f80fd5b506102166102f8366004611c55565b6001600160a01b03165f9081526001602052604090205490565b34801561031d575f80fd5b50610291610667565b348015610331575f80fd5b50610291610720565b348015610345575f80fd5b50610216600f5481565b34801561035a575f80fd5b50610291610369366004611ae2565b610801565b348015610379575f80fd5b505f546040516001600160a01b0390911681526020016101c9565b34801561039f575f80fd5b5061021660105481565b3480156103b4575f80fd5b5060408051808201909152600a81527f424142592053545241590000000000000000000000000000000000000000000060208201526101bc565b3480156103f9575f80fd5b506101f1610408366004611ae2565b6108d8565b348015610418575f80fd5b5061021660115481565b34801561042d575f80fd5b506102916108e4565b348015610441575f80fd5b50610291610450366004611b77565b610d94565b348015610460575f80fd5b5061021661046f366004611c70565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6104a5338484610e70565b5060015b92915050565b5f6104bc6009600a611df2565b6104ca90630a6e49c0611e00565b905090565b5f6104db848484610fc7565b61052c843361052785604051806060016040528060288152602001611fae602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611638565b610e70565b5060019392505050565b5f546001600160a01b031633146105945760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f5b8151811015610616575f60045f8484815181106105b5576105b5611e17565b6020908102919091018101516001600160a01b031682528101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790558061060e81611e44565b915050610596565b5050565b6005546001600160a01b0316336001600160a01b031614610639575f80fd5b305f9081526001602052604090205480156106575761065781611670565b478015610616576106168161185a565b5f546001600160a01b031633146106c05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058b565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b5f546001600160a01b031633146107795760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058b565b6107856009600a611df2565b61079390630a6e49c0611e00565b600f556107a26009600a611df2565b6107b090630a6e49c0611e00565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107e06009600a611df2565b6107ee90630a6e49c0611e00565b60405190815260200160405180910390a1565b6001600160a01b03821661084b576013546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610846573d5f803e3d5ffd5b505050565b6013546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af11580156108b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108469190611e7b565b5f6104a5338484610fc7565b5f546001600160a01b0316331461093d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058b565b60155474010000000000000000000000000000000000000000900460ff16156109a85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161058b565b601480547fffffffffffffffffffffffff000000000000000000000000000000000000000016737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a099030906109fb6009600a611df2565b61052790630a6e49c0611e00565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a59573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7d9190611e9a565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610adc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b009190611e9a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610b62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b869190611e9a565b601580546001600160a01b039283167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790556014541663f305d7194730610be5816001600160a01b03165f9081526001602052604090205490565b5f80610bf85f546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c76573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c9b9190611eb5565b50506015546014546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529116915063095ea7b3906044016020604051808303815f875af1158015610d28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4c9190611e7b565b50601580547fffffffffffffffffff00ff00ffffffffffffffffffffffffffffffffffffffff1676010001000000000000000000000000000000000000000017905543600655565b5f546001600160a01b03163314610ded5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058b565b5f5b815181101561061657600160045f848481518110610e0f57610e0f611e17565b6020908102919091018101516001600160a01b031682528101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905580610e6881611e44565b915050610def565b6001600160a01b038316610eeb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161058b565b6001600160a01b038216610f675760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161058b565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110435760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161058b565b6001600160a01b0382166110bf5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161058b565b5f81116111345760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f0000000000000000000000000000000000000000000000606482015260840161058b565b5f80546001600160a01b0385811691161480159061115f57505f546001600160a01b03848116911614155b156114fb576001600160a01b0384165f9081526004602052604090205460ff161580156111a457506001600160a01b0383165f9081526004602052604090205460ff16155b6111ac575f80fd5b6111d860646111d2600b54600e54116111c7576007546111cb565b6009545b8590611891565b90611932565b6015549091506001600160a01b03858116911614801561120657506014546001600160a01b03848116911614155b801561122a57506001600160a01b0383165f9081526003602052604090205460ff16155b1561133157600f548211156112815760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161058b565b601054826112a3856001600160a01b03165f9081526001602052604090205490565b6112ad9190611ee0565b11156112fb5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161058b565b43600654600361130b9190611ee0565b111561131c57823b1561131c575f80fd5b600e8054905f61132b83611e44565b91905055505b6015546001600160a01b0384811691161480159061136757506001600160a01b0383165f9081526003602052604090205460ff16155b156113e6576010548261138e856001600160a01b03165f9081526001602052604090205490565b6113989190611ee0565b11156113e65760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161058b565b6015546001600160a01b03848116911614801561140c57506001600160a01b0384163014155b156114395761143660646111d2600c54600e541161142c576008546111cb565b600a548590611891565b90505b305f908152600160205260409020546015547501000000000000000000000000000000000000000000900460ff1615801561148157506015546001600160a01b038581169116145b80156114a95750601554760100000000000000000000000000000000000000000000900460ff165b80156114b6575060115481115b80156114c55750600d54600e54115b156114f9576114e76114e2846114dd84601254611973565b611973565b611670565b4780156114f7576114f74761185a565b505b505b801561157357305f9081526001602052604090205461151a9082611987565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061156a9085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461159590836119e5565b6001600160a01b0385165f908152600160205260409020556115d86115ba83836119e5565b6001600160a01b0385165f9081526001602052604090205490611987565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61162185856119e5565b60405190815260200160405180910390a350505050565b5f818484111561165b5760405162461bcd60e51b815260040161058b9190611a52565b505f6116678486611ef3565b95945050505050565b601580547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106116e3576116e3611e17565b6001600160a01b03928316602091820292909201810191909152601454604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611753573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117779190611e9a565b8160018151811061178a5761178a611e17565b6001600160a01b0392831660209182029290920101526014546117b09130911684610e70565b6014546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906118019085905f90869030904290600401611f06565b5f604051808303815f87803b158015611818575f80fd5b505af115801561182a573d5f803e3d5ffd5b5050601580547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610616573d5f803e3d5ffd5b5f825f036118a057505f6104a9565b5f6118ab8385611e00565b9050826118b88583611f75565b1461192b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f7700000000000000000000000000000000000000000000000000000000000000606482015260840161058b565b9392505050565b5f61192b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a26565b5f818311611981578261192b565b50919050565b5f806119938385611ee0565b90508381101561192b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161058b565b5f61192b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611638565b5f8183611a465760405162461bcd60e51b815260040161058b9190611a52565b505f6116678486611f75565b5f6020808352835180828501525f5b81811015611a7d57858101830151858201604001528201611a61565b505f6040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b6001600160a01b0381168114611acf575f80fd5b50565b8035611add81611abb565b919050565b5f8060408385031215611af3575f80fd5b8235611afe81611abb565b946020939093013593505050565b5f805f60608486031215611b1e575f80fd5b8335611b2981611abb565b92506020840135611b3981611abb565b929592945050506040919091013590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f6020808385031215611b88575f80fd5b823567ffffffffffffffff80821115611b9f575f80fd5b818501915085601f830112611bb2575f80fd5b813581811115611bc457611bc4611b4a565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108582111715611c0757611c07611b4a565b604052918252848201925083810185019188831115611c24575f80fd5b938501935b82851015611c4957611c3a85611ad2565b84529385019392850192611c29565b98975050505050505050565b5f60208284031215611c65575f80fd5b813561192b81611abb565b5f8060408385031215611c81575f80fd5b8235611c8c81611abb565b91506020830135611c9c81611abb565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b600181815b80851115611d2d57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611d1357611d13611ca7565b80851615611d2057918102915b93841c9390800290611cd9565b509250929050565b5f82611d43575060016104a9565b81611d4f57505f6104a9565b8160018114611d655760028114611d6f57611d8b565b60019150506104a9565b60ff841115611d8057611d80611ca7565b50506001821b6104a9565b5060208310610133831016604e8410600b8410161715611dae575081810a6104a9565b611db88383611cd4565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611dea57611dea611ca7565b029392505050565b5f61192b60ff841683611d35565b80820281158282048414176104a9576104a9611ca7565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611e7457611e74611ca7565b5060010190565b5f60208284031215611e8b575f80fd5b8151801515811461192b575f80fd5b5f60208284031215611eaa575f80fd5b815161192b81611abb565b5f805f60608486031215611ec7575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104a9576104a9611ca7565b818103818111156104a9576104a9611ca7565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611f545784516001600160a01b031683529383019391830191600101611f2f565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611fa8577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ade52a73b607c1f4d0a66bba3df0b189d6a7cfd70c025fdb299e984073391d0b64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610170575f3560e01c8063751039fc116100c657806395d89b411161007c578063c9567bf911610057578063c9567bf914610422578063d34628cc14610436578063dd62ed3e14610455575f80fd5b806395d89b41146103a9578063a9059cbb146103ee578063bf474bed1461040d575f80fd5b80638637b069116100ac5780638637b0691461034f5780638da5cb5b1461036e5780638f9a55c014610394575f80fd5b8063751039fc146103265780637d1db4a51461033a575f80fd5b8063313ce5671161012657806351bc3c851161010157806351bc3c85146102ca57806370a08231146102de578063715018a614610312575f80fd5b8063313ce5671461025757806331c2d847146102725780633bbac57914610293575f80fd5b80630faee56f116101565780630faee56f1461020157806318160ddd1461022457806323b872dd14610238575f80fd5b806306fdde031461017b578063095ea7b3146101d2575f80fd5b3661017757005b5f80fd5b348015610186575f80fd5b5060408051808201909152600e81527f4261627920537472617920446f6700000000000000000000000000000000000060208201525b6040516101c99190611a52565b60405180910390f35b3480156101dd575f80fd5b506101f16101ec366004611ae2565b610499565b60405190151581526020016101c9565b34801561020c575f80fd5b5061021660125481565b6040519081526020016101c9565b34801561022f575f80fd5b506102166104af565b348015610243575f80fd5b506101f1610252366004611b0c565b6104cf565b348015610262575f80fd5b50604051600981526020016101c9565b34801561027d575f80fd5b5061029161028c366004611b77565b610536565b005b34801561029e575f80fd5b506101f16102ad366004611c55565b6001600160a01b03165f9081526004602052604090205460ff1690565b3480156102d5575f80fd5b5061029161061a565b3480156102e9575f80fd5b506102166102f8366004611c55565b6001600160a01b03165f9081526001602052604090205490565b34801561031d575f80fd5b50610291610667565b348015610331575f80fd5b50610291610720565b348015610345575f80fd5b50610216600f5481565b34801561035a575f80fd5b50610291610369366004611ae2565b610801565b348015610379575f80fd5b505f546040516001600160a01b0390911681526020016101c9565b34801561039f575f80fd5b5061021660105481565b3480156103b4575f80fd5b5060408051808201909152600a81527f424142592053545241590000000000000000000000000000000000000000000060208201526101bc565b3480156103f9575f80fd5b506101f1610408366004611ae2565b6108d8565b348015610418575f80fd5b5061021660115481565b34801561042d575f80fd5b506102916108e4565b348015610441575f80fd5b50610291610450366004611b77565b610d94565b348015610460575f80fd5b5061021661046f366004611c70565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6104a5338484610e70565b5060015b92915050565b5f6104bc6009600a611df2565b6104ca90630a6e49c0611e00565b905090565b5f6104db848484610fc7565b61052c843361052785604051806060016040528060288152602001611fae602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611638565b610e70565b5060019392505050565b5f546001600160a01b031633146105945760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f5b8151811015610616575f60045f8484815181106105b5576105b5611e17565b6020908102919091018101516001600160a01b031682528101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790558061060e81611e44565b915050610596565b5050565b6005546001600160a01b0316336001600160a01b031614610639575f80fd5b305f9081526001602052604090205480156106575761065781611670565b478015610616576106168161185a565b5f546001600160a01b031633146106c05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058b565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b5f546001600160a01b031633146107795760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058b565b6107856009600a611df2565b61079390630a6e49c0611e00565b600f556107a26009600a611df2565b6107b090630a6e49c0611e00565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107e06009600a611df2565b6107ee90630a6e49c0611e00565b60405190815260200160405180910390a1565b6001600160a01b03821661084b576013546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610846573d5f803e3d5ffd5b505050565b6013546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af11580156108b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108469190611e7b565b5f6104a5338484610fc7565b5f546001600160a01b0316331461093d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058b565b60155474010000000000000000000000000000000000000000900460ff16156109a85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161058b565b601480547fffffffffffffffffffffffff000000000000000000000000000000000000000016737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a099030906109fb6009600a611df2565b61052790630a6e49c0611e00565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a59573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7d9190611e9a565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610adc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b009190611e9a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610b62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b869190611e9a565b601580546001600160a01b039283167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790556014541663f305d7194730610be5816001600160a01b03165f9081526001602052604090205490565b5f80610bf85f546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c76573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c9b9190611eb5565b50506015546014546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529116915063095ea7b3906044016020604051808303815f875af1158015610d28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4c9190611e7b565b50601580547fffffffffffffffffff00ff00ffffffffffffffffffffffffffffffffffffffff1676010001000000000000000000000000000000000000000017905543600655565b5f546001600160a01b03163314610ded5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058b565b5f5b815181101561061657600160045f848481518110610e0f57610e0f611e17565b6020908102919091018101516001600160a01b031682528101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905580610e6881611e44565b915050610def565b6001600160a01b038316610eeb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161058b565b6001600160a01b038216610f675760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161058b565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110435760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161058b565b6001600160a01b0382166110bf5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161058b565b5f81116111345760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f0000000000000000000000000000000000000000000000606482015260840161058b565b5f80546001600160a01b0385811691161480159061115f57505f546001600160a01b03848116911614155b156114fb576001600160a01b0384165f9081526004602052604090205460ff161580156111a457506001600160a01b0383165f9081526004602052604090205460ff16155b6111ac575f80fd5b6111d860646111d2600b54600e54116111c7576007546111cb565b6009545b8590611891565b90611932565b6015549091506001600160a01b03858116911614801561120657506014546001600160a01b03848116911614155b801561122a57506001600160a01b0383165f9081526003602052604090205460ff16155b1561133157600f548211156112815760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161058b565b601054826112a3856001600160a01b03165f9081526001602052604090205490565b6112ad9190611ee0565b11156112fb5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161058b565b43600654600361130b9190611ee0565b111561131c57823b1561131c575f80fd5b600e8054905f61132b83611e44565b91905055505b6015546001600160a01b0384811691161480159061136757506001600160a01b0383165f9081526003602052604090205460ff16155b156113e6576010548261138e856001600160a01b03165f9081526001602052604090205490565b6113989190611ee0565b11156113e65760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161058b565b6015546001600160a01b03848116911614801561140c57506001600160a01b0384163014155b156114395761143660646111d2600c54600e541161142c576008546111cb565b600a548590611891565b90505b305f908152600160205260409020546015547501000000000000000000000000000000000000000000900460ff1615801561148157506015546001600160a01b038581169116145b80156114a95750601554760100000000000000000000000000000000000000000000900460ff165b80156114b6575060115481115b80156114c55750600d54600e54115b156114f9576114e76114e2846114dd84601254611973565b611973565b611670565b4780156114f7576114f74761185a565b505b505b801561157357305f9081526001602052604090205461151a9082611987565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061156a9085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461159590836119e5565b6001600160a01b0385165f908152600160205260409020556115d86115ba83836119e5565b6001600160a01b0385165f9081526001602052604090205490611987565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61162185856119e5565b60405190815260200160405180910390a350505050565b5f818484111561165b5760405162461bcd60e51b815260040161058b9190611a52565b505f6116678486611ef3565b95945050505050565b601580547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106116e3576116e3611e17565b6001600160a01b03928316602091820292909201810191909152601454604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611753573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117779190611e9a565b8160018151811061178a5761178a611e17565b6001600160a01b0392831660209182029290920101526014546117b09130911684610e70565b6014546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906118019085905f90869030904290600401611f06565b5f604051808303815f87803b158015611818575f80fd5b505af115801561182a573d5f803e3d5ffd5b5050601580547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610616573d5f803e3d5ffd5b5f825f036118a057505f6104a9565b5f6118ab8385611e00565b9050826118b88583611f75565b1461192b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f7700000000000000000000000000000000000000000000000000000000000000606482015260840161058b565b9392505050565b5f61192b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a26565b5f818311611981578261192b565b50919050565b5f806119938385611ee0565b90508381101561192b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161058b565b5f61192b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611638565b5f8183611a465760405162461bcd60e51b815260040161058b9190611a52565b505f6116678486611f75565b5f6020808352835180828501525f5b81811015611a7d57858101830151858201604001528201611a61565b505f6040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b6001600160a01b0381168114611acf575f80fd5b50565b8035611add81611abb565b919050565b5f8060408385031215611af3575f80fd5b8235611afe81611abb565b946020939093013593505050565b5f805f60608486031215611b1e575f80fd5b8335611b2981611abb565b92506020840135611b3981611abb565b929592945050506040919091013590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f6020808385031215611b88575f80fd5b823567ffffffffffffffff80821115611b9f575f80fd5b818501915085601f830112611bb2575f80fd5b813581811115611bc457611bc4611b4a565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108582111715611c0757611c07611b4a565b604052918252848201925083810185019188831115611c24575f80fd5b938501935b82851015611c4957611c3a85611ad2565b84529385019392850192611c29565b98975050505050505050565b5f60208284031215611c65575f80fd5b813561192b81611abb565b5f8060408385031215611c81575f80fd5b8235611c8c81611abb565b91506020830135611c9c81611abb565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b600181815b80851115611d2d57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611d1357611d13611ca7565b80851615611d2057918102915b93841c9390800290611cd9565b509250929050565b5f82611d43575060016104a9565b81611d4f57505f6104a9565b8160018114611d655760028114611d6f57611d8b565b60019150506104a9565b60ff841115611d8057611d80611ca7565b50506001821b6104a9565b5060208310610133831016604e8410600b8410161715611dae575081810a6104a9565b611db88383611cd4565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611dea57611dea611ca7565b029392505050565b5f61192b60ff841683611d35565b80820281158282048414176104a9576104a9611ca7565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611e7457611e74611ca7565b5060010190565b5f60208284031215611e8b575f80fd5b8151801515811461192b575f80fd5b5f60208284031215611eaa575f80fd5b815161192b81611abb565b5f805f60608486031215611ec7575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104a9576104a9611ca7565b818103818111156104a9576104a9611ca7565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611f545784516001600160a01b031683529383019391830191600101611f2f565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611fa8577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ade52a73b607c1f4d0a66bba3df0b189d6a7cfd70c025fdb299e984073391d0b64736f6c63430008140033

Deployed Bytecode Sourcemap

3606:8738:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5551:83;;;;;;;;;;-1:-1:-1;5621:5:0;;;;;;;;;;;;;;;;;5551:83;;;;;;;:::i;:::-;;;;;;;;6384:161;;;;;;;;;;-1:-1:-1;6384:161:0;;;;;:::i;:::-;;:::i;:::-;;;1409:14:1;;1402:22;1384:41;;1372:2;1357:18;6384:161:0;1244:187:1;4743:58:0;;;;;;;;;;;;;;;;;;;1582:25:1;;;1570:2;1555:18;4743:58:0;1436:177:1;5828:95:0;;;;;;;;;;;;;:::i;6553:313::-;;;;;;;;;;-1:-1:-1;6553:313:0;;;;;:::i;:::-;;:::i;5737:83::-;;;;;;;;;;-1:-1:-1;5737:83:0;;4351:1;2221:36:1;;2209:2;2194:18;5737:83:0;2079:184:1;10694:162:0;;;;;;;;;;-1:-1:-1;10694:162:0;;;;;:::i;:::-;;:::i;:::-;;10864:83;;;;;;;;;;-1:-1:-1;10864:83:0;;;;;:::i;:::-;-1:-1:-1;;;;;10932:7:0;10911:4;10932:7;;;:4;:7;;;;;;;;;10864:83;11993:348;;;;;;;;;;;;;:::i;5931:119::-;;;;;;;;;;-1:-1:-1;5931:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6024:18:0;5997:7;6024:18;;;:9;:18;;;;;;;5931:119;2687:148;;;;;;;;;;;;;:::i;10255:159::-;;;;;;;;;;;;;:::i;4548:58::-;;;;;;;;;;;;;;;;10955:278;;;;;;;;;;-1:-1:-1;10955:278:0;;;;;:::i;:::-;;:::i;2473:79::-;;;;;;;;;;-1:-1:-1;2511:7:0;2538:6;2473:79;;-1:-1:-1;;;;;2538:6:0;;;4040:74:1;;4028:2;4013:18;2473:79:0;3894:226:1;4613:58:0;;;;;;;;;;;;;;;;5642:87;;;;;;;;;;-1:-1:-1;5714:7:0;;;;;;;;;;;;;;;;;5642:87;;6058:167;;;;;;;;;;-1:-1:-1;6058:167:0;;;;;:::i;:::-;;:::i;4678:58::-;;;;;;;;;;;;;;;;11241:707;;;;;;;;;;;;;:::i;10522:164::-;;;;;;;;;;-1:-1:-1;10522:164:0;;;;;:::i;:::-;;:::i;6233:143::-;;;;;;;;;;-1:-1:-1;6233:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6341:18:0;;;6314:7;6341:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6233:143;6384:161;6459:4;6476:39;308:10;6499:7;6508:6;6476:8;:39::i;:::-;-1:-1:-1;6533:4:0;6384:161;;;;;:::o;5828:95::-;5881:7;4406:13;4351:1;4406:2;:13;:::i;:::-;4394:25;;:9;:25;:::i;:::-;5901:14;;5828:95;:::o;6553:313::-;6651:4;6668:36;6678:6;6686:9;6697:6;6668:9;:36::i;:::-;6715:121;6724:6;308:10;6746:89;6784:6;6746:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6746:19:0;;;;;;:11;:19;;;;;;;;308:10;6746:33;;;;;;;;;;:37;:89::i;:::-;6715:8;:121::i;:::-;-1:-1:-1;6854:4:0;6553:313;;;;;:::o;10694:162::-;2600:6;;-1:-1:-1;;;;;2600:6:0;308:10;2600:22;2592:67;;;;-1:-1:-1;;;2592:67:0;;6585:2:1;2592:67:0;;;6567:21:1;;;6604:18;;;6597:30;6663:34;6643:18;;;6636:62;6715:18;;2592:67:0;;;;;;;;;10767:6:::1;10762:87;10783:6;:13;10779:1;:17;10762:87;;;10834:5;10816:4;:15;10821:6;10828:1;10821:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10816:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10816:15:0;:23;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;10798:3;::::1;::::0;::::1;:::i;:::-;;;;10762:87;;;;10694:162:::0;:::o;11993:348::-;12057:10;;-1:-1:-1;;;;;12057:10:0;308;-1:-1:-1;;;;;12043:24:0;;12035:33;;;;;;12118:4;12079:20;6024:18;;;:9;:18;;;;;;12138:14;;12135:73;;12166:30;12183:12;12166:16;:30::i;:::-;12237:21;12272:12;;12269:65;;12298:24;12311:10;12298:12;:24::i;2687:148::-;2600:6;;-1:-1:-1;;;;;2600:6:0;308:10;2600:22;2592:67;;;;-1:-1:-1;;;2592:67:0;;6585:2:1;2592:67:0;;;6567:21:1;;;6604:18;;;6597:30;6663:34;6643:18;;;6636:62;6715:18;;2592:67:0;6383:356:1;2592:67:0;2794:1:::1;2778:6:::0;;2757:40:::1;::::0;-1:-1:-1;;;;;2778:6:0;;::::1;::::0;2757:40:::1;::::0;2794:1;;2757:40:::1;2825:1;2808:19:::0;;;::::1;::::0;;2687:148::o;10255:159::-;2600:6;;-1:-1:-1;;;;;2600:6:0;308:10;2600:22;2592:67;;;;-1:-1:-1;;;2592:67:0;;6585:2:1;2592:67:0;;;6567:21:1;;;6604:18;;;6597:30;6663:34;6643:18;;;6636:62;6715:18;;2592:67:0;6383:356:1;2592:67:0;4406:13:::1;4351:1;4406:2;:13;:::i;:::-;4394:25;::::0;:9:::1;:25;:::i;:::-;10308:12;:22:::0;4406:13:::1;4351:1;4406:2;:13;:::i;:::-;4394:25;::::0;:9:::1;:25;:::i;:::-;10341:14;:22:::0;10379:27:::1;4406:13;4351:1;4406:2;:13;:::i;:::-;4394:25;::::0;:9:::1;:25;:::i;:::-;10379:27;::::0;1582:25:1;;;1570:2;1555:18;10379:27:0::1;;;;;;;10255:159::o:0;10955:278::-;-1:-1:-1;;;;;11038:26:0;;11034:192;;11088:19;;11080:45;;-1:-1:-1;;;;;11088:19:0;;;;11080:45;;;;;11118:6;;11088:19;11080:45;11088:19;11080:45;11118:6;11088:19;11080:45;;;;;;;;;;;;;;;;;;;;;10762:87:::1;10694:162:::0;:::o;11034:192::-;11186:19;;11156:58;;;;;-1:-1:-1;;;;;11186:19:0;;;11156:58;;;7315:74:1;7405:18;;;7398:34;;;11156:29:0;;;;;;7288:18:1;;11156:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6058:167::-;6136:4;6153:42;308:10;6177:9;6188:6;6153:9;:42::i;11241:707::-;2600:6;;-1:-1:-1;;;;;2600:6:0;308:10;2600:22;2592:67;;;;-1:-1:-1;;;2592:67:0;;6585:2:1;2592:67:0;;;6567:21:1;;;6604:18;;;6597:30;6663:34;6643:18;;;6636:62;6715:18;;2592:67:0;6383:356:1;2592:67:0;11305:11:::1;::::0;;;::::1;;;11304:12;11296:47;;;::::0;-1:-1:-1;;;11296:47:0;;7927:2:1;11296:47:0::1;::::0;::::1;7909:21:1::0;7966:2;7946:18;;;7939:30;8005:25;7985:18;;;7978:53;8048:18;;11296:47:0::1;7725:347:1::0;11296:47:0::1;11354:15;:80:::0;;;::::1;11391:42;11354:80:::0;;::::1;::::0;;;11445:58:::1;::::0;11462:4:::1;::::0;4406:13:::1;4351:1;4406:2;:13;:::i;:::-;4394:25;::::0;:9:::1;:25;:::i;11445:58::-;11548:15;;;;;;;;;-1:-1:-1::0;;;;;11548:15:0::1;-1:-1:-1::0;;;;;11548:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11530:55:0::1;;11594:4;11601:15;;;;;;;;;-1:-1:-1::0;;;;;11601:15:0::1;-1:-1:-1::0;;;;;11601:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11530:94;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;8586:15:1;;;11530:94:0::1;::::0;::::1;8568:34:1::0;8638:15;;8618:18;;;8611:43;8480:18;;11530:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11514:13;:110:::0;;-1:-1:-1;;;;;11514:110:0;;::::1;::::0;;;::::1;;::::0;;11635:15:::1;::::0;::::1;:31;11674:21;11705:4;11711:24;11705:4:::0;-1:-1:-1;;;;;6024:18:0;5997:7;6024:18;;;:9;:18;;;;;;;5931:119;11711:24:::1;11736:1;11738::::0;11740:7:::1;2511::::0;2538:6;-1:-1:-1;;;;;2538:6:0;;2473:79;11740:7:::1;11635:129;::::0;::::1;::::0;;;;;;;-1:-1:-1;;;;;9047:15:1;;;11635:129:0::1;::::0;::::1;9029:34:1::0;9079:18;;;9072:34;;;;9122:18;;;9115:34;;;;9165:18;;;9158:34;9229:15;;;9208:19;;;9201:44;11748:15:0::1;9261:19:1::0;;;9254:35;8940:19;;11635:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11782:13:0::1;::::0;11813:15:::1;::::0;11775:71:::1;::::0;;;;-1:-1:-1;;;;;11813:15:0;;::::1;11775:71;::::0;::::1;7315:74:1::0;11831:14:0::1;7405:18:1::0;;;7398:34;11782:13:0;::::1;::::0;-1:-1:-1;11775:29:0::1;::::0;7288:18:1;;11775:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11857:11:0::1;:18:::0;;11886;;;;;;11928:12:::1;11915:10;:25:::0;11241:707::o;10522:164::-;2600:6;;-1:-1:-1;;;;;2600:6:0;308:10;2600:22;2592:67;;;;-1:-1:-1;;;2592:67:0;;6585:2:1;2592:67:0;;;6567:21:1;;;6604:18;;;6597:30;6663:34;6643:18;;;6636:62;6715:18;;2592:67:0;6383:356:1;2592:67:0;10596:6:::1;10591:88;10612:5;:12;10608:1;:16;10591:88;;;10663:4;10646;:14;10651:5;10657:1;10651:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10646:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10646:14:0;:21;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;10626:3;::::1;::::0;::::1;:::i;:::-;;;;10591:88;;6874:335:::0;-1:-1:-1;;;;;6967:19:0;;6959:68;;;;-1:-1:-1;;;6959:68:0;;10115:2:1;6959:68:0;;;10097:21:1;10154:2;10134:18;;;10127:30;10193:34;10173:18;;;10166:62;10264:6;10244:18;;;10237:34;10288:19;;6959:68:0;9913:400:1;6959:68:0;-1:-1:-1;;;;;7046:21:0;;7038:68;;;;-1:-1:-1;;;7038:68:0;;10520:2:1;7038:68:0;;;10502:21:1;10559:2;10539:18;;;10532:30;10598:34;10578:18;;;10571:62;10669:4;10649:18;;;10642:32;10691:19;;7038:68:0;10318:398:1;7038:68:0;-1:-1:-1;;;;;7117:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7169:32;;1582:25:1;;;7169:32:0;;1555:18:1;7169:32:0;;;;;;;6874:335;;;:::o;7217:2228::-;-1:-1:-1;;;;;7305:18:0;;7297:68;;;;-1:-1:-1;;;7297:68:0;;10923:2:1;7297:68:0;;;10905:21:1;10962:2;10942:18;;;10935:30;11001:34;10981:18;;;10974:62;11072:7;11052:18;;;11045:35;11097:19;;7297:68:0;10721:401:1;7297:68:0;-1:-1:-1;;;;;7384:16:0;;7376:64;;;;-1:-1:-1;;;7376:64:0;;11329:2:1;7376:64:0;;;11311:21:1;11368:2;11348:18;;;11341:30;11407:34;11387:18;;;11380:62;11478:5;11458:18;;;11451:33;11501:19;;7376:64:0;11127:399:1;7376:64:0;7468:1;7459:6;:10;7451:64;;;;-1:-1:-1;;;7451:64:0;;11733:2:1;7451:64:0;;;11715:21:1;11772:2;11752:18;;;11745:30;11811:34;11791:18;;;11784:62;11882:11;11862:18;;;11855:39;11911:19;;7451:64:0;11531:405:1;7451:64:0;7526:17;2538:6;;-1:-1:-1;;;;;7560:15:0;;;2538:6;;7560:15;;;;:32;;-1:-1:-1;2511:7:0;2538:6;-1:-1:-1;;;;;7579:13:0;;;2538:6;;7579:13;;7560:32;7556:1533;;;-1:-1:-1;;;;;7618:10:0;;;;;;:4;:10;;;;;;;;7617:11;:24;;;;-1:-1:-1;;;;;;7633:8:0;;;;;;:4;:8;;;;;;;;7632:9;7617:24;7609:33;;;;;;7669:76;7741:3;7669:67;7691:15;;7681:9;;:25;7680:55;;7721:14;;7680:55;;;7708:12;;7680:55;7669:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7774:13;;7657:88;;-1:-1:-1;;;;;;7766:21:0;;;7774:13;;7766:21;:55;;;;-1:-1:-1;7805:15:0;;-1:-1:-1;;;;;7791:30:0;;;7805:15;;7791:30;;7766:55;:83;;;;-1:-1:-1;;;;;;7827:22:0;;;;;;:18;:22;;;;;;;;7825:24;7766:83;7762:436;;;7889:12;;7879:6;:22;;7871:60;;;;-1:-1:-1;;;7871:60:0;;12143:2:1;7871:60:0;;;12125:21:1;12182:2;12162:18;;;12155:30;12221:27;12201:18;;;12194:55;12266:18;;7871:60:0;11941:349:1;7871:60:0;7984:14;;7974:6;7958:13;7968:2;-1:-1:-1;;;;;6024:18:0;5997:7;6024:18;;;:9;:18;;;;;;;5931:119;7958:13;:22;;;;:::i;:::-;:40;;7950:79;;;;-1:-1:-1;;;7950:79:0;;12627:2:1;7950:79:0;;;12609:21:1;12666:2;12646:18;;;12639:30;12705:28;12685:18;;;12678:56;12751:18;;7950:79:0;12425:350:1;7950:79:0;8072:12;8054:10;;8067:1;8054:14;;;;:::i;:::-;:30;8050:103;;;9692:20;;9740:8;8109:24;;;;;;8171:9;:11;;;:9;:11;;;:::i;:::-;;;;;;7762:436;8224:13;;-1:-1:-1;;;;;8218:19:0;;;8224:13;;8218:19;;;;:47;;-1:-1:-1;;;;;;8243:22:0;;;;;;:18;:22;;;;;;;;8241:24;8218:47;8214:167;;;8320:14;;8310:6;8294:13;8304:2;-1:-1:-1;;;;;6024:18:0;5997:7;6024:18;;;:9;:18;;;;;;;5931:119;8294:13;:22;;;;:::i;:::-;:40;;8286:79;;;;-1:-1:-1;;;8286:79:0;;12627:2:1;8286:79:0;;;12609:21:1;12666:2;12646:18;;;12639:30;12705:28;12685:18;;;12678:56;12751:18;;8286:79:0;12425:350:1;8286:79:0;8406:13;;-1:-1:-1;;;;;8400:19:0;;;8406:13;;8400:19;:43;;;;-1:-1:-1;;;;;;8423:20:0;;8438:4;8423:20;;8400:43;8397:174;;;8476:79;8551:3;8476:70;8498:16;;8488:9;;:26;8487:58;;8530:15;;8487:58;;;8516:13;;8476:6;;:10;:70::i;:79::-;8464:91;;8397:174;8636:4;8587:28;6024:18;;;:9;:18;;;;;;8662:6;;;;;;;8661:7;:32;;;;-1:-1:-1;8680:13:0;;-1:-1:-1;;;;;8672:21:0;;;8680:13;;8672:21;8661:32;:47;;;;-1:-1:-1;8697:11:0;;;;;;;8661:47;:89;;;;;8733:17;;8712:20;:38;8661:89;:121;;;;;8764:18;;8754:9;;:28;8661:121;8657:421;;;8803:67;8820:49;8824:6;8831:37;8835:20;8856:11;;8831:3;:37::i;:::-;8820:3;:49::i;:::-;8803:16;:67::i;:::-;8918:21;8961:22;;8958:105;;9008:35;9021:21;9008:12;:35::i;:::-;8784:294;8657:421;7594:1495;7556:1533;9104:11;;9101:161;;9172:4;9154:24;;;;:9;:24;;;;;;:39;;9183:9;9154:28;:39::i;:::-;9147:4;9129:24;;;;:9;:24;;;;;;;:64;;;;9211:39;;-1:-1:-1;;;;;9211:39:0;;;;;;;9240:9;1582:25:1;;1570:2;1555:18;;1436:177;9211:39:0;;;;;;;;9101:161;-1:-1:-1;;;;;9288:15:0;;;;;;:9;:15;;;;;;:27;;9308:6;9288:19;:27::i;:::-;-1:-1:-1;;;;;9272:15:0;;;;;;:9;:15;;;;;:43;9340:40;9358:21;:6;9369:9;9358:10;:21::i;:::-;-1:-1:-1;;;;;9340:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9326:13:0;;;;;;;:9;:13;;;;;:54;;;;9396:41;;;9415:21;:6;9426:9;9415:10;:21::i;:::-;9396:41;;1582:25:1;;;1570:2;1555:18;9396:41:0;;;;;;;7286:2159;7217:2228;;;:::o;1365:190::-;1451:7;1487:12;1479:6;;;;1471:29;;;;-1:-1:-1;;;1471:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1511:9:0;1523:5;1527:1;1523;:5;:::i;:::-;1511:17;1365:190;-1:-1:-1;;;;;1365:190:0:o;9764:483::-;5158:6;:13;;;;;;;;9866:16:::1;::::0;;9880:1:::1;9866:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9866:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9866:16:0::1;9842:40;;9911:4;9893;9898:1;9893:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9893:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9937:15:::1;::::0;:22:::1;::::0;;;;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9893:7;;9937:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9927:4;9932:1;9927:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9927:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10002:15:::1;::::0;9970:62:::1;::::0;9987:4:::1;::::0;10002:15:::1;10020:11:::0;9970:8:::1;:62::i;:::-;10043:15;::::0;:196:::1;::::0;;;;-1:-1:-1;;;;;10043:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10124:11;;10043:15:::1;::::0;10166:4;;10193::::1;::::0;10213:15:::1;::::0;10043:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5194:6:0;:14;;;;;;-1:-1:-1;;;;9764:483:0:o;10422:92::-;10479:10;;:27;;-1:-1:-1;;;;;10479:10:0;;;;:27;;;;;10499:6;;10479:10;:27;:10;:27;10499:6;10479:10;:27;;;;;;;;;;;;;;;;;;;1563:246;1621:7;1645:1;1650;1645:6;1641:47;;-1:-1:-1;1675:1:0;1668:8;;1641:47;1698:9;1710:5;1714:1;1710;:5;:::i;:::-;1698:17;-1:-1:-1;1743:1:0;1734:5;1738:1;1698:17;1734:5;:::i;:::-;:10;1726:56;;;;-1:-1:-1;;;1726:56:0;;14425:2:1;1726:56:0;;;14407:21:1;14464:2;14444:18;;;14437:30;14503:34;14483:18;;;14476:62;14574:3;14554:18;;;14547:31;14595:19;;1726:56:0;14223:397:1;1726:56:0;1800:1;1563:246;-1:-1:-1;;;1563:246:0:o;1817:132::-;1875:7;1902:39;1906:1;1909;1902:39;;;;;;;;;;;;;;;;;:3;:39::i;9455:98::-;9512:7;9539:1;9537;:3;9536:9;;9544:1;9536:9;;;-1:-1:-1;9542:1:0;9455:98;-1:-1:-1;9455:98:0:o;1034:179::-;1092:7;;1124:5;1128:1;1124;:5;:::i;:::-;1112:17;;1153:1;1148;:6;;1140:46;;;;-1:-1:-1;;;1140:46:0;;14827:2:1;1140:46:0;;;14809:21:1;14866:2;14846:18;;;14839:30;14905:29;14885:18;;;14878:57;14952:18;;1140:46:0;14625:351:1;1221:136:0;1279:7;1306:43;1310:1;1313;1306:43;;;;;;;;;;;;;;;;;:3;:43::i;1957:189::-;2043:7;2078:12;2071:5;2063:28;;;;-1:-1:-1;;;2063:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2102:9:0;2114:5;2118:1;2114;:5;:::i;14:607: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;612:2;542:66;537:2;529:6;525:15;521:88;510:9;506:104;502:113;494:121;;;;14:607;;;;:::o;626:154::-;-1:-1:-1;;;;;705:5:1;701:54;694:5;691:65;681:93;;770:1;767;760:12;681:93;626:154;:::o;785:134::-;853:20;;882:31;853:20;882:31;:::i;:::-;785:134;;;:::o;924:315::-;992:6;1000;1053:2;1041:9;1032:7;1028:23;1024:32;1021:52;;;1069:1;1066;1059:12;1021:52;1108:9;1095:23;1127:31;1152:5;1127:31;:::i;:::-;1177:5;1229:2;1214:18;;;;1201:32;;-1:-1:-1;;;924:315:1:o;1618:456::-;1695:6;1703;1711;1764:2;1752:9;1743:7;1739:23;1735:32;1732:52;;;1780:1;1777;1770:12;1732:52;1819:9;1806:23;1838:31;1863:5;1838:31;:::i;:::-;1888:5;-1:-1:-1;1945:2:1;1930:18;;1917:32;1958:33;1917:32;1958:33;:::i;:::-;1618:456;;2010:7;;-1:-1:-1;;;2064:2:1;2049:18;;;;2036:32;;1618:456::o;2268:184::-;2320:77;2317:1;2310:88;2417:4;2414:1;2407:15;2441:4;2438:1;2431:15;2457:1180;2541:6;2572:2;2615;2603:9;2594:7;2590:23;2586:32;2583:52;;;2631:1;2628;2621:12;2583:52;2671:9;2658:23;2700:18;2741:2;2733:6;2730:14;2727:34;;;2757:1;2754;2747:12;2727:34;2795:6;2784:9;2780:22;2770:32;;2840:7;2833:4;2829:2;2825:13;2821:27;2811:55;;2862:1;2859;2852:12;2811:55;2898:2;2885:16;2920:2;2916;2913:10;2910:36;;;2926:18;;:::i;:::-;2972:2;2969:1;2965:10;3004:2;2998:9;3063:66;3058:2;3054;3050:11;3046:84;3038:6;3034:97;3181:6;3169:10;3166:22;3161:2;3149:10;3146:18;3143:46;3140:72;;;3192:18;;:::i;:::-;3228:2;3221:22;3278:18;;;3312:15;;;;-1:-1:-1;3354:11:1;;;3350:20;;;3382:19;;;3379:39;;;3414:1;3411;3404:12;3379:39;3438:11;;;;3458:148;3474:6;3469:3;3466:15;3458:148;;;3540:23;3559:3;3540:23;:::i;:::-;3528:36;;3491:12;;;;3584;;;;3458:148;;;3625:6;2457:1180;-1:-1:-1;;;;;;;;2457:1180:1:o;3642:247::-;3701:6;3754:2;3742:9;3733:7;3729:23;3725:32;3722:52;;;3770:1;3767;3760:12;3722:52;3809:9;3796:23;3828:31;3853:5;3828:31;:::i;4125:388::-;4193:6;4201;4254:2;4242:9;4233:7;4229:23;4225:32;4222:52;;;4270:1;4267;4260:12;4222:52;4309:9;4296:23;4328:31;4353:5;4328:31;:::i;:::-;4378:5;-1:-1:-1;4435:2:1;4420:18;;4407:32;4448:33;4407:32;4448:33;:::i;:::-;4500:7;4490:17;;;4125:388;;;;;:::o;4518:184::-;4570:77;4567:1;4560:88;4667:4;4664:1;4657:15;4691:4;4688:1;4681:15;4707:482;4796:1;4839:5;4796:1;4853:330;4874:7;4864:8;4861:21;4853:330;;;4993:4;4925:66;4921:77;4915:4;4912:87;4909:113;;;5002:18;;:::i;:::-;5052:7;5042:8;5038:22;5035:55;;;5072:16;;;;5035:55;5151:22;;;;5111:15;;;;4853:330;;;4857:3;4707:482;;;;;:::o;5194:866::-;5243:5;5273:8;5263:80;;-1:-1:-1;5314:1:1;5328:5;;5263:80;5362:4;5352:76;;-1:-1:-1;5399:1:1;5413:5;;5352:76;5444:4;5462:1;5457:59;;;;5530:1;5525:130;;;;5437:218;;5457:59;5487:1;5478:10;;5501:5;;;5525:130;5562:3;5552:8;5549:17;5546:43;;;5569:18;;:::i;:::-;-1:-1:-1;;5625:1:1;5611:16;;5640:5;;5437:218;;5739:2;5729:8;5726:16;5720:3;5714:4;5711:13;5707:36;5701:2;5691:8;5688:16;5683:2;5677:4;5674:12;5670:35;5667:77;5664:159;;;-1:-1:-1;5776:19:1;;;5808:5;;5664:159;5855:34;5880:8;5874:4;5855:34;:::i;:::-;5985:6;5917:66;5913:79;5904:7;5901:92;5898:118;;;5996:18;;:::i;:::-;6034:20;;5194:866;-1:-1:-1;;;5194:866:1:o;6065:140::-;6123:5;6152:47;6193:4;6183:8;6179:19;6173:4;6152:47;:::i;6210:168::-;6283:9;;;6314;;6331:15;;;6325:22;;6311:37;6301:71;;6352:18;;:::i;6744:184::-;6796:77;6793:1;6786:88;6893:4;6890:1;6883:15;6917:4;6914:1;6907:15;6933:195;6972:3;7003:66;6996:5;6993:77;6990:103;;7073:18;;:::i;:::-;-1:-1:-1;7120:1:1;7109:13;;6933:195::o;7443:277::-;7510:6;7563:2;7551:9;7542:7;7538:23;7534:32;7531:52;;;7579:1;7576;7569:12;7531:52;7611:9;7605:16;7664:5;7657:13;7650:21;7643:5;7640:32;7630:60;;7686:1;7683;7676:12;8077:251;8147:6;8200:2;8188:9;8179:7;8175:23;8171:32;8168:52;;;8216:1;8213;8206:12;8168:52;8248:9;8242:16;8267:31;8292:5;8267:31;:::i;9300:306::-;9388:6;9396;9404;9457:2;9445:9;9436:7;9432:23;9428:32;9425:52;;;9473:1;9470;9463:12;9425:52;9502:9;9496:16;9486:26;;9552:2;9541:9;9537:18;9531:25;9521:35;;9596:2;9585:9;9581:18;9575:25;9565:35;;9300:306;;;;;:::o;12295:125::-;12360:9;;;12381:10;;;12378:36;;;12394:18;;:::i;12780:128::-;12847:9;;;12868:11;;;12865:37;;;12882:18;;:::i;12913:1026::-;13175:4;13223:3;13212:9;13208:19;13254:6;13243:9;13236:25;13280:2;13318:6;13313:2;13302:9;13298:18;13291:34;13361:3;13356:2;13345:9;13341:18;13334:31;13385:6;13420;13414:13;13451:6;13443;13436:22;13489:3;13478:9;13474:19;13467:26;;13528:2;13520:6;13516:15;13502:29;;13549:1;13559:218;13573:6;13570:1;13567:13;13559:218;;;13638:13;;-1:-1:-1;;;;;13634:62:1;13622:75;;13752:15;;;;13717:12;;;;13595:1;13588:9;13559:218;;;-1:-1:-1;;;;;;;13833:55:1;;;;13828:2;13813:18;;13806:83;-1:-1:-1;;;13920:3:1;13905:19;13898:35;13794:3;12913:1026;-1:-1:-1;;;12913:1026:1:o;13944:274::-;13984:1;14010;14000:189;;14045:77;14042:1;14035:88;14146:4;14143:1;14136:15;14174:4;14171:1;14164:15;14000:189;-1:-1:-1;14203:9:1;;13944:274::o

Swarm Source

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