More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,315 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Buy With Limit | 6970731 | 2228 days ago | IN | 0.012 ETH | 0.00015053 | ||||
Buy With Limit | 6968750 | 2228 days ago | IN | 0.0512 ETH | 0.00027597 | ||||
Buy With Limit | 6968712 | 2228 days ago | IN | 0.05 ETH | 0.00007526 | ||||
Buy With Limit | 6968483 | 2228 days ago | IN | 0.053 ETH | 0.00020071 | ||||
Freeze | 6962715 | 2229 days ago | IN | 0 ETH | 0.00136661 | ||||
Collect | 6962693 | 2229 days ago | IN | 0 ETH | 0.00136821 | ||||
Transfer | 6961115 | 2229 days ago | IN | 0 ETH | 0.00030182 | ||||
Transfer | 6925099 | 2236 days ago | IN | 0 ETH | 0.00030291 | ||||
Claim | 6921282 | 2236 days ago | IN | 0 ETH | 0.00086073 | ||||
Claim | 6921280 | 2236 days ago | IN | 0 ETH | 0.00086073 | ||||
Claim | 6921277 | 2236 days ago | IN | 0 ETH | 0.00086073 | ||||
Claim | 6921270 | 2236 days ago | IN | 0 ETH | 0.00086073 | ||||
Claim | 6921266 | 2236 days ago | IN | 0 ETH | 0.00086073 | ||||
Claim | 6921264 | 2236 days ago | IN | 0 ETH | 0.00086073 | ||||
Claim | 6921256 | 2236 days ago | IN | 0 ETH | 0.00086073 | ||||
Claim | 6921251 | 2236 days ago | IN | 0 ETH | 0.00086073 | ||||
Claim | 6921197 | 2236 days ago | IN | 0 ETH | 0.00086073 | ||||
Claim | 6921189 | 2236 days ago | IN | 0 ETH | 0.00086073 | ||||
Claim | 6921183 | 2236 days ago | IN | 0 ETH | 0.00086073 | ||||
Claim | 6921178 | 2236 days ago | IN | 0 ETH | 0.00086073 | ||||
Claim | 6921173 | 2236 days ago | IN | 0 ETH | 0.00086073 | ||||
Claim | 6921167 | 2236 days ago | IN | 0 ETH | 0.00086073 | ||||
Claim | 6921160 | 2236 days ago | IN | 0 ETH | 0.00086073 | ||||
Claim | 6921146 | 2236 days ago | IN | 0 ETH | 0.00086073 | ||||
Claim | 6921139 | 2236 days ago | IN | 0 ETH | 0.00036 |
Loading...
Loading
Contract Name:
GENEOSSale
Compiler Version
v0.4.11+commit.68ef5810
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-06-26 */ pragma solidity ^0.4.11; contract DSNote { event LogNote( bytes4 indexed sig, address indexed guy, bytes32 indexed foo, bytes32 indexed bar, uint wad, bytes fax ) anonymous; modifier note { bytes32 foo; bytes32 bar; assembly { foo := calldataload(4) bar := calldataload(36) } LogNote(msg.sig, msg.sender, foo, bar, msg.value, msg.data); _; } } contract ERC20 { function totalSupply() constant returns (uint supply); function balanceOf( address who ) constant returns (uint value); function allowance( address owner, address spender ) constant returns (uint _allowance); function transfer( address to, uint value) returns (bool ok); function transferFrom( address from, address to, uint value) returns (bool ok); function approve( address spender, uint value ) returns (bool ok); event Transfer( address indexed from, address indexed to, uint value); event Approval( address indexed owner, address indexed spender, uint value); } contract DSAuthority { function canCall( address src, address dst, bytes4 sig ) constant returns (bool); } contract DSAuthEvents { event LogSetAuthority (address indexed authority); event LogSetOwner (address indexed owner); } contract DSAuth is DSAuthEvents { DSAuthority public authority; address public owner; function DSAuth() { owner = msg.sender; LogSetOwner(msg.sender); } function setOwner(address owner_) auth { owner = owner_; LogSetOwner(owner); } function setAuthority(DSAuthority authority_) auth { authority = authority_; LogSetAuthority(authority); } modifier auth { assert(isAuthorized(msg.sender, msg.sig)); _; } modifier authorized(bytes4 sig) { assert(isAuthorized(msg.sender, sig)); _; } function isAuthorized(address src, bytes4 sig) internal returns (bool) { if (src == address(this)) { return true; } else if (src == owner) { return true; } else if (authority == DSAuthority(0)) { return false; } else { return authority.canCall(src, this, sig); } } function assert(bool x) internal { if (!x) throw; } } contract DSExec { function tryExec( address target, bytes calldata, uint value) internal returns (bool call_ret) { return target.call.value(value)(calldata); } function exec( address target, bytes calldata, uint value) internal { if(!tryExec(target, calldata, value)) { throw; } } // Convenience aliases function exec( address t, bytes c ) internal { exec(t, c, 0); } function exec( address t, uint256 v ) internal { bytes memory c; exec(t, c, v); } function tryExec( address t, bytes c ) internal returns (bool) { return tryExec(t, c, 0); } function tryExec( address t, uint256 v ) internal returns (bool) { bytes memory c; return tryExec(t, c, v); } } contract DSMath { /* standard uint256 functions */ function add(uint256 x, uint256 y) constant internal returns (uint256 z) { assert((z = x + y) >= x); } function sub(uint256 x, uint256 y) constant internal returns (uint256 z) { assert((z = x - y) <= x); } function mul(uint256 x, uint256 y) constant internal returns (uint256 z) { assert((z = x * y) >= x); } function div(uint256 x, uint256 y) constant internal returns (uint256 z) { z = x / y; } function min(uint256 x, uint256 y) constant internal returns (uint256 z) { return x <= y ? x : y; } function max(uint256 x, uint256 y) constant internal returns (uint256 z) { return x >= y ? x : y; } /* uint128 functions (h is for half) */ function hadd(uint128 x, uint128 y) constant internal returns (uint128 z) { assert((z = x + y) >= x); } function hsub(uint128 x, uint128 y) constant internal returns (uint128 z) { assert((z = x - y) <= x); } function hmul(uint128 x, uint128 y) constant internal returns (uint128 z) { assert((z = x * y) >= x); } function hdiv(uint128 x, uint128 y) constant internal returns (uint128 z) { z = x / y; } function hmin(uint128 x, uint128 y) constant internal returns (uint128 z) { return x <= y ? x : y; } function hmax(uint128 x, uint128 y) constant internal returns (uint128 z) { return x >= y ? x : y; } /* int256 functions */ function imin(int256 x, int256 y) constant internal returns (int256 z) { return x <= y ? x : y; } function imax(int256 x, int256 y) constant internal returns (int256 z) { return x >= y ? x : y; } /* WAD math */ uint128 constant WAD = 10 ** 18; function wadd(uint128 x, uint128 y) constant internal returns (uint128) { return hadd(x, y); } function wsub(uint128 x, uint128 y) constant internal returns (uint128) { return hsub(x, y); } function wmul(uint128 x, uint128 y) constant internal returns (uint128 z) { z = cast((uint256(x) * y + WAD / 2) / WAD); } function wdiv(uint128 x, uint128 y) constant internal returns (uint128 z) { z = cast((uint256(x) * WAD + y / 2) / y); } function wmin(uint128 x, uint128 y) constant internal returns (uint128) { return hmin(x, y); } function wmax(uint128 x, uint128 y) constant internal returns (uint128) { return hmax(x, y); } /* RAY math */ uint128 constant RAY = 10 ** 27; function radd(uint128 x, uint128 y) constant internal returns (uint128) { return hadd(x, y); } function rsub(uint128 x, uint128 y) constant internal returns (uint128) { return hsub(x, y); } function rmul(uint128 x, uint128 y) constant internal returns (uint128 z) { z = cast((uint256(x) * y + RAY / 2) / RAY); } function rdiv(uint128 x, uint128 y) constant internal returns (uint128 z) { z = cast((uint256(x) * RAY + y / 2) / y); } function rpow(uint128 x, uint64 n) constant internal returns (uint128 z) { // This famous algorithm is called "exponentiation by squaring" // and calculates x^n with x as fixed-point and n as regular unsigned. // // It's O(log n), instead of O(n) for naive repeated multiplication. // // These facts are why it works: // // If n is even, then x^n = (x^2)^(n/2). // If n is odd, then x^n = x * x^(n-1), // and applying the equation for even x gives // x^n = x * (x^2)^((n-1) / 2). // // Also, EVM division is flooring and // floor[(n-1) / 2] = floor[n / 2]. z = n % 2 != 0 ? x : RAY; for (n /= 2; n != 0; n /= 2) { x = rmul(x, x); if (n % 2 != 0) { z = rmul(z, x); } } } function rmin(uint128 x, uint128 y) constant internal returns (uint128) { return hmin(x, y); } function rmax(uint128 x, uint128 y) constant internal returns (uint128) { return hmax(x, y); } function cast(uint256 x) constant internal returns (uint128 z) { assert((z = uint128(x)) == x); } } contract DSStop is DSAuth, DSNote { bool public stopped; modifier stoppable { assert (!stopped); _; } function stop() auth note { stopped = true; } function start() auth note { stopped = false; } } contract DSTokenBase is ERC20, DSMath { uint256 _supply; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _approvals; function DSTokenBase(uint256 supply) { _balances[msg.sender] = supply; _supply = supply; } function totalSupply() constant returns (uint256) { return _supply; } function balanceOf(address src) constant returns (uint256) { return _balances[src]; } function allowance(address src, address guy) constant returns (uint256) { return _approvals[src][guy]; } function transfer(address dst, uint wad) returns (bool) { assert(_balances[msg.sender] >= wad); _balances[msg.sender] = sub(_balances[msg.sender], wad); _balances[dst] = add(_balances[dst], wad); Transfer(msg.sender, dst, wad); return true; } function transferFrom(address src, address dst, uint wad) returns (bool) { assert(_balances[src] >= wad); assert(_approvals[src][msg.sender] >= wad); _approvals[src][msg.sender] = sub(_approvals[src][msg.sender], wad); _balances[src] = sub(_balances[src], wad); _balances[dst] = add(_balances[dst], wad); Transfer(src, dst, wad); return true; } function approve(address guy, uint256 wad) returns (bool) { _approvals[msg.sender][guy] = wad; Approval(msg.sender, guy, wad); return true; } } contract WhiteList { mapping (address => bool) public whiteList; address public owner; function WhiteList() public { owner = msg.sender; whiteList[owner] = true; } function addToWhiteList(address [] _addresses) public { require(msg.sender == owner); for (uint i = 0; i < _addresses.length; i++) { whiteList[_addresses[i]] = true; } } function removeFromWhiteList(address [] _addresses) public { require (msg.sender == owner); for (uint i = 0; i < _addresses.length; i++) { whiteList[_addresses[i]] = false; } } } contract DSToken is DSTokenBase(0), DSStop { bytes32 public symbol = "GENEOS"; uint256 public decimals = 18; // standard token precision. override to customize WhiteList public wlcontract; function DSToken(WhiteList wlc_) { require(msg.sender == wlc_.owner()); wlcontract = wlc_; } function transfer(address dst, uint wad) stoppable note returns (bool) { require(wlcontract.whiteList(msg.sender)); require(wlcontract.whiteList(dst)); return super.transfer(dst, wad); } function transferFrom( address src, address dst, uint wad ) stoppable note returns (bool) { require(wlcontract.whiteList(src)); require(wlcontract.whiteList(dst)); return super.transferFrom(src, dst, wad); } function approve(address guy, uint wad) stoppable note returns (bool) { require(wlcontract.whiteList(msg.sender)); require(wlcontract.whiteList(guy)); return super.approve(guy, wad); } function push(address dst, uint128 wad) returns (bool) { return transfer(dst, wad); } function pull(address src, uint128 wad) returns (bool) { return transferFrom(src, msg.sender, wad); } function mint(uint128 wad) auth stoppable note { require(wlcontract.whiteList(msg.sender)); _balances[msg.sender] = add(_balances[msg.sender], wad); _supply = add(_supply, wad); } function burn(uint128 wad) auth stoppable note { require(wlcontract.whiteList(msg.sender)); _balances[msg.sender] = sub(_balances[msg.sender], wad); _supply = sub(_supply, wad); } // Optional token name bytes32 public name = ""; function setName(bytes32 name_) auth { name = name_; } } contract GENEOSSale is DSAuth, DSExec, DSMath { DSToken public GENEOS; uint128 public totalSupply = 1000000000000000000000000000; // Total GENEOS amount created uint128 public foundersAllocation = 100000000000000000000000000; // Amount given to founders string public foundersKey = "GENEOS8DVTnJn7tNcQtTSi1XDo5ycXcsmQVksh8FGGrZqFLkBJeagUpJ"; // Public key of founders uint public createLastDay = 200000000000000000000000000; // Tokens sold in last window uint public createPerDay = 4000000000000000000000000; // Tokens sold in each window uint public numberOfDays = 175; // Number of windows except last uint public startTime; // Time of window 1 opening uint public finalWindowTime; // Time of window 176 opening uint public finishTime; address public foundersAddress = 0x98900a160a52c789210E118Fd3382FcA00a9d0a8; mapping (uint => uint) public dailyTotals; mapping (uint => mapping (address => uint)) public userBuys; mapping (uint => mapping (address => bool)) public claimed; mapping (address => string) public keys; event LogBuy (uint window, address user, uint amount); event LogClaim (uint window, address user, uint amount); event LogRegister (address user, string key); event LogCollect (uint amount); event LogFreeze (); function GENEOSSale( uint _startTime ) { startTime = _startTime; finalWindowTime = startTime + (numberOfDays * 1 days); finishTime = finalWindowTime + 5 days; } function initialize(DSToken geneos) auth { assert(address(GENEOS) == address(0)); assert(geneos.owner() == address(this)); assert(geneos.authority() == DSAuthority(0)); assert(geneos.totalSupply() == 0); GENEOS = geneos; GENEOS.mint(totalSupply); GENEOS.push(foundersAddress, foundersAllocation); keys[foundersAddress] = foundersKey; LogRegister(foundersAddress, foundersKey); } function time() constant returns (uint) { return block.timestamp; } function today() constant returns (uint) { return dayFor(time()); } function dayFor(uint timestamp) constant returns (uint) { if (timestamp < startTime) { return 0; } if (timestamp >= startTime && timestamp < finalWindowTime) { return sub(timestamp, startTime) / 1 days + 1; } if (timestamp >= finalWindowTime && timestamp < finishTime) { return 176; } return 999; } function createOnDay(uint day) constant returns (uint) { assert(day >= 1 && day <= 176); return day == 176 ? createLastDay : createPerDay; } // This method provides the buyer some protections regarding which // day the buy order is submitted and the maximum price prior to // applying this payment that will be allowed. function buyWithLimit(uint day, uint limit) payable { assert(today() > 0 && today() <= numberOfDays + 1); assert(msg.value >= 0.01 ether); assert(day >= today()); assert(day <= numberOfDays + 1); userBuys[day][msg.sender] += msg.value; dailyTotals[day] += msg.value; if (limit != 0) { assert(dailyTotals[day] <= limit); } LogBuy(day, msg.sender, msg.value); } function buy() payable { buyWithLimit(today(), 0); } function () payable { buy(); } function claim(uint day) { assert(today() > day); if (claimed[day][msg.sender] || dailyTotals[day] == 0) { return; } // This will have small rounding errors, but the token is // going to be truncated to 8 decimal places or less anyway // when launched on its own chain. var dailyTotal = cast(dailyTotals[day]); var userTotal = cast(userBuys[day][msg.sender]); var price = wdiv(cast(createOnDay(day)), dailyTotal); var reward = wmul(price, userTotal); claimed[day][msg.sender] = true; GENEOS.push(msg.sender, reward); LogClaim(day, msg.sender, reward); } function claimAll() { for (uint i = 1; i < today(); i++) { claim(i); } } function register(string key) { assert(today() <= numberOfDays + 1); assert(bytes(key).length <= 64); keys[msg.sender] = key; LogRegister(msg.sender, key); } // Crowdsale owners can collect ETH any number of times function collect() auth { assert(today() > 0); exec(msg.sender, this.balance); LogCollect(this.balance); } // Anyone can freeze the token 1 day after the sale ends function freeze() { assert(time() > finishTime); GENEOS.stop(); LogFreeze(); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"claimed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner_","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"time","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint128"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"foundersAllocation","outputs":[{"name":"","type":"uint128"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"day","type":"uint256"}],"name":"claim","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"foundersKey","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"userBuys","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"finishTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"day","type":"uint256"}],"name":"createOnDay","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"createLastDay","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"freeze","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"keys","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"authority_","type":"address"}],"name":"setAuthority","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"dailyTotals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"GENEOS","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"today","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"authority","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"geneos","type":"address"}],"name":"initialize","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"claimAll","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"timestamp","type":"uint256"}],"name":"dayFor","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"day","type":"uint256"},{"name":"limit","type":"uint256"}],"name":"buyWithLimit","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[],"name":"collect","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfDays","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"foundersAddress","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"finalWindowTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"key","type":"string"}],"name":"register","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"createPerDay","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"_startTime","type":"uint256"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"window","type":"uint256"},{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogBuy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"window","type":"uint256"},{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogClaim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"key","type":"string"}],"name":"LogRegister","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogCollect","type":"event"},{"anonymous":false,"inputs":[],"name":"LogFreeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"authority","type":"address"}],"name":"LogSetAuthority","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"}]
Contract Creation Code
60606040526b033b2e3c9fd0803ce8000000600360006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506a52b7d2dcc80cd2e4000000600360106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550606060405190810160405280603881526020017f47454e454f53384456546e4a6e37744e6351745453693158446f35796358637381526020017f6d51566b736838464747725a71464c6b424a65616755704a0000000000000000815250600490805190602001906200010192919062000259565b506aa56fa5b99019a5c80000006005556a034f086f3b33b68400000060065560af6007557398900a160a52c789210e118fd3382fca00a9d0a8600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034156200018357fe5b604051602080620025e5833981016040528080519060200190919050505b5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405180905060405180910390a25b806008819055506201518060075402600854016009819055506206978060095401600a819055505b5062000308565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200029c57805160ff1916838001178555620002cd565b82800160010185558215620002cd579182015b82811115620002cc578251825591602001919060010190620002af565b5b509050620002dc9190620002e0565b5090565b6200030591905b8082111562000301576000816000905550600101620002e7565b5090565b90565b6122cd80620003186000396000f30060606040523615610189576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063120aa8771461019a57806313af4035146101f157806316ada5471461022757806318160ddd1461024d5780631db580fa14610297578063379607f5146102e1578063389ae4d1146103015780633904e1bf1461039a5780635958611e146103ed5780635ca81139146104135780635cd7c8bc1461044757806362a5af3b1461046d578063670d14b21461047f57806378e979251461053c5780637a9e5e4b146105625780637d34f5ac146105985780638da5cb5b146105cc5780639ed782851461061e578063a6f2ae3a14610670578063b74e452b1461067a578063bf7e214f146106a0578063c4d66de8146106f2578063d1058e5914610728578063d90c17591461073a578063e0cb3aa01461076e578063e52253811461078f578063e9f6bd0b146107a1578063ebfdc657146107c7578063f098f8e414610819578063f2c298be1461083f578063f96512cc14610899575b6101985b6101956108bf565b5b565b005b34156101a257fe5b6101d7600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506108d4565b604051808215151515815260200191505060405180910390f35b34156101f957fe5b610225600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610903565b005b341561022f57fe5b6102376109e7565b6040518082815260200191505060405180910390f35b341561025557fe5b61025d6109f0565b60405180826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561029f57fe5b6102a7610a12565b60405180826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102e957fe5b6102ff6004808035906020019091905050610a34565b005b341561030957fe5b610311610d72565b6040518080602001828103825283818151815260200191508051906020019080838360008314610360575b8051825260208311156103605760208201915060208101905060208303925061033c565b505050905090810190601f16801561038c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103a257fe5b6103d7600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e10565b6040518082815260200191505060405180910390f35b34156103f557fe5b6103fd610e35565b6040518082815260200191505060405180910390f35b341561041b57fe5b6104316004808035906020019091905050610e3b565b6040518082815260200191505060405180910390f35b341561044f57fe5b610457610e73565b6040518082815260200191505060405180910390f35b341561047557fe5b61047d610e79565b005b341561048757fe5b6104b3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f55565b6040518080602001828103825283818151815260200191508051906020019080838360008314610502575b805182526020831115610502576020820191506020810190506020830392506104de565b505050905090810190601f16801561052e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561054457fe5b61054c611005565b6040518082815260200191505060405180910390f35b341561056a57fe5b610596600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061100b565b005b34156105a057fe5b6105b660048080359060200190919050506110ef565b6040518082815260200191505060405180910390f35b34156105d457fe5b6105dc611107565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561062657fe5b61062e61112d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106786108bf565b005b341561068257fe5b61068a611153565b6040518082815260200191505060405180910390f35b34156106a857fe5b6106b061116b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106fa57fe5b610726600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611191565b005b341561073057fe5b610738611825565b005b341561074257fe5b6107586004808035906020019091905050611856565b6040518082815260200191505060405180910390f35b61078d60048080359060200190919080359060200190919050506118d3565b005b341561079757fe5b61079f611a56565b005b34156107a957fe5b6107b1611b12565b6040518082815260200191505060405180910390f35b34156107cf57fe5b6107d7611b18565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561082157fe5b610829611b3e565b6040518082815260200191505060405180910390f35b341561084757fe5b610897600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611b44565b005b34156108a157fe5b6108a9611ca0565b6040518082815260200191505060405180910390f35b6108d16108ca611153565b60006118d3565b5b565b600e6020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b610939610934336000357fffffffff0000000000000000000000000000000000000000000000000000000016611ca6565b611f08565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405180905060405180910390a25b5b50565b60004290505b90565b600360009054906101000a90046fffffffffffffffffffffffffffffffff1681565b600360109054906101000a90046fffffffffffffffffffffffffffffffff1681565b6000600060006000610a4e85610a48611153565b11611f08565b600e600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610aca57506000600c600087815260200190815260200160002054145b15610ad457610d6b565b610af0600c600087815260200190815260200160002054611f19565b9350610b4b600d600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f19565b9250610b67610b61610b5c87610e3b565b611f19565b85611f41565b9150610b738284611fd2565b90506001600e600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633452f51d33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1515610ccc57fe5b6102c65a03f11515610cda57fe5b50505060405180519050507f51223fdc0a25891366fb358b4af9fe3c381b1566e287c61a29d01c8a173fe4f4853383604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826fffffffffffffffffffffffffffffffff168152602001935050505060405180910390a15b5050505050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e085780601f10610ddd57610100808354040283529160200191610e08565b820191906000526020600020905b815481529060010190602001808311610deb57829003601f168201915b505050505081565b600d602052816000526040600020602052806000526040600020600091509150505481565b600a5481565b6000610e5760018310158015610e52575060b08311155b611f08565b60b08214610e6757600654610e6b565b6005545b90505b919050565b60055481565b610e8d600a54610e876109e7565b11611f08565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166307da68f56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401809050600060405180830381600087803b1515610f1257fe5b6102c65a03f11515610f2057fe5b5050507fad487f3c412409f5b36d6b5ae6f3bb9c34e15234b3e9f101bb6ef0d584593c6160405180905060405180910390a15b565b600f6020528060005260406000206000915090508054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ffd5780601f10610fd257610100808354040283529160200191610ffd565b820191906000526020600020905b815481529060010190602001808311610fe057829003601f168201915b505050505081565b60085481565b61104161103c336000357fffffffff0000000000000000000000000000000000000000000000000000000016611ca6565b611f08565b80600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada460405180905060405180910390a25b5b50565b600c6020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006111656111606109e7565b611856565b90505b90565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111c76111c2336000357fffffffff0000000000000000000000000000000000000000000000000000000016611ca6565b611f08565b611221600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f08565b6112db3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401809050602060405180830381600087803b15156112a757fe5b6102c65a03f115156112b557fe5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1614611f08565b611396600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1663bf7e214f6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401809050602060405180830381600087803b151561136257fe5b6102c65a03f1151561137057fe5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1614611f08565b61142560008273ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401809050602060405180830381600087803b151561140757fe5b6102c65a03f1151561141557fe5b5050506040518051905014611f08565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166369d3e20e600360009054906101000a90046fffffffffffffffffffffffffffffffff166040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b151561153557fe5b6102c65a03f1151561154357fe5b505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633452f51d600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360109054906101000a90046fffffffffffffffffffffffffffffffff166000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b151561167457fe5b6102c65a03f1151561168257fe5b50505060405180519050506004600f6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020908054600181600116156101000203166002900461170f929190612161565b507fd80364ba2cbb1e827ab8adac9651cdfc27fb7b61c0a95663cb80b82d7636ad22600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156118115780601f106117e657610100808354040283529160200191611811565b820191906000526020600020905b8154815290600101906020018083116117f457829003601f168201915b5050935050505060405180910390a15b5b50565b6000600190505b611834611153565b8110156118525761184481610a34565b5b808060010191505061182c565b5b50565b600060085482101561186b57600090506118ce565b600854821015801561187e575060095482105b156118a7576001620151806118958460085461206b565b81151561189e57fe5b040190506118ce565b60095482101580156118ba5750600a5482105b156118c85760b090506118ce565b6103e790505b919050565b6118fe60006118e0611153565b1180156118f957506001600754016118f6611153565b11155b611f08565b611911662386f26fc10000341015611f08565b61192461191c611153565b831015611f08565b611935600160075401831115611f08565b34600d600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555034600c6000848152602001908152602001600020600082825401925050819055506000811415156119de576119dd81600c6000858152602001908152602001600020541115611f08565b5b7fe054057d0479c6218d6ec87be73f88230a7e4e1f064cee6e7504e2c4cd9d6150823334604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a15b5050565b611a8c611a87336000357fffffffff0000000000000000000000000000000000000000000000000000000016611ca6565b611f08565b611a9f6000611a99611153565b11611f08565b611ac0333073ffffffffffffffffffffffffffffffffffffffff1631612085565b7f4ceba015d961d93f1d6825703b730a8ba05619c005dfd8073aee773dc6725fbb3073ffffffffffffffffffffffffffffffffffffffff16316040518082815260200191505060405180910390a15b5b565b60075481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b611b5c600160075401611b55611153565b1115611f08565b611b6a604082511115611f08565b80600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209080519060200190611bbd9291906121e8565b507fd80364ba2cbb1e827ab8adac9651cdfc27fb7b61c0a95663cb80b82d7636ad223382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360008314611c62575b805182526020831115611c6257602082019150602081019050602083039250611c3e565b505050905090810190601f168015611c8e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15b50565b60065481565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ce55760019050611f02565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d445760019050611f02565b600073ffffffffffffffffffffffffffffffffffffffff16600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611da45760009050611f02565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b70096138430856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019350505050602060405180830381600087803b1515611ee057fe5b6102c65a03f11515611eee57fe5b505050604051805190509050611f02565b5b5b5b92915050565b801515611f155760006000fd5b5b50565b600081829150816fffffffffffffffffffffffffffffffff16141515611f3b57fe5b5b919050565b6000611fc9826fffffffffffffffffffffffffffffffff166002846fffffffffffffffffffffffffffffffff16811515611f7757fe5b046fffffffffffffffffffffffffffffffff16670de0b6b3a76400006fffffffffffffffffffffffffffffffff16866fffffffffffffffffffffffffffffffff160201811515611fc357fe5b04611f19565b90505b92915050565b6000612062670de0b6b3a76400006fffffffffffffffffffffffffffffffff166002670de0b6b3a76400006fffffffffffffffffffffffffffffffff1681151561201857fe5b046fffffffffffffffffffffffffffffffff16846fffffffffffffffffffffffffffffffff16866fffffffffffffffffffffffffffffffff16020181151561205c57fe5b04611f19565b90505b92915050565b6000828284039150811115151561207e57fe5b5b92915050565b61208d612268565b61209883828461209e565b5b505050565b6120a98383836120bb565b15156120b55760006000fd5b5b505050565b60008373ffffffffffffffffffffffffffffffffffffffff16828460405180828051906020019080838360008314612112575b805182526020831115612112576020820191506020810190506020830392506120ee565b505050905090810190601f16801561213e5780820380516001836020036101000a031916815260200191505b5091505060006040518083038185876187965a03f19250505090505b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061219a57805485556121d7565b828001600101855582156121d757600052602060002091601f016020900482015b828111156121d65782548255916001019190600101906121bb565b5b5090506121e4919061227c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061222957805160ff1916838001178555612257565b82800160010185558215612257579182015b8281111561225657825182559160200191906001019061223b565b5b509050612264919061227c565b5090565b602060405190810160405280600081525090565b61229e91905b8082111561229a576000816000905550600101612282565b5090565b905600a165627a7a72305820587ad1058f647b692cfde983a3f91a71946d0b9f9a0458e239dc0443a03d661f0029000000000000000000000000000000000000000000000000000000005b326300
Deployed Bytecode
0x60606040523615610189576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063120aa8771461019a57806313af4035146101f157806316ada5471461022757806318160ddd1461024d5780631db580fa14610297578063379607f5146102e1578063389ae4d1146103015780633904e1bf1461039a5780635958611e146103ed5780635ca81139146104135780635cd7c8bc1461044757806362a5af3b1461046d578063670d14b21461047f57806378e979251461053c5780637a9e5e4b146105625780637d34f5ac146105985780638da5cb5b146105cc5780639ed782851461061e578063a6f2ae3a14610670578063b74e452b1461067a578063bf7e214f146106a0578063c4d66de8146106f2578063d1058e5914610728578063d90c17591461073a578063e0cb3aa01461076e578063e52253811461078f578063e9f6bd0b146107a1578063ebfdc657146107c7578063f098f8e414610819578063f2c298be1461083f578063f96512cc14610899575b6101985b6101956108bf565b5b565b005b34156101a257fe5b6101d7600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506108d4565b604051808215151515815260200191505060405180910390f35b34156101f957fe5b610225600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610903565b005b341561022f57fe5b6102376109e7565b6040518082815260200191505060405180910390f35b341561025557fe5b61025d6109f0565b60405180826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561029f57fe5b6102a7610a12565b60405180826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102e957fe5b6102ff6004808035906020019091905050610a34565b005b341561030957fe5b610311610d72565b6040518080602001828103825283818151815260200191508051906020019080838360008314610360575b8051825260208311156103605760208201915060208101905060208303925061033c565b505050905090810190601f16801561038c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103a257fe5b6103d7600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e10565b6040518082815260200191505060405180910390f35b34156103f557fe5b6103fd610e35565b6040518082815260200191505060405180910390f35b341561041b57fe5b6104316004808035906020019091905050610e3b565b6040518082815260200191505060405180910390f35b341561044f57fe5b610457610e73565b6040518082815260200191505060405180910390f35b341561047557fe5b61047d610e79565b005b341561048757fe5b6104b3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f55565b6040518080602001828103825283818151815260200191508051906020019080838360008314610502575b805182526020831115610502576020820191506020810190506020830392506104de565b505050905090810190601f16801561052e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561054457fe5b61054c611005565b6040518082815260200191505060405180910390f35b341561056a57fe5b610596600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061100b565b005b34156105a057fe5b6105b660048080359060200190919050506110ef565b6040518082815260200191505060405180910390f35b34156105d457fe5b6105dc611107565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561062657fe5b61062e61112d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106786108bf565b005b341561068257fe5b61068a611153565b6040518082815260200191505060405180910390f35b34156106a857fe5b6106b061116b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106fa57fe5b610726600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611191565b005b341561073057fe5b610738611825565b005b341561074257fe5b6107586004808035906020019091905050611856565b6040518082815260200191505060405180910390f35b61078d60048080359060200190919080359060200190919050506118d3565b005b341561079757fe5b61079f611a56565b005b34156107a957fe5b6107b1611b12565b6040518082815260200191505060405180910390f35b34156107cf57fe5b6107d7611b18565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561082157fe5b610829611b3e565b6040518082815260200191505060405180910390f35b341561084757fe5b610897600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611b44565b005b34156108a157fe5b6108a9611ca0565b6040518082815260200191505060405180910390f35b6108d16108ca611153565b60006118d3565b5b565b600e6020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b610939610934336000357fffffffff0000000000000000000000000000000000000000000000000000000016611ca6565b611f08565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405180905060405180910390a25b5b50565b60004290505b90565b600360009054906101000a90046fffffffffffffffffffffffffffffffff1681565b600360109054906101000a90046fffffffffffffffffffffffffffffffff1681565b6000600060006000610a4e85610a48611153565b11611f08565b600e600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610aca57506000600c600087815260200190815260200160002054145b15610ad457610d6b565b610af0600c600087815260200190815260200160002054611f19565b9350610b4b600d600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f19565b9250610b67610b61610b5c87610e3b565b611f19565b85611f41565b9150610b738284611fd2565b90506001600e600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633452f51d33836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1515610ccc57fe5b6102c65a03f11515610cda57fe5b50505060405180519050507f51223fdc0a25891366fb358b4af9fe3c381b1566e287c61a29d01c8a173fe4f4853383604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826fffffffffffffffffffffffffffffffff168152602001935050505060405180910390a15b5050505050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e085780601f10610ddd57610100808354040283529160200191610e08565b820191906000526020600020905b815481529060010190602001808311610deb57829003601f168201915b505050505081565b600d602052816000526040600020602052806000526040600020600091509150505481565b600a5481565b6000610e5760018310158015610e52575060b08311155b611f08565b60b08214610e6757600654610e6b565b6005545b90505b919050565b60055481565b610e8d600a54610e876109e7565b11611f08565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166307da68f56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401809050600060405180830381600087803b1515610f1257fe5b6102c65a03f11515610f2057fe5b5050507fad487f3c412409f5b36d6b5ae6f3bb9c34e15234b3e9f101bb6ef0d584593c6160405180905060405180910390a15b565b600f6020528060005260406000206000915090508054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ffd5780601f10610fd257610100808354040283529160200191610ffd565b820191906000526020600020905b815481529060010190602001808311610fe057829003601f168201915b505050505081565b60085481565b61104161103c336000357fffffffff0000000000000000000000000000000000000000000000000000000016611ca6565b611f08565b80600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada460405180905060405180910390a25b5b50565b600c6020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006111656111606109e7565b611856565b90505b90565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111c76111c2336000357fffffffff0000000000000000000000000000000000000000000000000000000016611ca6565b611f08565b611221600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f08565b6112db3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401809050602060405180830381600087803b15156112a757fe5b6102c65a03f115156112b557fe5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1614611f08565b611396600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1663bf7e214f6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401809050602060405180830381600087803b151561136257fe5b6102c65a03f1151561137057fe5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1614611f08565b61142560008273ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401809050602060405180830381600087803b151561140757fe5b6102c65a03f1151561141557fe5b5050506040518051905014611f08565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166369d3e20e600360009054906101000a90046fffffffffffffffffffffffffffffffff166040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b151561153557fe5b6102c65a03f1151561154357fe5b505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633452f51d600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360109054906101000a90046fffffffffffffffffffffffffffffffff166000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b151561167457fe5b6102c65a03f1151561168257fe5b50505060405180519050506004600f6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020908054600181600116156101000203166002900461170f929190612161565b507fd80364ba2cbb1e827ab8adac9651cdfc27fb7b61c0a95663cb80b82d7636ad22600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156118115780601f106117e657610100808354040283529160200191611811565b820191906000526020600020905b8154815290600101906020018083116117f457829003601f168201915b5050935050505060405180910390a15b5b50565b6000600190505b611834611153565b8110156118525761184481610a34565b5b808060010191505061182c565b5b50565b600060085482101561186b57600090506118ce565b600854821015801561187e575060095482105b156118a7576001620151806118958460085461206b565b81151561189e57fe5b040190506118ce565b60095482101580156118ba5750600a5482105b156118c85760b090506118ce565b6103e790505b919050565b6118fe60006118e0611153565b1180156118f957506001600754016118f6611153565b11155b611f08565b611911662386f26fc10000341015611f08565b61192461191c611153565b831015611f08565b611935600160075401831115611f08565b34600d600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555034600c6000848152602001908152602001600020600082825401925050819055506000811415156119de576119dd81600c6000858152602001908152602001600020541115611f08565b5b7fe054057d0479c6218d6ec87be73f88230a7e4e1f064cee6e7504e2c4cd9d6150823334604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a15b5050565b611a8c611a87336000357fffffffff0000000000000000000000000000000000000000000000000000000016611ca6565b611f08565b611a9f6000611a99611153565b11611f08565b611ac0333073ffffffffffffffffffffffffffffffffffffffff1631612085565b7f4ceba015d961d93f1d6825703b730a8ba05619c005dfd8073aee773dc6725fbb3073ffffffffffffffffffffffffffffffffffffffff16316040518082815260200191505060405180910390a15b5b565b60075481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b611b5c600160075401611b55611153565b1115611f08565b611b6a604082511115611f08565b80600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209080519060200190611bbd9291906121e8565b507fd80364ba2cbb1e827ab8adac9651cdfc27fb7b61c0a95663cb80b82d7636ad223382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360008314611c62575b805182526020831115611c6257602082019150602081019050602083039250611c3e565b505050905090810190601f168015611c8e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15b50565b60065481565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ce55760019050611f02565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d445760019050611f02565b600073ffffffffffffffffffffffffffffffffffffffff16600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611da45760009050611f02565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b70096138430856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019350505050602060405180830381600087803b1515611ee057fe5b6102c65a03f11515611eee57fe5b505050604051805190509050611f02565b5b5b5b92915050565b801515611f155760006000fd5b5b50565b600081829150816fffffffffffffffffffffffffffffffff16141515611f3b57fe5b5b919050565b6000611fc9826fffffffffffffffffffffffffffffffff166002846fffffffffffffffffffffffffffffffff16811515611f7757fe5b046fffffffffffffffffffffffffffffffff16670de0b6b3a76400006fffffffffffffffffffffffffffffffff16866fffffffffffffffffffffffffffffffff160201811515611fc357fe5b04611f19565b90505b92915050565b6000612062670de0b6b3a76400006fffffffffffffffffffffffffffffffff166002670de0b6b3a76400006fffffffffffffffffffffffffffffffff1681151561201857fe5b046fffffffffffffffffffffffffffffffff16846fffffffffffffffffffffffffffffffff16866fffffffffffffffffffffffffffffffff16020181151561205c57fe5b04611f19565b90505b92915050565b6000828284039150811115151561207e57fe5b5b92915050565b61208d612268565b61209883828461209e565b5b505050565b6120a98383836120bb565b15156120b55760006000fd5b5b505050565b60008373ffffffffffffffffffffffffffffffffffffffff16828460405180828051906020019080838360008314612112575b805182526020831115612112576020820191506020810190506020830392506120ee565b505050905090810190601f16801561213e5780820380516001836020036101000a031916815260200191505b5091505060006040518083038185876187965a03f19250505090505b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061219a57805485556121d7565b828001600101855582156121d757600052602060002091601f016020900482015b828111156121d65782548255916001019190600101906121bb565b5b5090506121e4919061227c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061222957805160ff1916838001178555612257565b82800160010185558215612257579182015b8281111561225657825182559160200191906001019061223b565b5b509050612264919061227c565b5090565b602060405190810160405280600081525090565b61229e91905b8082111561229a576000816000905550600101612282565b5090565b905600a165627a7a72305820587ad1058f647b692cfde983a3f91a71946d0b9f9a0458e239dc0443a03d661f0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000005b326300
-----Decoded View---------------
Arg [0] : _startTime (uint256): 1530028800
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000005b326300
Swarm Source
bzzr://587ad1058f647b692cfde983a3f91a71946d0b9f9a0458e239dc0443a03d661f
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.