ETH Price: $1,796.16 (+10.34%)
Gas: 1.36 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve216511582025-01-18 11:45:1194 days ago1737200711IN
0x5D2c0b32...258b765E0
0 ETH0.0007596316.1147523
Approve216338022025-01-16 1:36:2397 days ago1736991383IN
0x5D2c0b32...258b765E0
0 ETH0.000190774.06564777
Transfer212880422024-11-28 18:39:23145 days ago1732819163IN
0x5D2c0b32...258b765E0
0 ETH0.0014542125.78345259
Transfer212880392024-11-28 18:38:47145 days ago1732819127IN
0x5D2c0b32...258b765E0
0 ETH0.0014082624.96872724
Transfer212880212024-11-28 18:35:11145 days ago1732818911IN
0x5D2c0b32...258b765E0
0 ETH0.0014952826.50611911
Transfer212880042024-11-28 18:31:47145 days ago1732818707IN
0x5D2c0b32...258b765E0
0 ETH0.0011080419.64995063
Transfer212880012024-11-28 18:31:11145 days ago1732818671IN
0x5D2c0b32...258b765E0
0 ETH0.0011029119.55908474
Transfer212879992024-11-28 18:30:47145 days ago1732818647IN
0x5D2c0b32...258b765E0
0 ETH0.0010965819.44670591
Transfer212879972024-11-28 18:30:23145 days ago1732818623IN
0x5D2c0b32...258b765E0
0 ETH0.0010798419.14987879
Approve212790032024-11-27 12:11:23146 days ago1732709483IN
0x5D2c0b32...258b765E0
0 ETH0.0005392711.44305446
Approve211666022024-11-11 19:42:59162 days ago1731354179IN
0x5D2c0b32...258b765E0
0 ETH0.0018513739.47569793
Approve211665182024-11-11 19:26:11162 days ago1731353171IN
0x5D2c0b32...258b765E0
0 ETH0.002822859.80655542
Approve211665142024-11-11 19:25:23162 days ago1731353123IN
0x5D2c0b32...258b765E0
0 ETH0.0013232444.05106163
Transfer211664962024-11-11 19:21:47162 days ago1731352907IN
0x5D2c0b32...258b765E0
0 ETH0.0024617447.68513165
Transfer211664842024-11-11 19:19:23162 days ago1731352763IN
0x5D2c0b32...258b765E0
0 ETH0.0032927458.41823431
Approve211636932024-11-11 9:57:59162 days ago1731319079IN
0x5D2c0b32...258b765E0
0 ETH0.0009665920.50523046
Approve211515692024-11-09 17:24:11164 days ago1731173051IN
0x5D2c0b32...258b765E0
0 ETH0.0006514913.82070646
Approve211464022024-11-09 0:06:59165 days ago1731110819IN
0x5D2c0b32...258b765E0
0 ETH0.0006468113.72136713
Approve211412422024-11-08 6:50:35166 days ago1731048635IN
0x5D2c0b32...258b765E0
0 ETH0.000368057.85579639
Approve211386142024-11-07 22:00:35166 days ago1731016835IN
0x5D2c0b32...258b765E0
0 ETH0.0008240317.45880488
Approve211378192024-11-07 19:20:23166 days ago1731007223IN
0x5D2c0b32...258b765E0
0 ETH0.0009997521.20863076
Approve211377692024-11-07 19:10:11166 days ago1731006611IN
0x5D2c0b32...258b765E0
0 ETH0.0011283823.90699813
Approve211373372024-11-07 17:43:35166 days ago1731001415IN
0x5D2c0b32...258b765E0
0 ETH0.0010832122.94991768
Approve211359912024-11-07 13:11:59166 days ago1730985119IN
0x5D2c0b32...258b765E0
0 ETH0.0009588920.32108714
Approve211349522024-11-07 9:42:47166 days ago1730972567IN
0x5D2c0b32...258b765E0
0 ETH0.0010880123.21102744
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Mega

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 2 : Mega.sol
//submitted for verification on etherscan 6/November/2024
//telegram  https://t.me/MEGATrumpOnEth
//website https://www.megatrumpeth.com/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

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

contract Mega is IERC20, IERC20Metadata, ReentrancyGuard{
    using Address for address payable;
    address public pair;
    bool public tradingEnabled = false;
    uint256 public maxBuyLimit; //3%
    uint256 public maxSellLimit ; //1%
    uint256 public maxWalletLimit ; //3%
    uint256 public genesis_block;
    address public marketingWallet = 0xdcdcE964ACDE6644C94A23cAdD3cA03220923F76;
    address public uniswapRouterv2Address = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    uint256 public buyMarkeetingTax = 3; // 3% => taxes
    uint256 public sellMarkeetingTax = 5; // 5% => sell 
    mapping(address => bool) public isAdded;
    address[] public uniqueAddresses;
    event AddressAdded(address indexed addr);
    string public name = "MEGATRUMP";
    string public symbol = "MEGATRUMP";
    uint8 public decimals = 18;
    address private _owner;
    uint256 private _totalSupply = 47000000000 * 10**uint256(decimals);
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public exemptFee;
    constructor() {
        _balances[msg.sender] = _totalSupply;
        exemptFee[address(this)] = true;
        exemptFee[ msg.sender] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[uniswapRouterv2Address] = true;
        _owner = msg.sender; 
        uniqueAddresses.push(uniswapRouterv2Address);
        isAdded[uniswapRouterv2Address] = true;
        maxBuyLimit = 47000000000 * 10**uint256(decimals); 
        maxSellLimit = 47000000000 * 10**uint256(decimals); 
        maxWalletLimit = 47000000000 * 10**uint256(decimals);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address"); 
        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 setLiquidityPool(address _poolAddress) external onlyOwner {
        pair = _poolAddress;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal nonReentrant{
        require(amount > 0, "Transfer amount must be greater than zero");
        require(_balances[sender] >= amount, "ERC20: transfer amount exceeds balance");
        
        if (!exemptFee[sender] && !exemptFee[recipient] && isAdded[recipient] == false) {
            require(tradingEnabled, "Trading not enabled");
        }
        if (!exemptFee[recipient]) {
            require(amount <= maxBuyLimit, "You are exceeding maxBuyLimit");
            require(
                _balances[recipient] + amount <= maxWalletLimit,
                "You are exceeding maxWalletLimit"
            );
        }
        if (!exemptFee[recipient] && !exemptFee[sender]) {
            require(amount <= maxSellLimit, "You are exceeding maxSellLimit");
            if (recipient != pair) {
                require(
                    _balances[recipient] + amount <= maxWalletLimit,
                    "You are exceeding maxWalletLimit"
                );
            }
        }
        uint256 feesum;
        uint256 fee;
        if (exemptFee[sender] || exemptFee[recipient])
            fee = 0;
        else if (recipient == pair) {
            feesum = sellMarkeetingTax;
        } else if (sender == pair && recipient != address(this)) {
            feesum = buyMarkeetingTax;
        }
        fee = (amount * feesum) / 100;
        uint256 transferAmount = amount - fee;
        _balances[sender] -= amount; // This line could revert if the check is not in place
        _balances[recipient] += transferAmount;
        emit Transfer(sender, recipient, transferAmount);
        if (fee > 0) {
            if (feesum > 0) {
                _balances[marketingWallet] += fee;
                emit Transfer(sender, marketingWallet, fee);
            }
        }
    }

    function addAddress (address[] memory addresses) public onlyOwner {
        for (uint256 i = 0; i < addresses.length; i++) {
            address addr = addresses[i];
            if (!isAdded[addr]) {
                uniqueAddresses.push(addr);
                isAdded[addr] = true;
                emit AddressAdded(addr);
            }
        }
    }

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

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

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

    function balanceOf(address account) external view override returns (uint256) {
        return _balances[account];
    }
   
    function _transferOwnership(address newOwner) public onlyOwner {
        _owner = newOwner;
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] - subtractedValue);
        return true;
    }

    function _approve(address tokenOwner, address spender, uint256 amount) internal{
        require(tokenOwner != address(0), "Approve from the zero address");
        require(spender != address(0), "Approve to the zero address");
        _allowances[tokenOwner][spender] = amount;
        emit Approval(tokenOwner, spender, amount);
    }

    function _openTrading(bool status) external onlyOwner {
        tradingEnabled = status;
    }

    function updateMaxBuyTxLimit(uint256 maxBuy) external onlyOwner {
        maxBuyLimit = maxBuy * 10**decimals;
    }

    function updateMaxBuyTxLimit(uint256 maxBuy, uint256 maxSell, uint256 maxWallet) external onlyOwner {
        maxBuyLimit = maxBuy * 10**decimals;
        maxSellLimit = maxSell * 10**decimals;
        maxWalletLimit = maxWallet * 10**decimals; 
    }

    function adjustMaxBuyTxLimit() external onlyOwner {
        maxBuyLimit = 1410000000 * 10**decimals;
        maxSellLimit = 470000000 * 10**decimals;
        maxWalletLimit = 1410000000 * 10**decimals; 
    }

    function AddExemptFee(address newWallet) external onlyOwner{
        require(newWallet != address(0), "Zero address not valid!");
        exemptFee[newWallet] = true;

    }

    function renounceOwnership() public onlyOwner {
        _owner = address(0); 
    }
}

File 2 of 2 : ReentrancyGuard.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module that helps prevent reentrant calls to a function.
 *
 * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
 * available, which can be applied to functions to make sure there are no nested
 * (reentrant) calls to them.
 *
 * Note that because there is a single `nonReentrant` guard, functions marked as
 * `nonReentrant` may not call one another. This can be worked around by making
 * those functions `private`, and then adding `external` `nonReentrant` entry
 * points to them.
 *
 * TIP: If you would like to learn more about reentrancy and alternative ways
 * to protect against it, check out our blog post
 * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
 */
abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and making it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        _nonReentrantBefore();
        _;
        _nonReentrantAfter();
    }

    function _nonReentrantBefore() private {
        // On the first call to nonReentrant, _status will be _NOT_ENTERED
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;
    }

    function _nonReentrantAfter() private {
        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a
     * `nonReentrant` function in the call stack.
     */
    function _reentrancyGuardEntered() internal view returns (bool) {
        return _status == _ENTERED;
    }
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"}],"name":"AddressAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"AddExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"_openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"_transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"addAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"adjustMaxBuyTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","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":"buyMarkeetingTax","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":"address","name":"","type":"address"}],"name":"exemptFee","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":"address","name":"","type":"address"}],"name":"isAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellMarkeetingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_poolAddress","type":"address"}],"name":"setLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"uint256","name":"","type":"uint256"}],"name":"uniqueAddresses","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouterv2Address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxBuyTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"}],"name":"updateMaxBuyTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040525f600160146101000a81548160ff02191690831515021790555073dcdce964acde6644c94a23cadd3ca03220923f7660065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360085560056009556040518060400160405280600981526020017f4d4547415452554d500000000000000000000000000000000000000000000000815250600c9081620001169190620007e6565b506040518060400160405280600981526020017f4d4547415452554d500000000000000000000000000000000000000000000000815250600d90816200015d9190620007e6565b506012600e5f6101000a81548160ff021916908360ff160217905550600e5f9054906101000a900460ff1660ff16600a62000199919062000a47565b640af16b1600620001ab919062000a97565b600f55348015620001ba575f80fd5b5060015f81905550600f5460105f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160125f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160125f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160125f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160125f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555033600e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600e5f9054906101000a900460ff1660ff16600a620004f4919062000a47565b640af16b160062000506919062000a97565b600281905550600e5f9054906101000a900460ff1660ff16600a6200052c919062000a47565b640af16b16006200053e919062000a97565b600381905550600e5f9054906101000a900460ff1660ff16600a62000564919062000a47565b640af16b160062000576919062000a97565b60048190555062000ae1565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620005fe57607f821691505b602082108103620006145762000613620005b9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620006787fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200063b565b6200068486836200063b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620006ce620006c8620006c2846200069c565b620006a5565b6200069c565b9050919050565b5f819050919050565b620006e983620006ae565b62000701620006f882620006d5565b84845462000647565b825550505050565b5f90565b6200071762000709565b62000724818484620006de565b505050565b5b818110156200074b576200073f5f826200070d565b6001810190506200072a565b5050565b601f8211156200079a5762000764816200061a565b6200076f846200062c565b810160208510156200077f578190505b620007976200078e856200062c565b83018262000729565b50505b505050565b5f82821c905092915050565b5f620007bc5f19846008026200079f565b1980831691505092915050565b5f620007d68383620007ab565b9150826002028217905092915050565b620007f18262000582565b67ffffffffffffffff8111156200080d576200080c6200058c565b5b620008198254620005e6565b620008268282856200074f565b5f60209050601f8311600181146200085c575f841562000847578287015190505b620008538582620007c9565b865550620008c2565b601f1984166200086c866200061a565b5f5b8281101562000895578489015182556001820191506020850194506020810190506200086e565b86831015620008b55784890151620008b1601f891682620007ab565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000954578086048111156200092c576200092b620008ca565b5b60018516156200093c5780820291505b80810290506200094c85620008f7565b94506200090c565b94509492505050565b5f826200096e576001905062000a40565b816200097d575f905062000a40565b8160018114620009965760028114620009a157620009d7565b600191505062000a40565b60ff841115620009b657620009b5620008ca565b5b8360020a915084821115620009d057620009cf620008ca565b5b5062000a40565b5060208310610133831016604e8410600b841016171562000a115782820a90508381111562000a0b5762000a0a620008ca565b5b62000a40565b62000a20848484600162000903565b9250905081840481111562000a3a5762000a39620008ca565b5b81810290505b9392505050565b5f62000a53826200069c565b915062000a60836200069c565b925062000a8f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200095d565b905092915050565b5f62000aa3826200069c565b915062000ab0836200069c565b925082820262000ac0816200069c565b9150828204841483151762000ada5762000ad9620008ca565b5b5092915050565b612d298062000aef5f395ff3fe608060405234801561000f575f80fd5b5060043610610204575f3560e01c806375f0a87411610118578063a9059cbb116100ab578063c5d32bb21161007a578063c5d32bb2146105b8578063c84ede83146105e8578063c8914edb14610606578063d29d44ee14610636578063dd62ed3e1461065257610204565b8063a9059cbb14610546578063b3621e1a14610576578063b77c3e9714610592578063c0a9da661461059c57610204565b806395d89b41116100e757806395d89b41146104bc578063a3ad4b21146104da578063a457c2d7146104f8578063a8aa1b311461052857610204565b806375f0a874146104325780638221cc01146104505780638da5cb5b1461046e5780638e75b5e61461048c57610204565b8063395093511161019b578063652e2f041161016a578063652e2f041461039e57806366a88d96146103bc5780636aa5b37f146103da57806370a08231146103f8578063715018a61461042857610204565b806339509351146103185780634ada218b146103485780635dbdb7e3146103665780635fcd8eb81461038257610204565b806323b872dd116101d757806323b872dd14610290578063274a533c146102c05780632f9ac53c146102de578063313ce567146102fa57610204565b8063018770201461020857806306fdde0314610224578063095ea7b31461024257806318160ddd14610272575b5f80fd5b610222600480360381019061021d9190611fd2565b610682565b005b61022c61073a565b6040516102399190612087565b60405180910390f35b61025c600480360381019061025791906120da565b6107c6565b6040516102699190612132565b60405180910390f35b61027a6107dc565b604051610287919061215a565b60405180910390f35b6102aa60048036038101906102a59190612173565b6107e5565b6040516102b79190612132565b60405180910390f35b6102c861088a565b6040516102d5919061215a565b60405180910390f35b6102f860048036038101906102f391906121c3565b610890565b005b61030261098e565b60405161030f919061222e565b60405180910390f35b610332600480360381019061032d91906120da565b6109a0565b60405161033f9190612132565b60405180910390f35b610350610a39565b60405161035d9190612132565b60405180910390f35b610380600480360381019061037b9190611fd2565b610a4c565b005b61039c60048036038101906103979190612271565b610b87565b005b6103a6610c19565b6040516103b3919061215a565b60405180910390f35b6103c4610c1f565b6040516103d1919061215a565b60405180910390f35b6103e2610c25565b6040516103ef919061215a565b60405180910390f35b610412600480360381019061040d9190611fd2565b610c2b565b60405161041f919061215a565b60405180910390f35b610430610c71565b005b61043a610d29565b60405161044791906122ab565b60405180910390f35b610458610d4e565b604051610465919061215a565b60405180910390f35b610476610d54565b60405161048391906122ab565b60405180910390f35b6104a660048036038101906104a191906122c4565b610d7d565b6040516104b391906122ab565b60405180910390f35b6104c4610db8565b6040516104d19190612087565b60405180910390f35b6104e2610e44565b6040516104ef91906122ab565b60405180910390f35b610512600480360381019061050d91906120da565b610e69565b60405161051f9190612132565b60405180910390f35b610530610f02565b60405161053d91906122ab565b60405180910390f35b610560600480360381019061055b91906120da565b610f27565b60405161056d9190612132565b60405180910390f35b610590600480360381019061058b919061242f565b610f3d565b005b61059a61113a565b005b6105b660048036038101906105b191906122c4565b611241565b005b6105d260048036038101906105cd9190611fd2565b6112e5565b6040516105df9190612132565b60405180910390f35b6105f0611302565b6040516105fd919061215a565b60405180910390f35b610620600480360381019061061b9190611fd2565b611308565b60405161062d9190612132565b60405180910390f35b610650600480360381019061064b9190611fd2565b611325565b005b61066c60048036038101906106679190612476565b6113de565b604051610679919061215a565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff166106a1610d54565b73ffffffffffffffffffffffffffffffffffffffff16146106f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ee906124fe565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c805461074790612549565b80601f016020809104026020016040519081016040528092919081815260200182805461077390612549565b80156107be5780601f10610795576101008083540402835291602001916107be565b820191905f5260205f20905b8154815290600101906020018083116107a157829003601f168201915b505050505081565b5f6107d2338484611460565b6001905092915050565b5f600f54905090565b5f6107f1848484611623565b61087f84338460115f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461087a91906125a6565b611460565b600190509392505050565b60055481565b3373ffffffffffffffffffffffffffffffffffffffff166108af610d54565b73ffffffffffffffffffffffffffffffffffffffff1614610905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fc906124fe565b60405180910390fd5b600e5f9054906101000a900460ff16600a6109209190612708565b8361092b9190612752565b600281905550600e5f9054906101000a900460ff16600a61094c9190612708565b826109579190612752565b600381905550600e5f9054906101000a900460ff16600a6109789190612708565b816109839190612752565b600481905550505050565b600e5f9054906101000a900460ff1681565b5f610a2f33848460115f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a2a9190612793565b611460565b6001905092915050565b600160149054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16610a6b610d54565b73ffffffffffffffffffffffffffffffffffffffff1614610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab8906124fe565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2690612810565b60405180910390fd5b600160125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16610ba6610d54565b73ffffffffffffffffffffffffffffffffffffffff1614610bfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf3906124fe565b60405180910390fd5b80600160146101000a81548160ff02191690831515021790555050565b60035481565b60045481565b60025481565b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16610c90610d54565b73ffffffffffffffffffffffffffffffffffffffff1614610ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdd906124fe565b60405180910390fd5b5f600e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b5f600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b8181548110610d8c575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d8054610dc590612549565b80601f0160208091040260200160405190810160405280929190818152602001828054610df190612549565b8015610e3c5780601f10610e1357610100808354040283529160200191610e3c565b820191905f5260205f20905b815481529060010190602001808311610e1f57829003601f168201915b505050505081565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610ef833848460115f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610ef391906125a6565b611460565b6001905092915050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610f33338484611623565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16610f5c610d54565b73ffffffffffffffffffffffffffffffffffffffff1614610fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa9906124fe565b60405180910390fd5b5f5b8151811015611136575f828281518110610fd157610fd061282e565b5b60200260200101519050600a5f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661112257600b81908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fa226db3f664042183ee0281230bba26cbf7b5057e50aee7f25a175ff45ce4d7f60405160405180910390a25b50808061112e9061285b565b915050610fb4565b5050565b3373ffffffffffffffffffffffffffffffffffffffff16611159610d54565b73ffffffffffffffffffffffffffffffffffffffff16146111af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a6906124fe565b60405180910390fd5b600e5f9054906101000a900460ff16600a6111ca9190612708565b63540ae4806111d99190612752565b600281905550600e5f9054906101000a900460ff16600a6111fa9190612708565b631c03a1806112099190612752565b600381905550600e5f9054906101000a900460ff16600a61122a9190612708565b63540ae4806112399190612752565b600481905550565b3373ffffffffffffffffffffffffffffffffffffffff16611260610d54565b73ffffffffffffffffffffffffffffffffffffffff16146112b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ad906124fe565b60405180910390fd5b600e5f9054906101000a900460ff16600a6112d19190612708565b816112dc9190612752565b60028190555050565b6012602052805f5260405f205f915054906101000a900460ff1681565b60085481565b600a602052805f5260405f205f915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16611344610d54565b73ffffffffffffffffffffffffffffffffffffffff161461139a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611391906124fe565b60405180910390fd5b80600e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c5906128ec565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361153c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153390612954565b60405180910390fd5b8060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611616919061215a565b60405180910390a3505050565b61162b611f11565b5f811161166d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611664906129e2565b60405180910390fd5b8060105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156116ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e490612a70565b60405180910390fd5b60125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561178b575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156117e357505f1515600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515145b1561183857600160149054906101000a900460ff16611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182e90612ad8565b60405180910390fd5b5b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611959576002548111156118cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c290612b40565b60405180910390fd5b6004548160105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119179190612793565b1115611958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194f90612ba8565b60405180910390fd5b5b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156119f7575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b2457600354811115611a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3890612c10565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611b23576004548160105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ae19190612793565b1115611b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1990612ba8565b60405180910390fd5b5b5b5f8060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611bc1575060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611bce575f9050611cc1565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c2c576009549150611cc0565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611cb457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611cbf5760085491505b5b5b60648284611ccf9190612752565b611cd99190612c5b565b90505f8184611ce891906125a6565b90508360105f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611d3691906125a6565b925050819055508060105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611d899190612793565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ded919061215a565b60405180910390a35f821115611f01575f831115611f00578160105f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611e729190612793565b9250508190555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ef7919061215a565b60405180910390a35b5b505050611f0c611f5e565b505050565b60025f5403611f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4c90612cd5565b60405180910390fd5b60025f81905550565b60015f81905550565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611fa182611f78565b9050919050565b611fb181611f97565b8114611fbb575f80fd5b50565b5f81359050611fcc81611fa8565b92915050565b5f60208284031215611fe757611fe6611f70565b5b5f611ff484828501611fbe565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612034578082015181840152602081019050612019565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61205982611ffd565b6120638185612007565b9350612073818560208601612017565b61207c8161203f565b840191505092915050565b5f6020820190508181035f83015261209f818461204f565b905092915050565b5f819050919050565b6120b9816120a7565b81146120c3575f80fd5b50565b5f813590506120d4816120b0565b92915050565b5f80604083850312156120f0576120ef611f70565b5b5f6120fd85828601611fbe565b925050602061210e858286016120c6565b9150509250929050565b5f8115159050919050565b61212c81612118565b82525050565b5f6020820190506121455f830184612123565b92915050565b612154816120a7565b82525050565b5f60208201905061216d5f83018461214b565b92915050565b5f805f6060848603121561218a57612189611f70565b5b5f61219786828701611fbe565b93505060206121a886828701611fbe565b92505060406121b9868287016120c6565b9150509250925092565b5f805f606084860312156121da576121d9611f70565b5b5f6121e7868287016120c6565b93505060206121f8868287016120c6565b9250506040612209868287016120c6565b9150509250925092565b5f60ff82169050919050565b61222881612213565b82525050565b5f6020820190506122415f83018461221f565b92915050565b61225081612118565b811461225a575f80fd5b50565b5f8135905061226b81612247565b92915050565b5f6020828403121561228657612285611f70565b5b5f6122938482850161225d565b91505092915050565b6122a581611f97565b82525050565b5f6020820190506122be5f83018461229c565b92915050565b5f602082840312156122d9576122d8611f70565b5b5f6122e6848285016120c6565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6123298261203f565b810181811067ffffffffffffffff82111715612348576123476122f3565b5b80604052505050565b5f61235a611f67565b90506123668282612320565b919050565b5f67ffffffffffffffff821115612385576123846122f3565b5b602082029050602081019050919050565b5f80fd5b5f6123ac6123a78461236b565b612351565b905080838252602082019050602084028301858111156123cf576123ce612396565b5b835b818110156123f857806123e48882611fbe565b8452602084019350506020810190506123d1565b5050509392505050565b5f82601f830112612416576124156122ef565b5b813561242684826020860161239a565b91505092915050565b5f6020828403121561244457612443611f70565b5b5f82013567ffffffffffffffff81111561246157612460611f74565b5b61246d84828501612402565b91505092915050565b5f806040838503121561248c5761248b611f70565b5b5f61249985828601611fbe565b92505060206124aa85828601611fbe565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6124e8602083612007565b91506124f3826124b4565b602082019050919050565b5f6020820190508181035f830152612515816124dc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061256057607f821691505b6020821081036125735761257261251c565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6125b0826120a7565b91506125bb836120a7565b92508282039050818111156125d3576125d2612579565b5b92915050565b5f8160011c9050919050565b5f808291508390505b600185111561262e5780860481111561260a57612609612579565b5b60018516156126195780820291505b8081029050612627856125d9565b94506125ee565b94509492505050565b5f826126465760019050612701565b81612653575f9050612701565b81600181146126695760028114612673576126a2565b6001915050612701565b60ff84111561268557612684612579565b5b8360020a91508482111561269c5761269b612579565b5b50612701565b5060208310610133831016604e8410600b84101617156126d75782820a9050838111156126d2576126d1612579565b5b612701565b6126e484848460016125e5565b925090508184048111156126fb576126fa612579565b5b81810290505b9392505050565b5f612712826120a7565b915061271d83612213565b925061274a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612637565b905092915050565b5f61275c826120a7565b9150612767836120a7565b9250828202612775816120a7565b9150828204841483151761278c5761278b612579565b5b5092915050565b5f61279d826120a7565b91506127a8836120a7565b92508282019050808211156127c0576127bf612579565b5b92915050565b7f5a65726f2061646472657373206e6f742076616c6964210000000000000000005f82015250565b5f6127fa601783612007565b9150612805826127c6565b602082019050919050565b5f6020820190508181035f830152612827816127ee565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612865826120a7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361289757612896612579565b5b600182019050919050565b7f417070726f76652066726f6d20746865207a65726f20616464726573730000005f82015250565b5f6128d6601d83612007565b91506128e1826128a2565b602082019050919050565b5f6020820190508181035f830152612903816128ca565b9050919050565b7f417070726f766520746f20746865207a65726f206164647265737300000000005f82015250565b5f61293e601b83612007565b91506129498261290a565b602082019050919050565b5f6020820190508181035f83015261296b81612932565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6129cc602983612007565b91506129d782612972565b604082019050919050565b5f6020820190508181035f8301526129f9816129c0565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612a5a602683612007565b9150612a6582612a00565b604082019050919050565b5f6020820190508181035f830152612a8781612a4e565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f612ac2601383612007565b9150612acd82612a8e565b602082019050919050565b5f6020820190508181035f830152612aef81612ab6565b9050919050565b7f596f752061726520657863656564696e67206d61784275794c696d69740000005f82015250565b5f612b2a601d83612007565b9150612b3582612af6565b602082019050919050565b5f6020820190508181035f830152612b5781612b1e565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d69745f82015250565b5f612b92602083612007565b9150612b9d82612b5e565b602082019050919050565b5f6020820190508181035f830152612bbf81612b86565b9050919050565b7f596f752061726520657863656564696e67206d617853656c6c4c696d697400005f82015250565b5f612bfa601e83612007565b9150612c0582612bc6565b602082019050919050565b5f6020820190508181035f830152612c2781612bee565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612c65826120a7565b9150612c70836120a7565b925082612c8057612c7f612c2e565b5b828204905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f612cbf601f83612007565b9150612cca82612c8b565b602082019050919050565b5f6020820190508181035f830152612cec81612cb3565b905091905056fea2646970667358221220cd8032e1bce65adeedef85a8ba78fe06526cfe92ca3bdfb9f9ee6befbeff853c64736f6c63430008140033

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610204575f3560e01c806375f0a87411610118578063a9059cbb116100ab578063c5d32bb21161007a578063c5d32bb2146105b8578063c84ede83146105e8578063c8914edb14610606578063d29d44ee14610636578063dd62ed3e1461065257610204565b8063a9059cbb14610546578063b3621e1a14610576578063b77c3e9714610592578063c0a9da661461059c57610204565b806395d89b41116100e757806395d89b41146104bc578063a3ad4b21146104da578063a457c2d7146104f8578063a8aa1b311461052857610204565b806375f0a874146104325780638221cc01146104505780638da5cb5b1461046e5780638e75b5e61461048c57610204565b8063395093511161019b578063652e2f041161016a578063652e2f041461039e57806366a88d96146103bc5780636aa5b37f146103da57806370a08231146103f8578063715018a61461042857610204565b806339509351146103185780634ada218b146103485780635dbdb7e3146103665780635fcd8eb81461038257610204565b806323b872dd116101d757806323b872dd14610290578063274a533c146102c05780632f9ac53c146102de578063313ce567146102fa57610204565b8063018770201461020857806306fdde0314610224578063095ea7b31461024257806318160ddd14610272575b5f80fd5b610222600480360381019061021d9190611fd2565b610682565b005b61022c61073a565b6040516102399190612087565b60405180910390f35b61025c600480360381019061025791906120da565b6107c6565b6040516102699190612132565b60405180910390f35b61027a6107dc565b604051610287919061215a565b60405180910390f35b6102aa60048036038101906102a59190612173565b6107e5565b6040516102b79190612132565b60405180910390f35b6102c861088a565b6040516102d5919061215a565b60405180910390f35b6102f860048036038101906102f391906121c3565b610890565b005b61030261098e565b60405161030f919061222e565b60405180910390f35b610332600480360381019061032d91906120da565b6109a0565b60405161033f9190612132565b60405180910390f35b610350610a39565b60405161035d9190612132565b60405180910390f35b610380600480360381019061037b9190611fd2565b610a4c565b005b61039c60048036038101906103979190612271565b610b87565b005b6103a6610c19565b6040516103b3919061215a565b60405180910390f35b6103c4610c1f565b6040516103d1919061215a565b60405180910390f35b6103e2610c25565b6040516103ef919061215a565b60405180910390f35b610412600480360381019061040d9190611fd2565b610c2b565b60405161041f919061215a565b60405180910390f35b610430610c71565b005b61043a610d29565b60405161044791906122ab565b60405180910390f35b610458610d4e565b604051610465919061215a565b60405180910390f35b610476610d54565b60405161048391906122ab565b60405180910390f35b6104a660048036038101906104a191906122c4565b610d7d565b6040516104b391906122ab565b60405180910390f35b6104c4610db8565b6040516104d19190612087565b60405180910390f35b6104e2610e44565b6040516104ef91906122ab565b60405180910390f35b610512600480360381019061050d91906120da565b610e69565b60405161051f9190612132565b60405180910390f35b610530610f02565b60405161053d91906122ab565b60405180910390f35b610560600480360381019061055b91906120da565b610f27565b60405161056d9190612132565b60405180910390f35b610590600480360381019061058b919061242f565b610f3d565b005b61059a61113a565b005b6105b660048036038101906105b191906122c4565b611241565b005b6105d260048036038101906105cd9190611fd2565b6112e5565b6040516105df9190612132565b60405180910390f35b6105f0611302565b6040516105fd919061215a565b60405180910390f35b610620600480360381019061061b9190611fd2565b611308565b60405161062d9190612132565b60405180910390f35b610650600480360381019061064b9190611fd2565b611325565b005b61066c60048036038101906106679190612476565b6113de565b604051610679919061215a565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff166106a1610d54565b73ffffffffffffffffffffffffffffffffffffffff16146106f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ee906124fe565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c805461074790612549565b80601f016020809104026020016040519081016040528092919081815260200182805461077390612549565b80156107be5780601f10610795576101008083540402835291602001916107be565b820191905f5260205f20905b8154815290600101906020018083116107a157829003601f168201915b505050505081565b5f6107d2338484611460565b6001905092915050565b5f600f54905090565b5f6107f1848484611623565b61087f84338460115f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461087a91906125a6565b611460565b600190509392505050565b60055481565b3373ffffffffffffffffffffffffffffffffffffffff166108af610d54565b73ffffffffffffffffffffffffffffffffffffffff1614610905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fc906124fe565b60405180910390fd5b600e5f9054906101000a900460ff16600a6109209190612708565b8361092b9190612752565b600281905550600e5f9054906101000a900460ff16600a61094c9190612708565b826109579190612752565b600381905550600e5f9054906101000a900460ff16600a6109789190612708565b816109839190612752565b600481905550505050565b600e5f9054906101000a900460ff1681565b5f610a2f33848460115f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a2a9190612793565b611460565b6001905092915050565b600160149054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16610a6b610d54565b73ffffffffffffffffffffffffffffffffffffffff1614610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab8906124fe565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2690612810565b60405180910390fd5b600160125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16610ba6610d54565b73ffffffffffffffffffffffffffffffffffffffff1614610bfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf3906124fe565b60405180910390fd5b80600160146101000a81548160ff02191690831515021790555050565b60035481565b60045481565b60025481565b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16610c90610d54565b73ffffffffffffffffffffffffffffffffffffffff1614610ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdd906124fe565b60405180910390fd5b5f600e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b5f600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b8181548110610d8c575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d8054610dc590612549565b80601f0160208091040260200160405190810160405280929190818152602001828054610df190612549565b8015610e3c5780601f10610e1357610100808354040283529160200191610e3c565b820191905f5260205f20905b815481529060010190602001808311610e1f57829003601f168201915b505050505081565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610ef833848460115f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610ef391906125a6565b611460565b6001905092915050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610f33338484611623565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16610f5c610d54565b73ffffffffffffffffffffffffffffffffffffffff1614610fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa9906124fe565b60405180910390fd5b5f5b8151811015611136575f828281518110610fd157610fd061282e565b5b60200260200101519050600a5f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661112257600b81908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fa226db3f664042183ee0281230bba26cbf7b5057e50aee7f25a175ff45ce4d7f60405160405180910390a25b50808061112e9061285b565b915050610fb4565b5050565b3373ffffffffffffffffffffffffffffffffffffffff16611159610d54565b73ffffffffffffffffffffffffffffffffffffffff16146111af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a6906124fe565b60405180910390fd5b600e5f9054906101000a900460ff16600a6111ca9190612708565b63540ae4806111d99190612752565b600281905550600e5f9054906101000a900460ff16600a6111fa9190612708565b631c03a1806112099190612752565b600381905550600e5f9054906101000a900460ff16600a61122a9190612708565b63540ae4806112399190612752565b600481905550565b3373ffffffffffffffffffffffffffffffffffffffff16611260610d54565b73ffffffffffffffffffffffffffffffffffffffff16146112b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ad906124fe565b60405180910390fd5b600e5f9054906101000a900460ff16600a6112d19190612708565b816112dc9190612752565b60028190555050565b6012602052805f5260405f205f915054906101000a900460ff1681565b60085481565b600a602052805f5260405f205f915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16611344610d54565b73ffffffffffffffffffffffffffffffffffffffff161461139a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611391906124fe565b60405180910390fd5b80600e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c5906128ec565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361153c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153390612954565b60405180910390fd5b8060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611616919061215a565b60405180910390a3505050565b61162b611f11565b5f811161166d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611664906129e2565b60405180910390fd5b8060105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156116ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e490612a70565b60405180910390fd5b60125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561178b575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156117e357505f1515600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515145b1561183857600160149054906101000a900460ff16611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182e90612ad8565b60405180910390fd5b5b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611959576002548111156118cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c290612b40565b60405180910390fd5b6004548160105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119179190612793565b1115611958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194f90612ba8565b60405180910390fd5b5b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156119f7575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b2457600354811115611a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3890612c10565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611b23576004548160105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ae19190612793565b1115611b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1990612ba8565b60405180910390fd5b5b5b5f8060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611bc1575060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611bce575f9050611cc1565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c2c576009549150611cc0565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611cb457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611cbf5760085491505b5b5b60648284611ccf9190612752565b611cd99190612c5b565b90505f8184611ce891906125a6565b90508360105f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611d3691906125a6565b925050819055508060105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611d899190612793565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ded919061215a565b60405180910390a35f821115611f01575f831115611f00578160105f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611e729190612793565b9250508190555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ef7919061215a565b60405180910390a35b5b505050611f0c611f5e565b505050565b60025f5403611f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4c90612cd5565b60405180910390fd5b60025f81905550565b60015f81905550565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611fa182611f78565b9050919050565b611fb181611f97565b8114611fbb575f80fd5b50565b5f81359050611fcc81611fa8565b92915050565b5f60208284031215611fe757611fe6611f70565b5b5f611ff484828501611fbe565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612034578082015181840152602081019050612019565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61205982611ffd565b6120638185612007565b9350612073818560208601612017565b61207c8161203f565b840191505092915050565b5f6020820190508181035f83015261209f818461204f565b905092915050565b5f819050919050565b6120b9816120a7565b81146120c3575f80fd5b50565b5f813590506120d4816120b0565b92915050565b5f80604083850312156120f0576120ef611f70565b5b5f6120fd85828601611fbe565b925050602061210e858286016120c6565b9150509250929050565b5f8115159050919050565b61212c81612118565b82525050565b5f6020820190506121455f830184612123565b92915050565b612154816120a7565b82525050565b5f60208201905061216d5f83018461214b565b92915050565b5f805f6060848603121561218a57612189611f70565b5b5f61219786828701611fbe565b93505060206121a886828701611fbe565b92505060406121b9868287016120c6565b9150509250925092565b5f805f606084860312156121da576121d9611f70565b5b5f6121e7868287016120c6565b93505060206121f8868287016120c6565b9250506040612209868287016120c6565b9150509250925092565b5f60ff82169050919050565b61222881612213565b82525050565b5f6020820190506122415f83018461221f565b92915050565b61225081612118565b811461225a575f80fd5b50565b5f8135905061226b81612247565b92915050565b5f6020828403121561228657612285611f70565b5b5f6122938482850161225d565b91505092915050565b6122a581611f97565b82525050565b5f6020820190506122be5f83018461229c565b92915050565b5f602082840312156122d9576122d8611f70565b5b5f6122e6848285016120c6565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6123298261203f565b810181811067ffffffffffffffff82111715612348576123476122f3565b5b80604052505050565b5f61235a611f67565b90506123668282612320565b919050565b5f67ffffffffffffffff821115612385576123846122f3565b5b602082029050602081019050919050565b5f80fd5b5f6123ac6123a78461236b565b612351565b905080838252602082019050602084028301858111156123cf576123ce612396565b5b835b818110156123f857806123e48882611fbe565b8452602084019350506020810190506123d1565b5050509392505050565b5f82601f830112612416576124156122ef565b5b813561242684826020860161239a565b91505092915050565b5f6020828403121561244457612443611f70565b5b5f82013567ffffffffffffffff81111561246157612460611f74565b5b61246d84828501612402565b91505092915050565b5f806040838503121561248c5761248b611f70565b5b5f61249985828601611fbe565b92505060206124aa85828601611fbe565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6124e8602083612007565b91506124f3826124b4565b602082019050919050565b5f6020820190508181035f830152612515816124dc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061256057607f821691505b6020821081036125735761257261251c565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6125b0826120a7565b91506125bb836120a7565b92508282039050818111156125d3576125d2612579565b5b92915050565b5f8160011c9050919050565b5f808291508390505b600185111561262e5780860481111561260a57612609612579565b5b60018516156126195780820291505b8081029050612627856125d9565b94506125ee565b94509492505050565b5f826126465760019050612701565b81612653575f9050612701565b81600181146126695760028114612673576126a2565b6001915050612701565b60ff84111561268557612684612579565b5b8360020a91508482111561269c5761269b612579565b5b50612701565b5060208310610133831016604e8410600b84101617156126d75782820a9050838111156126d2576126d1612579565b5b612701565b6126e484848460016125e5565b925090508184048111156126fb576126fa612579565b5b81810290505b9392505050565b5f612712826120a7565b915061271d83612213565b925061274a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612637565b905092915050565b5f61275c826120a7565b9150612767836120a7565b9250828202612775816120a7565b9150828204841483151761278c5761278b612579565b5b5092915050565b5f61279d826120a7565b91506127a8836120a7565b92508282019050808211156127c0576127bf612579565b5b92915050565b7f5a65726f2061646472657373206e6f742076616c6964210000000000000000005f82015250565b5f6127fa601783612007565b9150612805826127c6565b602082019050919050565b5f6020820190508181035f830152612827816127ee565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612865826120a7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361289757612896612579565b5b600182019050919050565b7f417070726f76652066726f6d20746865207a65726f20616464726573730000005f82015250565b5f6128d6601d83612007565b91506128e1826128a2565b602082019050919050565b5f6020820190508181035f830152612903816128ca565b9050919050565b7f417070726f766520746f20746865207a65726f206164647265737300000000005f82015250565b5f61293e601b83612007565b91506129498261290a565b602082019050919050565b5f6020820190508181035f83015261296b81612932565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6129cc602983612007565b91506129d782612972565b604082019050919050565b5f6020820190508181035f8301526129f9816129c0565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612a5a602683612007565b9150612a6582612a00565b604082019050919050565b5f6020820190508181035f830152612a8781612a4e565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f612ac2601383612007565b9150612acd82612a8e565b602082019050919050565b5f6020820190508181035f830152612aef81612ab6565b9050919050565b7f596f752061726520657863656564696e67206d61784275794c696d69740000005f82015250565b5f612b2a601d83612007565b9150612b3582612af6565b602082019050919050565b5f6020820190508181035f830152612b5781612b1e565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d69745f82015250565b5f612b92602083612007565b9150612b9d82612b5e565b602082019050919050565b5f6020820190508181035f830152612bbf81612b86565b9050919050565b7f596f752061726520657863656564696e67206d617853656c6c4c696d697400005f82015250565b5f612bfa601e83612007565b9150612c0582612bc6565b602082019050919050565b5f6020820190508181035f830152612c2781612bee565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612c65826120a7565b9150612c70836120a7565b925082612c8057612c7f612c2e565b5b828204905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f612cbf601f83612007565b9150612cca82612c8b565b602082019050919050565b5f6020820190508181035f830152612cec81612cb3565b905091905056fea2646970667358221220cd8032e1bce65adeedef85a8ba78fe06526cfe92ca3bdfb9f9ee6befbeff853c64736f6c63430008140033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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