ETH Price: $3,910.46 (+7.03%)

Contract

0xBEe61423ef891D33c1EF322338eF85c536898D80
 

Overview

ETH Balance

0.028647900000001173 ETH

Eth Value

$112.03 (@ $3,910.46/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Buy Bunny70160622019-01-05 19:23:362167 days ago1546716216IN
0xBEe61423...536898D80
0.0084 ETH0.000314671
Start Market69706092018-12-28 23:06:132175 days ago1546038373IN
0xBEe61423...536898D80
0 ETH0.000279423
Stop Market69705742018-12-28 22:56:262175 days ago1546037786IN
0xBEe61423...536898D80
0 ETH0.000135954
Buy Bunny69557722018-12-26 10:52:292177 days ago1545821549IN
0xBEe61423...536898D80
0.0072 ETH0.001195315
Buy Bunny69557642018-12-26 10:51:082177 days ago1545821468IN
0xBEe61423...536898D80
0.0072 ETH0.00126754
Start Market69229762018-12-20 21:34:502183 days ago1545341690IN
0xBEe61423...536898D80
0 ETH0.000432564
Buy Bunny68933542018-12-15 21:08:272188 days ago1544908107IN
0xBEe61423...536898D80
0.012 ETH0.000712942.3
Stop Market67812972018-11-27 8:58:532206 days ago1543309133IN
0xBEe61423...536898D80
0 ETH0.000203936
Buy Bunny67567252018-11-23 8:18:272210 days ago1542961107IN
0xBEe61423...536898D80
0.0114 ETH0.000851253
Stop Market67324612018-11-19 8:26:062214 days ago1542615966IN
0xBEe61423...536898D80
0 ETH0.0004384512.9
Start Market67290672018-11-18 18:54:112215 days ago1542567251IN
0xBEe61423...536898D80
0 ETH0.000432564
Start Market67290482018-11-18 18:51:192215 days ago1542567079IN
0xBEe61423...536898D80
0 ETH0.000372564
Buy Bunny67290422018-11-18 18:49:522215 days ago1542566992IN
0xBEe61423...536898D80
0.0072 ETH0.000879653
Start Market67004742018-11-14 2:42:542220 days ago1542163374IN
0xBEe61423...536898D80
0 ETH0.000465385
Start Market67004712018-11-14 2:42:322220 days ago1542163352IN
0xBEe61423...536898D80
0 ETH0.000465385
Start Market67004672018-11-14 2:41:512220 days ago1542163311IN
0xBEe61423...536898D80
0 ETH0.000465385
Start Market67004622018-11-14 2:40:152220 days ago1542163215IN
0xBEe61423...536898D80
0 ETH0.000540385
Buy Bunny66896212018-11-12 8:17:412221 days ago1542010661IN
0xBEe61423...536898D80
0.0012 ETH0.000820824
Start Market66895412018-11-12 8:00:222221 days ago1542009622IN
0xBEe61423...536898D80
0 ETH0.000432564
Buy Bunny66867482018-11-11 20:53:462222 days ago1541969626IN
0xBEe61423...536898D80
0.0084 ETH0.000594791.6
Stop Market66850422018-11-11 14:16:112222 days ago1541945771IN
0xBEe61423...536898D80
0 ETH0.000074772.2
Buy Bunny66776062018-11-10 9:08:542223 days ago1541840934IN
0xBEe61423...536898D80
0.0042 ETH0.000875283
Buy Bunny66748872018-11-09 22:27:152224 days ago1541802435IN
0xBEe61423...536898D80
0.00372 ETH0.000783783
Buy Bunny66725582018-11-09 13:12:572224 days ago1541769177IN
0xBEe61423...536898D80
0.0012 ETH0.000768543.5
Start Market66725502018-11-09 13:10:562224 days ago1541769056IN
0xBEe61423...536898D80
0 ETH0.000558846
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
70160622019-01-05 19:23:362167 days ago1546716216
0xBEe61423...536898D80
0.000175 ETH
70160622019-01-05 19:23:362167 days ago1546716216
0xBEe61423...536898D80
0.000175 ETH
70160622019-01-05 19:23:362167 days ago1546716216
0xBEe61423...536898D80
0.00042 ETH
70160622019-01-05 19:23:362167 days ago1546716216
0xBEe61423...536898D80
0.00672 ETH
70160622019-01-05 19:23:362167 days ago1546716216
0xBEe61423...536898D80
0.00144 ETH
69557722018-12-26 10:52:292177 days ago1545821549
0xBEe61423...536898D80
0.0003 ETH
69557722018-12-26 10:52:292177 days ago1545821549
0xBEe61423...536898D80
0.00036 ETH
69557722018-12-26 10:52:292177 days ago1545821549
0xBEe61423...536898D80
0.00576 ETH
69557642018-12-26 10:51:082177 days ago1545821468
0xBEe61423...536898D80
0.00006 ETH
69557642018-12-26 10:51:082177 days ago1545821468
0xBEe61423...536898D80
0.00006 ETH
69557642018-12-26 10:51:082177 days ago1545821468
0xBEe61423...536898D80
0.00006 ETH
69557642018-12-26 10:51:082177 days ago1545821468
0xBEe61423...536898D80
0.00006 ETH
69557642018-12-26 10:51:082177 days ago1545821468
0xBEe61423...536898D80
0.00006 ETH
69557642018-12-26 10:51:082177 days ago1545821468
0xBEe61423...536898D80
0.00036 ETH
69557642018-12-26 10:51:082177 days ago1545821468
0xBEe61423...536898D80
0.00576 ETH
69557642018-12-26 10:51:082177 days ago1545821468
0xBEe61423...536898D80
0.0012 ETH
68933542018-12-15 21:08:272188 days ago1544908107
0xBEe61423...536898D80
0.00025 ETH
68933542018-12-15 21:08:272188 days ago1544908107
0xBEe61423...536898D80
0.00025 ETH
68933542018-12-15 21:08:272188 days ago1544908107
0xBEe61423...536898D80
0.0006 ETH
68933542018-12-15 21:08:272188 days ago1544908107
0xBEe61423...536898D80
0.0096 ETH
68933542018-12-15 21:08:272188 days ago1544908107
0xBEe61423...536898D80
0.00114 ETH
67567252018-11-23 8:18:272210 days ago1542961107
0xBEe61423...536898D80
0.000475 ETH
67567252018-11-23 8:18:272210 days ago1542961107
0xBEe61423...536898D80
0.00057 ETH
67567252018-11-23 8:18:272210 days ago1542961107
0xBEe61423...536898D80
0.00912 ETH
67567252018-11-23 8:18:272210 days ago1542961107
0xBEe61423...536898D80
0.00072 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Market

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-09-14
*/

pragma solidity ^0.4.23;
/*
** WARNING:  THIS PRODUCT IS HIGHLY ADDICTIVE.  IF YOU HAVE AN ADDICTIVE NATURE.  DO NOT PLAY.
*/

/*    
* Author:  Konstantin G...
* Telegram: @bunnygame
* 
* email: [email protected]
* site : http://bunnycoin.co
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions, this simplifies the implementation of "user permissions".
*/

contract Ownable {
    
    address owner;
    address ownerMoney;   
     
 

    /**
    * @dev The Ownable constructor sets the original `owner` of the contract to the sender
    * account.
    */    
    constructor() public {
        owner = msg.sender;
        ownerMoney = msg.sender;
    }

    /**
    * @dev Throws if called by any account other than the owner.
    */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

 

    function transferMoney(address _add) public  onlyOwner {
        if (_add != address(0)) {
            ownerMoney = _add;
        }
    }
    
 
    function transferOwner(address _add) public onlyOwner {
        if (_add != address(0)) {
            owner = _add;
        }
    } 
      
    function getOwnerMoney() public view onlyOwner returns(address) {
        return ownerMoney;
    } 
 
}

 


/**
 * @title Whitelist
 * @dev The Whitelist contract has a whitelist of addresses, and provides basic authorization control functions.
 * @dev This simplifies the implementation of "user permissions".
 */
contract Whitelist is Ownable {
    mapping(address => bool) public whitelist;
    event WhitelistedAddressAdded(address addr);
    event WhitelistedAddressRemoved(address addr);
 
  /**
   * @dev Throws if called by any account that's not whitelisted.
   */
    modifier onlyWhitelisted() {
        require(whitelist[msg.sender]);
        _;
    }

    constructor() public {
        addAddressToWhitelist(msg.sender);   
    }

  /**
   * @dev add an address to the whitelist
   * @param addr address
   * @return true if the address was added to the whitelist, false if the address was already in the whitelist
   */
    function addAddressToWhitelist(address addr) public onlyOwner returns(bool success) {
        if (!whitelist[addr]) {
            whitelist[addr] = true;
            emit WhitelistedAddressAdded(addr);
            success = true;
        }
    }

    function getInWhitelist(address addr) public view returns(bool) {
        return whitelist[addr];
    }

    /**
    * @dev add addresses to the whitelist
    * @param addrs addresses
    * @return true if at least one address was added to the whitelist,
    * false if all addresses were already in the whitelist
    */
    function addAddressesToWhitelist(address[] addrs) onlyOwner public returns(bool success) {
        for (uint256 i = 0; i < addrs.length; i++) {
            if (addAddressToWhitelist(addrs[i])) {
                success = true;
            }
        }
    }

    /**
    * @dev remove an address from the whitelist
    * @param addr address
    * @return true if the address was removed from the whitelist,
    * false if the address wasn't in the whitelist in the first place
    */
    function removeAddressFromWhitelist(address addr) onlyOwner public returns(bool success) {
        if (whitelist[addr]) {
            whitelist[addr] = false;
            emit WhitelistedAddressRemoved(addr);
            success = true;
        }
    }

    /**
    * @dev remove addresses from the whitelist
    * @param addrs addresses
    * @return true if at least one address was removed from the whitelist,
    * false if all addresses weren't in the whitelist in the first place
    */
    function removeAddressesFromWhitelist(address[] addrs) onlyOwner public returns(bool success) {
        for (uint256 i = 0; i < addrs.length; i++) {
            if (removeAddressFromWhitelist(addrs[i])) {
                success = true;
            }
        }
    }
}
/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
    
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint c = a * b;
        assert(c / a == b);
        return c;
    }

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

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
  
}


contract StorageInterface { 
    function setBunnyCost(uint32 _bunnyID, uint _money) external;
    function getBunnyCost(uint32 _bunnyID) public view returns (uint money);
    function deleteBunnyCost(uint32 _bunnyID) external; 
    function isPauseSave() public  view returns(bool);
}




 
/// @title Interface new rabbits address
contract PublicInterface { 
    function transferFrom(address _from, address _to, uint32 _tokenId) public returns (bool);
    function ownerOf(uint32 _tokenId) public view returns (address owner);
    function isUIntPublic() public view returns(bool);// check pause
    function getRabbitMother( uint32 mother) public view returns(uint32[5]);
    function getRabbitMotherSumm(uint32 mother) public view returns(uint count);
}

contract Market  is Whitelist { 
           
    using SafeMath for uint256;
    
    event StopMarket(uint32 bunnyId);
    event StartMarket(uint32 bunnyId, uint money, uint timeStart, uint stepTimeSale);
    event BunnyBuy(uint32 bunnyId, uint money);  
    event Tournament(address who, uint bank, uint timeLeft, uint timeRange);
    
    event OwnBank(uint bankMoney, uint countInvestor, address lastOwner, uint addTime, uint stepTime);
    event MotherMoney(uint32 motherId, uint32 bunnyId, uint money);
     


    bool public pause = false; 
    
    
    uint public stepTimeSale = 1;
 

    uint public minPrice = 0.0001 ether;
    uint reallyPrice = 0.0001 ether;
    uint public rangePrice = 20;


    uint public minTimeBank = 12*60*60;
    uint public maxTimeBank = 13*60*60;
    uint public currentTimeBank = maxTimeBank;
    uint public rangeTimeBank = 2;


    uint public coefficientTimeStep = 5;
    uint public commission = 5;
    uint public commission_mom = 5;
    uint public percentBank = 10;

    // how many times have the bank been increased
 
    uint public added_to_the_bank = 0;

    uint public marketCount = 0; 
    uint public numberOfWins = 0;  
    uint public getMoneyCount = 0;

    string public advertising = "Your advertisement here!";
 
    // how many last sales to take into account in the contract before the formation of the price
  //  uint8 middlelast = 20;
     
     
 
    // the last cost of a sold seal
    uint public lastmoney = 0;   
    uint public totalClosedBID = 0;

    // how many a bunny
   // mapping (uint32 => uint) public bunnyCost;
    mapping (uint32 => uint) public timeCost;

    
    address public lastOwner;
    uint public bankMoney;
    uint public lastSaleTime;

    address public pubAddress;
    address public storageAddress;
    PublicInterface publicContract; 
    StorageInterface storageContract; 

 
 

    constructor() public { 
        transferContract(0x35Ea9df0B7E2E450B1D129a6F81276103b84F3dC); 
        transferStorage(0x8AC4Da82C4a1E0C1578558C5C685F8AE790dA5a3);
    }

    function setRangePrice(uint _rangePrice) public onlyWhitelisted {
        require(_rangePrice > 0);
        rangePrice = _rangePrice;
    }

    function setReallyPrice(uint _reallyPrice) public onlyWhitelisted {
        require(_reallyPrice > 0);
        reallyPrice = _reallyPrice;
    }

 


    function setStepTimeSale(uint _stepTimeSale) public onlyWhitelisted {
        require(_stepTimeSale > 0);
        stepTimeSale = _stepTimeSale;
    }

    function setRangeTimeBank(uint _rangeTimeBank) public onlyWhitelisted {
        require(_rangeTimeBank > 0);
        rangeTimeBank = _rangeTimeBank;
    }

    // minimum time step
    function setMinTimeBank(uint _minTimeBank) public onlyWhitelisted {
        require(_minTimeBank > 0);
        minTimeBank = _minTimeBank;
    }

    // minimum time step
    function setMaxTimeBank(uint _maxTimeBank) public onlyWhitelisted {
        require(_maxTimeBank > 0);
        maxTimeBank = _maxTimeBank;
    }

    // time increment change rate
    function setCoefficientTimeStep(uint _coefficientTimeStep) public onlyWhitelisted {
        require(_coefficientTimeStep > 0);
        coefficientTimeStep = _coefficientTimeStep;
    }

 

    function setPercentCommission(uint _commission) public onlyWhitelisted {
        require(_commission > 0);
        commission = _commission;
    }

    function setPercentBank(uint _percentBank) public onlyWhitelisted {
        require(_percentBank > 0);
        percentBank = _percentBank; 
    }
    /**
    * @dev change min price a bunny
     */
    function setMinPrice(uint _minPrice) public onlyWhitelisted {
        require(_minPrice > 0);
        minPrice = _minPrice;
        
    }

    function setCurrentTimeBank(uint _currentTimeBank) public onlyWhitelisted {
        require(_currentTimeBank > 0);
        currentTimeBank = _currentTimeBank;
    }
 
 
    /**
    * @dev We are selling rabbit for sale
    * @param _bunnyId - whose rabbit we exhibit 
    * @param _money - sale amount 
    */
  function startMarketOwner(uint32 _bunnyId, uint _money) public  onlyWhitelisted {
        require(checkContract());
        require(isPauseSave());
        require(currentPrice(_bunnyId) != _money);
        require(storageContract.isPauseSave());
          
      //  bunnyCost[_bunnyId] = _money;
        timeCost[_bunnyId] = block.timestamp;
        storageContract.setBunnyCost(_bunnyId, _money);
        emit StartMarket(_bunnyId, currentPrice(_bunnyId), block.timestamp, stepTimeSale);
        marketCount++;
    }
 
    /**
    * @dev Allows the current owner to transfer control of the contract to a newOwner.
    * @param _pubAddress  public address of the main contract
    */
    function transferContract(address _pubAddress) public onlyWhitelisted {
        require(_pubAddress != address(0)); 
        pubAddress = _pubAddress;
        publicContract = PublicInterface(_pubAddress);
    } 

    /**
    * @dev Allows the current owner to transfer control of the contract to a newOwner.
    * @param _storageAddress  public address of the main contract
    */
    function transferStorage(address _storageAddress) public onlyWhitelisted {
        require(_storageAddress != address(0)); 
        storageAddress = _storageAddress;
        storageContract = StorageInterface(_storageAddress);
    } 
 
    function setPause() public onlyWhitelisted {
        pause = !pause;
    }

    function isPauseSave() public  view returns(bool){
        return !pause;
    }

    /**
    * @dev get rabbit price
    */
    function currentPrice(uint32 _bunnyid) public view returns(uint) { 
        require(storageContract.isPauseSave());
        uint money = storageContract.getBunnyCost(_bunnyid);
        if (money > 0) {
            //commission_mom
            uint percOne = money.div(100);
            // commision
            
            uint commissionMoney = percOne.mul(commission);
            money = money.add(commissionMoney); 

            uint commissionMom = percOne.mul(commission_mom);
            money = money.add(commissionMom); 

            uint percBank = percOne.mul(percentBank);
            money = money.add(percBank); 

            return money;
        }
    } 

    function getReallyPrice() public view returns (uint) {
        return reallyPrice;
    }

    /**
    * @dev We are selling rabbit for sale
    * @param _bunnyId - whose rabbit we exhibit 
    * @param _money - sale amount 
    */
  function startMarket(uint32 _bunnyId, uint _money) public{
        require(checkContract());
        require(isPauseSave());
        require(currentPrice(_bunnyId) != _money);
        require(storageContract.isPauseSave());
        require(_money >= reallyPrice);

        require(publicContract.ownerOf(_bunnyId) == msg.sender);

        timeCost[_bunnyId] = block.timestamp;

        storageContract.setBunnyCost(_bunnyId, _money);
        
        emit StartMarket(_bunnyId, currentPrice(_bunnyId), block.timestamp, stepTimeSale);
        marketCount++;
    }

    /**
    * @dev remove from sale rabbit
    * @param _bunnyId - a rabbit that is removed from sale 
    */
    function stopMarket(uint32 _bunnyId) public returns(uint) {
        require(checkContract());
        require(isPauseSave());
        require(publicContract.ownerOf(_bunnyId) == msg.sender);
        require(storageContract.isPauseSave());

        storageContract.deleteBunnyCost(_bunnyId);
        emit StopMarket(_bunnyId);
        return marketCount--;
    }

    function timeBunny(uint32 _bunnyId) public view returns(bool can, uint timeleft) {
        uint _tmp = timeCost[_bunnyId].add(stepTimeSale);
        if (timeCost[_bunnyId] > 0 && block.timestamp >= _tmp) {
            can = true;
            timeleft = 0;
        } else { 
            can = false; 
            _tmp = _tmp.sub(block.timestamp);
            if (_tmp > 0) {
                timeleft = _tmp;
            } else {
                timeleft = 0;
            }
        } 
    }

    function transferFromBunny(uint32 _bunnyId) public {
        require(checkContract());
        publicContract.transferFrom(publicContract.ownerOf(_bunnyId), msg.sender, _bunnyId); 
    }


// https://rinkeby.etherscan.io/address/0xc7984712b3d0fac8e965dd17a995db5007fe08f2#writeContract
    /**
    * @dev Acquisition of a rabbit from another user
    * @param _bunnyId  Bunny
     */
    function buyBunny(uint32 _bunnyId) public payable {
        require(isPauseSave());
        require(checkContract());
        require(publicContract.ownerOf(_bunnyId) != msg.sender);
        require(storageContract.isPauseSave());
        lastmoney = currentPrice(_bunnyId);
        require(msg.value >= lastmoney && 0 != lastmoney);

        bool can;
        (can,) = timeBunny(_bunnyId);
        require(can); 
        // stop trading on the current rabbit
        totalClosedBID++;
        // Sending money to the old user 
        // is sent to the new owner of the bought rabbit
 
        checkTimeWin();
        sendMoney(publicContract.ownerOf(_bunnyId), lastmoney);

        publicContract.transferFrom(publicContract.ownerOf(_bunnyId), msg.sender, _bunnyId); 
        sendMoneyMother(_bunnyId);
        stopMarket(_bunnyId);
        changeReallyPrice();
        changeReallyTime();
        lastOwner = msg.sender; 
        lastSaleTime = block.timestamp; 
        emit OwnBank(bankMoney, added_to_the_bank, lastOwner, lastSaleTime, currentTimeBank);
        emit BunnyBuy(_bunnyId, lastmoney);
    }  

    
    function changeReallyTime() internal {
        if (rangeTimeBank > 0) {
            uint tmp = added_to_the_bank.div(rangeTimeBank);
            tmp = maxTimeBank.sub(tmp);

            if (currentTimeBank > minTimeBank) { 
                currentTimeBank = tmp;
            }
        } 
    }
 
    function changeReallyPrice() internal {
        if (added_to_the_bank > 0 && rangePrice > 0) {
            uint tmp = added_to_the_bank.div(rangePrice);
            reallyPrice = minPrice.mul(tmp);  
        } 
    }
  

     
    function sendMoneyMother(uint32 _bunnyId) internal {
        uint money = storageContract.getBunnyCost(_bunnyId);
        if (money > 0) { 
            uint procentOne = (money.div(100)); 
            // commission_mom
            uint32[5] memory mother;
            mother = publicContract.getRabbitMother(_bunnyId);
            uint motherCount = publicContract.getRabbitMotherSumm(_bunnyId);
            if (motherCount > 0) {
                uint motherMoney = (procentOne*commission_mom).div(motherCount);
                    for (uint m = 0; m < 5; m++) {
                        if (mother[m] != 0) {
                            publicContract.ownerOf(mother[m]).transfer(motherMoney);
                            emit MotherMoney(mother[m], _bunnyId, motherMoney);
                        }
                    }
                } 
        }
    }


    /**
    * @param _to to whom money is sent
    * @param _money the amount of money is being distributed at the moment
     */
    function sendMoney(address _to, uint256 _money) internal { 
        if (_money > 0) { 
            uint procentOne = (_money/100); 
            _to.transfer(procentOne * (100-(commission+percentBank+commission_mom)));
            addBank(procentOne*percentBank);
            ownerMoney.transfer(procentOne*commission);  
        }
    }



    function checkTimeWin() internal {
        if (lastSaleTime + currentTimeBank < block.timestamp) {
            win(); 
        }
        lastSaleTime = block.timestamp;
    }

    
    function win() internal {
        // ####### WIN ##############
        // send money
        if (address(this).balance > 0 && address(this).balance >= bankMoney && lastOwner != address(0)) { 
            advertising = "";
            added_to_the_bank = 0;
            reallyPrice = minPrice;
            currentTimeBank = maxTimeBank;

            lastOwner.transfer(bankMoney);
            numberOfWins = numberOfWins.add(1); 
            emit Tournament (lastOwner, bankMoney, lastSaleTime, block.timestamp);
            bankMoney = 0;
        }
    }    
    
    
    /**
    * @dev add money of bank
    */
    function addCountInvestors(uint countInvestors) public onlyWhitelisted  { 
        added_to_the_bank = countInvestors;
    }

        /**
    * @dev add money of bank
    */
    function addBank(uint _money) internal { 
        bankMoney = bankMoney.add(_money);
        added_to_the_bank = added_to_the_bank.add(1);
    }
     
 
    function ownerOf(uint32 _bunnyId) public  view returns(address) {
        return publicContract.ownerOf(_bunnyId);
    } 
    
    /**
    * Check
     */
    function checkContract() public view returns(bool) {
        return publicContract.isUIntPublic(); 
    }

    function buyAdvert(string _text)  public payable { 
        require(msg.value > (reallyPrice*2));
        require(checkContract());
        advertising = _text;
        addBank(msg.value); 
    }
 
    /**
    * Only if the user has violated the advertising rules
     */
    function noAdvert() public onlyWhitelisted {
        advertising = "";
    } 
 
    /**
    * Only unforeseen situations
     */
    function getMoney(uint _value) public onlyWhitelisted {
        require(address(this).balance >= _value); 
        ownerMoney.transfer(_value);
        // for public, no scam
        getMoneyCount = getMoneyCount.add(_value);
    }
    /**
    * For convenience in the client interface
     */
    function getProperty() public view 
    returns(
            uint tmp_currentTimeBank,
            uint tmp_stepTimeSale,
            uint tmp_minPrice,
            uint tmp_reallyPrice,
            
            uint tmp_added_to_the_bank,
            uint tmp_marketCount, 
            uint tmp_numberOfWins,
            uint tmp_getMoneyCount,
            uint tmp_lastmoney,   
            uint tmp_totalClosedBID,
            uint tmp_bankMoney,
            uint tmp_lastSaleTime
            )
            {
                tmp_currentTimeBank = currentTimeBank;
                tmp_stepTimeSale = stepTimeSale;
                tmp_minPrice = minPrice;
                tmp_reallyPrice = reallyPrice;
                tmp_added_to_the_bank = added_to_the_bank;
                tmp_marketCount = marketCount; 
                tmp_numberOfWins = numberOfWins;
                tmp_getMoneyCount = getMoneyCount;

                tmp_lastmoney = lastmoney;   
                tmp_totalClosedBID = totalClosedBID;
                tmp_bankMoney = bankMoney;
                tmp_lastSaleTime = lastSaleTime;
    }

}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_storageAddress","type":"address"}],"name":"transferStorage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getProperty","outputs":[{"name":"tmp_currentTimeBank","type":"uint256"},{"name":"tmp_stepTimeSale","type":"uint256"},{"name":"tmp_minPrice","type":"uint256"},{"name":"tmp_reallyPrice","type":"uint256"},{"name":"tmp_added_to_the_bank","type":"uint256"},{"name":"tmp_marketCount","type":"uint256"},{"name":"tmp_numberOfWins","type":"uint256"},{"name":"tmp_getMoneyCount","type":"uint256"},{"name":"tmp_lastmoney","type":"uint256"},{"name":"tmp_totalClosedBID","type":"uint256"},{"name":"tmp_bankMoney","type":"uint256"},{"name":"tmp_lastSaleTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_stepTimeSale","type":"uint256"}],"name":"setStepTimeSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"added_to_the_bank","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentTimeBank","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_bunnyId","type":"uint32"}],"name":"ownerOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addrs","type":"address[]"}],"name":"removeAddressesFromWhitelist","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeAddressFromWhitelist","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_text","type":"string"}],"name":"buyAdvert","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_bunnyid","type":"uint32"}],"name":"currentPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"getMoney","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getInWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"checkContract","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"percentBank","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bunnyId","type":"uint32"}],"name":"transferFromBunny","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_pubAddress","type":"address"}],"name":"transferContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_coefficientTimeStep","type":"uint256"}],"name":"setCoefficientTimeStep","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_add","type":"address"}],"name":"transferOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"advertising","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bunnyId","type":"uint32"},{"name":"_money","type":"uint256"}],"name":"startMarket","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_bunnyId","type":"uint32"},{"name":"_money","type":"uint256"}],"name":"startMarketOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rangePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_minPrice","type":"uint256"}],"name":"setMinPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_reallyPrice","type":"uint256"}],"name":"setReallyPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getOwnerMoney","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"noAdvert","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lastmoney","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minTimeBank","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"timeCost","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isPauseSave","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rangeTimeBank","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addAddressToWhitelist","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_maxTimeBank","type":"uint256"}],"name":"setMaxTimeBank","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"storageAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_add","type":"address"}],"name":"transferMoney","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lastOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_currentTimeBank","type":"uint256"}],"name":"setCurrentTimeBank","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_commission","type":"uint256"}],"name":"setPercentCommission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bunnyId","type":"uint32"}],"name":"buyBunny","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"maxTimeBank","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"commission_mom","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_rangePrice","type":"uint256"}],"name":"setRangePrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_bunnyId","type":"uint32"}],"name":"timeBunny","outputs":[{"name":"can","type":"bool"},{"name":"timeleft","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_minTimeBank","type":"uint256"}],"name":"setMinTimeBank","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"bankMoney","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pubAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_rangeTimeBank","type":"uint256"}],"name":"setRangeTimeBank","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getMoneyCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getReallyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_percentBank","type":"uint256"}],"name":"setPercentBank","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"setPause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"countInvestors","type":"uint256"}],"name":"addCountInvestors","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"coefficientTimeStep","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfWins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stepTimeSale","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"commission","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addrs","type":"address[]"}],"name":"addAddressesToWhitelist","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"marketCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalClosedBID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastSaleTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bunnyId","type":"uint32"}],"name":"stopMarket","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bunnyId","type":"uint32"}],"name":"StopMarket","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bunnyId","type":"uint32"},{"indexed":false,"name":"money","type":"uint256"},{"indexed":false,"name":"timeStart","type":"uint256"},{"indexed":false,"name":"stepTimeSale","type":"uint256"}],"name":"StartMarket","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bunnyId","type":"uint32"},{"indexed":false,"name":"money","type":"uint256"}],"name":"BunnyBuy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"who","type":"address"},{"indexed":false,"name":"bank","type":"uint256"},{"indexed":false,"name":"timeLeft","type":"uint256"},{"indexed":false,"name":"timeRange","type":"uint256"}],"name":"Tournament","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bankMoney","type":"uint256"},{"indexed":false,"name":"countInvestor","type":"uint256"},{"indexed":false,"name":"lastOwner","type":"address"},{"indexed":false,"name":"addTime","type":"uint256"},{"indexed":false,"name":"stepTime","type":"uint256"}],"name":"OwnBank","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"motherId","type":"uint32"},{"indexed":false,"name":"bunnyId","type":"uint32"},{"indexed":false,"name":"money","type":"uint256"}],"name":"MotherMoney","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"}],"name":"WhitelistedAddressAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"}],"name":"WhitelistedAddressRemoved","type":"event"}]

60806040526000600360006101000a81548160ff0219169083151502179055506001600455655af3107a4000600555655af3107a4000600655601460075561a8c060085561b6d0600955600954600a556002600b556005600c556005600d556005600e55600a600f5560006010556000601155600060125560006013556040805190810160405280601881526020017f596f7572206164766572746973656d656e74206865726521000000000000000081525060149080519060200190620000c99291906200058d565b5060006015556000601655348015620000e157600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200017d33620001e0640100000000026401000000009004565b50620001ac7335ea9df0b7e2e450b1d129a6f81276103b84f3dc62000357640100000000026401000000009004565b620001da738ac4da82c4a1e0c1578558c5c685f8ae790da5a362000472640100000000026401000000009004565b6200063c565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200023e57600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151562000352576001600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd1bba68c128cc3f427e5831b3c6f99f480b6efa6b9e80c757768f6124158cc3f82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1600190505b919050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515620003b057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515620003ed57600080fd5b80601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515620004cb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200050857600080fd5b80601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620005d057805160ff191683800117855562000601565b8280016001018555821562000601579182015b8281111562000600578251825591602001919060010190620005e3565b5b50905062000610919062000614565b5090565b6200063991905b80821115620006355760008160009055506001016200061b565b5090565b90565b614632806200064c6000396000f3006080604052600436106102f6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630553b805146102fb578063077510701461033e5780630d466ef9146103b657806315e1c65c146103e35780631f9b9f8e1461040e57806323b7ec3b1461043957806324953eaa146104ac578063286dd3f51461052a5780632a2bf9a414610585578063308c0065146105e15780633262fd9a14610628578063336968f114610655578063338116b0146106b0578063346a2f9e146106df57806337410ea61461070a57806347635dac1461073d5780634bf6e007146107805780634fb2e45d146107ad578063573328ef146107f057806359e4eec9146108805780635cf42ebb146108bd5780635e670265146108fa5780635ea8cd12146109255780635ebce33014610952578063625101d51461097f57806364b9ca08146109d65780636f00ad8a146109ed57806370cfadcb14610a1857806375365c8014610a435780637878b66a14610a8a578063792bbb5514610ab95780637b9417c814610ae4578063802a38aa14610b3f5780638456cb5914610b6c57806385aa92a714610b9b57806386ce983514610bf25780638a56ca4514610c35578063921a723714610c8c57806398fa758414610cb95780639b19251a14610ce6578063a210a67614610d41578063a3e4979714610d67578063a7da611f14610d92578063ad3cc19014610dbd578063aecc629914610dea578063b1d915da14610e3c578063b81e3b1914610e69578063b96528fd14610e94578063bf5b3b1814610eeb578063bf7540d214610f18578063ced9e50414610f43578063d06f0e6d14610f6e578063d431b1ac14610f9b578063d83735a014610fb2578063d83905d814610fdf578063d85f44501461100a578063e0fe7f5c14611035578063e148919114611060578063e2ec6ec31461108b578063e45be8eb14611109578063ec97908214611134578063f65045df1461115f578063f897c9981461118a578063fb6c2b6f146111b5575b600080fd5b34801561030757600080fd5b5061033c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111fc565b005b34801561034a57600080fd5b50610353611315565b604051808d81526020018c81526020018b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019c5050505050505050505050505060405180910390f35b3480156103c257600080fd5b506103e160048036038101908080359060200190929190505050611371565b005b3480156103ef57600080fd5b506103f86113e2565b6040518082815260200191505060405180910390f35b34801561041a57600080fd5b506104236113e8565b6040518082815260200191505060405180910390f35b34801561044557600080fd5b5061046a600480360381019080803563ffffffff1690602001909291905050506113ee565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104b857600080fd5b50610510600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506114cf565b604051808215151515815260200191505060405180910390f35b34801561053657600080fd5b5061056b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611578565b604051808215151515815260200191505060405180910390f35b6105df600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506116ec565b005b3480156105ed57600080fd5b50610612600480360381019080803563ffffffff169060200190929190505050611735565b6040518082815260200191505060405180910390f35b34801561063457600080fd5b506106536004803603810190808035906020019092919050505061199a565b005b34801561066157600080fd5b50610696600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a9f565b604051808215151515815260200191505060405180910390f35b3480156106bc57600080fd5b506106c5611af5565b604051808215151515815260200191505060405180910390f35b3480156106eb57600080fd5b506106f4611bbd565b6040518082815260200191505060405180910390f35b34801561071657600080fd5b5061073b600480360381019080803563ffffffff169060200190929190505050611bc3565b005b34801561074957600080fd5b5061077e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611df1565b005b34801561078c57600080fd5b506107ab60048036038101908080359060200190929190505050611f0a565b005b3480156107b957600080fd5b506107ee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f7b565b005b3480156107fc57600080fd5b50610805612050565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561084557808201518184015260208101905061082a565b50505050905090810190601f1680156108725780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561088c57600080fd5b506108bb600480360381019080803563ffffffff169060200190929190803590602001909291905050506120ee565b005b3480156108c957600080fd5b506108f8600480360381019080803563ffffffff16906020019092919080359060200190929190505050612475565b005b34801561090657600080fd5b5061090f612732565b6040518082815260200191505060405180910390f35b34801561093157600080fd5b5061095060048036038101908080359060200190929190505050612738565b005b34801561095e57600080fd5b5061097d600480360381019080803590602001909291905050506127a9565b005b34801561098b57600080fd5b5061099461281a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109e257600080fd5b506109eb61289f565b005b3480156109f957600080fd5b50610a02612920565b6040518082815260200191505060405180910390f35b348015610a2457600080fd5b50610a2d612926565b6040518082815260200191505060405180910390f35b348015610a4f57600080fd5b50610a74600480360381019080803563ffffffff16906020019092919050505061292c565b6040518082815260200191505060405180910390f35b348015610a9657600080fd5b50610a9f612944565b604051808215151515815260200191505060405180910390f35b348015610ac557600080fd5b50610ace61295c565b6040518082815260200191505060405180910390f35b348015610af057600080fd5b50610b25600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612962565b604051808215151515815260200191505060405180910390f35b348015610b4b57600080fd5b50610b6a60048036038101908080359060200190929190505050612ad7565b005b348015610b7857600080fd5b50610b81612b48565b604051808215151515815260200191505060405180910390f35b348015610ba757600080fd5b50610bb0612b5b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610bfe57600080fd5b50610c33600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b81565b005b348015610c4157600080fd5b50610c4a612c57565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c9857600080fd5b50610cb760048036038101908080359060200190929190505050612c7d565b005b348015610cc557600080fd5b50610ce460048036038101908080359060200190929190505050612cee565b005b348015610cf257600080fd5b50610d27600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d5f565b604051808215151515815260200191505060405180910390f35b610d65600480360381019080803563ffffffff169060200190929190505050612d7f565b005b348015610d7357600080fd5b50610d7c61344c565b6040518082815260200191505060405180910390f35b348015610d9e57600080fd5b50610da7613452565b6040518082815260200191505060405180910390f35b348015610dc957600080fd5b50610de860048036038101908080359060200190929190505050613458565b005b348015610df657600080fd5b50610e1b600480360381019080803563ffffffff1690602001909291905050506134c9565b60405180831515151581526020018281526020019250505060405180910390f35b348015610e4857600080fd5b50610e676004803603810190808035906020019092919050505061357b565b005b348015610e7557600080fd5b50610e7e6135ec565b6040518082815260200191505060405180910390f35b348015610ea057600080fd5b50610ea96135f2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ef757600080fd5b50610f1660048036038101908080359060200190929190505050613618565b005b348015610f2457600080fd5b50610f2d613689565b6040518082815260200191505060405180910390f35b348015610f4f57600080fd5b50610f5861368f565b6040518082815260200191505060405180910390f35b348015610f7a57600080fd5b50610f9960048036038101908080359060200190929190505050613699565b005b348015610fa757600080fd5b50610fb061370a565b005b348015610fbe57600080fd5b50610fdd6004803603810190808035906020019092919050505061378e565b005b348015610feb57600080fd5b50610ff46137f0565b6040518082815260200191505060405180910390f35b34801561101657600080fd5b5061101f6137f6565b6040518082815260200191505060405180910390f35b34801561104157600080fd5b5061104a6137fc565b6040518082815260200191505060405180910390f35b34801561106c57600080fd5b50611075613802565b6040518082815260200191505060405180910390f35b34801561109757600080fd5b506110ef60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050613808565b604051808215151515815260200191505060405180910390f35b34801561111557600080fd5b5061111e6138b1565b6040518082815260200191505060405180910390f35b34801561114057600080fd5b506111496138b7565b6040518082815260200191505060405180910390f35b34801561116b57600080fd5b506111746138bd565b6040518082815260200191505060405180910390f35b34801561119657600080fd5b5061119f6138c3565b6040518082815260200191505060405180910390f35b3480156111c157600080fd5b506111e6600480360381019080803563ffffffff1690602001909291905050506138c9565b6040518082815260200191505060405180910390f35b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561125457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561129057600080fd5b80601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600080600080600080600080600080600a549b506004549a50600554995060065498506010549750601154965060125495506013549450601554935060165492506019549150601a549050909192939495969798999a9b565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156113c957600080fd5b6000811115156113d857600080fd5b8060048190555050565b60105481565b600a5481565b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b7ec3b836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b15801561148d57600080fd5b505af11580156114a1573d6000803e3d6000fd5b505050506040513d60208110156114b757600080fd5b81019080805190602001909291905050509050919050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561152d57600080fd5b600090505b82518110156115725761155b838281518110151561154c57fe5b90602001906020020151611578565b1561156557600191505b8080600101915050611532565b50919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115d557600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116e7576000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ff1abf01a1043b7c244d128e8595cf0c1d10743b022b03a02dffd8ca3bf729f5a82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1600190505b919050565b600260065402341115156116ff57600080fd5b611707611af5565b151561171257600080fd5b806014908051906020019061172892919061453e565b5061173234613bdf565b50565b600080600080600080601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637878b66a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156117c457600080fd5b505af11580156117d8573d6000803e3d6000fd5b505050506040513d60208110156117ee57600080fd5b8101908080519060200190929190505050151561180a57600080fd5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365074690886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b1580156118a757600080fd5b505af11580156118bb573d6000803e3d6000fd5b505050506040513d60208110156118d157600080fd5b81019080805190602001909291905050509450600085111561198f57611901606486613c1990919063ffffffff16565b9350611918600d5485613c3490919063ffffffff16565b925061192d8386613c6f90919063ffffffff16565b9450611944600e5485613c3490919063ffffffff16565b91506119598286613c6f90919063ffffffff16565b9450611970600f5485613c3490919063ffffffff16565b90506119858186613c6f90919063ffffffff16565b9450849550611990565b5b5050505050919050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156119f257600080fd5b803073ffffffffffffffffffffffffffffffffffffffff163110151515611a1857600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a80573d6000803e3d6000fd5b50611a9681601354613c6f90919063ffffffff16565b60138190555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637214d6c36040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611b7d57600080fd5b505af1158015611b91573d6000803e3d6000fd5b505050506040513d6020811015611ba757600080fd5b8101908080519060200190929190505050905090565b600f5481565b611bcb611af5565b1515611bd657600080fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166384269ed9601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b7ec3b846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b158015611cb157600080fd5b505af1158015611cc5573d6000803e3d6000fd5b505050506040513d6020811015611cdb57600080fd5b810190808051906020019092919050505033846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018263ffffffff1663ffffffff1681526020019350505050602060405180830381600087803b158015611db257600080fd5b505af1158015611dc6573d6000803e3d6000fd5b505050506040513d6020811015611ddc57600080fd5b81019080805190602001909291905050505050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611e4957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e8557600080fd5b80601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611f6257600080fd5b600081111515611f7157600080fd5b80600c8190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611fd657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561204d57806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60148054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120e65780601f106120bb576101008083540402835291602001916120e6565b820191906000526020600020905b8154815290600101906020018083116120c957829003601f168201915b505050505081565b6120f6611af5565b151561210157600080fd5b612109612944565b151561211457600080fd5b8061211e83611735565b1415151561212b57600080fd5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637878b66a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156121b157600080fd5b505af11580156121c5573d6000803e3d6000fd5b505050506040513d60208110156121db57600080fd5b810190808051906020019092919050505015156121f757600080fd5b600654811015151561220857600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b7ec3b846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b1580156122bc57600080fd5b505af11580156122d0573d6000803e3d6000fd5b505050506040513d60208110156122e657600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614151561231957600080fd5b42601760008463ffffffff1663ffffffff16815260200190815260200160002081905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318997b3f83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808363ffffffff1663ffffffff16815260200182815260200192505050600060405180830381600087803b1580156123e257600080fd5b505af11580156123f6573d6000803e3d6000fd5b505050507f569e13d801c403c622badd51a491366dab7cfa96e4c58e50bf32baa393b176008261242584611735565b42600454604051808563ffffffff1663ffffffff16815260200184815260200183815260200182815260200194505050505060405180910390a16011600081548092919060010191905055505050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156124cd57600080fd5b6124d5611af5565b15156124e057600080fd5b6124e8612944565b15156124f357600080fd5b806124fd83611735565b1415151561250a57600080fd5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637878b66a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561259057600080fd5b505af11580156125a4573d6000803e3d6000fd5b505050506040513d60208110156125ba57600080fd5b810190808051906020019092919050505015156125d657600080fd5b42601760008463ffffffff1663ffffffff16815260200190815260200160002081905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318997b3f83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808363ffffffff1663ffffffff16815260200182815260200192505050600060405180830381600087803b15801561269f57600080fd5b505af11580156126b3573d6000803e3d6000fd5b505050507f569e13d801c403c622badd51a491366dab7cfa96e4c58e50bf32baa393b17600826126e284611735565b42600454604051808563ffffffff1663ffffffff16815260200184815260200183815260200182815260200194505050505060405180910390a16011600081548092919060010191905055505050565b60075481565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561279057600080fd5b60008111151561279f57600080fd5b8060058190555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561280157600080fd5b60008111151561281057600080fd5b8060068190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561287757600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156128f757600080fd5b60206040519081016040528060008152506014908051906020019061291d92919061453e565b50565b60155481565b60085481565b60176020528060005260406000206000915090505481565b6000600360009054906101000a900460ff1615905090565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129bf57600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612ad2576001600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd1bba68c128cc3f427e5831b3c6f99f480b6efa6b9e80c757768f6124158cc3f82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1600190505b919050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612b2f57600080fd5b600081111515612b3e57600080fd5b8060098190555050565b600360009054906101000a900460ff1681565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bdc57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515612c545780600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612cd557600080fd5b600081111515612ce457600080fd5b80600a8190555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612d4657600080fd5b600081111515612d5557600080fd5b80600d8190555050565b60026020528060005260406000206000915054906101000a900460ff1681565b6000612d89612944565b1515612d9457600080fd5b612d9c611af5565b1515612da757600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b7ec3b846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b158015612e5b57600080fd5b505af1158015612e6f573d6000803e3d6000fd5b505050506040513d6020811015612e8557600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614151515612eb957600080fd5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637878b66a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612f3f57600080fd5b505af1158015612f53573d6000803e3d6000fd5b505050506040513d6020811015612f6957600080fd5b81019080805190602001909291905050501515612f8557600080fd5b612f8e82611735565b6015819055506015543410158015612fa95750601554600014155b1515612fb457600080fd5b612fbd826134c9565b5080915050801515612fce57600080fd5b601660008154809291906001019190505550612fe8613c8d565b6130cb601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b7ec3b846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b15801561308857600080fd5b505af115801561309c573d6000803e3d6000fd5b505050506040513d60208110156130b257600080fd5b8101908080519060200190929190505050601554613cad565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166384269ed9601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b7ec3b856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b1580156131a657600080fd5b505af11580156131ba573d6000803e3d6000fd5b505050506040513d60208110156131d057600080fd5b810190808051906020019092919050505033856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018263ffffffff1663ffffffff1681526020019350505050602060405180830381600087803b1580156132a757600080fd5b505af11580156132bb573d6000803e3d6000fd5b505050506040513d60208110156132d157600080fd5b8101908080519060200190929190505050506132ec82613d9c565b6132f5826138c9565b506132fe61426b565b6133066142bd565b33601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042601a819055507f493cc2351ea543bfa91fc2cfe57275db2524d5c87c59419132437329c64b5359601954601054601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601a54600a54604051808681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019550505050505060405180910390a17faa8b4456e402faf0f19bd69217f4f33657a1be47890a1c1130fba16e233d04c082601554604051808363ffffffff1663ffffffff1681526020018281526020019250505060405180910390a15050565b60095481565b600e5481565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156134b057600080fd5b6000811115156134bf57600080fd5b8060078190555050565b6000806000613502600454601760008763ffffffff1663ffffffff16815260200190815260200160002054613c6f90919063ffffffff16565b90506000601760008663ffffffff1663ffffffff168152602001908152602001600020541180156135335750804210155b15613545576001925060009150613575565b6000925061355c428261431190919063ffffffff16565b9050600081111561356f57809150613574565b600091505b5b50915091565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156135d357600080fd5b6000811115156135e257600080fd5b8060088190555050565b60195481565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561367057600080fd5b60008111151561367f57600080fd5b80600b8190555050565b60135481565b6000600654905090565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156136f157600080fd5b60008111151561370057600080fd5b80600f8190555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561376257600080fd5b600360009054906101000a900460ff1615600360006101000a81548160ff021916908315150217905550565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156137e657600080fd5b8060108190555050565b600c5481565b60125481565b60045481565b600d5481565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561386657600080fd5b600090505b82518110156138ab57613894838281518110151561388557fe5b90602001906020020151612962565b1561389e57600191505b808060010191505061386b565b50919050565b60055481565b60115481565b60165481565b601a5481565b60006138d3611af5565b15156138de57600080fd5b6138e6612944565b15156138f157600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b7ec3b846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b1580156139a557600080fd5b505af11580156139b9573d6000803e3d6000fd5b505050506040513d60208110156139cf57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515613a0257600080fd5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637878b66a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015613a8857600080fd5b505af1158015613a9c573d6000803e3d6000fd5b505050506040513d6020811015613ab257600080fd5b81019080805190602001909291905050501515613ace57600080fd5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639a16be46836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050600060405180830381600087803b158015613b6b57600080fd5b505af1158015613b7f573d6000803e3d6000fd5b505050507ff58a4f70d4c7b287095adb658be31ce93550932214806e2535581c2c4d7f30bd82604051808263ffffffff1663ffffffff16815260200191505060405180910390a16011600081548092919060019003919050559050919050565b613bf481601954613c6f90919063ffffffff16565b601981905550613c106001601054613c6f90919063ffffffff16565b60108190555050565b6000808284811515613c2757fe5b0490508091505092915050565b6000806000841415613c495760009150613c68565b8284029050828482811515613c5a57fe5b04141515613c6457fe5b8091505b5092915050565b6000808284019050838110151515613c8357fe5b8091505092915050565b42600a54601a54011015613ca457613ca361432a565b5b42601a81905550565b600080821115613d9757606482811515613cc357fe5b0490508273ffffffffffffffffffffffffffffffffffffffff166108fc600e54600f54600d54010160640383029081150290604051600060405180830381858888f19350505050158015613d1b573d6000803e3d6000fd5b50613d29600f548202613bdf565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600d5483029081150290604051600060405180830381858888f19350505050158015613d95573d6000803e3d6000fd5b505b505050565b600080613da76145be565b6000806000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365074690886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b158015613e4957600080fd5b505af1158015613e5d573d6000803e3d6000fd5b505050506040513d6020811015613e7357600080fd5b81019080805190602001909291905050509550600086111561426257613ea3606487613c1990919063ffffffff16565b9450601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663df4b2970886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff16815260200191505060a060405180830381600087803b158015613f4257600080fd5b505af1158015613f56573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060a0811015613f7b57600080fd5b81019080919050509350601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166327904ee0886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b15801561402257600080fd5b505af1158015614036573d6000803e3d6000fd5b505050506040513d602081101561404c57600080fd5b8101908080519060200190929190505050925060008311156142615761407f83600e548702613c1990919063ffffffff16565b9150600090505b6005811015614260576000848260058110151561409f57fe5b602002015163ffffffff1614151561425357601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b7ec3b85836005811015156140fd57fe5b60200201516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b15801561416057600080fd5b505af1158015614174573d6000803e3d6000fd5b505050506040513d602081101561418a57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156141e0573d6000803e3d6000fd5b507f0aca339aa043eea06010a733837f51ca2d4915dfbcf7a7f7966d5e1376d391f8848260058110151561421057fe5b60200201518884604051808463ffffffff1663ffffffff1681526020018363ffffffff1663ffffffff168152602001828152602001935050505060405180910390a15b8080600101915050614086565b5b5b50505050505050565b60008060105411801561428057506000600754115b156142ba5761429c600754601054613c1990919063ffffffff16565b90506142b381600554613c3490919063ffffffff16565b6006819055505b50565b600080600b54111561430e576142e0600b54601054613c1990919063ffffffff16565b90506142f78160095461431190919063ffffffff16565b9050600854600a54111561430d5780600a819055505b5b50565b600082821115151561431f57fe5b818303905092915050565b60003073ffffffffffffffffffffffffffffffffffffffff163111801561436a57506019543073ffffffffffffffffffffffffffffffffffffffff163110155b80156143c55750600073ffffffffffffffffffffffffffffffffffffffff16601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561453c576020604051908101604052806000815250601490805190602001906143f092919061453e565b506000601081905550600554600681905550600954600a81905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6019549081150290604051600060405180830381858888f19350505050158015614475573d6000803e3d6000fd5b5061448c6001601254613c6f90919063ffffffff16565b6012819055507fc252bbabd3f2d9e9985b6663f881e5ce0e49684902f06ac94c24cb9aaaa672e2601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601954601a5442604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200194505050505060405180910390a160006019819055505b565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061457f57805160ff19168380011785556145ad565b828001600101855582156145ad579182015b828111156145ac578251825591602001919060010190614591565b5b5090506145ba91906145e1565b5090565b60a060405190810160405280600590602082028038833980820191505090505090565b61460391905b808211156145ff5760008160009055506001016145e7565b5090565b905600a165627a7a723058203bde59b06fcdaf134e80eab3fae1c5bde3180e6961b19a2a954ea7767be61a170029

Deployed Bytecode

0x6080604052600436106102f6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630553b805146102fb578063077510701461033e5780630d466ef9146103b657806315e1c65c146103e35780631f9b9f8e1461040e57806323b7ec3b1461043957806324953eaa146104ac578063286dd3f51461052a5780632a2bf9a414610585578063308c0065146105e15780633262fd9a14610628578063336968f114610655578063338116b0146106b0578063346a2f9e146106df57806337410ea61461070a57806347635dac1461073d5780634bf6e007146107805780634fb2e45d146107ad578063573328ef146107f057806359e4eec9146108805780635cf42ebb146108bd5780635e670265146108fa5780635ea8cd12146109255780635ebce33014610952578063625101d51461097f57806364b9ca08146109d65780636f00ad8a146109ed57806370cfadcb14610a1857806375365c8014610a435780637878b66a14610a8a578063792bbb5514610ab95780637b9417c814610ae4578063802a38aa14610b3f5780638456cb5914610b6c57806385aa92a714610b9b57806386ce983514610bf25780638a56ca4514610c35578063921a723714610c8c57806398fa758414610cb95780639b19251a14610ce6578063a210a67614610d41578063a3e4979714610d67578063a7da611f14610d92578063ad3cc19014610dbd578063aecc629914610dea578063b1d915da14610e3c578063b81e3b1914610e69578063b96528fd14610e94578063bf5b3b1814610eeb578063bf7540d214610f18578063ced9e50414610f43578063d06f0e6d14610f6e578063d431b1ac14610f9b578063d83735a014610fb2578063d83905d814610fdf578063d85f44501461100a578063e0fe7f5c14611035578063e148919114611060578063e2ec6ec31461108b578063e45be8eb14611109578063ec97908214611134578063f65045df1461115f578063f897c9981461118a578063fb6c2b6f146111b5575b600080fd5b34801561030757600080fd5b5061033c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111fc565b005b34801561034a57600080fd5b50610353611315565b604051808d81526020018c81526020018b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019c5050505050505050505050505060405180910390f35b3480156103c257600080fd5b506103e160048036038101908080359060200190929190505050611371565b005b3480156103ef57600080fd5b506103f86113e2565b6040518082815260200191505060405180910390f35b34801561041a57600080fd5b506104236113e8565b6040518082815260200191505060405180910390f35b34801561044557600080fd5b5061046a600480360381019080803563ffffffff1690602001909291905050506113ee565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104b857600080fd5b50610510600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506114cf565b604051808215151515815260200191505060405180910390f35b34801561053657600080fd5b5061056b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611578565b604051808215151515815260200191505060405180910390f35b6105df600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506116ec565b005b3480156105ed57600080fd5b50610612600480360381019080803563ffffffff169060200190929190505050611735565b6040518082815260200191505060405180910390f35b34801561063457600080fd5b506106536004803603810190808035906020019092919050505061199a565b005b34801561066157600080fd5b50610696600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a9f565b604051808215151515815260200191505060405180910390f35b3480156106bc57600080fd5b506106c5611af5565b604051808215151515815260200191505060405180910390f35b3480156106eb57600080fd5b506106f4611bbd565b6040518082815260200191505060405180910390f35b34801561071657600080fd5b5061073b600480360381019080803563ffffffff169060200190929190505050611bc3565b005b34801561074957600080fd5b5061077e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611df1565b005b34801561078c57600080fd5b506107ab60048036038101908080359060200190929190505050611f0a565b005b3480156107b957600080fd5b506107ee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f7b565b005b3480156107fc57600080fd5b50610805612050565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561084557808201518184015260208101905061082a565b50505050905090810190601f1680156108725780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561088c57600080fd5b506108bb600480360381019080803563ffffffff169060200190929190803590602001909291905050506120ee565b005b3480156108c957600080fd5b506108f8600480360381019080803563ffffffff16906020019092919080359060200190929190505050612475565b005b34801561090657600080fd5b5061090f612732565b6040518082815260200191505060405180910390f35b34801561093157600080fd5b5061095060048036038101908080359060200190929190505050612738565b005b34801561095e57600080fd5b5061097d600480360381019080803590602001909291905050506127a9565b005b34801561098b57600080fd5b5061099461281a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109e257600080fd5b506109eb61289f565b005b3480156109f957600080fd5b50610a02612920565b6040518082815260200191505060405180910390f35b348015610a2457600080fd5b50610a2d612926565b6040518082815260200191505060405180910390f35b348015610a4f57600080fd5b50610a74600480360381019080803563ffffffff16906020019092919050505061292c565b6040518082815260200191505060405180910390f35b348015610a9657600080fd5b50610a9f612944565b604051808215151515815260200191505060405180910390f35b348015610ac557600080fd5b50610ace61295c565b6040518082815260200191505060405180910390f35b348015610af057600080fd5b50610b25600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612962565b604051808215151515815260200191505060405180910390f35b348015610b4b57600080fd5b50610b6a60048036038101908080359060200190929190505050612ad7565b005b348015610b7857600080fd5b50610b81612b48565b604051808215151515815260200191505060405180910390f35b348015610ba757600080fd5b50610bb0612b5b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610bfe57600080fd5b50610c33600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b81565b005b348015610c4157600080fd5b50610c4a612c57565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c9857600080fd5b50610cb760048036038101908080359060200190929190505050612c7d565b005b348015610cc557600080fd5b50610ce460048036038101908080359060200190929190505050612cee565b005b348015610cf257600080fd5b50610d27600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d5f565b604051808215151515815260200191505060405180910390f35b610d65600480360381019080803563ffffffff169060200190929190505050612d7f565b005b348015610d7357600080fd5b50610d7c61344c565b6040518082815260200191505060405180910390f35b348015610d9e57600080fd5b50610da7613452565b6040518082815260200191505060405180910390f35b348015610dc957600080fd5b50610de860048036038101908080359060200190929190505050613458565b005b348015610df657600080fd5b50610e1b600480360381019080803563ffffffff1690602001909291905050506134c9565b60405180831515151581526020018281526020019250505060405180910390f35b348015610e4857600080fd5b50610e676004803603810190808035906020019092919050505061357b565b005b348015610e7557600080fd5b50610e7e6135ec565b6040518082815260200191505060405180910390f35b348015610ea057600080fd5b50610ea96135f2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ef757600080fd5b50610f1660048036038101908080359060200190929190505050613618565b005b348015610f2457600080fd5b50610f2d613689565b6040518082815260200191505060405180910390f35b348015610f4f57600080fd5b50610f5861368f565b6040518082815260200191505060405180910390f35b348015610f7a57600080fd5b50610f9960048036038101908080359060200190929190505050613699565b005b348015610fa757600080fd5b50610fb061370a565b005b348015610fbe57600080fd5b50610fdd6004803603810190808035906020019092919050505061378e565b005b348015610feb57600080fd5b50610ff46137f0565b6040518082815260200191505060405180910390f35b34801561101657600080fd5b5061101f6137f6565b6040518082815260200191505060405180910390f35b34801561104157600080fd5b5061104a6137fc565b6040518082815260200191505060405180910390f35b34801561106c57600080fd5b50611075613802565b6040518082815260200191505060405180910390f35b34801561109757600080fd5b506110ef60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050613808565b604051808215151515815260200191505060405180910390f35b34801561111557600080fd5b5061111e6138b1565b6040518082815260200191505060405180910390f35b34801561114057600080fd5b506111496138b7565b6040518082815260200191505060405180910390f35b34801561116b57600080fd5b506111746138bd565b6040518082815260200191505060405180910390f35b34801561119657600080fd5b5061119f6138c3565b6040518082815260200191505060405180910390f35b3480156111c157600080fd5b506111e6600480360381019080803563ffffffff1690602001909291905050506138c9565b6040518082815260200191505060405180910390f35b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561125457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561129057600080fd5b80601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600080600080600080600080600080600a549b506004549a50600554995060065498506010549750601154965060125495506013549450601554935060165492506019549150601a549050909192939495969798999a9b565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156113c957600080fd5b6000811115156113d857600080fd5b8060048190555050565b60105481565b600a5481565b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b7ec3b836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b15801561148d57600080fd5b505af11580156114a1573d6000803e3d6000fd5b505050506040513d60208110156114b757600080fd5b81019080805190602001909291905050509050919050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561152d57600080fd5b600090505b82518110156115725761155b838281518110151561154c57fe5b90602001906020020151611578565b1561156557600191505b8080600101915050611532565b50919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115d557600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116e7576000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ff1abf01a1043b7c244d128e8595cf0c1d10743b022b03a02dffd8ca3bf729f5a82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1600190505b919050565b600260065402341115156116ff57600080fd5b611707611af5565b151561171257600080fd5b806014908051906020019061172892919061453e565b5061173234613bdf565b50565b600080600080600080601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637878b66a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156117c457600080fd5b505af11580156117d8573d6000803e3d6000fd5b505050506040513d60208110156117ee57600080fd5b8101908080519060200190929190505050151561180a57600080fd5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365074690886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b1580156118a757600080fd5b505af11580156118bb573d6000803e3d6000fd5b505050506040513d60208110156118d157600080fd5b81019080805190602001909291905050509450600085111561198f57611901606486613c1990919063ffffffff16565b9350611918600d5485613c3490919063ffffffff16565b925061192d8386613c6f90919063ffffffff16565b9450611944600e5485613c3490919063ffffffff16565b91506119598286613c6f90919063ffffffff16565b9450611970600f5485613c3490919063ffffffff16565b90506119858186613c6f90919063ffffffff16565b9450849550611990565b5b5050505050919050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156119f257600080fd5b803073ffffffffffffffffffffffffffffffffffffffff163110151515611a1857600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a80573d6000803e3d6000fd5b50611a9681601354613c6f90919063ffffffff16565b60138190555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637214d6c36040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611b7d57600080fd5b505af1158015611b91573d6000803e3d6000fd5b505050506040513d6020811015611ba757600080fd5b8101908080519060200190929190505050905090565b600f5481565b611bcb611af5565b1515611bd657600080fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166384269ed9601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b7ec3b846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b158015611cb157600080fd5b505af1158015611cc5573d6000803e3d6000fd5b505050506040513d6020811015611cdb57600080fd5b810190808051906020019092919050505033846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018263ffffffff1663ffffffff1681526020019350505050602060405180830381600087803b158015611db257600080fd5b505af1158015611dc6573d6000803e3d6000fd5b505050506040513d6020811015611ddc57600080fd5b81019080805190602001909291905050505050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611e4957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e8557600080fd5b80601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611f6257600080fd5b600081111515611f7157600080fd5b80600c8190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611fd657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561204d57806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60148054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120e65780601f106120bb576101008083540402835291602001916120e6565b820191906000526020600020905b8154815290600101906020018083116120c957829003601f168201915b505050505081565b6120f6611af5565b151561210157600080fd5b612109612944565b151561211457600080fd5b8061211e83611735565b1415151561212b57600080fd5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637878b66a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156121b157600080fd5b505af11580156121c5573d6000803e3d6000fd5b505050506040513d60208110156121db57600080fd5b810190808051906020019092919050505015156121f757600080fd5b600654811015151561220857600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b7ec3b846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b1580156122bc57600080fd5b505af11580156122d0573d6000803e3d6000fd5b505050506040513d60208110156122e657600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614151561231957600080fd5b42601760008463ffffffff1663ffffffff16815260200190815260200160002081905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318997b3f83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808363ffffffff1663ffffffff16815260200182815260200192505050600060405180830381600087803b1580156123e257600080fd5b505af11580156123f6573d6000803e3d6000fd5b505050507f569e13d801c403c622badd51a491366dab7cfa96e4c58e50bf32baa393b176008261242584611735565b42600454604051808563ffffffff1663ffffffff16815260200184815260200183815260200182815260200194505050505060405180910390a16011600081548092919060010191905055505050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156124cd57600080fd5b6124d5611af5565b15156124e057600080fd5b6124e8612944565b15156124f357600080fd5b806124fd83611735565b1415151561250a57600080fd5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637878b66a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561259057600080fd5b505af11580156125a4573d6000803e3d6000fd5b505050506040513d60208110156125ba57600080fd5b810190808051906020019092919050505015156125d657600080fd5b42601760008463ffffffff1663ffffffff16815260200190815260200160002081905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318997b3f83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808363ffffffff1663ffffffff16815260200182815260200192505050600060405180830381600087803b15801561269f57600080fd5b505af11580156126b3573d6000803e3d6000fd5b505050507f569e13d801c403c622badd51a491366dab7cfa96e4c58e50bf32baa393b17600826126e284611735565b42600454604051808563ffffffff1663ffffffff16815260200184815260200183815260200182815260200194505050505060405180910390a16011600081548092919060010191905055505050565b60075481565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561279057600080fd5b60008111151561279f57600080fd5b8060058190555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561280157600080fd5b60008111151561281057600080fd5b8060068190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561287757600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156128f757600080fd5b60206040519081016040528060008152506014908051906020019061291d92919061453e565b50565b60155481565b60085481565b60176020528060005260406000206000915090505481565b6000600360009054906101000a900460ff1615905090565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129bf57600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612ad2576001600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd1bba68c128cc3f427e5831b3c6f99f480b6efa6b9e80c757768f6124158cc3f82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1600190505b919050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612b2f57600080fd5b600081111515612b3e57600080fd5b8060098190555050565b600360009054906101000a900460ff1681565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bdc57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515612c545780600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612cd557600080fd5b600081111515612ce457600080fd5b80600a8190555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612d4657600080fd5b600081111515612d5557600080fd5b80600d8190555050565b60026020528060005260406000206000915054906101000a900460ff1681565b6000612d89612944565b1515612d9457600080fd5b612d9c611af5565b1515612da757600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b7ec3b846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b158015612e5b57600080fd5b505af1158015612e6f573d6000803e3d6000fd5b505050506040513d6020811015612e8557600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614151515612eb957600080fd5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637878b66a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612f3f57600080fd5b505af1158015612f53573d6000803e3d6000fd5b505050506040513d6020811015612f6957600080fd5b81019080805190602001909291905050501515612f8557600080fd5b612f8e82611735565b6015819055506015543410158015612fa95750601554600014155b1515612fb457600080fd5b612fbd826134c9565b5080915050801515612fce57600080fd5b601660008154809291906001019190505550612fe8613c8d565b6130cb601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b7ec3b846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b15801561308857600080fd5b505af115801561309c573d6000803e3d6000fd5b505050506040513d60208110156130b257600080fd5b8101908080519060200190929190505050601554613cad565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166384269ed9601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b7ec3b856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b1580156131a657600080fd5b505af11580156131ba573d6000803e3d6000fd5b505050506040513d60208110156131d057600080fd5b810190808051906020019092919050505033856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018263ffffffff1663ffffffff1681526020019350505050602060405180830381600087803b1580156132a757600080fd5b505af11580156132bb573d6000803e3d6000fd5b505050506040513d60208110156132d157600080fd5b8101908080519060200190929190505050506132ec82613d9c565b6132f5826138c9565b506132fe61426b565b6133066142bd565b33601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042601a819055507f493cc2351ea543bfa91fc2cfe57275db2524d5c87c59419132437329c64b5359601954601054601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601a54600a54604051808681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019550505050505060405180910390a17faa8b4456e402faf0f19bd69217f4f33657a1be47890a1c1130fba16e233d04c082601554604051808363ffffffff1663ffffffff1681526020018281526020019250505060405180910390a15050565b60095481565b600e5481565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156134b057600080fd5b6000811115156134bf57600080fd5b8060078190555050565b6000806000613502600454601760008763ffffffff1663ffffffff16815260200190815260200160002054613c6f90919063ffffffff16565b90506000601760008663ffffffff1663ffffffff168152602001908152602001600020541180156135335750804210155b15613545576001925060009150613575565b6000925061355c428261431190919063ffffffff16565b9050600081111561356f57809150613574565b600091505b5b50915091565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156135d357600080fd5b6000811115156135e257600080fd5b8060088190555050565b60195481565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561367057600080fd5b60008111151561367f57600080fd5b80600b8190555050565b60135481565b6000600654905090565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156136f157600080fd5b60008111151561370057600080fd5b80600f8190555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561376257600080fd5b600360009054906101000a900460ff1615600360006101000a81548160ff021916908315150217905550565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156137e657600080fd5b8060108190555050565b600c5481565b60125481565b60045481565b600d5481565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561386657600080fd5b600090505b82518110156138ab57613894838281518110151561388557fe5b90602001906020020151612962565b1561389e57600191505b808060010191505061386b565b50919050565b60055481565b60115481565b60165481565b601a5481565b60006138d3611af5565b15156138de57600080fd5b6138e6612944565b15156138f157600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b7ec3b846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b1580156139a557600080fd5b505af11580156139b9573d6000803e3d6000fd5b505050506040513d60208110156139cf57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515613a0257600080fd5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637878b66a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015613a8857600080fd5b505af1158015613a9c573d6000803e3d6000fd5b505050506040513d6020811015613ab257600080fd5b81019080805190602001909291905050501515613ace57600080fd5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639a16be46836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050600060405180830381600087803b158015613b6b57600080fd5b505af1158015613b7f573d6000803e3d6000fd5b505050507ff58a4f70d4c7b287095adb658be31ce93550932214806e2535581c2c4d7f30bd82604051808263ffffffff1663ffffffff16815260200191505060405180910390a16011600081548092919060019003919050559050919050565b613bf481601954613c6f90919063ffffffff16565b601981905550613c106001601054613c6f90919063ffffffff16565b60108190555050565b6000808284811515613c2757fe5b0490508091505092915050565b6000806000841415613c495760009150613c68565b8284029050828482811515613c5a57fe5b04141515613c6457fe5b8091505b5092915050565b6000808284019050838110151515613c8357fe5b8091505092915050565b42600a54601a54011015613ca457613ca361432a565b5b42601a81905550565b600080821115613d9757606482811515613cc357fe5b0490508273ffffffffffffffffffffffffffffffffffffffff166108fc600e54600f54600d54010160640383029081150290604051600060405180830381858888f19350505050158015613d1b573d6000803e3d6000fd5b50613d29600f548202613bdf565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600d5483029081150290604051600060405180830381858888f19350505050158015613d95573d6000803e3d6000fd5b505b505050565b600080613da76145be565b6000806000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365074690886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b158015613e4957600080fd5b505af1158015613e5d573d6000803e3d6000fd5b505050506040513d6020811015613e7357600080fd5b81019080805190602001909291905050509550600086111561426257613ea3606487613c1990919063ffffffff16565b9450601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663df4b2970886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff16815260200191505060a060405180830381600087803b158015613f4257600080fd5b505af1158015613f56573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060a0811015613f7b57600080fd5b81019080919050509350601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166327904ee0886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b15801561402257600080fd5b505af1158015614036573d6000803e3d6000fd5b505050506040513d602081101561404c57600080fd5b8101908080519060200190929190505050925060008311156142615761407f83600e548702613c1990919063ffffffff16565b9150600090505b6005811015614260576000848260058110151561409f57fe5b602002015163ffffffff1614151561425357601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b7ec3b85836005811015156140fd57fe5b60200201516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b15801561416057600080fd5b505af1158015614174573d6000803e3d6000fd5b505050506040513d602081101561418a57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156141e0573d6000803e3d6000fd5b507f0aca339aa043eea06010a733837f51ca2d4915dfbcf7a7f7966d5e1376d391f8848260058110151561421057fe5b60200201518884604051808463ffffffff1663ffffffff1681526020018363ffffffff1663ffffffff168152602001828152602001935050505060405180910390a15b8080600101915050614086565b5b5b50505050505050565b60008060105411801561428057506000600754115b156142ba5761429c600754601054613c1990919063ffffffff16565b90506142b381600554613c3490919063ffffffff16565b6006819055505b50565b600080600b54111561430e576142e0600b54601054613c1990919063ffffffff16565b90506142f78160095461431190919063ffffffff16565b9050600854600a54111561430d5780600a819055505b5b50565b600082821115151561431f57fe5b818303905092915050565b60003073ffffffffffffffffffffffffffffffffffffffff163111801561436a57506019543073ffffffffffffffffffffffffffffffffffffffff163110155b80156143c55750600073ffffffffffffffffffffffffffffffffffffffff16601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561453c576020604051908101604052806000815250601490805190602001906143f092919061453e565b506000601081905550600554600681905550600954600a81905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6019549081150290604051600060405180830381858888f19350505050158015614475573d6000803e3d6000fd5b5061448c6001601254613c6f90919063ffffffff16565b6012819055507fc252bbabd3f2d9e9985b6663f881e5ce0e49684902f06ac94c24cb9aaaa672e2601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601954601a5442604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200194505050505060405180910390a160006019819055505b565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061457f57805160ff19168380011785556145ad565b828001600101855582156145ad579182015b828111156145ac578251825591602001919060010190614591565b5b5090506145ba91906145e1565b5090565b60a060405190810160405280600590602082028038833980820191505090505090565b61460391905b808211156145ff5760008160009055506001016145e7565b5090565b905600a165627a7a723058203bde59b06fcdaf134e80eab3fae1c5bde3180e6961b19a2a954ea7767be61a170029

Swarm Source

bzzr://3bde59b06fcdaf134e80eab3fae1c5bde3180e6961b19a2a954ea7767be61a17

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ 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.