ETH Price: $3,698.18 (+2.83%)

Token

ERC-20: Shitcoin Exchange (SHITEX)
 

Overview

Max Total Supply

100,000,000 SHITEX

Holders

101

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
3,587,180.897494891238833887 SHITEX

Value
$0.00
0x20977401e25b0ad8b1969fe35ab7e029d1d438c9
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:
SHITEX

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : SHITEX.sol
/**
 *Submitted for verification at Etherscan.io on 2023-10-27
 */

// SPDX-License-Identifier: UNLISCENCED

/**
 * tg: t.me/shitexeth
 * web: https://shitcoinexchange.fun
 */

pragma solidity 0.8.20;

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface 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) internal _balances;

    mapping(address => mapping(address => uint256)) internal _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, 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) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, 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);
    }

    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");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(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 _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

interface IRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract SHITEX is ERC20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;

    uint256 public genesis_block;
    uint256 public deadblocks = 0;

    uint256 public swapThreshold;
    uint256 public maxTxAmount;
    uint256 public maxWalletAmount;

    address public marketingWallet = 0x32329D2603Ad3c86BC053e1371C18A607bBd864f;

    uint256 public buyTax = 20;
    uint256 public sellTax = 35;

    mapping(address => bool) public excludedFromFees;
    mapping(address => bool) private isBot;

    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }

    constructor() ERC20("Shitcoin Exchange", "SHITEX") {
        _mint(msg.sender, 1e8 * 10 ** decimals());

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;

        excludedFromFees[address(this)] = true;
        excludedFromFees[marketingWallet] = true;
        excludedFromFees[msg.sender] = true;
        excludedFromFees[address(0xdead)] = true;

        swapThreshold = (totalSupply() * 2) / 10000;
        maxTxAmount = (totalSupply() * 5) / 100;
        maxWalletAmount = (totalSupply() * 2) / 100;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!isBot[sender] && !isBot[recipient], "You can't transfer tokens");

        if (!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping) {
            require(tradingEnabled, "Trading not active yet");
            if (genesis_block + deadblocks > block.number) {
                if (recipient != pair) isBot[recipient] = true;
                if (sender != pair) isBot[sender] = true;
            }
            require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
            if (recipient != pair) {
                require(
                    balanceOf(recipient) + amount <= maxWalletAmount,
                    "You are exceeding maxWalletAmount"
                );
            }
        }

        uint256 fee;

        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0;
        else {
            if (recipient == pair) fee = (amount * sellTax) / 100;
            else fee = (amount * buyTax) / 100;
        }

        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();

        super._transfer(sender, recipient, amount - fee);
        if (fee > 0) super._transfer(sender, address(this), fee);
    }

    function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {
            uint256 toSwap = contractBalance;

            swapTokensForETH(toSwap);

            uint256 marketingAmt = address(this).balance;
            if (marketingAmt > 0) {
                payable(marketingWallet).sendValue(marketingAmt);
            }
        }
    }

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

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }

    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        swapThreshold = new_amount;
    }

    function enableTrading(uint256 numOfDeadBlocks) external onlyOwner {
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
        swapEnabled = true;
        genesis_block = block.number;
        deadblocks = numOfDeadBlocks;
    }

    function setBuyTaxes(uint256 _marketing) external onlyOwner {
        buyTax = _marketing;
    }

    function setSellTaxes(uint256 _marketing) external onlyOwner {
        sellTax = _marketing;
    }

    function updateMarketingWallet(address newWallet) external onlyOwner {
        marketingWallet = newWallet;
    }

    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner {
        router = _router;
        pair = _pair;
    }

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

    function updateExcludedFromFees(address _address, bool state) external onlyOwner {
        excludedFromFees[_address] = state;
    }

    function updateMaxTxAmount(uint256 _percen) external onlyOwner {
        maxTxAmount = (totalSupply() * _percen) / 100;
    }

    function updateMaxWalletAmount(uint256 _percen) external onlyOwner {
        maxWalletAmount = (totalSupply() * _percen) / 100;
    }

    function removeLimit() external onlyOwner {
        maxTxAmount = totalSupply();
        maxWalletAmount = totalSupply();
    }

    function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner {
        IERC20(tokenAddress).transfer(owner(), amount);
    }

    function rescueETH(uint256 weiAmount) external onlyOwner {
        payable(owner()).sendValue(weiAmount);
    }

    function manualSwap(uint256 amount, uint256 marketingPercentage) external onlyOwner {
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if (marketingPercentage > 0)
            payable(marketingWallet).sendValue(
                (newBalance * marketingPercentage) / (marketingPercentage)
            );
    }

    // fallbacks
    receive() external payable {}
}

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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadblocks","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":[{"internalType":"uint256","name":"numOfDeadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percen","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percen","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f6009557332329d2603ad3c86bc053e1371c18a607bbd864f600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506014600e556023600f5534801562000072575f80fd5b506040518060400160405280601181526020017f53686974636f696e2045786368616e67650000000000000000000000000000008152506040518060400160405280600681526020017f53484954455800000000000000000000000000000000000000000000000000008152508160039081620000f0919062000a15565b50806004908162000102919062000a15565b50505062000125620001196200057460201b60201c565b6200057b60201b60201c565b62000165336200013a6200063e60201b60201c565b600a62000148919062000c82565b6305f5e10062000159919062000cd2565b6200064660201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001ee919062000d81565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000254573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200027a919062000d81565b6040518363ffffffff1660e01b81526004016200029992919062000dc2565b6020604051808303815f875af1158015620002b6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002dc919062000d81565b90508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160105f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506127106002620004ea620007a360201b60201c565b620004f6919062000cd2565b62000502919062000e1a565b600a81905550606460056200051c620007a360201b60201c565b62000528919062000cd2565b62000534919062000e1a565b600b81905550606460026200054e620007a360201b60201c565b6200055a919062000cd2565b62000566919062000e1a565b600c81905550505062000f35565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620006b7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006ae9062000eaf565b60405180910390fd5b620006ca5f8383620007ac60201b60201c565b8060025f828254620006dd919062000ecf565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000731919062000ecf565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000797919062000f1a565b60405180910390a35050565b5f600254905090565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200082d57607f821691505b602082108103620008435762000842620007e8565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620008a77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200086a565b620008b386836200086a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620008fd620008f7620008f184620008cb565b620008d4565b620008cb565b9050919050565b5f819050919050565b6200091883620008dd565b62000930620009278262000904565b84845462000876565b825550505050565b5f90565b6200094662000938565b620009538184846200090d565b505050565b5b818110156200097a576200096e5f826200093c565b60018101905062000959565b5050565b601f821115620009c957620009938162000849565b6200099e846200085b565b81016020851015620009ae578190505b620009c6620009bd856200085b565b83018262000958565b50505b505050565b5f82821c905092915050565b5f620009eb5f1984600802620009ce565b1980831691505092915050565b5f62000a058383620009da565b9150826002028217905092915050565b62000a2082620007b1565b67ffffffffffffffff81111562000a3c5762000a3b620007bb565b5b62000a48825462000815565b62000a558282856200097e565b5f60209050601f83116001811462000a8b575f841562000a76578287015190505b62000a828582620009f8565b86555062000af1565b601f19841662000a9b8662000849565b5f5b8281101562000ac45784890151825560018201915060208501945060208101905062000a9d565b8683101562000ae4578489015162000ae0601f891682620009da565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000b835780860481111562000b5b5762000b5a62000af9565b5b600185161562000b6b5780820291505b808102905062000b7b8562000b26565b945062000b3b565b94509492505050565b5f8262000b9d576001905062000c6f565b8162000bac575f905062000c6f565b816001811462000bc5576002811462000bd05762000c06565b600191505062000c6f565b60ff84111562000be55762000be462000af9565b5b8360020a91508482111562000bff5762000bfe62000af9565b5b5062000c6f565b5060208310610133831016604e8410600b841016171562000c405782820a90508381111562000c3a5762000c3962000af9565b5b62000c6f565b62000c4f848484600162000b32565b9250905081840481111562000c695762000c6862000af9565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000c8e82620008cb565b915062000c9b8362000c76565b925062000cca7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b8c565b905092915050565b5f62000cde82620008cb565b915062000ceb83620008cb565b925082820262000cfb81620008cb565b9150828204841483151762000d155762000d1462000af9565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000d4b8262000d20565b9050919050565b62000d5d8162000d3f565b811462000d68575f80fd5b50565b5f8151905062000d7b8162000d52565b92915050565b5f6020828403121562000d995762000d9862000d1c565b5b5f62000da88482850162000d6b565b91505092915050565b62000dbc8162000d3f565b82525050565b5f60408201905062000dd75f83018562000db1565b62000de6602083018462000db1565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000e2682620008cb565b915062000e3383620008cb565b92508262000e465762000e4562000ded565b5b828204905092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000e97601f8362000e51565b915062000ea48262000e61565b602082019050919050565b5f6020820190508181035f83015262000ec88162000e89565b9050919050565b5f62000edb82620008cb565b915062000ee883620008cb565b925082820190508082111562000f035762000f0262000af9565b5b92915050565b62000f1481620008cb565b82525050565b5f60208201905062000f2f5f83018462000f09565b92915050565b613f3b8062000f435f395ff3fe608060405260043610610254575f3560e01c80638c0b5e2211610138578063aa4bde28116100b5578063dbe66ca011610079578063dbe66ca014610873578063dd62ed3e146108af578063e01af92c146108eb578063e545fd6d14610913578063f2fde38b1461093b578063f887ea40146109635761025b565b8063aa4bde28146107a7578063aacebbe3146107d1578063c18bc195146107f9578063cc1776d314610821578063d34628cc1461084b5761025b565b80639e252f00116100fc5780639e252f00146106b5578063a3ca847d146106dd578063a457c2d714610705578063a8aa1b3114610741578063a9059cbb1461076b5761025b565b80638c0b5e22146105e75780638cd4426d146106115780638da5cb5b1461063957806395d89b41146106635780639d0014b11461068d5761025b565b80634ada218b116101d15780636256d181116101955780636256d181146104f15780636ddd17131461051957806370a0823114610543578063715018a61461057f57806375f0a8741461059557806382aa7c68146105bf5761025b565b80634ada218b146104355780634f7041a51461045f57806350c9a88f1461048957806356faae96146104b357806362256589146104db5761025b565b806323b872dd1161021857806323b872dd14610341578063274a533c1461037d578063313ce567146103a757806339509351146103d157806340b28c2f1461040d5761025b565b80630445b6671461025f57806306fdde03146102895780630940bbc7146102b3578063095ea7b3146102db57806318160ddd146103175761025b565b3661025b57005b5f80fd5b34801561026a575f80fd5b5061027361098d565b6040516102809190612bfd565b60405180910390f35b348015610294575f80fd5b5061029d610993565b6040516102aa9190612ca0565b60405180910390f35b3480156102be575f80fd5b506102d960048036038101906102d49190612cfb565b610a23565b005b3480156102e6575f80fd5b5061030160048036038101906102fc9190612d80565b610aa9565b60405161030e9190612dd8565b60405180910390f35b348015610322575f80fd5b5061032b610ac6565b6040516103389190612bfd565b60405180910390f35b34801561034c575f80fd5b5061036760048036038101906103629190612df1565b610acf565b6040516103749190612dd8565b60405180910390f35b348015610388575f80fd5b50610391610bca565b60405161039e9190612bfd565b60405180910390f35b3480156103b2575f80fd5b506103bb610bd0565b6040516103c89190612e5c565b60405180910390f35b3480156103dc575f80fd5b506103f760048036038101906103f29190612d80565b610bd8565b6040516104049190612dd8565b60405180910390f35b348015610418575f80fd5b50610433600480360381019061042e9190612eb0565b610c7f565b005b348015610440575f80fd5b50610449610d7f565b6040516104569190612dd8565b60405180910390f35b34801561046a575f80fd5b50610473610d92565b6040516104809190612bfd565b60405180910390f35b348015610494575f80fd5b5061049d610d98565b6040516104aa9190612bfd565b60405180910390f35b3480156104be575f80fd5b506104d960048036038101906104d49190612eee565b610d9e565b005b3480156104e6575f80fd5b506104ef610ea5565b005b3480156104fc575f80fd5b5061051760048036038101906105129190612cfb565b610f3f565b005b348015610524575f80fd5b5061052d610fe3565b60405161053a9190612dd8565b60405180910390f35b34801561054e575f80fd5b5061056960048036038101906105649190612f2c565b610ff6565b6040516105769190612bfd565b60405180910390f35b34801561058a575f80fd5b5061059361103b565b005b3480156105a0575f80fd5b506105a96110c2565b6040516105b69190612f66565b60405180910390f35b3480156105ca575f80fd5b506105e560048036038101906105e09190612cfb565b6110e7565b005b3480156105f2575f80fd5b506105fb6111fa565b6040516106089190612bfd565b60405180910390f35b34801561061c575f80fd5b5061063760048036038101906106329190612d80565b611200565b005b348015610644575f80fd5b5061064d611303565b60405161065a9190612f66565b60405180910390f35b34801561066e575f80fd5b5061067761132b565b6040516106849190612ca0565b60405180910390f35b348015610698575f80fd5b506106b360048036038101906106ae9190612cfb565b6113bb565b005b3480156106c0575f80fd5b506106db60048036038101906106d69190612cfb565b611441565b005b3480156106e8575f80fd5b5061070360048036038101906106fe9190612cfb565b6114f0565b005b348015610710575f80fd5b5061072b60048036038101906107269190612d80565b611576565b6040516107389190612dd8565b60405180910390f35b34801561074c575f80fd5b50610755611665565b6040516107629190612f66565b60405180910390f35b348015610776575f80fd5b50610791600480360381019061078c9190612d80565b61168a565b60405161079e9190612dd8565b60405180910390f35b3480156107b2575f80fd5b506107bb6116a7565b6040516107c89190612bfd565b60405180910390f35b3480156107dc575f80fd5b506107f760048036038101906107f29190612f2c565b6116ad565b005b348015610804575f80fd5b5061081f600480360381019061081a9190612cfb565b61176c565b005b34801561082c575f80fd5b50610835611810565b6040516108429190612bfd565b60405180910390f35b348015610856575f80fd5b50610871600480360381019061086c91906130bf565b611816565b005b34801561087e575f80fd5b5061089960048036038101906108949190612f2c565b611923565b6040516108a69190612dd8565b60405180910390f35b3480156108ba575f80fd5b506108d560048036038101906108d09190613106565b611940565b6040516108e29190612bfd565b60405180910390f35b3480156108f6575f80fd5b50610911600480360381019061090c919061316e565b6119c2565b005b34801561091e575f80fd5b5061093960048036038101906109349190613199565b611a5b565b005b348015610946575f80fd5b50610961600480360381019061095c9190612f2c565b611b2f565b005b34801561096e575f80fd5b50610977611c25565b6040516109849190613232565b60405180910390f35b600a5481565b6060600380546109a290613278565b80601f01602080910402602001604051908101604052809291908181526020018280546109ce90613278565b8015610a195780601f106109f057610100808354040283529160200191610a19565b820191905f5260205f20905b8154815290600101906020018083116109fc57829003601f168201915b5050505050905090565b610a2b611c4a565b73ffffffffffffffffffffffffffffffffffffffff16610a49611303565b73ffffffffffffffffffffffffffffffffffffffff1614610a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a96906132f2565b60405180910390fd5b80600f8190555050565b5f610abc610ab5611c4a565b8484611c51565b6001905092915050565b5f600254905090565b5f610adb848484611e14565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b22611c4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9890613380565b60405180910390fd5b610bbe85610bad611c4a565b8584610bb991906133cb565b611c51565b60019150509392505050565b60085481565b5f6012905090565b5f610c75610be4611c4a565b848460015f610bf1611c4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610c7091906133fe565b611c51565b6001905092915050565b610c87611c4a565b73ffffffffffffffffffffffffffffffffffffffff16610ca5611303565b73ffffffffffffffffffffffffffffffffffffffff1614610cfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf2906132f2565b60405180910390fd5b8160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b600e5481565b60095481565b610da6611c4a565b73ffffffffffffffffffffffffffffffffffffffff16610dc4611303565b73ffffffffffffffffffffffffffffffffffffffff1614610e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e11906132f2565b60405180910390fd5b5f479050610e27836124bb565b5f8147610e3491906133cb565b90505f831115610e9f57610e9e838483610e4e9190613431565b610e58919061349f565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166126f190919063ffffffff16565b5b50505050565b610ead611c4a565b73ffffffffffffffffffffffffffffffffffffffff16610ecb611303565b73ffffffffffffffffffffffffffffffffffffffff1614610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f18906132f2565b60405180910390fd5b610f29610ac6565b600b81905550610f37610ac6565b600c81905550565b610f47611c4a565b73ffffffffffffffffffffffffffffffffffffffff16610f65611303565b73ffffffffffffffffffffffffffffffffffffffff1614610fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb2906132f2565b60405180910390fd5b606481610fc6610ac6565b610fd09190613431565b610fda919061349f565b600b8190555050565b600760159054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611043611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611061611303565b73ffffffffffffffffffffffffffffffffffffffff16146110b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ae906132f2565b60405180910390fd5b6110c05f6127e1565b565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110ef611c4a565b73ffffffffffffffffffffffffffffffffffffffff1661110d611303565b73ffffffffffffffffffffffffffffffffffffffff1614611163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115a906132f2565b60405180910390fd5b600760169054906101000a900460ff16156111b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111aa90613519565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550436008819055508060098190555050565b600b5481565b611208611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611226611303565b73ffffffffffffffffffffffffffffffffffffffff161461127c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611273906132f2565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6112a0611303565b836040518363ffffffff1660e01b81526004016112be929190613537565b6020604051808303815f875af11580156112da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112fe9190613572565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461133a90613278565b80601f016020809104026020016040519081016040528092919081815260200182805461136690613278565b80156113b15780601f10611388576101008083540402835291602001916113b1565b820191905f5260205f20905b81548152906001019060200180831161139457829003601f168201915b5050505050905090565b6113c3611c4a565b73ffffffffffffffffffffffffffffffffffffffff166113e1611303565b73ffffffffffffffffffffffffffffffffffffffff1614611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e906132f2565b60405180910390fd5b80600a8190555050565b611449611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611467611303565b73ffffffffffffffffffffffffffffffffffffffff16146114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b4906132f2565b60405180910390fd5b6114ed816114c9611303565b73ffffffffffffffffffffffffffffffffffffffff166126f190919063ffffffff16565b50565b6114f8611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611516611303565b73ffffffffffffffffffffffffffffffffffffffff161461156c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611563906132f2565b60405180910390fd5b80600e8190555050565b5f8060015f611583611c4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561163d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116349061360d565b60405180910390fd5b61165a611648611c4a565b85858461165591906133cb565b611c51565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61169d611696611c4a565b8484611e14565b6001905092915050565b600c5481565b6116b5611c4a565b73ffffffffffffffffffffffffffffffffffffffff166116d3611303565b73ffffffffffffffffffffffffffffffffffffffff1614611729576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611720906132f2565b60405180910390fd5b80600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611774611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611792611303565b73ffffffffffffffffffffffffffffffffffffffff16146117e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117df906132f2565b60405180910390fd5b6064816117f3610ac6565b6117fd9190613431565b611807919061349f565b600c8190555050565b600f5481565b61181e611c4a565b73ffffffffffffffffffffffffffffffffffffffff1661183c611303565b73ffffffffffffffffffffffffffffffffffffffff1614611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906132f2565b60405180910390fd5b5f5b815181101561191f57600160115f8484815181106118b5576118b461362b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061191790613658565b915050611894565b5050565b6010602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6119ca611c4a565b73ffffffffffffffffffffffffffffffffffffffff166119e8611303565b73ffffffffffffffffffffffffffffffffffffffff1614611a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a35906132f2565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611a63611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611a81611303565b73ffffffffffffffffffffffffffffffffffffffff1614611ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ace906132f2565b60405180910390fd5b8060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611b37611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611b55611303565b73ffffffffffffffffffffffffffffffffffffffff1614611bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba2906132f2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c109061370f565b60405180910390fd5b611c22816127e1565b50565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb69061379d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d249061382b565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e079190612bfd565b60405180910390a3505050565b5f8111611e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4d906138b9565b60405180910390fd5b60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ef4575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2a90613921565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611fd1575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611fea5750600760149054906101000a900460ff16155b1561229d57600760169054906101000a900460ff1661203e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203590613989565b60405180910390fd5b4360095460085461204f91906133fe565b11156121aa5760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146120ff57600160115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146121a957600160115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5b600b548111156121ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e6906139f1565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461229c57600c548161225084610ff6565b61225a91906133fe565b111561229b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229290613a7f565b60405180910390fd5b5b5b5f600760149054906101000a900460ff16806122ff575060105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612350575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561235d575f90506123f0565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123d2576064600f54836123c19190613431565b6123cb919061349f565b90506123ef565b6064600e54836123e29190613431565b6123ec919061349f565b90505b5b600760159054906101000a900460ff1680156124195750600760149054906101000a900460ff16155b8015612472575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561247d57505f81115b1561248b5761248a6128a4565b5b6124a18484838561249c91906133cb565b61296d565b5f8111156124b5576124b484308361296d565b5b50505050565b5f600267ffffffffffffffff8111156124d7576124d6612f83565b5b6040519080825280602002602001820160405280156125055781602001602082028036833780820191505090505b50905030815f8151811061251c5761251b61362b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e49190613ab1565b816001815181106125f8576125f761362b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061265e3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c51565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016126c0959493929190613bcc565b5f604051808303815f87803b1580156126d7575f80fd5b505af11580156126e9573d5f803e3d5ffd5b505050505050565b80471015612734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272b90613c6e565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff168260405161275990613cb9565b5f6040518083038185875af1925050503d805f8114612793576040519150601f19603f3d011682016040523d82523d5f602084013e612798565b606091505b50509050806127dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d390613d3d565b60405180910390fd5b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff1661296b576001600760146101000a81548160ff0219169083151502179055505f6128dd30610ff6565b9050600a54811061294f575f8190506128f5816124bb565b5f4790505f81111561294c5761294b81600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166126f190919063ffffffff16565b5b50505b505f600760146101000a81548160ff0219169083151502179055505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d290613dcb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4090613e59565b60405180910390fd5b612a54838383612be0565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ace90613ee7565b60405180910390fd5b8181612ae391906133cb565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612b6e91906133fe565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bd29190612bfd565b60405180910390a350505050565b505050565b5f819050919050565b612bf781612be5565b82525050565b5f602082019050612c105f830184612bee565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612c4d578082015181840152602081019050612c32565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612c7282612c16565b612c7c8185612c20565b9350612c8c818560208601612c30565b612c9581612c58565b840191505092915050565b5f6020820190508181035f830152612cb88184612c68565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b612cda81612be5565b8114612ce4575f80fd5b50565b5f81359050612cf581612cd1565b92915050565b5f60208284031215612d1057612d0f612cc9565b5b5f612d1d84828501612ce7565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612d4f82612d26565b9050919050565b612d5f81612d45565b8114612d69575f80fd5b50565b5f81359050612d7a81612d56565b92915050565b5f8060408385031215612d9657612d95612cc9565b5b5f612da385828601612d6c565b9250506020612db485828601612ce7565b9150509250929050565b5f8115159050919050565b612dd281612dbe565b82525050565b5f602082019050612deb5f830184612dc9565b92915050565b5f805f60608486031215612e0857612e07612cc9565b5b5f612e1586828701612d6c565b9350506020612e2686828701612d6c565b9250506040612e3786828701612ce7565b9150509250925092565b5f60ff82169050919050565b612e5681612e41565b82525050565b5f602082019050612e6f5f830184612e4d565b92915050565b5f612e7f82612d45565b9050919050565b612e8f81612e75565b8114612e99575f80fd5b50565b5f81359050612eaa81612e86565b92915050565b5f8060408385031215612ec657612ec5612cc9565b5b5f612ed385828601612e9c565b9250506020612ee485828601612d6c565b9150509250929050565b5f8060408385031215612f0457612f03612cc9565b5b5f612f1185828601612ce7565b9250506020612f2285828601612ce7565b9150509250929050565b5f60208284031215612f4157612f40612cc9565b5b5f612f4e84828501612d6c565b91505092915050565b612f6081612d45565b82525050565b5f602082019050612f795f830184612f57565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612fb982612c58565b810181811067ffffffffffffffff82111715612fd857612fd7612f83565b5b80604052505050565b5f612fea612cc0565b9050612ff68282612fb0565b919050565b5f67ffffffffffffffff82111561301557613014612f83565b5b602082029050602081019050919050565b5f80fd5b5f61303c61303784612ffb565b612fe1565b9050808382526020820190506020840283018581111561305f5761305e613026565b5b835b8181101561308857806130748882612d6c565b845260208401935050602081019050613061565b5050509392505050565b5f82601f8301126130a6576130a5612f7f565b5b81356130b684826020860161302a565b91505092915050565b5f602082840312156130d4576130d3612cc9565b5b5f82013567ffffffffffffffff8111156130f1576130f0612ccd565b5b6130fd84828501613092565b91505092915050565b5f806040838503121561311c5761311b612cc9565b5b5f61312985828601612d6c565b925050602061313a85828601612d6c565b9150509250929050565b61314d81612dbe565b8114613157575f80fd5b50565b5f8135905061316881613144565b92915050565b5f6020828403121561318357613182612cc9565b5b5f6131908482850161315a565b91505092915050565b5f80604083850312156131af576131ae612cc9565b5b5f6131bc85828601612d6c565b92505060206131cd8582860161315a565b9150509250929050565b5f819050919050565b5f6131fa6131f56131f084612d26565b6131d7565b612d26565b9050919050565b5f61320b826131e0565b9050919050565b5f61321c82613201565b9050919050565b61322c81613212565b82525050565b5f6020820190506132455f830184613223565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061328f57607f821691505b6020821081036132a2576132a161324b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6132dc602083612c20565b91506132e7826132a8565b602082019050919050565b5f6020820190508181035f830152613309816132d0565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f61336a602883612c20565b915061337582613310565b604082019050919050565b5f6020820190508181035f8301526133978161335e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6133d582612be5565b91506133e083612be5565b92508282039050818111156133f8576133f761339e565b5b92915050565b5f61340882612be5565b915061341383612be5565b925082820190508082111561342b5761342a61339e565b5b92915050565b5f61343b82612be5565b915061344683612be5565b925082820261345481612be5565b9150828204841483151761346b5761346a61339e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6134a982612be5565b91506134b483612be5565b9250826134c4576134c3613472565b5b828204905092915050565b7f54726164696e6720616c726561647920616374697665000000000000000000005f82015250565b5f613503601683612c20565b915061350e826134cf565b602082019050919050565b5f6020820190508181035f830152613530816134f7565b9050919050565b5f60408201905061354a5f830185612f57565b6135576020830184612bee565b9392505050565b5f8151905061356c81613144565b92915050565b5f6020828403121561358757613586612cc9565b5b5f6135948482850161355e565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6135f7602583612c20565b91506136028261359d565b604082019050919050565b5f6020820190508181035f830152613624816135eb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61366282612be5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136945761369361339e565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6136f9602683612c20565b91506137048261369f565b604082019050919050565b5f6020820190508181035f830152613726816136ed565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613787602483612c20565b91506137928261372d565b604082019050919050565b5f6020820190508181035f8301526137b48161377b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613815602283612c20565b9150613820826137bb565b604082019050919050565b5f6020820190508181035f83015261384281613809565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6138a3602983612c20565b91506138ae82613849565b604082019050919050565b5f6020820190508181035f8301526138d081613897565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e73000000000000005f82015250565b5f61390b601983612c20565b9150613916826138d7565b602082019050919050565b5f6020820190508181035f830152613938816138ff565b9050919050565b7f54726164696e67206e6f742061637469766520796574000000000000000000005f82015250565b5f613973601683612c20565b915061397e8261393f565b602082019050919050565b5f6020820190508181035f8301526139a081613967565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e740000005f82015250565b5f6139db601d83612c20565b91506139e6826139a7565b602082019050919050565b5f6020820190508181035f830152613a08816139cf565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e5f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a69602183612c20565b9150613a7482613a0f565b604082019050919050565b5f6020820190508181035f830152613a9681613a5d565b9050919050565b5f81519050613aab81612d56565b92915050565b5f60208284031215613ac657613ac5612cc9565b5b5f613ad384828501613a9d565b91505092915050565b5f819050919050565b5f613aff613afa613af584613adc565b6131d7565b612be5565b9050919050565b613b0f81613ae5565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613b4781612d45565b82525050565b5f613b588383613b3e565b60208301905092915050565b5f602082019050919050565b5f613b7a82613b15565b613b848185613b1f565b9350613b8f83613b2f565b805f5b83811015613bbf578151613ba68882613b4d565b9750613bb183613b64565b925050600181019050613b92565b5085935050505092915050565b5f60a082019050613bdf5f830188612bee565b613bec6020830187613b06565b8181036040830152613bfe8186613b70565b9050613c0d6060830185612f57565b613c1a6080830184612bee565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f613c58601d83612c20565b9150613c6382613c24565b602082019050919050565b5f6020820190508181035f830152613c8581613c4c565b9050919050565b5f81905092915050565b50565b5f613ca45f83613c8c565b9150613caf82613c96565b5f82019050919050565b5f613cc382613c99565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f613d27603a83612c20565b9150613d3282613ccd565b604082019050919050565b5f6020820190508181035f830152613d5481613d1b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613db5602583612c20565b9150613dc082613d5b565b604082019050919050565b5f6020820190508181035f830152613de281613da9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613e43602383612c20565b9150613e4e82613de9565b604082019050919050565b5f6020820190508181035f830152613e7081613e37565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613ed1602683612c20565b9150613edc82613e77565b604082019050919050565b5f6020820190508181035f830152613efe81613ec5565b905091905056fea2646970667358221220f223e7d073116bb221f035cccab281c40c00a56a5f9f72e85a6c9de9501c8fdc64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610254575f3560e01c80638c0b5e2211610138578063aa4bde28116100b5578063dbe66ca011610079578063dbe66ca014610873578063dd62ed3e146108af578063e01af92c146108eb578063e545fd6d14610913578063f2fde38b1461093b578063f887ea40146109635761025b565b8063aa4bde28146107a7578063aacebbe3146107d1578063c18bc195146107f9578063cc1776d314610821578063d34628cc1461084b5761025b565b80639e252f00116100fc5780639e252f00146106b5578063a3ca847d146106dd578063a457c2d714610705578063a8aa1b3114610741578063a9059cbb1461076b5761025b565b80638c0b5e22146105e75780638cd4426d146106115780638da5cb5b1461063957806395d89b41146106635780639d0014b11461068d5761025b565b80634ada218b116101d15780636256d181116101955780636256d181146104f15780636ddd17131461051957806370a0823114610543578063715018a61461057f57806375f0a8741461059557806382aa7c68146105bf5761025b565b80634ada218b146104355780634f7041a51461045f57806350c9a88f1461048957806356faae96146104b357806362256589146104db5761025b565b806323b872dd1161021857806323b872dd14610341578063274a533c1461037d578063313ce567146103a757806339509351146103d157806340b28c2f1461040d5761025b565b80630445b6671461025f57806306fdde03146102895780630940bbc7146102b3578063095ea7b3146102db57806318160ddd146103175761025b565b3661025b57005b5f80fd5b34801561026a575f80fd5b5061027361098d565b6040516102809190612bfd565b60405180910390f35b348015610294575f80fd5b5061029d610993565b6040516102aa9190612ca0565b60405180910390f35b3480156102be575f80fd5b506102d960048036038101906102d49190612cfb565b610a23565b005b3480156102e6575f80fd5b5061030160048036038101906102fc9190612d80565b610aa9565b60405161030e9190612dd8565b60405180910390f35b348015610322575f80fd5b5061032b610ac6565b6040516103389190612bfd565b60405180910390f35b34801561034c575f80fd5b5061036760048036038101906103629190612df1565b610acf565b6040516103749190612dd8565b60405180910390f35b348015610388575f80fd5b50610391610bca565b60405161039e9190612bfd565b60405180910390f35b3480156103b2575f80fd5b506103bb610bd0565b6040516103c89190612e5c565b60405180910390f35b3480156103dc575f80fd5b506103f760048036038101906103f29190612d80565b610bd8565b6040516104049190612dd8565b60405180910390f35b348015610418575f80fd5b50610433600480360381019061042e9190612eb0565b610c7f565b005b348015610440575f80fd5b50610449610d7f565b6040516104569190612dd8565b60405180910390f35b34801561046a575f80fd5b50610473610d92565b6040516104809190612bfd565b60405180910390f35b348015610494575f80fd5b5061049d610d98565b6040516104aa9190612bfd565b60405180910390f35b3480156104be575f80fd5b506104d960048036038101906104d49190612eee565b610d9e565b005b3480156104e6575f80fd5b506104ef610ea5565b005b3480156104fc575f80fd5b5061051760048036038101906105129190612cfb565b610f3f565b005b348015610524575f80fd5b5061052d610fe3565b60405161053a9190612dd8565b60405180910390f35b34801561054e575f80fd5b5061056960048036038101906105649190612f2c565b610ff6565b6040516105769190612bfd565b60405180910390f35b34801561058a575f80fd5b5061059361103b565b005b3480156105a0575f80fd5b506105a96110c2565b6040516105b69190612f66565b60405180910390f35b3480156105ca575f80fd5b506105e560048036038101906105e09190612cfb565b6110e7565b005b3480156105f2575f80fd5b506105fb6111fa565b6040516106089190612bfd565b60405180910390f35b34801561061c575f80fd5b5061063760048036038101906106329190612d80565b611200565b005b348015610644575f80fd5b5061064d611303565b60405161065a9190612f66565b60405180910390f35b34801561066e575f80fd5b5061067761132b565b6040516106849190612ca0565b60405180910390f35b348015610698575f80fd5b506106b360048036038101906106ae9190612cfb565b6113bb565b005b3480156106c0575f80fd5b506106db60048036038101906106d69190612cfb565b611441565b005b3480156106e8575f80fd5b5061070360048036038101906106fe9190612cfb565b6114f0565b005b348015610710575f80fd5b5061072b60048036038101906107269190612d80565b611576565b6040516107389190612dd8565b60405180910390f35b34801561074c575f80fd5b50610755611665565b6040516107629190612f66565b60405180910390f35b348015610776575f80fd5b50610791600480360381019061078c9190612d80565b61168a565b60405161079e9190612dd8565b60405180910390f35b3480156107b2575f80fd5b506107bb6116a7565b6040516107c89190612bfd565b60405180910390f35b3480156107dc575f80fd5b506107f760048036038101906107f29190612f2c565b6116ad565b005b348015610804575f80fd5b5061081f600480360381019061081a9190612cfb565b61176c565b005b34801561082c575f80fd5b50610835611810565b6040516108429190612bfd565b60405180910390f35b348015610856575f80fd5b50610871600480360381019061086c91906130bf565b611816565b005b34801561087e575f80fd5b5061089960048036038101906108949190612f2c565b611923565b6040516108a69190612dd8565b60405180910390f35b3480156108ba575f80fd5b506108d560048036038101906108d09190613106565b611940565b6040516108e29190612bfd565b60405180910390f35b3480156108f6575f80fd5b50610911600480360381019061090c919061316e565b6119c2565b005b34801561091e575f80fd5b5061093960048036038101906109349190613199565b611a5b565b005b348015610946575f80fd5b50610961600480360381019061095c9190612f2c565b611b2f565b005b34801561096e575f80fd5b50610977611c25565b6040516109849190613232565b60405180910390f35b600a5481565b6060600380546109a290613278565b80601f01602080910402602001604051908101604052809291908181526020018280546109ce90613278565b8015610a195780601f106109f057610100808354040283529160200191610a19565b820191905f5260205f20905b8154815290600101906020018083116109fc57829003601f168201915b5050505050905090565b610a2b611c4a565b73ffffffffffffffffffffffffffffffffffffffff16610a49611303565b73ffffffffffffffffffffffffffffffffffffffff1614610a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a96906132f2565b60405180910390fd5b80600f8190555050565b5f610abc610ab5611c4a565b8484611c51565b6001905092915050565b5f600254905090565b5f610adb848484611e14565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b22611c4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9890613380565b60405180910390fd5b610bbe85610bad611c4a565b8584610bb991906133cb565b611c51565b60019150509392505050565b60085481565b5f6012905090565b5f610c75610be4611c4a565b848460015f610bf1611c4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610c7091906133fe565b611c51565b6001905092915050565b610c87611c4a565b73ffffffffffffffffffffffffffffffffffffffff16610ca5611303565b73ffffffffffffffffffffffffffffffffffffffff1614610cfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf2906132f2565b60405180910390fd5b8160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b600e5481565b60095481565b610da6611c4a565b73ffffffffffffffffffffffffffffffffffffffff16610dc4611303565b73ffffffffffffffffffffffffffffffffffffffff1614610e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e11906132f2565b60405180910390fd5b5f479050610e27836124bb565b5f8147610e3491906133cb565b90505f831115610e9f57610e9e838483610e4e9190613431565b610e58919061349f565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166126f190919063ffffffff16565b5b50505050565b610ead611c4a565b73ffffffffffffffffffffffffffffffffffffffff16610ecb611303565b73ffffffffffffffffffffffffffffffffffffffff1614610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f18906132f2565b60405180910390fd5b610f29610ac6565b600b81905550610f37610ac6565b600c81905550565b610f47611c4a565b73ffffffffffffffffffffffffffffffffffffffff16610f65611303565b73ffffffffffffffffffffffffffffffffffffffff1614610fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb2906132f2565b60405180910390fd5b606481610fc6610ac6565b610fd09190613431565b610fda919061349f565b600b8190555050565b600760159054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611043611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611061611303565b73ffffffffffffffffffffffffffffffffffffffff16146110b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ae906132f2565b60405180910390fd5b6110c05f6127e1565b565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110ef611c4a565b73ffffffffffffffffffffffffffffffffffffffff1661110d611303565b73ffffffffffffffffffffffffffffffffffffffff1614611163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115a906132f2565b60405180910390fd5b600760169054906101000a900460ff16156111b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111aa90613519565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550436008819055508060098190555050565b600b5481565b611208611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611226611303565b73ffffffffffffffffffffffffffffffffffffffff161461127c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611273906132f2565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6112a0611303565b836040518363ffffffff1660e01b81526004016112be929190613537565b6020604051808303815f875af11580156112da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112fe9190613572565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461133a90613278565b80601f016020809104026020016040519081016040528092919081815260200182805461136690613278565b80156113b15780601f10611388576101008083540402835291602001916113b1565b820191905f5260205f20905b81548152906001019060200180831161139457829003601f168201915b5050505050905090565b6113c3611c4a565b73ffffffffffffffffffffffffffffffffffffffff166113e1611303565b73ffffffffffffffffffffffffffffffffffffffff1614611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e906132f2565b60405180910390fd5b80600a8190555050565b611449611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611467611303565b73ffffffffffffffffffffffffffffffffffffffff16146114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b4906132f2565b60405180910390fd5b6114ed816114c9611303565b73ffffffffffffffffffffffffffffffffffffffff166126f190919063ffffffff16565b50565b6114f8611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611516611303565b73ffffffffffffffffffffffffffffffffffffffff161461156c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611563906132f2565b60405180910390fd5b80600e8190555050565b5f8060015f611583611c4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561163d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116349061360d565b60405180910390fd5b61165a611648611c4a565b85858461165591906133cb565b611c51565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61169d611696611c4a565b8484611e14565b6001905092915050565b600c5481565b6116b5611c4a565b73ffffffffffffffffffffffffffffffffffffffff166116d3611303565b73ffffffffffffffffffffffffffffffffffffffff1614611729576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611720906132f2565b60405180910390fd5b80600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611774611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611792611303565b73ffffffffffffffffffffffffffffffffffffffff16146117e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117df906132f2565b60405180910390fd5b6064816117f3610ac6565b6117fd9190613431565b611807919061349f565b600c8190555050565b600f5481565b61181e611c4a565b73ffffffffffffffffffffffffffffffffffffffff1661183c611303565b73ffffffffffffffffffffffffffffffffffffffff1614611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906132f2565b60405180910390fd5b5f5b815181101561191f57600160115f8484815181106118b5576118b461362b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061191790613658565b915050611894565b5050565b6010602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6119ca611c4a565b73ffffffffffffffffffffffffffffffffffffffff166119e8611303565b73ffffffffffffffffffffffffffffffffffffffff1614611a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a35906132f2565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611a63611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611a81611303565b73ffffffffffffffffffffffffffffffffffffffff1614611ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ace906132f2565b60405180910390fd5b8060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611b37611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611b55611303565b73ffffffffffffffffffffffffffffffffffffffff1614611bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba2906132f2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c109061370f565b60405180910390fd5b611c22816127e1565b50565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb69061379d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d249061382b565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e079190612bfd565b60405180910390a3505050565b5f8111611e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4d906138b9565b60405180910390fd5b60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ef4575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2a90613921565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611fd1575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611fea5750600760149054906101000a900460ff16155b1561229d57600760169054906101000a900460ff1661203e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203590613989565b60405180910390fd5b4360095460085461204f91906133fe565b11156121aa5760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146120ff57600160115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146121a957600160115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5b600b548111156121ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e6906139f1565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461229c57600c548161225084610ff6565b61225a91906133fe565b111561229b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229290613a7f565b60405180910390fd5b5b5b5f600760149054906101000a900460ff16806122ff575060105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612350575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561235d575f90506123f0565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123d2576064600f54836123c19190613431565b6123cb919061349f565b90506123ef565b6064600e54836123e29190613431565b6123ec919061349f565b90505b5b600760159054906101000a900460ff1680156124195750600760149054906101000a900460ff16155b8015612472575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561247d57505f81115b1561248b5761248a6128a4565b5b6124a18484838561249c91906133cb565b61296d565b5f8111156124b5576124b484308361296d565b5b50505050565b5f600267ffffffffffffffff8111156124d7576124d6612f83565b5b6040519080825280602002602001820160405280156125055781602001602082028036833780820191505090505b50905030815f8151811061251c5761251b61362b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e49190613ab1565b816001815181106125f8576125f761362b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061265e3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c51565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016126c0959493929190613bcc565b5f604051808303815f87803b1580156126d7575f80fd5b505af11580156126e9573d5f803e3d5ffd5b505050505050565b80471015612734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272b90613c6e565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff168260405161275990613cb9565b5f6040518083038185875af1925050503d805f8114612793576040519150601f19603f3d011682016040523d82523d5f602084013e612798565b606091505b50509050806127dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d390613d3d565b60405180910390fd5b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff1661296b576001600760146101000a81548160ff0219169083151502179055505f6128dd30610ff6565b9050600a54811061294f575f8190506128f5816124bb565b5f4790505f81111561294c5761294b81600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166126f190919063ffffffff16565b5b50505b505f600760146101000a81548160ff0219169083151502179055505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d290613dcb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4090613e59565b60405180910390fd5b612a54838383612be0565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ace90613ee7565b60405180910390fd5b8181612ae391906133cb565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612b6e91906133fe565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bd29190612bfd565b60405180910390a350505050565b505050565b5f819050919050565b612bf781612be5565b82525050565b5f602082019050612c105f830184612bee565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612c4d578082015181840152602081019050612c32565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612c7282612c16565b612c7c8185612c20565b9350612c8c818560208601612c30565b612c9581612c58565b840191505092915050565b5f6020820190508181035f830152612cb88184612c68565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b612cda81612be5565b8114612ce4575f80fd5b50565b5f81359050612cf581612cd1565b92915050565b5f60208284031215612d1057612d0f612cc9565b5b5f612d1d84828501612ce7565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612d4f82612d26565b9050919050565b612d5f81612d45565b8114612d69575f80fd5b50565b5f81359050612d7a81612d56565b92915050565b5f8060408385031215612d9657612d95612cc9565b5b5f612da385828601612d6c565b9250506020612db485828601612ce7565b9150509250929050565b5f8115159050919050565b612dd281612dbe565b82525050565b5f602082019050612deb5f830184612dc9565b92915050565b5f805f60608486031215612e0857612e07612cc9565b5b5f612e1586828701612d6c565b9350506020612e2686828701612d6c565b9250506040612e3786828701612ce7565b9150509250925092565b5f60ff82169050919050565b612e5681612e41565b82525050565b5f602082019050612e6f5f830184612e4d565b92915050565b5f612e7f82612d45565b9050919050565b612e8f81612e75565b8114612e99575f80fd5b50565b5f81359050612eaa81612e86565b92915050565b5f8060408385031215612ec657612ec5612cc9565b5b5f612ed385828601612e9c565b9250506020612ee485828601612d6c565b9150509250929050565b5f8060408385031215612f0457612f03612cc9565b5b5f612f1185828601612ce7565b9250506020612f2285828601612ce7565b9150509250929050565b5f60208284031215612f4157612f40612cc9565b5b5f612f4e84828501612d6c565b91505092915050565b612f6081612d45565b82525050565b5f602082019050612f795f830184612f57565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612fb982612c58565b810181811067ffffffffffffffff82111715612fd857612fd7612f83565b5b80604052505050565b5f612fea612cc0565b9050612ff68282612fb0565b919050565b5f67ffffffffffffffff82111561301557613014612f83565b5b602082029050602081019050919050565b5f80fd5b5f61303c61303784612ffb565b612fe1565b9050808382526020820190506020840283018581111561305f5761305e613026565b5b835b8181101561308857806130748882612d6c565b845260208401935050602081019050613061565b5050509392505050565b5f82601f8301126130a6576130a5612f7f565b5b81356130b684826020860161302a565b91505092915050565b5f602082840312156130d4576130d3612cc9565b5b5f82013567ffffffffffffffff8111156130f1576130f0612ccd565b5b6130fd84828501613092565b91505092915050565b5f806040838503121561311c5761311b612cc9565b5b5f61312985828601612d6c565b925050602061313a85828601612d6c565b9150509250929050565b61314d81612dbe565b8114613157575f80fd5b50565b5f8135905061316881613144565b92915050565b5f6020828403121561318357613182612cc9565b5b5f6131908482850161315a565b91505092915050565b5f80604083850312156131af576131ae612cc9565b5b5f6131bc85828601612d6c565b92505060206131cd8582860161315a565b9150509250929050565b5f819050919050565b5f6131fa6131f56131f084612d26565b6131d7565b612d26565b9050919050565b5f61320b826131e0565b9050919050565b5f61321c82613201565b9050919050565b61322c81613212565b82525050565b5f6020820190506132455f830184613223565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061328f57607f821691505b6020821081036132a2576132a161324b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6132dc602083612c20565b91506132e7826132a8565b602082019050919050565b5f6020820190508181035f830152613309816132d0565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f61336a602883612c20565b915061337582613310565b604082019050919050565b5f6020820190508181035f8301526133978161335e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6133d582612be5565b91506133e083612be5565b92508282039050818111156133f8576133f761339e565b5b92915050565b5f61340882612be5565b915061341383612be5565b925082820190508082111561342b5761342a61339e565b5b92915050565b5f61343b82612be5565b915061344683612be5565b925082820261345481612be5565b9150828204841483151761346b5761346a61339e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6134a982612be5565b91506134b483612be5565b9250826134c4576134c3613472565b5b828204905092915050565b7f54726164696e6720616c726561647920616374697665000000000000000000005f82015250565b5f613503601683612c20565b915061350e826134cf565b602082019050919050565b5f6020820190508181035f830152613530816134f7565b9050919050565b5f60408201905061354a5f830185612f57565b6135576020830184612bee565b9392505050565b5f8151905061356c81613144565b92915050565b5f6020828403121561358757613586612cc9565b5b5f6135948482850161355e565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6135f7602583612c20565b91506136028261359d565b604082019050919050565b5f6020820190508181035f830152613624816135eb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61366282612be5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136945761369361339e565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6136f9602683612c20565b91506137048261369f565b604082019050919050565b5f6020820190508181035f830152613726816136ed565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613787602483612c20565b91506137928261372d565b604082019050919050565b5f6020820190508181035f8301526137b48161377b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613815602283612c20565b9150613820826137bb565b604082019050919050565b5f6020820190508181035f83015261384281613809565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6138a3602983612c20565b91506138ae82613849565b604082019050919050565b5f6020820190508181035f8301526138d081613897565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e73000000000000005f82015250565b5f61390b601983612c20565b9150613916826138d7565b602082019050919050565b5f6020820190508181035f830152613938816138ff565b9050919050565b7f54726164696e67206e6f742061637469766520796574000000000000000000005f82015250565b5f613973601683612c20565b915061397e8261393f565b602082019050919050565b5f6020820190508181035f8301526139a081613967565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e740000005f82015250565b5f6139db601d83612c20565b91506139e6826139a7565b602082019050919050565b5f6020820190508181035f830152613a08816139cf565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e5f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a69602183612c20565b9150613a7482613a0f565b604082019050919050565b5f6020820190508181035f830152613a9681613a5d565b9050919050565b5f81519050613aab81612d56565b92915050565b5f60208284031215613ac657613ac5612cc9565b5b5f613ad384828501613a9d565b91505092915050565b5f819050919050565b5f613aff613afa613af584613adc565b6131d7565b612be5565b9050919050565b613b0f81613ae5565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613b4781612d45565b82525050565b5f613b588383613b3e565b60208301905092915050565b5f602082019050919050565b5f613b7a82613b15565b613b848185613b1f565b9350613b8f83613b2f565b805f5b83811015613bbf578151613ba68882613b4d565b9750613bb183613b64565b925050600181019050613b92565b5085935050505092915050565b5f60a082019050613bdf5f830188612bee565b613bec6020830187613b06565b8181036040830152613bfe8186613b70565b9050613c0d6060830185612f57565b613c1a6080830184612bee565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f613c58601d83612c20565b9150613c6382613c24565b602082019050919050565b5f6020820190508181035f830152613c8581613c4c565b9050919050565b5f81905092915050565b50565b5f613ca45f83613c8c565b9150613caf82613c96565b5f82019050919050565b5f613cc382613c99565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f613d27603a83612c20565b9150613d3282613ccd565b604082019050919050565b5f6020820190508181035f830152613d5481613d1b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613db5602583612c20565b9150613dc082613d5b565b604082019050919050565b5f6020820190508181035f830152613de281613da9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613e43602383612c20565b9150613e4e82613de9565b604082019050919050565b5f6020820190508181035f830152613e7081613e37565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613ed1602683612c20565b9150613edc82613e77565b604082019050919050565b5f6020820190508181035f830152613efe81613ec5565b905091905056fea2646970667358221220f223e7d073116bb221f035cccab281c40c00a56a5f9f72e85a6c9de9501c8fdc64736f6c63430008140033

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.