ETH Price: $2,840.39 (-9.85%)
 

Overview

Max Total Supply

1,000,000,000 OG

Holders

249

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 OG

Value
$0.00
0xc195a2eca2ba966489536dbd0b8d4fb1238cbbc5
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:
OG

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : TheOG.sol
/**
https://t.me/OGBotChannel
**/
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.17;

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

interface IRouter {
    function factory() external pure returns (address);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    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);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}

contract OG is Context, IERC20, Ownable {

    using Address for address payable;

    IRouter public router;
    address public pair;
    
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) public _isExcludedFromFee;
    mapping (address => bool) public _isExcludedFromMaxBalance;
    mapping (address => bool) public _isBlacklisted;
    mapping (address => uint256) public _dogSellTime;
    
    uint256 private _dogSellTimeOffset = 3;
    bool public watchdogMode = true;
    uint256 public _caughtDogs;

    uint8 private constant _decimals = 9; 
    uint256 private _tTotal = 1_000_000_000 * (10**_decimals); //1b
    uint256 public swapThreshold = 10_000_000 * (10**_decimals); //10m 1%
    uint256 public maxTxAmount = 20_000_000 * (10**_decimals); // 20m 2%
    uint256 public maxWallet =  20_000_000 * (10**_decimals);
    
    string private constant _name = "OG"; 
    string private constant _symbol = "OG";

    struct Tax{
        uint8 marketingTax;
        uint8 devTax;
    }

    struct TokensFromTax{
        uint marketingTokens;
        uint devTokens;
    }
    TokensFromTax public totalTokensFromTax;

    Tax public buyTax = Tax(0,0);
    Tax public sellTax = Tax(45,45);
    
    address public marketingWallet = 0x430172CFeF7A90afDf7262308aDc6aFd6b5ceB0D;
    address public devWallet = 0x525bFCb552b39DcaaDD3D1CEdC4BD252B5dd9c28;
    
    bool private swapping;
    bool public disableMaxes = false;
    modifier lockTheSwap {
        swapping = true;
        _;
        swapping = false;
    }


    constructor () {
        _tOwned[_msgSender()] = _tTotal;
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        _approve(owner(), address(router), ~uint256(0));

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[marketingWallet] = true;
        _isExcludedFromFee[devWallet] = true;

        _isExcludedFromMaxBalance[owner()] = true;
        _isExcludedFromMaxBalance[address(this)] = true;
        _isExcludedFromMaxBalance[pair] = true;
        _isExcludedFromMaxBalance[marketingWallet] = true;
        _isExcludedFromMaxBalance[devWallet] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }


// ================= ERC20 =============== //
    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 view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[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()] - amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        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);
    }
    
    receive() external payable {}
// ========================================== //

//============== Owner Functions ===========//

    function owner_rescueETH(uint256 weiAmount) public onlyOwner{
        require(address(this).balance >= weiAmount, "Insufficient ETH balance");
        payable(msg.sender).transfer(weiAmount);
    }
    
    function owner_rescueAnyERC20Tokens(address _tokenAddr, address _to, uint _amount_EXACT, uint _decimal) public onlyOwner {
        IERC20(_tokenAddr).transfer(_to, _amount_EXACT *10**_decimal);
    }

    function owner_setExcludedFromFee(address account,bool isExcluded) public onlyOwner {
        _isExcludedFromFee[account] = isExcluded;
    }

    function owner_setExcludedFromMaxBalance(address account,bool isExcluded) public onlyOwner {
        _isExcludedFromMaxBalance[account] = isExcluded;
    }

    function owner_setBuyTaxes(uint8 marketingTax, uint8 devTax) external onlyOwner{
        uint tTax =  marketingTax + devTax ;
        require(tTax <= 49, "Can't set tax too high");
        buyTax = Tax(marketingTax,devTax);
        emit TaxesChanged();
    }

    function owner_setSellTaxes(uint8 marketingTax, uint8 devTax) external onlyOwner{
        uint tTax = marketingTax + devTax ;
        require(tTax <= 49, "Can't set tax too high");
        sellTax = Tax(marketingTax,devTax);
        emit TaxesChanged();
    }
    
    function owner_setTransferMaxesStatus(bool status_) external onlyOwner{
        disableMaxes = status_; //true = no more max wallet / max tx
    }

    function owner_setTransferMaxes(uint maxTX_EXACT, uint maxWallet_EXACT) public onlyOwner{
        uint pointFiveSupply = (_tTotal * 5 / 1000) / (10**_decimals);
        require(maxTX_EXACT >= pointFiveSupply && maxWallet_EXACT >= pointFiveSupply, "Invalid Settings");
        maxTxAmount = maxTX_EXACT * (10**_decimals);
        maxWallet = maxWallet_EXACT * (10**_decimals);
    }

    function owner_setSwapThreshold(uint swapthreshold_EXACT) public onlyOwner{
        swapThreshold = swapthreshold_EXACT * (10**_decimals);
    }

    function owner_setBlacklisted(address account, bool isBlacklisted) public onlyOwner{
        _isBlacklisted[account] = isBlacklisted;
    }
    
    function owner_setBulkIsBlacklisted(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i =0; i < accounts.length; i++){
            _isBlacklisted[accounts[i]] = state;
        }
    }

    function owner_setWallets(address newMarketingWallet, address newDevWallet) public onlyOwner{
        marketingWallet = newMarketingWallet;
        devWallet = newDevWallet;
    }

    function owner_setWatchDogStatusLaunch(bool status_) external onlyOwner{
        watchdogMode = status_;
    }

    function owner_setDogSellTimeForAddress(address holder, uint dTime) external onlyOwner{
        _dogSellTime[holder] = block.timestamp + dTime;
    }

// ========================================//
    
    function _getTaxValues(uint amount, address from, bool isSell) private returns(uint256){
        Tax memory tmpTaxes = buyTax;
        if (isSell)
            tmpTaxes = sellTax;
        
        uint tokensForMarketing = amount * tmpTaxes.marketingTax / 100;
        uint tokensForDev = amount * tmpTaxes.devTax / 100;

        if(tokensForMarketing > 0)
            totalTokensFromTax.marketingTokens += tokensForMarketing;

        if(tokensForDev > 0)
            totalTokensFromTax.devTokens += tokensForDev;

        uint totalTaxedTokens = tokensForMarketing + tokensForDev;

        _tOwned[address(this)] += totalTaxedTokens;
        if(totalTaxedTokens > 0)
            emit Transfer (from, address(this), totalTaxedTokens);
            
        return (amount - totalTaxedTokens);
    }

    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");
        require(!_isBlacklisted[from] && !_isBlacklisted[to], "Blacklisted, can't trade");

        if(!disableMaxes){
            require(amount <= maxTxAmount || _isExcludedFromMaxBalance[from], "Transfer amount exceeds the _maxTxAmount.");
            
            if(!_isExcludedFromMaxBalance[to])
                require(balanceOf(to) + amount <= maxWallet, "Transfer amount exceeds the _maxWallet.");  
        }
            
        if (balanceOf(address(this)) >= swapThreshold && !swapping && from != pair && from != owner() && to != owner())
            swapAndLiquify();
          
        _tOwned[from] -= amount;
        uint256 transferAmount = amount;
        
        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            transferAmount = _getTaxValues(amount, from, to == pair);
            if (from == pair && watchdogMode){
                _caughtDogs++;
                _dogSellTime[to] = block.timestamp + _dogSellTimeOffset;
            }else{
                if (_dogSellTime[from] != 0)
                    require(block.timestamp < _dogSellTime[from]); 
            }
        }

        _tOwned[to] += transferAmount;
        emit Transfer(from, to, transferAmount);
    }

    function swapAndLiquify() private lockTheSwap{
        
        uint256 totalTokensForSwap = totalTokensFromTax.marketingTokens+totalTokensFromTax.devTokens;

        if(totalTokensForSwap > 0){
            uint256 ethSwapped = swapTokensForETH(totalTokensForSwap);
            uint256 ethForMarketing = ethSwapped * totalTokensFromTax.marketingTokens / totalTokensForSwap;
            uint256 ethForDev = ethSwapped * totalTokensFromTax.devTokens / totalTokensForSwap;
            if(ethForMarketing > 0){
                payable(marketingWallet).transfer(ethForMarketing);
                totalTokensFromTax.marketingTokens = 0;
            }
            if(ethForDev > 0){
                payable(devWallet).transfer(ethForDev);
                totalTokensFromTax.devTokens = 0;
            }
        }   

        emit SwapAndLiquify();

    }

    function swapTokensForETH(uint256 tokenAmount) private returns (uint256) {
        uint256 initialBalance = address(this).balance;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        return (address(this).balance - initialBalance);
    }

    event SwapAndLiquify();
    event TaxesChanged();

   
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[],"name":"TaxesChanged","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":"_caughtDogs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_dogSellTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromMaxBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint8","name":"marketingTax","type":"uint8"},{"internalType":"uint8","name":"devTax","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableMaxes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount_EXACT","type":"uint256"},{"internalType":"uint256","name":"_decimal","type":"uint256"}],"name":"owner_rescueAnyERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"owner_rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isBlacklisted","type":"bool"}],"name":"owner_setBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"owner_setBulkIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"marketingTax","type":"uint8"},{"internalType":"uint8","name":"devTax","type":"uint8"}],"name":"owner_setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"dTime","type":"uint256"}],"name":"owner_setDogSellTimeForAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"owner_setExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"owner_setExcludedFromMaxBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"marketingTax","type":"uint8"},{"internalType":"uint8","name":"devTax","type":"uint8"}],"name":"owner_setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapthreshold_EXACT","type":"uint256"}],"name":"owner_setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTX_EXACT","type":"uint256"},{"internalType":"uint256","name":"maxWallet_EXACT","type":"uint256"}],"name":"owner_setTransferMaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status_","type":"bool"}],"name":"owner_setTransferMaxesStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"},{"internalType":"address","name":"newDevWallet","type":"address"}],"name":"owner_setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status_","type":"bool"}],"name":"owner_setWatchDogStatusLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint8","name":"marketingTax","type":"uint8"},{"internalType":"uint8","name":"devTax","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"view","type":"function"},{"inputs":[],"name":"totalTokensFromTax","outputs":[{"internalType":"uint256","name":"marketingTokens","type":"uint256"},{"internalType":"uint256","name":"devTokens","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"watchdogMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260036009556001600a60006101000a81548160ff0219169083151502179055506009600a62000034919062000dcb565b633b9aca0062000045919062000e1c565b600c556009600a62000058919062000dcb565b6298968062000068919062000e1c565b600d556009600a6200007b919062000dcb565b6301312d006200008c919062000e1c565b600e556009600a6200009f919062000dcb565b6301312d00620000b0919062000e1c565b600f556040518060400160405280600060ff168152602001600060ff16815250601260008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555050506040518060400160405280602d60ff168152602001602d60ff16815250601360008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff160217905550505073430172cfef7a90afdf7262308adc6afd6b5ceb0d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073525bfcb552b39dcaadd3d1cedc4bd252b5dd9c28601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006015806101000a81548160ff0219169083151502179055503480156200024a57600080fd5b506200026b6200025f6200096b60201b60201c565b6200097360201b60201c565b600c5460036000620002826200096b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000327573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034d919062000ed1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003db919062000ed1565b6040518363ffffffff1660e01b8152600401620003fa92919062000f14565b6020604051808303816000875af11580156200041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000440919062000ed1565b905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200050a620004d862000a3760201b60201c565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660001962000a6060201b60201c565b6001600560006200052062000a3760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000620006d362000a3760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620008fa6200096b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c546040516200095b919062000f52565b60405180910390a35050620010b0565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000ad2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ac99062000ff6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000b44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b3b906200108e565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000c24919062000f52565b60405180910390a3505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000cbf5780860481111562000c975762000c9662000c31565b5b600185161562000ca75780820291505b808102905062000cb78562000c60565b945062000c77565b94509492505050565b60008262000cda576001905062000dad565b8162000cea576000905062000dad565b816001811462000d03576002811462000d0e5762000d44565b600191505062000dad565b60ff84111562000d235762000d2262000c31565b5b8360020a91508482111562000d3d5762000d3c62000c31565b5b5062000dad565b5060208310610133831016604e8410600b841016171562000d7e5782820a90508381111562000d785762000d7762000c31565b5b62000dad565b62000d8d848484600162000c6d565b9250905081840481111562000da75762000da662000c31565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000dd88262000db4565b915062000de58362000dbe565b925062000e147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000cc8565b905092915050565b600062000e298262000db4565b915062000e368362000db4565b925082820262000e468162000db4565b9150828204841483151762000e605762000e5f62000c31565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e998262000e6c565b9050919050565b62000eab8162000e8c565b811462000eb757600080fd5b50565b60008151905062000ecb8162000ea0565b92915050565b60006020828403121562000eea5762000ee962000e67565b5b600062000efa8482850162000eba565b91505092915050565b62000f0e8162000e8c565b82525050565b600060408201905062000f2b600083018562000f03565b62000f3a602083018462000f03565b9392505050565b62000f4c8162000db4565b82525050565b600060208201905062000f69600083018462000f41565b92915050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000fde60248362000f6f565b915062000feb8262000f80565b604082019050919050565b60006020820190508181036000830152620010118162000fcf565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006200107660228362000f6f565b9150620010838262001018565b604082019050919050565b60006020820190508181036000830152620010a98162001067565b9050919050565b6143e680620010c06000396000f3fe6080604052600436106102765760003560e01c80638c0b5e221161014f578063cfe9dde0116100c1578063f0c830fc1161007a578063f0c830fc146109ab578063f2fde38b146109d4578063f837ae07146109fd578063f887ea4014610a26578063f8b45b0514610a51578063f9d0ee9414610a7c5761027d565b8063cfe9dde014610889578063d3752d9b146108b2578063dd62ed3e146108db578063e0a877c814610918578063ee9a5d8214610943578063ef07a182146109805761027d565b8063a457c2d711610113578063a457c2d714610766578063a8aa1b31146107a3578063a9059cbb146107ce578063b72a47341461080b578063cb0e6f7b14610834578063cc1776d31461085d5761027d565b80638c0b5e22146106915780638da5cb5b146106bc5780638ea5220f146106e757806390ea2c781461071257806395d89b411461073b5761027d565b8063313ce567116101e85780635966c81e116101ac5780635966c81e1461058157806370a08231146105aa578063715018a6146105e7578063747b900e146105fe57806375f0a87414610629578063768dc710146106545761027d565b8063313ce5671461049b57806339509351146104c65780634ba422bc146105035780634cf279971461052c5780634f7041a5146105555761027d565b80631b0f93811161023a5780631b0f9381146103695780631cdd3be3146103925780631e17989e146103cf5780631e9ec60d146103f857806323b872dd1461042157806328c61f411461045e5761027d565b806302f69b7f146102825780630445b667146102ab57806306fdde03146102d6578063095ea7b31461030157806318160ddd1461033e5761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b506102a960048036038101906102a4919061303e565b610aa8565b005b3480156102b757600080fd5b506102c0610b40565b6040516102cd9190613084565b60405180910390f35b3480156102e257600080fd5b506102eb610b46565b6040516102f8919061312f565b60405180910390f35b34801561030d57600080fd5b50610328600480360381019061032391906131db565b610b83565b604051610335919061322a565b60405180910390f35b34801561034a57600080fd5b50610353610ba1565b6040516103609190613084565b60405180910390f35b34801561037557600080fd5b50610390600480360381019061038b919061327e565b610bab565b005b34801561039e57600080fd5b506103b960048036038101906103b491906132be565b610d11565b6040516103c6919061322a565b60405180910390f35b3480156103db57600080fd5b506103f660048036038101906103f191906132eb565b610d31565b005b34801561040457600080fd5b5061041f600480360381019061041a919061332b565b610e08565b005b34801561042d57600080fd5b5061044860048036038101906104439190613358565b610ea6565b604051610455919061322a565b60405180910390f35b34801561046a57600080fd5b50610485600480360381019061048091906132be565b610f5e565b604051610492919061322a565b60405180910390f35b3480156104a757600080fd5b506104b0610f7e565b6040516104bd91906133ba565b60405180910390f35b3480156104d257600080fd5b506104ed60048036038101906104e891906131db565b610f87565b6040516104fa919061322a565b60405180910390f35b34801561050f57600080fd5b5061052a600480360381019061052591906133d5565b611033565b005b34801561053857600080fd5b50610553600480360381019061054e91906131db565b611179565b005b34801561056157600080fd5b5061056a611248565b604051610578929190613415565b60405180910390f35b34801561058d57600080fd5b506105a860048036038101906105a3919061332b565b611274565b005b3480156105b657600080fd5b506105d160048036038101906105cc91906132be565b61137d565b6040516105de9190613084565b60405180910390f35b3480156105f357600080fd5b506105fc6113c6565b005b34801561060a57600080fd5b5061061361144e565b604051610620919061322a565b60405180910390f35b34801561063557600080fd5b5061063e61145f565b60405161064b919061344d565b60405180910390f35b34801561066057600080fd5b5061067b600480360381019061067691906132be565b611485565b604051610688919061322a565b60405180910390f35b34801561069d57600080fd5b506106a66114a5565b6040516106b39190613084565b60405180910390f35b3480156106c857600080fd5b506106d16114ab565b6040516106de919061344d565b60405180910390f35b3480156106f357600080fd5b506106fc6114d4565b604051610709919061344d565b60405180910390f35b34801561071e57600080fd5b5061073960048036038101906107349190613468565b6114fa565b005b34801561074757600080fd5b50610750611612565b60405161075d919061312f565b60405180910390f35b34801561077257600080fd5b5061078d600480360381019061078891906131db565b61164f565b60405161079a919061322a565b60405180910390f35b3480156107af57600080fd5b506107b86116fb565b6040516107c5919061344d565b60405180910390f35b3480156107da57600080fd5b506107f560048036038101906107f091906131db565b611721565b604051610802919061322a565b60405180910390f35b34801561081757600080fd5b50610832600480360381019061082d91906132eb565b61173f565b005b34801561084057600080fd5b5061085b6004803603810190610856919061327e565b611816565b005b34801561086957600080fd5b5061087261197c565b604051610880929190613415565b60405180910390f35b34801561089557600080fd5b506108b060048036038101906108ab9190613617565b6119a8565b005b3480156108be57600080fd5b506108d960048036038101906108d4919061303e565b611ab9565b005b3480156108e757600080fd5b5061090260048036038101906108fd9190613673565b611b52565b60405161090f9190613084565b60405180910390f35b34801561092457600080fd5b5061092d611bd9565b60405161093a919061322a565b60405180910390f35b34801561094f57600080fd5b5061096a600480360381019061096591906132be565b611bec565b6040516109779190613084565b60405180910390f35b34801561098c57600080fd5b50610995611c04565b6040516109a29190613084565b60405180910390f35b3480156109b757600080fd5b506109d260048036038101906109cd9190613673565b611c0a565b005b3480156109e057600080fd5b506109fb60048036038101906109f691906132be565b611d0c565b005b348015610a0957600080fd5b50610a246004803603810190610a1f91906132eb565b611e03565b005b348015610a3257600080fd5b50610a3b611eda565b604051610a489190613712565b60405180910390f35b348015610a5d57600080fd5b50610a66611f00565b604051610a739190613084565b60405180910390f35b348015610a8857600080fd5b50610a91611f06565b604051610a9f92919061372d565b60405180910390f35b610ab0611f18565b73ffffffffffffffffffffffffffffffffffffffff16610ace6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614610b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1b906137a2565b60405180910390fd5b806015806101000a81548160ff02191690831515021790555050565b600d5481565b60606040518060400160405280600281526020017f4f47000000000000000000000000000000000000000000000000000000000000815250905090565b6000610b97610b90611f18565b8484611f20565b6001905092915050565b6000600c54905090565b610bb3611f18565b73ffffffffffffffffffffffffffffffffffffffff16610bd16114ab565b73ffffffffffffffffffffffffffffffffffffffff1614610c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1e906137a2565b60405180910390fd5b60008183610c3591906137f1565b60ff1690506031811115610c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7590613872565b60405180910390fd5b60405180604001604052808460ff1681526020018360ff16815250601260008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff1602179055509050507ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e48060405160405180910390a1505050565b60076020528060005260406000206000915054906101000a900460ff1681565b610d39611f18565b73ffffffffffffffffffffffffffffffffffffffff16610d576114ab565b73ffffffffffffffffffffffffffffffffffffffff1614610dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da4906137a2565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610e10611f18565b73ffffffffffffffffffffffffffffffffffffffff16610e2e6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614610e84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7b906137a2565b60405180910390fd5b6009600a610e9291906139c5565b81610e9d9190613a10565b600d8190555050565b6000610eb38484846120e9565b610f5384610ebf611f18565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f09611f18565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f4e9190613a52565b611f20565b600190509392505050565b60066020528060005260406000206000915054906101000a900460ff1681565b60006009905090565b6000611029610f94611f18565b848460046000610fa2611f18565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110249190613a86565b611f20565b6001905092915050565b61103b611f18565b73ffffffffffffffffffffffffffffffffffffffff166110596114ab565b73ffffffffffffffffffffffffffffffffffffffff16146110af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a6906137a2565b60405180910390fd5b60006009600a6110bf91906139c5565b6103e86005600c546110d19190613a10565b6110db9190613ae9565b6110e59190613ae9565b90508083101580156110f75750808210155b611136576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112d90613b66565b60405180910390fd5b6009600a61114491906139c5565b8361114f9190613a10565b600e819055506009600a61116391906139c5565b8261116e9190613a10565b600f81905550505050565b611181611f18565b73ffffffffffffffffffffffffffffffffffffffff1661119f6114ab565b73ffffffffffffffffffffffffffffffffffffffff16146111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ec906137a2565b60405180910390fd5b80426112019190613a86565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60128060000160009054906101000a900460ff16908060000160019054906101000a900460ff16905082565b61127c611f18565b73ffffffffffffffffffffffffffffffffffffffff1661129a6114ab565b73ffffffffffffffffffffffffffffffffffffffff16146112f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e7906137a2565b60405180910390fd5b80471015611333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132a90613bd2565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611379573d6000803e3d6000fd5b5050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113ce611f18565b73ffffffffffffffffffffffffffffffffffffffff166113ec6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611442576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611439906137a2565b60405180910390fd5b61144c60006128e3565b565b60158054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611502611f18565b73ffffffffffffffffffffffffffffffffffffffff166115206114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156d906137a2565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8483600a6115a09190613bf2565b856115ab9190613a10565b6040518363ffffffff1660e01b81526004016115c8929190613c3d565b6020604051808303816000875af11580156115e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160b9190613c7b565b5050505050565b60606040518060400160405280600281526020017f4f47000000000000000000000000000000000000000000000000000000000000815250905090565b60006116f161165c611f18565b84846004600061166a611f18565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ec9190613a52565b611f20565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061173561172e611f18565b84846120e9565b6001905092915050565b611747611f18565b73ffffffffffffffffffffffffffffffffffffffff166117656114ab565b73ffffffffffffffffffffffffffffffffffffffff16146117bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b2906137a2565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61181e611f18565b73ffffffffffffffffffffffffffffffffffffffff1661183c6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906137a2565b60405180910390fd5b600081836118a091906137f1565b60ff16905060318111156118e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e090613872565b60405180910390fd5b60405180604001604052808460ff1681526020018360ff16815250601360008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff1602179055509050507ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e48060405160405180910390a1505050565b60138060000160009054906101000a900460ff16908060000160019054906101000a900460ff16905082565b6119b0611f18565b73ffffffffffffffffffffffffffffffffffffffff166119ce6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1b906137a2565b60405180910390fd5b60005b8251811015611ab4578160076000858481518110611a4857611a47613ca8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611aac90613cd7565b915050611a27565b505050565b611ac1611f18565b73ffffffffffffffffffffffffffffffffffffffff16611adf6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2c906137a2565b60405180910390fd5b80600a60006101000a81548160ff02191690831515021790555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60009054906101000a900460ff1681565b60086020528060005260406000206000915090505481565b600b5481565b611c12611f18565b73ffffffffffffffffffffffffffffffffffffffff16611c306114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7d906137a2565b60405180910390fd5b81601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611d14611f18565b73ffffffffffffffffffffffffffffffffffffffff16611d326114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7f906137a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dee90613d91565b60405180910390fd5b611e00816128e3565b50565b611e0b611f18565b73ffffffffffffffffffffffffffffffffffffffff16611e296114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e76906137a2565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60108060000154908060010154905082565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8690613e23565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ffe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff590613eb5565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120dc9190613084565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214f90613f47565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121be90613fd9565b60405180910390fd5b6000811161220a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122019061406b565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122ae5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6122ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e4906140d7565b60405180910390fd5b60158054906101000a900460ff1661244357600e54811115806123595750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238f90614169565b60405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661244257600f54816123f68461137d565b6124009190613a86565b1115612441576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612438906141fb565b60405180910390fd5b5b5b600d5461244f3061137d565b1015801561246a5750601560149054906101000a900460ff16155b80156124c45750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561250357506124d36114ab565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561254257506125126114ab565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156125505761254f6129a7565b5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461259f9190613a52565b925050819055506000819050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561264f5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612822576126af8285600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614612b7c565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561271a5750600a60009054906101000a900460ff165b1561278d57600b600081548092919061273290613cd7565b9190505550600954426127459190613a86565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612821565b6000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461282057600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421061281f57600080fd5b5b5b5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128719190613a86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128d59190613084565b60405180910390a350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601560146101000a81548160ff02191690831515021790555060006010600101546010600001546129da9190613a86565b90506000811115612b325760006129f082612d98565b905060008260106000015483612a069190613a10565b612a109190613ae9565b905060008360106001015484612a269190613a10565b612a309190613ae9565b90506000821115612ab057601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612aa3573d6000803e3d6000fd5b5060006010600001819055505b6000811115612b2e57601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612b21573d6000803e3d6000fd5b5060006010600101819055505b5050505b7fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb7003060405160405180910390a1506000601560146101000a81548160ff021916908315150217905550565b60008060126040518060400160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff168152505090508215612c185760136040518060400160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff168152505090505b60006064826000015160ff1687612c2f9190613a10565b612c399190613ae9565b905060006064836020015160ff1688612c529190613a10565b612c5c9190613ae9565b90506000821115612c84578160106000016000828254612c7c9190613a86565b925050819055505b6000811115612caa578060106001016000828254612ca29190613a86565b925050819055505b60008183612cb89190613a86565b905080600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612d099190613a86565b925050819055506000811115612d7f573073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d769190613084565b60405180910390a35b8088612d8b9190613a52565b9450505050509392505050565b6000804790506000600267ffffffffffffffff811115612dbb57612dba6134d4565b5b604051908082528060200260200182016040528015612de95781602001602082028036833780820191505090505b5090503081600081518110612e0157612e00613ca8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ea8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ecc9190614230565b81600181518110612ee057612edf613ca8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f4730600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686611f20565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b8152600401612fab959493929190614356565b600060405180830381600087803b158015612fc557600080fd5b505af1158015612fd9573d6000803e3d6000fd5b505050508147612fe99190613a52565b92505050919050565b6000604051905090565b600080fd5b600080fd5b60008115159050919050565b61301b81613006565b811461302657600080fd5b50565b60008135905061303881613012565b92915050565b60006020828403121561305457613053612ffc565b5b600061306284828501613029565b91505092915050565b6000819050919050565b61307e8161306b565b82525050565b60006020820190506130996000830184613075565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130d95780820151818401526020810190506130be565b60008484015250505050565b6000601f19601f8301169050919050565b60006131018261309f565b61310b81856130aa565b935061311b8185602086016130bb565b613124816130e5565b840191505092915050565b6000602082019050818103600083015261314981846130f6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061317c82613151565b9050919050565b61318c81613171565b811461319757600080fd5b50565b6000813590506131a981613183565b92915050565b6131b88161306b565b81146131c357600080fd5b50565b6000813590506131d5816131af565b92915050565b600080604083850312156131f2576131f1612ffc565b5b60006132008582860161319a565b9250506020613211858286016131c6565b9150509250929050565b61322481613006565b82525050565b600060208201905061323f600083018461321b565b92915050565b600060ff82169050919050565b61325b81613245565b811461326657600080fd5b50565b60008135905061327881613252565b92915050565b6000806040838503121561329557613294612ffc565b5b60006132a385828601613269565b92505060206132b485828601613269565b9150509250929050565b6000602082840312156132d4576132d3612ffc565b5b60006132e28482850161319a565b91505092915050565b6000806040838503121561330257613301612ffc565b5b60006133108582860161319a565b925050602061332185828601613029565b9150509250929050565b60006020828403121561334157613340612ffc565b5b600061334f848285016131c6565b91505092915050565b60008060006060848603121561337157613370612ffc565b5b600061337f8682870161319a565b93505060206133908682870161319a565b92505060406133a1868287016131c6565b9150509250925092565b6133b481613245565b82525050565b60006020820190506133cf60008301846133ab565b92915050565b600080604083850312156133ec576133eb612ffc565b5b60006133fa858286016131c6565b925050602061340b858286016131c6565b9150509250929050565b600060408201905061342a60008301856133ab565b61343760208301846133ab565b9392505050565b61344781613171565b82525050565b6000602082019050613462600083018461343e565b92915050565b6000806000806080858703121561348257613481612ffc565b5b60006134908782880161319a565b94505060206134a18782880161319a565b93505060406134b2878288016131c6565b92505060606134c3878288016131c6565b91505092959194509250565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61350c826130e5565b810181811067ffffffffffffffff8211171561352b5761352a6134d4565b5b80604052505050565b600061353e612ff2565b905061354a8282613503565b919050565b600067ffffffffffffffff82111561356a576135696134d4565b5b602082029050602081019050919050565b600080fd5b600061359361358e8461354f565b613534565b905080838252602082019050602084028301858111156135b6576135b561357b565b5b835b818110156135df57806135cb888261319a565b8452602084019350506020810190506135b8565b5050509392505050565b600082601f8301126135fe576135fd6134cf565b5b813561360e848260208601613580565b91505092915050565b6000806040838503121561362e5761362d612ffc565b5b600083013567ffffffffffffffff81111561364c5761364b613001565b5b613658858286016135e9565b925050602061366985828601613029565b9150509250929050565b6000806040838503121561368a57613689612ffc565b5b60006136988582860161319a565b92505060206136a98582860161319a565b9150509250929050565b6000819050919050565b60006136d86136d36136ce84613151565b6136b3565b613151565b9050919050565b60006136ea826136bd565b9050919050565b60006136fc826136df565b9050919050565b61370c816136f1565b82525050565b60006020820190506137276000830184613703565b92915050565b60006040820190506137426000830185613075565b61374f6020830184613075565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061378c6020836130aa565b915061379782613756565b602082019050919050565b600060208201905081810360008301526137bb8161377f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006137fc82613245565b915061380783613245565b9250828201905060ff8111156138205761381f6137c2565b5b92915050565b7f43616e2774207365742074617820746f6f206869676800000000000000000000600082015250565b600061385c6016836130aa565b915061386782613826565b602082019050919050565b6000602082019050818103600083015261388b8161384f565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156138e9578086048111156138c5576138c46137c2565b5b60018516156138d45780820291505b80810290506138e285613892565b94506138a9565b94509492505050565b60008261390257600190506139be565b8161391057600090506139be565b816001811461392657600281146139305761395f565b60019150506139be565b60ff841115613942576139416137c2565b5b8360020a915084821115613959576139586137c2565b5b506139be565b5060208310610133831016604e8410600b84101617156139945782820a90508381111561398f5761398e6137c2565b5b6139be565b6139a1848484600161389f565b925090508184048111156139b8576139b76137c2565b5b81810290505b9392505050565b60006139d08261306b565b91506139db83613245565b9250613a087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846138f2565b905092915050565b6000613a1b8261306b565b9150613a268361306b565b9250828202613a348161306b565b91508282048414831517613a4b57613a4a6137c2565b5b5092915050565b6000613a5d8261306b565b9150613a688361306b565b9250828203905081811115613a8057613a7f6137c2565b5b92915050565b6000613a918261306b565b9150613a9c8361306b565b9250828201905080821115613ab457613ab36137c2565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613af48261306b565b9150613aff8361306b565b925082613b0f57613b0e613aba565b5b828204905092915050565b7f496e76616c69642053657474696e677300000000000000000000000000000000600082015250565b6000613b506010836130aa565b9150613b5b82613b1a565b602082019050919050565b60006020820190508181036000830152613b7f81613b43565b9050919050565b7f496e73756666696369656e74204554482062616c616e63650000000000000000600082015250565b6000613bbc6018836130aa565b9150613bc782613b86565b602082019050919050565b60006020820190508181036000830152613beb81613baf565b9050919050565b6000613bfd8261306b565b9150613c088361306b565b9250613c357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846138f2565b905092915050565b6000604082019050613c52600083018561343e565b613c5f6020830184613075565b9392505050565b600081519050613c7581613012565b92915050565b600060208284031215613c9157613c90612ffc565b5b6000613c9f84828501613c66565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613ce28261306b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d1457613d136137c2565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613d7b6026836130aa565b9150613d8682613d1f565b604082019050919050565b60006020820190508181036000830152613daa81613d6e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613e0d6024836130aa565b9150613e1882613db1565b604082019050919050565b60006020820190508181036000830152613e3c81613e00565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e9f6022836130aa565b9150613eaa82613e43565b604082019050919050565b60006020820190508181036000830152613ece81613e92565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613f316025836130aa565b9150613f3c82613ed5565b604082019050919050565b60006020820190508181036000830152613f6081613f24565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613fc36023836130aa565b9150613fce82613f67565b604082019050919050565b60006020820190508181036000830152613ff281613fb6565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006140556029836130aa565b915061406082613ff9565b604082019050919050565b6000602082019050818103600083015261408481614048565b9050919050565b7f426c61636b6c69737465642c2063616e27742074726164650000000000000000600082015250565b60006140c16018836130aa565b91506140cc8261408b565b602082019050919050565b600060208201905081810360008301526140f0816140b4565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865205f6d617860008201527f5478416d6f756e742e0000000000000000000000000000000000000000000000602082015250565b60006141536029836130aa565b915061415e826140f7565b604082019050919050565b6000602082019050818103600083015261418281614146565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865205f6d617860008201527f57616c6c65742e00000000000000000000000000000000000000000000000000602082015250565b60006141e56027836130aa565b91506141f082614189565b604082019050919050565b60006020820190508181036000830152614214816141d8565b9050919050565b60008151905061422a81613183565b92915050565b60006020828403121561424657614245612ffc565b5b60006142548482850161421b565b91505092915050565b6000819050919050565b600061428261427d6142788461425d565b6136b3565b61306b565b9050919050565b61429281614267565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142cd81613171565b82525050565b60006142df83836142c4565b60208301905092915050565b6000602082019050919050565b600061430382614298565b61430d81856142a3565b9350614318836142b4565b8060005b8381101561434957815161433088826142d3565b975061433b836142eb565b92505060018101905061431c565b5085935050505092915050565b600060a08201905061436b6000830188613075565b6143786020830187614289565b818103604083015261438a81866142f8565b9050614399606083018561343e565b6143a66080830184613075565b969550505050505056fea2646970667358221220d2b274de745e9af5138e83f14f23e82c0e112380301bb1941aae5a82122da16a64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102765760003560e01c80638c0b5e221161014f578063cfe9dde0116100c1578063f0c830fc1161007a578063f0c830fc146109ab578063f2fde38b146109d4578063f837ae07146109fd578063f887ea4014610a26578063f8b45b0514610a51578063f9d0ee9414610a7c5761027d565b8063cfe9dde014610889578063d3752d9b146108b2578063dd62ed3e146108db578063e0a877c814610918578063ee9a5d8214610943578063ef07a182146109805761027d565b8063a457c2d711610113578063a457c2d714610766578063a8aa1b31146107a3578063a9059cbb146107ce578063b72a47341461080b578063cb0e6f7b14610834578063cc1776d31461085d5761027d565b80638c0b5e22146106915780638da5cb5b146106bc5780638ea5220f146106e757806390ea2c781461071257806395d89b411461073b5761027d565b8063313ce567116101e85780635966c81e116101ac5780635966c81e1461058157806370a08231146105aa578063715018a6146105e7578063747b900e146105fe57806375f0a87414610629578063768dc710146106545761027d565b8063313ce5671461049b57806339509351146104c65780634ba422bc146105035780634cf279971461052c5780634f7041a5146105555761027d565b80631b0f93811161023a5780631b0f9381146103695780631cdd3be3146103925780631e17989e146103cf5780631e9ec60d146103f857806323b872dd1461042157806328c61f411461045e5761027d565b806302f69b7f146102825780630445b667146102ab57806306fdde03146102d6578063095ea7b31461030157806318160ddd1461033e5761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b506102a960048036038101906102a4919061303e565b610aa8565b005b3480156102b757600080fd5b506102c0610b40565b6040516102cd9190613084565b60405180910390f35b3480156102e257600080fd5b506102eb610b46565b6040516102f8919061312f565b60405180910390f35b34801561030d57600080fd5b50610328600480360381019061032391906131db565b610b83565b604051610335919061322a565b60405180910390f35b34801561034a57600080fd5b50610353610ba1565b6040516103609190613084565b60405180910390f35b34801561037557600080fd5b50610390600480360381019061038b919061327e565b610bab565b005b34801561039e57600080fd5b506103b960048036038101906103b491906132be565b610d11565b6040516103c6919061322a565b60405180910390f35b3480156103db57600080fd5b506103f660048036038101906103f191906132eb565b610d31565b005b34801561040457600080fd5b5061041f600480360381019061041a919061332b565b610e08565b005b34801561042d57600080fd5b5061044860048036038101906104439190613358565b610ea6565b604051610455919061322a565b60405180910390f35b34801561046a57600080fd5b50610485600480360381019061048091906132be565b610f5e565b604051610492919061322a565b60405180910390f35b3480156104a757600080fd5b506104b0610f7e565b6040516104bd91906133ba565b60405180910390f35b3480156104d257600080fd5b506104ed60048036038101906104e891906131db565b610f87565b6040516104fa919061322a565b60405180910390f35b34801561050f57600080fd5b5061052a600480360381019061052591906133d5565b611033565b005b34801561053857600080fd5b50610553600480360381019061054e91906131db565b611179565b005b34801561056157600080fd5b5061056a611248565b604051610578929190613415565b60405180910390f35b34801561058d57600080fd5b506105a860048036038101906105a3919061332b565b611274565b005b3480156105b657600080fd5b506105d160048036038101906105cc91906132be565b61137d565b6040516105de9190613084565b60405180910390f35b3480156105f357600080fd5b506105fc6113c6565b005b34801561060a57600080fd5b5061061361144e565b604051610620919061322a565b60405180910390f35b34801561063557600080fd5b5061063e61145f565b60405161064b919061344d565b60405180910390f35b34801561066057600080fd5b5061067b600480360381019061067691906132be565b611485565b604051610688919061322a565b60405180910390f35b34801561069d57600080fd5b506106a66114a5565b6040516106b39190613084565b60405180910390f35b3480156106c857600080fd5b506106d16114ab565b6040516106de919061344d565b60405180910390f35b3480156106f357600080fd5b506106fc6114d4565b604051610709919061344d565b60405180910390f35b34801561071e57600080fd5b5061073960048036038101906107349190613468565b6114fa565b005b34801561074757600080fd5b50610750611612565b60405161075d919061312f565b60405180910390f35b34801561077257600080fd5b5061078d600480360381019061078891906131db565b61164f565b60405161079a919061322a565b60405180910390f35b3480156107af57600080fd5b506107b86116fb565b6040516107c5919061344d565b60405180910390f35b3480156107da57600080fd5b506107f560048036038101906107f091906131db565b611721565b604051610802919061322a565b60405180910390f35b34801561081757600080fd5b50610832600480360381019061082d91906132eb565b61173f565b005b34801561084057600080fd5b5061085b6004803603810190610856919061327e565b611816565b005b34801561086957600080fd5b5061087261197c565b604051610880929190613415565b60405180910390f35b34801561089557600080fd5b506108b060048036038101906108ab9190613617565b6119a8565b005b3480156108be57600080fd5b506108d960048036038101906108d4919061303e565b611ab9565b005b3480156108e757600080fd5b5061090260048036038101906108fd9190613673565b611b52565b60405161090f9190613084565b60405180910390f35b34801561092457600080fd5b5061092d611bd9565b60405161093a919061322a565b60405180910390f35b34801561094f57600080fd5b5061096a600480360381019061096591906132be565b611bec565b6040516109779190613084565b60405180910390f35b34801561098c57600080fd5b50610995611c04565b6040516109a29190613084565b60405180910390f35b3480156109b757600080fd5b506109d260048036038101906109cd9190613673565b611c0a565b005b3480156109e057600080fd5b506109fb60048036038101906109f691906132be565b611d0c565b005b348015610a0957600080fd5b50610a246004803603810190610a1f91906132eb565b611e03565b005b348015610a3257600080fd5b50610a3b611eda565b604051610a489190613712565b60405180910390f35b348015610a5d57600080fd5b50610a66611f00565b604051610a739190613084565b60405180910390f35b348015610a8857600080fd5b50610a91611f06565b604051610a9f92919061372d565b60405180910390f35b610ab0611f18565b73ffffffffffffffffffffffffffffffffffffffff16610ace6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614610b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1b906137a2565b60405180910390fd5b806015806101000a81548160ff02191690831515021790555050565b600d5481565b60606040518060400160405280600281526020017f4f47000000000000000000000000000000000000000000000000000000000000815250905090565b6000610b97610b90611f18565b8484611f20565b6001905092915050565b6000600c54905090565b610bb3611f18565b73ffffffffffffffffffffffffffffffffffffffff16610bd16114ab565b73ffffffffffffffffffffffffffffffffffffffff1614610c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1e906137a2565b60405180910390fd5b60008183610c3591906137f1565b60ff1690506031811115610c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7590613872565b60405180910390fd5b60405180604001604052808460ff1681526020018360ff16815250601260008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff1602179055509050507ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e48060405160405180910390a1505050565b60076020528060005260406000206000915054906101000a900460ff1681565b610d39611f18565b73ffffffffffffffffffffffffffffffffffffffff16610d576114ab565b73ffffffffffffffffffffffffffffffffffffffff1614610dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da4906137a2565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610e10611f18565b73ffffffffffffffffffffffffffffffffffffffff16610e2e6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614610e84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7b906137a2565b60405180910390fd5b6009600a610e9291906139c5565b81610e9d9190613a10565b600d8190555050565b6000610eb38484846120e9565b610f5384610ebf611f18565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f09611f18565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f4e9190613a52565b611f20565b600190509392505050565b60066020528060005260406000206000915054906101000a900460ff1681565b60006009905090565b6000611029610f94611f18565b848460046000610fa2611f18565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110249190613a86565b611f20565b6001905092915050565b61103b611f18565b73ffffffffffffffffffffffffffffffffffffffff166110596114ab565b73ffffffffffffffffffffffffffffffffffffffff16146110af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a6906137a2565b60405180910390fd5b60006009600a6110bf91906139c5565b6103e86005600c546110d19190613a10565b6110db9190613ae9565b6110e59190613ae9565b90508083101580156110f75750808210155b611136576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112d90613b66565b60405180910390fd5b6009600a61114491906139c5565b8361114f9190613a10565b600e819055506009600a61116391906139c5565b8261116e9190613a10565b600f81905550505050565b611181611f18565b73ffffffffffffffffffffffffffffffffffffffff1661119f6114ab565b73ffffffffffffffffffffffffffffffffffffffff16146111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ec906137a2565b60405180910390fd5b80426112019190613a86565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60128060000160009054906101000a900460ff16908060000160019054906101000a900460ff16905082565b61127c611f18565b73ffffffffffffffffffffffffffffffffffffffff1661129a6114ab565b73ffffffffffffffffffffffffffffffffffffffff16146112f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e7906137a2565b60405180910390fd5b80471015611333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132a90613bd2565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611379573d6000803e3d6000fd5b5050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113ce611f18565b73ffffffffffffffffffffffffffffffffffffffff166113ec6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611442576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611439906137a2565b60405180910390fd5b61144c60006128e3565b565b60158054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611502611f18565b73ffffffffffffffffffffffffffffffffffffffff166115206114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156d906137a2565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8483600a6115a09190613bf2565b856115ab9190613a10565b6040518363ffffffff1660e01b81526004016115c8929190613c3d565b6020604051808303816000875af11580156115e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160b9190613c7b565b5050505050565b60606040518060400160405280600281526020017f4f47000000000000000000000000000000000000000000000000000000000000815250905090565b60006116f161165c611f18565b84846004600061166a611f18565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ec9190613a52565b611f20565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061173561172e611f18565b84846120e9565b6001905092915050565b611747611f18565b73ffffffffffffffffffffffffffffffffffffffff166117656114ab565b73ffffffffffffffffffffffffffffffffffffffff16146117bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b2906137a2565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61181e611f18565b73ffffffffffffffffffffffffffffffffffffffff1661183c6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906137a2565b60405180910390fd5b600081836118a091906137f1565b60ff16905060318111156118e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e090613872565b60405180910390fd5b60405180604001604052808460ff1681526020018360ff16815250601360008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff1602179055509050507ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e48060405160405180910390a1505050565b60138060000160009054906101000a900460ff16908060000160019054906101000a900460ff16905082565b6119b0611f18565b73ffffffffffffffffffffffffffffffffffffffff166119ce6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1b906137a2565b60405180910390fd5b60005b8251811015611ab4578160076000858481518110611a4857611a47613ca8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611aac90613cd7565b915050611a27565b505050565b611ac1611f18565b73ffffffffffffffffffffffffffffffffffffffff16611adf6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2c906137a2565b60405180910390fd5b80600a60006101000a81548160ff02191690831515021790555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60009054906101000a900460ff1681565b60086020528060005260406000206000915090505481565b600b5481565b611c12611f18565b73ffffffffffffffffffffffffffffffffffffffff16611c306114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7d906137a2565b60405180910390fd5b81601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611d14611f18565b73ffffffffffffffffffffffffffffffffffffffff16611d326114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7f906137a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dee90613d91565b60405180910390fd5b611e00816128e3565b50565b611e0b611f18565b73ffffffffffffffffffffffffffffffffffffffff16611e296114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e76906137a2565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60108060000154908060010154905082565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8690613e23565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ffe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff590613eb5565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120dc9190613084565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214f90613f47565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121be90613fd9565b60405180910390fd5b6000811161220a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122019061406b565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122ae5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6122ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e4906140d7565b60405180910390fd5b60158054906101000a900460ff1661244357600e54811115806123595750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238f90614169565b60405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661244257600f54816123f68461137d565b6124009190613a86565b1115612441576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612438906141fb565b60405180910390fd5b5b5b600d5461244f3061137d565b1015801561246a5750601560149054906101000a900460ff16155b80156124c45750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561250357506124d36114ab565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561254257506125126114ab565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156125505761254f6129a7565b5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461259f9190613a52565b925050819055506000819050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561264f5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612822576126af8285600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614612b7c565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561271a5750600a60009054906101000a900460ff165b1561278d57600b600081548092919061273290613cd7565b9190505550600954426127459190613a86565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612821565b6000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461282057600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421061281f57600080fd5b5b5b5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128719190613a86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128d59190613084565b60405180910390a350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601560146101000a81548160ff02191690831515021790555060006010600101546010600001546129da9190613a86565b90506000811115612b325760006129f082612d98565b905060008260106000015483612a069190613a10565b612a109190613ae9565b905060008360106001015484612a269190613a10565b612a309190613ae9565b90506000821115612ab057601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612aa3573d6000803e3d6000fd5b5060006010600001819055505b6000811115612b2e57601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612b21573d6000803e3d6000fd5b5060006010600101819055505b5050505b7fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb7003060405160405180910390a1506000601560146101000a81548160ff021916908315150217905550565b60008060126040518060400160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff168152505090508215612c185760136040518060400160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff168152505090505b60006064826000015160ff1687612c2f9190613a10565b612c399190613ae9565b905060006064836020015160ff1688612c529190613a10565b612c5c9190613ae9565b90506000821115612c84578160106000016000828254612c7c9190613a86565b925050819055505b6000811115612caa578060106001016000828254612ca29190613a86565b925050819055505b60008183612cb89190613a86565b905080600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612d099190613a86565b925050819055506000811115612d7f573073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d769190613084565b60405180910390a35b8088612d8b9190613a52565b9450505050509392505050565b6000804790506000600267ffffffffffffffff811115612dbb57612dba6134d4565b5b604051908082528060200260200182016040528015612de95781602001602082028036833780820191505090505b5090503081600081518110612e0157612e00613ca8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ea8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ecc9190614230565b81600181518110612ee057612edf613ca8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f4730600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686611f20565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b8152600401612fab959493929190614356565b600060405180830381600087803b158015612fc557600080fd5b505af1158015612fd9573d6000803e3d6000fd5b505050508147612fe99190613a52565b92505050919050565b6000604051905090565b600080fd5b600080fd5b60008115159050919050565b61301b81613006565b811461302657600080fd5b50565b60008135905061303881613012565b92915050565b60006020828403121561305457613053612ffc565b5b600061306284828501613029565b91505092915050565b6000819050919050565b61307e8161306b565b82525050565b60006020820190506130996000830184613075565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130d95780820151818401526020810190506130be565b60008484015250505050565b6000601f19601f8301169050919050565b60006131018261309f565b61310b81856130aa565b935061311b8185602086016130bb565b613124816130e5565b840191505092915050565b6000602082019050818103600083015261314981846130f6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061317c82613151565b9050919050565b61318c81613171565b811461319757600080fd5b50565b6000813590506131a981613183565b92915050565b6131b88161306b565b81146131c357600080fd5b50565b6000813590506131d5816131af565b92915050565b600080604083850312156131f2576131f1612ffc565b5b60006132008582860161319a565b9250506020613211858286016131c6565b9150509250929050565b61322481613006565b82525050565b600060208201905061323f600083018461321b565b92915050565b600060ff82169050919050565b61325b81613245565b811461326657600080fd5b50565b60008135905061327881613252565b92915050565b6000806040838503121561329557613294612ffc565b5b60006132a385828601613269565b92505060206132b485828601613269565b9150509250929050565b6000602082840312156132d4576132d3612ffc565b5b60006132e28482850161319a565b91505092915050565b6000806040838503121561330257613301612ffc565b5b60006133108582860161319a565b925050602061332185828601613029565b9150509250929050565b60006020828403121561334157613340612ffc565b5b600061334f848285016131c6565b91505092915050565b60008060006060848603121561337157613370612ffc565b5b600061337f8682870161319a565b93505060206133908682870161319a565b92505060406133a1868287016131c6565b9150509250925092565b6133b481613245565b82525050565b60006020820190506133cf60008301846133ab565b92915050565b600080604083850312156133ec576133eb612ffc565b5b60006133fa858286016131c6565b925050602061340b858286016131c6565b9150509250929050565b600060408201905061342a60008301856133ab565b61343760208301846133ab565b9392505050565b61344781613171565b82525050565b6000602082019050613462600083018461343e565b92915050565b6000806000806080858703121561348257613481612ffc565b5b60006134908782880161319a565b94505060206134a18782880161319a565b93505060406134b2878288016131c6565b92505060606134c3878288016131c6565b91505092959194509250565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61350c826130e5565b810181811067ffffffffffffffff8211171561352b5761352a6134d4565b5b80604052505050565b600061353e612ff2565b905061354a8282613503565b919050565b600067ffffffffffffffff82111561356a576135696134d4565b5b602082029050602081019050919050565b600080fd5b600061359361358e8461354f565b613534565b905080838252602082019050602084028301858111156135b6576135b561357b565b5b835b818110156135df57806135cb888261319a565b8452602084019350506020810190506135b8565b5050509392505050565b600082601f8301126135fe576135fd6134cf565b5b813561360e848260208601613580565b91505092915050565b6000806040838503121561362e5761362d612ffc565b5b600083013567ffffffffffffffff81111561364c5761364b613001565b5b613658858286016135e9565b925050602061366985828601613029565b9150509250929050565b6000806040838503121561368a57613689612ffc565b5b60006136988582860161319a565b92505060206136a98582860161319a565b9150509250929050565b6000819050919050565b60006136d86136d36136ce84613151565b6136b3565b613151565b9050919050565b60006136ea826136bd565b9050919050565b60006136fc826136df565b9050919050565b61370c816136f1565b82525050565b60006020820190506137276000830184613703565b92915050565b60006040820190506137426000830185613075565b61374f6020830184613075565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061378c6020836130aa565b915061379782613756565b602082019050919050565b600060208201905081810360008301526137bb8161377f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006137fc82613245565b915061380783613245565b9250828201905060ff8111156138205761381f6137c2565b5b92915050565b7f43616e2774207365742074617820746f6f206869676800000000000000000000600082015250565b600061385c6016836130aa565b915061386782613826565b602082019050919050565b6000602082019050818103600083015261388b8161384f565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156138e9578086048111156138c5576138c46137c2565b5b60018516156138d45780820291505b80810290506138e285613892565b94506138a9565b94509492505050565b60008261390257600190506139be565b8161391057600090506139be565b816001811461392657600281146139305761395f565b60019150506139be565b60ff841115613942576139416137c2565b5b8360020a915084821115613959576139586137c2565b5b506139be565b5060208310610133831016604e8410600b84101617156139945782820a90508381111561398f5761398e6137c2565b5b6139be565b6139a1848484600161389f565b925090508184048111156139b8576139b76137c2565b5b81810290505b9392505050565b60006139d08261306b565b91506139db83613245565b9250613a087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846138f2565b905092915050565b6000613a1b8261306b565b9150613a268361306b565b9250828202613a348161306b565b91508282048414831517613a4b57613a4a6137c2565b5b5092915050565b6000613a5d8261306b565b9150613a688361306b565b9250828203905081811115613a8057613a7f6137c2565b5b92915050565b6000613a918261306b565b9150613a9c8361306b565b9250828201905080821115613ab457613ab36137c2565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613af48261306b565b9150613aff8361306b565b925082613b0f57613b0e613aba565b5b828204905092915050565b7f496e76616c69642053657474696e677300000000000000000000000000000000600082015250565b6000613b506010836130aa565b9150613b5b82613b1a565b602082019050919050565b60006020820190508181036000830152613b7f81613b43565b9050919050565b7f496e73756666696369656e74204554482062616c616e63650000000000000000600082015250565b6000613bbc6018836130aa565b9150613bc782613b86565b602082019050919050565b60006020820190508181036000830152613beb81613baf565b9050919050565b6000613bfd8261306b565b9150613c088361306b565b9250613c357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846138f2565b905092915050565b6000604082019050613c52600083018561343e565b613c5f6020830184613075565b9392505050565b600081519050613c7581613012565b92915050565b600060208284031215613c9157613c90612ffc565b5b6000613c9f84828501613c66565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613ce28261306b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d1457613d136137c2565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613d7b6026836130aa565b9150613d8682613d1f565b604082019050919050565b60006020820190508181036000830152613daa81613d6e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613e0d6024836130aa565b9150613e1882613db1565b604082019050919050565b60006020820190508181036000830152613e3c81613e00565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e9f6022836130aa565b9150613eaa82613e43565b604082019050919050565b60006020820190508181036000830152613ece81613e92565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613f316025836130aa565b9150613f3c82613ed5565b604082019050919050565b60006020820190508181036000830152613f6081613f24565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613fc36023836130aa565b9150613fce82613f67565b604082019050919050565b60006020820190508181036000830152613ff281613fb6565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006140556029836130aa565b915061406082613ff9565b604082019050919050565b6000602082019050818103600083015261408481614048565b9050919050565b7f426c61636b6c69737465642c2063616e27742074726164650000000000000000600082015250565b60006140c16018836130aa565b91506140cc8261408b565b602082019050919050565b600060208201905081810360008301526140f0816140b4565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865205f6d617860008201527f5478416d6f756e742e0000000000000000000000000000000000000000000000602082015250565b60006141536029836130aa565b915061415e826140f7565b604082019050919050565b6000602082019050818103600083015261418281614146565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865205f6d617860008201527f57616c6c65742e00000000000000000000000000000000000000000000000000602082015250565b60006141e56027836130aa565b91506141f082614189565b604082019050919050565b60006020820190508181036000830152614214816141d8565b9050919050565b60008151905061422a81613183565b92915050565b60006020828403121561424657614245612ffc565b5b60006142548482850161421b565b91505092915050565b6000819050919050565b600061428261427d6142788461425d565b6136b3565b61306b565b9050919050565b61429281614267565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142cd81613171565b82525050565b60006142df83836142c4565b60208301905092915050565b6000602082019050919050565b600061430382614298565b61430d81856142a3565b9350614318836142b4565b8060005b8381101561434957815161433088826142d3565b975061433b836142eb565b92505060018101905061431c565b5085935050505092915050565b600060a08201905061436b6000830188613075565b6143786020830187614289565b818103604083015261438a81866142f8565b9050614399606083018561343e565b6143a66080830184613075565b969550505050505056fea2646970667358221220d2b274de745e9af5138e83f14f23e82c0e112380301bb1941aae5a82122da16a64736f6c63430008130033

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.