Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 3836 txns
Token Tracker: SmarterThanCrypto (STC)
Misc:
Address Watch: Add To Watch List
Contract Creator: 0x26aa63e9cb879d253e73261658e53fa9763e4927at txn 0xf0c2f1b53474cee176ee5a8654b616aa071ec72e1c2a7dcade5c0cf4fbec487a
 Latest 25 transactions from a total of 3836 transactions

TxHash Age From To Value [TxFee]
0xd65152dc2239bd56a73eafc871a0e25f4d31a3efcf2f19b0fbc7b6184867b24422 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.000212916
0x15927ba5513407ca47f215e708e722cb3b0d8785dc56fbee8a3fab3b7357e5ab6 hrs 21 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.0002572735
0x633240154bbeec41c5105b846b5e11097760ae4febe44b8e4be3c8840aee5d9812 hrs 19 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.00035486
0x7a0c59027565945878c6f49a3d5a19fc0af34143010de3e56c37af326182db6718 hrs 21 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.000248402
0x33dd20f62a4d61a2e29fb637ee75b6e872122c4c6ba54b6038ccd677c785f3371 day 21 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.000266145
0x50396672bdfe8b9e19c3c3e3a7ec34c07b95a39d7a0b7ad3d3f6166f605081e31 day 6 hrs ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.0004701895
0x21002f9984ed6040a4ae41354595fd55fbd474c79c54cb59603477ba6db171b31 day 9 hrs ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.00016355196
0x34a741179008c49385979d35935d48bb8b6fc4613b2af98d925fa93ceaa31fe41 day 9 hrs ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.00022790196
0x5217f91dd40a2f671319e1f92d7ffe7848d73b2a7d9c18afcfa0e77931212a591 day 9 hrs ago0x9e0f31a951f7d097003362330a472d7f0e0dc755  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.00026562
0x3763d7c2f8b867d559f48c9014fedc4567778490494f66c8969ea8f46e773bea1 day 12 hrs ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.000425832
0x4c837319be6679234494e5aad044845b60b119be5374c32e9429b2a6f50b9f991 day 18 hrs ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.000212916
0xd67ffce4bd65a2ca95976ddc922da64388c12bc9052f39f50ded8f005141c13a2 days 22 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.0002395305
0x54d91f317940cb61d8db3af867867007dd6594f38cfb369a0faef8efc4cc1d4b2 days 6 hrs ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.000230659
0x23748a89a165cbb5c708ef4f671f2fce2f4f2fefbe5da215c0fe94d46c5d83ca2 days 12 hrs ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.000230659
0xb2a683e4c31ec60a59722eed44127806ac0fc65b8f8cfb408db2c21b8d3ae5302 days 18 hrs ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.0002927595
0x62a4d836fc87a6ffe6438346321836785750dcb52cf5ea261ba79920505dddcf3 days 22 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.0002750165
0xf81ea87e26ac490d48453ffa003c4996a7bdb2402617ca9232a1a8b475fc0a2a3 days 11 hrs ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.000301631
0x205941ebb7aedb5aef0c63ade64ce7d0c5228dee779c1064d4996399af309cfc3 days 18 hrs ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.001585126483
0x0a1646282e6d90019a6106fbe1eb85b27a14a52b5def9f415c4920d2016ddacb4 days 20 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.0003814745
0x6e3477fb1ff25ac21030156fb84e65b56aff24030fb139922163cb5625a0ed124 days 6 hrs ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.0003992175
0x4827517f6e6c7f0d78c50ea1096cade39001fc78b3f9dbb35f05f41c976df47d4 days 12 hrs ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.000443575
0xc79b42f13005ae1d59683961df56a96c741fd2c593bb7277a73472df8b6717c54 days 18 hrs ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.0003814745
0x056672a83a8ec42a3eea65e884aded632d648bf8bae7ccd5dda73715cac2a30d5 days 20 mins ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.0004524465
0x2a87c23591a59ad2dd9592d9bb029581921ca5ded0a620e6abccc837c521274e5 days 6 hrs ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.0006298765
0xc7f41f98c2b298feea54bad85792e080f60bf4789c791355786a758dd83c49735 days 12 hrs ago0x344f0e5555f0e11e523ffef4c503f29838cad6d4  IN   0x83dc8423170e95ee18b770bbdd6b3becb73c9c300 Ether0.0005943905
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here To View More View All
ParentTxHash Block Age From To Value
0x5cc7458f8d02e69a61ba073507538155b135bb023d5ddfcbc3825c6e9d7c3d08658411946 days 20 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.531578947368421052 Ether
0x5cc7458f8d02e69a61ba073507538155b135bb023d5ddfcbc3825c6e9d7c3d08658411946 days 20 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.531578947368421052 Ether
0x27f3a00fd80728849dd72350e18822665ffc94e19b9c8d74686e342174526828652506456 days 11 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.05263157894736842 Ether
0x27f3a00fd80728849dd72350e18822665ffc94e19b9c8d74686e342174526828652506456 days 11 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.05263157894736842 Ether
0xb964951072294ba35206d74798be1558dd59d178f305bde0f3b32d1254905023652311756 days 19 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.063157894736842105 Ether
0xb964951072294ba35206d74798be1558dd59d178f305bde0f3b32d1254905023652311756 days 19 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.063157894736842105 Ether
0x7c1d6739115a105318aa3cee1312eb7f2f9bb976f88fa24eaea6a07a6ffbcb5a652082457 days 4 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.05263157894736842 Ether
0x7c1d6739115a105318aa3cee1312eb7f2f9bb976f88fa24eaea6a07a6ffbcb5a652082457 days 4 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.05263157894736842 Ether
0x4a8c99bfc85170efbbb9c46cc6678f31762506b5c59bf4dbf14159a959f0b2b1652024657 days 6 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.05263157894736842 Ether
0x4a8c99bfc85170efbbb9c46cc6678f31762506b5c59bf4dbf14159a959f0b2b1652024657 days 6 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.05263157894736842 Ether
0xc0fc5177dd9b2aac91dd85ea2daf37cea2d995e2f5aaea6613682a831b00cab0651986557 days 8 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.05263157894736842 Ether
0xc0fc5177dd9b2aac91dd85ea2daf37cea2d995e2f5aaea6613682a831b00cab0651986557 days 8 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.05263157894736842 Ether
0xd4d7fe994d63f4d594c8dc2cf8eeda16d940a68020b2e3a67395fec2fbd2e39b651975857 days 8 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.05263157894736842 Ether
0xd4d7fe994d63f4d594c8dc2cf8eeda16d940a68020b2e3a67395fec2fbd2e39b651975857 days 8 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.05263157894736842 Ether
0x2e5d58e6e3cfccd632e88a83eed32f47ca6e9a19bb4c33b0b248bd7d9529b3bd651975657 days 8 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.05263157894736842 Ether
0x2e5d58e6e3cfccd632e88a83eed32f47ca6e9a19bb4c33b0b248bd7d9529b3bd651975657 days 8 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.05263157894736842 Ether
0x0af0dfb4dbaf14bb95cae5a4f0e9ad9daff4db41193e2a6207895e9b8cba698f651944857 days 9 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.001052631578947367 Ether
0x917c79dd7da00e0438a3dabe73b9bbde303fb8db234d1d8501c17c6a230e996e651943757 days 9 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.05263157894736842 Ether
0x917c79dd7da00e0438a3dabe73b9bbde303fb8db234d1d8501c17c6a230e996e651943757 days 9 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.05263157894736842 Ether
0x9e2882ed74576a0c98757fd32f1946c796af41a764093977f191b21061aefa3e651943757 days 9 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.001052631578947367 Ether
0x8d86dd96164c4bf8c457e8daa916f7054e3b12687939bcc74b9a222e386f4528651943457 days 9 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.05263157894736842 Ether
0x8d86dd96164c4bf8c457e8daa916f7054e3b12687939bcc74b9a222e386f4528651943457 days 9 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.05263157894736842 Ether
0x73a6a68e06a7368da6f5b7507547e8f2cb3b58dd23e4f0dd032f1835acc3c33f651927157 days 10 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.053684210526315789 Ether
0x73a6a68e06a7368da6f5b7507547e8f2cb3b58dd23e4f0dd032f1835acc3c33f651927157 days 10 hrs ago0x6329316475a98027e62246d25e4a5ed8d7f9fc510x83dc8423170e95ee18b770bbdd6b3becb73c9c300.053684210526315789 Ether
0xa47d6950e8900f616572bd06f42dd7030f34b37c59e672a17e54abef4200d310651925657 days 10 hrs ago0x83dc8423170e95ee18b770bbdd6b3becb73c9c300x26aa63e9cb879d253e73261658e53fa9763e49270.063157894736842104 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: STC
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

contract SafeMath {
	  function safeMul(uint a, uint b) internal returns (uint) {
		uint c = a * b;
		assert(a == 0 || c / a == b);
		return c;
	  }
	  function safeSub(uint a, uint b) internal returns (uint) {
		assert(b <= a);
		return a - b;
	  }
	  function safeAdd(uint a, uint b) internal returns (uint) {
		uint c = a + b;
		assert(c>=a && c>=b);
		return c;
	  }
	  // mitigate short address attack
	  // thanks to https://github.com/numerai/contract/blob/c182465f82e50ced8dacb3977ec374a892f5fa8c/contracts/Safe.sol#L30-L34.
	  // TODO: doublecheck implication of >= compared to ==
	  modifier onlyPayloadSize(uint numWords) {
		 assert(msg.data.length >= numWords * 32 + 4);
		 _;
	  }
	}

	contract Token { // ERC20 standard
		function balanceOf(address _owner) public  view returns (uint256 balance);
		function transfer(address _to, uint256 _value) public  returns (bool success);
		function transferFrom(address _from, address _to, uint256 _value) public  returns (bool success);
		function approve(address _spender, uint256 _value)  returns (bool success);
		function allowance(address _owner, address _spender) public  view returns (uint256 remaining);
		event Transfer(address indexed _from, address indexed _to, uint256 _value);
		event Approval(address indexed _owner, address indexed _spender, uint256 _value);
	}

	contract StandardToken is Token, SafeMath {
		uint256 public totalSupply;
		// TODO: update tests to expect throw
		function transfer(address _to, uint256 _value) public  onlyPayloadSize(2) returns (bool success) {
			require(_to != address(0));
			require(balances[msg.sender] >= _value && _value > 0);
			balances[msg.sender] = safeSub(balances[msg.sender], _value);
			balances[_to] = safeAdd(balances[_to], _value);
			Transfer(msg.sender, _to, _value);
			return true;
		}
		// TODO: update tests to expect throw
		function transferFrom(address _from, address _to, uint256 _value) onlyPayloadSize(3) returns (bool success) {
			require(_to != address(0));
			require(balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0);
			balances[_from] = safeSub(balances[_from], _value);
			balances[_to] = safeAdd(balances[_to], _value);
			allowed[_from][msg.sender] = safeSub(allowed[_from][msg.sender], _value);
			Transfer(_from, _to, _value);
			return true;
		}
		function balanceOf(address _owner) view returns (uint256 balance) {
			return balances[_owner];
		}
		// To change the approve amount you first have to reduce the addresses'
		//  allowance to zero by calling 'approve(_spender, 0)' if it is not
		//  already 0 to mitigate the race condition described here:
		//  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
		function approve(address _spender, uint256 _value) onlyPayloadSize(2) returns (bool success) {
			require((_value == 0) || (allowed[msg.sender][_spender] == 0));
			allowed[msg.sender][_spender] = _value;
			Approval(msg.sender, _spender, _value);
			return true;
		}
		function changeApproval(address _spender, uint256 _oldValue, uint256 _newValue) onlyPayloadSize(3) returns (bool success) {
			require(allowed[msg.sender][_spender] == _oldValue);
			allowed[msg.sender][_spender] = _newValue;
			Approval(msg.sender, _spender, _newValue);
			return true;
		}
		function allowance(address _owner, address _spender) public  view returns (uint256 remaining) {
		  return allowed[_owner][_spender];
		}
		mapping (address => uint256) public  balances;
		mapping (address => mapping (address => uint256)) public  allowed;
	}

	contract STC is StandardToken {
		// FIELDS
		string public name = "SmarterThanCrypto";
		string public symbol = "STC";
		uint256 public decimals = 18;
		string public version = "10.0";
		uint256 public tokenCap = 100000000 * 10**18;
		// crowdsale parameters
		uint256 public fundingStartTime;
		uint256 public fundingEndTime;
		// vesting fields
		address public vestingContract;
		bool private vestingSet = false;
		// root control
		address public fundWallet;
		// control of liquidity and limited control of updatePrice
		address public controlWallet;
		// time to wait between controlWallet price updates
		uint256 public waitTime = 1 hours;
		// fundWallet controlled state variables
		// halted: halt buying due to emergency, tradeable: signal that assets have been acquired
		bool public halted = false;
		bool public tradeable = false;
		// -- totalSupply defined in StandardToken
		// -- mapping to token balances done in StandardToken
		uint256 public previousUpdateTime = 0;
		Price public currentPrice;
		uint256 public minAmount = 0.04 ether;
		uint256 public OfferTime = 2592000;
	 

		// map participant address to a withdrawal request
		mapping (address => Withdrawal) public withdrawals;
		// maps previousUpdateTime to the next price
		mapping (uint256 => Price) public prices;
		// maps addresses
		mapping (address => bool) public whitelist;
		// TYPES
		struct Price { // tokensPerEth
			uint256 numerator;
			uint256 denominator;
		}
		struct Withdrawal {
			uint256 tokens;
			uint256 time; // time for each withdrawal is set to the previousUpdateTime
		}
		// EVENTS
		event Buy(address indexed participant, address indexed beneficiary, uint256 ethValue, uint256 amountTokens);
		event AllocatePresale(address indexed participant, uint256 amountTokens);
		event Whitelist(address indexed participant);
		event PriceUpdate(uint256 numerator, uint256 denominator);
		event AddLiquidity(uint256 ethAmount);
		event RemoveLiquidity(uint256 ethAmount);
		event WithdrawRequest(address indexed participant, uint256 amountTokens);
		event Withdraw(address indexed participant, uint256 amountTokens, uint256 etherAmount);
		// MODIFIERS
		modifier isTradeable { // exempt vestingContract and fundWallet to allow dev allocations
			require(tradeable || msg.sender == fundWallet || msg.sender == vestingContract);
			_;
		}
		modifier onlyWhitelist {
			require(whitelist[msg.sender]);
			_;
		}
		modifier onlyFundWallet {
			require(msg.sender == fundWallet);
			_;
		}
		modifier onlyManagingWallets {
			require(msg.sender == controlWallet || msg.sender == fundWallet);
			_;
		}
		modifier only_if_controlWallet {
			if (msg.sender == controlWallet) _;
		}
		modifier require_waited {
			require(safeSub(now, waitTime) >= previousUpdateTime);
			_;
		}
		modifier only_if_increase (uint256 newNumerator) {
			if (newNumerator > currentPrice.numerator) _;
		}
		// CONSTRUCTOR
		function STC(address controlWalletInput, uint256 priceNumeratorInput, uint256 startTimeInput, uint256 endTimeInput) public  {
			require(controlWalletInput != address(0));
			require(priceNumeratorInput > 0);
			require(endTimeInput > startTimeInput);
			fundWallet = msg.sender;
			controlWallet = controlWalletInput;
			whitelist[fundWallet] = true;
			whitelist[controlWallet] = true;
			currentPrice = Price(priceNumeratorInput, 10000); // 1 token = 1 usd at ICO start
			fundingStartTime = startTimeInput;
			fundingEndTime = endTimeInput;
			previousUpdateTime = now;
		}			
		// METHODS	
		function setOfferTime(uint256 newOfferTime) external onlyFundWallet {
			require(newOfferTime>0);
			require(newOfferTime<safeSub(fundingEndTime,fundingStartTime));
			OfferTime = newOfferTime;
		}		
		function setVestingContract(address vestingContractInput) external onlyFundWallet {
			require(vestingContractInput != address(0));
			vestingContract = vestingContractInput;
			whitelist[vestingContract] = true;
			vestingSet = true;
		}
		// allows controlWallet to update the price within a time contstraint, allows fundWallet complete control
		function updatePrice(uint256 newNumerator) external onlyManagingWallets {
			require(newNumerator > 0);
			require_limited_change(newNumerator);
			// either controlWallet command is compliant or transaction came from fundWallet
			currentPrice.numerator = newNumerator;
			// maps time to new Price (if not during ICO)
			prices[previousUpdateTime] = currentPrice;
			previousUpdateTime = now;
			PriceUpdate(newNumerator, currentPrice.denominator);
		}
		function require_limited_change (uint256 newNumerator)
			private
			only_if_controlWallet
			require_waited
			only_if_increase(newNumerator)
		{
			uint256 percentage_diff = 0;
			percentage_diff = safeMul(newNumerator, 10000) / currentPrice.numerator;
			percentage_diff = safeSub(percentage_diff, 10000);
			// controlWallet can only increase price by max 20% and only every waitTime
			//require(percentage_diff <= 20);
		}
		function updatePriceDenominator(uint256 newDenominator) external onlyManagingWallets {
			require(now > fundingEndTime);
			require(newDenominator > 0);
			currentPrice.denominator = newDenominator;
			// maps time to new Price
			prices[previousUpdateTime] = currentPrice;
			previousUpdateTime = now;
			PriceUpdate(currentPrice.numerator, newDenominator);
		}
		function updatePriceAndDenominator(uint256 newNumerator, uint256 newDenominator) external onlyManagingWallets {
			require(now > fundingEndTime);
			require(newDenominator > 0);
			require(newNumerator > 0);
			require(safeSub(now, waitTime) >= previousUpdateTime);
			currentPrice.denominator = newDenominator;
			currentPrice.numerator = newNumerator;
			// maps time to new Price
			prices[previousUpdateTime] = currentPrice;
			previousUpdateTime = now;
			PriceUpdate(currentPrice.numerator, newDenominator);
		}
		function allocateTokens(address participant, uint256 amountTokens) private {
			require(vestingSet);
			// 13% of total allocated for PR, Marketing, Team, Advisors
			uint256 developmentAllocation = safeMul(amountTokens, 14942528735632200) / 100000000000000000;
			// check that token cap is not exceeded
			uint256 newTokens = safeAdd(amountTokens, developmentAllocation);
			require(safeAdd(totalSupply, newTokens) <= tokenCap);
			// increase token supply, assign tokens to participant
			totalSupply = safeAdd(totalSupply, newTokens);
			balances[participant] = safeAdd(balances[participant], amountTokens);
			balances[vestingContract] = safeAdd(balances[vestingContract], developmentAllocation);
		}
		function allocatePresaleTokens(address participant, uint amountTokens) external onlyManagingWallets {
			require(!halted);
			require(participant != address(0));
			whitelist[participant] = true; // automatically whitelist accepted presale
			allocateTokens(participant, amountTokens);
			Whitelist(participant);
			AllocatePresale(participant, amountTokens);
		}
		function verifyParticipant(address participant) external onlyManagingWallets {
			whitelist[participant] = true;
			Whitelist(participant);
		}
		function buy() external payable {
			buyTo(msg.sender);
		}
		function buyTo(address participant) public payable onlyWhitelist {
			require(!halted);
			require(participant != address(0));
			require(msg.value >= minAmount);
			require(now >= fundingStartTime);
			uint256 icoDenominator = icoDenominatorPrice();
			uint256 tokensToBuy = safeMul(msg.value, currentPrice.numerator) / icoDenominator;
			allocateTokens(participant, tokensToBuy);
			// send ether to fundWallet
			fundWallet.transfer(msg.value);
			Buy(msg.sender, participant, msg.value, tokensToBuy);
		}
		// time based on blocknumbers, assuming a blocktime of 30s
		function icoDenominatorPrice() public view returns (uint256) {
			uint256 icoDuration = safeSub(now, fundingStartTime);
			uint256 denominator;
			if (icoDuration < 172800) { // time in sec = (48*60*60) = 172800
			   denominator = safeMul(currentPrice.denominator, 95) / 100;
			   return denominator;
			} else if (icoDuration < OfferTime ) { // time in sec = (((4*7)+2)*24*60*60) = 2592000
				denominator = safeMul(currentPrice.denominator, 100) / 100;
			   return denominator;
			} else if (now > fundingEndTime ) {
			   denominator = safeMul(currentPrice.denominator, 100) / 100;
			   return denominator;   
			} else {
				denominator = safeMul(currentPrice.denominator, 105) / 100;
			   return denominator;
			}
		}
		function requestWithdrawal(uint256 amountTokensToWithdraw) external isTradeable onlyWhitelist {
			require(now > fundingEndTime);
			require(amountTokensToWithdraw > 0);
			address participant = msg.sender;
			require(balanceOf(participant) >= amountTokensToWithdraw);
			require(withdrawals[participant].tokens == 0); // participant cannot have outstanding withdrawals
			balances[participant] = safeSub(balances[participant], amountTokensToWithdraw);
			withdrawals[participant] = Withdrawal({tokens: amountTokensToWithdraw, time: previousUpdateTime});
			WithdrawRequest(participant, amountTokensToWithdraw);
		}
		function withdraw() external {
			address participant = msg.sender;
			uint256 tokens = withdrawals[participant].tokens;
			require(tokens > 0); // participant must have requested a withdrawal
			uint256 requestTime = withdrawals[participant].time;
			// obtain the next price that was set after the request
			Price price = prices[requestTime];
			require(price.numerator > 0); // price must have been set
			uint256 withdrawValue  = safeMul(tokens, price.denominator) / price.numerator;
			// if contract ethbal > then send + transfer tokens to fundWallet, otherwise give tokens back
			withdrawals[participant].tokens = 0;
			if (this.balance >= withdrawValue)
				enact_withdrawal_greater_equal(participant, withdrawValue, tokens);
			else
				enact_withdrawal_less(participant, withdrawValue, tokens);
		}
		function enact_withdrawal_greater_equal(address participant, uint256 withdrawValue, uint256 tokens)
			private
		{
			assert(this.balance >= withdrawValue);
			balances[fundWallet] = safeAdd(balances[fundWallet], tokens);
			participant.transfer(withdrawValue);
			Withdraw(participant, tokens, withdrawValue);
		}
		function enact_withdrawal_less(address participant, uint256 withdrawValue, uint256 tokens)
			private
		{
			assert(this.balance < withdrawValue);
			balances[participant] = safeAdd(balances[participant], tokens);
			Withdraw(participant, tokens, 0); // indicate a failed withdrawal
		}
		function checkWithdrawValue(uint256 amountTokensToWithdraw) public  view returns (uint256 etherValue) {
			require(amountTokensToWithdraw > 0);
			require(balanceOf(msg.sender) >= amountTokensToWithdraw);
			uint256 withdrawValue = safeMul(amountTokensToWithdraw, currentPrice.denominator) / currentPrice.numerator;
			require(this.balance >= withdrawValue);
			return withdrawValue;
		}
		function checkWithdrawValueForAddress(address participant,uint256 amountTokensToWithdraw) public  view returns (uint256 etherValue) {
			require(amountTokensToWithdraw > 0);
			require(balanceOf(participant) >= amountTokensToWithdraw);
			uint256 withdrawValue = safeMul(amountTokensToWithdraw, currentPrice.denominator) / currentPrice.numerator;
			return withdrawValue;
		}
		// allow fundWallet or controlWallet to add ether to contract
		function addLiquidity() external onlyManagingWallets payable {
			require(msg.value > 0);
			AddLiquidity(msg.value);
		}
		// allow fundWallet to remove ether from contract
		function removeLiquidity(uint256 amount) external onlyManagingWallets {
			require(amount <= this.balance);
			fundWallet.transfer(amount);
			RemoveLiquidity(amount);
		}
		function changeFundWallet(address newFundWallet) external onlyFundWallet {
			require(newFundWallet != address(0));
			fundWallet = newFundWallet;
		}
		function changeControlWallet(address newControlWallet) external onlyFundWallet {
			require(newControlWallet != address(0));
			controlWallet = newControlWallet;
		}
		function changeWaitTime(uint256 newWaitTime) external onlyFundWallet {
			waitTime = newWaitTime;
		}
		function updatefundingStartTime(uint256 newfundingStartTime) external onlyFundWallet {
		   // require(now < fundingStartTime);
		   // require(now < newfundingStartTime);
			fundingStartTime = newfundingStartTime;
		}
		function updatefundingEndTime(uint256 newfundingEndTime) external onlyFundWallet {
		  //  require(now < fundingEndTime);
		  //  require(now < newfundingEndTime);
			fundingEndTime = newfundingEndTime;
		}
		function halt() external onlyFundWallet {
			halted = true;
		}
		function unhalt() external onlyFundWallet {
			halted = false;
		}
		function enableTrading() external onlyFundWallet {
			require(now > fundingEndTime);
			tradeable = true;
		}
		// fallback function
		function() payable {
			require(tx.origin == msg.sender);
			buyTo(msg.sender);
		}
		function claimTokens(address _token) external onlyFundWallet {
			require(_token != address(0));
			Token token = Token(_token);
			uint256 balance = token.balanceOf(this);
			token.transfer(fundWallet, balance);
		 }
		// prevent transfers until trading allowed
		function transfer(address _to, uint256 _value) isTradeable returns (bool success) {
			return super.transfer(_to, _value);
		}
		function transferFrom(address _from, address _to, uint256 _value) public  isTradeable returns (bool success) {
			return super.transferFrom(_from, _to, _value);
		}
	}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newWaitTime","type":"uint256"}],"name":"changeWaitTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOfferTime","type":"uint256"}],"name":"setOfferTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fundingStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newNumerator","type":"uint256"},{"name":"newDenominator","type":"uint256"}],"name":"updatePriceAndDenominator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"previousUpdateTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"OfferTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newControlWallet","type":"address"}],"name":"changeControlWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vestingContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"halt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"participant","type":"address"},{"name":"amountTokensToWithdraw","type":"uint256"}],"name":"checkWithdrawValueForAddress","outputs":[{"name":"etherValue","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"participant","type":"address"}],"name":"verifyParticipant","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fundWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newFundWallet","type":"address"}],"name":"changeFundWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"vestingContractInput","type":"address"}],"name":"setVestingContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fundingEndTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"withdrawals","outputs":[{"name":"tokens","type":"uint256"},{"name":"time","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"controlWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newfundingStartTime","type":"uint256"}],"name":"updatefundingStartTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"enableTrading","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newNumerator","type":"uint256"}],"name":"updatePrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"amountTokensToWithdraw","type":"uint256"}],"name":"checkWithdrawValue","outputs":[{"name":"etherValue","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"participant","type":"address"},{"name":"amountTokens","type":"uint256"}],"name":"allocatePresaleTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_oldValue","type":"uint256"},{"name":"_newValue","type":"uint256"}],"name":"changeApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"removeLiquidity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentPrice","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amountTokensToWithdraw","type":"uint256"}],"name":"requestWithdrawal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"halted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"prices","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unhalt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"waitTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newfundingEndTime","type":"uint256"}],"name":"updatefundingEndTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newDenominator","type":"uint256"}],"name":"updatePriceDenominator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"participant","type":"address"}],"name":"buyTo","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"tokenCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"claimTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"addLiquidity","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"tradeable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoDenominatorPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"controlWalletInput","type":"address"},{"name":"priceNumeratorInput","type":"uint256"},{"name":"startTimeInput","type":"uint256"},{"name":"endTimeInput","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"participant","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"ethValue","type":"uint256"},{"indexed":false,"name":"amountTokens","type":"uint256"}],"name":"Buy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"participant","type":"address"},{"indexed":false,"name":"amountTokens","type":"uint256"}],"name":"AllocatePresale","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"participant","type":"address"}],"name":"Whitelist","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"numerator","type":"uint256"},{"indexed":false,"name":"denominator","type":"uint256"}],"name":"PriceUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ethAmount","type":"uint256"}],"name":"AddLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ethAmount","type":"uint256"}],"name":"RemoveLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"participant","type":"address"},{"indexed":false,"name":"amountTokens","type":"uint256"}],"name":"WithdrawRequest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"participant","type":"address"},{"indexed":false,"name":"amountTokens","type":"uint256"},{"indexed":false,"name":"etherAmount","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60806040526040805190810160405280601181526020017f536d61727465725468616e43727970746f0000000000000000000000000000008152506003908051906020019062000051929190620003e0565b506040805190810160405280600381526020017f5354430000000000000000000000000000000000000000000000000000000000815250600490805190602001906200009f929190620003e0565b5060126005556040805190810160405280600481526020017f31302e300000000000000000000000000000000000000000000000000000000081525060069080519060200190620000f2929190620003e0565b506a52b7d2dcc80cd2e40000006007556000600a60146101000a81548160ff021916908315150217905550610e10600d556000600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506000600f55668e1bc9bf04000060125562278d006013553480156200017d57600080fd5b506040516080806200451983398101806040528101908080519060200190929190805190602001909291908051906020019092919080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515620001fc57600080fd5b6000831115156200020c57600080fd5b81811115156200021b57600080fd5b33600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160166000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160166000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550604080519081016040528084815260200161271081525060106000820151816000015560208201518160010155905050816008819055508060098190555042600f81905550505050506200048f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200042357805160ff191683800117855562000454565b8280016001018555821562000454579182015b828111156200045357825182559160200191906001019062000436565b5b50905062000463919062000467565b5090565b6200048c91905b80821115620004885760008160009055506001016200046e565b5090565b90565b61407a806200049f6000396000f300608060405260043610610288576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146102cd57806306fe22121461035d578063095ea7b31461038a57806318160ddd146103ef5780631df411a61461041a5780631df935581461044757806323b872dd1461047257806324038339146104f757806327e235e31461052e578063313ce56714610585578063347820eb146105b05780633ccfd60b146105db5780634a96d129146105f257806354fd4d501461061d5780635a8cf571146106ad5780635c658165146106f05780635e6f6045146107675780635ed7ca5b146107be57806363f114f2146107d5578063643a769514610836578063664a1ad6146108795780636fb4adff146108d057806370a0823114610913578063749915691461096a57806374eedd46146109ad5780637a9262a2146109d8578063823e569e14610a36578063861654f714610a8d5780638a8c523c14610aba5780638d6cc56d14610ad15780638f11e5f914610afe5780638fee768714610b3f5780639281cd6514610b8c57806395d89b4114610bfb5780639b19251a14610c8b5780639b2cb5d814610ce65780639c8f9f2314610d115780639d1b464a14610d3e5780639ee679e814610d70578063a6f2ae3a14610d9d578063a9059cbb14610da7578063b9b8af0b14610e0c578063bc31c1c114610e3b578063cb3e64fd14610e83578063ccca123b14610e9a578063cef9436014610ec5578063dbb2455414610ef2578063dcf72c1014610f1f578063dd54291b14610f55578063dd62ed3e14610f80578063df8de3e714610ff7578063e8078d941461103a578063f5ac9db614611044578063fa0d80fc14611073575b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415156102c257600080fd5b6102cb3361109e565b005b3480156102d957600080fd5b506102e261127e565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610322578082015181840152602081019050610307565b50505050905090810190601f16801561034f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036957600080fd5b506103886004803603810190808035906020019092919050505061131c565b005b34801561039657600080fd5b506103d5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611382565b604051808215151515815260200191505060405180910390f35b3480156103fb57600080fd5b50610404611523565b6040518082815260200191505060405180910390f35b34801561042657600080fd5b5061044560048036038101908080359060200190929190505050611529565b005b34801561045357600080fd5b5061045c6115b9565b6040518082815260200191505060405180910390f35b34801561047e57600080fd5b506104dd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115bf565b604051808215151515815260200191505060405180910390f35b34801561050357600080fd5b5061052c60048036038101908080359060200190929190803590602001909291905050506116a0565b005b34801561053a57600080fd5b5061056f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061182f565b6040518082815260200191505060405180910390f35b34801561059157600080fd5b5061059a611847565b6040518082815260200191505060405180910390f35b3480156105bc57600080fd5b506105c561184d565b6040518082815260200191505060405180910390f35b3480156105e757600080fd5b506105f0611853565b005b3480156105fe57600080fd5b506106076119c9565b6040518082815260200191505060405180910390f35b34801561062957600080fd5b506106326119cf565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610672578082015181840152602081019050610657565b50505050905090810190601f16801561069f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106b957600080fd5b506106ee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a6d565b005b3480156106fc57600080fd5b50610751600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b49565b6040518082815260200191505060405180910390f35b34801561077357600080fd5b5061077c611b6e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107ca57600080fd5b506107d3611b94565b005b3480156107e157600080fd5b50610820600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c0d565b6040518082815260200191505060405180910390f35b34801561084257600080fd5b50610877600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c61565b005b34801561088557600080fd5b5061088e611db3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108dc57600080fd5b50610911600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dd9565b005b34801561091f57600080fd5b50610954600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eb5565b6040518082815260200191505060405180910390f35b34801561097657600080fd5b506109ab600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611efe565b005b3480156109b957600080fd5b506109c261206f565b6040518082815260200191505060405180910390f35b3480156109e457600080fd5b50610a19600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612075565b604051808381526020018281526020019250505060405180910390f35b348015610a4257600080fd5b50610a4b612099565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a9957600080fd5b50610ab8600480360381019080803590602001909291905050506120bf565b005b348015610ac657600080fd5b50610acf612125565b005b348015610add57600080fd5b50610afc600480360381019080803590602001909291905050506121ae565b005b348015610b0a57600080fd5b50610b2960048036038101908080359060200190929190505050612300565b6040518082815260200191505060405180910390f35b348015610b4b57600080fd5b50610b8a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612379565b005b348015610b9857600080fd5b50610be1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061257c565b604051808215151515815260200191505060405180910390f35b348015610c0757600080fd5b50610c10612712565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c50578082015181840152602081019050610c35565b50505050905090810190601f168015610c7d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c9757600080fd5b50610ccc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127b0565b604051808215151515815260200191505060405180910390f35b348015610cf257600080fd5b50610cfb6127d0565b6040518082815260200191505060405180910390f35b348015610d1d57600080fd5b50610d3c600480360381019080803590602001909291905050506127d6565b005b348015610d4a57600080fd5b50610d53612953565b604051808381526020018281526020019250505060405180910390f35b348015610d7c57600080fd5b50610d9b60048036038101908080359060200190929190505050612965565b005b610da5612c5f565b005b348015610db357600080fd5b50610df2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612c6a565b604051808215151515815260200191505060405180910390f35b348015610e1857600080fd5b50610e21612d49565b604051808215151515815260200191505060405180910390f35b348015610e4757600080fd5b50610e6660048036038101908080359060200190929190505050612d5c565b604051808381526020018281526020019250505060405180910390f35b348015610e8f57600080fd5b50610e98612d80565b005b348015610ea657600080fd5b50610eaf612df9565b6040518082815260200191505060405180910390f35b348015610ed157600080fd5b50610ef060048036038101908080359060200190929190505050612dff565b005b348015610efe57600080fd5b50610f1d60048036038101908080359060200190929190505050612e65565b005b610f53600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061109e565b005b348015610f6157600080fd5b50610f6a612fbe565b6040518082815260200191505060405180910390f35b348015610f8c57600080fd5b50610fe1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612fc4565b6040518082815260200191505060405180910390f35b34801561100357600080fd5b50611038600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061304b565b005b6110426132c7565b005b34801561105057600080fd5b506110596133c3565b604051808215151515815260200191505060405180910390f35b34801561107f57600080fd5b506110886133d6565b6040518082815260200191505060405180910390f35b600080601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156110f957600080fd5b600e60009054906101000a900460ff1615151561111557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561115157600080fd5b601254341015151561116257600080fd5b600854421015151561117357600080fd5b61117b6133d6565b91508161118d346010600001546134a1565b81151561119657fe5b0490506111a383826134d4565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015801561120b573d6000803e3d6000fd5b508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f89f5adc174562e07c9c9b1cae7109bbecb21cf9d1b2847e550042b8653c54a0e3484604051808381526020018281526020019250505060405180910390a3505050565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113145780601f106112e957610100808354040283529160200191611314565b820191906000526020600020905b8154815290600101906020018083116112f757829003601f168201915b505050505081565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561137857600080fd5b80600d8190555050565b600060026004602082020160003690501015151561139c57fe5b600083148061142757506000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b151561143257600080fd5b82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a3600191505092915050565b60005481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561158557600080fd5b60008111151561159457600080fd5b6115a26009546008546136b4565b811015156115af57600080fd5b8060138190555050565b60085481565b6000600e60019054906101000a900460ff16806116295750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806116815750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561168c57600080fd5b6116978484846136cd565b90509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806117495750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561175457600080fd5b6009544211151561176457600080fd5b60008111151561177357600080fd5b60008211151561178257600080fd5b600f5461179142600d546136b4565b1015151561179e57600080fd5b8060106001018190555081601060000181905550601060156000600f548152602001908152602001600020600082015481600001556001820154816001015590505042600f819055507f92664190cca12aca9cd5309d87194bdda75bb51362d71c06e1a6f75c7c76571160106000015482604051808381526020018281526020019250505060405180910390a15050565b60016020528060005260406000206000915090505481565b60055481565b600f5481565b6000806000806000339450601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015493506000841115156118b257600080fd5b601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015492506015600084815260200190815260200160002091506000826000015411151561191f57600080fd5b81600001546119328584600101546134a1565b81151561193b57fe5b0490506000601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550803073ffffffffffffffffffffffffffffffffffffffff16311015156119b6576119b1858286613a94565b6119c2565b6119c1858286613c29565b5b5050505050565b60135481565b60068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a655780601f10611a3a57610100808354040283529160200191611a65565b820191906000526020600020905b815481529060010190602001808311611a4857829003601f168201915b505050505081565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ac957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611b0557600080fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6002602052816000526040600020602052806000526040600020600091509150505481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bf057600080fd5b6001600e60006101000a81548160ff021916908315150217905550565b600080600083111515611c1f57600080fd5b82611c2985611eb5565b10151515611c3657600080fd5b601060000154611c4b846010600101546134a1565b811515611c5457fe5b0490508091505092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611d0a5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611d1557600080fd5b6001601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e60405160405180910390a250565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e3557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e7157600080fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f5a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611f9657600080fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160166000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60146101000a81548160ff02191690831515021790555050565b60095481565b60146020528060005260406000206000915090508060000154908060010154905082565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561211b57600080fd5b8060088190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561218157600080fd5b6009544211151561219157600080fd5b6001600e60016101000a81548160ff021916908315150217905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806122575750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561226257600080fd5b60008111151561227157600080fd5b61227a81613d33565b80601060000181905550601060156000600f548152602001908152602001600020600082015481600001556001820154816001015590505042600f819055507f92664190cca12aca9cd5309d87194bdda75bb51362d71c06e1a6f75c7c76571181601060010154604051808381526020018281526020019250505060405180910390a150565b60008060008311151561231257600080fd5b8261231c33611eb5565b1015151561232957600080fd5b60106000015461233e846010600101546134a1565b81151561234757fe5b049050803073ffffffffffffffffffffffffffffffffffffffff16311015151561237057600080fd5b80915050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806124225750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561242d57600080fd5b600e60009054906101000a900460ff1615151561244957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561248557600080fd5b6001601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506124e782826134d4565b8173ffffffffffffffffffffffffffffffffffffffff167feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e60405160405180910390a28173ffffffffffffffffffffffffffffffffffffffff167f69488271d7ab6c5d1d852b2fedbeafcee0ad158162b8c58145130bacd56bff76826040518082815260200191505060405180910390a25050565b600060036004602082020160003690501015151561259657fe5b83600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414151561262057600080fd5b82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a360019150509392505050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127a85780601f1061277d576101008083540402835291602001916127a8565b820191906000526020600020905b81548152906001019060200180831161278b57829003601f168201915b505050505081565b60166020528060005260406000206000915054906101000a900460ff1681565b60125481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061287f5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561288a57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff163181111515156128b057600080fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612918573d6000803e3d6000fd5b507f9a5a8a32afd899e7f95003c6e21c9fab2d50e11992439d14472229180c60c7aa816040518082815260200191505060405180910390a150565b60108060000154908060010154905082565b6000600e60019054906101000a900460ff16806129cf5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80612a275750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612a3257600080fd5b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612a8a57600080fd5b60095442111515612a9a57600080fd5b600082111515612aa957600080fd5b33905081612ab682611eb5565b10151515612ac357600080fd5b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515612b1457600080fd5b612b5d600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836136b4565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506040805190810160405280838152602001600f54815250601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000155602082015181600101559050508073ffffffffffffffffffffffffffffffffffffffff167f17040713250ec5f668a1c39e7939900e78558350dbaff0ebef34268dfa8ea4ac836040518082815260200191505060405180910390a25050565b612c683361109e565b565b6000600e60019054906101000a900460ff1680612cd45750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80612d2c5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612d3757600080fd5b612d418383613dec565b905092915050565b600e60009054906101000a900460ff1681565b60156020528060005260406000206000915090508060000154908060010154905082565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ddc57600080fd5b6000600e60006101000a81548160ff021916908315150217905550565b600d5481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612e5b57600080fd5b8060098190555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612f0e5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612f1957600080fd5b60095442111515612f2957600080fd5b600081111515612f3857600080fd5b80601060010181905550601060156000600f548152602001908152602001600020600082015481600001556001820154816001015590505042600f819055507f92664190cca12aca9cd5309d87194bdda75bb51362d71c06e1a6f75c7c76571160106000015482604051808381526020018281526020019250505060405180910390a150565b60075481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130aa57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156130e657600080fd5b8291508173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561318457600080fd5b505af1158015613198573d6000803e3d6000fd5b505050506040513d60208110156131ae57600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561328657600080fd5b505af115801561329a573d6000803e3d6000fd5b505050506040513d60208110156132b057600080fd5b810190808051906020019092919050505050505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806133705750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561337b57600080fd5b60003411151561338a57600080fd5b7ff53d9d58a7ff16a2e1360446f1c4b5e81a427d3efd25615be081f4003662400a346040518082815260200191505060405180910390a1565b600e60019054906101000a900460ff1681565b60008060006133e7426008546136b4565b91506202a30082101561341a576064613406601060010154605f6134a1565b81151561340f57fe5b04905080925061349c565b60135482101561344a57606461343660106001015460646134a1565b81151561343f57fe5b04905080925061349c565b60095442111561347a57606461346660106001015460646134a1565b81151561346f57fe5b04905080925061349c565b606461348c60106001015460696134a1565b81151561349557fe5b0490508092505b505090565b600080828402905060008414806134c257508284828115156134bf57fe5b04145b15156134ca57fe5b8091505092915050565b600080600a60149054906101000a900460ff1615156134f257600080fd5b67016345785d8a000061350c846635162695555b486134a1565b81151561351557fe5b0491506135228383614024565b905060075461353360005483614024565b1115151561354057600080fd5b61354c60005482614024565b60008190555061359b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484614024565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061364960016000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483614024565b60016000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b60008282111515156136c257fe5b818303905092915050565b60006003600460208202016000369050101515156136e757fe5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561372357600080fd5b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156137ee575082600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156137fa5750600083115b151561380557600080fd5b61384e600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846136b4565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138da600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484614024565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506139a3600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846136b4565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b813073ffffffffffffffffffffffffffffffffffffffff163110151515613ab757fe5b613b2260016000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482614024565b60016000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015613bcd573d6000803e3d6000fd5b508273ffffffffffffffffffffffffffffffffffffffff167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5688284604051808381526020018281526020019250505060405180910390a2505050565b813073ffffffffffffffffffffffffffffffffffffffff1631101515613c4b57fe5b613c94600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482614024565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568826000604051808381526020018281526020019250505060405180910390a2505050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415613de857600f54613d9a42600d546136b4565b10151515613da757600080fd5b81601060000154811115613de65760009150601060000154613dcb846127106134a1565b811515613dd457fe5b049150613de3826127106136b4565b91505b505b5050565b6000600260046020820201600036905010151515613e0657fe5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515613e4257600080fd5b82600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015613e915750600083115b1515613e9c57600080fd5b613ee5600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846136b4565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613f71600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484614024565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b600080828401905083811015801561403c5750828110155b151561404457fe5b80915050929150505600a165627a7a723058203032deea60836f9d8140d5b32abcb94e30ef00c78e387606c325a1b1d904b09e0029000000000000000000000000344f0e5555f0e11e523ffef4c503f29838cad6d4000000000000000000000000000000000000000000000000000000001585e223000000000000000000000000000000000000000000000000000000005b9eee80000000000000000000000000000000000000000000000000000000005bc3d880

    Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000344f0e5555f0e11e523ffef4c503f29838cad6d4000000000000000000000000000000000000000000000000000000001585e223000000000000000000000000000000000000000000000000000000005b9eee80000000000000000000000000000000000000000000000000000000005bc3d880

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000344f0e5555f0e11e523ffef4c503f29838cad6d4
Arg [1] : 000000000000000000000000000000000000000000000000000000001585e223
Arg [2] : 000000000000000000000000000000000000000000000000000000005b9eee80
Arg [3] : 000000000000000000000000000000000000000000000000000000005bc3d880


   Swarm Source:
bzzr://3032deea60836f9d8140d5b32abcb94e30ef00c78e387606c325a1b1d904b09e

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.