ETH Price: $3,117.12 (+0.62%)
Gas: 4 Gwei

Token

VegaFi (VGA)
 

Overview

Max Total Supply

10,000,000 VGA

Holders

578

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
6,140.185480909626104975 VGA

Value
$0.00
0x5e29840500773d0c36ec69e42208a99753abf2c6
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:
VegaFi

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 4 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

File 2 of 4 : INonfungiblePositionManager.sol
interface INonfungiblePositionManager {
    struct MintParams {
        address token0;
        address token1;
        uint24 fee;
        int24 tickLower;
        int24 tickUpper;
        uint amount0Desired;
        uint amount1Desired;
        uint amount0Min;
        uint amount1Min;
        address recipient;
        uint deadline;
    }

    function mint(
        MintParams calldata params
    )
        external
        payable
        returns (uint tokenId, uint128 liquidity, uint amount0, uint amount1);

    struct IncreaseLiquidityParams {
        uint tokenId;
        uint amount0Desired;
        uint amount1Desired;
        uint amount0Min;
        uint amount1Min;
        uint deadline;
    }

    function increaseLiquidity(
        IncreaseLiquidityParams calldata params
    ) external payable returns (uint128 liquidity, uint amount0, uint amount1);

    struct DecreaseLiquidityParams {
        uint tokenId;
        uint128 liquidity;
        uint amount0Min;
        uint amount1Min;
        uint deadline;
    }

    function decreaseLiquidity(
        DecreaseLiquidityParams calldata params
    ) external payable returns (uint amount0, uint amount1);

    struct CollectParams {
        uint tokenId;
        address recipient;
        uint128 amount0Max;
        uint128 amount1Max;
    }

    function collect(
        CollectParams calldata params
    ) external payable returns (uint amount0, uint amount1);

    function createAndInitializePoolIfNecessary(
        address token0,
        address token1,
        uint24 fee,
        uint160 sqrtPriceX96
    ) external payable returns (address pool);

}

File 3 of 4 : ISwapRouter.sol
interface ISwapRouter {
    struct ExactInputSingleParams {
        address tokenIn;
        address tokenOut;
        uint24 fee;
        address recipient;
        uint deadline;
        uint amountIn;
        uint amountOutMinimum;
        uint160 sqrtPriceLimitX96;
    }

    /// @notice Swaps amountIn of one token for as much as possible of another token
    /// @param params The parameters necessary for the swap, encoded as ExactInputSingleParams in calldata
    /// @return amountOut The amount of the received token
    function exactInputSingle(
        ExactInputSingleParams calldata params
    ) external payable returns (uint amountOut);

}

File 4 of 4 : VegaFi.sol
/**
 *Submitted for verification at Etherscan.io on 2023-10-20
*/

/*
   VegaFi - Algorithmic Reflexivity

                                                 ,/
                                                //
                                              ,//
                                  ___   /|   |//
                              `__/\_ --(/|___/-/
                           \|\_-\___ __-_`- /-/ \.
                          |\_-___,-\_____--/_)' ) \
                           \ -_ /     __ \( `( __`\|
                           `\__|      |\)\ ) /(/|
   ,._____.,            ',--//-|      \  |  '   /
  /     __. \,          / /,---|       \       /
 / /    _. \  \        `/`_/ _,'        |     |
|  | ( (  \   |      ,/\'__/'/          |     |
|  \  \`--, `_/_------______/           \(   )/
| | \  \_. \,                            \___/\
| |  \_   \  \                                 \
\ \    \_ \   \   /                             \
 \ \  \._  \__ \_|       |                       \
  \ \___  \      \       |                        \
   \__ \__ \  \_ |       \                         |
   |  \_____ \  ____      |                        |
   | \  \__ ---' .__\     |        |               |
   \  \__ ---   /   )     |        \              /
    \   \____/ / ()(      \          `---_       /|
     \__________/(,--__    \_________.    |    ./ |
       |     \ \  `---_\--,           \   \_,./   |
       |      \  \_ ` \    /`---_______-\   \\    /
        \      \.___,`|   /              \   \\   \
         \     |  \_ \|   \              (   |:    |
          \    \      \    |             /  / |    ;
           \    \      \    \          ( `_'   \  |
            \.   \      \.   \          `__/   |  |
              \   \       \.  \                |  |
               \   \        \  \               (  )
                \   |        \  |              |  |
                 |  \         \ \              I  `
                 ( __;        ( _;            ('-_';
                 |___\        \___:            \___:

   Telegram:  https://t.me/vegafiportal
   Twitter/X: https://twitter.com/VegaFiOfficial
   Website:   https://vegafi.io
   Docs:      https://docs.vegafi.io
*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;

import "./interfaces/INonfungiblePositionManager.sol";
import "./interfaces/ISwapRouter.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

interface IERC721Receiver {
    function onERC721Received(
        address operator,
        address from,
        uint tokenId,
        bytes calldata data
    ) external returns (bytes4);
}

contract VegaFi {
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);

    uint public totalSupply;
    mapping(address => uint) public balanceOf;
    mapping(address => mapping(address => uint)) public allowance;
    mapping(address => bool) public antibot;
    mapping(address => bool) public noMax;
    string public name = "VegaFi";
    string public symbol = "VGA";
    uint8 public decimals = 18;

    INonfungiblePositionManager public nonfungiblePositionManager = INonfungiblePositionManager(0xC36442b4a4522E871399CD717aBDD847Ab11FE88);
    ISwapRouter constant router = ISwapRouter(0xE592427A0AEce92De3Edee1F18E0157C05861564);

    address public WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address public pool;
    address public quant;
    uint256 public buyFee = 10000;
    uint256 public bolsterReward = 5000;
    uint256 public buyFeeBalance;
    uint256 public maxWalletPercent = 100;

    modifier onlyQuant() {
        require(msg.sender == quant, "Not quant!");
        _;
    }

    constructor() {
      quant = msg.sender;
      noMax[address(this)] = true; // Lets the smart contract collectAllFees

      uint amount = 10_000_000 * (10 ** 18);
      balanceOf[msg.sender] += amount;
      totalSupply += amount;
      emit Transfer(address(0), msg.sender, amount);

      address token0 = address(this) < WETH ? address(this) : WETH;
      address token1 = address(this) < WETH ? WETH : address(this);
      uint24 fee = 10000;
      uint160 sqrtPriceX96 = token0 == address(this) ? 100000000000000000000000000 : 62771017353866810000000000000000;

      pool = initializePool(token0, token1, fee, sqrtPriceX96);
    }

    // Creates UniswapV3 "address(this)-WETH" pool
    function initializePool(address token0, address token1, uint24 fee, uint160 sqrtPriceX96) public returns (address) {
      return nonfungiblePositionManager.createAndInitializePoolIfNecessary(token0, token1, fee, sqrtPriceX96);
    }

    // ERC20 standard functions
    function transfer(address recipient, uint amount) public returns (bool) {
        require(antibot[msg.sender] == false, "Bot detected!");

        if (msg.sender == pool) {

          balanceOf[msg.sender] -= amount;

          uint amountNoFee = handleTaxedTokens(msg.sender, amount);

          if (!noMax[recipient]) {
            uint256 maxWallet = totalSupply * maxWalletPercent / 100_000;
            require(balanceOf[recipient] + amountNoFee <=  maxWallet, "Max wallet exceeded!");
          }

          balanceOf[recipient] += amountNoFee;
          emit Transfer(msg.sender, recipient, amountNoFee);
          return true;

        } else {
          balanceOf[msg.sender] -= amount;
          balanceOf[recipient] += amount;
          emit Transfer(msg.sender, recipient, amount);
          return true;
        }
    }

    function approve(address spender, uint amount) public returns (bool) {
        allowance[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint amount
    ) public returns (bool) {
        require(antibot[sender] == false, "Bot detected!");

        allowance[sender][msg.sender] -= amount;
        balanceOf[sender] -= amount;
        balanceOf[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    // Quant helpers
    function mintNewPosition(
        address token0,
        address token1,
        uint24 fee,
        int24 tickLower,
        int24 tickUpper,
        uint amount0Desired,
        uint amount1Desired,
        uint amount0Min,
        uint amount1Min
    ) public onlyQuant returns (uint tokenId, uint128 liquidity, uint amount0, uint amount1) {
        IERC20(token0).approve(address(nonfungiblePositionManager), amount0Desired);
        IERC20(token1).approve(address(nonfungiblePositionManager), amount1Desired);

        INonfungiblePositionManager.MintParams
            memory params = INonfungiblePositionManager.MintParams({
                token0: token0,
                token1: token1,
                fee: fee,
                tickLower: tickLower,
                tickUpper: tickUpper,
                amount0Desired: amount0Desired,
                amount1Desired: amount1Desired,
                amount0Min: amount0Min,
                amount1Min: amount1Min,
                recipient: address(this),
                deadline: block.timestamp
            });

        (tokenId, liquidity, amount0, amount1) = nonfungiblePositionManager.mint(
            params
        );
    }

    function collectAllFees(
        uint tokenId
    ) public onlyQuant returns (uint amount0, uint amount1) {
        INonfungiblePositionManager.CollectParams
            memory params = INonfungiblePositionManager.CollectParams({
                tokenId: tokenId,
                recipient: address(this),
                amount0Max: type(uint128).max,
                amount1Max: type(uint128).max
            });

        (amount0, amount1) = nonfungiblePositionManager.collect(params);
    }

    function increaseLiquidityCurrentRange(
        address token0,
        address token1,
        uint tokenId,
        uint amount0ToAdd,
        uint amount1ToAdd,
        uint amount0Min,
        uint amount1Min
    ) public onlyQuant returns (uint128 liquidity, uint amount0, uint amount1) {
        IERC20(token0).approve(address(nonfungiblePositionManager), amount0ToAdd);
        IERC20(token1).approve(address(nonfungiblePositionManager), amount1ToAdd);

        INonfungiblePositionManager.IncreaseLiquidityParams
            memory params = INonfungiblePositionManager.IncreaseLiquidityParams({
                tokenId: tokenId,
                amount0Desired: amount0ToAdd,
                amount1Desired: amount1ToAdd,
                amount0Min: amount0Min,
                amount1Min: amount1Min,
                deadline: block.timestamp
            });

        (liquidity, amount0, amount1) = nonfungiblePositionManager.increaseLiquidity(
            params
        );
    }

    function decreaseLiquidityCurrentRange(
        uint tokenId,
        uint128 liquidity,
        uint amount0Min,
        uint amount1Min
    ) public onlyQuant returns (uint amount0, uint amount1) {
        INonfungiblePositionManager.DecreaseLiquidityParams
            memory params = INonfungiblePositionManager.DecreaseLiquidityParams({
                tokenId: tokenId,
                liquidity: liquidity,
                amount0Min: amount0Min,
                amount1Min: amount1Min,
                deadline: block.timestamp
            });

        (amount0, amount1) = nonfungiblePositionManager.decreaseLiquidity(params);
    }

    // Buy fee swap function
    function swapExactInputSingleHop(
        address tokenIn,
        address tokenOut,
        uint24 poolFee,
        uint amountIn,
        uint amountOutMinimum
    ) private returns (uint amountOut) {
        IERC20(tokenIn).approve(address(router), amountIn);

        ISwapRouter.ExactInputSingleParams memory params = ISwapRouter
            .ExactInputSingleParams({
                tokenIn: tokenIn,
                tokenOut: tokenOut,
                fee: poolFee,
                recipient: address(this),
                deadline: block.timestamp,
                amountIn: amountIn,
                amountOutMinimum: amountOutMinimum,
                sqrtPriceLimitX96: 0
            });

        amountOut = router.exactInputSingle(params);
    }

    // Deducts fee from buy orders
    function handleTaxedTokens(address sender, uint amount) private returns (uint) {
          uint256 _fee = amount * buyFee / 100_000;
          balanceOf[address(this)] += _fee;
          buyFeeBalance += _fee;
          emit Transfer(sender, address(this), _fee);

          return amount - _fee;
    }

    // Earn money by calling this function
    function bolsterLiquidityAndEarn() public {
        require(buyFeeBalance > 0);
        uint amountOut = swapExactInputSingleHop(address(this), WETH, 10000, buyFeeBalance, 0);
        buyFeeBalance = 0;

        uint reward = amountOut * bolsterReward / 100_000;
        IERC20(WETH).transfer(msg.sender, reward);
    }

    // Reflexivity insurance
    function upgradeQuant(address _quant) public onlyQuant {
      quant = _quant;
    }

    function modulateFees(uint256 _buyFee, uint256 _bolsterReward, uint256 _maxWalletPercent) public onlyQuant {
      buyFee = _buyFee;
      bolsterReward = _bolsterReward;
      maxWalletPercent = _maxWalletPercent;
    }

    function toggleAntibot(address target) public onlyQuant {
      antibot[target] = !antibot[target];
    }

    function changeNoMax(address target, bool value) public onlyQuant {
      noMax[target] = value;
    }

    // Emergency
    function rescue(address token) public onlyQuant {
      require(token != address(this) && token != WETH);

      if (token == 0x0000000000000000000000000000000000000000) {
        (bool sent, ) = payable(msg.sender).call{value: address(this).balance}("");
        require(sent, "Failed to send Ether");
      } else {
        uint256 balance = IERC20(token).balanceOf(address(this));
        IERC20(token).transfer(msg.sender, balance);
      }
    }

    function onERC721Received(
        address operator,
        address from,
        uint tokenId,
        bytes calldata
    ) external returns (bytes4) {
        return IERC721Receiver.onERC721Received.selector;
    }

}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"antibot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bolsterLiquidityAndEarn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"bolsterReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"changeNoMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"collectAllFees","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint256","name":"amount0Min","type":"uint256"},{"internalType":"uint256","name":"amount1Min","type":"uint256"}],"name":"decreaseLiquidityCurrentRange","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount0ToAdd","type":"uint256"},{"internalType":"uint256","name":"amount1ToAdd","type":"uint256"},{"internalType":"uint256","name":"amount0Min","type":"uint256"},{"internalType":"uint256","name":"amount1Min","type":"uint256"}],"name":"increaseLiquidityCurrentRange","outputs":[{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"name":"initializePool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint256","name":"amount0Desired","type":"uint256"},{"internalType":"uint256","name":"amount1Desired","type":"uint256"},{"internalType":"uint256","name":"amount0Min","type":"uint256"},{"internalType":"uint256","name":"amount1Min","type":"uint256"}],"name":"mintNewPosition","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_bolsterReward","type":"uint256"},{"internalType":"uint256","name":"_maxWalletPercent","type":"uint256"}],"name":"modulateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"noMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nonfungiblePositionManager","outputs":[{"internalType":"contract INonfungiblePositionManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"quant","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"rescue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"toggleAntibot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_quant","type":"address"}],"name":"upgradeQuant","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526040518060400160405280600681526020017f5665676146690000000000000000000000000000000000000000000000000000815250600590816200004a919062000803565b506040518060400160405280600381526020017f56474100000000000000000000000000000000000000000000000000000000008152506006908162000091919062000803565b506012600760006101000a81548160ff021916908360ff16021790555073c36442b4a4522e871399cd717abdd847ab11fe88600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612710600b55611388600c556064600e553480156200017657600080fd5b5033600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060006a084595161401484a000000905080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000271919062000919565b92505081905550806000808282546200028b919062000919565b925050819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002f2919062000965565b60405180910390a36000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16106200037b57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200037d565b305b90506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1610620003de573062000402565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b90506000612710905060003073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161462000456576d0318481895d9627fce3b7ff9000062000463565b6a52b7d2dcc80cd2e40000005b6dffffffffffffffffffffffffffff1690506200048984848484620004d460201b60201c565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505062000aad565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313ead562868686866040518563ffffffff1660e01b8152600401620005399493929190620009f8565b6020604051808303816000875af115801562000559573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200057f919062000a7b565b9050949350505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200060b57607f821691505b602082108103620006215762000620620005c3565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200068b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200064c565b6200069786836200064c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620006e4620006de620006d884620006af565b620006b9565b620006af565b9050919050565b6000819050919050565b6200070083620006c3565b620007186200070f82620006eb565b84845462000659565b825550505050565b600090565b6200072f62000720565b6200073c818484620006f5565b505050565b5b8181101562000764576200075860008262000725565b60018101905062000742565b5050565b601f821115620007b3576200077d8162000627565b62000788846200063c565b8101602085101562000798578190505b620007b0620007a7856200063c565b83018262000741565b50505b505050565b600082821c905092915050565b6000620007d860001984600802620007b8565b1980831691505092915050565b6000620007f38383620007c5565b9150826002028217905092915050565b6200080e8262000589565b67ffffffffffffffff8111156200082a576200082962000594565b5b620008368254620005f2565b6200084382828562000768565b600060209050601f8311600181146200087b576000841562000866578287015190505b620008728582620007e5565b865550620008e2565b601f1984166200088b8662000627565b60005b82811015620008b5578489015182556001820191506020850194506020810190506200088e565b86831015620008d55784890151620008d1601f891682620007c5565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200092682620006af565b91506200093383620006af565b92508282019050808211156200094e576200094d620008ea565b5b92915050565b6200095f81620006af565b82525050565b60006020820190506200097c600083018462000954565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009af8262000982565b9050919050565b620009c181620009a2565b82525050565b600062ffffff82169050919050565b620009e181620009c7565b82525050565b620009f28162000982565b82525050565b600060808201905062000a0f6000830187620009b6565b62000a1e6020830186620009b6565b62000a2d6040830185620009d6565b62000a3c6060830184620009e7565b95945050505050565b600080fd5b62000a5581620009a2565b811462000a6157600080fd5b50565b60008151905062000a758162000a4a565b92915050565b60006020828403121562000a945762000a9362000a45565b5b600062000aa48482850162000a64565b91505092915050565b6137e58062000abd6000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c806370a082311161010f578063afd77ddf116100a2578063dd37019d11610071578063dd37019d146105ae578063dd62ed3e146105e1578063f5825fd114610611578063fef0006e1461062f576101e5565b8063afd77ddf14610525578063b44a272214610556578063c0647dfb14610574578063d8908b0e14610590576101e5565b8063839006f2116100de578063839006f21461049d57806395d89b41146104b9578063a9059cbb146104d7578063ad5c464814610507576101e5565b806370a082311461040357806372de27151461043357806376f584e21461046557806378e958a814610481576101e5565b8063313ce5671161018757806346ce96dd1161015657806346ce96dd14610366578063470624021461039757806351e82255146103b55780636fb1461a146103d3576101e5565b8063313ce567146103045780633cc173d1146103225780633d9a3d191461033e5780634577dab71461035c576101e5565b8063150b7a02116101c3578063150b7a021461026857806316f0115b1461029857806318160ddd146102b657806323b872dd146102d4576101e5565b80630466cca0146101ea57806306fdde031461021a578063095ea7b314610238575b600080fd5b61020460048036038101906101ff91906124f9565b61065f565b6040516102119190612541565b60405180910390f35b61022261067f565b60405161022f91906125ec565b60405180910390f35b610252600480360381019061024d9190612644565b61070d565b60405161025f9190612541565b60405180910390f35b610282600480360381019061027d91906126e9565b6107ff565b60405161028f91906127ac565b60405180910390f35b6102a0610814565b6040516102ad91906127d6565b60405180910390f35b6102be61083a565b6040516102cb9190612800565b60405180910390f35b6102ee60048036038101906102e9919061281b565b610840565b6040516102fb9190612541565b60405180910390f35b61030c610a83565b604051610319919061288a565b60405180910390f35b61033c600480360381019061033791906124f9565b610a96565b005b610346610bcd565b6040516103539190612800565b60405180910390f35b610364610bd3565b005b610380600480360381019061037b91906128a5565b610ce7565b60405161038e9291906128d2565b60405180910390f35b61039f610e84565b6040516103ac9190612800565b60405180910390f35b6103bd610e8a565b6040516103ca9190612800565b60405180910390f35b6103ed60048036038101906103e89190612962565b610e90565b6040516103fa91906127d6565b60405180910390f35b61041d600480360381019061041891906124f9565b610f40565b60405161042a9190612800565b60405180910390f35b61044d600480360381019061044891906129c9565b610f58565b60405161045c93929190612a96565b60405180910390f35b61047f600480360381019061047a9190612acd565b611218565b005b61049b600480360381019061049691906124f9565b6112c2565b005b6104b760048036038101906104b291906124f9565b611396565b005b6104c16116a1565b6040516104ce91906125ec565b60405180910390f35b6104f160048036038101906104ec9190612644565b61172f565b6040516104fe9190612541565b60405180910390f35b61050f611b5f565b60405161051c91906127d6565b60405180910390f35b61053f600480360381019061053a9190612b4c565b611b85565b60405161054d9291906128d2565b60405180910390f35b61055e611d04565b60405161056b9190612c12565b60405180910390f35b61058e60048036038101906105899190612c59565b611d2a565b005b610598611e15565b6040516105a59190612800565b60405180910390f35b6105c860048036038101906105c39190612cd2565b611e1b565b6040516105d89493929190612d9c565b60405180910390f35b6105fb60048036038101906105f69190612de1565b61214f565b6040516106089190612800565b60405180910390f35b610619612174565b60405161062691906127d6565b60405180910390f35b610649600480360381019061064491906124f9565b61219a565b6040516106569190612541565b60405180910390f35b60036020528060005260406000206000915054906101000a900460ff1681565b6005805461068c90612e50565b80601f01602080910402602001604051908101604052809291908181526020018280546106b890612e50565b80156107055780601f106106da57610100808354040283529160200191610705565b820191906000526020600020905b8154815290600101906020018083116106e857829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107ed9190612800565b60405180910390a36001905092915050565b600063150b7a0260e01b905095945050505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b6000801515600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146108d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cb90612ecd565b60405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109609190612f1c565b9250508190555081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109b69190612f1c565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a0c9190612f50565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a709190612800565b60405180910390a3600190509392505050565b600760009054906101000a900460ff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1d90612fd0565b60405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e5481565b6000600d5411610be257600080fd5b6000610c1830600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612710600d5460006121ba565b90506000600d819055506000620186a0600c5483610c369190612ff0565b610c409190613061565b9050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610c9f929190613092565b6020604051808303816000875af1158015610cbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce291906130d0565b505050565b600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7190612fd0565b60405180910390fd5b600060405180608001604052808581526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016fffffffffffffffffffffffffffffffff801681526020016fffffffffffffffffffffffffffffffff80168152509050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fc6f7865826040518263ffffffff1660e01b8152600401610e34919061317f565b60408051808303816000875af1158015610e52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7691906131af565b809350819450505050915091565b600b5481565b600c5481565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313ead562868686866040518563ffffffff1660e01b8152600401610ef3949392919061320d565b6020604051808303816000875af1158015610f12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f369190613267565b9050949350505050565b60016020528060005260406000206000915090505481565b6000806000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe490612fd0565b60405180910390fd5b8973ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16896040518363ffffffff1660e01b815260040161104a929190613092565b6020604051808303816000875af1158015611069573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108d91906130d0565b508873ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886040518363ffffffff1660e01b81526004016110eb929190613092565b6020604051808303816000875af115801561110a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112e91906130d0565b5060006040518060c001604052808a8152602001898152602001888152602001878152602001868152602001428152509050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663219f5d17826040518263ffffffff1660e01b81526004016111bb919061330f565b6060604051808303816000875af11580156111da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fe919061333f565b809450819550829650505050509750975097945050505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129f90612fd0565b60405180910390fd5b82600b8190555081600c8190555080600e81905550505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611352576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134990612fd0565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d90612fd0565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156114b05750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6114b957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361159f5760003373ffffffffffffffffffffffffffffffffffffffff1647604051611513906133c3565b60006040518083038185875af1925050503d8060008114611550576040519150601f19603f3d011682016040523d82523d6000602084013e611555565b606091505b5050905080611599576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159090613424565b60405180910390fd5b5061169e565b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115da91906127d6565b602060405180830381865afa1580156115f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161b9190613444565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611658929190613092565b6020604051808303816000875af1158015611677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169b91906130d0565b50505b50565b600680546116ae90612e50565b80601f01602080910402602001604051908101604052809291908181526020018280546116da90612e50565b80156117275780601f106116fc57610100808354040283529160200191611727565b820191906000526020600020905b81548152906001019060200180831161170a57829003601f168201915b505050505081565b6000801515600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146117c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ba90612ecd565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603611a435781600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118679190612f1c565b92505081905550600061187a3384612387565b9050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661197e576000620186a0600e546000546118e39190612ff0565b6118ed9190613061565b90508082600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461193b9190612f50565b111561197c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611973906134bd565b60405180910390fd5b505b80600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119cd9190612f50565b925050819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a319190612800565b60405180910390a36001915050611b59565b81600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a929190612f1c565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ae89190612f50565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b4c9190612800565b60405180910390a3600190505b92915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0f90612fd0565b60405180910390fd5b60006040518060a00160405280888152602001876fffffffffffffffffffffffffffffffff168152602001868152602001858152602001428152509050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630c49ccbe826040518263ffffffff1660e01b8152600401611cb09190613545565b60408051808303816000875af1158015611cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf291906131af565b80935081945050505094509492505050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db190612fd0565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b600080600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea890612fd0565b60405180910390fd5b8c73ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a6040518363ffffffff1660e01b8152600401611f0e929190613092565b6020604051808303816000875af1158015611f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5191906130d0565b508b73ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16896040518363ffffffff1660e01b8152600401611faf929190613092565b6020604051808303816000875af1158015611fce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff291906130d0565b5060006040518061016001604052808f73ffffffffffffffffffffffffffffffffffffffff1681526020018e73ffffffffffffffffffffffffffffffffffffffff1681526020018d62ffffff1681526020018c60020b81526020018b60020b81526020018a81526020018981526020018881526020018781526020013073ffffffffffffffffffffffffffffffffffffffff168152602001428152509050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166388316456826040518263ffffffff1660e01b81526004016120eb919061365f565b6080604051808303816000875af115801561210a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212e919061367b565b80955081965082975083985050505050509950995099509995505050505050565b6002602052816000526040600020602052806000526040600020600091509150505481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b60008573ffffffffffffffffffffffffffffffffffffffff1663095ea7b373e592427a0aece92de3edee1f18e0157c05861564856040518363ffffffff1660e01b815260040161220b929190613092565b6020604051808303816000875af115801561222a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224e91906130d0565b5060006040518061010001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1681526020018662ffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001428152602001858152602001848152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905073e592427a0aece92de3edee1f18e0157c0586156473ffffffffffffffffffffffffffffffffffffffff1663414bf389826040518263ffffffff1660e01b81526004016123389190613793565b6020604051808303816000875af1158015612357573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237b9190613444565b91505095945050505050565b600080620186a0600b548461239c9190612ff0565b6123a69190613061565b905080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123f79190612f50565b9250508190555080600d60008282546124109190612f50565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124749190612800565b60405180910390a380836124889190612f1c565b91505092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124c68261249b565b9050919050565b6124d6816124bb565b81146124e157600080fd5b50565b6000813590506124f3816124cd565b92915050565b60006020828403121561250f5761250e612491565b5b600061251d848285016124e4565b91505092915050565b60008115159050919050565b61253b81612526565b82525050565b60006020820190506125566000830184612532565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561259657808201518184015260208101905061257b565b60008484015250505050565b6000601f19601f8301169050919050565b60006125be8261255c565b6125c88185612567565b93506125d8818560208601612578565b6125e1816125a2565b840191505092915050565b6000602082019050818103600083015261260681846125b3565b905092915050565b6000819050919050565b6126218161260e565b811461262c57600080fd5b50565b60008135905061263e81612618565b92915050565b6000806040838503121561265b5761265a612491565b5b6000612669858286016124e4565b925050602061267a8582860161262f565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126126a9576126a8612684565b5b8235905067ffffffffffffffff8111156126c6576126c5612689565b5b6020830191508360018202830111156126e2576126e161268e565b5b9250929050565b60008060008060006080868803121561270557612704612491565b5b6000612713888289016124e4565b9550506020612724888289016124e4565b94505060406127358882890161262f565b935050606086013567ffffffffffffffff81111561275657612755612496565b5b61276288828901612693565b92509250509295509295909350565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6127a681612771565b82525050565b60006020820190506127c1600083018461279d565b92915050565b6127d0816124bb565b82525050565b60006020820190506127eb60008301846127c7565b92915050565b6127fa8161260e565b82525050565b600060208201905061281560008301846127f1565b92915050565b60008060006060848603121561283457612833612491565b5b6000612842868287016124e4565b9350506020612853868287016124e4565b92505060406128648682870161262f565b9150509250925092565b600060ff82169050919050565b6128848161286e565b82525050565b600060208201905061289f600083018461287b565b92915050565b6000602082840312156128bb576128ba612491565b5b60006128c98482850161262f565b91505092915050565b60006040820190506128e760008301856127f1565b6128f460208301846127f1565b9392505050565b600062ffffff82169050919050565b612913816128fb565b811461291e57600080fd5b50565b6000813590506129308161290a565b92915050565b61293f8161249b565b811461294a57600080fd5b50565b60008135905061295c81612936565b92915050565b6000806000806080858703121561297c5761297b612491565b5b600061298a878288016124e4565b945050602061299b878288016124e4565b93505060406129ac87828801612921565b92505060606129bd8782880161294d565b91505092959194509250565b600080600080600080600060e0888a0312156129e8576129e7612491565b5b60006129f68a828b016124e4565b9750506020612a078a828b016124e4565b9650506040612a188a828b0161262f565b9550506060612a298a828b0161262f565b9450506080612a3a8a828b0161262f565b93505060a0612a4b8a828b0161262f565b92505060c0612a5c8a828b0161262f565b91505092959891949750929550565b60006fffffffffffffffffffffffffffffffff82169050919050565b612a9081612a6b565b82525050565b6000606082019050612aab6000830186612a87565b612ab860208301856127f1565b612ac560408301846127f1565b949350505050565b600080600060608486031215612ae657612ae5612491565b5b6000612af48682870161262f565b9350506020612b058682870161262f565b9250506040612b168682870161262f565b9150509250925092565b612b2981612a6b565b8114612b3457600080fd5b50565b600081359050612b4681612b20565b92915050565b60008060008060808587031215612b6657612b65612491565b5b6000612b748782880161262f565b9450506020612b8587828801612b37565b9350506040612b968782880161262f565b9250506060612ba78782880161262f565b91505092959194509250565b6000819050919050565b6000612bd8612bd3612bce8461249b565b612bb3565b61249b565b9050919050565b6000612bea82612bbd565b9050919050565b6000612bfc82612bdf565b9050919050565b612c0c81612bf1565b82525050565b6000602082019050612c276000830184612c03565b92915050565b612c3681612526565b8114612c4157600080fd5b50565b600081359050612c5381612c2d565b92915050565b60008060408385031215612c7057612c6f612491565b5b6000612c7e858286016124e4565b9250506020612c8f85828601612c44565b9150509250929050565b60008160020b9050919050565b612caf81612c99565b8114612cba57600080fd5b50565b600081359050612ccc81612ca6565b92915050565b60008060008060008060008060006101208a8c031215612cf557612cf4612491565b5b6000612d038c828d016124e4565b9950506020612d148c828d016124e4565b9850506040612d258c828d01612921565b9750506060612d368c828d01612cbd565b9650506080612d478c828d01612cbd565b95505060a0612d588c828d0161262f565b94505060c0612d698c828d0161262f565b93505060e0612d7a8c828d0161262f565b925050610100612d8c8c828d0161262f565b9150509295985092959850929598565b6000608082019050612db160008301876127f1565b612dbe6020830186612a87565b612dcb60408301856127f1565b612dd860608301846127f1565b95945050505050565b60008060408385031215612df857612df7612491565b5b6000612e06858286016124e4565b9250506020612e17858286016124e4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612e6857607f821691505b602082108103612e7b57612e7a612e21565b5b50919050565b7f426f742064657465637465642100000000000000000000000000000000000000600082015250565b6000612eb7600d83612567565b9150612ec282612e81565b602082019050919050565b60006020820190508181036000830152612ee681612eaa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f278261260e565b9150612f328361260e565b9250828203905081811115612f4a57612f49612eed565b5b92915050565b6000612f5b8261260e565b9150612f668361260e565b9250828201905080821115612f7e57612f7d612eed565b5b92915050565b7f4e6f74207175616e742100000000000000000000000000000000000000000000600082015250565b6000612fba600a83612567565b9150612fc582612f84565b602082019050919050565b60006020820190508181036000830152612fe981612fad565b9050919050565b6000612ffb8261260e565b91506130068361260e565b92508282026130148161260e565b9150828204841483151761302b5761302a612eed565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061306c8261260e565b91506130778361260e565b92508261308757613086613032565b5b828204905092915050565b60006040820190506130a760008301856127c7565b6130b460208301846127f1565b9392505050565b6000815190506130ca81612c2d565b92915050565b6000602082840312156130e6576130e5612491565b5b60006130f4848285016130bb565b91505092915050565b6131068161260e565b82525050565b613115816124bb565b82525050565b61312481612a6b565b82525050565b60808201600082015161314060008501826130fd565b506020820151613153602085018261310c565b506040820151613166604085018261311b565b506060820151613179606085018261311b565b50505050565b6000608082019050613194600083018461312a565b92915050565b6000815190506131a981612618565b92915050565b600080604083850312156131c6576131c5612491565b5b60006131d48582860161319a565b92505060206131e58582860161319a565b9150509250929050565b6131f8816128fb565b82525050565b6132078161249b565b82525050565b600060808201905061322260008301876127c7565b61322f60208301866127c7565b61323c60408301856131ef565b61324960608301846131fe565b95945050505050565b600081519050613261816124cd565b92915050565b60006020828403121561327d5761327c612491565b5b600061328b84828501613252565b91505092915050565b60c0820160008201516132aa60008501826130fd565b5060208201516132bd60208501826130fd565b5060408201516132d060408501826130fd565b5060608201516132e360608501826130fd565b5060808201516132f660808501826130fd565b5060a082015161330960a08501826130fd565b50505050565b600060c0820190506133246000830184613294565b92915050565b60008151905061333981612b20565b92915050565b60008060006060848603121561335857613357612491565b5b60006133668682870161332a565b93505060206133778682870161319a565b92505060406133888682870161319a565b9150509250925092565b600081905092915050565b50565b60006133ad600083613392565b91506133b88261339d565b600082019050919050565b60006133ce826133a0565b9150819050919050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061340e601483612567565b9150613419826133d8565b602082019050919050565b6000602082019050818103600083015261343d81613401565b9050919050565b60006020828403121561345a57613459612491565b5b60006134688482850161319a565b91505092915050565b7f4d61782077616c6c657420657863656564656421000000000000000000000000600082015250565b60006134a7601483612567565b91506134b282613471565b602082019050919050565b600060208201905081810360008301526134d68161349a565b9050919050565b60a0820160008201516134f360008501826130fd565b506020820151613506602085018261311b565b50604082015161351960408501826130fd565b50606082015161352c60608501826130fd565b50608082015161353f60808501826130fd565b50505050565b600060a08201905061355a60008301846134dd565b92915050565b613569816128fb565b82525050565b61357881612c99565b82525050565b61016082016000820151613595600085018261310c565b5060208201516135a8602085018261310c565b5060408201516135bb6040850182613560565b5060608201516135ce606085018261356f565b5060808201516135e1608085018261356f565b5060a08201516135f460a08501826130fd565b5060c082015161360760c08501826130fd565b5060e082015161361a60e08501826130fd565b5061010082015161362f6101008501826130fd565b5061012082015161364461012085018261310c565b506101408201516136596101408501826130fd565b50505050565b600061016082019050613675600083018461357e565b92915050565b6000806000806080858703121561369557613694612491565b5b60006136a38782880161319a565b94505060206136b48782880161332a565b93505060406136c58782880161319a565b92505060606136d68782880161319a565b91505092959194509250565b6136eb8161249b565b82525050565b61010082016000820151613708600085018261310c565b50602082015161371b602085018261310c565b50604082015161372e6040850182613560565b506060820151613741606085018261310c565b50608082015161375460808501826130fd565b5060a082015161376760a08501826130fd565b5060c082015161377a60c08501826130fd565b5060e082015161378d60e08501826136e2565b50505050565b6000610100820190506137a960008301846136f1565b9291505056fea2646970667358221220cdbf59d21da32bd7dae12a75571962750ec3b01d003dcd46d0053e950ebf4f9564736f6c63430008130033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101e55760003560e01c806370a082311161010f578063afd77ddf116100a2578063dd37019d11610071578063dd37019d146105ae578063dd62ed3e146105e1578063f5825fd114610611578063fef0006e1461062f576101e5565b8063afd77ddf14610525578063b44a272214610556578063c0647dfb14610574578063d8908b0e14610590576101e5565b8063839006f2116100de578063839006f21461049d57806395d89b41146104b9578063a9059cbb146104d7578063ad5c464814610507576101e5565b806370a082311461040357806372de27151461043357806376f584e21461046557806378e958a814610481576101e5565b8063313ce5671161018757806346ce96dd1161015657806346ce96dd14610366578063470624021461039757806351e82255146103b55780636fb1461a146103d3576101e5565b8063313ce567146103045780633cc173d1146103225780633d9a3d191461033e5780634577dab71461035c576101e5565b8063150b7a02116101c3578063150b7a021461026857806316f0115b1461029857806318160ddd146102b657806323b872dd146102d4576101e5565b80630466cca0146101ea57806306fdde031461021a578063095ea7b314610238575b600080fd5b61020460048036038101906101ff91906124f9565b61065f565b6040516102119190612541565b60405180910390f35b61022261067f565b60405161022f91906125ec565b60405180910390f35b610252600480360381019061024d9190612644565b61070d565b60405161025f9190612541565b60405180910390f35b610282600480360381019061027d91906126e9565b6107ff565b60405161028f91906127ac565b60405180910390f35b6102a0610814565b6040516102ad91906127d6565b60405180910390f35b6102be61083a565b6040516102cb9190612800565b60405180910390f35b6102ee60048036038101906102e9919061281b565b610840565b6040516102fb9190612541565b60405180910390f35b61030c610a83565b604051610319919061288a565b60405180910390f35b61033c600480360381019061033791906124f9565b610a96565b005b610346610bcd565b6040516103539190612800565b60405180910390f35b610364610bd3565b005b610380600480360381019061037b91906128a5565b610ce7565b60405161038e9291906128d2565b60405180910390f35b61039f610e84565b6040516103ac9190612800565b60405180910390f35b6103bd610e8a565b6040516103ca9190612800565b60405180910390f35b6103ed60048036038101906103e89190612962565b610e90565b6040516103fa91906127d6565b60405180910390f35b61041d600480360381019061041891906124f9565b610f40565b60405161042a9190612800565b60405180910390f35b61044d600480360381019061044891906129c9565b610f58565b60405161045c93929190612a96565b60405180910390f35b61047f600480360381019061047a9190612acd565b611218565b005b61049b600480360381019061049691906124f9565b6112c2565b005b6104b760048036038101906104b291906124f9565b611396565b005b6104c16116a1565b6040516104ce91906125ec565b60405180910390f35b6104f160048036038101906104ec9190612644565b61172f565b6040516104fe9190612541565b60405180910390f35b61050f611b5f565b60405161051c91906127d6565b60405180910390f35b61053f600480360381019061053a9190612b4c565b611b85565b60405161054d9291906128d2565b60405180910390f35b61055e611d04565b60405161056b9190612c12565b60405180910390f35b61058e60048036038101906105899190612c59565b611d2a565b005b610598611e15565b6040516105a59190612800565b60405180910390f35b6105c860048036038101906105c39190612cd2565b611e1b565b6040516105d89493929190612d9c565b60405180910390f35b6105fb60048036038101906105f69190612de1565b61214f565b6040516106089190612800565b60405180910390f35b610619612174565b60405161062691906127d6565b60405180910390f35b610649600480360381019061064491906124f9565b61219a565b6040516106569190612541565b60405180910390f35b60036020528060005260406000206000915054906101000a900460ff1681565b6005805461068c90612e50565b80601f01602080910402602001604051908101604052809291908181526020018280546106b890612e50565b80156107055780601f106106da57610100808354040283529160200191610705565b820191906000526020600020905b8154815290600101906020018083116106e857829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107ed9190612800565b60405180910390a36001905092915050565b600063150b7a0260e01b905095945050505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b6000801515600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146108d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cb90612ecd565b60405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109609190612f1c565b9250508190555081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109b69190612f1c565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a0c9190612f50565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a709190612800565b60405180910390a3600190509392505050565b600760009054906101000a900460ff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1d90612fd0565b60405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e5481565b6000600d5411610be257600080fd5b6000610c1830600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612710600d5460006121ba565b90506000600d819055506000620186a0600c5483610c369190612ff0565b610c409190613061565b9050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610c9f929190613092565b6020604051808303816000875af1158015610cbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce291906130d0565b505050565b600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7190612fd0565b60405180910390fd5b600060405180608001604052808581526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016fffffffffffffffffffffffffffffffff801681526020016fffffffffffffffffffffffffffffffff80168152509050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fc6f7865826040518263ffffffff1660e01b8152600401610e34919061317f565b60408051808303816000875af1158015610e52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7691906131af565b809350819450505050915091565b600b5481565b600c5481565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313ead562868686866040518563ffffffff1660e01b8152600401610ef3949392919061320d565b6020604051808303816000875af1158015610f12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f369190613267565b9050949350505050565b60016020528060005260406000206000915090505481565b6000806000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe490612fd0565b60405180910390fd5b8973ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16896040518363ffffffff1660e01b815260040161104a929190613092565b6020604051808303816000875af1158015611069573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108d91906130d0565b508873ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886040518363ffffffff1660e01b81526004016110eb929190613092565b6020604051808303816000875af115801561110a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112e91906130d0565b5060006040518060c001604052808a8152602001898152602001888152602001878152602001868152602001428152509050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663219f5d17826040518263ffffffff1660e01b81526004016111bb919061330f565b6060604051808303816000875af11580156111da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fe919061333f565b809450819550829650505050509750975097945050505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129f90612fd0565b60405180910390fd5b82600b8190555081600c8190555080600e81905550505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611352576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134990612fd0565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d90612fd0565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156114b05750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6114b957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361159f5760003373ffffffffffffffffffffffffffffffffffffffff1647604051611513906133c3565b60006040518083038185875af1925050503d8060008114611550576040519150601f19603f3d011682016040523d82523d6000602084013e611555565b606091505b5050905080611599576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159090613424565b60405180910390fd5b5061169e565b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115da91906127d6565b602060405180830381865afa1580156115f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161b9190613444565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611658929190613092565b6020604051808303816000875af1158015611677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169b91906130d0565b50505b50565b600680546116ae90612e50565b80601f01602080910402602001604051908101604052809291908181526020018280546116da90612e50565b80156117275780601f106116fc57610100808354040283529160200191611727565b820191906000526020600020905b81548152906001019060200180831161170a57829003601f168201915b505050505081565b6000801515600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146117c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ba90612ecd565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603611a435781600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118679190612f1c565b92505081905550600061187a3384612387565b9050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661197e576000620186a0600e546000546118e39190612ff0565b6118ed9190613061565b90508082600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461193b9190612f50565b111561197c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611973906134bd565b60405180910390fd5b505b80600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119cd9190612f50565b925050819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a319190612800565b60405180910390a36001915050611b59565b81600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a929190612f1c565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ae89190612f50565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b4c9190612800565b60405180910390a3600190505b92915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0f90612fd0565b60405180910390fd5b60006040518060a00160405280888152602001876fffffffffffffffffffffffffffffffff168152602001868152602001858152602001428152509050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630c49ccbe826040518263ffffffff1660e01b8152600401611cb09190613545565b60408051808303816000875af1158015611cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf291906131af565b80935081945050505094509492505050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db190612fd0565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b600080600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea890612fd0565b60405180910390fd5b8c73ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a6040518363ffffffff1660e01b8152600401611f0e929190613092565b6020604051808303816000875af1158015611f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5191906130d0565b508b73ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16896040518363ffffffff1660e01b8152600401611faf929190613092565b6020604051808303816000875af1158015611fce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff291906130d0565b5060006040518061016001604052808f73ffffffffffffffffffffffffffffffffffffffff1681526020018e73ffffffffffffffffffffffffffffffffffffffff1681526020018d62ffffff1681526020018c60020b81526020018b60020b81526020018a81526020018981526020018881526020018781526020013073ffffffffffffffffffffffffffffffffffffffff168152602001428152509050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166388316456826040518263ffffffff1660e01b81526004016120eb919061365f565b6080604051808303816000875af115801561210a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212e919061367b565b80955081965082975083985050505050509950995099509995505050505050565b6002602052816000526040600020602052806000526040600020600091509150505481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b60008573ffffffffffffffffffffffffffffffffffffffff1663095ea7b373e592427a0aece92de3edee1f18e0157c05861564856040518363ffffffff1660e01b815260040161220b929190613092565b6020604051808303816000875af115801561222a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224e91906130d0565b5060006040518061010001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1681526020018662ffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001428152602001858152602001848152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905073e592427a0aece92de3edee1f18e0157c0586156473ffffffffffffffffffffffffffffffffffffffff1663414bf389826040518263ffffffff1660e01b81526004016123389190613793565b6020604051808303816000875af1158015612357573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237b9190613444565b91505095945050505050565b600080620186a0600b548461239c9190612ff0565b6123a69190613061565b905080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123f79190612f50565b9250508190555080600d60008282546124109190612f50565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124749190612800565b60405180910390a380836124889190612f1c565b91505092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124c68261249b565b9050919050565b6124d6816124bb565b81146124e157600080fd5b50565b6000813590506124f3816124cd565b92915050565b60006020828403121561250f5761250e612491565b5b600061251d848285016124e4565b91505092915050565b60008115159050919050565b61253b81612526565b82525050565b60006020820190506125566000830184612532565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561259657808201518184015260208101905061257b565b60008484015250505050565b6000601f19601f8301169050919050565b60006125be8261255c565b6125c88185612567565b93506125d8818560208601612578565b6125e1816125a2565b840191505092915050565b6000602082019050818103600083015261260681846125b3565b905092915050565b6000819050919050565b6126218161260e565b811461262c57600080fd5b50565b60008135905061263e81612618565b92915050565b6000806040838503121561265b5761265a612491565b5b6000612669858286016124e4565b925050602061267a8582860161262f565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126126a9576126a8612684565b5b8235905067ffffffffffffffff8111156126c6576126c5612689565b5b6020830191508360018202830111156126e2576126e161268e565b5b9250929050565b60008060008060006080868803121561270557612704612491565b5b6000612713888289016124e4565b9550506020612724888289016124e4565b94505060406127358882890161262f565b935050606086013567ffffffffffffffff81111561275657612755612496565b5b61276288828901612693565b92509250509295509295909350565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6127a681612771565b82525050565b60006020820190506127c1600083018461279d565b92915050565b6127d0816124bb565b82525050565b60006020820190506127eb60008301846127c7565b92915050565b6127fa8161260e565b82525050565b600060208201905061281560008301846127f1565b92915050565b60008060006060848603121561283457612833612491565b5b6000612842868287016124e4565b9350506020612853868287016124e4565b92505060406128648682870161262f565b9150509250925092565b600060ff82169050919050565b6128848161286e565b82525050565b600060208201905061289f600083018461287b565b92915050565b6000602082840312156128bb576128ba612491565b5b60006128c98482850161262f565b91505092915050565b60006040820190506128e760008301856127f1565b6128f460208301846127f1565b9392505050565b600062ffffff82169050919050565b612913816128fb565b811461291e57600080fd5b50565b6000813590506129308161290a565b92915050565b61293f8161249b565b811461294a57600080fd5b50565b60008135905061295c81612936565b92915050565b6000806000806080858703121561297c5761297b612491565b5b600061298a878288016124e4565b945050602061299b878288016124e4565b93505060406129ac87828801612921565b92505060606129bd8782880161294d565b91505092959194509250565b600080600080600080600060e0888a0312156129e8576129e7612491565b5b60006129f68a828b016124e4565b9750506020612a078a828b016124e4565b9650506040612a188a828b0161262f565b9550506060612a298a828b0161262f565b9450506080612a3a8a828b0161262f565b93505060a0612a4b8a828b0161262f565b92505060c0612a5c8a828b0161262f565b91505092959891949750929550565b60006fffffffffffffffffffffffffffffffff82169050919050565b612a9081612a6b565b82525050565b6000606082019050612aab6000830186612a87565b612ab860208301856127f1565b612ac560408301846127f1565b949350505050565b600080600060608486031215612ae657612ae5612491565b5b6000612af48682870161262f565b9350506020612b058682870161262f565b9250506040612b168682870161262f565b9150509250925092565b612b2981612a6b565b8114612b3457600080fd5b50565b600081359050612b4681612b20565b92915050565b60008060008060808587031215612b6657612b65612491565b5b6000612b748782880161262f565b9450506020612b8587828801612b37565b9350506040612b968782880161262f565b9250506060612ba78782880161262f565b91505092959194509250565b6000819050919050565b6000612bd8612bd3612bce8461249b565b612bb3565b61249b565b9050919050565b6000612bea82612bbd565b9050919050565b6000612bfc82612bdf565b9050919050565b612c0c81612bf1565b82525050565b6000602082019050612c276000830184612c03565b92915050565b612c3681612526565b8114612c4157600080fd5b50565b600081359050612c5381612c2d565b92915050565b60008060408385031215612c7057612c6f612491565b5b6000612c7e858286016124e4565b9250506020612c8f85828601612c44565b9150509250929050565b60008160020b9050919050565b612caf81612c99565b8114612cba57600080fd5b50565b600081359050612ccc81612ca6565b92915050565b60008060008060008060008060006101208a8c031215612cf557612cf4612491565b5b6000612d038c828d016124e4565b9950506020612d148c828d016124e4565b9850506040612d258c828d01612921565b9750506060612d368c828d01612cbd565b9650506080612d478c828d01612cbd565b95505060a0612d588c828d0161262f565b94505060c0612d698c828d0161262f565b93505060e0612d7a8c828d0161262f565b925050610100612d8c8c828d0161262f565b9150509295985092959850929598565b6000608082019050612db160008301876127f1565b612dbe6020830186612a87565b612dcb60408301856127f1565b612dd860608301846127f1565b95945050505050565b60008060408385031215612df857612df7612491565b5b6000612e06858286016124e4565b9250506020612e17858286016124e4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612e6857607f821691505b602082108103612e7b57612e7a612e21565b5b50919050565b7f426f742064657465637465642100000000000000000000000000000000000000600082015250565b6000612eb7600d83612567565b9150612ec282612e81565b602082019050919050565b60006020820190508181036000830152612ee681612eaa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f278261260e565b9150612f328361260e565b9250828203905081811115612f4a57612f49612eed565b5b92915050565b6000612f5b8261260e565b9150612f668361260e565b9250828201905080821115612f7e57612f7d612eed565b5b92915050565b7f4e6f74207175616e742100000000000000000000000000000000000000000000600082015250565b6000612fba600a83612567565b9150612fc582612f84565b602082019050919050565b60006020820190508181036000830152612fe981612fad565b9050919050565b6000612ffb8261260e565b91506130068361260e565b92508282026130148161260e565b9150828204841483151761302b5761302a612eed565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061306c8261260e565b91506130778361260e565b92508261308757613086613032565b5b828204905092915050565b60006040820190506130a760008301856127c7565b6130b460208301846127f1565b9392505050565b6000815190506130ca81612c2d565b92915050565b6000602082840312156130e6576130e5612491565b5b60006130f4848285016130bb565b91505092915050565b6131068161260e565b82525050565b613115816124bb565b82525050565b61312481612a6b565b82525050565b60808201600082015161314060008501826130fd565b506020820151613153602085018261310c565b506040820151613166604085018261311b565b506060820151613179606085018261311b565b50505050565b6000608082019050613194600083018461312a565b92915050565b6000815190506131a981612618565b92915050565b600080604083850312156131c6576131c5612491565b5b60006131d48582860161319a565b92505060206131e58582860161319a565b9150509250929050565b6131f8816128fb565b82525050565b6132078161249b565b82525050565b600060808201905061322260008301876127c7565b61322f60208301866127c7565b61323c60408301856131ef565b61324960608301846131fe565b95945050505050565b600081519050613261816124cd565b92915050565b60006020828403121561327d5761327c612491565b5b600061328b84828501613252565b91505092915050565b60c0820160008201516132aa60008501826130fd565b5060208201516132bd60208501826130fd565b5060408201516132d060408501826130fd565b5060608201516132e360608501826130fd565b5060808201516132f660808501826130fd565b5060a082015161330960a08501826130fd565b50505050565b600060c0820190506133246000830184613294565b92915050565b60008151905061333981612b20565b92915050565b60008060006060848603121561335857613357612491565b5b60006133668682870161332a565b93505060206133778682870161319a565b92505060406133888682870161319a565b9150509250925092565b600081905092915050565b50565b60006133ad600083613392565b91506133b88261339d565b600082019050919050565b60006133ce826133a0565b9150819050919050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061340e601483612567565b9150613419826133d8565b602082019050919050565b6000602082019050818103600083015261343d81613401565b9050919050565b60006020828403121561345a57613459612491565b5b60006134688482850161319a565b91505092915050565b7f4d61782077616c6c657420657863656564656421000000000000000000000000600082015250565b60006134a7601483612567565b91506134b282613471565b602082019050919050565b600060208201905081810360008301526134d68161349a565b9050919050565b60a0820160008201516134f360008501826130fd565b506020820151613506602085018261311b565b50604082015161351960408501826130fd565b50606082015161352c60608501826130fd565b50608082015161353f60808501826130fd565b50505050565b600060a08201905061355a60008301846134dd565b92915050565b613569816128fb565b82525050565b61357881612c99565b82525050565b61016082016000820151613595600085018261310c565b5060208201516135a8602085018261310c565b5060408201516135bb6040850182613560565b5060608201516135ce606085018261356f565b5060808201516135e1608085018261356f565b5060a08201516135f460a08501826130fd565b5060c082015161360760c08501826130fd565b5060e082015161361a60e08501826130fd565b5061010082015161362f6101008501826130fd565b5061012082015161364461012085018261310c565b506101408201516136596101408501826130fd565b50505050565b600061016082019050613675600083018461357e565b92915050565b6000806000806080858703121561369557613694612491565b5b60006136a38782880161319a565b94505060206136b48782880161332a565b93505060406136c58782880161319a565b92505060606136d68782880161319a565b91505092959194509250565b6136eb8161249b565b82525050565b61010082016000820151613708600085018261310c565b50602082015161371b602085018261310c565b50604082015161372e6040850182613560565b506060820151613741606085018261310c565b50608082015161375460808501826130fd565b5060a082015161376760a08501826130fd565b5060c082015161377a60c08501826130fd565b5060e082015161378d60e08501826136e2565b50505050565b6000610100820190506137a960008301846136f1565b9291505056fea2646970667358221220cdbf59d21da32bd7dae12a75571962750ec3b01d003dcd46d0053e950ebf4f9564736f6c63430008130033

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.