ETH Price: $2,811.97 (+1.51%)

Token

Lily (LILY)
 

Overview

Max Total Supply

1,000,000,000 LILY

Holders

19

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
13,722,119.462691993 LILY

Value
$0.00
0xafDCC16E189D9a8C8212ed043Ff6d7B41ed073D1
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:
Lily

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : LILY.sol
/*

First AGI agent - $LILY

https://t.me/LilyCoinerc20

https://www.youtube.com/watch?v=mx6LIz2AfKE&ab_channel=ZeroBot

https://x.com/lilyofashwood/status/1845706440608026837

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.22;

interface IUniswapV2Factory {
    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;
}

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

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

contract Lily is ERC20, Ownable {
    IUniswapV2Router02 private constant _router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

    address public uniswapPair;
    address public immutable feeReceiver;

    uint256 private maxWalletSize = 20000000 * 1e9;
    uint256 private contractSwapMax = 20000000 * 1e9;
    uint256 private contractSwapMin = 3000000 * 1e9;  
    uint32 private _buyCount;
    uint32 private _sellCount;
    uint32 private _lastSellBlock;
    uint32 private _preventSwapBefore = 15;
    uint32 private _lowerFeesAt = 30;
    uint32 private _finalBuyFee = 0;
    uint32 private _finalSellFee = 0;
    bool private _inSwap;

    uint256 public buyFeeProcent;
    uint256 public sellFeeProcent;
    uint256 private liquiditySupply;

    mapping (address => bool) private excludedFromTxLimits;

    constructor() ERC20("Lily", "LILY") payable {
        uint256 totalSupply = 1000000000 * 1e9;
        liquiditySupply = 875000000 * 1e9;

        feeReceiver = msg.sender;
        buyFeeProcent = 20;
        sellFeeProcent = 30;

        excludedFromTxLimits[feeReceiver] = true;
        excludedFromTxLimits[msg.sender] = true;
        excludedFromTxLimits[address(this)] = true;
        excludedFromTxLimits[address(0xdead)] = true;
        
        _approve(address(this), address(_router), totalSupply);
        _approve(msg.sender, address(_router), totalSupply);
        _mint(msg.sender, totalSupply);
    }

    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 = excludedFromTxLimits[from] || excludedFromTxLimits[to];
        require(uniswapPair != address(0) || excluded, "Liquidity pair not yet created.");

        bool isSell = to == uniswapPair;
        bool isBuy = from == uniswapPair;

        if(isBuy && !excluded){
            require(balanceOf(to) + amount <= maxWalletSize ||
                to == address(_router), "Max wallet exceeded");
            if(_buyCount <= _lowerFeesAt)
                _buyCount++;
            if(_buyCount == _lowerFeesAt){
                buyFeeProcent = _finalBuyFee;
                sellFeeProcent = _finalSellFee;
            }
        }            

        uint256 contractTokenBalance = balanceOf(address(this));
        if (isSell && !_inSwap && contractTokenBalance >= contractSwapMin &&
          !excluded && _buyCount > _preventSwapBefore
        ) {
            if (block.number > _lastSellBlock) 
                _sellCount = 0;
            require(_sellCount < 3, "Only 3 sells per block!");
            _inSwap = true;
            swapTokensForEth(min(amount, min(contractTokenBalance, contractSwapMax)));
            _inSwap = false;
            uint256 contractETHBalance = address(this).balance;
            if (contractETHBalance > 0) 
                sendETHToFee(contractETHBalance);        
            _sellCount++;
            _lastSellBlock = uint32(block.number);
        }

        uint256 fee = isBuy ? buyFeeProcent : sellFeeProcent;

        if (fee > 0 && !excluded && !_inSwap && (isBuy || isSell)) {
            uint256 fees = amount * fee / 100;
            if (fees > 0){
                super._transfer(from, address(this), fees);
                amount-= fees;
            }
        }
        super._transfer(from, to, amount);
    }

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

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

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

    function SetStatus() external payable onlyOwner {
        super._transfer(msg.sender, address(this), totalSupply());
        _router.addLiquidityETH{value: address(this).balance}(address(this), liquiditySupply, 0, 0, msg.sender, block.timestamp);
        uniswapPair = IUniswapV2Factory(_router.factory()).getPair(address(this), _router.WETH());
    }

    function setSwapFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner {
        require(newBuyFee <= 26 && newSellFee <= 26, 'New fee must be lower.'); 
        buyFeeProcent = newBuyFee;
        sellFeeProcent = newSellFee;
    }

    function removeLimits() external onlyOwner {                
        maxWalletSize = totalSupply();
    }

    function updateStructure(uint256 maxAmount, uint256 minAmount) external onlyOwner {                
        contractSwapMax = maxAmount;
        contractSwapMin = minAmount;
    }

    function sweepStuckETH() external onlyOwner {
        payable(feeReceiver).transfer(address(this).balance);
    }

    function transferStuckToken(IERC20 token) external onlyOwner {
        token.transfer(feeReceiver, token.balanceOf(address(this)));
    }

    receive() external payable {}
}

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

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":[],"name":"SetStatus","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeProcent","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":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFeeProcent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"setSwapFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sweepStuckETH","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":"contract IERC20","name":"token","type":"address"}],"name":"transferStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxAmount","type":"uint256"},{"internalType":"uint256","name":"minAmount","type":"uint256"}],"name":"updateStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405266470de4df82000060075566470de4df820000600855660aa87bee538000600955600f600a600c6101000a81548163ffffffff021916908363ffffffff160217905550601e600a60106101000a81548163ffffffff021916908363ffffffff1602179055505f600a60146101000a81548163ffffffff021916908363ffffffff1602179055505f600a60186101000a81548163ffffffff021916908363ffffffff1602179055506040518060400160405280600481526020017f4c696c79000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4c494c5900000000000000000000000000000000000000000000000000000000815250816003908161012691906109a0565b50806004908161013691906109a0565b50505061015561014a61036c60201b60201c565b61037360201b60201c565b5f670de0b6b3a76400009050670c249fdd32778000600d819055503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506014600b81905550601e600c819055506001600e5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061033130737a250d5630b4cf539739df2c5dacb4c659f2488d8361043660201b60201c565b61035633737a250d5630b4cf539739df2c5dacb4c659f2488d8361043660201b60201c565b61036633826105f960201b60201c565b50610c8b565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036104a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049b90610aef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050990610b7d565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516105ec9190610baa565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065e90610c0d565b60405180910390fd5b6106785f838361075c60201b60201c565b8060025f8282546106899190610c58565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546106db9190610c58565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161073f9190610baa565b60405180910390a36107585f838361076160201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806107e157607f821691505b6020821081036107f4576107f361079d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026108567fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261081b565b610860868361081b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6108a461089f61089a84610878565b610881565b610878565b9050919050565b5f819050919050565b6108bd8361088a565b6108d16108c9826108ab565b848454610827565b825550505050565b5f90565b6108e56108d9565b6108f08184846108b4565b505050565b5b81811015610913576109085f826108dd565b6001810190506108f6565b5050565b601f82111561095857610929816107fa565b6109328461080c565b81016020851015610941578190505b61095561094d8561080c565b8301826108f5565b50505b505050565b5f82821c905092915050565b5f6109785f198460080261095d565b1980831691505092915050565b5f6109908383610969565b9150826002028217905092915050565b6109a982610766565b67ffffffffffffffff8111156109c2576109c1610770565b5b6109cc82546107ca565b6109d7828285610917565b5f60209050601f831160018114610a08575f84156109f6578287015190505b610a008582610985565b865550610a67565b601f198416610a16866107fa565b5f5b82811015610a3d57848901518255600182019150602085019450602081019050610a18565b86831015610a5a5784890151610a56601f891682610969565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f610ad9602483610a6f565b9150610ae482610a7f565b604082019050919050565b5f6020820190508181035f830152610b0681610acd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f610b67602283610a6f565b9150610b7282610b0d565b604082019050919050565b5f6020820190508181035f830152610b9481610b5b565b9050919050565b610ba481610878565b82525050565b5f602082019050610bbd5f830184610b9b565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610bf7601f83610a6f565b9150610c0282610bc3565b602082019050919050565b5f6020820190508181035f830152610c2481610beb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c6282610878565b9150610c6d83610878565b9250828201905080821115610c8557610c84610c2b565b5b92915050565b6080516132d4610cb85f395f8181610ee101528181610ffd0152818161109d015261218701526132d45ff3fe60806040526004361061014e575f3560e01c8063751039fc116100b5578063b3f006741161006e578063b3f006741461046b578063c7003cd014610495578063c816841b146104ab578063d0811807146104d5578063dd62ed3e146104ff578063f2fde38b1461053b57610155565b8063751039fc146103615780638da5cb5b1461037757806395d89b41146103a1578063a457c2d7146103cb578063a6ebb13314610407578063a9059cbb1461042f57610155565b8063313ce56711610107578063313ce56714610259578063395093511461028357806346bc4258146102bf57806359acbe4e146102e757806370a082311461030f578063715018a61461034b57610155565b80630605baf91461015957806306fdde0314610163578063095ea7b31461018d5780631678e6f8146101c957806318160ddd146101f357806323b872dd1461021d57610155565b3661015557005b5f80fd5b610161610563565b005b34801561016e575f80fd5b5061017761084a565b604051610184919061225c565b60405180910390f35b348015610198575f80fd5b506101b360048036038101906101ae919061230d565b6108da565b6040516101c09190612365565b60405180910390f35b3480156101d4575f80fd5b506101dd6108fc565b6040516101ea919061238d565b60405180910390f35b3480156101fe575f80fd5b50610207610902565b604051610214919061238d565b60405180910390f35b348015610228575f80fd5b50610243600480360381019061023e91906123a6565b61090b565b6040516102509190612365565b60405180910390f35b348015610264575f80fd5b5061026d610939565b60405161027a9190612411565b60405180910390f35b34801561028e575f80fd5b506102a960048036038101906102a4919061230d565b610941565b6040516102b69190612365565b60405180910390f35b3480156102ca575f80fd5b506102e560048036038101906102e0919061242a565b6109e6565b005b3480156102f2575f80fd5b5061030d6004803603810190610308919061242a565b610a74565b005b34801561031a575f80fd5b5061033560048036038101906103309190612468565b610b53565b604051610342919061238d565b60405180910390f35b348015610356575f80fd5b5061035f610b98565b005b34801561036c575f80fd5b50610375610c1f565b005b348015610382575f80fd5b5061038b610cab565b60405161039891906124a2565b60405180910390f35b3480156103ac575f80fd5b506103b5610cd3565b6040516103c2919061225c565b60405180910390f35b3480156103d6575f80fd5b506103f160048036038101906103ec919061230d565b610d63565b6040516103fe9190612365565b60405180910390f35b348015610412575f80fd5b5061042d600480360381019061042891906124f6565b610e47565b005b34801561043a575f80fd5b506104556004803603810190610450919061230d565b610fd9565b6040516104629190612365565b60405180910390f35b348015610476575f80fd5b5061047f610ffb565b60405161048c91906124a2565b60405180910390f35b3480156104a0575f80fd5b506104a961101f565b005b3480156104b6575f80fd5b506104bf611101565b6040516104cc91906124a2565b60405180910390f35b3480156104e0575f80fd5b506104e9611126565b6040516104f6919061238d565b60405180910390f35b34801561050a575f80fd5b5061052560048036038101906105209190612521565b61112c565b604051610532919061238d565b60405180910390f35b348015610546575f80fd5b50610561600480360381019061055c9190612468565b6111ae565b005b61056b6112a4565b73ffffffffffffffffffffffffffffffffffffffff16610589610cab565b73ffffffffffffffffffffffffffffffffffffffff16146105df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d6906125a9565b60405180910390fd5b6105f133306105ec610902565b6112ab565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7194730600d545f8033426040518863ffffffff1660e01b815260040161064b96959493929190612609565b60606040518083038185885af1158015610667573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061068c919061267c565b505050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106ec573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061071091906126e0565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610789573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ad91906126e0565b6040518363ffffffff1660e01b81526004016107ca92919061270b565b602060405180830381865afa1580156107e5573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080991906126e0565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600380546108599061275f565b80601f01602080910402602001604051908101604052809291908181526020018280546108859061275f565b80156108d05780601f106108a7576101008083540402835291602001916108d0565b820191905f5260205f20905b8154815290600101906020018083116108b357829003601f168201915b5050505050905090565b5f806108e46112a4565b90506108f1818585611520565b600191505092915050565b600c5481565b5f600254905090565b5f806109156112a4565b90506109228582856116e3565b61092d85858561176e565b60019150509392505050565b5f6009905090565b5f8061094b6112a4565b90506109db81858560015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109d691906127bc565b611520565b600191505092915050565b6109ee6112a4565b73ffffffffffffffffffffffffffffffffffffffff16610a0c610cab565b73ffffffffffffffffffffffffffffffffffffffff1614610a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a59906125a9565b60405180910390fd5b81600881905550806009819055505050565b610a7c6112a4565b73ffffffffffffffffffffffffffffffffffffffff16610a9a610cab565b73ffffffffffffffffffffffffffffffffffffffff1614610af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae7906125a9565b60405180910390fd5b601a8211158015610b025750601a8111155b610b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3890612839565b60405180910390fd5b81600b8190555080600c819055505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ba06112a4565b73ffffffffffffffffffffffffffffffffffffffff16610bbe610cab565b73ffffffffffffffffffffffffffffffffffffffff1614610c14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0b906125a9565b60405180910390fd5b610c1d5f611e91565b565b610c276112a4565b73ffffffffffffffffffffffffffffffffffffffff16610c45610cab565b73ffffffffffffffffffffffffffffffffffffffff1614610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c92906125a9565b60405180910390fd5b610ca3610902565b600781905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610ce29061275f565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0e9061275f565b8015610d595780601f10610d3057610100808354040283529160200191610d59565b820191905f5260205f20905b815481529060010190602001808311610d3c57829003601f168201915b5050505050905090565b5f80610d6d6112a4565b90505f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e25906128c7565b60405180910390fd5b610e3b8286868403611520565b60019250505092915050565b610e4f6112a4565b73ffffffffffffffffffffffffffffffffffffffff16610e6d610cab565b73ffffffffffffffffffffffffffffffffffffffff1614610ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eba906125a9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f00000000000000000000000000000000000000000000000000000000000000008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f3991906124a2565b602060405180830381865afa158015610f54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7891906128e5565b6040518363ffffffff1660e01b8152600401610f95929190612910565b6020604051808303815f875af1158015610fb1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd59190612961565b5050565b5f80610fe36112a4565b9050610ff081858561176e565b600191505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6110276112a4565b73ffffffffffffffffffffffffffffffffffffffff16611045610cab565b73ffffffffffffffffffffffffffffffffffffffff161461109b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611092906125a9565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156110fe573d5f803e3d5ffd5b50565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6111b66112a4565b73ffffffffffffffffffffffffffffffffffffffff166111d4610cab565b73ffffffffffffffffffffffffffffffffffffffff161461122a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611221906125a9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f906129fc565b60405180910390fd5b6112a181611e91565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090612a8a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137e90612b18565b60405180910390fd5b611392838383611f54565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611415576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140c90612ba6565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546114a391906127bc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611507919061238d565b60405180910390a361151a848484611f59565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361158e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158590612c34565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f390612cc2565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116d6919061238d565b60405180910390a3505050565b5f6116ee848461112c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611768578181101561175a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175190612d2a565b60405180910390fd5b6117678484848403611520565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d390612db8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361184a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184190612e46565b60405180910390fd5b5f811161188c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188390612ed4565b60405180910390fd5b5f600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806119285750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90505f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415806119835750805b6119c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b990612f3c565b60405180910390fd5b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16149050808015611a73575082155b15611c075760075484611a8587610b53565b611a8f91906127bc565b111580611adb5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b611b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1190612fa4565b60405180910390fd5b600a60109054906101000a900463ffffffff1663ffffffff16600a5f9054906101000a900463ffffffff1663ffffffff1611611b9157600a5f81819054906101000a900463ffffffff1680929190611b7190612fd1565b91906101000a81548163ffffffff021916908363ffffffff160217905550505b600a60109054906101000a900463ffffffff1663ffffffff16600a5f9054906101000a900463ffffffff1663ffffffff1603611c0657600a60149054906101000a900463ffffffff1663ffffffff16600b81905550600a60189054906101000a900463ffffffff1663ffffffff16600c819055505b5b5f611c1130610b53565b9050828015611c2d5750600a601c9054906101000a900460ff16155b8015611c3b57506009548110155b8015611c45575083155b8015611c7f5750600a600c9054906101000a900463ffffffff1663ffffffff16600a5f9054906101000a900463ffffffff1663ffffffff16115b15611ded57600a60089054906101000a900463ffffffff1663ffffffff16431115611cc6575f600a60046101000a81548163ffffffff021916908363ffffffff1602179055505b6003600a60049054906101000a900463ffffffff1663ffffffff1610611d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1890613046565b60405180910390fd5b6001600a601c6101000a81548160ff021916908315150217905550611d59611d5486611d4f84600854611f5e565b611f5e565b611f76565b5f600a601c6101000a81548160ff0219169083151502179055505f4790505f811115611d8957611d8881612185565b5b600a600481819054906101000a900463ffffffff1680929190611dab90612fd1565b91906101000a81548163ffffffff021916908363ffffffff1602179055505043600a60086101000a81548163ffffffff021916908363ffffffff160217905550505b5f82611dfb57600c54611dff565b600b545b90505f81118015611e0e575084155b8015611e275750600a601c9054906101000a900460ff16155b8015611e3857508280611e375750835b5b15611e7c575f60648288611e4c9190613064565b611e5691906130d2565b90505f811115611e7a57611e6b8930836112ab565b8087611e779190613102565b96505b505b611e878888886112ab565b5050505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b5f818311611f6c5782611f6e565b815b905092915050565b5f600267ffffffffffffffff811115611f9257611f91613135565b5b604051908082528060200260200182016040528015611fc05781602001602082028036833780820191505090505b50905030815f81518110611fd757611fd6613162565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061209291906126e0565b816001815181106120a6576120a5613162565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120ff30737a250d5630b4cf539739df2c5dacb4c659f2488d84611520565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612154959493929190613246565b5f604051808303815f87803b15801561216b575f80fd5b505af115801561217d573d5f803e3d5ffd5b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121e8573d5f803e3d5ffd5b5050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61222e826121ec565b61223881856121f6565b9350612248818560208601612206565b61225181612214565b840191505092915050565b5f6020820190508181035f8301526122748184612224565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122a982612280565b9050919050565b6122b98161229f565b81146122c3575f80fd5b50565b5f813590506122d4816122b0565b92915050565b5f819050919050565b6122ec816122da565b81146122f6575f80fd5b50565b5f81359050612307816122e3565b92915050565b5f80604083850312156123235761232261227c565b5b5f612330858286016122c6565b9250506020612341858286016122f9565b9150509250929050565b5f8115159050919050565b61235f8161234b565b82525050565b5f6020820190506123785f830184612356565b92915050565b612387816122da565b82525050565b5f6020820190506123a05f83018461237e565b92915050565b5f805f606084860312156123bd576123bc61227c565b5b5f6123ca868287016122c6565b93505060206123db868287016122c6565b92505060406123ec868287016122f9565b9150509250925092565b5f60ff82169050919050565b61240b816123f6565b82525050565b5f6020820190506124245f830184612402565b92915050565b5f80604083850312156124405761243f61227c565b5b5f61244d858286016122f9565b925050602061245e858286016122f9565b9150509250929050565b5f6020828403121561247d5761247c61227c565b5b5f61248a848285016122c6565b91505092915050565b61249c8161229f565b82525050565b5f6020820190506124b55f830184612493565b92915050565b5f6124c58261229f565b9050919050565b6124d5816124bb565b81146124df575f80fd5b50565b5f813590506124f0816124cc565b92915050565b5f6020828403121561250b5761250a61227c565b5b5f612518848285016124e2565b91505092915050565b5f80604083850312156125375761253661227c565b5b5f612544858286016122c6565b9250506020612555858286016122c6565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6125936020836121f6565b915061259e8261255f565b602082019050919050565b5f6020820190508181035f8301526125c081612587565b9050919050565b5f819050919050565b5f819050919050565b5f6125f36125ee6125e9846125c7565b6125d0565b6122da565b9050919050565b612603816125d9565b82525050565b5f60c08201905061261c5f830189612493565b612629602083018861237e565b61263660408301876125fa565b61264360608301866125fa565b6126506080830185612493565b61265d60a083018461237e565b979650505050505050565b5f81519050612676816122e3565b92915050565b5f805f606084860312156126935761269261227c565b5b5f6126a086828701612668565b93505060206126b186828701612668565b92505060406126c286828701612668565b9150509250925092565b5f815190506126da816122b0565b92915050565b5f602082840312156126f5576126f461227c565b5b5f612702848285016126cc565b91505092915050565b5f60408201905061271e5f830185612493565b61272b6020830184612493565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061277657607f821691505b60208210810361278957612788612732565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6127c6826122da565b91506127d1836122da565b92508282019050808211156127e9576127e861278f565b5b92915050565b7f4e657720666565206d757374206265206c6f7765722e000000000000000000005f82015250565b5f6128236016836121f6565b915061282e826127ef565b602082019050919050565b5f6020820190508181035f83015261285081612817565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6128b16025836121f6565b91506128bc82612857565b604082019050919050565b5f6020820190508181035f8301526128de816128a5565b9050919050565b5f602082840312156128fa576128f961227c565b5b5f61290784828501612668565b91505092915050565b5f6040820190506129235f830185612493565b612930602083018461237e565b9392505050565b6129408161234b565b811461294a575f80fd5b50565b5f8151905061295b81612937565b92915050565b5f602082840312156129765761297561227c565b5b5f6129838482850161294d565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6129e66026836121f6565b91506129f18261298c565b604082019050919050565b5f6020820190508181035f830152612a13816129da565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a746025836121f6565b9150612a7f82612a1a565b604082019050919050565b5f6020820190508181035f830152612aa181612a68565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b026023836121f6565b9150612b0d82612aa8565b604082019050919050565b5f6020820190508181035f830152612b2f81612af6565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612b906026836121f6565b9150612b9b82612b36565b604082019050919050565b5f6020820190508181035f830152612bbd81612b84565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c1e6024836121f6565b9150612c2982612bc4565b604082019050919050565b5f6020820190508181035f830152612c4b81612c12565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cac6022836121f6565b9150612cb782612c52565b604082019050919050565b5f6020820190508181035f830152612cd981612ca0565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612d14601d836121f6565b9150612d1f82612ce0565b602082019050919050565b5f6020820190508181035f830152612d4181612d08565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f2061646472657373206e5f8201527f6f7420616c6c6f7765642e000000000000000000000000000000000000000000602082015250565b5f612da2602b836121f6565b9150612dad82612d48565b604082019050919050565b5f6020820190508181035f830152612dcf81612d96565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373206e6f745f8201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000602082015250565b5f612e306029836121f6565b9150612e3b82612dd6565b604082019050919050565b5f6020820190508181035f830152612e5d81612e24565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f2e00000000000000000000000000000000000000000000602082015250565b5f612ebe602a836121f6565b9150612ec982612e64565b604082019050919050565b5f6020820190508181035f830152612eeb81612eb2565b9050919050565b7f4c69717569646974792070616972206e6f742079657420637265617465642e005f82015250565b5f612f26601f836121f6565b9150612f3182612ef2565b602082019050919050565b5f6020820190508181035f830152612f5381612f1a565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f612f8e6013836121f6565b9150612f9982612f5a565b602082019050919050565b5f6020820190508181035f830152612fbb81612f82565b9050919050565b5f63ffffffff82169050919050565b5f612fdb82612fc2565b915063ffffffff8203612ff157612ff061278f565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6130306017836121f6565b915061303b82612ffc565b602082019050919050565b5f6020820190508181035f83015261305d81613024565b9050919050565b5f61306e826122da565b9150613079836122da565b9250828202613087816122da565b9150828204841483151761309e5761309d61278f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6130dc826122da565b91506130e7836122da565b9250826130f7576130f66130a5565b5b828204905092915050565b5f61310c826122da565b9150613117836122da565b925082820390508181111561312f5761312e61278f565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6131c18161229f565b82525050565b5f6131d283836131b8565b60208301905092915050565b5f602082019050919050565b5f6131f48261318f565b6131fe8185613199565b9350613209836131a9565b805f5b8381101561323957815161322088826131c7565b975061322b836131de565b92505060018101905061320c565b5085935050505092915050565b5f60a0820190506132595f83018861237e565b61326660208301876125fa565b818103604083015261327881866131ea565b90506132876060830185612493565b613294608083018461237e565b969550505050505056fea26469706673582212209ed12fce858ad9fa74230babeb393233117ad80adc0882e122ce5edef6070a8d64736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061014e575f3560e01c8063751039fc116100b5578063b3f006741161006e578063b3f006741461046b578063c7003cd014610495578063c816841b146104ab578063d0811807146104d5578063dd62ed3e146104ff578063f2fde38b1461053b57610155565b8063751039fc146103615780638da5cb5b1461037757806395d89b41146103a1578063a457c2d7146103cb578063a6ebb13314610407578063a9059cbb1461042f57610155565b8063313ce56711610107578063313ce56714610259578063395093511461028357806346bc4258146102bf57806359acbe4e146102e757806370a082311461030f578063715018a61461034b57610155565b80630605baf91461015957806306fdde0314610163578063095ea7b31461018d5780631678e6f8146101c957806318160ddd146101f357806323b872dd1461021d57610155565b3661015557005b5f80fd5b610161610563565b005b34801561016e575f80fd5b5061017761084a565b604051610184919061225c565b60405180910390f35b348015610198575f80fd5b506101b360048036038101906101ae919061230d565b6108da565b6040516101c09190612365565b60405180910390f35b3480156101d4575f80fd5b506101dd6108fc565b6040516101ea919061238d565b60405180910390f35b3480156101fe575f80fd5b50610207610902565b604051610214919061238d565b60405180910390f35b348015610228575f80fd5b50610243600480360381019061023e91906123a6565b61090b565b6040516102509190612365565b60405180910390f35b348015610264575f80fd5b5061026d610939565b60405161027a9190612411565b60405180910390f35b34801561028e575f80fd5b506102a960048036038101906102a4919061230d565b610941565b6040516102b69190612365565b60405180910390f35b3480156102ca575f80fd5b506102e560048036038101906102e0919061242a565b6109e6565b005b3480156102f2575f80fd5b5061030d6004803603810190610308919061242a565b610a74565b005b34801561031a575f80fd5b5061033560048036038101906103309190612468565b610b53565b604051610342919061238d565b60405180910390f35b348015610356575f80fd5b5061035f610b98565b005b34801561036c575f80fd5b50610375610c1f565b005b348015610382575f80fd5b5061038b610cab565b60405161039891906124a2565b60405180910390f35b3480156103ac575f80fd5b506103b5610cd3565b6040516103c2919061225c565b60405180910390f35b3480156103d6575f80fd5b506103f160048036038101906103ec919061230d565b610d63565b6040516103fe9190612365565b60405180910390f35b348015610412575f80fd5b5061042d600480360381019061042891906124f6565b610e47565b005b34801561043a575f80fd5b506104556004803603810190610450919061230d565b610fd9565b6040516104629190612365565b60405180910390f35b348015610476575f80fd5b5061047f610ffb565b60405161048c91906124a2565b60405180910390f35b3480156104a0575f80fd5b506104a961101f565b005b3480156104b6575f80fd5b506104bf611101565b6040516104cc91906124a2565b60405180910390f35b3480156104e0575f80fd5b506104e9611126565b6040516104f6919061238d565b60405180910390f35b34801561050a575f80fd5b5061052560048036038101906105209190612521565b61112c565b604051610532919061238d565b60405180910390f35b348015610546575f80fd5b50610561600480360381019061055c9190612468565b6111ae565b005b61056b6112a4565b73ffffffffffffffffffffffffffffffffffffffff16610589610cab565b73ffffffffffffffffffffffffffffffffffffffff16146105df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d6906125a9565b60405180910390fd5b6105f133306105ec610902565b6112ab565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7194730600d545f8033426040518863ffffffff1660e01b815260040161064b96959493929190612609565b60606040518083038185885af1158015610667573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061068c919061267c565b505050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106ec573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061071091906126e0565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610789573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ad91906126e0565b6040518363ffffffff1660e01b81526004016107ca92919061270b565b602060405180830381865afa1580156107e5573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080991906126e0565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600380546108599061275f565b80601f01602080910402602001604051908101604052809291908181526020018280546108859061275f565b80156108d05780601f106108a7576101008083540402835291602001916108d0565b820191905f5260205f20905b8154815290600101906020018083116108b357829003601f168201915b5050505050905090565b5f806108e46112a4565b90506108f1818585611520565b600191505092915050565b600c5481565b5f600254905090565b5f806109156112a4565b90506109228582856116e3565b61092d85858561176e565b60019150509392505050565b5f6009905090565b5f8061094b6112a4565b90506109db81858560015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109d691906127bc565b611520565b600191505092915050565b6109ee6112a4565b73ffffffffffffffffffffffffffffffffffffffff16610a0c610cab565b73ffffffffffffffffffffffffffffffffffffffff1614610a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a59906125a9565b60405180910390fd5b81600881905550806009819055505050565b610a7c6112a4565b73ffffffffffffffffffffffffffffffffffffffff16610a9a610cab565b73ffffffffffffffffffffffffffffffffffffffff1614610af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae7906125a9565b60405180910390fd5b601a8211158015610b025750601a8111155b610b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3890612839565b60405180910390fd5b81600b8190555080600c819055505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ba06112a4565b73ffffffffffffffffffffffffffffffffffffffff16610bbe610cab565b73ffffffffffffffffffffffffffffffffffffffff1614610c14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0b906125a9565b60405180910390fd5b610c1d5f611e91565b565b610c276112a4565b73ffffffffffffffffffffffffffffffffffffffff16610c45610cab565b73ffffffffffffffffffffffffffffffffffffffff1614610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c92906125a9565b60405180910390fd5b610ca3610902565b600781905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610ce29061275f565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0e9061275f565b8015610d595780601f10610d3057610100808354040283529160200191610d59565b820191905f5260205f20905b815481529060010190602001808311610d3c57829003601f168201915b5050505050905090565b5f80610d6d6112a4565b90505f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e25906128c7565b60405180910390fd5b610e3b8286868403611520565b60019250505092915050565b610e4f6112a4565b73ffffffffffffffffffffffffffffffffffffffff16610e6d610cab565b73ffffffffffffffffffffffffffffffffffffffff1614610ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eba906125a9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000004069350bc68122960fc1fd276b632ef412bc83688373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f3991906124a2565b602060405180830381865afa158015610f54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7891906128e5565b6040518363ffffffff1660e01b8152600401610f95929190612910565b6020604051808303815f875af1158015610fb1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd59190612961565b5050565b5f80610fe36112a4565b9050610ff081858561176e565b600191505092915050565b7f0000000000000000000000004069350bc68122960fc1fd276b632ef412bc836881565b6110276112a4565b73ffffffffffffffffffffffffffffffffffffffff16611045610cab565b73ffffffffffffffffffffffffffffffffffffffff161461109b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611092906125a9565b60405180910390fd5b7f0000000000000000000000004069350bc68122960fc1fd276b632ef412bc836873ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156110fe573d5f803e3d5ffd5b50565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6111b66112a4565b73ffffffffffffffffffffffffffffffffffffffff166111d4610cab565b73ffffffffffffffffffffffffffffffffffffffff161461122a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611221906125a9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f906129fc565b60405180910390fd5b6112a181611e91565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090612a8a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137e90612b18565b60405180910390fd5b611392838383611f54565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611415576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140c90612ba6565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546114a391906127bc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611507919061238d565b60405180910390a361151a848484611f59565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361158e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158590612c34565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f390612cc2565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116d6919061238d565b60405180910390a3505050565b5f6116ee848461112c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611768578181101561175a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175190612d2a565b60405180910390fd5b6117678484848403611520565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d390612db8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361184a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184190612e46565b60405180910390fd5b5f811161188c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188390612ed4565b60405180910390fd5b5f600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806119285750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90505f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415806119835750805b6119c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b990612f3c565b60405180910390fd5b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16149050808015611a73575082155b15611c075760075484611a8587610b53565b611a8f91906127bc565b111580611adb5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b611b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1190612fa4565b60405180910390fd5b600a60109054906101000a900463ffffffff1663ffffffff16600a5f9054906101000a900463ffffffff1663ffffffff1611611b9157600a5f81819054906101000a900463ffffffff1680929190611b7190612fd1565b91906101000a81548163ffffffff021916908363ffffffff160217905550505b600a60109054906101000a900463ffffffff1663ffffffff16600a5f9054906101000a900463ffffffff1663ffffffff1603611c0657600a60149054906101000a900463ffffffff1663ffffffff16600b81905550600a60189054906101000a900463ffffffff1663ffffffff16600c819055505b5b5f611c1130610b53565b9050828015611c2d5750600a601c9054906101000a900460ff16155b8015611c3b57506009548110155b8015611c45575083155b8015611c7f5750600a600c9054906101000a900463ffffffff1663ffffffff16600a5f9054906101000a900463ffffffff1663ffffffff16115b15611ded57600a60089054906101000a900463ffffffff1663ffffffff16431115611cc6575f600a60046101000a81548163ffffffff021916908363ffffffff1602179055505b6003600a60049054906101000a900463ffffffff1663ffffffff1610611d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1890613046565b60405180910390fd5b6001600a601c6101000a81548160ff021916908315150217905550611d59611d5486611d4f84600854611f5e565b611f5e565b611f76565b5f600a601c6101000a81548160ff0219169083151502179055505f4790505f811115611d8957611d8881612185565b5b600a600481819054906101000a900463ffffffff1680929190611dab90612fd1565b91906101000a81548163ffffffff021916908363ffffffff1602179055505043600a60086101000a81548163ffffffff021916908363ffffffff160217905550505b5f82611dfb57600c54611dff565b600b545b90505f81118015611e0e575084155b8015611e275750600a601c9054906101000a900460ff16155b8015611e3857508280611e375750835b5b15611e7c575f60648288611e4c9190613064565b611e5691906130d2565b90505f811115611e7a57611e6b8930836112ab565b8087611e779190613102565b96505b505b611e878888886112ab565b5050505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b5f818311611f6c5782611f6e565b815b905092915050565b5f600267ffffffffffffffff811115611f9257611f91613135565b5b604051908082528060200260200182016040528015611fc05781602001602082028036833780820191505090505b50905030815f81518110611fd757611fd6613162565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061209291906126e0565b816001815181106120a6576120a5613162565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120ff30737a250d5630b4cf539739df2c5dacb4c659f2488d84611520565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612154959493929190613246565b5f604051808303815f87803b15801561216b575f80fd5b505af115801561217d573d5f803e3d5ffd5b505050505050565b7f0000000000000000000000004069350bc68122960fc1fd276b632ef412bc836873ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121e8573d5f803e3d5ffd5b5050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61222e826121ec565b61223881856121f6565b9350612248818560208601612206565b61225181612214565b840191505092915050565b5f6020820190508181035f8301526122748184612224565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122a982612280565b9050919050565b6122b98161229f565b81146122c3575f80fd5b50565b5f813590506122d4816122b0565b92915050565b5f819050919050565b6122ec816122da565b81146122f6575f80fd5b50565b5f81359050612307816122e3565b92915050565b5f80604083850312156123235761232261227c565b5b5f612330858286016122c6565b9250506020612341858286016122f9565b9150509250929050565b5f8115159050919050565b61235f8161234b565b82525050565b5f6020820190506123785f830184612356565b92915050565b612387816122da565b82525050565b5f6020820190506123a05f83018461237e565b92915050565b5f805f606084860312156123bd576123bc61227c565b5b5f6123ca868287016122c6565b93505060206123db868287016122c6565b92505060406123ec868287016122f9565b9150509250925092565b5f60ff82169050919050565b61240b816123f6565b82525050565b5f6020820190506124245f830184612402565b92915050565b5f80604083850312156124405761243f61227c565b5b5f61244d858286016122f9565b925050602061245e858286016122f9565b9150509250929050565b5f6020828403121561247d5761247c61227c565b5b5f61248a848285016122c6565b91505092915050565b61249c8161229f565b82525050565b5f6020820190506124b55f830184612493565b92915050565b5f6124c58261229f565b9050919050565b6124d5816124bb565b81146124df575f80fd5b50565b5f813590506124f0816124cc565b92915050565b5f6020828403121561250b5761250a61227c565b5b5f612518848285016124e2565b91505092915050565b5f80604083850312156125375761253661227c565b5b5f612544858286016122c6565b9250506020612555858286016122c6565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6125936020836121f6565b915061259e8261255f565b602082019050919050565b5f6020820190508181035f8301526125c081612587565b9050919050565b5f819050919050565b5f819050919050565b5f6125f36125ee6125e9846125c7565b6125d0565b6122da565b9050919050565b612603816125d9565b82525050565b5f60c08201905061261c5f830189612493565b612629602083018861237e565b61263660408301876125fa565b61264360608301866125fa565b6126506080830185612493565b61265d60a083018461237e565b979650505050505050565b5f81519050612676816122e3565b92915050565b5f805f606084860312156126935761269261227c565b5b5f6126a086828701612668565b93505060206126b186828701612668565b92505060406126c286828701612668565b9150509250925092565b5f815190506126da816122b0565b92915050565b5f602082840312156126f5576126f461227c565b5b5f612702848285016126cc565b91505092915050565b5f60408201905061271e5f830185612493565b61272b6020830184612493565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061277657607f821691505b60208210810361278957612788612732565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6127c6826122da565b91506127d1836122da565b92508282019050808211156127e9576127e861278f565b5b92915050565b7f4e657720666565206d757374206265206c6f7765722e000000000000000000005f82015250565b5f6128236016836121f6565b915061282e826127ef565b602082019050919050565b5f6020820190508181035f83015261285081612817565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6128b16025836121f6565b91506128bc82612857565b604082019050919050565b5f6020820190508181035f8301526128de816128a5565b9050919050565b5f602082840312156128fa576128f961227c565b5b5f61290784828501612668565b91505092915050565b5f6040820190506129235f830185612493565b612930602083018461237e565b9392505050565b6129408161234b565b811461294a575f80fd5b50565b5f8151905061295b81612937565b92915050565b5f602082840312156129765761297561227c565b5b5f6129838482850161294d565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6129e66026836121f6565b91506129f18261298c565b604082019050919050565b5f6020820190508181035f830152612a13816129da565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a746025836121f6565b9150612a7f82612a1a565b604082019050919050565b5f6020820190508181035f830152612aa181612a68565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b026023836121f6565b9150612b0d82612aa8565b604082019050919050565b5f6020820190508181035f830152612b2f81612af6565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612b906026836121f6565b9150612b9b82612b36565b604082019050919050565b5f6020820190508181035f830152612bbd81612b84565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c1e6024836121f6565b9150612c2982612bc4565b604082019050919050565b5f6020820190508181035f830152612c4b81612c12565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cac6022836121f6565b9150612cb782612c52565b604082019050919050565b5f6020820190508181035f830152612cd981612ca0565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612d14601d836121f6565b9150612d1f82612ce0565b602082019050919050565b5f6020820190508181035f830152612d4181612d08565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f2061646472657373206e5f8201527f6f7420616c6c6f7765642e000000000000000000000000000000000000000000602082015250565b5f612da2602b836121f6565b9150612dad82612d48565b604082019050919050565b5f6020820190508181035f830152612dcf81612d96565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373206e6f745f8201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000602082015250565b5f612e306029836121f6565b9150612e3b82612dd6565b604082019050919050565b5f6020820190508181035f830152612e5d81612e24565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f2e00000000000000000000000000000000000000000000602082015250565b5f612ebe602a836121f6565b9150612ec982612e64565b604082019050919050565b5f6020820190508181035f830152612eeb81612eb2565b9050919050565b7f4c69717569646974792070616972206e6f742079657420637265617465642e005f82015250565b5f612f26601f836121f6565b9150612f3182612ef2565b602082019050919050565b5f6020820190508181035f830152612f5381612f1a565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f612f8e6013836121f6565b9150612f9982612f5a565b602082019050919050565b5f6020820190508181035f830152612fbb81612f82565b9050919050565b5f63ffffffff82169050919050565b5f612fdb82612fc2565b915063ffffffff8203612ff157612ff061278f565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6130306017836121f6565b915061303b82612ffc565b602082019050919050565b5f6020820190508181035f83015261305d81613024565b9050919050565b5f61306e826122da565b9150613079836122da565b9250828202613087816122da565b9150828204841483151761309e5761309d61278f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6130dc826122da565b91506130e7836122da565b9250826130f7576130f66130a5565b5b828204905092915050565b5f61310c826122da565b9150613117836122da565b925082820390508181111561312f5761312e61278f565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6131c18161229f565b82525050565b5f6131d283836131b8565b60208301905092915050565b5f602082019050919050565b5f6131f48261318f565b6131fe8185613199565b9350613209836131a9565b805f5b8381101561323957815161322088826131c7565b975061322b836131de565b92505060018101905061320c565b5085935050505092915050565b5f60a0820190506132595f83018861237e565b61326660208301876125fa565b818103604083015261327881866131ea565b90506132876060830185612493565b613294608083018461237e565b969550505050505056fea26469706673582212209ed12fce858ad9fa74230babeb393233117ad80adc0882e122ce5edef6070a8d64736f6c634300081a0033

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.