ETH Price: $3,475.61 (+4.25%)

Contract

0x4ed257678Fc4E76df9642a416b223729fdEDBEFd
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer214294262024-12-18 12:30:116 days ago1734525011IN
0x4ed25767...9fdEDBEFd
0 ETH0.0011402918.59065449
Transfer214289322024-12-18 10:50:476 days ago1734519047IN
0x4ed25767...9fdEDBEFd
0 ETH0.0011972919.51615204
Transfer214287872024-12-18 10:21:356 days ago1734517295IN
0x4ed25767...9fdEDBEFd
0 ETH0.0015575319.86021019
Enable Trading214287822024-12-18 10:20:236 days ago1734517223IN
0x4ed25767...9fdEDBEFd
0 ETH0.0005728719.89912655
Transfer214287632024-12-18 10:16:356 days ago1734516995IN
0x4ed25767...9fdEDBEFd
0 ETH0.0006285519.87269428
Transfer212781912024-11-27 9:27:3527 days ago1732699655IN
0x4ed25767...9fdEDBEFd
0 ETH0.000272838.6788045
Transfer212781832024-11-27 9:25:5927 days ago1732699559IN
0x4ed25767...9fdEDBEFd
0 ETH0.000257958.20240468
Transfer Ownersh...190136562024-01-15 17:04:59344 days ago1705338299IN
0x4ed25767...9fdEDBEFd
0 ETH0.0008135928.51712431
Transfer190136462024-01-15 17:02:59344 days ago1705338179IN
0x4ed25767...9fdEDBEFd
0 ETH0.0022081532.96146583

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
StrikeX

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 6 : StrikeX.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

import "./interface/ERC20.sol";
import "./interface/IDEXRouter.sol";
import "./interface/IDEXFactory.sol";

import "./library/Ownable.sol";
import "./utils/SafeMath.sol";

contract StrikeX is ERC20, Ownable {

    using SafeMath for uint256;
    address uniswapV2RouterAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "StrikeX";
    string constant _symbol = "STRX";
    uint8 constant _decimals = 18;

    uint256 public _totalSupply = 1_000_000_000 * (10**_decimals);
    uint256 public _maxWalletAmount = _totalSupply;

    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) _allowances;
    mapping(address => bool) isFeeExempt;
    mapping(address => bool) isTxLimitExempt;

    address public teamAddress;
    address public marketingAddress;
    address public buybackAddress;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    bool public TradingOpen = false;

    bool public feesEnabled = true;
    uint256 public swapThreshold = (_totalSupply / 1000) * 2;
    bool inSwap;

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

    constructor() Ownable(msg.sender) {

        router = IDEXRouter(uniswapV2RouterAdress);
        pair = IDEXFactory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        
        teamAddress = payable(0xB68D389bf73Ee9fdACb0df1fbf69CD20151F1F41); 
        buybackAddress = payable(0x7E48d044C6D58F71bde05A9B7Af560a5EB99f27C);
        marketingAddress = payable(msg.sender);

        isFeeExempt[_owner] = true;
        isFeeExempt[teamAddress] = true;
        isFeeExempt[address(this)] = true;

        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[teamAddress] = true;
        isTxLimitExempt[address(this)] = true;

        _balances[_owner] = _totalSupply;

        emit Transfer(address(0), _owner, _totalSupply);
    }

    function enableTrading() public onlyOwner {  
        require(!TradingOpen,"trading is already open");
        TradingOpen = true;
    }

    function updateTeamAddress(address newTeamAddress) public onlyOwner {  
        teamAddress = payable(newTeamAddress);
    }

    function updateBuyBackAddress(address newBuyBackAddress) public onlyOwner {  
        buybackAddress = payable(newBuyBackAddress);
    }
    
    function name() external pure override returns (string memory) {
        return _name;
    }

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

    function decimals() external pure override returns (uint8) {
        return _decimals;
    }

    function symbol() external pure override returns (string memory) {
        return _symbol;
    }

    function getOwner() external view override returns (address) {
        return owner;
    }

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

    function shouldSwapBack() internal view returns (bool) {
        return
            msg.sender != pair &&
            !inSwap &&
            swapEnabled &&
            _balances[address(this)] >= swapThreshold;
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    /**
        Internal functions
    **/

    function takeFee(address sender, address recipient, uint256 amount)
        internal
        returns (uint256)
    {
        uint256 taxFee;

        if(recipient == pair) {
            taxFee = 3;
        }

        uint256 feeAmount = amount.mul(taxFee).div(100);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function swapBack() internal swapping {
        uint256 contractTokenBalance = swapThreshold;
        uint256 amountToSwap = contractTokenBalance;

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountFees = address(this).balance;

        uint256 ethForMarketing = amountFees.div(2);
        payable(marketingAddress).transfer(ethForMarketing);

        uint256 ethForTeam = amountFees.div(3);
        payable(teamAddress).transfer(ethForTeam);

        uint256 ethForBuyBack = amountFees.div(6);
        payable(buybackAddress).transfer(ethForBuyBack);

    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){
            require(TradingOpen,"Trading not open yet");
        }

        if (recipient != pair && recipient != DEAD) {
            require(
                isTxLimitExempt[recipient] ||
                    _balances[recipient] + amount <= _maxWalletAmount,
                "Transfer amount exceeds the bag size."
            );
        }

        if (shouldSwapBack()) {
            swapBack();
        }

        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );

        uint256 amountReceived = feesEnabled && shouldTakeFee(sender)
            ? takeFee(sender, recipient, amount)
            : amount;

        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    receive() external payable {}
}

File 2 of 6 : ERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

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

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function getOwner() external view returns (address);

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

File 3 of 6 : IDEXRouter.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

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

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

File 4 of 6 : IDEXFactory.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;


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

File 5 of 6 : Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

abstract contract Ownable {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER");
        _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

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

    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }

    event OwnershipTransferred(address owner);
}

File 6 of 6 : SafeMath.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

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":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"buybackAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","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":"pure","type":"function"},{"inputs":[],"name":"teamAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newBuyBackAddress","type":"address"}],"name":"updateBuyBackAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTeamAddress","type":"address"}],"name":"updateTeamAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620000ac919062000ac9565b633b9aca00620000bd919062000b1a565b6003556003546004556001600d60146101000a81548160ff0219169083151502179055506000600d60156101000a81548160ff0219169083151502179055506001600d60166101000a81548160ff02191690831515021790555060026103e86003546200012b919062000b94565b62000137919062000b1a565b600e553480156200014757600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000281919062000c36565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200030a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000330919062000c36565b306040518363ffffffff1660e01b81526004016200035092919062000c79565b6020604051808303816000875af115801562000370573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000396919062000c36565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905073b68d389bf73ee9fdacb0df1fbf69cd20151f1f41600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737e48d044c6d58f71bde05a9b7af560a5eb99f27c600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000920919062000cb7565b60405180910390a35062000cd4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009bd578086048111156200099557620009946200092f565b5b6001851615620009a55780820291505b8081029050620009b5856200095e565b945062000975565b94509492505050565b600082620009d8576001905062000aab565b81620009e8576000905062000aab565b816001811462000a01576002811462000a0c5762000a42565b600191505062000aab565b60ff84111562000a215762000a206200092f565b5b8360020a91508482111562000a3b5762000a3a6200092f565b5b5062000aab565b5060208310610133831016604e8410600b841016171562000a7c5782820a90508381111562000a765762000a756200092f565b5b62000aab565b62000a8b84848460016200096b565b9250905081840481111562000aa55762000aa46200092f565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000ad68262000ab2565b915062000ae38362000abc565b925062000b127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009c6565b905092915050565b600062000b278262000ab2565b915062000b348362000ab2565b925082820262000b448162000ab2565b9150828204841483151762000b5e5762000b5d6200092f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000ba18262000ab2565b915062000bae8362000ab2565b92508262000bc15762000bc062000b65565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bfe8262000bd1565b9050919050565b62000c108162000bf1565b811462000c1c57600080fd5b50565b60008151905062000c308162000c05565b92915050565b60006020828403121562000c4f5762000c4e62000bcc565b5b600062000c5f8482850162000c1f565b91505092915050565b62000c738162000bf1565b82525050565b600060408201905062000c90600083018562000c68565b62000c9f602083018462000c68565b9392505050565b62000cb18162000ab2565b82525050565b600060208201905062000cce600083018462000ca6565b92915050565b612cda8062000ce46000396000f3fe6080604052600436106101a05760003560e01c806370a08231116100ec578063a64e4f8a1161008a578063cc2fbd6611610064578063cc2fbd66146105b7578063dd62ed3e146105e2578063f2fde38b1461061f578063f887ea4014610648576101a7565b8063a64e4f8a14610524578063a8aa1b311461054f578063a9059cbb1461057a576101a7565b80638a8c523c116100c65780638a8c523c1461048e5780638ae1cf22146104a557806395d89b41146104ce578063a5ece941146104f9576101a7565b806370a082311461040f578063715018a61461044c578063893d20e814610463576101a7565b80631c75f08511610159578063313ce56711610133578063313ce567146103635780633eaaf86b1461038e5780636c0a24eb146103b95780636ddd1713146103e4576101a7565b80631c75f085146102be57806323b872dd146102e95780632f54bf6e14610326576101a7565b80630445b667146101ac57806306fdde03146101d757806308fd3d0514610202578063095ea7b31461022d57806314eb76ac1461026a57806318160ddd14610293576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610673565b6040516101ce91906120ef565b60405180910390f35b3480156101e357600080fd5b506101ec610679565b6040516101f9919061219a565b60405180910390f35b34801561020e57600080fd5b506102176106b6565b60405161022491906121d7565b60405180910390f35b34801561023957600080fd5b50610254600480360381019061024f9190612281565b6106c9565b60405161026191906121d7565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c91906122c1565b6107bb565b005b34801561029f57600080fd5b506102a8610847565b6040516102b591906120ef565b60405180910390f35b3480156102ca57600080fd5b506102d3610851565b6040516102e091906122fd565b60405180910390f35b3480156102f557600080fd5b50610310600480360381019061030b9190612318565b610877565b60405161031d91906121d7565b60405180910390f35b34801561033257600080fd5b5061034d600480360381019061034891906122c1565b610a77565b60405161035a91906121d7565b60405180910390f35b34801561036f57600080fd5b50610378610ad0565b6040516103859190612387565b60405180910390f35b34801561039a57600080fd5b506103a3610ad9565b6040516103b091906120ef565b60405180910390f35b3480156103c557600080fd5b506103ce610adf565b6040516103db91906120ef565b60405180910390f35b3480156103f057600080fd5b506103f9610ae5565b60405161040691906121d7565b60405180910390f35b34801561041b57600080fd5b50610436600480360381019061043191906122c1565b610af8565b60405161044391906120ef565b60405180910390f35b34801561045857600080fd5b50610461610b41565b005b34801561046f57600080fd5b50610478610c04565b60405161048591906122fd565b60405180910390f35b34801561049a57600080fd5b506104a3610c2d565b005b3480156104b157600080fd5b506104cc60048036038101906104c791906122c1565b610ce2565b005b3480156104da57600080fd5b506104e3610d6e565b6040516104f0919061219a565b60405180910390f35b34801561050557600080fd5b5061050e610dab565b60405161051b91906122fd565b60405180910390f35b34801561053057600080fd5b50610539610dd1565b60405161054691906121d7565b60405180910390f35b34801561055b57600080fd5b50610564610de4565b60405161057191906122fd565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c9190612281565b610e0a565b6040516105ae91906121d7565b60405180910390f35b3480156105c357600080fd5b506105cc610e1f565b6040516105d991906122fd565b60405180910390f35b3480156105ee57600080fd5b50610609600480360381019061060491906123a2565b610e45565b60405161061691906120ef565b60405180910390f35b34801561062b57600080fd5b50610646600480360381019061064191906122c1565b610ecc565b005b34801561065457600080fd5b5061065d610ffd565b60405161066a9190612441565b60405180910390f35b600e5481565b60606040518060400160405280600781526020017f537472696b655800000000000000000000000000000000000000000000000000815250905090565b600d60159054906101000a900460ff1681565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107a991906120ef565b60405180910390a36001905092915050565b6107c433610a77565b610803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fa906124a8565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600354905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610a63576109e2826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110239092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610a6e848484611087565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b60035481565b60045481565b600d60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b4a33610a77565b610b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b80906124a8565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610bfa91906122fd565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c3633610a77565b610c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6c906124a8565b60405180910390fd5b600d60159054906101000a900460ff1615610cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbc90612514565b60405180910390fd5b6001600d60156101000a81548160ff021916908315150217905550565b610ceb33610a77565b610d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d21906124a8565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606040518060400160405280600481526020017f5354525800000000000000000000000000000000000000000000000000000000815250905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60169054906101000a900460ff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610e17338484611087565b905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ed533610a77565b610f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0b906124a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7a906125a6565b60405180910390fd5b7f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051610fb291906122fd565b60405180910390a1806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600083831115829061106b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611062919061219a565b60405180910390fd5b506000838561107a91906125f5565b9050809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036110f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ee9061269b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115d9061272d565b60405180910390fd5b600082116111a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a0906127bf565b60405180910390fd5b600f60009054906101000a900460ff16156111d0576111c9848484611682565b905061167b565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112745750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156112c957600d60159054906101000a900460ff166112c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bf9061282b565b60405180910390fd5b5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113755750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561145e57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061141e575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461141b919061284b565b11155b61145d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611454906128f1565b60405180910390fd5b5b611466611855565b156114745761147361192c565b5b6114fd826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110239092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600d60169054906101000a900460ff168015611563575061156285611d11565b5b61156d5782611579565b611578858585611d68565b5b90506115cd81600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f0790919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161166d91906120ef565b60405180910390a360019150505b9392505050565b600061170d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110239092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117a282600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f0790919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161184291906120ef565b60405180910390a3600190509392505050565b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156118c25750600f60009054906101000a900460ff16155b80156118da5750600d60149054906101000a900460ff165b80156119275750600e54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001600f60006101000a81548160ff0219169083151502179055506000600e54905060008190506000600267ffffffffffffffff8111156119705761196f612911565b5b60405190808252806020026020018201604052801561199e5781602001602082028036833780820191505090505b50905030816000815181106119b6576119b5612940565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a819190612984565b81600181518110611a9557611a94612940565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b33959493929190612aaa565b600060405180830381600087803b158015611b4d57600080fd5b505af1158015611b61573d6000803e3d6000fd5b5050505060004790506000611b80600283611f6590919063ffffffff16565b9050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611bea573d6000803e3d6000fd5b506000611c01600384611f6590919063ffffffff16565b9050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c6b573d6000803e3d6000fd5b506000611c82600685611f6590919063ffffffff16565b9050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611cec573d6000803e3d6000fd5b50505050505050506000600f60006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611dc557600390505b6000611ded6064611ddf8487611faf90919063ffffffff16565b611f6590919063ffffffff16565b9050611e4181600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f0790919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ee191906120ef565b60405180910390a3611efc818561202990919063ffffffff16565b925050509392505050565b6000808284611f16919061284b565b905083811015611f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5290612b50565b60405180910390fd5b8091505092915050565b6000611fa783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612073565b905092915050565b6000808303611fc15760009050612023565b60008284611fcf9190612b70565b9050828482611fde9190612be1565b1461201e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201590612c84565b60405180910390fd5b809150505b92915050565b600061206b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611023565b905092915050565b600080831182906120ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b1919061219a565b60405180910390fd5b50600083856120c99190612be1565b9050809150509392505050565b6000819050919050565b6120e9816120d6565b82525050565b600060208201905061210460008301846120e0565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612144578082015181840152602081019050612129565b60008484015250505050565b6000601f19601f8301169050919050565b600061216c8261210a565b6121768185612115565b9350612186818560208601612126565b61218f81612150565b840191505092915050565b600060208201905081810360008301526121b48184612161565b905092915050565b60008115159050919050565b6121d1816121bc565b82525050565b60006020820190506121ec60008301846121c8565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612222826121f7565b9050919050565b61223281612217565b811461223d57600080fd5b50565b60008135905061224f81612229565b92915050565b61225e816120d6565b811461226957600080fd5b50565b60008135905061227b81612255565b92915050565b60008060408385031215612298576122976121f2565b5b60006122a685828601612240565b92505060206122b78582860161226c565b9150509250929050565b6000602082840312156122d7576122d66121f2565b5b60006122e584828501612240565b91505092915050565b6122f781612217565b82525050565b600060208201905061231260008301846122ee565b92915050565b600080600060608486031215612331576123306121f2565b5b600061233f86828701612240565b935050602061235086828701612240565b92505060406123618682870161226c565b9150509250925092565b600060ff82169050919050565b6123818161236b565b82525050565b600060208201905061239c6000830184612378565b92915050565b600080604083850312156123b9576123b86121f2565b5b60006123c785828601612240565b92505060206123d885828601612240565b9150509250929050565b6000819050919050565b60006124076124026123fd846121f7565b6123e2565b6121f7565b9050919050565b6000612419826123ec565b9050919050565b600061242b8261240e565b9050919050565b61243b81612420565b82525050565b60006020820190506124566000830184612432565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612492600683612115565b915061249d8261245c565b602082019050919050565b600060208201905081810360008301526124c181612485565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006124fe601783612115565b9150612509826124c8565b602082019050919050565b6000602082019050818103600083015261252d816124f1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612590602683612115565b915061259b82612534565b604082019050919050565b600060208201905081810360008301526125bf81612583565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612600826120d6565b915061260b836120d6565b9250828203905081811115612623576126226125c6565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612685602583612115565b915061269082612629565b604082019050919050565b600060208201905081810360008301526126b481612678565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612717602383612115565b9150612722826126bb565b604082019050919050565b600060208201905081810360008301526127468161270a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006127a9602983612115565b91506127b48261274d565b604082019050919050565b600060208201905081810360008301526127d88161279c565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b6000612815601483612115565b9150612820826127df565b602082019050919050565b6000602082019050818103600083015261284481612808565b9050919050565b6000612856826120d6565b9150612861836120d6565b9250828201905080821115612879576128786125c6565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b60006128db602583612115565b91506128e68261287f565b604082019050919050565b6000602082019050818103600083015261290a816128ce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061297e81612229565b92915050565b60006020828403121561299a576129996121f2565b5b60006129a88482850161296f565b91505092915050565b6000819050919050565b60006129d66129d16129cc846129b1565b6123e2565b6120d6565b9050919050565b6129e6816129bb565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612a2181612217565b82525050565b6000612a338383612a18565b60208301905092915050565b6000602082019050919050565b6000612a57826129ec565b612a6181856129f7565b9350612a6c83612a08565b8060005b83811015612a9d578151612a848882612a27565b9750612a8f83612a3f565b925050600181019050612a70565b5085935050505092915050565b600060a082019050612abf60008301886120e0565b612acc60208301876129dd565b8181036040830152612ade8186612a4c565b9050612aed60608301856122ee565b612afa60808301846120e0565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612b3a601b83612115565b9150612b4582612b04565b602082019050919050565b60006020820190508181036000830152612b6981612b2d565b9050919050565b6000612b7b826120d6565b9150612b86836120d6565b9250828202612b94816120d6565b91508282048414831517612bab57612baa6125c6565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612bec826120d6565b9150612bf7836120d6565b925082612c0757612c06612bb2565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c6e602183612115565b9150612c7982612c12565b604082019050919050565b60006020820190508181036000830152612c9d81612c61565b905091905056fea2646970667358221220aa42c492fa3c8625e0d1efb22b15ac1a9e6ac5f0799491c7d56852e301bbcef764736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c806370a08231116100ec578063a64e4f8a1161008a578063cc2fbd6611610064578063cc2fbd66146105b7578063dd62ed3e146105e2578063f2fde38b1461061f578063f887ea4014610648576101a7565b8063a64e4f8a14610524578063a8aa1b311461054f578063a9059cbb1461057a576101a7565b80638a8c523c116100c65780638a8c523c1461048e5780638ae1cf22146104a557806395d89b41146104ce578063a5ece941146104f9576101a7565b806370a082311461040f578063715018a61461044c578063893d20e814610463576101a7565b80631c75f08511610159578063313ce56711610133578063313ce567146103635780633eaaf86b1461038e5780636c0a24eb146103b95780636ddd1713146103e4576101a7565b80631c75f085146102be57806323b872dd146102e95780632f54bf6e14610326576101a7565b80630445b667146101ac57806306fdde03146101d757806308fd3d0514610202578063095ea7b31461022d57806314eb76ac1461026a57806318160ddd14610293576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610673565b6040516101ce91906120ef565b60405180910390f35b3480156101e357600080fd5b506101ec610679565b6040516101f9919061219a565b60405180910390f35b34801561020e57600080fd5b506102176106b6565b60405161022491906121d7565b60405180910390f35b34801561023957600080fd5b50610254600480360381019061024f9190612281565b6106c9565b60405161026191906121d7565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c91906122c1565b6107bb565b005b34801561029f57600080fd5b506102a8610847565b6040516102b591906120ef565b60405180910390f35b3480156102ca57600080fd5b506102d3610851565b6040516102e091906122fd565b60405180910390f35b3480156102f557600080fd5b50610310600480360381019061030b9190612318565b610877565b60405161031d91906121d7565b60405180910390f35b34801561033257600080fd5b5061034d600480360381019061034891906122c1565b610a77565b60405161035a91906121d7565b60405180910390f35b34801561036f57600080fd5b50610378610ad0565b6040516103859190612387565b60405180910390f35b34801561039a57600080fd5b506103a3610ad9565b6040516103b091906120ef565b60405180910390f35b3480156103c557600080fd5b506103ce610adf565b6040516103db91906120ef565b60405180910390f35b3480156103f057600080fd5b506103f9610ae5565b60405161040691906121d7565b60405180910390f35b34801561041b57600080fd5b50610436600480360381019061043191906122c1565b610af8565b60405161044391906120ef565b60405180910390f35b34801561045857600080fd5b50610461610b41565b005b34801561046f57600080fd5b50610478610c04565b60405161048591906122fd565b60405180910390f35b34801561049a57600080fd5b506104a3610c2d565b005b3480156104b157600080fd5b506104cc60048036038101906104c791906122c1565b610ce2565b005b3480156104da57600080fd5b506104e3610d6e565b6040516104f0919061219a565b60405180910390f35b34801561050557600080fd5b5061050e610dab565b60405161051b91906122fd565b60405180910390f35b34801561053057600080fd5b50610539610dd1565b60405161054691906121d7565b60405180910390f35b34801561055b57600080fd5b50610564610de4565b60405161057191906122fd565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c9190612281565b610e0a565b6040516105ae91906121d7565b60405180910390f35b3480156105c357600080fd5b506105cc610e1f565b6040516105d991906122fd565b60405180910390f35b3480156105ee57600080fd5b50610609600480360381019061060491906123a2565b610e45565b60405161061691906120ef565b60405180910390f35b34801561062b57600080fd5b50610646600480360381019061064191906122c1565b610ecc565b005b34801561065457600080fd5b5061065d610ffd565b60405161066a9190612441565b60405180910390f35b600e5481565b60606040518060400160405280600781526020017f537472696b655800000000000000000000000000000000000000000000000000815250905090565b600d60159054906101000a900460ff1681565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107a991906120ef565b60405180910390a36001905092915050565b6107c433610a77565b610803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fa906124a8565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600354905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610a63576109e2826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110239092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610a6e848484611087565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b60035481565b60045481565b600d60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b4a33610a77565b610b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b80906124a8565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610bfa91906122fd565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c3633610a77565b610c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6c906124a8565b60405180910390fd5b600d60159054906101000a900460ff1615610cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbc90612514565b60405180910390fd5b6001600d60156101000a81548160ff021916908315150217905550565b610ceb33610a77565b610d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d21906124a8565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606040518060400160405280600481526020017f5354525800000000000000000000000000000000000000000000000000000000815250905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60169054906101000a900460ff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610e17338484611087565b905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ed533610a77565b610f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0b906124a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7a906125a6565b60405180910390fd5b7f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051610fb291906122fd565b60405180910390a1806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600083831115829061106b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611062919061219a565b60405180910390fd5b506000838561107a91906125f5565b9050809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036110f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ee9061269b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115d9061272d565b60405180910390fd5b600082116111a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a0906127bf565b60405180910390fd5b600f60009054906101000a900460ff16156111d0576111c9848484611682565b905061167b565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112745750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156112c957600d60159054906101000a900460ff166112c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bf9061282b565b60405180910390fd5b5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113755750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561145e57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061141e575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461141b919061284b565b11155b61145d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611454906128f1565b60405180910390fd5b5b611466611855565b156114745761147361192c565b5b6114fd826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110239092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600d60169054906101000a900460ff168015611563575061156285611d11565b5b61156d5782611579565b611578858585611d68565b5b90506115cd81600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f0790919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161166d91906120ef565b60405180910390a360019150505b9392505050565b600061170d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110239092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117a282600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f0790919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161184291906120ef565b60405180910390a3600190509392505050565b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156118c25750600f60009054906101000a900460ff16155b80156118da5750600d60149054906101000a900460ff165b80156119275750600e54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001600f60006101000a81548160ff0219169083151502179055506000600e54905060008190506000600267ffffffffffffffff8111156119705761196f612911565b5b60405190808252806020026020018201604052801561199e5781602001602082028036833780820191505090505b50905030816000815181106119b6576119b5612940565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a819190612984565b81600181518110611a9557611a94612940565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b33959493929190612aaa565b600060405180830381600087803b158015611b4d57600080fd5b505af1158015611b61573d6000803e3d6000fd5b5050505060004790506000611b80600283611f6590919063ffffffff16565b9050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611bea573d6000803e3d6000fd5b506000611c01600384611f6590919063ffffffff16565b9050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c6b573d6000803e3d6000fd5b506000611c82600685611f6590919063ffffffff16565b9050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611cec573d6000803e3d6000fd5b50505050505050506000600f60006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611dc557600390505b6000611ded6064611ddf8487611faf90919063ffffffff16565b611f6590919063ffffffff16565b9050611e4181600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f0790919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ee191906120ef565b60405180910390a3611efc818561202990919063ffffffff16565b925050509392505050565b6000808284611f16919061284b565b905083811015611f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5290612b50565b60405180910390fd5b8091505092915050565b6000611fa783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612073565b905092915050565b6000808303611fc15760009050612023565b60008284611fcf9190612b70565b9050828482611fde9190612be1565b1461201e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201590612c84565b60405180910390fd5b809150505b92915050565b600061206b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611023565b905092915050565b600080831182906120ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b1919061219a565b60405180910390fd5b50600083856120c99190612be1565b9050809150509392505050565b6000819050919050565b6120e9816120d6565b82525050565b600060208201905061210460008301846120e0565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612144578082015181840152602081019050612129565b60008484015250505050565b6000601f19601f8301169050919050565b600061216c8261210a565b6121768185612115565b9350612186818560208601612126565b61218f81612150565b840191505092915050565b600060208201905081810360008301526121b48184612161565b905092915050565b60008115159050919050565b6121d1816121bc565b82525050565b60006020820190506121ec60008301846121c8565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612222826121f7565b9050919050565b61223281612217565b811461223d57600080fd5b50565b60008135905061224f81612229565b92915050565b61225e816120d6565b811461226957600080fd5b50565b60008135905061227b81612255565b92915050565b60008060408385031215612298576122976121f2565b5b60006122a685828601612240565b92505060206122b78582860161226c565b9150509250929050565b6000602082840312156122d7576122d66121f2565b5b60006122e584828501612240565b91505092915050565b6122f781612217565b82525050565b600060208201905061231260008301846122ee565b92915050565b600080600060608486031215612331576123306121f2565b5b600061233f86828701612240565b935050602061235086828701612240565b92505060406123618682870161226c565b9150509250925092565b600060ff82169050919050565b6123818161236b565b82525050565b600060208201905061239c6000830184612378565b92915050565b600080604083850312156123b9576123b86121f2565b5b60006123c785828601612240565b92505060206123d885828601612240565b9150509250929050565b6000819050919050565b60006124076124026123fd846121f7565b6123e2565b6121f7565b9050919050565b6000612419826123ec565b9050919050565b600061242b8261240e565b9050919050565b61243b81612420565b82525050565b60006020820190506124566000830184612432565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612492600683612115565b915061249d8261245c565b602082019050919050565b600060208201905081810360008301526124c181612485565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006124fe601783612115565b9150612509826124c8565b602082019050919050565b6000602082019050818103600083015261252d816124f1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612590602683612115565b915061259b82612534565b604082019050919050565b600060208201905081810360008301526125bf81612583565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612600826120d6565b915061260b836120d6565b9250828203905081811115612623576126226125c6565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612685602583612115565b915061269082612629565b604082019050919050565b600060208201905081810360008301526126b481612678565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612717602383612115565b9150612722826126bb565b604082019050919050565b600060208201905081810360008301526127468161270a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006127a9602983612115565b91506127b48261274d565b604082019050919050565b600060208201905081810360008301526127d88161279c565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b6000612815601483612115565b9150612820826127df565b602082019050919050565b6000602082019050818103600083015261284481612808565b9050919050565b6000612856826120d6565b9150612861836120d6565b9250828201905080821115612879576128786125c6565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b60006128db602583612115565b91506128e68261287f565b604082019050919050565b6000602082019050818103600083015261290a816128ce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061297e81612229565b92915050565b60006020828403121561299a576129996121f2565b5b60006129a88482850161296f565b91505092915050565b6000819050919050565b60006129d66129d16129cc846129b1565b6123e2565b6120d6565b9050919050565b6129e6816129bb565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612a2181612217565b82525050565b6000612a338383612a18565b60208301905092915050565b6000602082019050919050565b6000612a57826129ec565b612a6181856129f7565b9350612a6c83612a08565b8060005b83811015612a9d578151612a848882612a27565b9750612a8f83612a3f565b925050600181019050612a70565b5085935050505092915050565b600060a082019050612abf60008301886120e0565b612acc60208301876129dd565b8181036040830152612ade8186612a4c565b9050612aed60608301856122ee565b612afa60808301846120e0565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612b3a601b83612115565b9150612b4582612b04565b602082019050919050565b60006020820190508181036000830152612b6981612b2d565b9050919050565b6000612b7b826120d6565b9150612b86836120d6565b9250828202612b94816120d6565b91508282048414831517612bab57612baa6125c6565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612bec826120d6565b9150612bf7836120d6565b925082612c0757612c06612bb2565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c6e602183612115565b9150612c7982612c12565b604082019050919050565b60006020820190508181036000830152612c9d81612c61565b905091905056fea2646970667358221220aa42c492fa3c8625e0d1efb22b15ac1a9e6ac5f0799491c7d56852e301bbcef764736f6c63430008130033

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.