ETH Price: $2,279.17 (+8.64%)

Contract

0x1664B5A868DFe54F0591B2df2D3c0FC9BeED5eE3
 

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
Hodl Tokens72651962019-02-25 8:19:382576 days ago1551082778IN
0x1664B5A8...9BeED5eE3
0 ETH0.0046408812
Speed Up72516222019-02-22 4:19:332579 days ago1550809173IN
0x1664B5A8...9BeED5eE3
0 ETH0.00022365.3

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
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:
ldoh

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-02-22
*/

pragma solidity ^0.4.25;
pragma experimental ABIEncoderV2;

// Contract 01

contract OwnableContract {    
    event onTransferOwnership(address newOwner);
	address superOwner; 
	
    constructor() public { 
        superOwner = msg.sender;
    }
    modifier onlyOwner() {
        require(msg.sender == superOwner);
        _;
    } 
	
    function viewSuperOwner() private view returns (address owner) {
        return superOwner;
    }
      
    function changeOwner(address newOwner) onlyOwner public {
        require(newOwner != superOwner);
        
        superOwner = newOwner;
        
        emit onTransferOwnership(superOwner);
    }
}

// Contract 02

contract BlockableContract is OwnableContract {
    
    event onBlockHODLs(bool status);
 
    bool public blockedContract;
    
    constructor() public { 
        blockedContract = false;  
    }
    
    modifier contractActive() {
        require(!blockedContract);
        _;
    } 
    
    function doBlockContract() onlyOwner public {
        blockedContract = true;
        
        emit onBlockHODLs(blockedContract);
    }
    
    function unBlockContract() onlyOwner public {
        blockedContract = false;
        
        emit onBlockHODLs(blockedContract);
    }
}

// Contract 03

contract ldoh is BlockableContract {
    
    event onStoreProfileHash(address indexed hodler, string profileHashed);
    event onHodlTokens(address indexed hodler, address indexed tokenAddress, string tokenSymbol, uint256 amount, uint256 endtime);
    event onClaimTokens(address indexed hodler, address indexed tokenAddress, string tokenSymbol, uint256 amount, uint256 endtime);
    event onReturnAll(uint256 returned);

    // Variables //
	
    address internal AXPRtoken;
    mapping(address => string) private profileHashed; 	// User Prime 

	// * = New ** = Undeveloped
	
	// Default Setting
	
	uint256 public  hodlingTime;
	uint256 public 	comission;
    uint256 public  allTimeHighPrice;
	uint256 public  percent 				= 3;        	// * 3% from deposit
	uint256 private constant affiliate 		= 12;        	// * 12% from deposit
	uint256 private constant cashback 		= 16;        	// * 16% from deposit
	uint256 private constant totalreceive 	= 88;        	// * 88% from deposit	
    uint256 private constant seconds30days 	= 2592000;  	// *
	
	bool public speed;

    struct Safe {
        uint256 id;
        uint256 amount;
        uint256 endtime;
        address user;
        address tokenAddress;
		string tokenSymbol;	
		uint256 amountbalance; 			// * --- > 88% from deposit
		uint256 cashbackbalance; 		// * --- > 16% from deposit
		uint256 lasttime; 				// * --- > Now
		uint256 percentage; 			// * --- > return tokens every month
		uint256 percentagereceive; 		// * --- > 0 %
		uint256 tokenreceive; 			// * --- > 0 Token
		uint256 affiliateprofit; 		// **
		uint256 affiliatebalance; 		// **
		address referrer; 				// **

    }
    
    //safes variables
  
    mapping(address => uint256[]) 	private _userSafes; 		// * --- > Useless (Private)
    mapping(uint256 => Safe) 		private _safes; 			// Struct safe
    uint256 						private _currentIndex; 		// Id Number
    uint256 						public 	_countSafes; 	    // Total All User	
    mapping(address => uint256) 	public 	_totalSaved; 		// Token Balance 
	
    //dev owner variables
    mapping(address => uint256) 	private _systemReserves;    // Token Balance Reserve
    address[] 						public 	_listedReserves;
    
    //constructor
   
    constructor() public {
        
        AXPRtoken 		= 0xC39E626A04C5971D770e319760D7926502975e47;
        
        hodlingTime 	= 365 days;
        _currentIndex 	= 1;
        comission 		= 5;
    }
    
	
// Total Function = 12	
	
// Function 01 - Fallback Function To Receive Donation In Eth
    
    function () public payable {
        require(msg.value > 0);
        
        _systemReserves[0x0] = add(_systemReserves[0x0], msg.value);
    }


// Function 02 - Hodl Token
	
    function HodlTokens(address tokenAddress, uint256 amount) public contractActive {
        require(tokenAddress != 0x0);
        require(amount > 0);

          
        ERC20Interface token = ERC20Interface(tokenAddress);
        
        require(token.transferFrom(msg.sender, address(this), amount));
		
		    uint256 affiliatecomission 		= mul(amount, affiliate) / 100; 	// *			
            uint256 data_amountbalance 		= sub(amount, affiliatecomission); 	// * 
			uint256 data_cashbackbalance 	= mul(amount, cashback) / 100; 		// *			 
			  		  
		// Insert to Database  
			 	  
		_userSafes[msg.sender].push(_currentIndex);
		_safes[_currentIndex] = 

		Safe(

		_currentIndex, amount, now + hodlingTime, msg.sender, tokenAddress, token.symbol(), data_amountbalance, data_cashbackbalance, now, percent, 0, 0, 0, 0, 0xA15C7Ebe1f07CaF6bFF097D8a589fb8AC49Ae5B3);
				
		
		// Update Token Balance, Current Index, CountSafes
		
        _totalSaved[tokenAddress] = add(_totalSaved[tokenAddress], amount);        
        _currentIndex++;
        _countSafes++;
        
        emit onHodlTokens(msg.sender, tokenAddress, token.symbol(), amount, now + hodlingTime);
    }
	
	
// Function 03 - Withdraw Token
	
    function ClaimTokens(address tokenAddress, uint256 id) public {
        require(tokenAddress != 0x0);
        require(id != 0);        
        
        Safe storage s = _safes[id];
        require(s.user == msg.sender);
        
        RetireHodl(tokenAddress, id);
    }
    
    function RetireHodl(address tokenAddress, uint256 id) private {

        Safe storage s = _safes[id];
        
        require(s.id != 0);
        require(s.tokenAddress == tokenAddress);
        require(
                (tokenAddress == AXPRtoken && s.endtime < now ) ||
                    tokenAddress != AXPRtoken
                );

        uint256 eventAmount;
        address eventTokenAddress = s.tokenAddress;
        string memory eventTokenSymbol = s.tokenSymbol;
        
        if(s.endtime < now) // hodl complete
        {
            PayToken(s.user, s.tokenAddress, s.amountbalance);
            
            eventAmount = s.amountbalance;
		   _totalSaved[s.tokenAddress] = sub(_totalSaved[s.tokenAddress], s.amountbalance); // *
			
	    s.amountbalance = 0;
		
        }
        else // hodl still in progress (penalty fee applies), not for ABCD tokens
        {
			
				if (speed == true) {
				uint256 final_speed = 6;
				}
				else {
				final_speed = 3;
				}
			
			uint256 timeframe  = now - s.lasttime;
			uint256 realAmount = s.amount * final_speed / 100 * timeframe / seconds30days ;
          				
			uint256 newamountbalance = sub(s.amountbalance, realAmount);	 // *  	
            			
		s.amountbalance = newamountbalance;  // *
		s.lasttime = now;  // *

		
			uint256 tokenaffiliate = mul(s.amount, affiliate) / 100 ; // * 
			uint256 tokenreceived = s.amount - tokenaffiliate - newamountbalance;	  // * 				
			uint256 percentagereceived = tokenreceived / s.amount * 100;	  // *
		
		s.tokenreceive = tokenreceived; // *
		s.percentagereceive = percentagereceived; // *		
		_totalSaved[s.tokenAddress] = sub(_totalSaved[s.tokenAddress], realAmount); // *
		
		
	        PayToken(s.user, s.tokenAddress, realAmount);           
            eventAmount = realAmount;
				
		}
        
        emit onClaimTokens(msg.sender, eventTokenAddress, eventTokenSymbol, eventAmount, now);
    }    
    
	
// Function 04 - Store Comission From Unfinished Hodl
	
    function StoreComission(address tokenAddress, uint256 amount) private {
            
        _systemReserves[tokenAddress] = add(_systemReserves[tokenAddress], amount);
        
        bool isNew = true;
        for(uint256 i = 0; i < _listedReserves.length; i++) {
            if(_listedReserves[i] == tokenAddress) {
                isNew = false;
                break;
            }
        }         
        if(isNew) _listedReserves.push(tokenAddress); 
    }    
    
	
	
// Function 05 - Private Pay Token To Address
    
    function PayToken(address user, address tokenAddress, uint256 amount) private {
        
        ERC20Interface token = ERC20Interface(tokenAddress);
        
        require(token.balanceOf(address(this)) >= amount);
        token.transfer(user, amount);
    }   
    
	
// Function 06 - Delete Safe Values In Storage
    
    function DeleteSafe(Safe s) private {
        
        _totalSaved[s.tokenAddress] = sub(_totalSaved[s.tokenAddress], s.amount);
        delete _safes[s.id];
        
        uint256[] storage vector = _userSafes[msg.sender];
        uint256 size = vector.length; 
        for(uint256 i = 0; i < size; i++) {
            if(vector[i] == s.id) {
                vector[i] = vector[size-1];
                vector.length--;
                break;
            }
        } 
    }

	
// Function 07 - Get How Many Safes Has The User
    
    function GetUserSafesLength(address hodler) public view returns (uint256 length) {
        return _userSafes[hodler].length;
    }
    
	
// Function 08 - Get Safes Values
    
	function GetSafe(uint256 _id) public view
        returns (uint256 id, address user, address tokenAddress, uint256 amount, uint256 endtime, string tokenSymbol, uint256 amountbalance, uint256 lasttime, uint256 percentage, uint256 percentagereceive, uint256 tokenreceive, address referrer)
    {
        Safe storage s = _safes[_id];
        return(s.id, s.user, s.tokenAddress, s.amount, s.endtime, s.tokenSymbol, s.amountbalance, s.lasttime, s.percentage, s.percentagereceive, s.tokenreceive, s.referrer);
    }

// Function 09 - Get Contract's Balance
    
    function GetContractBalance() public view returns(uint256)
    {
        return address(this).balance;
    }   	

	
// Function 10 - Get Tokens Reserved For The Owner As Commission
    
    function GetTokenFees(address tokenAddress) private view returns (uint256 amount) {
        return _systemReserves[tokenAddress];
    }    
    
    
// * --- > Useless (Private)
// Function 11 - Store The Profile's Hash In The Blockchain
    
    function storeProfileHashed(string _profileHashed) private {
        profileHashed[msg.sender] = _profileHashed;        

        emit onStoreProfileHash(msg.sender, _profileHashed);
    }
    	
		
// * --- > Useless (Private)	
// Function 12 - Get User's Any Token Balance

    function GetHodlTokensBalance(address tokenAddress) private view returns (uint256 balance) {
        require(tokenAddress != 0x0);
        
        for(uint256 i = 1; i < _currentIndex; i++) {            
            Safe storage s = _safes[i];
            if(s.user == msg.sender && s.tokenAddress == tokenAddress)
                balance += s.amount;
        }
        return balance;
    }	
	
	
	
/////// ONLY CREATOR /////// 	
	
// Total Function = 10	
	
// 01 Retire Hodl Safe
    
    function OwnerRetireHodl(address tokenAddress, uint256 id) public onlyOwner {
        require(tokenAddress != 0x0);
        require(id != 0);
        
        RetireHodl(tokenAddress, id);
    }
    
	
// 02 Change Hodling Time
    
    function ChangeHodlingTime(uint256 newHodlingDays) onlyOwner public {
        require(newHodlingDays >= 60);
        
        hodlingTime = newHodlingDays * 1 days;
    }   
    
// 03 Change All Time High Price
    
    function ChangeAllTimeHighPrice(uint256 newAllTimeHighPrice) onlyOwner public {
        require(newAllTimeHighPrice > allTimeHighPrice);
        
        allTimeHighPrice = newAllTimeHighPrice;
    }              

	
// 04 Change Comission Value
    
    function ChangeComission(uint256 newComission) onlyOwner public {
        require(newComission <= 30);
        
        comission = newComission;
    }
    
// 05 Withdraw Token Fees By Address
    
    function WithdrawTokenFees(address tokenAddress) onlyOwner public {
        require(_systemReserves[tokenAddress] > 0);
        
        uint256 amount = _systemReserves[tokenAddress];
        _systemReserves[tokenAddress] = 0;
        
        ERC20Interface token = ERC20Interface(tokenAddress);
        
        require(token.balanceOf(address(this)) >= amount);
        token.transfer(msg.sender, amount);
    }

// 06 Withdraw All Eth And All Tokens Fees
    
    function WithdrawAllFees() onlyOwner public {
        
        // ether
        uint256 x = _systemReserves[0x0];
        if(x > 0 && x <= address(this).balance) {
            _systemReserves[0x0] = 0;
            msg.sender.transfer(_systemReserves[0x0]);
        }
        
        // tokens
        address ta;
        ERC20Interface token;
        for(uint256 i = 0; i < _listedReserves.length; i++) {
            ta = _listedReserves[i];
            if(_systemReserves[ta] > 0)
            { 
                x = _systemReserves[ta];
                _systemReserves[ta] = 0;
                
                token = ERC20Interface(ta);
                token.transfer(msg.sender, x);
            }
        }
        _listedReserves.length = 0; 
    }
    

// 07 - Withdraw Ether Received Through Fallback Function
    
    function WithdrawEth(uint256 amount) onlyOwner public {
        require(amount > 0); 
        require(address(this).balance >= amount); 
        
        msg.sender.transfer(amount);
    }

// 08 - Returns All Tokens Addresses With Fees
        
    function GetTokensAddressesWithFees() 
        onlyOwner public view 
        returns (address[], string[], uint256[])
    {
        uint256 length = _listedReserves.length;
        
        address[] memory tokenAddress = new address[](length);
        string[] memory tokenSymbol = new string[](length);
        uint256[] memory tokenFees = new uint256[](length);
        
        for (uint256 i = 0; i < length; i++) {
    
            tokenAddress[i] = _listedReserves[i];
            
            ERC20Interface token = ERC20Interface(tokenAddress[i]);
            
            tokenSymbol[i] = token.symbol();
            tokenFees[i] = GetTokenFees(tokenAddress[i]);
        }
        
        return (tokenAddress, tokenSymbol, tokenFees);
    }

	
// 09 - Return All Tokens To Their Respective Addresses
    
    function ReturnAllTokens(bool onlyAXPR) onlyOwner public
    {
        uint256 returned;

        for(uint256 i = 1; i < _currentIndex; i++) {            
            Safe storage s = _safes[i];
            if (s.id != 0) {
                if (
                    (onlyAXPR && s.tokenAddress == AXPRtoken) ||
                    !onlyAXPR
                    )
                {
                    PayToken(s.user, s.tokenAddress, s.amountbalance);
                    DeleteSafe(s);
                    
                    _countSafes--;
                    returned++;
                }
            }
        }

        emit onReturnAll(returned);
    }    
	
// 10 - Speed Setting

    function SpeedUp() onlyOwner public {
        speed = true;
    }
    
    function SpeedDown() onlyOwner public {
        speed = false;
    }

	
////////////////// ~~~~~~~~~~~~~~~ ////////////////// 	
	
	
	

    /**
    * SAFE MATH FUNCTIONS
    * 
    * @dev Multiplies two numbers, throws on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
        if (a == 0) {
            return 0;
        }
        c = a * b;
        assert(c / a == b);
        return c;
    }
    
    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        // uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return a / b;
    }
    
    /**
    * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }
    
    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
        c = a + b;
        assert(c >= a);
        return c;
    }
    
}

contract ERC20Interface {

    uint256 public totalSupply;
    uint256 public decimals;
    
    function symbol() public view returns (string);
    function balanceOf(address _owner) public view returns (uint256 balance);
    function transfer(address _to, uint256 _value) public returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
    function approve(address _spender, uint256 _value) public returns (bool success);
    function allowance(address _owner, address _spender) public view returns (uint256 remaining);

    // solhint-disable-next-line no-simple-event-func-name  
    event Transfer(address indexed _from, address indexed _to, uint256 _value); 
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"_listedReserves","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAllTimeHighPrice","type":"uint256"}],"name":"ChangeAllTimeHighPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"comission","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"doBlockContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint256"}],"name":"GetSafe","outputs":[{"name":"id","type":"uint256"},{"name":"user","type":"address"},{"name":"tokenAddress","type":"address"},{"name":"amount","type":"uint256"},{"name":"endtime","type":"uint256"},{"name":"tokenSymbol","type":"string"},{"name":"amountbalance","type":"uint256"},{"name":"lasttime","type":"uint256"},{"name":"percentage","type":"uint256"},{"name":"percentagereceive","type":"uint256"},{"name":"tokenreceive","type":"uint256"},{"name":"referrer","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"id","type":"uint256"}],"name":"ClaimTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"}],"name":"WithdrawTokenFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"onlyAXPR","type":"bool"}],"name":"ReturnAllTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"_totalSaved","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"percent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"blockedContract","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"SpeedUp","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newHodlingDays","type":"uint256"}],"name":"ChangeHodlingTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"SpeedDown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_countSafes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"WithdrawAllFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newComission","type":"uint256"}],"name":"ChangeComission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"WithdrawEth","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"GetTokensAddressesWithFees","outputs":[{"name":"","type":"address[]"},{"name":"","type":"string[]"},{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"speed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"id","type":"uint256"}],"name":"OwnerRetireHodl","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unBlockContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"hodler","type":"address"}],"name":"GetUserSafesLength","outputs":[{"name":"length","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"allTimeHighPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hodlingTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"amount","type":"uint256"}],"name":"HodlTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"GetContractBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"hodler","type":"address"},{"indexed":false,"name":"profileHashed","type":"string"}],"name":"onStoreProfileHash","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"hodler","type":"address"},{"indexed":true,"name":"tokenAddress","type":"address"},{"indexed":false,"name":"tokenSymbol","type":"string"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"endtime","type":"uint256"}],"name":"onHodlTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"hodler","type":"address"},{"indexed":true,"name":"tokenAddress","type":"address"},{"indexed":false,"name":"tokenSymbol","type":"string"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"endtime","type":"uint256"}],"name":"onClaimTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"returned","type":"uint256"}],"name":"onReturnAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"status","type":"bool"}],"name":"onBlockHODLs","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"onTransferOwnership","type":"event"}]

6080604052600360065534801561001557600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060146101000a81548160ff02191690831515021790555073c39e626a04c5971d770e319760d7926502975e47600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506301e133806003819055506001600a8190555060056004819055506136a3806100ef6000396000f30060806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631c019a52146101db578063365655f0146102185780633a4b4532146102415780633e8cc2731461026c57806347f849cd146102835780634d7f917f146102cb578063539a67bf146102f4578063650db56d1461031d578063666a73701461034657806370ba11131461038357806371ea29df146103ae57806376577bc4146103d957806379883bba146103f0578063851a4a951461041957806393002f021461043057806399f57e051461045b5780639aaa38a614610472578063a6f9dae11461049b578063b2a3fd05146104c4578063bbe316be146104ed578063c20906ac1461051a578063cfe7de0714610545578063d64ee8d21461056e578063d9d61a1014610585578063da546cb2146105c2578063e2afe3bb146105ed578063e61021e814610618578063f6d0bf2f14610641575b60003411151561017957600080fd5b6101ac600d60008073ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020543461066c565b600d60008073ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550005b3480156101e757600080fd5b5061020260048036036101fd91908101906130d0565b610688565b60405161020f91906132df565b60405180910390f35b34801561022457600080fd5b5061023f600480360361023a91908101906130d0565b6106c6565b005b34801561024d57600080fd5b5061025661073b565b60405161026391906133ff565b60405180910390f35b34801561027857600080fd5b50610281610741565b005b34801561028f57600080fd5b506102aa60048036036102a591908101906130d0565b6107ff565b6040516102c29c9b9a9998979695949392919061341a565b60405180910390f35b3480156102d757600080fd5b506102f260048036036102ed9190810190613001565b610988565b005b34801561030057600080fd5b5061031b60048036036103169190810190612fd8565b610a41565b005b34801561032957600080fd5b50610344600480360361033f919081019061303d565b610cdb565b005b34801561035257600080fd5b5061036d60048036036103689190810190612fd8565b6110df565b60405161037a91906133ff565b60405180910390f35b34801561038f57600080fd5b506103986110f7565b6040516103a591906133ff565b60405180910390f35b3480156103ba57600080fd5b506103c36110fd565b6040516103d091906133a6565b60405180910390f35b3480156103e557600080fd5b506103ee611110565b005b3480156103fc57600080fd5b50610417600480360361041291908101906130d0565b611188565b005b34801561042557600080fd5b5061042e611202565b005b34801561043c57600080fd5b5061044561127a565b60405161045291906133ff565b60405180910390f35b34801561046757600080fd5b50610470611280565b005b34801561047e57600080fd5b50610499600480360361049491908101906130d0565b6115c7565b005b3480156104a757600080fd5b506104c260048036036104bd9190810190612fd8565b61163c565b005b3480156104d057600080fd5b506104eb60048036036104e691908101906130d0565b61178e565b005b3480156104f957600080fd5b50610502611868565b6040516105119392919061335a565b60405180910390f35b34801561052657600080fd5b5061052f611b39565b60405161053c91906133a6565b60405180910390f35b34801561055157600080fd5b5061056c60048036036105679190810190613001565b611b4c565b005b34801561057a57600080fd5b50610583611beb565b005b34801561059157600080fd5b506105ac60048036036105a79190810190612fd8565b611ca8565b6040516105b991906133ff565b60405180910390f35b3480156105ce57600080fd5b506105d7611cf4565b6040516105e491906133ff565b60405180910390f35b3480156105f957600080fd5b50610602611cfa565b60405161060f91906133ff565b60405180910390f35b34801561062457600080fd5b5061063f600480360361063a9190810190613001565b611d00565b005b34801561064d57600080fd5b50610656612364565b60405161066391906133ff565b60405180910390f35b6000818301905082811015151561067f57fe5b80905092915050565b600e8181548110151561069757fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561072157600080fd5b6005548111151561073157600080fd5b8060058190555050565b60045481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561079c57600080fd5b6001600060146101000a81548160ff0219169083151502179055507fadac2a07dd926cc50f681194fe221f6245cdafa96623d1c64fa69c027182f40a600060149054906101000a900460ff166040516107f591906133a6565b60405180910390a1565b600080600080600060606000806000806000806000600960008f8152602001908152602001600020905080600001548160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836001015484600201548560050186600601548760080154886009015489600a01548a600b01548b600e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16868054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109595780601f1061092e57610100808354040283529160200191610959565b820191906000526020600020905b81548152906001019060200180831161093c57829003601f168201915b505050505096509c509c509c509c509c509c509c509c509c509c509c509c505091939597999b5091939597999b565b6000808373ffffffffffffffffffffffffffffffffffffffff16141515156109af57600080fd5b600082141515156109bf57600080fd5b6009600083815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a3257600080fd5b610a3c8383612383565b505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a9f57600080fd5b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515610aed57600080fd5b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491506000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550829050818173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610bcd91906132df565b602060405180830381600087803b158015610be757600080fd5b505af1158015610bfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c1f91908101906130f9565b10151515610c2c57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610c83929190613331565b602060405180830381600087803b158015610c9d57600080fd5b505af1158015610cb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610cd59190810190613066565b50505050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d3b57600080fd5b600191505b600a548210156110a2576009600083815260200190815260200160002090506000816000015414151561109557838015610deb5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610df4575083155b1561109457610e508160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360060154612963565b611078816101e060405190810160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600582018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fc45780601f10610f9957610100808354040283529160200191610fc4565b820191906000526020600020905b815481529060010190602001808311610fa757829003601f168201915b5050505050815260200160068201548152602001600782015481526020016008820154815260200160098201548152602001600a8201548152602001600b8201548152602001600c8201548152602001600d8201548152602001600e820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050612acd565b600b600081548092919060019003919050555082806001019350505b5b8180600101925050610d40565b7faeb4f5733a2e8073f7ddf9b69cdc1588e959cec9ac8b80866c29237cbe281fbe836040516110d191906133ff565b60405180910390a150505050565b600c6020528060005260406000206000915090505481565b60065481565b600060149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561116b57600080fd5b6001600760006101000a81548160ff021916908315150217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111e357600080fd5b603c81101515156111f357600080fd5b62015180810260038190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561125d57600080fd5b6000600760006101000a81548160ff021916908315150217905550565b600b5481565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112e157600080fd5b600d60008073ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054935060008411801561133457503073ffffffffffffffffffffffffffffffffffffffff16318411155b156113d9576000600d60008073ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc600d60008073ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549081150290604051600060405180830381858888f193505050501580156113d7573d6000803e3d6000fd5b505b600090505b600e805490508110156115b157600e818154811015156113fa57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692506000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156115a457600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205493506000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508291508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611550929190613331565b602060405180830381600087803b15801561156a57600080fd5b505af115801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115a29190810190613066565b505b80806001019150506113de565b6000600e816115c09190612dd9565b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561162257600080fd5b601e811115151561163257600080fd5b8060048190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561169757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156116f357600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f178eb36323c5a89970cc900b55d89d2731becfb4f5df34667d995e48cee7d4e16000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161178391906132df565b60405180910390a150565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117e957600080fd5b6000811115156117f857600080fd5b803073ffffffffffffffffffffffffffffffffffffffff16311015151561181e57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611864573d6000803e3d6000fd5b5050565b6060806060600060608060606000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118d257600080fd5b600e805490509550856040519080825280602002602001820160405280156119095781602001602082028038833980820191505090505b5094508560405190808252806020026020018201604052801561194057816020015b606081526020019060019003908161192b5790505b509350856040519080825280602002602001820160405280156119725781602001602082028038833980820191505090505b509250600091505b85821015611b2557600e8281548110151561199157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685838151811015156119ca57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508482815181101515611a1457fe5b9060200190602002015190508073ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015611a8457600080fd5b505af1158015611a98573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250611ac1919081019061308f565b8483815181101515611acf57fe5b90602001906020020181905250611afc8583815181101515611aed57fe5b90602001906020020151612d3f565b8383815181101515611b0a57fe5b9060200190602002018181525050818060010192505061197a565b848484985098509850505050505050909192565b600760009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ba757600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611bcd57600080fd5b60008114151515611bdd57600080fd5b611be78282612383565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c4657600080fd5b60008060146101000a81548160ff0219169083151502179055507fadac2a07dd926cc50f681194fe221f6245cdafa96623d1c64fa69c027182f40a600060149054906101000a900460ff16604051611c9e91906133a6565b60405180910390a1565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60055481565b60035481565b600080600080600060149054906101000a900460ff16151515611d2257600080fd5b60008673ffffffffffffffffffffffffffffffffffffffff1614151515611d4857600080fd5b600085111515611d5757600080fd5b8593508373ffffffffffffffffffffffffffffffffffffffff166323b872dd3330886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611db3939291906132fa565b602060405180830381600087803b158015611dcd57600080fd5b505af1158015611de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e059190810190613066565b1515611e1057600080fd5b6064611e1d86600c612d88565b811515611e2657fe5b049250611e338584612dc0565b91506064611e42866010612d88565b811515611e4b57fe5b049050600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600a5490806001815401808255809150509060018203906000526020600020016000909192909190915055506101e060405190810160405280600a548152602001868152602001600354420181526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015611f7a57600080fd5b505af1158015611f8e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250611fb7919081019061308f565b815260200183815260200182815260200142815260200160065481526020016000815260200160008152602001600081526020016000815260200173a15c7ebe1f07caf6bff097d8a589fb8ac49ae5b373ffffffffffffffffffffffffffffffffffffffff1681525060096000600a54815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050190805190602001906120fd929190612e05565b5060c0820151816006015560e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c01556101a082015181600d01556101c082015181600e0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050506121e8600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661066c565b600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60008154809291906001019190505550600b600081548092919060010191905055508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fed175a8ddea84085fa2767c9c1f3342fae1f118bc1213ac4d4a0c6277bc0ad738673ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561230257600080fd5b505af1158015612316573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525061233f919081019061308f565b886003544201604051612354939291906133c1565b60405180910390a3505050505050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b600080600060606000806000806000806000600960008d81526020019081526020016000209a5060008b60000154141515156123be57600080fd5b8c73ffffffffffffffffffffffffffffffffffffffff168b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561241c57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614801561247c5750428b60020154105b806124d55750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614155b15156124e057600080fd5b8a60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1698508a6005018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561259f5780601f106125745761010080835404028352916020019161259f565b820191906000526020600020905b81548152906001019060200180831161258257829003601f168201915b50505050509750428b6002015410156126f7576126098b60030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168c60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168d60060154612963565b8a600601549950612681600c60008d60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548c60060154612dc0565b600c60008d60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008b600601819055506128eb565b60011515600760009054906101000a900460ff161515141561271c5760069650612721565b600396505b8a600801544203955062278d00866064898e600101540281151561274157fe5b040281151561274c57fe5b04945061275d8b6006015486612dc0565b9350838b60060181905550428b6008018190555060646127828c60010154600c612d88565b81151561278b57fe5b04925083838c600101540303915060648b60010154838115156127aa57fe5b04029050818b600b0181905550808b600a018190555061282d600c60008d60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612dc0565b600c60008d60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128e78b60030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168c60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1687612963565b8499505b8873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f959346e7719e944c33f76798af64519a9c17a870c805ae49c011066f18fa9cb08a8d4260405161294c939291906133c1565b60405180910390a350505050505050505050505050565b6000829050818173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016129be91906132df565b602060405180830381600087803b1580156129d857600080fd5b505af11580156129ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a1091908101906130f9565b10151515612a1d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401612a74929190613331565b602060405180830381600087803b158015612a8e57600080fd5b505af1158015612aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612ac69190810190613066565b5050505050565b6000806000612b23600c6000866080015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548560200151612dc0565b600c6000866080015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600085600001518152602001908152602001600020600080820160009055600182016000905560028201600090556003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556004820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600582016000612bf89190612e85565b6006820160009055600782016000905560088201600090556009820160009055600a820160009055600b820160009055600c820160009055600d820160009055600e820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555050600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020925082805490509150600090505b81811015612d395783600001518382815481101515612cc957fe5b90600052602060002001541415612d2c578260018303815481101515612ceb57fe5b90600052602060002001548382815481101515612d0457fe5b906000526020600020018190555082805480919060019003612d269190612ecd565b50612d39565b8080600101915050612cae565b50505050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080831415612d9b5760009050612dba565b8183029050818382811515612dac57fe5b04141515612db657fe5b8090505b92915050565b6000828211151515612dce57fe5b818303905092915050565b815481835581811115612e0057818360005260206000209182019101612dff9190612ef9565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612e4657805160ff1916838001178555612e74565b82800160010185558215612e74579182015b82811115612e73578251825591602001919060010190612e58565b5b509050612e819190612ef9565b5090565b50805460018160011615610100020316600290046000825580601f10612eab5750612eca565b601f016020900490600052602060002090810190612ec99190612ef9565b5b50565b815481835581811115612ef457818360005260206000209182019101612ef39190612ef9565b5b505050565b612f1b91905b80821115612f17576000816000905550600101612eff565b5090565b90565b6000612f2a82356135ef565b905092915050565b6000612f3e823561360f565b905092915050565b6000612f52825161360f565b905092915050565b600082601f8301121515612f6d57600080fd5b8151612f80612f7b82613508565b6134db565b91508082526020830160208301858383011115612f9c57600080fd5b612fa7838284613625565b50505092915050565b6000612fbc823561361b565b905092915050565b6000612fd0825161361b565b905092915050565b600060208284031215612fea57600080fd5b6000612ff884828501612f1e565b91505092915050565b6000806040838503121561301457600080fd5b600061302285828601612f1e565b925050602061303385828601612fb0565b9150509250929050565b60006020828403121561304f57600080fd5b600061305d84828501612f32565b91505092915050565b60006020828403121561307857600080fd5b600061308684828501612f46565b91505092915050565b6000602082840312156130a157600080fd5b600082015167ffffffffffffffff8111156130bb57600080fd5b6130c784828501612f5a565b91505092915050565b6000602082840312156130e257600080fd5b60006130f084828501612fb0565b91505092915050565b60006020828403121561310b57600080fd5b600061311984828501612fc4565b91505092915050565b61312b816135b9565b82525050565b600061313c8261355b565b80845260208401935061314e83613534565b60005b8281101561318057613164868351613122565b61316d82613592565b9150602086019550600181019050613151565b50849250505092915050565b600061319782613566565b808452602084019350836020820285016131b085613541565b60005b848110156131e95783830388526131cb83835161329a565b92506131d68261359f565b91506020880197506001810190506131b3565b508196508694505050505092915050565b600061320582613571565b8084526020840193506132178361354e565b60005b828110156132495761322d8683516132d0565b613236826135ac565b915060208601955060018101905061321a565b50849250505092915050565b61325e816135d9565b82525050565b600061326f82613587565b808452613283816020860160208601613625565b61328c81613658565b602085010191505092915050565b60006132a58261357c565b8084526132b9816020860160208601613625565b6132c281613658565b602085010191505092915050565b6132d9816135e5565b82525050565b60006020820190506132f46000830184613122565b92915050565b600060608201905061330f6000830186613122565b61331c6020830185613122565b61332960408301846132d0565b949350505050565b60006040820190506133466000830185613122565b61335360208301846132d0565b9392505050565b600060608201905081810360008301526133748186613131565b90508181036020830152613388818561318c565b9050818103604083015261339c81846131fa565b9050949350505050565b60006020820190506133bb6000830184613255565b92915050565b600060608201905081810360008301526133db8186613264565b90506133ea60208301856132d0565b6133f760408301846132d0565b949350505050565b600060208201905061341460008301846132d0565b92915050565b600061018082019050613430600083018f6132d0565b61343d602083018e613122565b61344a604083018d613122565b613457606083018c6132d0565b613464608083018b6132d0565b81810360a0830152613476818a613264565b905061348560c08301896132d0565b61349260e08301886132d0565b6134a06101008301876132d0565b6134ae6101208301866132d0565b6134bc6101408301856132d0565b6134ca610160830184613122565b9d9c50505050505050505050505050565b6000604051905081810181811067ffffffffffffffff821117156134fe57600080fd5b8060405250919050565b600067ffffffffffffffff82111561351f57600080fd5b601f19601f8301169050602081019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b60005b83811015613643578082015181840152602081019050613628565b83811115613652576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a72305820fdc3a5b7ee68b38cc983c69a00cd1b237aa2e9e7dfbcd7c2db0d723413be9efa6c6578706572696d656e74616cf50037

Deployed Bytecode

0x60806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631c019a52146101db578063365655f0146102185780633a4b4532146102415780633e8cc2731461026c57806347f849cd146102835780634d7f917f146102cb578063539a67bf146102f4578063650db56d1461031d578063666a73701461034657806370ba11131461038357806371ea29df146103ae57806376577bc4146103d957806379883bba146103f0578063851a4a951461041957806393002f021461043057806399f57e051461045b5780639aaa38a614610472578063a6f9dae11461049b578063b2a3fd05146104c4578063bbe316be146104ed578063c20906ac1461051a578063cfe7de0714610545578063d64ee8d21461056e578063d9d61a1014610585578063da546cb2146105c2578063e2afe3bb146105ed578063e61021e814610618578063f6d0bf2f14610641575b60003411151561017957600080fd5b6101ac600d60008073ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020543461066c565b600d60008073ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550005b3480156101e757600080fd5b5061020260048036036101fd91908101906130d0565b610688565b60405161020f91906132df565b60405180910390f35b34801561022457600080fd5b5061023f600480360361023a91908101906130d0565b6106c6565b005b34801561024d57600080fd5b5061025661073b565b60405161026391906133ff565b60405180910390f35b34801561027857600080fd5b50610281610741565b005b34801561028f57600080fd5b506102aa60048036036102a591908101906130d0565b6107ff565b6040516102c29c9b9a9998979695949392919061341a565b60405180910390f35b3480156102d757600080fd5b506102f260048036036102ed9190810190613001565b610988565b005b34801561030057600080fd5b5061031b60048036036103169190810190612fd8565b610a41565b005b34801561032957600080fd5b50610344600480360361033f919081019061303d565b610cdb565b005b34801561035257600080fd5b5061036d60048036036103689190810190612fd8565b6110df565b60405161037a91906133ff565b60405180910390f35b34801561038f57600080fd5b506103986110f7565b6040516103a591906133ff565b60405180910390f35b3480156103ba57600080fd5b506103c36110fd565b6040516103d091906133a6565b60405180910390f35b3480156103e557600080fd5b506103ee611110565b005b3480156103fc57600080fd5b50610417600480360361041291908101906130d0565b611188565b005b34801561042557600080fd5b5061042e611202565b005b34801561043c57600080fd5b5061044561127a565b60405161045291906133ff565b60405180910390f35b34801561046757600080fd5b50610470611280565b005b34801561047e57600080fd5b50610499600480360361049491908101906130d0565b6115c7565b005b3480156104a757600080fd5b506104c260048036036104bd9190810190612fd8565b61163c565b005b3480156104d057600080fd5b506104eb60048036036104e691908101906130d0565b61178e565b005b3480156104f957600080fd5b50610502611868565b6040516105119392919061335a565b60405180910390f35b34801561052657600080fd5b5061052f611b39565b60405161053c91906133a6565b60405180910390f35b34801561055157600080fd5b5061056c60048036036105679190810190613001565b611b4c565b005b34801561057a57600080fd5b50610583611beb565b005b34801561059157600080fd5b506105ac60048036036105a79190810190612fd8565b611ca8565b6040516105b991906133ff565b60405180910390f35b3480156105ce57600080fd5b506105d7611cf4565b6040516105e491906133ff565b60405180910390f35b3480156105f957600080fd5b50610602611cfa565b60405161060f91906133ff565b60405180910390f35b34801561062457600080fd5b5061063f600480360361063a9190810190613001565b611d00565b005b34801561064d57600080fd5b50610656612364565b60405161066391906133ff565b60405180910390f35b6000818301905082811015151561067f57fe5b80905092915050565b600e8181548110151561069757fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561072157600080fd5b6005548111151561073157600080fd5b8060058190555050565b60045481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561079c57600080fd5b6001600060146101000a81548160ff0219169083151502179055507fadac2a07dd926cc50f681194fe221f6245cdafa96623d1c64fa69c027182f40a600060149054906101000a900460ff166040516107f591906133a6565b60405180910390a1565b600080600080600060606000806000806000806000600960008f8152602001908152602001600020905080600001548160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836001015484600201548560050186600601548760080154886009015489600a01548a600b01548b600e0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16868054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109595780601f1061092e57610100808354040283529160200191610959565b820191906000526020600020905b81548152906001019060200180831161093c57829003601f168201915b505050505096509c509c509c509c509c509c509c509c509c509c509c509c505091939597999b5091939597999b565b6000808373ffffffffffffffffffffffffffffffffffffffff16141515156109af57600080fd5b600082141515156109bf57600080fd5b6009600083815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a3257600080fd5b610a3c8383612383565b505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a9f57600080fd5b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515610aed57600080fd5b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491506000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550829050818173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610bcd91906132df565b602060405180830381600087803b158015610be757600080fd5b505af1158015610bfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c1f91908101906130f9565b10151515610c2c57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610c83929190613331565b602060405180830381600087803b158015610c9d57600080fd5b505af1158015610cb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610cd59190810190613066565b50505050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d3b57600080fd5b600191505b600a548210156110a2576009600083815260200190815260200160002090506000816000015414151561109557838015610deb5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610df4575083155b1561109457610e508160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360060154612963565b611078816101e060405190810160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600582018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fc45780601f10610f9957610100808354040283529160200191610fc4565b820191906000526020600020905b815481529060010190602001808311610fa757829003601f168201915b5050505050815260200160068201548152602001600782015481526020016008820154815260200160098201548152602001600a8201548152602001600b8201548152602001600c8201548152602001600d8201548152602001600e820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050612acd565b600b600081548092919060019003919050555082806001019350505b5b8180600101925050610d40565b7faeb4f5733a2e8073f7ddf9b69cdc1588e959cec9ac8b80866c29237cbe281fbe836040516110d191906133ff565b60405180910390a150505050565b600c6020528060005260406000206000915090505481565b60065481565b600060149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561116b57600080fd5b6001600760006101000a81548160ff021916908315150217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111e357600080fd5b603c81101515156111f357600080fd5b62015180810260038190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561125d57600080fd5b6000600760006101000a81548160ff021916908315150217905550565b600b5481565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112e157600080fd5b600d60008073ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054935060008411801561133457503073ffffffffffffffffffffffffffffffffffffffff16318411155b156113d9576000600d60008073ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc600d60008073ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549081150290604051600060405180830381858888f193505050501580156113d7573d6000803e3d6000fd5b505b600090505b600e805490508110156115b157600e818154811015156113fa57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692506000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156115a457600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205493506000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508291508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611550929190613331565b602060405180830381600087803b15801561156a57600080fd5b505af115801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115a29190810190613066565b505b80806001019150506113de565b6000600e816115c09190612dd9565b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561162257600080fd5b601e811115151561163257600080fd5b8060048190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561169757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156116f357600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f178eb36323c5a89970cc900b55d89d2731becfb4f5df34667d995e48cee7d4e16000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161178391906132df565b60405180910390a150565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117e957600080fd5b6000811115156117f857600080fd5b803073ffffffffffffffffffffffffffffffffffffffff16311015151561181e57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611864573d6000803e3d6000fd5b5050565b6060806060600060608060606000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118d257600080fd5b600e805490509550856040519080825280602002602001820160405280156119095781602001602082028038833980820191505090505b5094508560405190808252806020026020018201604052801561194057816020015b606081526020019060019003908161192b5790505b509350856040519080825280602002602001820160405280156119725781602001602082028038833980820191505090505b509250600091505b85821015611b2557600e8281548110151561199157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685838151811015156119ca57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508482815181101515611a1457fe5b9060200190602002015190508073ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015611a8457600080fd5b505af1158015611a98573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250611ac1919081019061308f565b8483815181101515611acf57fe5b90602001906020020181905250611afc8583815181101515611aed57fe5b90602001906020020151612d3f565b8383815181101515611b0a57fe5b9060200190602002018181525050818060010192505061197a565b848484985098509850505050505050909192565b600760009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ba757600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611bcd57600080fd5b60008114151515611bdd57600080fd5b611be78282612383565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c4657600080fd5b60008060146101000a81548160ff0219169083151502179055507fadac2a07dd926cc50f681194fe221f6245cdafa96623d1c64fa69c027182f40a600060149054906101000a900460ff16604051611c9e91906133a6565b60405180910390a1565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60055481565b60035481565b600080600080600060149054906101000a900460ff16151515611d2257600080fd5b60008673ffffffffffffffffffffffffffffffffffffffff1614151515611d4857600080fd5b600085111515611d5757600080fd5b8593508373ffffffffffffffffffffffffffffffffffffffff166323b872dd3330886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611db3939291906132fa565b602060405180830381600087803b158015611dcd57600080fd5b505af1158015611de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e059190810190613066565b1515611e1057600080fd5b6064611e1d86600c612d88565b811515611e2657fe5b049250611e338584612dc0565b91506064611e42866010612d88565b811515611e4b57fe5b049050600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600a5490806001815401808255809150509060018203906000526020600020016000909192909190915055506101e060405190810160405280600a548152602001868152602001600354420181526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015611f7a57600080fd5b505af1158015611f8e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250611fb7919081019061308f565b815260200183815260200182815260200142815260200160065481526020016000815260200160008152602001600081526020016000815260200173a15c7ebe1f07caf6bff097d8a589fb8ac49ae5b373ffffffffffffffffffffffffffffffffffffffff1681525060096000600a54815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050190805190602001906120fd929190612e05565b5060c0820151816006015560e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c01556101a082015181600d01556101c082015181600e0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050506121e8600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661066c565b600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60008154809291906001019190505550600b600081548092919060010191905055508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fed175a8ddea84085fa2767c9c1f3342fae1f118bc1213ac4d4a0c6277bc0ad738673ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561230257600080fd5b505af1158015612316573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525061233f919081019061308f565b886003544201604051612354939291906133c1565b60405180910390a3505050505050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b600080600060606000806000806000806000600960008d81526020019081526020016000209a5060008b60000154141515156123be57600080fd5b8c73ffffffffffffffffffffffffffffffffffffffff168b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561241c57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614801561247c5750428b60020154105b806124d55750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614155b15156124e057600080fd5b8a60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1698508a6005018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561259f5780601f106125745761010080835404028352916020019161259f565b820191906000526020600020905b81548152906001019060200180831161258257829003601f168201915b50505050509750428b6002015410156126f7576126098b60030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168c60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168d60060154612963565b8a600601549950612681600c60008d60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548c60060154612dc0565b600c60008d60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008b600601819055506128eb565b60011515600760009054906101000a900460ff161515141561271c5760069650612721565b600396505b8a600801544203955062278d00866064898e600101540281151561274157fe5b040281151561274c57fe5b04945061275d8b6006015486612dc0565b9350838b60060181905550428b6008018190555060646127828c60010154600c612d88565b81151561278b57fe5b04925083838c600101540303915060648b60010154838115156127aa57fe5b04029050818b600b0181905550808b600a018190555061282d600c60008d60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612dc0565b600c60008d60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128e78b60030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168c60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1687612963565b8499505b8873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f959346e7719e944c33f76798af64519a9c17a870c805ae49c011066f18fa9cb08a8d4260405161294c939291906133c1565b60405180910390a350505050505050505050505050565b6000829050818173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016129be91906132df565b602060405180830381600087803b1580156129d857600080fd5b505af11580156129ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a1091908101906130f9565b10151515612a1d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401612a74929190613331565b602060405180830381600087803b158015612a8e57600080fd5b505af1158015612aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612ac69190810190613066565b5050505050565b6000806000612b23600c6000866080015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548560200151612dc0565b600c6000866080015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600085600001518152602001908152602001600020600080820160009055600182016000905560028201600090556003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556004820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600582016000612bf89190612e85565b6006820160009055600782016000905560088201600090556009820160009055600a820160009055600b820160009055600c820160009055600d820160009055600e820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555050600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020925082805490509150600090505b81811015612d395783600001518382815481101515612cc957fe5b90600052602060002001541415612d2c578260018303815481101515612ceb57fe5b90600052602060002001548382815481101515612d0457fe5b906000526020600020018190555082805480919060019003612d269190612ecd565b50612d39565b8080600101915050612cae565b50505050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080831415612d9b5760009050612dba565b8183029050818382811515612dac57fe5b04141515612db657fe5b8090505b92915050565b6000828211151515612dce57fe5b818303905092915050565b815481835581811115612e0057818360005260206000209182019101612dff9190612ef9565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612e4657805160ff1916838001178555612e74565b82800160010185558215612e74579182015b82811115612e73578251825591602001919060010190612e58565b5b509050612e819190612ef9565b5090565b50805460018160011615610100020316600290046000825580601f10612eab5750612eca565b601f016020900490600052602060002090810190612ec99190612ef9565b5b50565b815481835581811115612ef457818360005260206000209182019101612ef39190612ef9565b5b505050565b612f1b91905b80821115612f17576000816000905550600101612eff565b5090565b90565b6000612f2a82356135ef565b905092915050565b6000612f3e823561360f565b905092915050565b6000612f52825161360f565b905092915050565b600082601f8301121515612f6d57600080fd5b8151612f80612f7b82613508565b6134db565b91508082526020830160208301858383011115612f9c57600080fd5b612fa7838284613625565b50505092915050565b6000612fbc823561361b565b905092915050565b6000612fd0825161361b565b905092915050565b600060208284031215612fea57600080fd5b6000612ff884828501612f1e565b91505092915050565b6000806040838503121561301457600080fd5b600061302285828601612f1e565b925050602061303385828601612fb0565b9150509250929050565b60006020828403121561304f57600080fd5b600061305d84828501612f32565b91505092915050565b60006020828403121561307857600080fd5b600061308684828501612f46565b91505092915050565b6000602082840312156130a157600080fd5b600082015167ffffffffffffffff8111156130bb57600080fd5b6130c784828501612f5a565b91505092915050565b6000602082840312156130e257600080fd5b60006130f084828501612fb0565b91505092915050565b60006020828403121561310b57600080fd5b600061311984828501612fc4565b91505092915050565b61312b816135b9565b82525050565b600061313c8261355b565b80845260208401935061314e83613534565b60005b8281101561318057613164868351613122565b61316d82613592565b9150602086019550600181019050613151565b50849250505092915050565b600061319782613566565b808452602084019350836020820285016131b085613541565b60005b848110156131e95783830388526131cb83835161329a565b92506131d68261359f565b91506020880197506001810190506131b3565b508196508694505050505092915050565b600061320582613571565b8084526020840193506132178361354e565b60005b828110156132495761322d8683516132d0565b613236826135ac565b915060208601955060018101905061321a565b50849250505092915050565b61325e816135d9565b82525050565b600061326f82613587565b808452613283816020860160208601613625565b61328c81613658565b602085010191505092915050565b60006132a58261357c565b8084526132b9816020860160208601613625565b6132c281613658565b602085010191505092915050565b6132d9816135e5565b82525050565b60006020820190506132f46000830184613122565b92915050565b600060608201905061330f6000830186613122565b61331c6020830185613122565b61332960408301846132d0565b949350505050565b60006040820190506133466000830185613122565b61335360208301846132d0565b9392505050565b600060608201905081810360008301526133748186613131565b90508181036020830152613388818561318c565b9050818103604083015261339c81846131fa565b9050949350505050565b60006020820190506133bb6000830184613255565b92915050565b600060608201905081810360008301526133db8186613264565b90506133ea60208301856132d0565b6133f760408301846132d0565b949350505050565b600060208201905061341460008301846132d0565b92915050565b600061018082019050613430600083018f6132d0565b61343d602083018e613122565b61344a604083018d613122565b613457606083018c6132d0565b613464608083018b6132d0565b81810360a0830152613476818a613264565b905061348560c08301896132d0565b61349260e08301886132d0565b6134a06101008301876132d0565b6134ae6101208301866132d0565b6134bc6101408301856132d0565b6134ca610160830184613122565b9d9c50505050505050505050505050565b6000604051905081810181811067ffffffffffffffff821117156134fe57600080fd5b8060405250919050565b600067ffffffffffffffff82111561351f57600080fd5b601f19601f8301169050602081019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b60005b83811015613643578082015181840152602081019050613628565b83811115613652576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a72305820fdc3a5b7ee68b38cc983c69a00cd1b237aa2e9e7dfbcd7c2db0d723413be9efa6c6578706572696d656e74616cf50037

Swarm Source

bzzr://fdc3a5b7ee68b38cc983c69a00cd1b237aa2e9e7dfbcd7c2db0d723413be9efa

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

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