Contract 0xdDFc21DF6f2556528b21574695c7b33f22e60A70

 

Contract Overview

ETH777
Balance:
79.366817202789649539 Ether

EtherValue:
$11,628.03 (@ $146.51/ETH)
TxHash Block Age From To Value [TxFee]
0xb758e76f4dcd9797fff3ef9ca39f66b2cfedaf3f7f0aa894f7afa57c9357c24c72383771 hr 2 mins ago0x06152e06f4efe49303d716b1ce755739fece8392  IN   ETH7770 Ether0.000570342512
0x036a326d72d1d6f1f35d4de89d6391e7c222a2b51969238abfb8c08a547fea3e72383591 hr 7 mins ago0x4a9fa4a4b9b92723b24e14b5c6921afb2c413609  IN   ETH7770 Ether0.0002874
0xd7954b602240658a7db960c118c61d6cd22ef6325bcad4911360515452f05a0c72382881 hr 34 mins ago0x06152e06f4efe49303d716b1ce755739fece8392  IN   ETH7770 Ether0.000202095246
0xb8999e2ff359f727f6148f6a1384f5d705fc9684bd17c9ed3c7fe428c8ee483e72381792 hrs 15 mins ago0x06152e06f4efe49303d716b1ce755739fece8392  IN   ETH7770 Ether0.000173224506
0xf7870a2b9bceff5769e3fed53df164d597b2689ac59709ca3da59b3be4b9c21a72381552 hrs 22 mins ago0x06152e06f4efe49303d716b1ce755739fece8392  IN   ETH7770 Ether0.000173224506
0xc470122ec8b96903b9f99d02b0a52d271b8430646b15a37d887bf6ab562a510672380872 hrs 46 mins ago0xcbf097b2224fe9bef04ab4ed369f8e26cbadfe3f  IN   ETH7770.03687 Ether0.000450816
0xaf94311326a34f159da2b45bbab735394977fd5d9a4b9c847523596e56fdf49972380443 hrs 2 mins ago0xcbf097b2224fe9bef04ab4ed369f8e26cbadfe3f  IN   ETH7770 Ether0.00029757
0x43dd536d754f5198cac9bd3c78113d2a58e67c841e84f288eddad2815106e4c872376515 hrs 19 mins ago0xfd4c3ad9dc254f0b92bd6f9795961db8257ce15d  IN   ETH7770 Ether0.0005748
0xa34afae1ad7e952250b44f0568d2a4a24cce09e27fbe4361db40015e28b925f772375965 hrs 36 mins ago0x542bc99656a8473227adb42562c514c460790a01  IN   ETH7770 Ether0.0017244
0xba5c6fdc8b78cd26b69a89fd891037c99f76fdfb09c5cbc6194190c7cc001c4272374996 hrs 9 mins ago0xe7777c01294b8afd56e5bc11fcbd24792657f20e  IN   ETH7770 Ether0.001437
0xff492afa215f659ea1f120e2241cc9b533a77c95693e3c53b21f418f56dddca572374846 hrs 12 mins ago0xfd4c3ad9dc254f0b92bd6f9795961db8257ce15d  IN   ETH7770 Ether0.0005748
0xfb80b38a3ed00d2267d9c07d56878e3e856dafb3ecedabe72247d9c1b512ced272374816 hrs 13 mins ago0xfd4c3ad9dc254f0b92bd6f9795961db8257ce15d  IN   ETH7770 Ether0.0005748
0xece1c74c2c569d9da962d10057ac5d0188f9ebeea190b92209e4c7e0c29adb8d72373866 hrs 43 mins ago0x6e37cf9ecec9d1e264e921308ec52cafe18ca49c  IN   ETH7770.25 Ether0.00105126
0x16bc915ebf4ffb267d0c138cfafaddfac8d5799718808bcc62dc00ab687c3a2a72373636 hrs 52 mins ago0xce6296356968306d01bd83d4cff11d317e86147a  IN   ETH7770 Ether0.000223194635
0xa3e30a47d2cb4ea68b89d1d7c13054106b3f7e9510d391ea404c7ef5df23f31572373127 hrs 11 mins ago0xd7921adbd135d989cf99d0b24d67cb71f3fd86a6  IN   ETH7770 Ether0.0001140685
0xdf634c80b211bc8e5aebadd3b87345e5d6fc76c051b441203ea3bb0bd6a7d24772371747 hrs 57 mins ago0xa55d0edebbfb43d150f2cb51fbdd572d32e6329a  IN   ETH7770 Ether0.000363561011
0x9475c006636663b09d274984123bc6e3c13232581be9e77a9545a124d26fe0ff72368619 hrs 47 mins ago0x8e6b5bf2377f9ace277fbacd712bba952fc003a3  IN   ETH7770 Ether0.00016341
0x73561ccf66acdb36fc63182eecd43ec555114952f9d8bc01c745132740f98c9c72368519 hrs 51 mins ago0x8e6b5bf2377f9ace277fbacd712bba952fc003a3  IN   ETH7770 Ether0.00016341
0x54a24ec069e314b5b092c9930c30a150686c98bb97d5f03524678ee835ef4abd72368409 hrs 53 mins ago0x8e6b5bf2377f9ace277fbacd712bba952fc003a3  IN   ETH7770 Ether0.00016341
0x17f2c2c8a89d568cf641eed072db50b3aea923cf76f6b5e0e624ceef5ad3a8fc723680910 hrs 3 mins ago0x8527267bd483338feaa85634304c31ffedb9631f  IN   ETH7770 Ether0.0002874
0x009dd50a123b37ff4bad7444467ee7cc7571759eb662ed883075993fd7a01edb723680810 hrs 3 mins ago0x8e6b5bf2377f9ace277fbacd712bba952fc003a3  IN   ETH7770 Ether0.00032682
0x05ec4f119437cbab4a07e41d2f7c484feb7a0729a556b840b363b222978e18c5723680110 hrs 6 mins ago0x8e6b5bf2377f9ace277fbacd712bba952fc003a3  IN   ETH7770 Ether0.00032682
0x6dbe6a1741f21a693cdf1f4ebc5736c26542c44136d83f20c999f1a101b821f2723679710 hrs 8 mins ago0x8e6b5bf2377f9ace277fbacd712bba952fc003a3  IN   ETH7770 Ether0.00032682
0xc01356d45bd528d62a83d58d0be5b8c8fce20925827713e74b51cdc154bc441a723679210 hrs 9 mins ago0x4701639792de046c61cfc43b44b9d3f349125cce  IN   ETH7770 Ether0.0015
0xe10ffc51307c17fbc8fb2bb04cd063d6a90b141a67a026a56cb151eb706282aa723678810 hrs 10 mins ago0x8e6b5bf2377f9ace277fbacd712bba952fc003a3  IN   ETH7770 Ether0.00032682
[ Download CSV Export 

Latest 25 Internal Transaction, Click here to view more Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
0xb758e76f4dcd9797fff3ef9ca39f66b2cfedaf3f7f0aa894f7afa57c9357c24c72383771 hr 2 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700x06152e06f4efe49303d716b1ce755739fece83920.002605188725180307 Ether
0xc470122ec8b96903b9f99d02b0a52d271b8430646b15a37d887bf6ab562a510672380872 hrs 46 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700xd141612964af8078b468715ba3ef1e79a1ae060a0.00202785 Ether
0xc470122ec8b96903b9f99d02b0a52d271b8430646b15a37d887bf6ab562a510672380872 hrs 46 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700xcfece32a154c1eb0827dbddb9d42123fd5714e560.00350265 Ether
0xaf94311326a34f159da2b45bbab735394977fd5d9a4b9c847523596e56fdf49972380443 hrs 2 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700xcbf097b2224fe9bef04ab4ed369f8e26cbadfe3f0.036878313616813611 Ether
0xece1c74c2c569d9da962d10057ac5d0188f9ebeea190b92209e4c7e0c29adb8d72373866 hrs 43 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700xd141612964af8078b468715ba3ef1e79a1ae060a0.01375 Ether
0xece1c74c2c569d9da962d10057ac5d0188f9ebeea190b92209e4c7e0c29adb8d72373866 hrs 43 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700xcfece32a154c1eb0827dbddb9d42123fd5714e560.02375 Ether
0x16bc915ebf4ffb267d0c138cfafaddfac8d5799718808bcc62dc00ab687c3a2a72373636 hrs 52 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700xce6296356968306d01bd83d4cff11d317e86147a0.004611111111111111 Ether
0xa3e30a47d2cb4ea68b89d1d7c13054106b3f7e9510d391ea404c7ef5df23f31572373127 hrs 11 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700xd7921adbd135d989cf99d0b24d67cb71f3fd86a60.001118055555555555 Ether
0x514123f69bfc72ceaed44247fd06016a165100230fc5246282130b8e4526079c723656311 hrs 32 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700xad848b5c8b81a666ec366ffac00a84d147f681f40.024826388888888888 Ether
0xa16f7b98d55870a7f4b67d068a92f3ef7c142a2aaf393a43253767a701fc6f86723655111 hrs 38 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700x3f9afd6a8289ba697fd07154db5cfa4aa4be1a762.018867113353587961 Ether
0x6044db7de8a96dc7d1b240d0117ff64d84ecb5b8844f260ea7cb35d870ec19a3723653711 hrs 43 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700xde7d023a93f3edd76a385c449839953a3c7c5ac41.911232638888888888 Ether
0xb8fe691fb39ec1fada95a698b488f470a46bc099c02b79807dfb6fcdc124e7b3723648912 hrs 1 min ago0xddfc21df6f2556528b21574695c7b33f22e60a700x017cc341a57891bebab97c9f4941fea8410c33540.030107204861111111 Ether
0x86f2866a0b3b4ef91a125630e206dff667e1a3fe2f2b4ecf0faf607a7f01caee723644512 hrs 18 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700x173054a462532d859237e9408dc4cbd8853ff7cf0.002981564564366943 Ether
0xdfec3ce54a429666c828bd5c61786aeb3ab3840cf30888e681cda15fe5b79030723643312 hrs 23 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700x0a760acf7711dfee36fe7cdac433018b9750cef20.140339265046296295 Ether
0xfca149d455abbcb8b183ef0adea67abf903a85bf6c388b7f5b2283fe677038d9723609814 hrs 15 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700x6d4ca75fedaa65048bbe49ee008dba255cfada3f0.050875 Ether
0x227556d4639a489adf9e305bd5249911b15882e04623f193f6b7a80a4eb5d320723601214 hrs 44 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700x1478b6390fe3e89c95c17bc694502e466a87ccfc0.004666666666666666 Ether
0x3c16de97264e27a1afab95db0a1b15d36ddfcf2f8b03b49b9debc0f983cf2f32723541218 hrs 2 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700x87b9c9147484357ee56039dca39ce3208bb3a05b0.000517361111111111 Ether
0x3c80617003c31f8842b6ab70b56a8733f9abf98174fade7bf6d1b17b8571b1c9723524319 hrs 1 min ago0xddfc21df6f2556528b21574695c7b33f22e60a700xd141612964af8078b468715ba3ef1e79a1ae060a0.0011 Ether
0x3c80617003c31f8842b6ab70b56a8733f9abf98174fade7bf6d1b17b8571b1c9723524319 hrs 1 min ago0xddfc21df6f2556528b21574695c7b33f22e60a700xcfece32a154c1eb0827dbddb9d42123fd5714e560.0019 Ether
0xac6923e79b732ca4af115f5c0dc025b15c7493010ad2fe07158e827446f8df17723519619 hrs 16 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700xfb7aca19ba5e01a410f6f864fb6b9e87ceb845480.014195324556327159 Ether
0x123db00b6c6c8ebc0dd97772d47a6cb190d6b41317ae338094995b1ad775fda6723507519 hrs 59 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700xead697fcd7312b5cdff51be90f2c363d98cdc9b90.033182544018547447 Ether
0xe1f82e5d3974b4a69637ad8ad276f7ae5eaad1d836029c22fdd14067f79319df723479921 hrs 29 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700xdc71cd5fa70ca5480281a0f4e455b2df515ee27d0.000520833333333333 Ether
0x47438244770ccbeb1a2d174e65464e98afdcaae443557a0a7760df6b14814bdf723478421 hrs 33 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700x62eb3e90696d302f80c48d859943f0e2448234360.013270833333333333 Ether
0x6e090119d2c51ede62d52de9cf1850e73f1a62ea298c6910e98a9ad89c7081f2723461622 hrs 34 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700x60aef4e0bee8ac34f04c6a454122c68ccf65f4fa0.019688863554460542 Ether
0x1075dca5333767090dbd2006d3386901b224003751691394d1c170caa76e956472342781 day 35 mins ago0xddfc21df6f2556528b21574695c7b33f22e60a700xa9f373eec9e2ebbbc855fca0460e7e929a1f06d60.010083333333333333 Ether
[ Download CSV Export 
Contract Source Code Verified (Exact Match)
Contract Name: Revolution2
Compiler Version: v0.4.25+commit.59dbf8f1
Optimization Enabled: Yes
Runs (Optimizer):  200


Contract Source Code
pragma solidity 0.4.25;

/**
* Инновационный проект по распределению криптовалюты ETH с ежедневными выплатами до 12% в день!
* An innovative Blockchain Ethereum project with open source up to 12% per day! 
* ежедневные выплаты, навечно. инновационная надежность. до 12% в день, до 360% в месяц. 
* валюта вклада и выплаты — ETH, минимальный взнос — 0,01 ETH
* Daily payments forever. The innovative reliability. up to 12% per day, up to 360% per month. 
* Currency and payment — ETH. Minimal contribution 0.01 eth
* https://www.eth777.io/
*/ 


library Math {
  function min(uint a, uint b) internal pure returns(uint) {
    if (a > b) {
      return b;
    }
    return a;
  }
}


library Zero {
  function requireNotZero(address addr) internal pure {
    require(addr != address(0), "require not zero address");
  }

  function requireNotZero(uint val) internal pure {
    require(val != 0, "require not zero value");
  }

  function notZero(address addr) internal pure returns(bool) {
    return !(addr == address(0));
  }

  function isZero(address addr) internal pure returns(bool) {
    return addr == address(0);
  }

  function isZero(uint a) internal pure returns(bool) {
    return a == 0;
  }

  function notZero(uint a) internal pure returns(bool) {
    return a != 0;
  }
}


library Percent {
  struct percent {
    uint num;
    uint den;
  }
  
  function mul(percent storage p, uint a) internal view returns (uint) {
    if (a == 0) {
      return 0;
    }
    return a*p.num/p.den;
  }

  function div(percent storage p, uint a) internal view returns (uint) {
    return a/p.num*p.den;
  }

  function sub(percent storage p, uint a) internal view returns (uint) {
    uint b = mul(p, a);
    if (b >= a) {
      return 0;
    }
    return a - b;
  }

  function add(percent storage p, uint a) internal view returns (uint) {
    return a + mul(p, a);
  }

  function toMemory(percent storage p) internal view returns (Percent.percent memory) {
    return Percent.percent(p.num, p.den);
  }

  function mmul(percent memory p, uint a) internal pure returns (uint) {
    if (a == 0) {
      return 0;
    }
    return a*p.num/p.den;
  }

  function mdiv(percent memory p, uint a) internal pure returns (uint) {
    return a/p.num*p.den;
  }

  function msub(percent memory p, uint a) internal pure returns (uint) {
    uint b = mmul(p, a);
    if (b >= a) {
      return 0;
    }
    return a - b;
  }

  function madd(percent memory p, uint a) internal pure returns (uint) {
    return a + mmul(p, a);
  }
}


library Address {
  function toAddress(bytes source) internal pure returns(address addr) {
    assembly { addr := mload(add(source,0x14)) }
    return addr;
  }

  function isNotContract(address addr) internal view returns(bool) {
    uint length;
    assembly { length := extcodesize(addr) }
    return length == 0;
  }
}


/**
 * @title SafeMath
 * @dev Math operations with safety checks that revert on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, reverts on overflow.
  */
  function mul(uint256 _a, uint256 _b) internal pure returns (uint256) {
    if (_a == 0) {
      return 0;
    }

    uint256 c = _a * _b;
    require(c / _a == _b);

    return c;
  }

  /**
  * @dev Integer division of two numbers truncating the quotient, reverts on division by zero.
  */
  function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
    require(_b > 0); // Solidity only automatically asserts 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;
  }

  /**
  * @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
    require(_b <= _a);
    uint256 c = _a - _b;

    return c;
  }

  /**
  * @dev Adds two numbers, reverts on overflow.
  */
  function add(uint256 _a, uint256 _b) internal pure returns (uint256) {
    uint256 c = _a + _b;
    require(c >= _a);

    return c;
  }

  /**
  * @dev Divides two numbers and returns the remainder (unsigned integer modulo),
  * reverts when dividing by zero.
  */
  function mod(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b != 0);
    return a % b;
  }
}


contract Accessibility {
  address private owner;
  modifier onlyOwner() {
    require(msg.sender == owner, "access denied");
    _;
  }

  constructor() public {
    owner = msg.sender;
  }

  function disown() internal {
    delete owner;
  }
}


contract Rev1Storage {
  function investorShortInfo(address addr) public view returns(uint value, uint refBonus); 
}


contract Rev2Storage {
  function investorInfo(address addr) public view returns(uint investment, uint paymentTime); 
}


library PrivateEntrance {
  using PrivateEntrance for privateEntrance;
  using Math for uint;
  struct privateEntrance {
    Rev1Storage rev1Storage;
    Rev2Storage rev2Storage;
    uint investorMaxInvestment;
    uint endTimestamp;
    mapping(address=>bool) hasAccess;
  }

  function isActive(privateEntrance storage pe) internal view returns(bool) {
    return pe.endTimestamp > now;
  }

  function maxInvestmentFor(privateEntrance storage pe, address investorAddr) internal view returns(uint) {
    if (!pe.hasAccess[investorAddr]) {
      return 0;
    }

    (uint maxInvestment, ) = pe.rev1Storage.investorShortInfo(investorAddr);
    if (maxInvestment == 0) {
      return 0;
    }
    maxInvestment = Math.min(maxInvestment, pe.investorMaxInvestment);

    (uint currInvestment, ) = pe.rev2Storage.investorInfo(investorAddr);
    
    if (currInvestment >= maxInvestment) {
      return 0;
    }

    return maxInvestment-currInvestment;
  }

  function provideAccessFor(privateEntrance storage pe, address[] addrs) internal {
    for (uint16 i; i < addrs.length; i++) {
      pe.hasAccess[addrs[i]] = true;
    }
  }
}


contract InvestorsStorage is Accessibility {
  struct Investor {
    uint investment;
    uint paymentTime;
  }
  uint public size;

  mapping (address => Investor) private investors;

  function isInvestor(address addr) public view returns (bool) {
    return investors[addr].investment > 0;
  }

  function investorInfo(address addr) public view returns(uint investment, uint paymentTime) {
    investment = investors[addr].investment;
    paymentTime = investors[addr].paymentTime;
  }

  function newInvestor(address addr, uint investment, uint paymentTime) public onlyOwner returns (bool) {
    Investor storage inv = investors[addr];
    if (inv.investment != 0 || investment == 0) {
      return false;
    }
    inv.investment = investment;
    inv.paymentTime = paymentTime;
    size++;
    return true;
  }

  function addInvestment(address addr, uint investment) public onlyOwner returns (bool) {
    if (investors[addr].investment == 0) {
      return false;
    }
    investors[addr].investment += investment;
    return true;
  }

  function setPaymentTime(address addr, uint paymentTime) public onlyOwner returns (bool) {
    if (investors[addr].investment == 0) {
      return false;
    }
    investors[addr].paymentTime = paymentTime;
    return true;
  }

  function disqalify(address addr) public onlyOwner returns (bool) {
    if (isInvestor(addr)) {
      investors[addr].investment = 0;
    }
  }
}


library RapidGrowthProtection {
  using RapidGrowthProtection for rapidGrowthProtection;
  
  struct rapidGrowthProtection {
    uint startTimestamp;
    uint maxDailyTotalInvestment;
    uint8 activityDays;
    mapping(uint8 => uint) dailyTotalInvestment;
  }

  function maxInvestmentAtNow(rapidGrowthProtection storage rgp) internal view returns(uint) {
    uint day = rgp.currDay();
    if (day == 0 || day > rgp.activityDays) {
      return 0;
    }
    if (rgp.dailyTotalInvestment[uint8(day)] >= rgp.maxDailyTotalInvestment) {
      return 0;
    }
    return rgp.maxDailyTotalInvestment - rgp.dailyTotalInvestment[uint8(day)];
  }

  function isActive(rapidGrowthProtection storage rgp) internal view returns(bool) {
    uint day = rgp.currDay();
    return day != 0 && day <= rgp.activityDays;
  }

  function saveInvestment(rapidGrowthProtection storage rgp, uint investment) internal returns(bool) {
    uint day = rgp.currDay();
    if (day == 0 || day > rgp.activityDays) {
      return false;
    }
    if (rgp.dailyTotalInvestment[uint8(day)] + investment > rgp.maxDailyTotalInvestment) {
      return false;
    }
    rgp.dailyTotalInvestment[uint8(day)] += investment;
    return true;
  }

  function startAt(rapidGrowthProtection storage rgp, uint timestamp) internal { 
    rgp.startTimestamp = timestamp;

    // restart
    for (uint8 i = 1; i <= rgp.activityDays; i++) {
      if (rgp.dailyTotalInvestment[i] != 0) {
        delete rgp.dailyTotalInvestment[i];
      }
    }
  }

  function currDay(rapidGrowthProtection storage rgp) internal view returns(uint day) {
    if (rgp.startTimestamp > now) {
      return 0;
    }
    day = (now - rgp.startTimestamp) / 24 hours + 1; 
  }
}

contract Revolution2 is Accessibility {
  using RapidGrowthProtection for RapidGrowthProtection.rapidGrowthProtection;
  using PrivateEntrance for PrivateEntrance.privateEntrance;
  using Percent for Percent.percent;
  using SafeMath for uint;
  using Math for uint;

  // easy read for investors
  using Address for *;
  using Zero for *; 
  
  RapidGrowthProtection.rapidGrowthProtection private m_rgp;
  PrivateEntrance.privateEntrance private m_privEnter;
  mapping(address => bool) private m_referrals;
  InvestorsStorage private m_investors;

  // automatically generates getters
  uint public constant minInvesment = 10 finney; 
  uint public constant maxBalance = 333e5 ether; 
  address public advertisingAddress;
  address public adminsAddress;
  uint public investmentsNumber;
  uint public waveStartup;

  // percents 
  Percent.percent private m_5_percent = Percent.percent(5,100);            // 5/100 *100% = 5%
  Percent.percent private m_6_percent = Percent.percent(6,100);            // 6/100 *100% = 6%
  Percent.percent private m_7_percent = Percent.percent(7,100);            // 7/100 *100% = 7%
  Percent.percent private m_8_percent = Percent.percent(8,100);            // 8/100 *100% = 8%
  Percent.percent private m_9_percent = Percent.percent(9,100);            // 9/100 *100% = 9%
  Percent.percent private m_10_percent = Percent.percent(10,100);          // 10/100 *100% = 10%
  Percent.percent private m_11_percent = Percent.percent(11,100);            // 11/100 *100% = 11%
  Percent.percent private m_12_percent = Percent.percent(12,100);            // 12/100 *100% = 12%
  Percent.percent private m_referal_percent = Percent.percent(5,100);        // 5/100 *100% = 5%
  Percent.percent private m_referrer_percent = Percent.percent(7,100);       // 7/100 *100% = 7%
  Percent.percent private m_referrer_percentMax = Percent.percent(10,100);   // 10/100 *100% = 10%
  Percent.percent private m_adminsPercent = Percent.percent(55, 1000);       //   55/100  *100% = 5.5%
  Percent.percent private m_advertisingPercent = Percent.percent(95, 1000);// 95/1000  *100% = 9.5%

  // more events for easy read from blockchain
  event LogPEInit(uint when, address rev1Storage, address rev2Storage, uint investorMaxInvestment, uint endTimestamp);
  event LogSendExcessOfEther(address indexed addr, uint when, uint value, uint investment, uint excess);
  event LogNewReferral(address indexed addr, address indexed referrerAddr, uint when, uint refBonus);
  event LogRGPInit(uint when, uint startTimestamp, uint maxDailyTotalInvestment, uint activityDays);
  event LogRGPInvestment(address indexed addr, uint when, uint investment, uint indexed day);
  event LogNewInvesment(address indexed addr, uint when, uint investment, uint value);
  event LogAutomaticReinvest(address indexed addr, uint when, uint investment);
  event LogPayDividends(address indexed addr, uint when, uint dividends);
  event LogNewInvestor(address indexed addr, uint when);
  event LogBalanceChanged(uint when, uint balance);
  event LogNextWave(uint when);
  event LogDisown(uint when);


  modifier balanceChanged {
    _;
    emit LogBalanceChanged(now, address(this).balance);
  }

  modifier notFromContract() {
    require(msg.sender.isNotContract(), "only externally accounts");
    _;
  }

  constructor() public {
    adminsAddress = msg.sender;
    advertisingAddress = msg.sender;
    nextWave();
  }

  function() public payable {
    // investor get him dividends
    if (msg.value.isZero()) {
      getMyDividends();
      return;
    }

    // sender do invest
    doInvest(msg.data.toAddress());
  }

  function disqualifyAddress(address addr) public onlyOwner {
    m_investors.disqalify(addr);
  }

  function doDisown() public onlyOwner {
    disown();
    emit LogDisown(now);
  }

  function init(address rev1StorageAddr, uint timestamp) public onlyOwner {
    // init Rapid Growth Protection
    m_rgp.startTimestamp = timestamp + 1;
    m_rgp.maxDailyTotalInvestment = 500 ether;
    m_rgp.activityDays = 21;
    emit LogRGPInit(
      now, 
      m_rgp.startTimestamp,
      m_rgp.maxDailyTotalInvestment,
      m_rgp.activityDays
    );


    // init Private Entrance
    m_privEnter.rev1Storage = Rev1Storage(rev1StorageAddr);
    m_privEnter.rev2Storage = Rev2Storage(address(m_investors));
    m_privEnter.investorMaxInvestment = 50 ether;
    m_privEnter.endTimestamp = timestamp;
    emit LogPEInit(
      now, 
      address(m_privEnter.rev1Storage), 
      address(m_privEnter.rev2Storage), 
      m_privEnter.investorMaxInvestment, 
      m_privEnter.endTimestamp
    );
  }

  function setAdvertisingAddress(address addr) public onlyOwner {
    addr.requireNotZero();
    advertisingAddress = addr;
  }

  function setAdminsAddress(address addr) public onlyOwner {
    addr.requireNotZero();
    adminsAddress = addr;
  }

  function privateEntranceProvideAccessFor(address[] addrs) public onlyOwner {
    m_privEnter.provideAccessFor(addrs);
  }

  function rapidGrowthProtectionmMaxInvestmentAtNow() public view returns(uint investment) {
    investment = m_rgp.maxInvestmentAtNow();
  }

  function investorsNumber() public view returns(uint) {
    return m_investors.size();
  }

  function balanceETH() public view returns(uint) {
    return address(this).balance;
  }

  function advertisingPercent() public view returns(uint numerator, uint denominator) {
    (numerator, denominator) = (m_advertisingPercent.num, m_advertisingPercent.den);
  }

  function adminsPercent() public view returns(uint numerator, uint denominator) {
    (numerator, denominator) = (m_adminsPercent.num, m_adminsPercent.den);
  }

  function investorInfo(address investorAddr) public view returns(uint investment, uint paymentTime, bool isReferral) {
    (investment, paymentTime) = m_investors.investorInfo(investorAddr);
    isReferral = m_referrals[investorAddr];
  }

  function investorDividendsAtNow(address investorAddr) public view returns(uint dividends) {
    dividends = calcDividends(investorAddr);
  }

  function dailyPercentAtNow() public view returns(uint numerator, uint denominator) {
    Percent.percent memory p = dailyPercent();
    (numerator, denominator) = (p.num, p.den);
  }

  function getMyDividends() public notFromContract balanceChanged {
    // calculate dividends
    
    //check if 1 day passed after last payment
    require(now.sub(getMemInvestor(msg.sender).paymentTime) > 24 hours);

    uint dividends = calcDividends(msg.sender);
    require (dividends.notZero(), "cannot to pay zero dividends");

    // update investor payment timestamp
    assert(m_investors.setPaymentTime(msg.sender, now));

    // check enough eth - goto next wave if needed
    if (address(this).balance <= dividends) {
      nextWave();
      dividends = address(this).balance;
    } 

    // transfer dividends to investor
    msg.sender.transfer(dividends);
    emit LogPayDividends(msg.sender, now, dividends);
  }

  function doInvest(address referrerAddr) public payable notFromContract balanceChanged {
    uint investment = msg.value;
    uint receivedEther = msg.value;
    require(investment >= minInvesment, "investment must be >= minInvesment");
    require(address(this).balance <= maxBalance, "the contract eth balance limit");

    if (m_rgp.isActive()) { 
      // use Rapid Growth Protection if needed
      uint rpgMaxInvest = m_rgp.maxInvestmentAtNow();
      rpgMaxInvest.requireNotZero();
      investment = Math.min(investment, rpgMaxInvest);
      assert(m_rgp.saveInvestment(investment));
      emit LogRGPInvestment(msg.sender, now, investment, m_rgp.currDay());
      
    } else if (m_privEnter.isActive()) {
      // use Private Entrance if needed
      uint peMaxInvest = m_privEnter.maxInvestmentFor(msg.sender);
      peMaxInvest.requireNotZero();
      investment = Math.min(investment, peMaxInvest);
    }

    // send excess of ether if needed
    if (receivedEther > investment) {
      uint excess = receivedEther - investment;
      msg.sender.transfer(excess);
      receivedEther = investment;
      emit LogSendExcessOfEther(msg.sender, now, msg.value, investment, excess);
    }

    // commission
    advertisingAddress.send(m_advertisingPercent.mul(receivedEther));
    adminsAddress.send(m_adminsPercent.mul(receivedEther));

    bool senderIsInvestor = m_investors.isInvestor(msg.sender);

    // ref system works only once and only on first invest
    if (referrerAddr.notZero() && !senderIsInvestor && !m_referrals[msg.sender] &&
      referrerAddr != msg.sender && m_investors.isInvestor(referrerAddr)) {
      
      m_referrals[msg.sender] = true;
      // add referral bonus to investor`s and referral`s investments
      uint referrerBonus = m_referrer_percent.mmul(investment);
      if (investment > 10 ether) {
        referrerBonus = m_referrer_percentMax.mmul(investment);
      }
      
      uint referalBonus = m_referal_percent.mmul(investment);
      assert(m_investors.addInvestment(referrerAddr, referrerBonus)); // add referrer bonus
      investment += referalBonus;                                    // add referral bonus
      emit LogNewReferral(msg.sender, referrerAddr, now, referalBonus);
    }

    // automatic reinvest - prevent burning dividends
    uint dividends = calcDividends(msg.sender);
    if (senderIsInvestor && dividends.notZero()) {
      investment += dividends;
      emit LogAutomaticReinvest(msg.sender, now, dividends);
    }

    if (senderIsInvestor) {
      // update existing investor
      assert(m_investors.addInvestment(msg.sender, investment));
      assert(m_investors.setPaymentTime(msg.sender, now));
    } else {
      // create new investor
      assert(m_investors.newInvestor(msg.sender, investment, now));
      emit LogNewInvestor(msg.sender, now);
    }

    investmentsNumber++;
    emit LogNewInvesment(msg.sender, now, investment, receivedEther);
  }

  function getMemInvestor(address investorAddr) internal view returns(InvestorsStorage.Investor memory) {
    (uint investment, uint paymentTime) = m_investors.investorInfo(investorAddr);
    return InvestorsStorage.Investor(investment, paymentTime);
  }

  function calcDividends(address investorAddr) internal view returns(uint dividends) {
    InvestorsStorage.Investor memory investor = getMemInvestor(investorAddr);

    // safe gas if dividends will be 0
    if (investor.investment.isZero() || now.sub(investor.paymentTime) < 10 minutes) {
      return 0;
    }
    
    // for prevent burning daily dividends if 24h did not pass - calculate it per 10 min interval
    Percent.percent memory p = dailyPercent();
    dividends = (now.sub(investor.paymentTime) / 10 minutes) * p.mmul(investor.investment) / 144;
  }

  function dailyPercent() internal view returns(Percent.percent memory p) {
    uint balance = address(this).balance;

    if (balance < 500 ether) { 
      p = m_5_percent.toMemory(); 
    } else if ( 500 ether <= balance && balance <= 1500 ether) {
      p = m_6_percent.toMemory();    
    } else if ( 1500 ether <= balance && balance <= 5000 ether) {
      p = m_7_percent.toMemory();   
    } else if ( 5000 ether <= balance && balance <= 10000 ether) {
      p = m_8_percent.toMemory();  
    } else if ( 10000 ether <= balance && balance <= 20000 ether) {
      p = m_9_percent.toMemory();    
    } else if ( 20000 ether <= balance && balance <= 30000 ether) {
      p = m_10_percent.toMemory();  
    } else if ( 30000 ether <= balance && balance <= 50000 ether) {
      p = m_11_percent.toMemory();   
    } else {
      p = m_12_percent.toMemory();    
    } 
  }

  function nextWave() private {
    m_investors = new InvestorsStorage();
    investmentsNumber = 0;
    waveStartup = now;
    m_rgp.startAt(now);
    emit LogRGPInit(now , m_rgp.startTimestamp, m_rgp.maxDailyTotalInvestment, m_rgp.activityDays);
    emit LogNextWave(now);
  }
}

Contract ABI
[{"constant":false,"inputs":[{"name":"addrs","type":"address[]"}],"name":"privateEntranceProvideAccessFor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"disqualifyAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"advertisingAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"rev1StorageAddr","type":"address"},{"name":"timestamp","type":"uint256"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minInvesment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminsAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"investorsNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"investorAddr","type":"address"}],"name":"investorDividendsAtNow","outputs":[{"name":"dividends","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rapidGrowthProtectionmMaxInvestmentAtNow","outputs":[{"name":"investment","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"advertisingPercent","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminsPercent","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setAdminsAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"investmentsNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dailyPercentAtNow","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setAdvertisingAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"getMyDividends","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"referrerAddr","type":"address"}],"name":"doInvest","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"investorAddr","type":"address"}],"name":"investorInfo","outputs":[{"name":"investment","type":"uint256"},{"name":"paymentTime","type":"uint256"},{"name":"isReferral","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"waveStartup","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"balanceETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"doDisown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"rev1Storage","type":"address"},{"indexed":false,"name":"rev2Storage","type":"address"},{"indexed":false,"name":"investorMaxInvestment","type":"uint256"},{"indexed":false,"name":"endTimestamp","type":"uint256"}],"name":"LogPEInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"investment","type":"uint256"},{"indexed":false,"name":"excess","type":"uint256"}],"name":"LogSendExcessOfEther","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":true,"name":"referrerAddr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"refBonus","type":"uint256"}],"name":"LogNewReferral","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"startTimestamp","type":"uint256"},{"indexed":false,"name":"maxDailyTotalInvestment","type":"uint256"},{"indexed":false,"name":"activityDays","type":"uint256"}],"name":"LogRGPInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"investment","type":"uint256"},{"indexed":true,"name":"day","type":"uint256"}],"name":"LogRGPInvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"investment","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LogNewInvesment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"investment","type":"uint256"}],"name":"LogAutomaticReinvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"dividends","type":"uint256"}],"name":"LogPayDividends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"}],"name":"LogNewInvestor","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"balance","type":"uint256"}],"name":"LogBalanceChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"}],"name":"LogNextWave","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"}],"name":"LogDisown","type":"event"}]

Contract Creation Code
60056080819052606460a081905260108290556011819055600660c081905260e082905260125560138190556007610100819052610120829052601481905560158290556008610140819052610160839052601655601782905560096101808190526101a08390526018556019829055600a6101c08190526101e0839052601a819055601b839055600b610200819052610220849052601c55601d839055600c610240819052610260849052601e55601f8390556102808490526102a083905260209390935560218290556102c08190526102e0829052602255602381905561030082905261032081905260249190915560255560376103408190526103e861036081905260269190915560278190556103c0604052605f6103808190526103a08290526028556029553480156200013657600080fd5b506000805433600160a060020a03199182168117909255600d8054821683179055600c80549091169091179055620001766401000000006200017c810204565b620002db565b62000186620002ca565b604051809103906000f080158015620001a3573d6000803e3d6000fd5b50600b8054600160a060020a031916600160a060020a03929092169190911790556000600e5542600f819055620001eb9060019064010000000062000272810262001ee51704565b6001546002546003546040805142815260208101949094528381019290925260ff166060830152517f16171a4e996b33ebb6320397242a4168f60c16e87fbd8b58f1744d68c4179caf9181900360800190a16040805142815290517fc66870ef5f6257a76295d443e9221488043ec691f830f6c6128755c3518e3c759181900360200190a1565b80825560015b600283015460ff90811690821611620002c55760ff8116600090815260038401602052604090205415620002bc5760ff811660009081526003840160205260408120555b60010162000278565b505050565b6040516104c6806200277e83390190565b61249380620002eb6000396000f3006080604052600436106101275763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306127a11811461018657806315aa6833146101db5780631686531a146101fc578063399ae7241461022d5780633d7ac9f81461025157806362d2c55514610278578063653c31741461028d57806373ad468a146102a2578063900334b1146102b757806390b0636f146102d85780639396df32146102ed57806395a23c3a1461031b578063984d4a93146103305780639ec6e05414610351578063b8fde2a414610366578063cb192f2c1461037b578063d50030ad1461039c578063d82fa3f1146103b1578063dbcbaca4146103c5578063eafecc7a14610406578063ecbdbb321461041b578063fc7c41af14610430575b61013034610445565b156101425761013d61044d565b610184565b61018461017f6000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375061069d945050505050565b6106a4565b005b34801561019257600080fd5b506040805160206004803580820135838102808601850190965280855261018495369593946024949385019291829185019084908082843750949750610ff39650505050505050565b3480156101e757600080fd5b50610184600160a060020a0360043516611057565b34801561020857600080fd5b5061021161113e565b60408051600160a060020a039092168252519081900360200190f35b34801561023957600080fd5b50610184600160a060020a036004351660243561114d565b34801561025d57600080fd5b506102666112b2565b60408051918252519081900360200190f35b34801561028457600080fd5b506102116112bd565b34801561029957600080fd5b506102666112cc565b3480156102ae57600080fd5b5061026661135c565b3480156102c357600080fd5b50610266600160a060020a036004351661136b565b3480156102e457600080fd5b5061026661137c565b3480156102f957600080fd5b5061030261138d565b6040805192835260208301919091528051918290030190f35b34801561032757600080fd5b50610302611397565b34801561033c57600080fd5b50610184600160a060020a03600435166113a1565b34801561035d57600080fd5b50610266611432565b34801561037257600080fd5b50610302611438565b34801561038757600080fd5b50610184600160a060020a036004351661145d565b3480156103a857600080fd5b5061018461044d565b610184600160a060020a03600435166106a4565b3480156103d157600080fd5b506103e6600160a060020a03600435166114ee565b604080519384526020840192909252151582820152519081900360600190f35b34801561041257600080fd5b506102666115b4565b34801561042757600080fd5b506102666115ba565b34801561043c57600080fd5b506101846115bf565b80155b919050565b60006104583361164c565b15156104ae576040805160e560020a62461bcd02815260206004820152601860248201527f6f6e6c792065787465726e616c6c79206163636f756e74730000000000000000604482015290519081900360640190fd5b620151806104cf6104be33611658565b60200151429063ffffffff61171c16565b116104d957600080fd5b6104e23361173a565b90506104ed816117ec565b1515610543576040805160e560020a62461bcd02815260206004820152601c60248201527f63616e6e6f7420746f20706179207a65726f206469766964656e647300000000604482015290519081900360640190fd5b600b54604080517f440135850000000000000000000000000000000000000000000000000000000081523360048201524260248201529051600160a060020a03909216916344013585916044808201926020929091908290030181600087803b1580156105af57600080fd5b505af11580156105c3573d6000803e3d6000fd5b505050506040513d60208110156105d957600080fd5b505115156105e357fe5b303181106105f7576105f36117f1565b5030315b604051339082156108fc029083906000818181858888f19350505050158015610624573d6000803e3d6000fd5b506040805142815260208101839052815133927f6710e0cad56444677ac916513b384a4acc6501cfb5219f59657ad4ddffef9d60928290030190a2604080514281523031602082015281517f32367fddaa1baa1c6a0fc5c3e8284df724bacc7b50e847c32c9f9765f9f96137929181900390910190a150565b6014015190565b600080808080808080806106b73361164c565b151561070d576040805160e560020a62461bcd02815260206004820152601860248201527f6f6e6c792065787465726e616c6c79206163636f756e74730000000000000000604482015290519081900360640190fd5b349850889750662386f26fc10000881015610798576040805160e560020a62461bcd02815260206004820152602260248201527f696e766573746d656e74206d757374206265203e3d206d696e496e7665736d6560448201527f6e74000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6a1b8b8c9e000e82a4800000303111156107fc576040805160e560020a62461bcd02815260206004820152601e60248201527f74686520636f6e7472616374206574682062616c616e6365206c696d69740000604482015290519081900360640190fd5b61080660016118e1565b1561088e57610815600161190c565b965061082087611986565b61082a89886119dd565b985061083d60018a63ffffffff6119f516565b151561084557fe5b61084f6001611a72565b60408051428152602081018c9052815133927f21cd51cc98547f9914bc0b314a40e645408acad21d1289eecb4dfb534fda7cfc928290030190a36108c6565b6108986005611a9c565b156108c6576108ae60053363ffffffff611aa516565b95506108b986611986565b6108c389876119dd565b98505b8888111561094e576040518989039550339086156108fc029087906000818181858888f19350505050158015610900573d6000803e3d6000fd5b50604080514281523460208201528082018b90526060810187905290518a995033917faac472d912a7451062b64c942775db41d65cce271603099e1c4760e072050951919081900360800190a25b600c54600160a060020a03166108fc61096e60288b63ffffffff611c3a16565b6040518115909202916000818181858888f15050600d54600160a060020a031692506108fc91506109a8905060268b63ffffffff611c3a16565b6040518115909202916000818181858888f15050600b54604080517fcee2a9cf0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a03909216945063cee2a9cf935060248082019350602092918290030181600087803b158015610a2357600080fd5b505af1158015610a37573d6000803e3d6000fd5b505050506040513d6020811015610a4d57600080fd5b50519350610a63600160a060020a038b16611c65565b8015610a6d575083155b8015610a895750336000908152600a602052604090205460ff16155b8015610a9e5750600160a060020a038a163314155b8015610b3a5750600b54604080517fcee2a9cf000000000000000000000000000000000000000000000000000000008152600160a060020a038d811660048301529151919092169163cee2a9cf9160248083019260209291908290030181600087803b158015610b0d57600080fd5b505af1158015610b21573d6000803e3d6000fd5b505050506040513d6020811015610b3757600080fd5b50515b15610cd657336000908152600a6020908152604091829020805460ff191660011790558151808301909252602254825260235490820152610b81908a63ffffffff611c7316565b9250678ac7230489e80000891115610bbd576040805180820190915260245481526025546020820152610bba908a63ffffffff611c7316565b92505b6040805180820190915260208054825260215490820152610be4908a63ffffffff611c7316565b600b54604080517f20987e64000000000000000000000000000000000000000000000000000000008152600160a060020a038e811660048301526024820188905291519395509116916320987e64916044808201926020929091908290030181600087803b158015610c5557600080fd5b505af1158015610c69573d6000803e3d6000fd5b505050506040513d6020811015610c7f57600080fd5b50511515610c8957fe5b604080514281526020810184905281519a84019a600160a060020a038d169233927fc04fb14bddd876003a335c37b1fe6524ac1dbf74eb64dd08cd085fba4b97d592929081900390910190a35b610cdf3361173a565b9050838015610cf25750610cf2816117ec565b15610d3657604080514281526020810183905281519a83019a33927f149822e3a65d38c9b6f40e835864c61ef5ca0866219afc2db638e3f85ae78866928290030190a25b8315610e8257600b54604080517f20987e64000000000000000000000000000000000000000000000000000000008152336004820152602481018c90529051600160a060020a03909216916320987e64916044808201926020929091908290030181600087803b158015610da957600080fd5b505af1158015610dbd573d6000803e3d6000fd5b505050506040513d6020811015610dd357600080fd5b50511515610ddd57fe5b600b54604080517f440135850000000000000000000000000000000000000000000000000000000081523360048201524260248201529051600160a060020a03909216916344013585916044808201926020929091908290030181600087803b158015610e4957600080fd5b505af1158015610e5d573d6000803e3d6000fd5b505050506040513d6020811015610e7357600080fd5b50511515610e7d57fe5b610f60565b600b54604080517f41b2121c000000000000000000000000000000000000000000000000000000008152336004820152602481018c90524260448201529051600160a060020a03909216916341b2121c916064808201926020929091908290030181600087803b158015610ef557600080fd5b505af1158015610f09573d6000803e3d6000fd5b505050506040513d6020811015610f1f57600080fd5b50511515610f2957fe5b60408051428152905133917fc8616cf56c542aa2540734215ee474180fc3b9cc7c2fad288000504632cacf18919081900360200190a25b600e8054600101905560408051428152602081018b90528082018a9052905133917fd5a986028ae9e04f72859f7d3c1d8ae8b649c26be5b99d4c2d98ca4a19a0502e919081900360600190a2604080514281523031602082015281517f32367fddaa1baa1c6a0fc5c3e8284df724bacc7b50e847c32c9f9765f9f96137929181900390910190a150505050505050505050565b600054600160a060020a03163314611043576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612448833981519152604482015290519081900360640190fd5b61105460058263ffffffff611c9616565b50565b600054600160a060020a031633146110a7576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612448833981519152604482015290519081900360640190fd5b600b54604080517fd597d06f000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301529151919092169163d597d06f9160248083019260209291908290030181600087803b15801561110f57600080fd5b505af1158015611123573d6000803e3d6000fd5b505050506040513d602081101561113957600080fd5b505050565b600c54600160a060020a031681565b600054600160a060020a0316331461119d576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612448833981519152604482015290519081900360640190fd5b600180820190819055681b1ae4d6e2ef50000060028190556003805460ff1916601517908190556040805142815260208101949094528381019290925260ff166060830152517f16171a4e996b33ebb6320397242a4168f60c16e87fbd8b58f1744d68c4179caf9181900360800190a160058054600160a060020a0380851673ffffffffffffffffffffffffffffffffffffffff199283161792839055600b546006805490931690821617918290556802b5e3af16b1880000600781905560088590556040805142815294831660208601529290911683830152606083015260808201839052517f7e13d111fea1199cb6fb21cb38766240cfad970317820e8e5713da7a708285309181900360a00190a15050565b662386f26fc1000081565b600d54600160a060020a031681565b600b54604080517f949d225d0000000000000000000000000000000000000000000000000000000081529051600092600160a060020a03169163949d225d91600480830192602092919082900301818787803b15801561132b57600080fd5b505af115801561133f573d6000803e3d6000fd5b505050506040513d602081101561135557600080fd5b5051905090565b6a1b8b8c9e000e82a480000081565b60006113768261173a565b92915050565b6000611388600161190c565b905090565b6028546029549091565b6026546027549091565b600054600160a060020a031633146113f1576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612448833981519152604482015290519081900360640190fd5b61140381600160a060020a0316611cfa565b600d805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600e5481565b600080611443611f5a565b61144b611d5a565b80516020909101519094909350915050565b600054600160a060020a031633146114ad576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612448833981519152604482015290519081900360640190fd5b6114bf81600160a060020a0316611cfa565b600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600b54604080517fdbcbaca4000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152825160009485948594939091169263dbcbaca4926024808301939282900301818787803b15801561155857600080fd5b505af115801561156c573d6000803e3d6000fd5b505050506040513d604081101561158257600080fd5b508051602091820151600160a060020a039096166000908152600a909252604090912054909560ff9091169350915050565b600f5481565b303190565b600054600160a060020a0316331461160f576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612448833981519152604482015290519081900360640190fd5b611617611ec6565b6040805142815290517f5189687a7ec9d4aebe2f548f952ffbbad19e4cd545c4a05b5e2369cd272dd5519181900360200190a1565b803b8015905b50919050565b611660611f5a565b600b54604080517fdbcbaca4000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301528251600094859492169263dbcbaca492602480830193919282900301818787803b1580156116c757600080fd5b505af11580156116db573d6000803e3d6000fd5b505050506040513d60408110156116f157600080fd5b50805160209182015160408051808201909152828152928301819052919450925090505b5050919050565b6000808383111561172c57600080fd5b5050808203805b5092915050565b6000611744611f5a565b61174c611f5a565b61175584611658565b91506117648260000151610445565b80611786575061025861178483602001514261171c90919063ffffffff16565b105b156117945760009250611715565b61179c611d5a565b82519091506090906117b590839063ffffffff611c7316565b6102586117cf85602001514261171c90919063ffffffff16565b8115156117d857fe5b04028115156117e357fe5b04949350505050565b151590565b6117f9611f71565b604051809103906000f080158015611815573d6000803e3d6000fd5b50600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556000600e5542600f81905561185a90600190611ee5565b6001546002546003546040805142815260208101949094528381019290925260ff166060830152517f16171a4e996b33ebb6320397242a4168f60c16e87fbd8b58f1744d68c4179caf9181900360800190a16040805142815290517fc66870ef5f6257a76295d443e9221488043ec691f830f6c6128755c3518e3c759181900360200190a1565b6000806118ed83611a72565b905080158015906119055750600283015460ff168111155b9392505050565b60008061191883611a72565b905080158061192d5750600283015460ff1681115b1561193b5760009150611652565b600183015460ff82166000908152600385016020526040902054106119635760009150611652565b60ff81166000908152600384016020526040902054600184015403915050919050565b801515611054576040805160e560020a62461bcd02815260206004820152601660248201527f72657175697265206e6f74207a65726f2076616c756500000000000000000000604482015290519081900360640190fd5b6000818311156119ee575080611376565b5090919050565b600080611a0184611a72565b9050801580611a165750600284015460ff1681115b15611a245760009150611733565b600184015460ff8216600090815260038601602052604090205484011115611a4f5760009150611733565b60ff16600090815260039390930160205250604090912080549091019055600190565b60004282600001541115611a8857506000610448565b815462015180904203046001019050919050565b60030154421090565b600160a060020a03811660009081526004830160205260408120548190819060ff161515611ad65760009250611c32565b8454604080517f993d3489000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152825193169263993d3489926024808401939192918290030181600087803b158015611b3957600080fd5b505af1158015611b4d573d6000803e3d6000fd5b505050506040513d6040811015611b6357600080fd5b50519150811515611b775760009250611c32565b611b858286600201546119dd565b6001860154604080517fdbcbaca4000000000000000000000000000000000000000000000000000000008152600160a060020a03888116600483015282519496509092169263dbcbaca49260248082019392918290030181600087803b158015611bee57600080fd5b505af1158015611c02573d6000803e3d6000fd5b505050506040513d6040811015611c1857600080fd5b50519050818110611c2c5760009250611c32565b80820392505b505092915050565b6000811515611c4b57506000611376565b600183015483548302811515611c5d57fe5b049392505050565b600160a060020a0316151590565b6000811515611c8457506000611376565b602083015183518302811515611c5d57fe5b60005b81518161ffff161015611139576001836004016000848461ffff16815181101515611cc057fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff1916911515919091179055600101611c99565b600160a060020a0381161515611054576040805160e560020a62461bcd02815260206004820152601860248201527f72657175697265206e6f74207a65726f20616464726573730000000000000000604482015290519081900360640190fd5b611d62611f5a565b3031681b1ae4d6e2ef500000811015611d8657611d7f6010611f35565b9150611ec2565b80681b1ae4d6e2ef50000011158015611da85750685150ae84a8cdf000008111155b15611db757611d7f6012611f35565b80685150ae84a8cdf0000011158015611dda575069010f0cf064dd592000008111155b15611de957611d7f6014611f35565b8069010f0cf064dd5920000011158015611e0d575069021e19e0c9bab24000008111155b15611e1c57611d7f6016611f35565b8069021e19e0c9bab240000011158015611e40575069043c33c19375648000008111155b15611e4f57611d7f6018611f35565b8069043c33c193756480000011158015611e73575069065a4da25d3016c000008111155b15611e8257611d7f601a611f35565b8069065a4da25d3016c0000011158015611ea65750690a968163f0a57b4000008111155b15611eb557611d7f601c611f35565b611ebf601e611f35565b91505b5090565b6000805473ffffffffffffffffffffffffffffffffffffffff19169055565b80825560015b600283015460ff908116908216116111395760ff8116600090815260038401602052604090205415611f2d5760ff811660009081526003840160205260408120555b600101611eeb565b611f3d611f5a565b506040805180820190915281548152600190910154602082015290565b604080518082019091526000808252602082015290565b6040516104c680611f82833901905600608060405260008054600160a060020a031916331790556104a1806100256000396000f3006080604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166320987e64811461008757806341b2121c146100bf57806344013585146100e6578063949d225d1461010a578063cee2a9cf14610131578063d597d06f14610152578063dbcbaca414610173575b600080fd5b34801561009357600080fd5b506100ab600160a060020a03600435166024356101ad565b604080519115158252519081900360200190f35b3480156100cb57600080fd5b506100ab600160a060020a036004351660243560443561024d565b3480156100f257600080fd5b506100ab600160a060020a03600435166024356102f0565b34801561011657600080fd5b5061011f61038f565b60408051918252519081900360200190f35b34801561013d57600080fd5b506100ab600160a060020a0360043516610395565b34801561015e57600080fd5b506100ab600160a060020a03600435166103b5565b34801561017f57600080fd5b50610194600160a060020a0360043516610432565b6040805192835260208301919091528051918290030190f35b60008054600160a060020a031633146101fe576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054151561022557506000610247565b50600160a060020a038216600090815260026020526040902080548201905560015b92915050565b600080548190600160a060020a031633146102a0576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b50600160a060020a038416600090815260026020526040902080541515806102c6575083155b156102d457600091506102e8565b838155600180820184905580548101815591505b509392505050565b60008054600160a060020a03163314610341576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054151561036857506000610247565b50600160a060020a0382166000908152600260205260409020600190810182905592915050565b60015481565b600160a060020a038116600090815260026020526040812054115b919050565b60008054600160a060020a03163314610406576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b61040f82610395565b156103b057600160a060020a038216600090815260026020526040812055919050565b600160a060020a031660009081526002602052604090208054600190910154909156006163636573732064656e69656400000000000000000000000000000000000000a165627a7a7230582057a9e76e4ee2bf43357d4249b42a1f3255a055e1720799fed66868940b54b26000296163636573732064656e69656400000000000000000000000000000000000000a165627a7a72305820e2cc8a7b82f318dfe446a2cabb4f8baa8cec28f948c1324457854f1de551d3e90029608060405260008054600160a060020a031916331790556104a1806100256000396000f3006080604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166320987e64811461008757806341b2121c146100bf57806344013585146100e6578063949d225d1461010a578063cee2a9cf14610131578063d597d06f14610152578063dbcbaca414610173575b600080fd5b34801561009357600080fd5b506100ab600160a060020a03600435166024356101ad565b604080519115158252519081900360200190f35b3480156100cb57600080fd5b506100ab600160a060020a036004351660243560443561024d565b3480156100f257600080fd5b506100ab600160a060020a03600435166024356102f0565b34801561011657600080fd5b5061011f61038f565b60408051918252519081900360200190f35b34801561013d57600080fd5b506100ab600160a060020a0360043516610395565b34801561015e57600080fd5b506100ab600160a060020a03600435166103b5565b34801561017f57600080fd5b50610194600160a060020a0360043516610432565b6040805192835260208301919091528051918290030190f35b60008054600160a060020a031633146101fe576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054151561022557506000610247565b50600160a060020a038216600090815260026020526040902080548201905560015b92915050565b600080548190600160a060020a031633146102a0576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b50600160a060020a038416600090815260026020526040902080541515806102c6575083155b156102d457600091506102e8565b838155600180820184905580548101815591505b509392505050565b60008054600160a060020a03163314610341576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054151561036857506000610247565b50600160a060020a0382166000908152600260205260409020600190810182905592915050565b60015481565b600160a060020a038116600090815260026020526040812054115b919050565b60008054600160a060020a03163314610406576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b61040f82610395565b156103b057600160a060020a038216600090815260026020526040812055919050565b600160a060020a031660009081526002602052604090208054600190910154909156006163636573732064656e69656400000000000000000000000000000000000000a165627a7a7230582057a9e76e4ee2bf43357d4249b42a1f3255a055e1720799fed66868940b54b2600029


   Swarm Source:
bzzr://57a9e76e4ee2bf43357d4249b42a1f3255a055e1720799fed66868940b54b260
Block Age transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.