ETH Price: $4,160.76 (+8.44%)

Contract

0xffd228Cf984815B071CEB20C368Dc98a122B56a7
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve235590242025-10-12 3:42:1127 hrs ago1760240531IN
0xffd228Cf...a122B56a7
0 ETH0.000056341.19406399
Approve234885792025-10-02 7:21:3510 days ago1759389695IN
0xffd228Cf...a122B56a7
0 ETH0.000017890.37933401
Approve234754872025-09-30 11:23:5912 days ago1759231439IN
0xffd228Cf...a122B56a7
0 ETH0.000059371.25827198
Approve234675422025-09-29 8:45:2313 days ago1759135523IN
0xffd228Cf...a122B56a7
0 ETH0.000007960.1688193
Approve233562502025-09-13 19:30:2329 days ago1757791823IN
0xffd228Cf...a122B56a7
0 ETH0.000009730.2062591
Approve233554112025-09-13 16:42:1129 days ago1757781731IN
0xffd228Cf...a122B56a7
0 ETH0.000018890.40041134
Approve233499132025-09-12 22:16:4730 days ago1757715407IN
0xffd228Cf...a122B56a7
0 ETH0.000060781.28818282
Approve233457282025-09-12 8:16:4730 days ago1757665007IN
0xffd228Cf...a122B56a7
0 ETH0.000016770.35541282
Approve233225362025-09-09 2:25:3534 days ago1757384735IN
0xffd228Cf...a122B56a7
0 ETH0.000011920.2526618
Approve233218032025-09-08 23:58:1134 days ago1757375891IN
0xffd228Cf...a122B56a7
0 ETH0.000011660.2471445
Approve233211912025-09-08 21:55:2334 days ago1757368523IN
0xffd228Cf...a122B56a7
0 ETH0.000012330.26149299
Approve233203142025-09-08 18:58:3534 days ago1757357915IN
0xffd228Cf...a122B56a7
0 ETH0.000038531.54741263
Approve233198762025-09-08 17:30:4734 days ago1757352647IN
0xffd228Cf...a122B56a7
0 ETH0.00004210.89237098
Approve233167812025-09-08 7:07:5934 days ago1757315279IN
0xffd228Cf...a122B56a7
0 ETH0.000006250.23258333
Approve233167642025-09-08 7:04:3534 days ago1757315075IN
0xffd228Cf...a122B56a7
0 ETH0.000006420.25814498
Approve233167592025-09-08 7:03:3534 days ago1757315015IN
0xffd228Cf...a122B56a7
0 ETH0.000011860.25307132
Approve233150832025-09-08 1:26:3535 days ago1757294795IN
0xffd228Cf...a122B56a7
0 ETH0.0000120.25597919
Approve233147352025-09-08 0:16:4735 days ago1757290607IN
0xffd228Cf...a122B56a7
0 ETH0.000010450.22148473
Approve233147302025-09-08 0:15:4735 days ago1757290547IN
0xffd228Cf...a122B56a7
0 ETH0.0000070.25960608
Approve233147252025-09-08 0:14:4735 days ago1757290487IN
0xffd228Cf...a122B56a7
0 ETH0.00000650.24110256
Approve233146942025-09-08 0:08:3535 days ago1757290115IN
0xffd228Cf...a122B56a7
0 ETH0.000006720.24920551
Approve233146882025-09-08 0:07:2335 days ago1757290043IN
0xffd228Cf...a122B56a7
0 ETH0.000012040.25683566
Approve233137712025-09-07 21:02:1135 days ago1757278931IN
0xffd228Cf...a122B56a7
0 ETH0.000006910.2777423
Approve233137652025-09-07 21:00:5935 days ago1757278859IN
0xffd228Cf...a122B56a7
0 ETH0.000014160.30213331
Approve233137372025-09-07 20:55:2335 days ago1757278523IN
0xffd228Cf...a122B56a7
0 ETH0.000006980.2805587
View all transactions

Latest 3 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer232999132025-09-05 22:32:5937 days ago1757111579
0xffd228Cf...a122B56a7
0.00021935 ETH
Transfer232999132025-09-05 22:32:5937 days ago1757111579
0xffd228Cf...a122B56a7
0.00021935 ETH
Add Liquidity ET...232986842025-09-05 18:25:4737 days ago1757096747
0xffd228Cf...a122B56a7
1 ETH
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:
Yaku

Compiler Version
v0.8.30+commit.73712a01

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : Token.sol
/*
    Name: Yakushima Inu
    Symbol: YAKU

    The rarest inu from Japan. Now live on Ethereum!

    https://yakushimainu.dog
    https://x.com/YakushimaInu
    https://t.me/YakushimaInu_erc
*/

// SPDX-License-Identifier: MIT

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 owner() public view returns (address) {
        return _owner;
    }

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

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

}

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 Yaku is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedTax;
    address payable private TaxWallet;

    uint256 private initialTaxOnBuy=0;
    uint256 private initialTaxOnSell=0;
    uint256 private finalTaxOnBuy=0;
    uint256 private finalTaxOnSell=0;
    uint256 private reduceTaxOnBuyAt=10;
    uint256 private reduceTaxOnSellAt=10;
    uint256 private noSwapBefore=30;
    uint256 private transfer_Tax=0;
    uint256 private buys_Count=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690_000_000 * 10**_decimals;
    string private constant _name = unicode"Yakushima Inu";
    string private constant _symbol = unicode"YAKU";
    uint256 public maxTxAmt =  100 * (_tTotal/100);
    uint256 public maxSizeOfWallet =  100 * (_tTotal/100);
    uint256 public _tTaxSwapThreshold =  1 * (_tTotal/1000);
    uint256 public _tTaxMaxSwap = 1 * (_tTotal/100);

    uint256 public _BOWEOOI;
    address public _FOBNEWO;
    bool public _FBVUWEBU;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sells_Count = 0;
    uint256 private lastBlockOfSell = 0;
    event MaxTxAmountUpdated(uint maxTxAmt);
    event transfer_TaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () payable {
        TaxWallet = payable(0xFaCf3Aa635aa5F9bd6B0b559c9a8C62da616F7F9);
        _balances[address(this)] = _tTotal;
        _isExcludedTax[owner()] = true;
        _isExcludedTax[address(this)] = true;
        _isExcludedTax[TaxWallet] = true;

        emit Transfer(address(0), address(this), _tTotal);
    }

    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 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 transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {

            if(buys_Count==0){
                taxAmount = amount.mul((buys_Count>reduceTaxOnBuyAt)?finalTaxOnBuy:initialTaxOnBuy).div(100);
            }
            if(buys_Count>0){
                taxAmount = amount.mul(transfer_Tax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedTax[to] ) {
                require(amount <= maxTxAmt, "Exceeds the maxTxAmt.");
                require(balanceOf(to) + amount <= maxSizeOfWallet, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((buys_Count>reduceTaxOnBuyAt)?finalTaxOnBuy:initialTaxOnBuy).div(100);
                buys_Count++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((buys_Count>reduceTaxOnSellAt)?finalTaxOnSell:initialTaxOnSell).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && buys_Count > noSwapBefore) {
                if (block.number > lastBlockOfSell) {
                    sells_Count = 0;
                }
                require(sells_Count < 9, "Only 8 sells per block!");
                if(contractTokenBalance > 0)
                    swapTokensForEth(min(amount, min(contractTokenBalance, _tTaxMaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance >= 0) {
                    sendETHToFee(address(this).balance);
                }
                sells_Count++;
                lastBlockOfSell = block.number;
            }
        }

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


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

    function swapTokensForEth(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 removeLimits() public onlyOwner{
        maxTxAmt = _tTotal;
        maxSizeOfWallet=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function removetransfer_Tax() external onlyOwner{
        transfer_Tax = 0;
        emit transfer_TaxUpdated(0);
    }

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

    function enableTrading() 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)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function clearRandomStuckEth() external onlyOwner {
        payable(msg.sender).transfer(address(this).balance);
    }

    function manualSwap() external {
        require(_msgSender()==TaxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function manualsend() external {
        require(_msgSender()==TaxWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
}

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":false,"internalType":"uint256","name":"maxTxAmt","type":"uint256"}],"name":"MaxTxAmountUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"transfer_TaxUpdated","type":"event"},{"inputs":[],"name":"_BOWEOOI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_FBVUWEBU","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_FOBNEWO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTaxMaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTaxSwapThreshold","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","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearRandomStuckEth","outputs":[],"stateMutability":"nonpayable","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":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxSizeOfWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removetransfer_Tax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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"}]

60806040525f6005555f6006555f6007555f600855600a600955600a8055601e600b555f600c555f600d5560646009600a61003a91906105fb565b6461f313f88061004a9190610645565b61005491906106b3565b60646100609190610645565b600e5560646009600a61007391906105fb565b6461f313f8806100839190610645565b61008d91906106b3565b60646100999190610645565b600f556103e86009600a6100ad91906105fb565b6461f313f8806100bd9190610645565b6100c791906106b3565b60016100d39190610645565b60105560646009600a6100e691906105fb565b6461f313f8806100f69190610645565b61010091906106b3565b600161010c9190610645565b6011555f6015806101000a81548160ff0219169083151502179055505f601560166101000a81548160ff0219169083151502179055505f6016555f6017555f61015961045c60201b60201c565b9050805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073facf3aa635aa5f9bd6b0b559c9a8c62da616f7f960045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61025791906105fb565b6461f313f8806102679190610645565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6102bb61046360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a61043291906105fb565b6461f313f8806104429190610645565b60405161044f91906106f2565b60405180910390a361070b565b5f33905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b600185111561050c578086048111156104e8576104e761048a565b5b60018516156104f75780820291505b8081029050610505856104b7565b94506104cc565b94509492505050565b5f8261052457600190506105df565b81610531575f90506105df565b8160018114610547576002811461055157610580565b60019150506105df565b60ff8411156105635761056261048a565b5b8360020a91508482111561057a5761057961048a565b5b506105df565b5060208310610133831016604e8410600b84101617156105b55782820a9050838111156105b0576105af61048a565b5b6105df565b6105c284848460016104c3565b925090508184048111156105d9576105d861048a565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f610605826105e6565b9150610610836105ef565b925061063d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610515565b905092915050565b5f61064f826105e6565b915061065a836105e6565b9250828202610668816105e6565b9150828204841483151761067f5761067e61048a565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6106bd826105e6565b91506106c8836105e6565b9250826106d8576106d7610686565b5b828204905092915050565b6106ec816105e6565b82525050565b5f6020820190506107055f8301846106e3565b92915050565b613172806107185f395ff3fe60806040526004361061014e575f3560e01c8063715018a6116100b5578063a7b95c4a1161006e578063a7b95c4a146103f7578063a9059cbb14610421578063ac6d50d91461045d578063cf26efb314610487578063dd62ed3e146104b1578063e7bb9697146104ed57610155565b8063715018a614610337578063751039fc1461034d5780638a8c523c146103635780638ae52689146103795780638da5cb5b146103a357806395d89b41146103cd57610155565b80634e1ff6f6116101075780634e1ff6f61461026557806351bc3c851461028f578063544d14c9146102a5578063682a6194146102bb5780636fc3eaec146102e557806370a08231146102fb57610155565b806306fdde0314610159578063095ea7b31461018357806318160ddd146101bf57806323b872dd146101e9578063313ce5671461022557806333e37eaa1461024f57610155565b3661015557005b5f5ffd5b348015610164575f5ffd5b5061016d610517565b60405161017a9190612297565b60405180910390f35b34801561018e575f5ffd5b506101a960048036038101906101a49190612348565b610554565b6040516101b691906123a0565b60405180910390f35b3480156101ca575f5ffd5b506101d3610571565b6040516101e091906123c8565b60405180910390f35b3480156101f4575f5ffd5b5061020f600480360381019061020a91906123e1565b610595565b60405161021c91906123a0565b60405180910390f35b348015610230575f5ffd5b50610239610669565b604051610246919061244c565b60405180910390f35b34801561025a575f5ffd5b50610263610671565b005b348015610270575f5ffd5b5061027961074c565b60405161028691906123c8565b60405180910390f35b34801561029a575f5ffd5b506102a3610752565b005b3480156102b0575f5ffd5b506102b96107e9565b005b3480156102c6575f5ffd5b506102cf6108be565b6040516102dc91906123c8565b60405180910390f35b3480156102f0575f5ffd5b506102f96108c4565b005b348015610306575f5ffd5b50610321600480360381019061031c9190612465565b610933565b60405161032e91906123c8565b60405180910390f35b348015610342575f5ffd5b5061034b610979565b005b348015610358575f5ffd5b50610361610ac9565b005b34801561036e575f5ffd5b50610377610bfc565b005b348015610384575f5ffd5b5061038d611120565b60405161039a91906123c8565b60405180910390f35b3480156103ae575f5ffd5b506103b7611126565b6040516103c4919061249f565b60405180910390f35b3480156103d8575f5ffd5b506103e161114d565b6040516103ee9190612297565b60405180910390f35b348015610402575f5ffd5b5061040b61118a565b60405161041891906123c8565b60405180910390f35b34801561042c575f5ffd5b5061044760048036038101906104429190612348565b611190565b60405161045491906123a0565b60405180910390f35b348015610468575f5ffd5b506104716111ad565b60405161047e919061249f565b60405180910390f35b348015610492575f5ffd5b5061049b6111d2565b6040516104a891906123c8565b60405180910390f35b3480156104bc575f5ffd5b506104d760048036038101906104d291906124b8565b6111d8565b6040516104e491906123c8565b60405180910390f35b3480156104f8575f5ffd5b5061050161125a565b60405161050e91906123a0565b60405180910390f35b60606040518060400160405280600d81526020017f59616b757368696d6120496e7500000000000000000000000000000000000000815250905090565b5f61056761056061126d565b8484611274565b6001905092915050565b5f6009600a6105809190612652565b6461f313f880610590919061269c565b905090565b5f6105a1848484611437565b61065e846105ad61126d565b610659856040518060600160405280602881526020016131156028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61061061126d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d159092919063ffffffff16565b611274565b600190509392505050565b5f6009905090565b61067961126d565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fd90612727565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610749573d5f5f3e3d5ffd5b50565b60125481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661079261126d565b73ffffffffffffffffffffffffffffffffffffffff16146107b1575f5ffd5b5f6107bb30610933565b90505f8111156107cf576107ce81611d77565b5b5f4790505f8111156107e5576107e481611fe0565b5b5050565b6107f161126d565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461087e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087590612727565b60405180910390fd5b5f600c819055507f8be4ffeae333831c9a4cedccec341d797c590b065c9f48bc500c9f82f06cc6e95f6040516108b49190612787565b60405180910390a1565b600f5481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661090461126d565b73ffffffffffffffffffffffffffffffffffffffff1614610923575f5ffd5b5f47905061093081611fe0565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61098161126d565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0590612727565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ad161126d565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5590612727565b60405180910390fd5b6009600a610b6c9190612652565b6461f313f880610b7c919061269c565b600e819055506009600a610b909190612652565b6461f313f880610ba0919061269c565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610bd59190612652565b6461f313f880610be5919061269c565b604051610bf291906123c8565b60405180910390a1565b610c0461126d565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8890612727565b60405180910390fd5b601560149054906101000a900460ff1615610ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd8906127ea565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d7e3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d699190612652565b6461f313f880610d79919061269c565b611274565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610de8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e0c919061281c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e92573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eb6919061281c565b6040518363ffffffff1660e01b8152600401610ed3929190612847565b6020604051808303815f875af1158015610eef573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f13919061281c565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f9a30610933565b5f5f610fa4611126565b426040518863ffffffff1660e01b8152600401610fc69695949392919061286e565b60606040518083038185885af1158015610fe2573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061100791906128e1565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110a7929190612931565b6020604051808303815f875af11580156110c3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e79190612982565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b60115481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f59414b5500000000000000000000000000000000000000000000000000000000815250905090565b60105481565b5f6111a361119c61126d565b8484611437565b6001905092915050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b601360149054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d990612a1d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134790612aab565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161142a91906123c8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149c90612b39565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150a90612bc7565b60405180910390fd5b5f8111611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c90612c55565b60405180910390fd5b5f5f9050611561611126565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115cf575061159f611126565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a65575f600d540361161c57611619606461160b600954600d54116115f8576005546115fc565b6007545b8561204890919063ffffffff16565b6120bf90919063ffffffff16565b90505b5f600d5411156116515761164e6064611640600c548561204890919063ffffffff16565b6120bf90919063ffffffff16565b90505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116fa575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561174d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561184557600e54821115611797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178e90612cbd565b60405180910390fd5b600f54826117a485610933565b6117ae9190612cdb565b11156117ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e690612d58565b60405180910390fd5b61182b606461181d600954600d541161180a5760055461180e565b6007545b8561204890919063ffffffff16565b6120bf90919063ffffffff16565b9050600d5f81548092919061183f90612d76565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118cd57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119115761190e6064611900600a54600d54116118ed576006546118f1565b6008545b8561204890919063ffffffff16565b6120bf90919063ffffffff16565b90505b5f61191b30610933565b905060158054906101000a900460ff16158015611985575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561199d5750601560169054906101000a900460ff165b80156119ac5750600b54600d54115b15611a63576017544311156119c3575f6016819055505b600960165410611a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ff90612e07565b60405180910390fd5b5f811115611a2e57611a2d611a2884611a2384601154612108565b612108565b611d77565b5b5f4790505f8110611a4357611a4247611fe0565b5b60165f815480929190611a5590612d76565b919050555043601781905550505b505b5f811115611b6457611abd8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461212090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b5b91906123c8565b60405180910390a35b611bb48260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461217d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c57611c0b828461217d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461212090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611cfa848661217d90919063ffffffff16565b604051611d0791906123c8565b60405180910390a350505050565b5f838311158290611d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d539190612297565b60405180910390fd5b505f8385611d6a9190612e25565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611dad57611dac612e58565b5b604051908082528060200260200182016040528015611ddb5781602001602082028036833780820191505090505b50905030815f81518110611df257611df1612e85565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e96573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eba919061281c565b81600181518110611ece57611ecd612e85565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f343060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611274565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f96959493929190612f69565b5f604051808303815f87803b158015611fad575f5ffd5b505af1158015611fbf573d5f5f3e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612044573d5f5f3e3d5ffd5b5050565b5f5f8303612058575f90506120b9565b5f8284612065919061269c565b90508284826120749190612fee565b146120b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ab9061308e565b60405180910390fd5b809150505b92915050565b5f61210083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121c6565b905092915050565b5f8183116121165782612118565b815b905092915050565b5f5f828461212e9190612cdb565b905083811015612173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216a906130f6565b60405180910390fd5b8091505092915050565b5f6121be83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d15565b905092915050565b5f5f8311829061220c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122039190612297565b60405180910390fd5b505f838561221a9190612fee565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61226982612227565b6122738185612231565b9350612283818560208601612241565b61228c8161224f565b840191505092915050565b5f6020820190508181035f8301526122af818461225f565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122e4826122bb565b9050919050565b6122f4816122da565b81146122fe575f5ffd5b50565b5f8135905061230f816122eb565b92915050565b5f819050919050565b61232781612315565b8114612331575f5ffd5b50565b5f813590506123428161231e565b92915050565b5f5f6040838503121561235e5761235d6122b7565b5b5f61236b85828601612301565b925050602061237c85828601612334565b9150509250929050565b5f8115159050919050565b61239a81612386565b82525050565b5f6020820190506123b35f830184612391565b92915050565b6123c281612315565b82525050565b5f6020820190506123db5f8301846123b9565b92915050565b5f5f5f606084860312156123f8576123f76122b7565b5b5f61240586828701612301565b935050602061241686828701612301565b925050604061242786828701612334565b9150509250925092565b5f60ff82169050919050565b61244681612431565b82525050565b5f60208201905061245f5f83018461243d565b92915050565b5f6020828403121561247a576124796122b7565b5b5f61248784828501612301565b91505092915050565b612499816122da565b82525050565b5f6020820190506124b25f830184612490565b92915050565b5f5f604083850312156124ce576124cd6122b7565b5b5f6124db85828601612301565b92505060206124ec85828601612301565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b600185111561257857808604811115612554576125536124f6565b5b60018516156125635780820291505b808102905061257185612523565b9450612538565b94509492505050565b5f82612590576001905061264b565b8161259d575f905061264b565b81600181146125b357600281146125bd576125ec565b600191505061264b565b60ff8411156125cf576125ce6124f6565b5b8360020a9150848211156125e6576125e56124f6565b5b5061264b565b5060208310610133831016604e8410600b84101617156126215782820a90508381111561261c5761261b6124f6565b5b61264b565b61262e848484600161252f565b92509050818404811115612645576126446124f6565b5b81810290505b9392505050565b5f61265c82612315565b915061266783612431565b92506126947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612581565b905092915050565b5f6126a682612315565b91506126b183612315565b92508282026126bf81612315565b915082820484148315176126d6576126d56124f6565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612711602083612231565b915061271c826126dd565b602082019050919050565b5f6020820190508181035f83015261273e81612705565b9050919050565b5f819050919050565b5f819050919050565b5f61277161276c61276784612745565b61274e565b612315565b9050919050565b61278181612757565b82525050565b5f60208201905061279a5f830184612778565b92915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6127d4601783612231565b91506127df826127a0565b602082019050919050565b5f6020820190508181035f830152612801816127c8565b9050919050565b5f81519050612816816122eb565b92915050565b5f60208284031215612831576128306122b7565b5b5f61283e84828501612808565b91505092915050565b5f60408201905061285a5f830185612490565b6128676020830184612490565b9392505050565b5f60c0820190506128815f830189612490565b61288e60208301886123b9565b61289b6040830187612778565b6128a86060830186612778565b6128b56080830185612490565b6128c260a08301846123b9565b979650505050505050565b5f815190506128db8161231e565b92915050565b5f5f5f606084860312156128f8576128f76122b7565b5b5f612905868287016128cd565b9350506020612916868287016128cd565b9250506040612927868287016128cd565b9150509250925092565b5f6040820190506129445f830185612490565b61295160208301846123b9565b9392505050565b61296181612386565b811461296b575f5ffd5b50565b5f8151905061297c81612958565b92915050565b5f60208284031215612997576129966122b7565b5b5f6129a48482850161296e565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a07602483612231565b9150612a12826129ad565b604082019050919050565b5f6020820190508181035f830152612a34816129fb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a95602283612231565b9150612aa082612a3b565b604082019050919050565b5f6020820190508181035f830152612ac281612a89565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612b23602583612231565b9150612b2e82612ac9565b604082019050919050565b5f6020820190508181035f830152612b5081612b17565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612bb1602383612231565b9150612bbc82612b57565b604082019050919050565b5f6020820190508181035f830152612bde81612ba5565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c3f602983612231565b9150612c4a82612be5565b604082019050919050565b5f6020820190508181035f830152612c6c81612c33565b9050919050565b7f4578636565647320746865206d61785478416d742e00000000000000000000005f82015250565b5f612ca7601583612231565b9150612cb282612c73565b602082019050919050565b5f6020820190508181035f830152612cd481612c9b565b9050919050565b5f612ce582612315565b9150612cf083612315565b9250828201905080821115612d0857612d076124f6565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612d42601a83612231565b9150612d4d82612d0e565b602082019050919050565b5f6020820190508181035f830152612d6f81612d36565b9050919050565b5f612d8082612315565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612db257612db16124f6565b5b600182019050919050565b7f4f6e6c7920382073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612df1601783612231565b9150612dfc82612dbd565b602082019050919050565b5f6020820190508181035f830152612e1e81612de5565b9050919050565b5f612e2f82612315565b9150612e3a83612315565b9250828203905081811115612e5257612e516124f6565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ee4816122da565b82525050565b5f612ef58383612edb565b60208301905092915050565b5f602082019050919050565b5f612f1782612eb2565b612f218185612ebc565b9350612f2c83612ecc565b805f5b83811015612f5c578151612f438882612eea565b9750612f4e83612f01565b925050600181019050612f2f565b5085935050505092915050565b5f60a082019050612f7c5f8301886123b9565b612f896020830187612778565b8181036040830152612f9b8186612f0d565b9050612faa6060830185612490565b612fb760808301846123b9565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612ff882612315565b915061300383612315565b92508261301357613012612fc1565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613078602183612231565b91506130838261301e565b604082019050919050565b5f6020820190508181035f8301526130a58161306c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6130e0601b83612231565b91506130eb826130ac565b602082019050919050565b5f6020820190508181035f83015261310d816130d4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220981c2f329bfc1f9e310a78f9dcba9b5849533a0f60352deb3d99f19d12abb74664736f6c634300081e0033

Deployed Bytecode

0x60806040526004361061014e575f3560e01c8063715018a6116100b5578063a7b95c4a1161006e578063a7b95c4a146103f7578063a9059cbb14610421578063ac6d50d91461045d578063cf26efb314610487578063dd62ed3e146104b1578063e7bb9697146104ed57610155565b8063715018a614610337578063751039fc1461034d5780638a8c523c146103635780638ae52689146103795780638da5cb5b146103a357806395d89b41146103cd57610155565b80634e1ff6f6116101075780634e1ff6f61461026557806351bc3c851461028f578063544d14c9146102a5578063682a6194146102bb5780636fc3eaec146102e557806370a08231146102fb57610155565b806306fdde0314610159578063095ea7b31461018357806318160ddd146101bf57806323b872dd146101e9578063313ce5671461022557806333e37eaa1461024f57610155565b3661015557005b5f5ffd5b348015610164575f5ffd5b5061016d610517565b60405161017a9190612297565b60405180910390f35b34801561018e575f5ffd5b506101a960048036038101906101a49190612348565b610554565b6040516101b691906123a0565b60405180910390f35b3480156101ca575f5ffd5b506101d3610571565b6040516101e091906123c8565b60405180910390f35b3480156101f4575f5ffd5b5061020f600480360381019061020a91906123e1565b610595565b60405161021c91906123a0565b60405180910390f35b348015610230575f5ffd5b50610239610669565b604051610246919061244c565b60405180910390f35b34801561025a575f5ffd5b50610263610671565b005b348015610270575f5ffd5b5061027961074c565b60405161028691906123c8565b60405180910390f35b34801561029a575f5ffd5b506102a3610752565b005b3480156102b0575f5ffd5b506102b96107e9565b005b3480156102c6575f5ffd5b506102cf6108be565b6040516102dc91906123c8565b60405180910390f35b3480156102f0575f5ffd5b506102f96108c4565b005b348015610306575f5ffd5b50610321600480360381019061031c9190612465565b610933565b60405161032e91906123c8565b60405180910390f35b348015610342575f5ffd5b5061034b610979565b005b348015610358575f5ffd5b50610361610ac9565b005b34801561036e575f5ffd5b50610377610bfc565b005b348015610384575f5ffd5b5061038d611120565b60405161039a91906123c8565b60405180910390f35b3480156103ae575f5ffd5b506103b7611126565b6040516103c4919061249f565b60405180910390f35b3480156103d8575f5ffd5b506103e161114d565b6040516103ee9190612297565b60405180910390f35b348015610402575f5ffd5b5061040b61118a565b60405161041891906123c8565b60405180910390f35b34801561042c575f5ffd5b5061044760048036038101906104429190612348565b611190565b60405161045491906123a0565b60405180910390f35b348015610468575f5ffd5b506104716111ad565b60405161047e919061249f565b60405180910390f35b348015610492575f5ffd5b5061049b6111d2565b6040516104a891906123c8565b60405180910390f35b3480156104bc575f5ffd5b506104d760048036038101906104d291906124b8565b6111d8565b6040516104e491906123c8565b60405180910390f35b3480156104f8575f5ffd5b5061050161125a565b60405161050e91906123a0565b60405180910390f35b60606040518060400160405280600d81526020017f59616b757368696d6120496e7500000000000000000000000000000000000000815250905090565b5f61056761056061126d565b8484611274565b6001905092915050565b5f6009600a6105809190612652565b6461f313f880610590919061269c565b905090565b5f6105a1848484611437565b61065e846105ad61126d565b610659856040518060600160405280602881526020016131156028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61061061126d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d159092919063ffffffff16565b611274565b600190509392505050565b5f6009905090565b61067961126d565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fd90612727565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610749573d5f5f3e3d5ffd5b50565b60125481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661079261126d565b73ffffffffffffffffffffffffffffffffffffffff16146107b1575f5ffd5b5f6107bb30610933565b90505f8111156107cf576107ce81611d77565b5b5f4790505f8111156107e5576107e481611fe0565b5b5050565b6107f161126d565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461087e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087590612727565b60405180910390fd5b5f600c819055507f8be4ffeae333831c9a4cedccec341d797c590b065c9f48bc500c9f82f06cc6e95f6040516108b49190612787565b60405180910390a1565b600f5481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661090461126d565b73ffffffffffffffffffffffffffffffffffffffff1614610923575f5ffd5b5f47905061093081611fe0565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61098161126d565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0590612727565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ad161126d565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5590612727565b60405180910390fd5b6009600a610b6c9190612652565b6461f313f880610b7c919061269c565b600e819055506009600a610b909190612652565b6461f313f880610ba0919061269c565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610bd59190612652565b6461f313f880610be5919061269c565b604051610bf291906123c8565b60405180910390a1565b610c0461126d565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8890612727565b60405180910390fd5b601560149054906101000a900460ff1615610ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd8906127ea565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d7e3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d699190612652565b6461f313f880610d79919061269c565b611274565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610de8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e0c919061281c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e92573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eb6919061281c565b6040518363ffffffff1660e01b8152600401610ed3929190612847565b6020604051808303815f875af1158015610eef573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f13919061281c565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f9a30610933565b5f5f610fa4611126565b426040518863ffffffff1660e01b8152600401610fc69695949392919061286e565b60606040518083038185885af1158015610fe2573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061100791906128e1565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110a7929190612931565b6020604051808303815f875af11580156110c3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e79190612982565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b60115481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f59414b5500000000000000000000000000000000000000000000000000000000815250905090565b60105481565b5f6111a361119c61126d565b8484611437565b6001905092915050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b601360149054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d990612a1d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134790612aab565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161142a91906123c8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149c90612b39565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150a90612bc7565b60405180910390fd5b5f8111611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c90612c55565b60405180910390fd5b5f5f9050611561611126565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115cf575061159f611126565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a65575f600d540361161c57611619606461160b600954600d54116115f8576005546115fc565b6007545b8561204890919063ffffffff16565b6120bf90919063ffffffff16565b90505b5f600d5411156116515761164e6064611640600c548561204890919063ffffffff16565b6120bf90919063ffffffff16565b90505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116fa575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561174d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561184557600e54821115611797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178e90612cbd565b60405180910390fd5b600f54826117a485610933565b6117ae9190612cdb565b11156117ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e690612d58565b60405180910390fd5b61182b606461181d600954600d541161180a5760055461180e565b6007545b8561204890919063ffffffff16565b6120bf90919063ffffffff16565b9050600d5f81548092919061183f90612d76565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118cd57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119115761190e6064611900600a54600d54116118ed576006546118f1565b6008545b8561204890919063ffffffff16565b6120bf90919063ffffffff16565b90505b5f61191b30610933565b905060158054906101000a900460ff16158015611985575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561199d5750601560169054906101000a900460ff165b80156119ac5750600b54600d54115b15611a63576017544311156119c3575f6016819055505b600960165410611a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ff90612e07565b60405180910390fd5b5f811115611a2e57611a2d611a2884611a2384601154612108565b612108565b611d77565b5b5f4790505f8110611a4357611a4247611fe0565b5b60165f815480929190611a5590612d76565b919050555043601781905550505b505b5f811115611b6457611abd8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461212090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b5b91906123c8565b60405180910390a35b611bb48260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461217d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c57611c0b828461217d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461212090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611cfa848661217d90919063ffffffff16565b604051611d0791906123c8565b60405180910390a350505050565b5f838311158290611d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d539190612297565b60405180910390fd5b505f8385611d6a9190612e25565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611dad57611dac612e58565b5b604051908082528060200260200182016040528015611ddb5781602001602082028036833780820191505090505b50905030815f81518110611df257611df1612e85565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e96573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eba919061281c565b81600181518110611ece57611ecd612e85565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f343060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611274565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f96959493929190612f69565b5f604051808303815f87803b158015611fad575f5ffd5b505af1158015611fbf573d5f5f3e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612044573d5f5f3e3d5ffd5b5050565b5f5f8303612058575f90506120b9565b5f8284612065919061269c565b90508284826120749190612fee565b146120b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ab9061308e565b60405180910390fd5b809150505b92915050565b5f61210083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121c6565b905092915050565b5f8183116121165782612118565b815b905092915050565b5f5f828461212e9190612cdb565b905083811015612173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216a906130f6565b60405180910390fd5b8091505092915050565b5f6121be83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d15565b905092915050565b5f5f8311829061220c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122039190612297565b60405180910390fd5b505f838561221a9190612fee565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61226982612227565b6122738185612231565b9350612283818560208601612241565b61228c8161224f565b840191505092915050565b5f6020820190508181035f8301526122af818461225f565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122e4826122bb565b9050919050565b6122f4816122da565b81146122fe575f5ffd5b50565b5f8135905061230f816122eb565b92915050565b5f819050919050565b61232781612315565b8114612331575f5ffd5b50565b5f813590506123428161231e565b92915050565b5f5f6040838503121561235e5761235d6122b7565b5b5f61236b85828601612301565b925050602061237c85828601612334565b9150509250929050565b5f8115159050919050565b61239a81612386565b82525050565b5f6020820190506123b35f830184612391565b92915050565b6123c281612315565b82525050565b5f6020820190506123db5f8301846123b9565b92915050565b5f5f5f606084860312156123f8576123f76122b7565b5b5f61240586828701612301565b935050602061241686828701612301565b925050604061242786828701612334565b9150509250925092565b5f60ff82169050919050565b61244681612431565b82525050565b5f60208201905061245f5f83018461243d565b92915050565b5f6020828403121561247a576124796122b7565b5b5f61248784828501612301565b91505092915050565b612499816122da565b82525050565b5f6020820190506124b25f830184612490565b92915050565b5f5f604083850312156124ce576124cd6122b7565b5b5f6124db85828601612301565b92505060206124ec85828601612301565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b600185111561257857808604811115612554576125536124f6565b5b60018516156125635780820291505b808102905061257185612523565b9450612538565b94509492505050565b5f82612590576001905061264b565b8161259d575f905061264b565b81600181146125b357600281146125bd576125ec565b600191505061264b565b60ff8411156125cf576125ce6124f6565b5b8360020a9150848211156125e6576125e56124f6565b5b5061264b565b5060208310610133831016604e8410600b84101617156126215782820a90508381111561261c5761261b6124f6565b5b61264b565b61262e848484600161252f565b92509050818404811115612645576126446124f6565b5b81810290505b9392505050565b5f61265c82612315565b915061266783612431565b92506126947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612581565b905092915050565b5f6126a682612315565b91506126b183612315565b92508282026126bf81612315565b915082820484148315176126d6576126d56124f6565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612711602083612231565b915061271c826126dd565b602082019050919050565b5f6020820190508181035f83015261273e81612705565b9050919050565b5f819050919050565b5f819050919050565b5f61277161276c61276784612745565b61274e565b612315565b9050919050565b61278181612757565b82525050565b5f60208201905061279a5f830184612778565b92915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6127d4601783612231565b91506127df826127a0565b602082019050919050565b5f6020820190508181035f830152612801816127c8565b9050919050565b5f81519050612816816122eb565b92915050565b5f60208284031215612831576128306122b7565b5b5f61283e84828501612808565b91505092915050565b5f60408201905061285a5f830185612490565b6128676020830184612490565b9392505050565b5f60c0820190506128815f830189612490565b61288e60208301886123b9565b61289b6040830187612778565b6128a86060830186612778565b6128b56080830185612490565b6128c260a08301846123b9565b979650505050505050565b5f815190506128db8161231e565b92915050565b5f5f5f606084860312156128f8576128f76122b7565b5b5f612905868287016128cd565b9350506020612916868287016128cd565b9250506040612927868287016128cd565b9150509250925092565b5f6040820190506129445f830185612490565b61295160208301846123b9565b9392505050565b61296181612386565b811461296b575f5ffd5b50565b5f8151905061297c81612958565b92915050565b5f60208284031215612997576129966122b7565b5b5f6129a48482850161296e565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a07602483612231565b9150612a12826129ad565b604082019050919050565b5f6020820190508181035f830152612a34816129fb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a95602283612231565b9150612aa082612a3b565b604082019050919050565b5f6020820190508181035f830152612ac281612a89565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612b23602583612231565b9150612b2e82612ac9565b604082019050919050565b5f6020820190508181035f830152612b5081612b17565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612bb1602383612231565b9150612bbc82612b57565b604082019050919050565b5f6020820190508181035f830152612bde81612ba5565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c3f602983612231565b9150612c4a82612be5565b604082019050919050565b5f6020820190508181035f830152612c6c81612c33565b9050919050565b7f4578636565647320746865206d61785478416d742e00000000000000000000005f82015250565b5f612ca7601583612231565b9150612cb282612c73565b602082019050919050565b5f6020820190508181035f830152612cd481612c9b565b9050919050565b5f612ce582612315565b9150612cf083612315565b9250828201905080821115612d0857612d076124f6565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612d42601a83612231565b9150612d4d82612d0e565b602082019050919050565b5f6020820190508181035f830152612d6f81612d36565b9050919050565b5f612d8082612315565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612db257612db16124f6565b5b600182019050919050565b7f4f6e6c7920382073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612df1601783612231565b9150612dfc82612dbd565b602082019050919050565b5f6020820190508181035f830152612e1e81612de5565b9050919050565b5f612e2f82612315565b9150612e3a83612315565b9250828203905081811115612e5257612e516124f6565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ee4816122da565b82525050565b5f612ef58383612edb565b60208301905092915050565b5f602082019050919050565b5f612f1782612eb2565b612f218185612ebc565b9350612f2c83612ecc565b805f5b83811015612f5c578151612f438882612eea565b9750612f4e83612f01565b925050600181019050612f2f565b5085935050505092915050565b5f60a082019050612f7c5f8301886123b9565b612f896020830187612778565b8181036040830152612f9b8186612f0d565b9050612faa6060830185612490565b612fb760808301846123b9565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612ff882612315565b915061300383612315565b92508261301357613012612fc1565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613078602183612231565b91506130838261301e565b604082019050919050565b5f6020820190508181035f8301526130a58161306c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6130e0601b83612231565b91506130eb826130ac565b602082019050919050565b5f6020820190508181035f83015261310d816130d4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220981c2f329bfc1f9e310a78f9dcba9b5849533a0f60352deb3d99f19d12abb74664736f6c634300081e0033

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.