ETH Price: $2,524.81 (-0.13%)

Contract

0xf0fcC9B5eA17826B87f67EB98e71b357a730B595
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve203186552024-07-16 11:04:5945 days ago1721127899IN
0xf0fcC9B5...7a730B595
0 ETH0.000225254.79334911
Approve202693582024-07-09 13:53:5952 days ago1720533239IN
0xf0fcC9B5...7a730B595
0 ETH0.000149685.01739409
Approve202647692024-07-08 22:29:5953 days ago1720477799IN
0xf0fcC9B5...7a730B595
0 ETH0.000097212.06029099
Approve202611032024-07-08 10:09:3553 days ago1720433375IN
0xf0fcC9B5...7a730B595
0 ETH0.000279385.91348514
Approve202571162024-07-07 20:47:4754 days ago1720385267IN
0xf0fcC9B5...7a730B595
0 ETH0.000108522.29996339
Approve202567842024-07-07 19:40:4754 days ago1720381247IN
0xf0fcC9B5...7a730B595
0 ETH0.000078611.66611641
Transfer202553072024-07-07 14:43:3554 days ago1720363415IN
0xf0fcC9B5...7a730B595
0 ETH0.000196773.32558535
Approve202552942024-07-07 14:40:5954 days ago1720363259IN
0xf0fcC9B5...7a730B595
0 ETH0.000230284.88045532
Approve202552742024-07-07 14:36:5954 days ago1720363019IN
0xf0fcC9B5...7a730B595
0 ETH0.000192994.08508126
Approve202551572024-07-07 14:13:3554 days ago1720361615IN
0xf0fcC9B5...7a730B595
0 ETH0.000155923.30462103
Approve202551182024-07-07 14:05:4754 days ago1720361147IN
0xf0fcC9B5...7a730B595
0 ETH0.000290726.15351113
Approve202551172024-07-07 14:05:3554 days ago1720361135IN
0xf0fcC9B5...7a730B595
0 ETH0.000292726.1959477
Approve202550622024-07-07 13:54:3554 days ago1720360475IN
0xf0fcC9B5...7a730B595
0 ETH0.000131042.77724651
Approve202550392024-07-07 13:49:5954 days ago1720360199IN
0xf0fcC9B5...7a730B595
0 ETH0.000263725.5820249
Approve202550262024-07-07 13:47:2354 days ago1720360043IN
0xf0fcC9B5...7a730B595
0 ETH0.000169273.58743983
Approve202549922024-07-07 13:40:3554 days ago1720359635IN
0xf0fcC9B5...7a730B595
0 ETH0.000151976.08852849
Approve202549882024-07-07 13:39:4754 days ago1720359587IN
0xf0fcC9B5...7a730B595
0 ETH0.000286996.07464607
Approve202549742024-07-07 13:36:5954 days ago1720359419IN
0xf0fcC9B5...7a730B595
0 ETH0.000190434.03593887
Approve202549702024-07-07 13:36:1154 days ago1720359371IN
0xf0fcC9B5...7a730B595
0 ETH0.000198274.2
Approve202549512024-07-07 13:32:2354 days ago1720359143IN
0xf0fcC9B5...7a730B595
0 ETH0.000264595.60759171
Approve202549492024-07-07 13:31:5954 days ago1720359119IN
0xf0fcC9B5...7a730B595
0 ETH0.000156116.2544153
Approve202549482024-07-07 13:31:4754 days ago1720359107IN
0xf0fcC9B5...7a730B595
0 ETH0.000303716.42849704
Approve202549432024-07-07 13:30:4754 days ago1720359047IN
0xf0fcC9B5...7a730B595
0 ETH0.000319186.75584732
Approve202549292024-07-07 13:27:5954 days ago1720358879IN
0xf0fcC9B5...7a730B595
0 ETH0.00032436.86424224
Approve202549272024-07-07 13:27:3554 days ago1720358855IN
0xf0fcC9B5...7a730B595
0 ETH0.000315566.67927696
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
202550352024-07-07 13:49:1154 days ago1720360151
0xf0fcC9B5...7a730B595
0.0005971 ETH
202550352024-07-07 13:49:1154 days ago1720360151
0xf0fcC9B5...7a730B595
0.0113449 ETH
202550352024-07-07 13:49:1154 days ago1720360151
0xf0fcC9B5...7a730B595
0.011942 ETH
202550352024-07-07 13:49:1154 days ago1720360151
0xf0fcC9B5...7a730B595
0.00067118 ETH
202550352024-07-07 13:49:1154 days ago1720360151
0xf0fcC9B5...7a730B595
0.01275242 ETH
202550352024-07-07 13:49:1154 days ago1720360151
0xf0fcC9B5...7a730B595
0.0134236 ETH
202550302024-07-07 13:48:1154 days ago1720360091
0xf0fcC9B5...7a730B595
0.00068268 ETH
202550302024-07-07 13:48:1154 days ago1720360091
0xf0fcC9B5...7a730B595
0.0129711 ETH
202550302024-07-07 13:48:1154 days ago1720360091
0xf0fcC9B5...7a730B595
0.01365379 ETH
202550282024-07-07 13:47:4754 days ago1720360067
0xf0fcC9B5...7a730B595
0.00072172 ETH
202550282024-07-07 13:47:4754 days ago1720360067
0xf0fcC9B5...7a730B595
0.01371268 ETH
202550282024-07-07 13:47:4754 days ago1720360067
0xf0fcC9B5...7a730B595
0.0144344 ETH
202550252024-07-07 13:47:1154 days ago1720360031
0xf0fcC9B5...7a730B595
0.00075046 ETH
202550252024-07-07 13:47:1154 days ago1720360031
0xf0fcC9B5...7a730B595
0.01425891 ETH
202550252024-07-07 13:47:1154 days ago1720360031
0xf0fcC9B5...7a730B595
0.01500938 ETH
202550242024-07-07 13:46:5954 days ago1720360019
0xf0fcC9B5...7a730B595
0.00079125 ETH
202550242024-07-07 13:46:5954 days ago1720360019
0xf0fcC9B5...7a730B595
0.01503387 ETH
202550242024-07-07 13:46:5954 days ago1720360019
0xf0fcC9B5...7a730B595
0.01582513 ETH
202550202024-07-07 13:46:1154 days ago1720359971
0xf0fcC9B5...7a730B595
0.00094667 ETH
202550202024-07-07 13:46:1154 days ago1720359971
0xf0fcC9B5...7a730B595
0.01798673 ETH
202550202024-07-07 13:46:1154 days ago1720359971
0xf0fcC9B5...7a730B595
0.0189334 ETH
202550172024-07-07 13:45:3554 days ago1720359935
0xf0fcC9B5...7a730B595
0.00112038 ETH
202550172024-07-07 13:45:3554 days ago1720359935
0xf0fcC9B5...7a730B595
0.02128732 ETH
202550172024-07-07 13:45:3554 days ago1720359935
0xf0fcC9B5...7a730B595
0.02240771 ETH
202550162024-07-07 13:45:2354 days ago1720359923
0xf0fcC9B5...7a730B595
0.00118169 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Mao

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

  /*
      Website: http://mao-eth.com
    Telegram: https://t.me/mao_portal
  */
  
  pragma solidity ^0.8.26;

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

      function _msgData() internal view virtual returns (bytes calldata) {
          return msg.data;
      }
  }

  interface IERC20 {
      function totalSupply() external view returns (uint256);
      function balanceOf(address account) external view returns (uint256);
      function transfer(address to, 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 from,
          address to,
          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 IERC20Metadata is IERC20 {
      function name() external view returns (string memory);
      function symbol() external view returns (string memory);
      function decimals() external view returns (uint8);
  }

  contract ERC20 is Context, IERC20, IERC20Metadata {
      mapping(address => uint256) private _balances;
      mapping(address => mapping(address => uint256)) private _allowances;

      uint256 private _totalSupply;

      string private _name;
      string private _symbol;

      constructor(string memory name_, string memory symbol_) {
          _name = name_;
          _symbol = symbol_;
      }

      function name() public view virtual override returns (string memory) {
          return _name;
      }

      function symbol() public view virtual override returns (string memory) {
          return _symbol;
      }

      function decimals() public view virtual override returns (uint8) {
          return 18;
      }

      function totalSupply() public view virtual override returns (uint256) {
          return _totalSupply;
      }

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

      function transfer(address to, uint256 amount) public virtual override returns (bool) {
          address owner = _msgSender();
          _transfer(owner, to, amount);
          return true;
      }

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

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

      function transferFrom(
          address from,
          address to,
          uint256 amount
      ) public virtual override returns (bool) {
          address spender = _msgSender();
          _spendAllowance(from, spender, amount);
          _transfer(from, to, amount);
          return true;
      }

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

      function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
          address owner = _msgSender();
          uint256 currentAllowance = _allowances[owner][spender];
          require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
          unchecked {
              _approve(owner, spender, currentAllowance - subtractedValue);
          }

          return true;
      }

      function _transfer(
          address from,
          address to,
          uint256 amount
      ) internal virtual {
          require(from != address(0), "ERC20: transfer from the zero address");
          require(to != address(0), "ERC20: transfer to the zero address");

          _beforeTokenTransfer(from, to, amount);

          uint256 fromBalance = _balances[from];
          require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
          unchecked {
              _balances[from] = fromBalance - amount;
          }
          _balances[to] += amount;

          emit Transfer(from, to, amount);

          _afterTokenTransfer(from, to, amount);
      }

      function _mint(address account, uint256 amount) internal virtual {
          require(account != address(0), "ERC20: mint to the zero address");

          _beforeTokenTransfer(address(0), account, amount);

          _totalSupply += amount;
          _balances[account] += amount;
          emit Transfer(address(0), account, amount);

          _afterTokenTransfer(address(0), account, amount);
      }

      function _burn(address account, uint256 amount) internal virtual {
          require(account != address(0), "ERC20: burn from the zero address");

          _beforeTokenTransfer(account, address(0), amount);

          uint256 accountBalance = _balances[account];
          require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
          unchecked {
              _balances[account] = accountBalance - amount;
          }
          _totalSupply -= amount;

          emit Transfer(account, address(0), amount);

          _afterTokenTransfer(account, address(0), amount);
      }

      function _approve(
          address owner,
          address spender,
          uint256 amount
      ) internal virtual {
          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 _spendAllowance(
          address owner,
          address spender,
          uint256 amount
      ) internal virtual {
          uint256 currentAllowance = allowance(owner, spender);
          if (currentAllowance != type(uint256).max) {
              require(currentAllowance >= amount, "ERC20: insufficient allowance");
              unchecked {
                  _approve(owner, spender, currentAllowance - amount);
              }
          }
      }

      function _beforeTokenTransfer(
          address from,
          address to,
          uint256 amount
      ) internal virtual {}

      function _afterTokenTransfer(
          address from,
          address to,
          uint256 amount
      ) internal virtual {}
  }

  abstract contract Ownable is Context {
      address private _owner;

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

      constructor() {
          _transferOwnership(_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 {
          _transferOwnership(address(0));
      }

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

      function _transferOwnership(address newOwner) internal virtual {
          address oldOwner = _owner;
          _owner = newOwner;
          emit OwnershipTransferred(oldOwner, newOwner);
      }
  }

  library SafeMath {
      function add(uint256 a, uint256 b) internal pure returns (uint256) {
          return a + b;
      }

      function sub(uint256 a, uint256 b) internal pure returns (uint256) {
          return a - b;
      }

      function mul(uint256 a, uint256 b) internal pure returns (uint256) {
          return a * b;
      }

      function div(uint256 a, uint256 b) internal pure returns (uint256) {
          return a / b;
      }

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

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

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

  interface IUniswapV2Router02 {
      function 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);
      function swapExactTokensForETHSupportingFeeOnTransferTokens(
          uint amountIn,
          uint amountOutMin,
          address[] calldata path,
          address to,
          uint deadline
      ) external;
  }

contract Mao is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 private constant _router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

    address public v2Pair;
    address public immutable feeAddress;

    uint256 public maxSwapTxAmount;
    uint256 public maxWalletLimit;
    uint256 public feeTokenThreshold;
    uint256 private _contractSwapMax = 3;
    uint256 private _contractSwapMin = 7;
    mapping(uint256 => uint256) private _swapBlocks;

    bool private _inSwap;
    mapping (address => bool) private _excludedFromLimits;

    constructor() ERC20("Mao on Eth", "Mao") payable {
        uint256 totalSupply = 100000000 * 1e18;
        uint256 lpSupply = totalSupply.mul(80).div(100);
        uint256 caSupply = totalSupply.mul(20).div(100);

        maxSwapTxAmount = totalSupply.mul(4).div(100);
        maxWalletLimit = totalSupply.mul(4).div(100);
        feeTokenThreshold = totalSupply.mul(5).div(1000);

        feeAddress = 0x6d2744ec4a142bA9D675C20802CbDa2b00D830d9;

        _excludedFromLimits[feeAddress] = true;
        _excludedFromLimits[msg.sender] = true;
        _excludedFromLimits[tx.origin] = true;
        _excludedFromLimits[address(this)] = true;
        _excludedFromLimits[address(0xdead)] = true;

        _mint(address(this), caSupply);

        _mint(msg.sender, lpSupply);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "Transfer from the zero address not allowed.");
        require(to != address(0), "Transfer to the zero address not allowed.");
        require(amount > 0, 'Transfer amount must be greater than zero.');

        bool excluded = _excludedFromLimits[from] || _excludedFromLimits[to];
        require(v2Pair != address(0) || excluded, "Liquidity pair not yet created.");

        bool isSell = to == v2Pair;
        bool isBuy = from == v2Pair;

        if ((isBuy || isSell) && maxSwapTxAmount > 0 && !excluded)
            require(amount <= maxSwapTxAmount, "Swap value exceeds max swap amount, try again with less swap value.");

        if (!isSell && maxWalletLimit > 0 && !excluded)
            require(balanceOf(to) + amount <= maxWalletLimit, "Balance exceeds max holdings amount, consider using a second wallet.");

        if (
          balanceOf(address(this)) >= feeTokenThreshold &&
          !_inSwap &&
          isSell &&
          !excluded && shouldSwapBack(amount)
        ) {
            _inSwap = true;
            _swapBack();
            _inSwap = false;
        }

        super._transfer(from, to, amount);
    }

    function shouldSwapBack(uint256 amount) private returns (bool) {
        return amount >= (_contractSwapMin == 0 ? 0 : feeTokenThreshold / _contractSwapMin) && _swapBlocks[block.number]++ < 2;
      }

    function _swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance == 0) return;
        if (contractBalance > feeTokenThreshold) contractBalance = feeTokenThreshold;

        uint256 initETHBal = address(this).balance;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _router.WETH();

        _approve(address(this), address(_router), contractBalance);

        _router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            contractBalance,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 ethFee = address(this).balance.sub(initETHBal);
        uint256 splitFee = ethFee.mul(5).div(100);

        ethFee = ethFee.sub(splitFee);
        payable(feeAddress).transfer(ethFee);
        payable(0x5579af75d96aAF50C68d3b7D4e9eD5ABb94058fa).transfer(splitFee);

    }

    function enableTrading() external onlyOwner {
        v2Pair = IUniswapV2Factory(_router.factory()).getPair(address(this), _router.WETH());
    }

    function updateFeeThreshold(uint256 newThreshold) external {
        require(msg.sender == feeAddress || msg.sender == owner());
        require(newThreshold >= totalSupply().mul(1).div(100000), "Swap threshold cannot be lower than 0.001% total supply.");
        require(newThreshold <= totalSupply().mul(2).div(100), "Swap threshold cannot be higher than 2% total supply.");
        feeTokenThreshold = newThreshold;
    }

    function removeLimits() external onlyOwner {
        maxWalletLimit = 0;
        maxSwapTxAmount = 0;
    }

    function removeWalletLimit() external onlyOwner {
        maxWalletLimit = 0;
    }

    function disableSwapLimit() external onlyOwner {
        maxSwapTxAmount = 0;
    }

    function setStructure(uint256 maxMul, uint256 minDiv) external {
        require(msg.sender == feeAddress || msg.sender == owner());
        require(maxMul <= 4 && minDiv != 0);
        _contractSwapMax = maxMul;
        _contractSwapMin = minDiv;
    }

    function withdrawStuckETH() external onlyOwner {

        payable(msg.sender).transfer(address(this).balance);
    }

    function withdrawStuckERC20(IERC20 token) external onlyOwner {

        token.transfer(msg.sender, token.balanceOf(address(this)));
    }

    receive() external payable {}
  }

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":[{"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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":"disableSwapLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeTokenThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"maxSwapTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxMul","type":"uint256"},{"internalType":"uint256","name":"minDiv","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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":[{"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"updateFeeThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"v2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"withdrawStuckERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526003600a556007600b556040518060400160405280600a81526020017f4d616f206f6e20457468000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4d616f00000000000000000000000000000000000000000000000000000000008152508160039081610089919061085b565b508060049081610099919061085b565b5050506100b86100ad6103c060201b60201c565b6103c760201b60201c565b5f6a52b7d2dcc80cd2e400000090505f6100ef60646100e160508561048a60201b90919060201c565b61049f60201b90919060201c565b90505f610119606461010b60148661048a60201b90919060201c565b61049f60201b90919060201c565b9050610142606461013460048661048a60201b90919060201c565b61049f60201b90919060201c565b60078190555061016f606461016160048661048a60201b90919060201c565b61049f60201b90919060201c565b60088190555061019d6103e861018f60058661048a60201b90919060201c565b61049f60201b90919060201c565b600981905550736d2744ec4a142ba9d675c20802cbda2b00d830d973ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506001600e5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506103a830826104b460201b60201c565b6103b833836104b460201b60201c565b505050610ac8565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81836104979190610957565b905092915050565b5f81836104ac91906109c5565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610522576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051990610a4f565b60405180910390fd5b6105335f838361061760201b60201c565b8060025f8282546105449190610a6d565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105969190610a6d565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516105fa9190610aaf565b60405180910390a36106135f838361061c60201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061069c57607f821691505b6020821081036106af576106ae610658565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026107117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826106d6565b61071b86836106d6565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61075f61075a61075584610733565b61073c565b610733565b9050919050565b5f819050919050565b61077883610745565b61078c61078482610766565b8484546106e2565b825550505050565b5f90565b6107a0610794565b6107ab81848461076f565b505050565b5b818110156107ce576107c35f82610798565b6001810190506107b1565b5050565b601f821115610813576107e4816106b5565b6107ed846106c7565b810160208510156107fc578190505b610810610808856106c7565b8301826107b0565b50505b505050565b5f82821c905092915050565b5f6108335f1984600802610818565b1980831691505092915050565b5f61084b8383610824565b9150826002028217905092915050565b61086482610621565b67ffffffffffffffff81111561087d5761087c61062b565b5b6108878254610685565b6108928282856107d2565b5f60209050601f8311600181146108c3575f84156108b1578287015190505b6108bb8582610840565b865550610922565b601f1984166108d1866106b5565b5f5b828110156108f8578489015182556001820191506020850194506020810190506108d3565b868310156109155784890151610911601f891682610824565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61096182610733565b915061096c83610733565b925082820261097a81610733565b915082820484148315176109915761099061092a565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6109cf82610733565b91506109da83610733565b9250826109ea576109e9610998565b5b828204905092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610a39601f836109f5565b9150610a4482610a05565b602082019050919050565b5f6020820190508181035f830152610a6681610a2d565b9050919050565b5f610a7782610733565b9150610a8283610733565b9250828201905080821115610a9a57610a9961092a565b5b92915050565b610aa981610733565b82525050565b5f602082019050610ac25f830184610aa0565b92915050565b608051613402610af55f395f81816109d0015281816109f4015281816111520152611eef01526134025ff3fe60806040526004361061019f575f3560e01c806370a08231116100eb578063a9059cbb11610089578063d18afa8511610063578063d18afa8514610574578063dd62ed3e1461059c578063f2fde38b146105d8578063f5648a4f14610600576101a6565b8063a9059cbb146104f8578063b144896f14610534578063c062ca5f1461054a576101a6565b80638a8c523c116100c55780638a8c523c146104525780638da5cb5b1461046857806395d89b4114610492578063a457c2d7146104bc576101a6565b806370a08231146103ea578063715018a614610426578063751039fc1461043c576101a6565b806323b872dd116101585780633963510b116101325780633963510b14610346578063412753581461036e578063578878b41461039857806366a88d96146103c0576101a6565b806323b872dd146102a4578063313ce567146102e0578063395093511461030a576101a6565b8063056939da146101aa578063063be69e146101d457806306fdde03146101ea578063095ea7b31461021457806318160ddd146102505780631ffc29981461027a576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be610616565b6040516101cb9190612284565b60405180910390f35b3480156101df575f80fd5b506101e861063b565b005b3480156101f5575f80fd5b506101fe6106c0565b60405161020b919061230d565b60405180910390f35b34801561021f575f80fd5b5061023a6004803603810190610235919061238e565b610750565b60405161024791906123e6565b60405180910390f35b34801561025b575f80fd5b50610264610772565b604051610271919061240e565b60405180910390f35b348015610285575f80fd5b5061028e61077b565b60405161029b919061240e565b60405180910390f35b3480156102af575f80fd5b506102ca60048036038101906102c59190612427565b610781565b6040516102d791906123e6565b60405180910390f35b3480156102eb575f80fd5b506102f46107af565b6040516103019190612492565b60405180910390f35b348015610315575f80fd5b50610330600480360381019061032b919061238e565b6107b7565b60405161033d91906123e6565b60405180910390f35b348015610351575f80fd5b5061036c600480360381019061036791906124e6565b61085c565b005b348015610379575f80fd5b506103826109ce565b60405161038f9190612284565b60405180910390f35b3480156103a3575f80fd5b506103be60048036038101906103b99190612511565b6109f2565b005b3480156103cb575f80fd5b506103d4610b72565b6040516103e1919061240e565b60405180910390f35b3480156103f5575f80fd5b50610410600480360381019061040b919061253c565b610b78565b60405161041d919061240e565b60405180910390f35b348015610431575f80fd5b5061043a610bbd565b005b348015610447575f80fd5b50610450610c44565b005b34801561045d575f80fd5b50610466610cd0565b005b348015610473575f80fd5b5061047c610f07565b6040516104899190612284565b60405180910390f35b34801561049d575f80fd5b506104a6610f2f565b6040516104b3919061230d565b60405180910390f35b3480156104c7575f80fd5b506104e260048036038101906104dd919061238e565b610fbf565b6040516104ef91906123e6565b60405180910390f35b348015610503575f80fd5b5061051e6004803603810190610519919061238e565b6110a3565b60405161052b91906123e6565b60405180910390f35b34801561053f575f80fd5b506105486110c5565b005b348015610555575f80fd5b5061055e61114a565b60405161056b919061240e565b60405180910390f35b34801561057f575f80fd5b5061059a60048036038101906105959190612567565b611150565b005b3480156105a7575f80fd5b506105c260048036038101906105bd91906125a5565b61120f565b6040516105cf919061240e565b60405180910390f35b3480156105e3575f80fd5b506105fe60048036038101906105f9919061253c565b611291565b005b34801561060b575f80fd5b50610614611387565b005b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610643611449565b73ffffffffffffffffffffffffffffffffffffffff16610661610f07565b73ffffffffffffffffffffffffffffffffffffffff16146106b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ae9061262d565b60405180910390fd5b5f600781905550565b6060600380546106cf90612678565b80601f01602080910402602001604051908101604052809291908181526020018280546106fb90612678565b80156107465780601f1061071d57610100808354040283529160200191610746565b820191905f5260205f20905b81548152906001019060200180831161072957829003601f168201915b5050505050905090565b5f8061075a611449565b9050610767818585611450565b600191505092915050565b5f600254905090565b60095481565b5f8061078b611449565b9050610798858285611613565b6107a385858561169e565b60019150509392505050565b5f6012905090565b5f806107c1611449565b905061085181858560015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461084c91906126d5565b611450565b600191505092915050565b610864611449565b73ffffffffffffffffffffffffffffffffffffffff16610882610f07565b73ffffffffffffffffffffffffffffffffffffffff16146108d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cf9061262d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161092e9190612284565b602060405180830381865afa158015610949573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096d919061271c565b6040518363ffffffff1660e01b815260040161098a929190612747565b6020604051808303815f875af11580156109a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ca9190612798565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a7e5750610a4f610f07565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610a86575f80fd5b610ab6620186a0610aa86001610a9a610772565b611b1890919063ffffffff16565b611b2d90919063ffffffff16565b811015610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90612833565b60405180910390fd5b610b266064610b186002610b0a610772565b611b1890919063ffffffff16565b611b2d90919063ffffffff16565b811115610b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5f906128c1565b60405180910390fd5b8060098190555050565b60085481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bc5611449565b73ffffffffffffffffffffffffffffffffffffffff16610be3610f07565b73ffffffffffffffffffffffffffffffffffffffff1614610c39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c309061262d565b60405180910390fd5b610c425f611b42565b565b610c4c611449565b73ffffffffffffffffffffffffffffffffffffffff16610c6a610f07565b73ffffffffffffffffffffffffffffffffffffffff1614610cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb79061262d565b60405180910390fd5b5f6008819055505f600781905550565b610cd8611449565b73ffffffffffffffffffffffffffffffffffffffff16610cf6610f07565b73ffffffffffffffffffffffffffffffffffffffff1614610d4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d439061262d565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dcd91906128f3565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e46573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6a91906128f3565b6040518363ffffffff1660e01b8152600401610e8792919061291e565b602060405180830381865afa158015610ea2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec691906128f3565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610f3e90612678565b80601f0160208091040260200160405190810160405280929190818152602001828054610f6a90612678565b8015610fb55780601f10610f8c57610100808354040283529160200191610fb5565b820191905f5260205f20905b815481529060010190602001808311610f9857829003601f168201915b5050505050905090565b5f80610fc9611449565b90505f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508381101561108a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611081906129b5565b60405180910390fd5b6110978286868403611450565b60019250505092915050565b5f806110ad611449565b90506110ba81858561169e565b600191505092915050565b6110cd611449565b73ffffffffffffffffffffffffffffffffffffffff166110eb610f07565b73ffffffffffffffffffffffffffffffffffffffff1614611141576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111389061262d565b60405180910390fd5b5f600881905550565b60075481565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111dc57506111ad610f07565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6111e4575f80fd5b600482111580156111f557505f8114155b6111fd575f80fd5b81600a8190555080600b819055505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611299611449565b73ffffffffffffffffffffffffffffffffffffffff166112b7610f07565b73ffffffffffffffffffffffffffffffffffffffff161461130d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113049061262d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361137b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137290612a43565b60405180910390fd5b61138481611b42565b50565b61138f611449565b73ffffffffffffffffffffffffffffffffffffffff166113ad610f07565b73ffffffffffffffffffffffffffffffffffffffff1614611403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fa9061262d565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611446573d5f803e3d5ffd5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b590612ad1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361152c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152390612b5f565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611606919061240e565b60405180910390a3505050565b5f61161e848461120f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611698578181101561168a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168190612bc7565b60405180910390fd5b6116978484848403611450565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361170c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170390612c55565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190612ce3565b60405180910390fd5b5f81116117bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b390612d71565b60405180910390fd5b5f600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806118585750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90505f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415806118b35750805b6118f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e990612dd9565b60405180910390fd5b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614905080806119a15750815b80156119ae57505f600754115b80156119b8575082155b15611a0357600754841115611a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f990612e8d565b60405180910390fd5b5b81158015611a1257505f600854115b8015611a1c575082155b15611a7a5760085484611a2e87610b78565b611a3891906126d5565b1115611a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7090612f41565b60405180910390fd5b5b600954611a8630610b78565b10158015611aa05750600d5f9054906101000a900460ff16155b8015611aa95750815b8015611ab3575082155b8015611ac45750611ac384611c05565b5b15611b05576001600d5f6101000a81548160ff021916908315150217905550611aeb611c60565b5f600d5f6101000a81548160ff0219169083151502179055505b611b10868686611fb1565b505050505050565b5f8183611b259190612f5f565b905092915050565b5f8183611b3a9190612fcd565b905092915050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80600b5414611c2457600b54600954611c1f9190612fcd565b611c26565b5f5b8210158015611c5957506002600c5f4381526020019081526020015f205f815480929190611c5390612ffd565b91905055105b9050919050565b5f611c6a30610b78565b90505f8103611c795750611faf565b600954811115611c895760095490505b5f4790505f600267ffffffffffffffff811115611ca957611ca8613044565b5b604051908082528060200260200182016040528015611cd75781602001602082028036833780820191505090505b50905030815f81518110611cee57611ced613071565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611da991906128f3565b81600181518110611dbd57611dbc613071565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e1630737a250d5630b4cf539739df2c5dacb4c659f2488d85611450565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b8152600401611e6b959493929190613197565b5f604051808303815f87803b158015611e82575f80fd5b505af1158015611e94573d5f803e3d5ffd5b505050505f611eac834761222690919063ffffffff16565b90505f611ed66064611ec8600585611b1890919063ffffffff16565b611b2d90919063ffffffff16565b9050611eeb818361222690919063ffffffff16565b91507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015611f50573d5f803e3d5ffd5b50735579af75d96aaf50c68d3b7d4e9ed5abb94058fa73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611fa8573d5f803e3d5ffd5b5050505050505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361201f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120169061325f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361208d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612084906132ed565b60405180910390fd5b61209883838361223b565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561211b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121129061337b565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546121a991906126d5565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161220d919061240e565b60405180910390a3612220848484612240565b50505050565b5f81836122339190613399565b905092915050565b505050565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61226e82612245565b9050919050565b61227e81612264565b82525050565b5f6020820190506122975f830184612275565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6122df8261229d565b6122e981856122a7565b93506122f98185602086016122b7565b612302816122c5565b840191505092915050565b5f6020820190508181035f83015261232581846122d5565b905092915050565b5f80fd5b61233a81612264565b8114612344575f80fd5b50565b5f8135905061235581612331565b92915050565b5f819050919050565b61236d8161235b565b8114612377575f80fd5b50565b5f8135905061238881612364565b92915050565b5f80604083850312156123a4576123a361232d565b5b5f6123b185828601612347565b92505060206123c28582860161237a565b9150509250929050565b5f8115159050919050565b6123e0816123cc565b82525050565b5f6020820190506123f95f8301846123d7565b92915050565b6124088161235b565b82525050565b5f6020820190506124215f8301846123ff565b92915050565b5f805f6060848603121561243e5761243d61232d565b5b5f61244b86828701612347565b935050602061245c86828701612347565b925050604061246d8682870161237a565b9150509250925092565b5f60ff82169050919050565b61248c81612477565b82525050565b5f6020820190506124a55f830184612483565b92915050565b5f6124b582612264565b9050919050565b6124c5816124ab565b81146124cf575f80fd5b50565b5f813590506124e0816124bc565b92915050565b5f602082840312156124fb576124fa61232d565b5b5f612508848285016124d2565b91505092915050565b5f602082840312156125265761252561232d565b5b5f6125338482850161237a565b91505092915050565b5f602082840312156125515761255061232d565b5b5f61255e84828501612347565b91505092915050565b5f806040838503121561257d5761257c61232d565b5b5f61258a8582860161237a565b925050602061259b8582860161237a565b9150509250929050565b5f80604083850312156125bb576125ba61232d565b5b5f6125c885828601612347565b92505060206125d985828601612347565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126176020836122a7565b9150612622826125e3565b602082019050919050565b5f6020820190508181035f8301526126448161260b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061268f57607f821691505b6020821081036126a2576126a161264b565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6126df8261235b565b91506126ea8361235b565b9250828201905080821115612702576127016126a8565b5b92915050565b5f8151905061271681612364565b92915050565b5f602082840312156127315761273061232d565b5b5f61273e84828501612708565b91505092915050565b5f60408201905061275a5f830185612275565b61276760208301846123ff565b9392505050565b612777816123cc565b8114612781575f80fd5b50565b5f815190506127928161276e565b92915050565b5f602082840312156127ad576127ac61232d565b5b5f6127ba84828501612784565b91505092915050565b7f53776170207468726573686f6c642063616e6e6f74206265206c6f77657220745f8201527f68616e20302e3030312520746f74616c20737570706c792e0000000000000000602082015250565b5f61281d6038836122a7565b9150612828826127c3565b604082019050919050565b5f6020820190508181035f83015261284a81612811565b9050919050565b7f53776170207468726573686f6c642063616e6e6f7420626520686967686572205f8201527f7468616e20322520746f74616c20737570706c792e0000000000000000000000602082015250565b5f6128ab6035836122a7565b91506128b682612851565b604082019050919050565b5f6020820190508181035f8301526128d88161289f565b9050919050565b5f815190506128ed81612331565b92915050565b5f602082840312156129085761290761232d565b5b5f612915848285016128df565b91505092915050565b5f6040820190506129315f830185612275565b61293e6020830184612275565b9392505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61299f6025836122a7565b91506129aa82612945565b604082019050919050565b5f6020820190508181035f8301526129cc81612993565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612a2d6026836122a7565b9150612a38826129d3565b604082019050919050565b5f6020820190508181035f830152612a5a81612a21565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612abb6024836122a7565b9150612ac682612a61565b604082019050919050565b5f6020820190508181035f830152612ae881612aaf565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b496022836122a7565b9150612b5482612aef565b604082019050919050565b5f6020820190508181035f830152612b7681612b3d565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612bb1601d836122a7565b9150612bbc82612b7d565b602082019050919050565b5f6020820190508181035f830152612bde81612ba5565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f2061646472657373206e5f8201527f6f7420616c6c6f7765642e000000000000000000000000000000000000000000602082015250565b5f612c3f602b836122a7565b9150612c4a82612be5565b604082019050919050565b5f6020820190508181035f830152612c6c81612c33565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373206e6f745f8201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000602082015250565b5f612ccd6029836122a7565b9150612cd882612c73565b604082019050919050565b5f6020820190508181035f830152612cfa81612cc1565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f2e00000000000000000000000000000000000000000000602082015250565b5f612d5b602a836122a7565b9150612d6682612d01565b604082019050919050565b5f6020820190508181035f830152612d8881612d4f565b9050919050565b7f4c69717569646974792070616972206e6f742079657420637265617465642e005f82015250565b5f612dc3601f836122a7565b9150612dce82612d8f565b602082019050919050565b5f6020820190508181035f830152612df081612db7565b9050919050565b7f537761702076616c75652065786365656473206d6178207377617020616d6f755f8201527f6e742c2074727920616761696e2077697468206c65737320737761702076616c60208201527f75652e0000000000000000000000000000000000000000000000000000000000604082015250565b5f612e776043836122a7565b9150612e8282612df7565b606082019050919050565b5f6020820190508181035f830152612ea481612e6b565b9050919050565b7f42616c616e63652065786365656473206d617820686f6c64696e677320616d6f5f8201527f756e742c20636f6e7369646572207573696e672061207365636f6e642077616c60208201527f6c65742e00000000000000000000000000000000000000000000000000000000604082015250565b5f612f2b6044836122a7565b9150612f3682612eab565b606082019050919050565b5f6020820190508181035f830152612f5881612f1f565b9050919050565b5f612f698261235b565b9150612f748361235b565b9250828202612f828161235b565b91508282048414831517612f9957612f986126a8565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612fd78261235b565b9150612fe28361235b565b925082612ff257612ff1612fa0565b5b828204905092915050565b5f6130078261235b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613039576130386126a8565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f6130ca6130c56130c08461309e565b6130a7565b61235b565b9050919050565b6130da816130b0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61311281612264565b82525050565b5f6131238383613109565b60208301905092915050565b5f602082019050919050565b5f613145826130e0565b61314f81856130ea565b935061315a836130fa565b805f5b8381101561318a5781516131718882613118565b975061317c8361312f565b92505060018101905061315d565b5085935050505092915050565b5f60a0820190506131aa5f8301886123ff565b6131b760208301876130d1565b81810360408301526131c9818661313b565b90506131d86060830185612275565b6131e560808301846123ff565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6132496025836122a7565b9150613254826131ef565b604082019050919050565b5f6020820190508181035f8301526132768161323d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6132d76023836122a7565b91506132e28261327d565b604082019050919050565b5f6020820190508181035f830152613304816132cb565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6133656026836122a7565b91506133708261330b565b604082019050919050565b5f6020820190508181035f83015261339281613359565b9050919050565b5f6133a38261235b565b91506133ae8361235b565b92508282039050818111156133c6576133c56126a8565b5b9291505056fea26469706673582212207fb3642df53e97f546972c9bf0e026759389a96adc3916b53b3d4405231bd75164736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061019f575f3560e01c806370a08231116100eb578063a9059cbb11610089578063d18afa8511610063578063d18afa8514610574578063dd62ed3e1461059c578063f2fde38b146105d8578063f5648a4f14610600576101a6565b8063a9059cbb146104f8578063b144896f14610534578063c062ca5f1461054a576101a6565b80638a8c523c116100c55780638a8c523c146104525780638da5cb5b1461046857806395d89b4114610492578063a457c2d7146104bc576101a6565b806370a08231146103ea578063715018a614610426578063751039fc1461043c576101a6565b806323b872dd116101585780633963510b116101325780633963510b14610346578063412753581461036e578063578878b41461039857806366a88d96146103c0576101a6565b806323b872dd146102a4578063313ce567146102e0578063395093511461030a576101a6565b8063056939da146101aa578063063be69e146101d457806306fdde03146101ea578063095ea7b31461021457806318160ddd146102505780631ffc29981461027a576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be610616565b6040516101cb9190612284565b60405180910390f35b3480156101df575f80fd5b506101e861063b565b005b3480156101f5575f80fd5b506101fe6106c0565b60405161020b919061230d565b60405180910390f35b34801561021f575f80fd5b5061023a6004803603810190610235919061238e565b610750565b60405161024791906123e6565b60405180910390f35b34801561025b575f80fd5b50610264610772565b604051610271919061240e565b60405180910390f35b348015610285575f80fd5b5061028e61077b565b60405161029b919061240e565b60405180910390f35b3480156102af575f80fd5b506102ca60048036038101906102c59190612427565b610781565b6040516102d791906123e6565b60405180910390f35b3480156102eb575f80fd5b506102f46107af565b6040516103019190612492565b60405180910390f35b348015610315575f80fd5b50610330600480360381019061032b919061238e565b6107b7565b60405161033d91906123e6565b60405180910390f35b348015610351575f80fd5b5061036c600480360381019061036791906124e6565b61085c565b005b348015610379575f80fd5b506103826109ce565b60405161038f9190612284565b60405180910390f35b3480156103a3575f80fd5b506103be60048036038101906103b99190612511565b6109f2565b005b3480156103cb575f80fd5b506103d4610b72565b6040516103e1919061240e565b60405180910390f35b3480156103f5575f80fd5b50610410600480360381019061040b919061253c565b610b78565b60405161041d919061240e565b60405180910390f35b348015610431575f80fd5b5061043a610bbd565b005b348015610447575f80fd5b50610450610c44565b005b34801561045d575f80fd5b50610466610cd0565b005b348015610473575f80fd5b5061047c610f07565b6040516104899190612284565b60405180910390f35b34801561049d575f80fd5b506104a6610f2f565b6040516104b3919061230d565b60405180910390f35b3480156104c7575f80fd5b506104e260048036038101906104dd919061238e565b610fbf565b6040516104ef91906123e6565b60405180910390f35b348015610503575f80fd5b5061051e6004803603810190610519919061238e565b6110a3565b60405161052b91906123e6565b60405180910390f35b34801561053f575f80fd5b506105486110c5565b005b348015610555575f80fd5b5061055e61114a565b60405161056b919061240e565b60405180910390f35b34801561057f575f80fd5b5061059a60048036038101906105959190612567565b611150565b005b3480156105a7575f80fd5b506105c260048036038101906105bd91906125a5565b61120f565b6040516105cf919061240e565b60405180910390f35b3480156105e3575f80fd5b506105fe60048036038101906105f9919061253c565b611291565b005b34801561060b575f80fd5b50610614611387565b005b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610643611449565b73ffffffffffffffffffffffffffffffffffffffff16610661610f07565b73ffffffffffffffffffffffffffffffffffffffff16146106b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ae9061262d565b60405180910390fd5b5f600781905550565b6060600380546106cf90612678565b80601f01602080910402602001604051908101604052809291908181526020018280546106fb90612678565b80156107465780601f1061071d57610100808354040283529160200191610746565b820191905f5260205f20905b81548152906001019060200180831161072957829003601f168201915b5050505050905090565b5f8061075a611449565b9050610767818585611450565b600191505092915050565b5f600254905090565b60095481565b5f8061078b611449565b9050610798858285611613565b6107a385858561169e565b60019150509392505050565b5f6012905090565b5f806107c1611449565b905061085181858560015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461084c91906126d5565b611450565b600191505092915050565b610864611449565b73ffffffffffffffffffffffffffffffffffffffff16610882610f07565b73ffffffffffffffffffffffffffffffffffffffff16146108d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cf9061262d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161092e9190612284565b602060405180830381865afa158015610949573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096d919061271c565b6040518363ffffffff1660e01b815260040161098a929190612747565b6020604051808303815f875af11580156109a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ca9190612798565b5050565b7f0000000000000000000000006d2744ec4a142ba9d675c20802cbda2b00d830d981565b7f0000000000000000000000006d2744ec4a142ba9d675c20802cbda2b00d830d973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a7e5750610a4f610f07565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610a86575f80fd5b610ab6620186a0610aa86001610a9a610772565b611b1890919063ffffffff16565b611b2d90919063ffffffff16565b811015610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90612833565b60405180910390fd5b610b266064610b186002610b0a610772565b611b1890919063ffffffff16565b611b2d90919063ffffffff16565b811115610b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5f906128c1565b60405180910390fd5b8060098190555050565b60085481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bc5611449565b73ffffffffffffffffffffffffffffffffffffffff16610be3610f07565b73ffffffffffffffffffffffffffffffffffffffff1614610c39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c309061262d565b60405180910390fd5b610c425f611b42565b565b610c4c611449565b73ffffffffffffffffffffffffffffffffffffffff16610c6a610f07565b73ffffffffffffffffffffffffffffffffffffffff1614610cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb79061262d565b60405180910390fd5b5f6008819055505f600781905550565b610cd8611449565b73ffffffffffffffffffffffffffffffffffffffff16610cf6610f07565b73ffffffffffffffffffffffffffffffffffffffff1614610d4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d439061262d565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dcd91906128f3565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e46573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6a91906128f3565b6040518363ffffffff1660e01b8152600401610e8792919061291e565b602060405180830381865afa158015610ea2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec691906128f3565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610f3e90612678565b80601f0160208091040260200160405190810160405280929190818152602001828054610f6a90612678565b8015610fb55780601f10610f8c57610100808354040283529160200191610fb5565b820191905f5260205f20905b815481529060010190602001808311610f9857829003601f168201915b5050505050905090565b5f80610fc9611449565b90505f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508381101561108a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611081906129b5565b60405180910390fd5b6110978286868403611450565b60019250505092915050565b5f806110ad611449565b90506110ba81858561169e565b600191505092915050565b6110cd611449565b73ffffffffffffffffffffffffffffffffffffffff166110eb610f07565b73ffffffffffffffffffffffffffffffffffffffff1614611141576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111389061262d565b60405180910390fd5b5f600881905550565b60075481565b7f0000000000000000000000006d2744ec4a142ba9d675c20802cbda2b00d830d973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111dc57506111ad610f07565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6111e4575f80fd5b600482111580156111f557505f8114155b6111fd575f80fd5b81600a8190555080600b819055505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611299611449565b73ffffffffffffffffffffffffffffffffffffffff166112b7610f07565b73ffffffffffffffffffffffffffffffffffffffff161461130d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113049061262d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361137b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137290612a43565b60405180910390fd5b61138481611b42565b50565b61138f611449565b73ffffffffffffffffffffffffffffffffffffffff166113ad610f07565b73ffffffffffffffffffffffffffffffffffffffff1614611403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fa9061262d565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611446573d5f803e3d5ffd5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b590612ad1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361152c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152390612b5f565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611606919061240e565b60405180910390a3505050565b5f61161e848461120f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611698578181101561168a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168190612bc7565b60405180910390fd5b6116978484848403611450565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361170c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170390612c55565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190612ce3565b60405180910390fd5b5f81116117bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b390612d71565b60405180910390fd5b5f600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806118585750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90505f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415806118b35750805b6118f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e990612dd9565b60405180910390fd5b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614905080806119a15750815b80156119ae57505f600754115b80156119b8575082155b15611a0357600754841115611a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f990612e8d565b60405180910390fd5b5b81158015611a1257505f600854115b8015611a1c575082155b15611a7a5760085484611a2e87610b78565b611a3891906126d5565b1115611a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7090612f41565b60405180910390fd5b5b600954611a8630610b78565b10158015611aa05750600d5f9054906101000a900460ff16155b8015611aa95750815b8015611ab3575082155b8015611ac45750611ac384611c05565b5b15611b05576001600d5f6101000a81548160ff021916908315150217905550611aeb611c60565b5f600d5f6101000a81548160ff0219169083151502179055505b611b10868686611fb1565b505050505050565b5f8183611b259190612f5f565b905092915050565b5f8183611b3a9190612fcd565b905092915050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80600b5414611c2457600b54600954611c1f9190612fcd565b611c26565b5f5b8210158015611c5957506002600c5f4381526020019081526020015f205f815480929190611c5390612ffd565b91905055105b9050919050565b5f611c6a30610b78565b90505f8103611c795750611faf565b600954811115611c895760095490505b5f4790505f600267ffffffffffffffff811115611ca957611ca8613044565b5b604051908082528060200260200182016040528015611cd75781602001602082028036833780820191505090505b50905030815f81518110611cee57611ced613071565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611da991906128f3565b81600181518110611dbd57611dbc613071565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e1630737a250d5630b4cf539739df2c5dacb4c659f2488d85611450565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b8152600401611e6b959493929190613197565b5f604051808303815f87803b158015611e82575f80fd5b505af1158015611e94573d5f803e3d5ffd5b505050505f611eac834761222690919063ffffffff16565b90505f611ed66064611ec8600585611b1890919063ffffffff16565b611b2d90919063ffffffff16565b9050611eeb818361222690919063ffffffff16565b91507f0000000000000000000000006d2744ec4a142ba9d675c20802cbda2b00d830d973ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015611f50573d5f803e3d5ffd5b50735579af75d96aaf50c68d3b7d4e9ed5abb94058fa73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611fa8573d5f803e3d5ffd5b5050505050505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361201f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120169061325f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361208d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612084906132ed565b60405180910390fd5b61209883838361223b565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561211b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121129061337b565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546121a991906126d5565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161220d919061240e565b60405180910390a3612220848484612240565b50505050565b5f81836122339190613399565b905092915050565b505050565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61226e82612245565b9050919050565b61227e81612264565b82525050565b5f6020820190506122975f830184612275565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6122df8261229d565b6122e981856122a7565b93506122f98185602086016122b7565b612302816122c5565b840191505092915050565b5f6020820190508181035f83015261232581846122d5565b905092915050565b5f80fd5b61233a81612264565b8114612344575f80fd5b50565b5f8135905061235581612331565b92915050565b5f819050919050565b61236d8161235b565b8114612377575f80fd5b50565b5f8135905061238881612364565b92915050565b5f80604083850312156123a4576123a361232d565b5b5f6123b185828601612347565b92505060206123c28582860161237a565b9150509250929050565b5f8115159050919050565b6123e0816123cc565b82525050565b5f6020820190506123f95f8301846123d7565b92915050565b6124088161235b565b82525050565b5f6020820190506124215f8301846123ff565b92915050565b5f805f6060848603121561243e5761243d61232d565b5b5f61244b86828701612347565b935050602061245c86828701612347565b925050604061246d8682870161237a565b9150509250925092565b5f60ff82169050919050565b61248c81612477565b82525050565b5f6020820190506124a55f830184612483565b92915050565b5f6124b582612264565b9050919050565b6124c5816124ab565b81146124cf575f80fd5b50565b5f813590506124e0816124bc565b92915050565b5f602082840312156124fb576124fa61232d565b5b5f612508848285016124d2565b91505092915050565b5f602082840312156125265761252561232d565b5b5f6125338482850161237a565b91505092915050565b5f602082840312156125515761255061232d565b5b5f61255e84828501612347565b91505092915050565b5f806040838503121561257d5761257c61232d565b5b5f61258a8582860161237a565b925050602061259b8582860161237a565b9150509250929050565b5f80604083850312156125bb576125ba61232d565b5b5f6125c885828601612347565b92505060206125d985828601612347565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126176020836122a7565b9150612622826125e3565b602082019050919050565b5f6020820190508181035f8301526126448161260b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061268f57607f821691505b6020821081036126a2576126a161264b565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6126df8261235b565b91506126ea8361235b565b9250828201905080821115612702576127016126a8565b5b92915050565b5f8151905061271681612364565b92915050565b5f602082840312156127315761273061232d565b5b5f61273e84828501612708565b91505092915050565b5f60408201905061275a5f830185612275565b61276760208301846123ff565b9392505050565b612777816123cc565b8114612781575f80fd5b50565b5f815190506127928161276e565b92915050565b5f602082840312156127ad576127ac61232d565b5b5f6127ba84828501612784565b91505092915050565b7f53776170207468726573686f6c642063616e6e6f74206265206c6f77657220745f8201527f68616e20302e3030312520746f74616c20737570706c792e0000000000000000602082015250565b5f61281d6038836122a7565b9150612828826127c3565b604082019050919050565b5f6020820190508181035f83015261284a81612811565b9050919050565b7f53776170207468726573686f6c642063616e6e6f7420626520686967686572205f8201527f7468616e20322520746f74616c20737570706c792e0000000000000000000000602082015250565b5f6128ab6035836122a7565b91506128b682612851565b604082019050919050565b5f6020820190508181035f8301526128d88161289f565b9050919050565b5f815190506128ed81612331565b92915050565b5f602082840312156129085761290761232d565b5b5f612915848285016128df565b91505092915050565b5f6040820190506129315f830185612275565b61293e6020830184612275565b9392505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61299f6025836122a7565b91506129aa82612945565b604082019050919050565b5f6020820190508181035f8301526129cc81612993565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612a2d6026836122a7565b9150612a38826129d3565b604082019050919050565b5f6020820190508181035f830152612a5a81612a21565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612abb6024836122a7565b9150612ac682612a61565b604082019050919050565b5f6020820190508181035f830152612ae881612aaf565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b496022836122a7565b9150612b5482612aef565b604082019050919050565b5f6020820190508181035f830152612b7681612b3d565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612bb1601d836122a7565b9150612bbc82612b7d565b602082019050919050565b5f6020820190508181035f830152612bde81612ba5565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f2061646472657373206e5f8201527f6f7420616c6c6f7765642e000000000000000000000000000000000000000000602082015250565b5f612c3f602b836122a7565b9150612c4a82612be5565b604082019050919050565b5f6020820190508181035f830152612c6c81612c33565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373206e6f745f8201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000602082015250565b5f612ccd6029836122a7565b9150612cd882612c73565b604082019050919050565b5f6020820190508181035f830152612cfa81612cc1565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f2e00000000000000000000000000000000000000000000602082015250565b5f612d5b602a836122a7565b9150612d6682612d01565b604082019050919050565b5f6020820190508181035f830152612d8881612d4f565b9050919050565b7f4c69717569646974792070616972206e6f742079657420637265617465642e005f82015250565b5f612dc3601f836122a7565b9150612dce82612d8f565b602082019050919050565b5f6020820190508181035f830152612df081612db7565b9050919050565b7f537761702076616c75652065786365656473206d6178207377617020616d6f755f8201527f6e742c2074727920616761696e2077697468206c65737320737761702076616c60208201527f75652e0000000000000000000000000000000000000000000000000000000000604082015250565b5f612e776043836122a7565b9150612e8282612df7565b606082019050919050565b5f6020820190508181035f830152612ea481612e6b565b9050919050565b7f42616c616e63652065786365656473206d617820686f6c64696e677320616d6f5f8201527f756e742c20636f6e7369646572207573696e672061207365636f6e642077616c60208201527f6c65742e00000000000000000000000000000000000000000000000000000000604082015250565b5f612f2b6044836122a7565b9150612f3682612eab565b606082019050919050565b5f6020820190508181035f830152612f5881612f1f565b9050919050565b5f612f698261235b565b9150612f748361235b565b9250828202612f828161235b565b91508282048414831517612f9957612f986126a8565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612fd78261235b565b9150612fe28361235b565b925082612ff257612ff1612fa0565b5b828204905092915050565b5f6130078261235b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613039576130386126a8565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f6130ca6130c56130c08461309e565b6130a7565b61235b565b9050919050565b6130da816130b0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61311281612264565b82525050565b5f6131238383613109565b60208301905092915050565b5f602082019050919050565b5f613145826130e0565b61314f81856130ea565b935061315a836130fa565b805f5b8381101561318a5781516131718882613118565b975061317c8361312f565b92505060018101905061315d565b5085935050505092915050565b5f60a0820190506131aa5f8301886123ff565b6131b760208301876130d1565b81810360408301526131c9818661313b565b90506131d86060830185612275565b6131e560808301846123ff565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6132496025836122a7565b9150613254826131ef565b604082019050919050565b5f6020820190508181035f8301526132768161323d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6132d76023836122a7565b91506132e28261327d565b604082019050919050565b5f6020820190508181035f830152613304816132cb565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6133656026836122a7565b91506133708261330b565b604082019050919050565b5f6020820190508181035f83015261339281613359565b9050919050565b5f6133a38261235b565b91506133ae8361235b565b92508282039050818111156133c6576133c56126a8565b5b9291505056fea26469706673582212207fb3642df53e97f546972c9bf0e026759389a96adc3916b53b3d4405231bd75164736f6c634300081a0033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.