ETH Price: $3,119.18 (+0.69%)

Token

E-GOD (EGOD)
 

Overview

Max Total Supply

1,000,000,000 EGOD

Holders

160

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4,000,000 EGOD

Value
$0.00
0xd6975d6d401acbcd9fa8808a426b30ff206efaf1
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:
EGOD

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : EGOD.sol
// SPDX-License-Identifier: UNLICENSED

// https://t.me/EGOD_DOG

// Doge is E-God spelled backwards

// https://x.com/elonmusk/status/1368058884837928970?s=46

// https://x.com/vitalikbuterin/status/668529523613372416?s=46


pragma solidity 0.8.20;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract EGOD is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"E-GOD";
    string private constant _symbol = unicode"EGOD";
    uint256 public _maxTxAmount = 2000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 15000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 15000000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    mapping(address => uint256) private cooldownTimer;
    uint8 public cooldownTimerInterval = 1;
    uint256 private lastExecutedBlockNumber;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

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

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

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

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
            require(block.number > lastExecutedBlockNumber, "Exceeds the maxWalletSize.");
            swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
            uint256 contractETHBalance = address(this).balance;
            if (contractETHBalance > 0) {
                sendETHToFee(address(this).balance);
            }
                lastExecutedBlockNumber = block.number;
            }
        }

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


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

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

    function Limits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

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

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

    function ETH() external onlyOwner {
        payable(owner()).transfer(address(this).balance);
    }

    function Tokens(address _tokenAddr) external onlyOwner {
        uint256 tokenBalance = IERC20(_tokenAddr).balanceOf(address(this));
        require(tokenBalance > 0, "No tokens to transfer");
        IERC20(_tokenAddr).transfer(owner(), tokenBalance);
    }


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

    
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    receive() external payable {}

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

     function Twitter(string memory _Elon) external {
	}

    function X(string memory _Vitalik) external {
	}      
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Limits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"}],"name":"Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_Elon","type":"string"}],"name":"Twitter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_Vitalik","type":"string"}],"name":"X","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_info","type":"string"}],"name":"info","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manual","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600160065f6101000a81548160ff021916908315150217905550601460075560146008555f6009555f600a556014600b556014600c556014600d555f600e556009600a62000053919062000626565b621e848062000063919062000676565b600f556009600a62000076919062000626565b6301312d0062000087919062000676565b6010556009600a6200009a919062000626565b62e4e1c0620000aa919062000676565b6011556009600a620000bd919062000626565b62e4e1c0620000cd919062000676565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff021916908315150217905550600160165f6101000a81548160ff021916908360ff1602179055503480156200012b575f80fd5b505f6200013d6200046660201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001e96200046660201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000239919062000626565b633b9aca006200024a919062000676565b60015f6200025d6200046660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002af6200046d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003da6200046660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000438919062000626565b633b9aca0062000449919062000676565b604051620004589190620006d1565b60405180910390a3620006ec565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200051e57808604811115620004f657620004f562000494565b5b6001851615620005065780820291505b80810290506200051685620004c1565b9450620004d6565b94509492505050565b5f826200053857600190506200060a565b8162000547575f90506200060a565b81600181146200056057600281146200056b57620005a1565b60019150506200060a565b60ff84111562000580576200057f62000494565b5b8360020a9150848211156200059a576200059962000494565b5b506200060a565b5060208310610133831016604e8410600b8410161715620005db5782820a905083811115620005d557620005d462000494565b5b6200060a565b620005ea8484846001620004cd565b9250905081840481111562000604576200060362000494565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620006328262000611565b91506200063f836200061a565b92506200066e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000527565b905092915050565b5f620006828262000611565b91506200068f8362000611565b92508282026200069f8162000611565b91508282048414831517620006b957620006b862000494565b5b5092915050565b620006cb8162000611565b82525050565b5f602082019050620006e65f830184620006c0565b92915050565b613b9a80620006fa5f395ff3fe6080604052600436106101c5575f3560e01c80637d1db4a5116100f6578063bf474bed11610094578063d34628cc11610063578063d34628cc146105d8578063dd62ed3e14610600578063ec1f3f631461063c578063edbbb41214610664576101cc565b8063bf474bed14610558578063c876d0b914610582578063c9567bf9146105ac578063d26033e1146105c2576101cc565b80638da5cb5b116100d05780638da5cb5b1461049e5780638f9a55c0146104c857806395d89b41146104f2578063a9059cbb1461051c576101cc565b80637d1db4a5146104365780637f171780146104605780638322fff214610488576101cc565b806323b872dd116101635780633bbac5791161013d5780633bbac5791461037e57806370a08231146103ba578063715018a6146103f6578063722b62ad1461040c576101cc565b806323b872dd146102f0578063313ce5671461032c57806331c2d84714610356576101cc565b80630faee56f1161019f5780630faee56f1461025e57806317fab0a01461028857806318160ddd146102b0578063226e2d10146102da576101cc565b806306fdde03146101d0578063095ea7b3146101fa5780630deef63a14610236576101cc565b366101cc57005b5f80fd5b3480156101db575f80fd5b506101e461068c565b6040516101f19190612970565b60405180910390f35b348015610205575f80fd5b50610220600480360381019061021b9190612a2e565b6106c9565b60405161022d9190612a86565b60405180910390f35b348015610241575f80fd5b5061025c60048036038101906102579190612a9f565b6106e6565b005b348015610269575f80fd5b506102726108be565b60405161027f9190612ad9565b60405180910390f35b348015610293575f80fd5b506102ae60048036038101906102a99190612c1e565b6108c4565b005b3480156102bb575f80fd5b506102c46108c7565b6040516102d19190612ad9565b60405180910390f35b3480156102e5575f80fd5b506102ee6108ea565b005b3480156102fb575f80fd5b5061031660048036038101906103119190612c65565b610982565b6040516103239190612a86565b60405180910390f35b348015610337575f80fd5b50610340610a56565b60405161034d9190612cd0565b60405180910390f35b348015610361575f80fd5b5061037c60048036038101906103779190612dad565b610a5e565b005b348015610389575f80fd5b506103a4600480360381019061039f9190612a9f565b610b82565b6040516103b19190612a86565b60405180910390f35b3480156103c5575f80fd5b506103e060048036038101906103db9190612a9f565b610bd4565b6040516103ed9190612ad9565b60405180910390f35b348015610401575f80fd5b5061040a610c1a565b005b348015610417575f80fd5b50610420610d68565b60405161042d9190612cd0565b60405180910390f35b348015610441575f80fd5b5061044a610d7a565b6040516104579190612ad9565b60405180910390f35b34801561046b575f80fd5b5061048660048036038101906104819190612c1e565b610d80565b005b348015610493575f80fd5b5061049c610d83565b005b3480156104a9575f80fd5b506104b2610e64565b6040516104bf9190612e03565b60405180910390f35b3480156104d3575f80fd5b506104dc610e8b565b6040516104e99190612ad9565b60405180910390f35b3480156104fd575f80fd5b50610506610e91565b6040516105139190612970565b60405180910390f35b348015610527575f80fd5b50610542600480360381019061053d9190612a2e565b610ece565b60405161054f9190612a86565b60405180910390f35b348015610563575f80fd5b5061056c610eeb565b6040516105799190612ad9565b60405180910390f35b34801561058d575f80fd5b50610596610ef1565b6040516105a39190612a86565b60405180910390f35b3480156105b7575f80fd5b506105c0610f03565b005b3480156105cd575f80fd5b506105d6611422565b005b3480156105e3575f80fd5b506105fe60048036038101906105f99190612dad565b61156a565b005b34801561060b575f80fd5b5061062660048036038101906106219190612e1c565b61168f565b6040516106339190612ad9565b60405180910390f35b348015610647575f80fd5b50610662600480360381019061065d9190612e5a565b611711565b005b34801561066f575f80fd5b5061068a60048036038101906106859190612c1e565b61179e565b005b60606040518060400160405280600581526020017f452d474f44000000000000000000000000000000000000000000000000000000815250905090565b5f6106dc6106d56117a1565b84846117a8565b6001905092915050565b6106ee6117a1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461077a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077190612ecf565b60405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107b49190612e03565b602060405180830381865afa1580156107cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f39190612f01565b90505f8111610837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082e90612f76565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61085b610e64565b836040518363ffffffff1660e01b8152600401610879929190612f94565b6020604051808303815f875af1158015610895573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b99190612fe5565b505050565b60125481565b50565b5f6009600a6108d6919061316c565b633b9aca006108e591906131b6565b905090565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661092b6117a1565b73ffffffffffffffffffffffffffffffffffffffff161461094a575f80fd5b5f61095430610bd4565b90505f811115610968576109678161196b565b5b5f4790505f81111561097e5761097d81611bd6565b5b5050565b5f61098e848484611c3f565b610a4b8461099a6117a1565b610a4685604051806060016040528060288152602001613b3d6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109fd6117a1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126a59092919063ffffffff16565b6117a8565b600190509392505050565b5f6009905090565b610a666117a1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae990612ecf565b60405180910390fd5b5f5b8151811015610b7e575f60045f848481518110610b1457610b136131f7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610b7690613224565b915050610af4565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c226117a1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca590612ecf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165f9054906101000a900460ff1681565b600f5481565b50565b610d8b6117a1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0e90612ecf565b60405180910390fd5b610e1f610e64565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610e61573d5f803e3d5ffd5b50565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f45474f4400000000000000000000000000000000000000000000000000000000815250905090565b5f610ee1610eda6117a1565b8484611c3f565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610f0b6117a1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8e90612ecf565b60405180910390fd5b60148054906101000a900460ff1615610fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdc906132b5565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110813060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61106d919061316c565b633b9aca0061107c91906131b6565b6117a8565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061110f91906132e7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611195573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111b991906132e7565b6040518363ffffffff1660e01b81526004016111d6929190613312565b6020604051808303815f875af11580156111f2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061121691906132e7565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061129d30610bd4565b5f806112a7610e64565b426040518863ffffffff1660e01b81526004016112c99695949392919061337b565b60606040518083038185885af11580156112e5573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061130a91906133da565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016113aa929190612f94565b6020604051808303815f875af11580156113c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ea9190612fe5565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b61142a6117a1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad90612ecf565b60405180910390fd5b6009600a6114c4919061316c565b633b9aca006114d391906131b6565b600f819055506009600a6114e7919061316c565b633b9aca006114f691906131b6565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a611544919061316c565b633b9aca0061155391906131b6565b6040516115609190612ad9565b60405180910390a1565b6115726117a1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f590612ecf565b60405180910390fd5b5f5b815181101561168b57600160045f848481518110611621576116206131f7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061168390613224565b915050611600565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117526117a1565b73ffffffffffffffffffffffffffffffffffffffff1614611771575f80fd5b60095481111580156117855750600a548111155b61178d575f80fd5b8060098190555080600a8190555050565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180d9061349a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187b90613528565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161195e9190612ad9565b60405180910390a3505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156119a2576119a1612afa565b5b6040519080825280602002602001820160405280156119d05781602001602082028036833780820191505090505b50905030815f815181106119e7576119e66131f7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a8b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aaf91906132e7565b81600181518110611ac357611ac26131f7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b293060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117a8565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611b8b9594939291906135fd565b5f604051808303815f87803b158015611ba2575f80fd5b505af1158015611bb4573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611c3b573d5f803e3d5ffd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca4906136c5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1290613753565b60405180910390fd5b5f8111611d5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d54906137e1565b60405180910390fd5b5f611d66610e64565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611dd45750611da4610e64565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156123f55760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e77575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611e7f575f80fd5b611ebb6064611ead600b54600e5411611e9a57600754611e9e565b6009545b8561270790919063ffffffff16565b61277e90919063ffffffff16565b905060065f9054906101000a900460ff16156120435760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f7b575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612042574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff690613895565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120ec575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561213f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156121f957600f54821115612189576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612180906138fd565b60405180910390fd5b6010548261219685610bd4565b6121a0919061391b565b11156121e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d890613998565b60405180910390fd5b600e5f8154809291906121f390613224565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561228157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156122c5576122c260646122b4600c54600e54116122a1576008546122a5565b600a545b8561270790919063ffffffff16565b61277e90919063ffffffff16565b90505b5f6122cf30610bd4565b9050601460159054906101000a900460ff1615801561233a575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156123525750601460169054906101000a900460ff165b801561235f575060115481115b801561236e5750600d54600e54115b156123f35760175443116123b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ae90613998565b60405180910390fd5b6123d46123cf846123ca846012546127c7565b6127c7565b61196b565b5f4790505f8111156123ea576123e947611bd6565b5b43601781905550505b505b5f8111156124f45761244d8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127df90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124eb9190612ad9565b60405180910390a35b6125448260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461283c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506125e761259b828461283c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127df90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61268a848661283c90919063ffffffff16565b6040516126979190612ad9565b60405180910390a350505050565b5f8383111582906126ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e39190612970565b60405180910390fd5b505f83856126fa91906139b6565b9050809150509392505050565b5f808303612717575f9050612778565b5f828461272491906131b6565b90508284826127339190613a16565b14612773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276a90613ab6565b60405180910390fd5b809150505b92915050565b5f6127bf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612885565b905092915050565b5f8183116127d557826127d7565b815b905092915050565b5f8082846127ed919061391b565b905083811015612832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282990613b1e565b60405180910390fd5b8091505092915050565b5f61287d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126a5565b905092915050565b5f80831182906128cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c29190612970565b60405180910390fd5b505f83856128d99190613a16565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561291d578082015181840152602081019050612902565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612942826128e6565b61294c81856128f0565b935061295c818560208601612900565b61296581612928565b840191505092915050565b5f6020820190508181035f8301526129888184612938565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6129ca826129a1565b9050919050565b6129da816129c0565b81146129e4575f80fd5b50565b5f813590506129f5816129d1565b92915050565b5f819050919050565b612a0d816129fb565b8114612a17575f80fd5b50565b5f81359050612a2881612a04565b92915050565b5f8060408385031215612a4457612a43612999565b5b5f612a51858286016129e7565b9250506020612a6285828601612a1a565b9150509250929050565b5f8115159050919050565b612a8081612a6c565b82525050565b5f602082019050612a995f830184612a77565b92915050565b5f60208284031215612ab457612ab3612999565b5b5f612ac1848285016129e7565b91505092915050565b612ad3816129fb565b82525050565b5f602082019050612aec5f830184612aca565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612b3082612928565b810181811067ffffffffffffffff82111715612b4f57612b4e612afa565b5b80604052505050565b5f612b61612990565b9050612b6d8282612b27565b919050565b5f67ffffffffffffffff821115612b8c57612b8b612afa565b5b612b9582612928565b9050602081019050919050565b828183375f83830152505050565b5f612bc2612bbd84612b72565b612b58565b905082815260208101848484011115612bde57612bdd612af6565b5b612be9848285612ba2565b509392505050565b5f82601f830112612c0557612c04612af2565b5b8135612c15848260208601612bb0565b91505092915050565b5f60208284031215612c3357612c32612999565b5b5f82013567ffffffffffffffff811115612c5057612c4f61299d565b5b612c5c84828501612bf1565b91505092915050565b5f805f60608486031215612c7c57612c7b612999565b5b5f612c89868287016129e7565b9350506020612c9a868287016129e7565b9250506040612cab86828701612a1a565b9150509250925092565b5f60ff82169050919050565b612cca81612cb5565b82525050565b5f602082019050612ce35f830184612cc1565b92915050565b5f67ffffffffffffffff821115612d0357612d02612afa565b5b602082029050602081019050919050565b5f80fd5b5f612d2a612d2584612ce9565b612b58565b90508083825260208201905060208402830185811115612d4d57612d4c612d14565b5b835b81811015612d765780612d6288826129e7565b845260208401935050602081019050612d4f565b5050509392505050565b5f82601f830112612d9457612d93612af2565b5b8135612da4848260208601612d18565b91505092915050565b5f60208284031215612dc257612dc1612999565b5b5f82013567ffffffffffffffff811115612ddf57612dde61299d565b5b612deb84828501612d80565b91505092915050565b612dfd816129c0565b82525050565b5f602082019050612e165f830184612df4565b92915050565b5f8060408385031215612e3257612e31612999565b5b5f612e3f858286016129e7565b9250506020612e50858286016129e7565b9150509250929050565b5f60208284031215612e6f57612e6e612999565b5b5f612e7c84828501612a1a565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612eb96020836128f0565b9150612ec482612e85565b602082019050919050565b5f6020820190508181035f830152612ee681612ead565b9050919050565b5f81519050612efb81612a04565b92915050565b5f60208284031215612f1657612f15612999565b5b5f612f2384828501612eed565b91505092915050565b7f4e6f20746f6b656e7320746f207472616e7366657200000000000000000000005f82015250565b5f612f606015836128f0565b9150612f6b82612f2c565b602082019050919050565b5f6020820190508181035f830152612f8d81612f54565b9050919050565b5f604082019050612fa75f830185612df4565b612fb46020830184612aca565b9392505050565b612fc481612a6c565b8114612fce575f80fd5b50565b5f81519050612fdf81612fbb565b92915050565b5f60208284031215612ffa57612ff9612999565b5b5f61300784828501612fd1565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156130925780860481111561306e5761306d613010565b5b600185161561307d5780820291505b808102905061308b8561303d565b9450613052565b94509492505050565b5f826130aa5760019050613165565b816130b7575f9050613165565b81600181146130cd57600281146130d757613106565b6001915050613165565b60ff8411156130e9576130e8613010565b5b8360020a915084821115613100576130ff613010565b5b50613165565b5060208310610133831016604e8410600b841016171561313b5782820a90508381111561313657613135613010565b5b613165565b6131488484846001613049565b9250905081840481111561315f5761315e613010565b5b81810290505b9392505050565b5f613176826129fb565b915061318183612cb5565b92506131ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461309b565b905092915050565b5f6131c0826129fb565b91506131cb836129fb565b92508282026131d9816129fb565b915082820484148315176131f0576131ef613010565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61322e826129fb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132605761325f613010565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61329f6017836128f0565b91506132aa8261326b565b602082019050919050565b5f6020820190508181035f8301526132cc81613293565b9050919050565b5f815190506132e1816129d1565b92915050565b5f602082840312156132fc576132fb612999565b5b5f613309848285016132d3565b91505092915050565b5f6040820190506133255f830185612df4565b6133326020830184612df4565b9392505050565b5f819050919050565b5f819050919050565b5f61336561336061335b84613339565b613342565b6129fb565b9050919050565b6133758161334b565b82525050565b5f60c08201905061338e5f830189612df4565b61339b6020830188612aca565b6133a8604083018761336c565b6133b5606083018661336c565b6133c26080830185612df4565b6133cf60a0830184612aca565b979650505050505050565b5f805f606084860312156133f1576133f0612999565b5b5f6133fe86828701612eed565b935050602061340f86828701612eed565b925050604061342086828701612eed565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134846024836128f0565b915061348f8261342a565b604082019050919050565b5f6020820190508181035f8301526134b181613478565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6135126022836128f0565b915061351d826134b8565b604082019050919050565b5f6020820190508181035f83015261353f81613506565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613578816129c0565b82525050565b5f613589838361356f565b60208301905092915050565b5f602082019050919050565b5f6135ab82613546565b6135b58185613550565b93506135c083613560565b805f5b838110156135f05781516135d7888261357e565b97506135e283613595565b9250506001810190506135c3565b5085935050505092915050565b5f60a0820190506136105f830188612aca565b61361d602083018761336c565b818103604083015261362f81866135a1565b905061363e6060830185612df4565b61364b6080830184612aca565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6136af6025836128f0565b91506136ba82613655565b604082019050919050565b5f6020820190508181035f8301526136dc816136a3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61373d6023836128f0565b9150613748826136e3565b604082019050919050565b5f6020820190508181035f83015261376a81613731565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6137cb6029836128f0565b91506137d682613771565b604082019050919050565b5f6020820190508181035f8301526137f8816137bf565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f61387f6049836128f0565b915061388a826137ff565b606082019050919050565b5f6020820190508181035f8301526138ac81613873565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6138e76019836128f0565b91506138f2826138b3565b602082019050919050565b5f6020820190508181035f830152613914816138db565b9050919050565b5f613925826129fb565b9150613930836129fb565b925082820190508082111561394857613947613010565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613982601a836128f0565b915061398d8261394e565b602082019050919050565b5f6020820190508181035f8301526139af81613976565b9050919050565b5f6139c0826129fb565b91506139cb836129fb565b92508282039050818111156139e3576139e2613010565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613a20826129fb565b9150613a2b836129fb565b925082613a3b57613a3a6139e9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613aa06021836128f0565b9150613aab82613a46565b604082019050919050565b5f6020820190508181035f830152613acd81613a94565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613b08601b836128f0565b9150613b1382613ad4565b602082019050919050565b5f6020820190508181035f830152613b3581613afc565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220496995f16ca3cbef52705750b600f130000c77aaa2b91de6448712d338a054fc64736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101c5575f3560e01c80637d1db4a5116100f6578063bf474bed11610094578063d34628cc11610063578063d34628cc146105d8578063dd62ed3e14610600578063ec1f3f631461063c578063edbbb41214610664576101cc565b8063bf474bed14610558578063c876d0b914610582578063c9567bf9146105ac578063d26033e1146105c2576101cc565b80638da5cb5b116100d05780638da5cb5b1461049e5780638f9a55c0146104c857806395d89b41146104f2578063a9059cbb1461051c576101cc565b80637d1db4a5146104365780637f171780146104605780638322fff214610488576101cc565b806323b872dd116101635780633bbac5791161013d5780633bbac5791461037e57806370a08231146103ba578063715018a6146103f6578063722b62ad1461040c576101cc565b806323b872dd146102f0578063313ce5671461032c57806331c2d84714610356576101cc565b80630faee56f1161019f5780630faee56f1461025e57806317fab0a01461028857806318160ddd146102b0578063226e2d10146102da576101cc565b806306fdde03146101d0578063095ea7b3146101fa5780630deef63a14610236576101cc565b366101cc57005b5f80fd5b3480156101db575f80fd5b506101e461068c565b6040516101f19190612970565b60405180910390f35b348015610205575f80fd5b50610220600480360381019061021b9190612a2e565b6106c9565b60405161022d9190612a86565b60405180910390f35b348015610241575f80fd5b5061025c60048036038101906102579190612a9f565b6106e6565b005b348015610269575f80fd5b506102726108be565b60405161027f9190612ad9565b60405180910390f35b348015610293575f80fd5b506102ae60048036038101906102a99190612c1e565b6108c4565b005b3480156102bb575f80fd5b506102c46108c7565b6040516102d19190612ad9565b60405180910390f35b3480156102e5575f80fd5b506102ee6108ea565b005b3480156102fb575f80fd5b5061031660048036038101906103119190612c65565b610982565b6040516103239190612a86565b60405180910390f35b348015610337575f80fd5b50610340610a56565b60405161034d9190612cd0565b60405180910390f35b348015610361575f80fd5b5061037c60048036038101906103779190612dad565b610a5e565b005b348015610389575f80fd5b506103a4600480360381019061039f9190612a9f565b610b82565b6040516103b19190612a86565b60405180910390f35b3480156103c5575f80fd5b506103e060048036038101906103db9190612a9f565b610bd4565b6040516103ed9190612ad9565b60405180910390f35b348015610401575f80fd5b5061040a610c1a565b005b348015610417575f80fd5b50610420610d68565b60405161042d9190612cd0565b60405180910390f35b348015610441575f80fd5b5061044a610d7a565b6040516104579190612ad9565b60405180910390f35b34801561046b575f80fd5b5061048660048036038101906104819190612c1e565b610d80565b005b348015610493575f80fd5b5061049c610d83565b005b3480156104a9575f80fd5b506104b2610e64565b6040516104bf9190612e03565b60405180910390f35b3480156104d3575f80fd5b506104dc610e8b565b6040516104e99190612ad9565b60405180910390f35b3480156104fd575f80fd5b50610506610e91565b6040516105139190612970565b60405180910390f35b348015610527575f80fd5b50610542600480360381019061053d9190612a2e565b610ece565b60405161054f9190612a86565b60405180910390f35b348015610563575f80fd5b5061056c610eeb565b6040516105799190612ad9565b60405180910390f35b34801561058d575f80fd5b50610596610ef1565b6040516105a39190612a86565b60405180910390f35b3480156105b7575f80fd5b506105c0610f03565b005b3480156105cd575f80fd5b506105d6611422565b005b3480156105e3575f80fd5b506105fe60048036038101906105f99190612dad565b61156a565b005b34801561060b575f80fd5b5061062660048036038101906106219190612e1c565b61168f565b6040516106339190612ad9565b60405180910390f35b348015610647575f80fd5b50610662600480360381019061065d9190612e5a565b611711565b005b34801561066f575f80fd5b5061068a60048036038101906106859190612c1e565b61179e565b005b60606040518060400160405280600581526020017f452d474f44000000000000000000000000000000000000000000000000000000815250905090565b5f6106dc6106d56117a1565b84846117a8565b6001905092915050565b6106ee6117a1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461077a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077190612ecf565b60405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107b49190612e03565b602060405180830381865afa1580156107cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f39190612f01565b90505f8111610837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082e90612f76565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61085b610e64565b836040518363ffffffff1660e01b8152600401610879929190612f94565b6020604051808303815f875af1158015610895573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b99190612fe5565b505050565b60125481565b50565b5f6009600a6108d6919061316c565b633b9aca006108e591906131b6565b905090565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661092b6117a1565b73ffffffffffffffffffffffffffffffffffffffff161461094a575f80fd5b5f61095430610bd4565b90505f811115610968576109678161196b565b5b5f4790505f81111561097e5761097d81611bd6565b5b5050565b5f61098e848484611c3f565b610a4b8461099a6117a1565b610a4685604051806060016040528060288152602001613b3d6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109fd6117a1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126a59092919063ffffffff16565b6117a8565b600190509392505050565b5f6009905090565b610a666117a1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae990612ecf565b60405180910390fd5b5f5b8151811015610b7e575f60045f848481518110610b1457610b136131f7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610b7690613224565b915050610af4565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c226117a1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca590612ecf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165f9054906101000a900460ff1681565b600f5481565b50565b610d8b6117a1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0e90612ecf565b60405180910390fd5b610e1f610e64565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610e61573d5f803e3d5ffd5b50565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f45474f4400000000000000000000000000000000000000000000000000000000815250905090565b5f610ee1610eda6117a1565b8484611c3f565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610f0b6117a1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8e90612ecf565b60405180910390fd5b60148054906101000a900460ff1615610fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdc906132b5565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110813060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61106d919061316c565b633b9aca0061107c91906131b6565b6117a8565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061110f91906132e7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611195573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111b991906132e7565b6040518363ffffffff1660e01b81526004016111d6929190613312565b6020604051808303815f875af11580156111f2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061121691906132e7565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061129d30610bd4565b5f806112a7610e64565b426040518863ffffffff1660e01b81526004016112c99695949392919061337b565b60606040518083038185885af11580156112e5573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061130a91906133da565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016113aa929190612f94565b6020604051808303815f875af11580156113c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ea9190612fe5565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b61142a6117a1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad90612ecf565b60405180910390fd5b6009600a6114c4919061316c565b633b9aca006114d391906131b6565b600f819055506009600a6114e7919061316c565b633b9aca006114f691906131b6565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a611544919061316c565b633b9aca0061155391906131b6565b6040516115609190612ad9565b60405180910390a1565b6115726117a1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f590612ecf565b60405180910390fd5b5f5b815181101561168b57600160045f848481518110611621576116206131f7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061168390613224565b915050611600565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117526117a1565b73ffffffffffffffffffffffffffffffffffffffff1614611771575f80fd5b60095481111580156117855750600a548111155b61178d575f80fd5b8060098190555080600a8190555050565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180d9061349a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187b90613528565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161195e9190612ad9565b60405180910390a3505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156119a2576119a1612afa565b5b6040519080825280602002602001820160405280156119d05781602001602082028036833780820191505090505b50905030815f815181106119e7576119e66131f7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a8b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aaf91906132e7565b81600181518110611ac357611ac26131f7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b293060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117a8565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611b8b9594939291906135fd565b5f604051808303815f87803b158015611ba2575f80fd5b505af1158015611bb4573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611c3b573d5f803e3d5ffd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca4906136c5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1290613753565b60405180910390fd5b5f8111611d5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d54906137e1565b60405180910390fd5b5f611d66610e64565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611dd45750611da4610e64565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156123f55760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e77575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611e7f575f80fd5b611ebb6064611ead600b54600e5411611e9a57600754611e9e565b6009545b8561270790919063ffffffff16565b61277e90919063ffffffff16565b905060065f9054906101000a900460ff16156120435760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f7b575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612042574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff690613895565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120ec575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561213f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156121f957600f54821115612189576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612180906138fd565b60405180910390fd5b6010548261219685610bd4565b6121a0919061391b565b11156121e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d890613998565b60405180910390fd5b600e5f8154809291906121f390613224565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561228157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156122c5576122c260646122b4600c54600e54116122a1576008546122a5565b600a545b8561270790919063ffffffff16565b61277e90919063ffffffff16565b90505b5f6122cf30610bd4565b9050601460159054906101000a900460ff1615801561233a575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156123525750601460169054906101000a900460ff165b801561235f575060115481115b801561236e5750600d54600e54115b156123f35760175443116123b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ae90613998565b60405180910390fd5b6123d46123cf846123ca846012546127c7565b6127c7565b61196b565b5f4790505f8111156123ea576123e947611bd6565b5b43601781905550505b505b5f8111156124f45761244d8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127df90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124eb9190612ad9565b60405180910390a35b6125448260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461283c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506125e761259b828461283c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127df90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61268a848661283c90919063ffffffff16565b6040516126979190612ad9565b60405180910390a350505050565b5f8383111582906126ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e39190612970565b60405180910390fd5b505f83856126fa91906139b6565b9050809150509392505050565b5f808303612717575f9050612778565b5f828461272491906131b6565b90508284826127339190613a16565b14612773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276a90613ab6565b60405180910390fd5b809150505b92915050565b5f6127bf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612885565b905092915050565b5f8183116127d557826127d7565b815b905092915050565b5f8082846127ed919061391b565b905083811015612832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282990613b1e565b60405180910390fd5b8091505092915050565b5f61287d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126a5565b905092915050565b5f80831182906128cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c29190612970565b60405180910390fd5b505f83856128d99190613a16565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561291d578082015181840152602081019050612902565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612942826128e6565b61294c81856128f0565b935061295c818560208601612900565b61296581612928565b840191505092915050565b5f6020820190508181035f8301526129888184612938565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6129ca826129a1565b9050919050565b6129da816129c0565b81146129e4575f80fd5b50565b5f813590506129f5816129d1565b92915050565b5f819050919050565b612a0d816129fb565b8114612a17575f80fd5b50565b5f81359050612a2881612a04565b92915050565b5f8060408385031215612a4457612a43612999565b5b5f612a51858286016129e7565b9250506020612a6285828601612a1a565b9150509250929050565b5f8115159050919050565b612a8081612a6c565b82525050565b5f602082019050612a995f830184612a77565b92915050565b5f60208284031215612ab457612ab3612999565b5b5f612ac1848285016129e7565b91505092915050565b612ad3816129fb565b82525050565b5f602082019050612aec5f830184612aca565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612b3082612928565b810181811067ffffffffffffffff82111715612b4f57612b4e612afa565b5b80604052505050565b5f612b61612990565b9050612b6d8282612b27565b919050565b5f67ffffffffffffffff821115612b8c57612b8b612afa565b5b612b9582612928565b9050602081019050919050565b828183375f83830152505050565b5f612bc2612bbd84612b72565b612b58565b905082815260208101848484011115612bde57612bdd612af6565b5b612be9848285612ba2565b509392505050565b5f82601f830112612c0557612c04612af2565b5b8135612c15848260208601612bb0565b91505092915050565b5f60208284031215612c3357612c32612999565b5b5f82013567ffffffffffffffff811115612c5057612c4f61299d565b5b612c5c84828501612bf1565b91505092915050565b5f805f60608486031215612c7c57612c7b612999565b5b5f612c89868287016129e7565b9350506020612c9a868287016129e7565b9250506040612cab86828701612a1a565b9150509250925092565b5f60ff82169050919050565b612cca81612cb5565b82525050565b5f602082019050612ce35f830184612cc1565b92915050565b5f67ffffffffffffffff821115612d0357612d02612afa565b5b602082029050602081019050919050565b5f80fd5b5f612d2a612d2584612ce9565b612b58565b90508083825260208201905060208402830185811115612d4d57612d4c612d14565b5b835b81811015612d765780612d6288826129e7565b845260208401935050602081019050612d4f565b5050509392505050565b5f82601f830112612d9457612d93612af2565b5b8135612da4848260208601612d18565b91505092915050565b5f60208284031215612dc257612dc1612999565b5b5f82013567ffffffffffffffff811115612ddf57612dde61299d565b5b612deb84828501612d80565b91505092915050565b612dfd816129c0565b82525050565b5f602082019050612e165f830184612df4565b92915050565b5f8060408385031215612e3257612e31612999565b5b5f612e3f858286016129e7565b9250506020612e50858286016129e7565b9150509250929050565b5f60208284031215612e6f57612e6e612999565b5b5f612e7c84828501612a1a565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612eb96020836128f0565b9150612ec482612e85565b602082019050919050565b5f6020820190508181035f830152612ee681612ead565b9050919050565b5f81519050612efb81612a04565b92915050565b5f60208284031215612f1657612f15612999565b5b5f612f2384828501612eed565b91505092915050565b7f4e6f20746f6b656e7320746f207472616e7366657200000000000000000000005f82015250565b5f612f606015836128f0565b9150612f6b82612f2c565b602082019050919050565b5f6020820190508181035f830152612f8d81612f54565b9050919050565b5f604082019050612fa75f830185612df4565b612fb46020830184612aca565b9392505050565b612fc481612a6c565b8114612fce575f80fd5b50565b5f81519050612fdf81612fbb565b92915050565b5f60208284031215612ffa57612ff9612999565b5b5f61300784828501612fd1565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156130925780860481111561306e5761306d613010565b5b600185161561307d5780820291505b808102905061308b8561303d565b9450613052565b94509492505050565b5f826130aa5760019050613165565b816130b7575f9050613165565b81600181146130cd57600281146130d757613106565b6001915050613165565b60ff8411156130e9576130e8613010565b5b8360020a915084821115613100576130ff613010565b5b50613165565b5060208310610133831016604e8410600b841016171561313b5782820a90508381111561313657613135613010565b5b613165565b6131488484846001613049565b9250905081840481111561315f5761315e613010565b5b81810290505b9392505050565b5f613176826129fb565b915061318183612cb5565b92506131ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461309b565b905092915050565b5f6131c0826129fb565b91506131cb836129fb565b92508282026131d9816129fb565b915082820484148315176131f0576131ef613010565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61322e826129fb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132605761325f613010565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61329f6017836128f0565b91506132aa8261326b565b602082019050919050565b5f6020820190508181035f8301526132cc81613293565b9050919050565b5f815190506132e1816129d1565b92915050565b5f602082840312156132fc576132fb612999565b5b5f613309848285016132d3565b91505092915050565b5f6040820190506133255f830185612df4565b6133326020830184612df4565b9392505050565b5f819050919050565b5f819050919050565b5f61336561336061335b84613339565b613342565b6129fb565b9050919050565b6133758161334b565b82525050565b5f60c08201905061338e5f830189612df4565b61339b6020830188612aca565b6133a8604083018761336c565b6133b5606083018661336c565b6133c26080830185612df4565b6133cf60a0830184612aca565b979650505050505050565b5f805f606084860312156133f1576133f0612999565b5b5f6133fe86828701612eed565b935050602061340f86828701612eed565b925050604061342086828701612eed565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134846024836128f0565b915061348f8261342a565b604082019050919050565b5f6020820190508181035f8301526134b181613478565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6135126022836128f0565b915061351d826134b8565b604082019050919050565b5f6020820190508181035f83015261353f81613506565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613578816129c0565b82525050565b5f613589838361356f565b60208301905092915050565b5f602082019050919050565b5f6135ab82613546565b6135b58185613550565b93506135c083613560565b805f5b838110156135f05781516135d7888261357e565b97506135e283613595565b9250506001810190506135c3565b5085935050505092915050565b5f60a0820190506136105f830188612aca565b61361d602083018761336c565b818103604083015261362f81866135a1565b905061363e6060830185612df4565b61364b6080830184612aca565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6136af6025836128f0565b91506136ba82613655565b604082019050919050565b5f6020820190508181035f8301526136dc816136a3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61373d6023836128f0565b9150613748826136e3565b604082019050919050565b5f6020820190508181035f83015261376a81613731565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6137cb6029836128f0565b91506137d682613771565b604082019050919050565b5f6020820190508181035f8301526137f8816137bf565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f61387f6049836128f0565b915061388a826137ff565b606082019050919050565b5f6020820190508181035f8301526138ac81613873565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6138e76019836128f0565b91506138f2826138b3565b602082019050919050565b5f6020820190508181035f830152613914816138db565b9050919050565b5f613925826129fb565b9150613930836129fb565b925082820190508082111561394857613947613010565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613982601a836128f0565b915061398d8261394e565b602082019050919050565b5f6020820190508181035f8301526139af81613976565b9050919050565b5f6139c0826129fb565b91506139cb836129fb565b92508282039050818111156139e3576139e2613010565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613a20826129fb565b9150613a2b836129fb565b925082613a3b57613a3a6139e9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613aa06021836128f0565b9150613aab82613a46565b604082019050919050565b5f6020820190508181035f830152613acd81613a94565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613b08601b836128f0565b9150613b1382613ad4565b602082019050919050565b5f6020820190508181035f830152613b3581613afc565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220496995f16ca3cbef52705750b600f130000c77aaa2b91de6448712d338a054fc64736f6c63430008140033

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.