Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,383 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 5845710 | 2445 days ago | IN | 0.3 ETH | 0.0000218 | ||||
Set Sale Phase | 5845240 | 2445 days ago | IN | 0 ETH | 0.00030623 | ||||
Transfer | 5798701 | 2453 days ago | IN | 15 ETH | 0.0031948 | ||||
Transfer | 5783051 | 2455 days ago | IN | 0.73075844 ETH | 0.0025798 | ||||
Transfer | 5782949 | 2455 days ago | IN | 0.01 ETH | 0.0031948 | ||||
Transfer | 5765762 | 2459 days ago | IN | 2.02 ETH | 0.00031461 | ||||
Transfer | 5764990 | 2459 days ago | IN | 0.01 ETH | 0.00038961 | ||||
Transfer | 5764304 | 2459 days ago | IN | 234.64 ETH | 0.00116883 | ||||
Buy Tokens | 5753810 | 2461 days ago | IN | 0.0005 ETH | 0.00071564 | ||||
Buy Tokens | 5753670 | 2461 days ago | IN | 0.002 ETH | 0.00328241 | ||||
Buy Tokens | 5748596 | 2462 days ago | IN | 0.001 ETH | 0.00080059 | ||||
Transfer | 5710404 | 2468 days ago | IN | 0.55 ETH | 0.0031948 | ||||
Transfer | 5709934 | 2468 days ago | IN | 0.5698 ETH | 0.0031948 | ||||
Transfer | 5708744 | 2469 days ago | IN | 1.99 ETH | 0.00119551 | ||||
Transfer | 5707750 | 2469 days ago | IN | 0.1859 ETH | 0.00125844 | ||||
Transfer | 5707300 | 2469 days ago | IN | 0.54 ETH | 0.0031948 | ||||
Transfer | 5704850 | 2469 days ago | IN | 0.24 ETH | 0.0031948 | ||||
Transfer | 5704181 | 2469 days ago | IN | 0.511 ETH | 0.00155844 | ||||
Transfer | 5703714 | 2470 days ago | IN | 0.44 ETH | 0.00101298 | ||||
Transfer | 5697659 | 2471 days ago | IN | 0.6 ETH | 0.0025798 | ||||
Transfer | 5690102 | 2472 days ago | IN | 25 ETH | 0.0031948 | ||||
Transfer | 5549413 | 2497 days ago | IN | 0.005 ETH | 0.00031168 | ||||
Transfer | 5548382 | 2497 days ago | IN | 0.004 ETH | 0.00031168 | ||||
Transfer | 5542887 | 2498 days ago | IN | 14.9918 ETH | 0.0031948 | ||||
Transfer | 5515312 | 2503 days ago | IN | 1.002 ETH | 0.00038961 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
5798701 | 2453 days ago | 15 ETH | ||||
5783051 | 2455 days ago | 0.73075844 ETH | ||||
5782949 | 2455 days ago | 0.01 ETH | ||||
5765762 | 2459 days ago | 2.02 ETH | ||||
5764990 | 2459 days ago | 0.01 ETH | ||||
5764304 | 2459 days ago | 234.64 ETH | ||||
5759501 | 2460 days ago | 0.000985 ETH | ||||
5759501 | 2460 days ago | 0.000985 ETH | ||||
5757451 | 2460 days ago | 0.00099 ETH | ||||
5757451 | 2460 days ago | 0.00099 ETH | ||||
5753810 | 2461 days ago | 0.0005 ETH | ||||
5753670 | 2461 days ago | 0.002 ETH | ||||
5748596 | 2462 days ago | 0.001 ETH | ||||
5710404 | 2468 days ago | 0.55 ETH | ||||
5709934 | 2468 days ago | 0.5698 ETH | ||||
5708744 | 2469 days ago | 1.99 ETH | ||||
5707750 | 2469 days ago | 0.1859 ETH | ||||
5707300 | 2469 days ago | 0.54 ETH | ||||
5704850 | 2469 days ago | 0.24 ETH | ||||
5704181 | 2469 days ago | 0.511 ETH | ||||
5703714 | 2470 days ago | 0.44 ETH | ||||
5697659 | 2471 days ago | 0.6 ETH | ||||
5690102 | 2472 days ago | 25 ETH | ||||
5549413 | 2497 days ago | 0.005 ETH | ||||
5548382 | 2497 days ago | 0.004 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
BTHRTokenSale
Compiler Version
v0.4.21+commit.dfe3193c
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-04-10 */ pragma solidity ^0.4.18; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { function mul(uint256 a, uint256 b) internal constant returns (uint256) { uint256 c = a * b; assert(a == 0 || c / a == b); return c; } function div(uint256 a, uint256 b) internal constant returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function sub(uint256 a, uint256 b) internal constant returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal constant returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ function Ownable() { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) onlyOwner public { require(newOwner != address(0)); OwnershipTransferred(owner, newOwner); owner = newOwner; } } /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { uint256 public totalSupply; function balanceOf(address who) public constant returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public constant returns (uint256); function transferFrom(address from, address to, uint256 value) public returns (bool); function approve(address spender, uint256 value) public returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @title Basic token * @dev Basic version of StandardToken, with no allowances. */ contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) balances; /** * @dev transfer token for a specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) public returns (bool) { require(_to != address(0)); // SafeMath.sub will throw if there is not enough balance. balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); Transfer(msg.sender, _to, _value); return true; } /** * @dev Gets the balance of the specified address. * @param _owner The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _owner) public constant returns (uint256 balance) { return balances[_owner]; } } /** * @title Standard ERC20 token * * @dev Implementation of the basic standard token. * @dev https://github.com/ethereum/EIPs/issues/20 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ contract StandardToken is ERC20, BasicToken { mapping (address => mapping (address => uint256)) allowed; /** * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 the amount of tokens to be transferred */ function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(_to != address(0)); uint256 _allowance = allowed[_from][msg.sender]; // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met // require (_value <= _allowance); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = _allowance.sub(_value); Transfer(_from, _to, _value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) public returns (bool) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address _owner, address _spender) public constant returns (uint256 remaining) { return allowed[_owner][_spender]; } /** * approve should be called when allowed[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol */ function increaseApproval (address _spender, uint _addedValue) returns (bool success) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } function decreaseApproval (address _spender, uint _subtractedValue) returns (bool success) { uint oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); } Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } } /** * @title Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. */ contract Pausable is Ownable { event Pause(); event Unpause(); bool public paused = false; /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!paused); _; } /** * @dev Modifier to make a function callable only when the contract is paused. */ modifier whenPaused() { require(paused); _; } /** * @dev called by the owner to pause, triggers stopped state */ function pause() onlyOwner whenNotPaused public { paused = true; Pause(); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() onlyOwner whenPaused public { paused = false; Unpause(); } } /** * @title Pausable token * * @dev StandardToken modified with pausable transfers. **/ contract PausableToken is StandardToken, Pausable { function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) { return super.transfer(_to, _value); } function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) { return super.transferFrom(_from, _to, _value); } function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) { return super.approve(_spender, _value); } function increaseApproval(address _spender, uint _addedValue) public whenNotPaused returns (bool success) { return super.increaseApproval(_spender, _addedValue); } function decreaseApproval(address _spender, uint _subtractedValue) public whenNotPaused returns (bool success) { return super.decreaseApproval(_spender, _subtractedValue); } } /** * @title Mintable token * @dev Simple ERC20 Token example, with mintable token creation * @dev Issue: * https://github.com/OpenZeppelin/zeppelin-solidity/issues/120 * Based on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol */ contract MintableToken is StandardToken, Ownable { event Mint(address indexed to, uint256 amount); event MintFinished(); bool public mintingFinished = false; modifier canMint() { require(!mintingFinished); _; } /** * @dev Function to mint tokens * @param _to The address that will receive the minted tokens. * @param _amount The amount of tokens to mint. * @return A boolean that indicates if the operation was successful. */ function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) { totalSupply = totalSupply.add(_amount); balances[_to] = balances[_to].add(_amount); Mint(_to, _amount); Transfer(address(0), _to, _amount); return true; } /** * @dev Function to stop minting new tokens. * @return True if the operation was successful. */ function finishMinting() onlyOwner canMint public returns (bool) { mintingFinished = true; MintFinished(); return true; } } contract BethereumToken is MintableToken, PausableToken { string public constant name = "Bethereum"; string public constant symbol = "BTHR"; uint256 public constant decimals = 18; function BethereumToken(){ pause(); } } /** * @title Crowdsale * @dev Crowdsale is a base contract for managing a token crowdsale. * Crowdsales have a start and end timestamps, where investors can make * token purchases and the crowdsale will assign them tokens based * on a token per ETH rate. Funds collected are forwarded to a wallet * as they arrive. */ contract Crowdsale { using SafeMath for uint256; // The token being sold MintableToken public token; // start and end timestamps where investments are allowed (both inclusive) uint256 public startTime; uint256 public endTime; // address where funds are collected address public wallet; // amount of raised money in wei uint256 public weiRaised; /** * event for token purchase logging * @param purchaser who paid for the tokens * @param beneficiary who got the tokens * @param value weis paid for purchase * @param amount amount of tokens purchased */ event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount); function Crowdsale(uint256 _endTime, address _wallet) { require(_endTime >= now); require(_wallet != 0x0); token = createTokenContract(); endTime = _endTime; wallet = _wallet; } // creates the token to be sold. // override this method to have crowdsale of a specific mintable token. function createTokenContract() internal returns (BethereumToken) { return new BethereumToken(); } // fallback function can be used to buy tokens function () payable { buyTokens(msg.sender); } // low level token purchase function function buyTokens(address beneficiary) public payable { } // send ether to the fund collection wallet // override to create custom fund forwarding mechanisms function forwardFunds() internal { wallet.transfer(msg.value); } // @return true if the transaction can buy tokens function validPurchase() internal constant returns (bool) { bool withinPeriod = now >= startTime && now <= endTime; bool nonZeroPurchase = msg.value != 0; return withinPeriod && nonZeroPurchase; } // @return true if crowdsale event has ended function hasEnded() public constant returns (bool) { return now > endTime; } } /** * @title FinalizableCrowdsale * @dev Extension of Crowdsale where an owner can do extra work * after finishing. */ contract FinalizableCrowdsale is Crowdsale, Ownable { using SafeMath for uint256; bool public isFinalized = false; bool public weiCapReached = false; event Finalized(); /** * @dev Must be called after crowdsale ends, to do some extra finalization * work. Calls the contract's finalization function. */ function finalize() onlyOwner public { require(!isFinalized); finalization(); Finalized(); isFinalized = true; } /** * @dev Can be overridden to add finalization logic. The overriding function * should call super.finalization() to ensure the chain of finalization is * executed entirely. */ function finalization() internal { } } contract BTHRTokenSale is FinalizableCrowdsale { using SafeMath for uint256; // Define sale uint public constant RATE = 17500; uint public constant TOKEN_SALE_LIMIT = 25000 * 1000000000000000000; uint256 public constant TOKENS_FOR_OPERATIONS = 400000000*(10**18); uint256 public constant TOKENS_FOR_SALE = 600000000*(10**18); uint public constant TOKENS_FOR_PRESALE = 315000000*(1 ether / 1 wei); uint public constant FRST_CRWDSALE_RATIO = TOKENS_FOR_PRESALE + 147875000*(1 ether / 1 wei);//30% bonus uint public constant SCND_CRWDSALE_RATIO = FRST_CRWDSALE_RATIO + 110687500*(1 ether / 1 wei);//15% bonus enum Phase { Created,//Inital phase after deploy PresaleRunning, //Presale phase Paused, //Pause phase between pre-sale and main token sale or emergency pause function ICORunning, //Crowdsale phase FinishingICO //Final phase when crowdsale is closed and time is up } Phase public currentPhase = Phase.Created; event LogPhaseSwitch(Phase phase); // Constructor function BTHRTokenSale(uint256 _end, address _wallet) FinalizableCrowdsale() Crowdsale(_end, _wallet) { } /// @dev Lets buy you some tokens. function buyTokens(address _buyer) public payable { // Available only if presale or crowdsale is running. require((currentPhase == Phase.PresaleRunning) || (currentPhase == Phase.ICORunning)); require(_buyer != address(0)); require(msg.value > 0); require(validPurchase()); uint tokensWouldAddTo = 0; uint weiWouldAddTo = 0; uint256 weiAmount = msg.value; uint newTokens = msg.value.mul(RATE); weiWouldAddTo = weiRaised.add(weiAmount); require(weiWouldAddTo <= TOKEN_SALE_LIMIT); newTokens = addBonusTokens(token.totalSupply(), newTokens); tokensWouldAddTo = newTokens.add(token.totalSupply()); require(tokensWouldAddTo <= TOKENS_FOR_SALE); token.mint(_buyer, newTokens); TokenPurchase(msg.sender, _buyer, weiAmount, newTokens); weiRaised = weiWouldAddTo; forwardFunds(); if (weiRaised == TOKENS_FOR_SALE){ weiCapReached = true; } } // @dev Adds bonus tokens by token supply bought by user // @param _totalSupply total supply of token bought during pre-sale/crowdsale // @param _newTokens tokens currently bought by user function addBonusTokens(uint256 _totalSupply, uint256 _newTokens) internal view returns (uint256) { uint returnTokens = 0; uint tokensToAdd = 0; uint tokensLeft = _newTokens; if(currentPhase == Phase.PresaleRunning){ if(_totalSupply < TOKENS_FOR_PRESALE){ if(_totalSupply + tokensLeft + tokensLeft.mul(50).div(100) > TOKENS_FOR_PRESALE){ tokensToAdd = TOKENS_FOR_PRESALE.sub(_totalSupply); tokensToAdd = tokensToAdd.mul(100).div(150); returnTokens = returnTokens.add(tokensToAdd); returnTokens = returnTokens.add(tokensToAdd.mul(50).div(100)); tokensLeft = tokensLeft.sub(tokensToAdd); _totalSupply = _totalSupply.add(tokensToAdd.add(tokensToAdd.mul(50).div(100))); } else { returnTokens = returnTokens.add(tokensLeft).add(tokensLeft.mul(50).div(100)); tokensLeft = tokensLeft.sub(tokensLeft); } } } if (tokensLeft > 0 && _totalSupply < FRST_CRWDSALE_RATIO) { if(_totalSupply + tokensLeft + tokensLeft.mul(30).div(100)> FRST_CRWDSALE_RATIO){ tokensToAdd = FRST_CRWDSALE_RATIO.sub(_totalSupply); tokensToAdd = tokensToAdd.mul(100).div(130); returnTokens = returnTokens.add(tokensToAdd).add(tokensToAdd.mul(30).div(100)); tokensLeft = tokensLeft.sub(tokensToAdd); _totalSupply = _totalSupply.add(tokensToAdd.add(tokensToAdd.mul(30).div(100))); } else { returnTokens = returnTokens.add(tokensLeft); returnTokens = returnTokens.add(tokensLeft.mul(30).div(100)); tokensLeft = tokensLeft.sub(tokensLeft); } } if (tokensLeft > 0 && _totalSupply < SCND_CRWDSALE_RATIO) { if(_totalSupply + tokensLeft + tokensLeft.mul(15).div(100) > SCND_CRWDSALE_RATIO){ tokensToAdd = SCND_CRWDSALE_RATIO.sub(_totalSupply); tokensToAdd = tokensToAdd.mul(100).div(115); returnTokens = returnTokens.add(tokensToAdd).add(tokensToAdd.mul(15).div(100)); tokensLeft = tokensLeft.sub(tokensToAdd); _totalSupply = _totalSupply.add(tokensToAdd.add(tokensToAdd.mul(15).div(100))); } else { returnTokens = returnTokens.add(tokensLeft); returnTokens = returnTokens.add(tokensLeft.mul(15).div(100)); tokensLeft = tokensLeft.sub(tokensLeft); } } if (tokensLeft > 0) { returnTokens = returnTokens.add(tokensLeft); tokensLeft = tokensLeft.sub(tokensLeft); } return returnTokens; } function validPurchase() internal view returns (bool) { bool withinPeriod = now <= endTime; bool nonZeroPurchase = msg.value != 0; bool isRunning = ((currentPhase == Phase.ICORunning) || (currentPhase == Phase.PresaleRunning)); return withinPeriod && nonZeroPurchase && isRunning; } function setSalePhase(Phase _nextPhase) public onlyOwner { bool canSwitchPhase = (currentPhase == Phase.Created && _nextPhase == Phase.PresaleRunning) || (currentPhase == Phase.PresaleRunning && _nextPhase == Phase.Paused) || ((currentPhase == Phase.PresaleRunning || currentPhase == Phase.Paused) && _nextPhase == Phase.ICORunning) || (currentPhase == Phase.ICORunning && _nextPhase == Phase.Paused) || (currentPhase == Phase.Paused && _nextPhase == Phase.PresaleRunning) || (currentPhase == Phase.Paused && _nextPhase == Phase.FinishingICO) || (currentPhase == Phase.ICORunning && _nextPhase == Phase.FinishingICO); require(canSwitchPhase); currentPhase = _nextPhase; LogPhaseSwitch(_nextPhase); } // Finalize function finalization() internal { uint256 toMint = TOKENS_FOR_OPERATIONS; token.mint(wallet, toMint); token.finishMinting(); token.transferOwnership(wallet); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"currentPhase","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SCND_CRWDSALE_RATIO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKENS_FOR_OPERATIONS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weiCapReached","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"RATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKENS_FOR_PRESALE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_nextPhase","type":"uint8"}],"name":"setSalePhase","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isFinalized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"FRST_CRWDSALE_RATIO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKENS_FOR_SALE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_SALE_LIMIT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_buyer","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"hasEnded","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_end","type":"uint256"},{"name":"_wallet","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"phase","type":"uint8"}],"name":"LogPhaseSwitch","type":"event"},{"anonymous":false,"inputs":[],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"}]
Contract Creation Code
60606040526000600560146101000a81548160ff0219169083151502179055506000600560156101000a81548160ff0219169083151502179055506000600560166101000a81548160ff021916908360048111156200005a57fe5b021790555034156200006b57600080fd5b6040516040806200538e833981016040528080519060200190919080519060200190919050508181428210151515620000a357600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515620000ca57600080fd5b620000e8620001ba6401000000000262001b70176401000000009004565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160028190555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620001f3565b6000620001c6620001e2565b604051809103906000f0801515620001dd57600080fd5b905090565b604051611adb80620038b383390190565b6136b080620002036000396000f30060606040526004361062000133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063055ad42e14620001405780631a429a0e146200017b5780632a8f6aa814620001a75780633197cbb614620001d35780633b8e2a2614620001ff5780634042b66f146200022f5780634bb278f3146200025b578063521eb2731462000273578063664e970414620002cb57806378a2e10114620002f757806378e9792514620003235780637ad59431146200034f5780638d4e408314620003785780638da5cb5b14620003a8578063bdcefb621462000400578063c8612b2f146200042c578063d576dc581462000458578063ec8ac4d81462000484578063ecb70fb714620004b4578063f2fde38b14620004e4578063fc0c546a1462000520575b6200013e3362000578565b005b34156200014c57600080fd5b62000156620009b0565b604051808260048111156200016757fe5b60ff16815260200191505060405180910390f35b34156200018757600080fd5b62000191620009c3565b6040518082815260200191505060405180910390f35b3415620001b357600080fd5b620001bd620009ed565b6040518082815260200191505060405180910390f35b3415620001df57600080fd5b620001e9620009fd565b6040518082815260200191505060405180910390f35b34156200020b57600080fd5b6200021562000a03565b604051808215151515815260200191505060405180910390f35b34156200023b57600080fd5b6200024562000a16565b6040518082815260200191505060405180910390f35b34156200026757600080fd5b6200027162000a1c565b005b34156200027f57600080fd5b6200028962000ae9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415620002d757600080fd5b620002e162000b0f565b6040518082815260200191505060405180910390f35b34156200030357600080fd5b6200030d62000b15565b6040518082815260200191505060405180910390f35b34156200032f57600080fd5b6200033962000b25565b6040518082815260200191505060405180910390f35b34156200035b57600080fd5b62000376600480803560ff1690602001909190505062000b2b565b005b34156200038457600080fd5b6200038e62000e98565b604051808215151515815260200191505060405180910390f35b3415620003b457600080fd5b620003be62000eab565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156200040c57600080fd5b6200041662000ed1565b6040518082815260200191505060405180910390f35b34156200043857600080fd5b6200044262000eee565b6040518082815260200191505060405180910390f35b34156200046457600080fd5b6200046e62000efe565b6040518082815260200191505060405180910390f35b620004b2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505062000578565b005b3415620004c057600080fd5b620004ca62000f0c565b604051808215151515815260200191505060405180910390f35b3415620004f057600080fd5b6200051e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505062000f18565b005b34156200052c57600080fd5b6200053662001072565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600080600080600160048111156200058c57fe5b600560169054906101000a900460ff166004811115620005a857fe5b1480620005dc575060036004811115620005be57fe5b600560169054906101000a900460ff166004811115620005da57fe5b145b1515620005e857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515156200062557600080fd5b6000341115156200063557600080fd5b6200063f62001097565b15156200064b57600080fd5b60009350600092503491506200066d61445c346200112990919063ffffffff16565b905062000686826004546200115f90919063ffffffff16565b925069054b40b1f852bda000008311151515620006a257600080fd5b6200074a6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156200072b57600080fd5b5af115156200073957600080fd5b50505060405180519050826200117e565b9050620007fd6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515620007d557600080fd5b5af11515620007e357600080fd5b50505060405180519050826200115f90919063ffffffff16565b93506b01f04ef12cb04cf15800000084111515156200081b57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1986836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515620008df57600080fd5b5af11515620008ed57600080fd5b50505060405180519050508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad188484604051808381526020018281526020019250505060405180910390a3826004819055506200097662001835565b6b01f04ef12cb04cf1580000006004541415620009a9576001600560156101000a81548160ff0219169083151502179055505b5050505050565b600560169054906101000a900460ff1681565b6a5b8efd65fa3afe8cb000006a7a51bfd0149fc35fe000006b01048fd8377628651b000000010181565b6b014adf4b7320334b9000000081565b60025481565b600560159054906101000a900460ff1681565b60045481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000a7957600080fd5b600560149054906101000a900460ff1615151562000a9657600080fd5b62000aa06200189a565b7f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a16001600560146101000a81548160ff021916908315150217905550565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61445c81565b6b01048fd8377628651b00000081565b60015481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000b8a57600080fd5b6000600481111562000b9857fe5b600560169054906101000a900460ff16600481111562000bb457fe5b14801562000bda57506001600481111562000bcb57fe5b82600481111562000bd857fe5b145b8062000c3257506001600481111562000bef57fe5b600560169054906101000a900460ff16600481111562000c0b57fe5b14801562000c3157506002600481111562000c2257fe5b82600481111562000c2f57fe5b145b5b8062000cbd57506001600481111562000c4757fe5b600560169054906101000a900460ff16600481111562000c6357fe5b148062000c9757506002600481111562000c7957fe5b600560169054906101000a900460ff16600481111562000c9557fe5b145b801562000cbc57506003600481111562000cad57fe5b82600481111562000cba57fe5b145b5b8062000d1557506003600481111562000cd257fe5b600560169054906101000a900460ff16600481111562000cee57fe5b14801562000d1457506002600481111562000d0557fe5b82600481111562000d1257fe5b145b5b8062000d6d57506002600481111562000d2a57fe5b600560169054906101000a900460ff16600481111562000d4657fe5b14801562000d6c57506001600481111562000d5d57fe5b82600481111562000d6a57fe5b145b5b8062000dc457506002600481111562000d8257fe5b600560169054906101000a900460ff16600481111562000d9e57fe5b14801562000dc3575060048081111562000db457fe5b82600481111562000dc157fe5b145b5b8062000e1b57506003600481111562000dd957fe5b600560169054906101000a900460ff16600481111562000df557fe5b14801562000e1a575060048081111562000e0b57fe5b82600481111562000e1857fe5b145b5b905080151562000e2a57600080fd5b81600560166101000a81548160ff0219169083600481111562000e4957fe5b02179055507f8d9efa3fab1bd6476defa44f520afbf9337886a4947021fd7f2775e0efaf4571826040518082600481111562000e8157fe5b60ff16815260200191505060405180910390a15050565b600560149054906101000a900460ff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6a7a51bfd0149fc35fe000006b01048fd8377628651b0000000181565b6b01f04ef12cb04cf15800000081565b69054b40b1f852bda0000081565b60006002544211905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000f7557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151562000fb257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060025442111592506000341415915060036004811115620010ba57fe5b600560169054906101000a900460ff166004811115620010d657fe5b14806200110a575060016004811115620010ec57fe5b600560169054906101000a900460ff1660048111156200110857fe5b145b9050828015620011175750815b8015620011215750805b935050505090565b600080828402905060008414806200114c57508284828115156200114957fe5b04145b15156200115557fe5b8091505092915050565b60008082840190508381101515156200117457fe5b8091505092915050565b6000806000806000925060009150849050600160048111156200119d57fe5b600560169054906101000a900460ff166004811115620011b957fe5b1415620013a1576b01048fd8377628651b000000861015620013a0576b01048fd8377628651b0000006200120d6064620011fe6032856200112990919063ffffffff16565b62001b3a90919063ffffffff16565b828801011115620013325762001239866b01048fd8377628651b00000062001b5690919063ffffffff16565b9150620012666096620012576064856200112990919063ffffffff16565b62001b3a90919063ffffffff16565b91506200127d82846200115f90919063ffffffff16565b9250620012be620012ae60646200129f6032866200112990919063ffffffff16565b62001b3a90919063ffffffff16565b846200115f90919063ffffffff16565b9250620012d5828262001b5690919063ffffffff16565b90506200132a6200131a6200130a6064620012fb6032876200112990919063ffffffff16565b62001b3a90919063ffffffff16565b846200115f90919063ffffffff16565b876200115f90919063ffffffff16565b95506200139f565b62001385620013616064620013526032856200112990919063ffffffff16565b62001b3a90919063ffffffff16565b6200137683866200115f90919063ffffffff16565b6200115f90919063ffffffff16565b92506200139c818262001b5690919063ffffffff16565b90505b5b5b600081118015620013ca57506a7a51bfd0149fc35fe000006b01048fd8377628651b0000000186105b15620015b5576a7a51bfd0149fc35fe000006b01048fd8377628651b0000000162001415606462001406601e856200112990919063ffffffff16565b62001b3a90919063ffffffff16565b82880101111562001544576200144e866a7a51bfd0149fc35fe000006b01048fd8377628651b0000000162001b5690919063ffffffff16565b91506200147b60826200146c6064856200112990919063ffffffff16565b62001b3a90919063ffffffff16565b9150620014d0620014ac60646200149d601e866200112990919063ffffffff16565b62001b3a90919063ffffffff16565b620014c184866200115f90919063ffffffff16565b6200115f90919063ffffffff16565b9250620014e7828262001b5690919063ffffffff16565b90506200153c6200152c6200151c60646200150d601e876200112990919063ffffffff16565b62001b3a90919063ffffffff16565b846200115f90919063ffffffff16565b876200115f90919063ffffffff16565b9550620015b4565b6200155981846200115f90919063ffffffff16565b92506200159a6200158a60646200157b601e856200112990919063ffffffff16565b62001b3a90919063ffffffff16565b846200115f90919063ffffffff16565b9250620015b1818262001b5690919063ffffffff16565b90505b5b600081118015620015eb57506a5b8efd65fa3afe8cb000006a7a51bfd0149fc35fe000006b01048fd8377628651b000000010186105b15620017f0576a5b8efd65fa3afe8cb000006a7a51bfd0149fc35fe000006b01048fd8377628651b000000010162001643606462001634600f856200112990919063ffffffff16565b62001b3a90919063ffffffff16565b8288010111156200177f5762001689866a5b8efd65fa3afe8cb000006a7a51bfd0149fc35fe000006b01048fd8377628651b000000010162001b5690919063ffffffff16565b9150620016b66073620016a76064856200112990919063ffffffff16565b62001b3a90919063ffffffff16565b91506200170b620016e76064620016d8600f866200112990919063ffffffff16565b62001b3a90919063ffffffff16565b620016fc84866200115f90919063ffffffff16565b6200115f90919063ffffffff16565b925062001722828262001b5690919063ffffffff16565b9050620017776200176762001757606462001748600f876200112990919063ffffffff16565b62001b3a90919063ffffffff16565b846200115f90919063ffffffff16565b876200115f90919063ffffffff16565b9550620017ef565b6200179481846200115f90919063ffffffff16565b9250620017d5620017c56064620017b6600f856200112990919063ffffffff16565b62001b3a90919063ffffffff16565b846200115f90919063ffffffff16565b9250620017ec818262001b5690919063ffffffff16565b90505b5b600081111562001829576200180f81846200115f90919063ffffffff16565b925062001826818262001b5690919063ffffffff16565b90505b82935050505092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015156200189857600080fd5b565b60006b014adf4b7320334b9000000090506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156200199157600080fd5b5af115156200199f57600080fd5b50505060405180519050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637d64bcb46040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151562001a2f57600080fd5b5af1151562001a3d57600080fd5b50505060405180519050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2fde38b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b151562001b2657600080fd5b5af1151562001b3457600080fd5b50505050565b600080828481151562001b4957fe5b0490508091505092915050565b600082821115151562001b6557fe5b818303905092915050565b600062001b7c62001b98565b604051809103906000f080151562001b9357600080fd5b905090565b604051611adb8062001baa83390190560060606040526000600360146101000a81548160ff0219169083151502179055506000600360156101000a81548160ff021916908315150217905550341561004557600080fd5b33600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506100a16100a664010000000002610b62176401000000009004565b610167565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561010257600080fd5b600360159054906101000a900460ff1615151561011e57600080fd5b6001600360156101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b611965806101766000396000f300606060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461010c57806306fdde0314610139578063095ea7b3146101c757806318160ddd1461022157806323b872dd1461024a578063313ce567146102c35780633f4ba83a146102ec57806340c10f19146103015780635c975abb1461035b578063661884631461038857806370a08231146103e25780637d64bcb41461042f5780638456cb591461045c5780638da5cb5b1461047157806395d89b41146104c6578063a9059cbb14610554578063d73dd623146105ae578063dd62ed3e14610608578063f2fde38b14610674575b600080fd5b341561011757600080fd5b61011f6106ad565b604051808215151515815260200191505060405180910390f35b341561014457600080fd5b61014c6106c0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018c578082015181840152602081019050610171565b50505050905090810190601f1680156101b95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d257600080fd5b610207600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506106f9565b604051808215151515815260200191505060405180910390f35b341561022c57600080fd5b610234610729565b6040518082815260200191505060405180910390f35b341561025557600080fd5b6102a9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061072f565b604051808215151515815260200191505060405180910390f35b34156102ce57600080fd5b6102d6610761565b6040518082815260200191505060405180910390f35b34156102f757600080fd5b6102ff610766565b005b341561030c57600080fd5b610341600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610826565b604051808215151515815260200191505060405180910390f35b341561036657600080fd5b61036e610a0e565b604051808215151515815260200191505060405180910390f35b341561039357600080fd5b6103c8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610a21565b604051808215151515815260200191505060405180910390f35b34156103ed57600080fd5b610419600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a51565b6040518082815260200191505060405180910390f35b341561043a57600080fd5b610442610a9a565b604051808215151515815260200191505060405180910390f35b341561046757600080fd5b61046f610b62565b005b341561047c57600080fd5b610484610c23565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104d157600080fd5b6104d9610c49565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105195780820151818401526020810190506104fe565b50505050905090810190601f1680156105465780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561055f57600080fd5b610594600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610c82565b604051808215151515815260200191505060405180910390f35b34156105b957600080fd5b6105ee600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610cb2565b604051808215151515815260200191505060405180910390f35b341561061357600080fd5b61065e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ce2565b6040518082815260200191505060405180910390f35b341561067f57600080fd5b6106ab600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d69565b005b600360149054906101000a900460ff1681565b6040805190810160405280600981526020017f42657468657265756d000000000000000000000000000000000000000000000081525081565b6000600360159054906101000a900460ff1615151561071757600080fd5b6107218383610ec1565b905092915050565b60005481565b6000600360159054906101000a900460ff1615151561074d57600080fd5b610758848484610fb3565b90509392505050565b601281565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107c257600080fd5b600360159054906101000a900460ff1615156107dd57600080fd5b6000600360156101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561088457600080fd5b600360149054906101000a900460ff161515156108a057600080fd5b6108b58260005461129f90919063ffffffff16565b60008190555061090d82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129f90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600360159054906101000a900460ff1681565b6000600360159054906101000a900460ff16151515610a3f57600080fd5b610a4983836112bd565b905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610af857600080fd5b600360149054906101000a900460ff16151515610b1457600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bbe57600080fd5b600360159054906101000a900460ff16151515610bda57600080fd5b6001600360156101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600481526020017f425448520000000000000000000000000000000000000000000000000000000081525081565b6000600360159054906101000a900460ff16151515610ca057600080fd5b610caa838361154e565b905092915050565b6000600360159054906101000a900460ff16151515610cd057600080fd5b610cda8383611724565b905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dc557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610e0157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610ff257600080fd5b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506110c383600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192090919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061115883600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111ae838261192090919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b60008082840190508381101515156112b357fe5b8091505092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808311156113ce576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611462565b6113e1838261192090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561158b57600080fd5b6115dd82600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192090919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061167282600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129f90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60006117b582600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129f90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600082821115151561192e57fe5b8183039050929150505600a165627a7a723058208af7bdaaf12c8208a11eba3a889c5d90a85f4cec60b6141f364abd23e8f5a2cb0029a165627a7a723058209f7b0b550c57ca400e316a188428e863ac41ed025bbb4864665b7a8cdef3afb6002960606040526000600360146101000a81548160ff0219169083151502179055506000600360156101000a81548160ff021916908315150217905550341561004557600080fd5b33600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506100a16100a664010000000002610b62176401000000009004565b610167565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561010257600080fd5b600360159054906101000a900460ff1615151561011e57600080fd5b6001600360156101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b611965806101766000396000f300606060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461010c57806306fdde0314610139578063095ea7b3146101c757806318160ddd1461022157806323b872dd1461024a578063313ce567146102c35780633f4ba83a146102ec57806340c10f19146103015780635c975abb1461035b578063661884631461038857806370a08231146103e25780637d64bcb41461042f5780638456cb591461045c5780638da5cb5b1461047157806395d89b41146104c6578063a9059cbb14610554578063d73dd623146105ae578063dd62ed3e14610608578063f2fde38b14610674575b600080fd5b341561011757600080fd5b61011f6106ad565b604051808215151515815260200191505060405180910390f35b341561014457600080fd5b61014c6106c0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018c578082015181840152602081019050610171565b50505050905090810190601f1680156101b95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d257600080fd5b610207600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506106f9565b604051808215151515815260200191505060405180910390f35b341561022c57600080fd5b610234610729565b6040518082815260200191505060405180910390f35b341561025557600080fd5b6102a9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061072f565b604051808215151515815260200191505060405180910390f35b34156102ce57600080fd5b6102d6610761565b6040518082815260200191505060405180910390f35b34156102f757600080fd5b6102ff610766565b005b341561030c57600080fd5b610341600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610826565b604051808215151515815260200191505060405180910390f35b341561036657600080fd5b61036e610a0e565b604051808215151515815260200191505060405180910390f35b341561039357600080fd5b6103c8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610a21565b604051808215151515815260200191505060405180910390f35b34156103ed57600080fd5b610419600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a51565b6040518082815260200191505060405180910390f35b341561043a57600080fd5b610442610a9a565b604051808215151515815260200191505060405180910390f35b341561046757600080fd5b61046f610b62565b005b341561047c57600080fd5b610484610c23565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104d157600080fd5b6104d9610c49565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105195780820151818401526020810190506104fe565b50505050905090810190601f1680156105465780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561055f57600080fd5b610594600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610c82565b604051808215151515815260200191505060405180910390f35b34156105b957600080fd5b6105ee600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610cb2565b604051808215151515815260200191505060405180910390f35b341561061357600080fd5b61065e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ce2565b6040518082815260200191505060405180910390f35b341561067f57600080fd5b6106ab600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d69565b005b600360149054906101000a900460ff1681565b6040805190810160405280600981526020017f42657468657265756d000000000000000000000000000000000000000000000081525081565b6000600360159054906101000a900460ff1615151561071757600080fd5b6107218383610ec1565b905092915050565b60005481565b6000600360159054906101000a900460ff1615151561074d57600080fd5b610758848484610fb3565b90509392505050565b601281565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107c257600080fd5b600360159054906101000a900460ff1615156107dd57600080fd5b6000600360156101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561088457600080fd5b600360149054906101000a900460ff161515156108a057600080fd5b6108b58260005461129f90919063ffffffff16565b60008190555061090d82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129f90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600360159054906101000a900460ff1681565b6000600360159054906101000a900460ff16151515610a3f57600080fd5b610a4983836112bd565b905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610af857600080fd5b600360149054906101000a900460ff16151515610b1457600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bbe57600080fd5b600360159054906101000a900460ff16151515610bda57600080fd5b6001600360156101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600481526020017f425448520000000000000000000000000000000000000000000000000000000081525081565b6000600360159054906101000a900460ff16151515610ca057600080fd5b610caa838361154e565b905092915050565b6000600360159054906101000a900460ff16151515610cd057600080fd5b610cda8383611724565b905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dc557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610e0157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610ff257600080fd5b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506110c383600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192090919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061115883600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111ae838261192090919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b60008082840190508381101515156112b357fe5b8091505092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808311156113ce576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611462565b6113e1838261192090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561158b57600080fd5b6115dd82600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192090919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061167282600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129f90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60006117b582600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129f90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600082821115151561192e57fe5b8183039050929150505600a165627a7a723058208af7bdaaf12c8208a11eba3a889c5d90a85f4cec60b6141f364abd23e8f5a2cb0029000000000000000000000000000000000000000000000000000000005b60f80000000000000000000000000010c27af37a38e0bca4a7fe8492c8ac46a5329c8f
Deployed Bytecode
0x60606040526004361062000133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063055ad42e14620001405780631a429a0e146200017b5780632a8f6aa814620001a75780633197cbb614620001d35780633b8e2a2614620001ff5780634042b66f146200022f5780634bb278f3146200025b578063521eb2731462000273578063664e970414620002cb57806378a2e10114620002f757806378e9792514620003235780637ad59431146200034f5780638d4e408314620003785780638da5cb5b14620003a8578063bdcefb621462000400578063c8612b2f146200042c578063d576dc581462000458578063ec8ac4d81462000484578063ecb70fb714620004b4578063f2fde38b14620004e4578063fc0c546a1462000520575b6200013e3362000578565b005b34156200014c57600080fd5b62000156620009b0565b604051808260048111156200016757fe5b60ff16815260200191505060405180910390f35b34156200018757600080fd5b62000191620009c3565b6040518082815260200191505060405180910390f35b3415620001b357600080fd5b620001bd620009ed565b6040518082815260200191505060405180910390f35b3415620001df57600080fd5b620001e9620009fd565b6040518082815260200191505060405180910390f35b34156200020b57600080fd5b6200021562000a03565b604051808215151515815260200191505060405180910390f35b34156200023b57600080fd5b6200024562000a16565b6040518082815260200191505060405180910390f35b34156200026757600080fd5b6200027162000a1c565b005b34156200027f57600080fd5b6200028962000ae9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415620002d757600080fd5b620002e162000b0f565b6040518082815260200191505060405180910390f35b34156200030357600080fd5b6200030d62000b15565b6040518082815260200191505060405180910390f35b34156200032f57600080fd5b6200033962000b25565b6040518082815260200191505060405180910390f35b34156200035b57600080fd5b62000376600480803560ff1690602001909190505062000b2b565b005b34156200038457600080fd5b6200038e62000e98565b604051808215151515815260200191505060405180910390f35b3415620003b457600080fd5b620003be62000eab565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156200040c57600080fd5b6200041662000ed1565b6040518082815260200191505060405180910390f35b34156200043857600080fd5b6200044262000eee565b6040518082815260200191505060405180910390f35b34156200046457600080fd5b6200046e62000efe565b6040518082815260200191505060405180910390f35b620004b2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505062000578565b005b3415620004c057600080fd5b620004ca62000f0c565b604051808215151515815260200191505060405180910390f35b3415620004f057600080fd5b6200051e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505062000f18565b005b34156200052c57600080fd5b6200053662001072565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600080600080600160048111156200058c57fe5b600560169054906101000a900460ff166004811115620005a857fe5b1480620005dc575060036004811115620005be57fe5b600560169054906101000a900460ff166004811115620005da57fe5b145b1515620005e857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515156200062557600080fd5b6000341115156200063557600080fd5b6200063f62001097565b15156200064b57600080fd5b60009350600092503491506200066d61445c346200112990919063ffffffff16565b905062000686826004546200115f90919063ffffffff16565b925069054b40b1f852bda000008311151515620006a257600080fd5b6200074a6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156200072b57600080fd5b5af115156200073957600080fd5b50505060405180519050826200117e565b9050620007fd6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515620007d557600080fd5b5af11515620007e357600080fd5b50505060405180519050826200115f90919063ffffffff16565b93506b01f04ef12cb04cf15800000084111515156200081b57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1986836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515620008df57600080fd5b5af11515620008ed57600080fd5b50505060405180519050508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad188484604051808381526020018281526020019250505060405180910390a3826004819055506200097662001835565b6b01f04ef12cb04cf1580000006004541415620009a9576001600560156101000a81548160ff0219169083151502179055505b5050505050565b600560169054906101000a900460ff1681565b6a5b8efd65fa3afe8cb000006a7a51bfd0149fc35fe000006b01048fd8377628651b000000010181565b6b014adf4b7320334b9000000081565b60025481565b600560159054906101000a900460ff1681565b60045481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000a7957600080fd5b600560149054906101000a900460ff1615151562000a9657600080fd5b62000aa06200189a565b7f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a16001600560146101000a81548160ff021916908315150217905550565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61445c81565b6b01048fd8377628651b00000081565b60015481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000b8a57600080fd5b6000600481111562000b9857fe5b600560169054906101000a900460ff16600481111562000bb457fe5b14801562000bda57506001600481111562000bcb57fe5b82600481111562000bd857fe5b145b8062000c3257506001600481111562000bef57fe5b600560169054906101000a900460ff16600481111562000c0b57fe5b14801562000c3157506002600481111562000c2257fe5b82600481111562000c2f57fe5b145b5b8062000cbd57506001600481111562000c4757fe5b600560169054906101000a900460ff16600481111562000c6357fe5b148062000c9757506002600481111562000c7957fe5b600560169054906101000a900460ff16600481111562000c9557fe5b145b801562000cbc57506003600481111562000cad57fe5b82600481111562000cba57fe5b145b5b8062000d1557506003600481111562000cd257fe5b600560169054906101000a900460ff16600481111562000cee57fe5b14801562000d1457506002600481111562000d0557fe5b82600481111562000d1257fe5b145b5b8062000d6d57506002600481111562000d2a57fe5b600560169054906101000a900460ff16600481111562000d4657fe5b14801562000d6c57506001600481111562000d5d57fe5b82600481111562000d6a57fe5b145b5b8062000dc457506002600481111562000d8257fe5b600560169054906101000a900460ff16600481111562000d9e57fe5b14801562000dc3575060048081111562000db457fe5b82600481111562000dc157fe5b145b5b8062000e1b57506003600481111562000dd957fe5b600560169054906101000a900460ff16600481111562000df557fe5b14801562000e1a575060048081111562000e0b57fe5b82600481111562000e1857fe5b145b5b905080151562000e2a57600080fd5b81600560166101000a81548160ff0219169083600481111562000e4957fe5b02179055507f8d9efa3fab1bd6476defa44f520afbf9337886a4947021fd7f2775e0efaf4571826040518082600481111562000e8157fe5b60ff16815260200191505060405180910390a15050565b600560149054906101000a900460ff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6a7a51bfd0149fc35fe000006b01048fd8377628651b0000000181565b6b01f04ef12cb04cf15800000081565b69054b40b1f852bda0000081565b60006002544211905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000f7557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151562000fb257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060025442111592506000341415915060036004811115620010ba57fe5b600560169054906101000a900460ff166004811115620010d657fe5b14806200110a575060016004811115620010ec57fe5b600560169054906101000a900460ff1660048111156200110857fe5b145b9050828015620011175750815b8015620011215750805b935050505090565b600080828402905060008414806200114c57508284828115156200114957fe5b04145b15156200115557fe5b8091505092915050565b60008082840190508381101515156200117457fe5b8091505092915050565b6000806000806000925060009150849050600160048111156200119d57fe5b600560169054906101000a900460ff166004811115620011b957fe5b1415620013a1576b01048fd8377628651b000000861015620013a0576b01048fd8377628651b0000006200120d6064620011fe6032856200112990919063ffffffff16565b62001b3a90919063ffffffff16565b828801011115620013325762001239866b01048fd8377628651b00000062001b5690919063ffffffff16565b9150620012666096620012576064856200112990919063ffffffff16565b62001b3a90919063ffffffff16565b91506200127d82846200115f90919063ffffffff16565b9250620012be620012ae60646200129f6032866200112990919063ffffffff16565b62001b3a90919063ffffffff16565b846200115f90919063ffffffff16565b9250620012d5828262001b5690919063ffffffff16565b90506200132a6200131a6200130a6064620012fb6032876200112990919063ffffffff16565b62001b3a90919063ffffffff16565b846200115f90919063ffffffff16565b876200115f90919063ffffffff16565b95506200139f565b62001385620013616064620013526032856200112990919063ffffffff16565b62001b3a90919063ffffffff16565b6200137683866200115f90919063ffffffff16565b6200115f90919063ffffffff16565b92506200139c818262001b5690919063ffffffff16565b90505b5b5b600081118015620013ca57506a7a51bfd0149fc35fe000006b01048fd8377628651b0000000186105b15620015b5576a7a51bfd0149fc35fe000006b01048fd8377628651b0000000162001415606462001406601e856200112990919063ffffffff16565b62001b3a90919063ffffffff16565b82880101111562001544576200144e866a7a51bfd0149fc35fe000006b01048fd8377628651b0000000162001b5690919063ffffffff16565b91506200147b60826200146c6064856200112990919063ffffffff16565b62001b3a90919063ffffffff16565b9150620014d0620014ac60646200149d601e866200112990919063ffffffff16565b62001b3a90919063ffffffff16565b620014c184866200115f90919063ffffffff16565b6200115f90919063ffffffff16565b9250620014e7828262001b5690919063ffffffff16565b90506200153c6200152c6200151c60646200150d601e876200112990919063ffffffff16565b62001b3a90919063ffffffff16565b846200115f90919063ffffffff16565b876200115f90919063ffffffff16565b9550620015b4565b6200155981846200115f90919063ffffffff16565b92506200159a6200158a60646200157b601e856200112990919063ffffffff16565b62001b3a90919063ffffffff16565b846200115f90919063ffffffff16565b9250620015b1818262001b5690919063ffffffff16565b90505b5b600081118015620015eb57506a5b8efd65fa3afe8cb000006a7a51bfd0149fc35fe000006b01048fd8377628651b000000010186105b15620017f0576a5b8efd65fa3afe8cb000006a7a51bfd0149fc35fe000006b01048fd8377628651b000000010162001643606462001634600f856200112990919063ffffffff16565b62001b3a90919063ffffffff16565b8288010111156200177f5762001689866a5b8efd65fa3afe8cb000006a7a51bfd0149fc35fe000006b01048fd8377628651b000000010162001b5690919063ffffffff16565b9150620016b66073620016a76064856200112990919063ffffffff16565b62001b3a90919063ffffffff16565b91506200170b620016e76064620016d8600f866200112990919063ffffffff16565b62001b3a90919063ffffffff16565b620016fc84866200115f90919063ffffffff16565b6200115f90919063ffffffff16565b925062001722828262001b5690919063ffffffff16565b9050620017776200176762001757606462001748600f876200112990919063ffffffff16565b62001b3a90919063ffffffff16565b846200115f90919063ffffffff16565b876200115f90919063ffffffff16565b9550620017ef565b6200179481846200115f90919063ffffffff16565b9250620017d5620017c56064620017b6600f856200112990919063ffffffff16565b62001b3a90919063ffffffff16565b846200115f90919063ffffffff16565b9250620017ec818262001b5690919063ffffffff16565b90505b5b600081111562001829576200180f81846200115f90919063ffffffff16565b925062001826818262001b5690919063ffffffff16565b90505b82935050505092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015156200189857600080fd5b565b60006b014adf4b7320334b9000000090506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156200199157600080fd5b5af115156200199f57600080fd5b50505060405180519050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637d64bcb46040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151562001a2f57600080fd5b5af1151562001a3d57600080fd5b50505060405180519050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2fde38b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b151562001b2657600080fd5b5af1151562001b3457600080fd5b50505050565b600080828481151562001b4957fe5b0490508091505092915050565b600082821115151562001b6557fe5b818303905092915050565b600062001b7c62001b98565b604051809103906000f080151562001b9357600080fd5b905090565b604051611adb8062001baa83390190560060606040526000600360146101000a81548160ff0219169083151502179055506000600360156101000a81548160ff021916908315150217905550341561004557600080fd5b33600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506100a16100a664010000000002610b62176401000000009004565b610167565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561010257600080fd5b600360159054906101000a900460ff1615151561011e57600080fd5b6001600360156101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b611965806101766000396000f300606060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461010c57806306fdde0314610139578063095ea7b3146101c757806318160ddd1461022157806323b872dd1461024a578063313ce567146102c35780633f4ba83a146102ec57806340c10f19146103015780635c975abb1461035b578063661884631461038857806370a08231146103e25780637d64bcb41461042f5780638456cb591461045c5780638da5cb5b1461047157806395d89b41146104c6578063a9059cbb14610554578063d73dd623146105ae578063dd62ed3e14610608578063f2fde38b14610674575b600080fd5b341561011757600080fd5b61011f6106ad565b604051808215151515815260200191505060405180910390f35b341561014457600080fd5b61014c6106c0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018c578082015181840152602081019050610171565b50505050905090810190601f1680156101b95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d257600080fd5b610207600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506106f9565b604051808215151515815260200191505060405180910390f35b341561022c57600080fd5b610234610729565b6040518082815260200191505060405180910390f35b341561025557600080fd5b6102a9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061072f565b604051808215151515815260200191505060405180910390f35b34156102ce57600080fd5b6102d6610761565b6040518082815260200191505060405180910390f35b34156102f757600080fd5b6102ff610766565b005b341561030c57600080fd5b610341600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610826565b604051808215151515815260200191505060405180910390f35b341561036657600080fd5b61036e610a0e565b604051808215151515815260200191505060405180910390f35b341561039357600080fd5b6103c8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610a21565b604051808215151515815260200191505060405180910390f35b34156103ed57600080fd5b610419600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a51565b6040518082815260200191505060405180910390f35b341561043a57600080fd5b610442610a9a565b604051808215151515815260200191505060405180910390f35b341561046757600080fd5b61046f610b62565b005b341561047c57600080fd5b610484610c23565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104d157600080fd5b6104d9610c49565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105195780820151818401526020810190506104fe565b50505050905090810190601f1680156105465780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561055f57600080fd5b610594600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610c82565b604051808215151515815260200191505060405180910390f35b34156105b957600080fd5b6105ee600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610cb2565b604051808215151515815260200191505060405180910390f35b341561061357600080fd5b61065e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ce2565b6040518082815260200191505060405180910390f35b341561067f57600080fd5b6106ab600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d69565b005b600360149054906101000a900460ff1681565b6040805190810160405280600981526020017f42657468657265756d000000000000000000000000000000000000000000000081525081565b6000600360159054906101000a900460ff1615151561071757600080fd5b6107218383610ec1565b905092915050565b60005481565b6000600360159054906101000a900460ff1615151561074d57600080fd5b610758848484610fb3565b90509392505050565b601281565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107c257600080fd5b600360159054906101000a900460ff1615156107dd57600080fd5b6000600360156101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561088457600080fd5b600360149054906101000a900460ff161515156108a057600080fd5b6108b58260005461129f90919063ffffffff16565b60008190555061090d82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129f90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600360159054906101000a900460ff1681565b6000600360159054906101000a900460ff16151515610a3f57600080fd5b610a4983836112bd565b905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610af857600080fd5b600360149054906101000a900460ff16151515610b1457600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bbe57600080fd5b600360159054906101000a900460ff16151515610bda57600080fd5b6001600360156101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600481526020017f425448520000000000000000000000000000000000000000000000000000000081525081565b6000600360159054906101000a900460ff16151515610ca057600080fd5b610caa838361154e565b905092915050565b6000600360159054906101000a900460ff16151515610cd057600080fd5b610cda8383611724565b905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dc557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610e0157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610ff257600080fd5b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506110c383600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192090919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061115883600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111ae838261192090919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b60008082840190508381101515156112b357fe5b8091505092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808311156113ce576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611462565b6113e1838261192090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561158b57600080fd5b6115dd82600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192090919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061167282600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129f90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60006117b582600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129f90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600082821115151561192e57fe5b8183039050929150505600a165627a7a723058208af7bdaaf12c8208a11eba3a889c5d90a85f4cec60b6141f364abd23e8f5a2cb0029a165627a7a723058209f7b0b550c57ca400e316a188428e863ac41ed025bbb4864665b7a8cdef3afb60029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000005b60f80000000000000000000000000010c27af37a38e0bca4a7fe8492c8ac46a5329c8f
-----Decoded View---------------
Arg [0] : _end (uint256): 1533081600
Arg [1] : _wallet (address): 0x10C27AF37a38e0BCA4A7FE8492c8aC46a5329C8f
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000005b60f800
Arg [1] : 00000000000000000000000010c27af37a38e0bca4a7fe8492c8ac46a5329c8f
Swarm Source
bzzr://8af7bdaaf12c8208a11eba3a889c5d90a85f4cec60b6141f364abd23e8f5a2cb
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 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.