Latest 25 transactions from a total of 3125 transactions

TxHash Age From To Value [TxFee]
0x481b5e414aa65e7ded5d08cc1ac1153c6d62f8ff5c73596f7ba5434433a575e0144 days 7 hrs ago0xa87e106e1c6a60895c0a542f1b46ee7630e9629d  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.000047826
0xaf9c960b33973c52b5694867b353fca05de532917035251aca1b677e07fcb399144 days 15 hrs ago0x43529914b19118f17c271c143309936322eb037e  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.00023913
0x467058b45c3961750056565b04496382a63c99e3b86326c0eb930e5f3f702986240 days 18 mins ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.000154392
0x6a9abfce8f1666a56e35f06d4e79a122c56050b83fc17d222b917d246835348f240 days 19 mins ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.000154392
0x1eec79c1b0118d5afc563a1f4878e7e672b96c63410173d4bf5b2b1cb89f40a0240 days 21 mins ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.000154392
0x21fde59fe2a75013380f503aa0c2d225d20c8de871866687c4d83721f69f0eb3240 days 3 hrs ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.001158829
0xc01d5546d19ea80aef17528f20dadbd338f3352b397616d60d8f23fb584a5af4240 days 8 hrs ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.011021516
0xc723a19d5f7d314d1b4aa9993c9921aadbb5081739f5dcd0c8016e741bc553b3240 days 8 hrs ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.040379581
0xd2bc58b87f9cc4391a4cc90be65247ae356e118ab1a6d05d5b23bfd8f8806394240 days 8 hrs ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.040369725
0x459fe892bcd5aea8c1b8b97f807802b2fad4d139aa9b74f77a6442b4fcb37dc3240 days 8 hrs ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.039554581
0xc1297fda81c77926ab28ee0268c7e0719b15d1d5c63ccfacf5d2270f8c81200f240 days 8 hrs ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.039885989
0xcff0825926756f39bcd4e4d3896864f86aba7275dd1c9fefa0cc5045d7b7f9dd240 days 8 hrs ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.040058029
0x64f7622e426365ca5082ac3977cd08a5f9e8419ded3a638686b6feba318f6621240 days 8 hrs ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.039890213
0x5334fc74faf0c5f10f30c4be69797daed78b9d5a3c0ca1e4963cf08e722b4539240 days 8 hrs ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.039883173
0x7ff998ad4abdac785054e8745db169ea2656b2ac14742839c6bc00c737b35b3d240 days 8 hrs ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.039725917
0x2089ca4509af7740edf9340b733e23e8fbed396332f55eedaf0014605dc66927240 days 8 hrs ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.040216693
0xb911cb786c6d29b596784221dd7089b931d10d838c80b0288e6ccac0ac35f425240 days 8 hrs ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.038898101
0xe165fb0b6362b81566f22ba1dac374d4bd4c94195e925a6ff4670fdab2599440243 days 12 hrs ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.000903683
0x9a5aa2648ce09eb31ad368df7e825984f1fba1554622432d68ebaa76614fc580243 days 12 hrs ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.00616352
0x4604d11bfa9838785a6c1ebbf68d4270791714744647c20e4735eb8ab2149fd5243 days 12 hrs ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.037920069
0x3c637d58f95d747d790d454000a4481a9268b8fd31b85bd05a4e871ddb28f97f244 days 13 hrs ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.00049973
0x44b6eec628591ffbb4b7941d2d67cd168aa4a9ba585873d4ea7cc967acefddb0245 days 7 hrs ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.001509492
0x08017de6be6cb575cd96f064121e19d98e91ac6a8a05506fda8558294972c590250 days 12 hrs ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.0291993
0x5ecf291f6d5aa6d2a8c3ef4c520d044e50726d518f20e9f69958c11efccb3641250 days 12 hrs ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.032875092
0x0408a7ed930557efff4c3b544b68d51279bed08c051ef4b2a226accc7449a47d250 days 12 hrs ago0xcb3d170a2efa568986d1928329c7e76aa8a31c3c  IN   0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0 Ether0.03125202
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here To View More View All
ParentTxHash Block Age From To Value
0xb348140f974c78969d4ea84dcdc298d9023148cccdf3085ba0ea991bef6d23675623428252 days 9 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f21.286 Ether
0xe3d16ce69ac89cf4be63c0304a8629e86651c5cbe419504e3235ad21606be8915623418252 days 10 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f20.5 Ether
0x6aea542fe1b8ec66b67a2ab3addf550710e2ca8a845112d989c6f025c644b6f85623376252 days 10 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f20.26 Ether
0x65434f95cee5d8891ab26ebe9350d7a757a90f9fe721d65e94254712e0a29d695623311252 days 10 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f20.2 Ether
0x7289f698bcebbf6d994151e5ad56b1be05426c17f7c0397e1d434e7602fea1aa5622973252 days 11 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f20.095 Ether
0xe1fc227e9f13c724e73068ff62614d39843f14db6632aec1dde3240c2028b8895622664252 days 13 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f20.12 Ether
0x1dc5f07310eda2336dda245f9d4b07d7552f769e6f08d1614860c1b91d2eaa4e5622634252 days 13 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f22 Ether
0x74b4b10ef3e68ab0a4446658158a07ffa1a03a33fd8d2017aaae0529cae4e0505622513252 days 13 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f20.35 Ether
0xc51c109e4b525f95de52a6dc0ea2f329c5f6ddb25a699d1babb7af66e58ffdd35622478252 days 13 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f21 Ether
0x3efcc71d788dedbd1cbddc80419350a2d4760fd4d30f4f61707658db9053e1e35622342252 days 14 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f20.14 Ether
0x54fc5c1cd1a7caedd473abc331a81ffed1755921c6c4c8448382687b4a6beb365622102252 days 15 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f20.428 Ether
0x66cd361c870817a94fbdf1e9c6a4ee68d60e571070b6bba68c55b1c3117f60085621891252 days 16 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f20.27 Ether
0x1cf155929fb8fdccaf3572c4b7ce4f6a625c96cbbb83fa1c60bc9e5e616cc8475621884252 days 16 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f20.2 Ether
0xcbb31a65b7686e3f8435d70f4e0690b97d8c3c280a4c8544553830ab022907245621453252 days 18 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f21 Ether
0xc07d4f508e4f90f729780e33f397c417411572e190ece8cac804ce1da4ff4fe45621321252 days 18 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f20.55 Ether
0x1eba090c9b026773cfb01a6232c11bec067d476b7aacd502164d5dd1599e9f855621301252 days 18 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f20.233198038 Ether
0x27d478a72cc224acd4c4c0d5d06bfd90380d9b07d981890dec6bdf57f6575d6f5620893252 days 20 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f20.18 Ether
0x08b41c1f2492436467788855078c4a33d1488d633dcc13a78fbf860d54f335925620778252 days 21 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f21 Ether
0x3f3c6b6e85e549eec72d6825299ce19797d1add9962f86ad4f99f76c6299b6d85620713252 days 21 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f20.26 Ether
0x244da2afa475921236e7916548ad0a2988b0c76b4a26c544eca918ce1f79ff3d5620567252 days 22 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f20.2 Ether
0x73e829bffe950d00340512154decc6075f925368fe06f0f7ba00bb8c7801d3c95620559252 days 22 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f20.3 Ether
0x67a3e3607babaceb232bdaac135a0ff23a2cdec597434bdc7f0ca874cbffd6875620361252 days 22 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f20.19 Ether
0xa4615ba9eb133a82f2713bf582fd7e69211fa8b216461f5f6cb4199d029921635619840253 days 59 mins ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f20.421 Ether
0xdffe299c7ad65daaf5e4c2255b12907a3c43a50713dd67aad7c322898a2e8d745619329253 days 3 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f20.1454068230959228 Ether
0xa02447d070dfa19696537b9c2ae258f67d812c2be31be0b53f8dcc9c95b42aa15619264253 days 3 hrs ago0x4799aeafc3e157f799f7c4c2e77d6d2af9ec0d7a0x2c2b3885bc8b82ad4d603d95ed8528ef112fe8f21.41 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: MinerOneCrowdsale
Compiler Text: v0.4.19+commit.c4cbbb05
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.19;


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

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  /**
  * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure 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() public {
    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) public onlyOwner {
    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 {
  function totalSupply() public view returns (uint256);
  function balanceOf(address who) public view 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 view 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;

  uint256 totalSupply_;

  /**
  * @dev total number of tokens in existence
  */
  function totalSupply() public view returns (uint256) {
    return totalSupply_;
  }

  /**
  * @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));
    require(_value <= balances[msg.sender]);

    // 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 view 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)) internal 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));
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);

    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = allowed[_from][msg.sender].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 view returns (uint256) {
    return allowed[_owner][_spender];
  }

  /**
   * @dev Increase the amount of tokens that an owner allowed to a 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
   * @param _spender The address which will spend the funds.
   * @param _addedValue The amount of tokens to increase the allowance by.
   */
  function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
    allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

  /**
   * @dev Decrease the amount of tokens that an owner allowed to a spender.
   *
   * approve should be called when allowed[_spender] == 0. To decrement
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _subtractedValue The amount of tokens to decrease the allowance by.
   */
  function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
    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 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;
  }
}

/**
 * @title RefundVault
 * @dev This contract is used for storing funds while a crowdsale
 * is in progress. Supports refunding the money if crowdsale fails,
 * and forwarding it if crowdsale is successful.
 */
contract RefundVault is Ownable {
  using SafeMath for uint256;

  enum State { Active, Refunding, Closed }

  mapping (address => uint256) public deposited;
  address public wallet;
  State public state;

  event Closed();
  event RefundsEnabled();
  event Refunded(address indexed beneficiary, uint256 weiAmount);

  function RefundVault(address _wallet) public {
    require(_wallet != address(0));
    wallet = _wallet;
    state = State.Active;
  }

  function deposit(address investor) onlyOwner public payable {
    require(state == State.Active);
    deposited[investor] = deposited[investor].add(msg.value);
  }

  function close() onlyOwner public {
    require(state == State.Active);
    state = State.Closed;
    Closed();
    wallet.transfer(this.balance);
  }

  function enableRefunds() onlyOwner public {
    require(state == State.Active);
    state = State.Refunding;
    RefundsEnabled();
  }

  function refund(address investor) public {
    require(state == State.Refunding);
    uint256 depositedValue = deposited[investor];
    deposited[investor] = 0;
    investor.transfer(depositedValue);
    Refunded(investor, depositedValue);
  }
}


contract MinerOneToken is MintableToken {
    using SafeMath for uint256;

    string public name = "MinerOne";
    string public symbol = "MIO";
    uint8 public decimals = 18;

    /**
     * This struct holds data about token holder dividends
     */
    struct Account {
        /**
         * Last amount of dividends seen at the token holder payout
         */
        uint256 lastDividends;
        /**
         * Amount of wei contract needs to pay to token holder
         */
        uint256 fixedBalance;
        /**
         * Unpayed wei amount due to rounding
         */
        uint256 remainder;
    }

    /**
     * Mapping which holds all token holders data
     */
    mapping(address => Account) internal accounts;

    /**
     * Running total of all dividends distributed
     */
    uint256 internal totalDividends;
    /**
     * Holds an amount of unpayed weis
     */
    uint256 internal reserved;

    /**
     * Raised when payment distribution occurs
     */
    event Distributed(uint256 amount);
    /**
     * Raised when shareholder withdraws his profit
     */
    event Paid(address indexed to, uint256 amount);
    /**
     * Raised when the contract receives Ether
     */
    event FundsReceived(address indexed from, uint256 amount);

    modifier fixBalance(address _owner) {
        Account storage account = accounts[_owner];
        uint256 diff = totalDividends.sub(account.lastDividends);
        if (diff > 0) {
            uint256 numerator = account.remainder.add(balances[_owner].mul(diff));

            account.fixedBalance = account.fixedBalance.add(numerator.div(totalSupply_));
            account.remainder = numerator % totalSupply_;
            account.lastDividends = totalDividends;
        }
        _;
    }

    modifier onlyWhenMintingFinished() {
        require(mintingFinished);
        _;
    }

    function () external payable {
        withdraw(msg.sender, msg.value);
    }

    function deposit() external payable {
        require(msg.value > 0);
        require(msg.value <= this.balance.sub(reserved));

        totalDividends = totalDividends.add(msg.value);
        reserved = reserved.add(msg.value);
        Distributed(msg.value);
    }

    /**
     * Returns unpayed wei for a given address
     */
    function getDividends(address _owner) public view returns (uint256) {
        Account storage account = accounts[_owner];
        uint256 diff = totalDividends.sub(account.lastDividends);
        if (diff > 0) {
            uint256 numerator = account.remainder.add(balances[_owner].mul(diff));
            return account.fixedBalance.add(numerator.div(totalSupply_));
        } else {
            return 0;
        }
    }

    function transfer(address _to, uint256 _value) public
        onlyWhenMintingFinished
        fixBalance(msg.sender)
        fixBalance(_to) returns (bool) {
        return super.transfer(_to, _value);
    }

    function transferFrom(address _from, address _to, uint256 _value) public
        onlyWhenMintingFinished
        fixBalance(_from)
        fixBalance(_to) returns (bool) {
        return super.transferFrom(_from, _to, _value);
    }

    function payoutToAddress(address[] _holders) external {
        require(_holders.length > 0);
        require(_holders.length <= 100);
        for (uint256 i = 0; i < _holders.length; i++) {
            withdraw(_holders[i], 0);
        }
    }

    /**
     * Token holder must call this to receive dividends
     */
    function withdraw(address _benefeciary, uint256 _toReturn) internal
        onlyWhenMintingFinished
        fixBalance(_benefeciary) returns (bool) {

        uint256 amount = accounts[_benefeciary].fixedBalance;
        reserved = reserved.sub(amount);
        accounts[_benefeciary].fixedBalance = 0;
        uint256 toTransfer = amount.add(_toReturn);
        if (toTransfer > 0) {
            _benefeciary.transfer(toTransfer);
        }
        if (amount > 0) {
            Paid(_benefeciary, amount);
        }
        return true;
    }
}


contract MinerOneCrowdsale is Ownable {
    using SafeMath for uint256;
    // Wallet where all ether will be
    address public constant WALLET = 0x2C2b3885BC8B82Ad4D603D95ED8528Ef112fE8F2;
    // Wallet for team tokens
    address public constant TEAM_WALLET = 0x997faEf570B534E5fADc8D2D373e2F11aF4e115a;
    // Wallet for research and development tokens
    address public constant RESEARCH_AND_DEVELOPMENT_WALLET = 0x770998331D6775c345B1807c40413861fc4D6421;
    // Wallet for bounty tokens
    address public constant BOUNTY_WALLET = 0xd481Aab166B104B1aB12e372Ef7af6F986f4CF19;

    uint256 public constant UINT256_MAX = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
    uint256 public constant ICO_TOKENS = 287000000e18;
    uint8 public constant ICO_TOKENS_PERCENT = 82;
    uint8 public constant TEAM_TOKENS_PERCENT = 10;
    uint8 public constant RESEARCH_AND_DEVELOPMENT_TOKENS_PERCENT = 6;
    uint8 public constant BOUNTY_TOKENS_PERCENT = 2;
    uint256 public constant SOFT_CAP = 3000000e18;
    uint256 public constant START_TIME = 1518692400; // 2018/02/15 11:00 UTC +0
    uint256 public constant RATE = 1000; // 1000 tokens costs 1 ether
    uint256 public constant LARGE_PURCHASE = 10000e18;
    uint256 public constant LARGE_PURCHASE_BONUS = 4;
    uint256 public constant TOKEN_DESK_BONUS = 3;
    uint256 public constant MIN_TOKEN_AMOUNT = 100e18;

    Phase[] internal phases;

    struct Phase {
        uint256 till;
        uint8 discount;
    }

    // The token being sold
    MinerOneToken public token;
    // amount of raised money in wei
    uint256 public weiRaised;
    // refund vault used to hold funds while crowdsale is running
    RefundVault public vault;
    uint256 public currentPhase = 0;
    bool public isFinalized = false;
    address private tokenMinter;
    address private tokenDeskProxy;
    uint256 public icoEndTime = 1526558400; // 2018/05/17 12:00 UTC +0

    /**
    * 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);

    event Finalized();
    /**
    * When there no tokens left to mint and token minter tries to manually mint tokens
    * this event is raised to signal how many tokens we have to charge back to purchaser
    */
    event ManualTokenMintRequiresRefund(address indexed purchaser, uint256 value);

    function MinerOneCrowdsale(address _token) public {
        phases.push(Phase({ till: 1519214400, discount: 35 })); // 2018/02/21 12:00 UTC +0
        phases.push(Phase({ till: 1519905600, discount: 30 })); // 2018/03/01 12:00 UTC +0
        phases.push(Phase({ till: 1521201600, discount: 25 })); // 2018/03/16 12:00 UTC +0
        phases.push(Phase({ till: 1522584000, discount: 20 })); // 2018/04/01 12:00 UTC +0
        phases.push(Phase({ till: 1524312000, discount: 15 })); // 2018/04/21 12:00 UTC +0
        phases.push(Phase({ till: 1525608000, discount: 10 })); // 2018/05/06 12:00 UTC +0
        phases.push(Phase({ till: 1526472000, discount: 5  })); // 2018/05/16 12:00 UTC +0
        phases.push(Phase({ till: UINT256_MAX, discount:0 }));  // unlimited

        token = MinerOneToken(_token);
        vault = new RefundVault(WALLET);
        tokenMinter = msg.sender;
    }

    modifier onlyTokenMinterOrOwner() {
        require(msg.sender == tokenMinter || msg.sender == owner);
        _;
    }

    // fallback function can be used to buy tokens or claim refund
    function () external payable {
        if (!isFinalized) {
            buyTokens(msg.sender, msg.sender);
        } else {
            claimRefund();
        }
    }

    function mintTokens(address[] _receivers, uint256[] _amounts) external onlyTokenMinterOrOwner {
        require(_receivers.length > 0 && _receivers.length <= 100);
        require(_receivers.length == _amounts.length);
        require(!isFinalized);
        for (uint256 i = 0; i < _receivers.length; i++) {
            address receiver = _receivers[i];
            uint256 amount = _amounts[i];

            require(receiver != address(0));
            require(amount > 0);

            uint256 excess = appendContribution(receiver, amount);

            if (excess > 0) {
                ManualTokenMintRequiresRefund(receiver, excess);
            }
        }
    }

    // low level token purchase function
    function buyTokens(address sender, address beneficiary) public payable {
        require(beneficiary != address(0));
        require(sender != address(0));
        require(validPurchase());

        uint256 weiReceived = msg.value;
        uint256 nowTime = getNow();
        // this loop moves phases and insures correct stage according to date
        while (currentPhase < phases.length && phases[currentPhase].till < nowTime) {
            currentPhase = currentPhase.add(1);
        }

        // calculate token amount to be created
        uint256 tokens = calculateTokens(weiReceived);

        if (tokens < MIN_TOKEN_AMOUNT) revert();

        uint256 excess = appendContribution(beneficiary, tokens);
        uint256 refund = (excess > 0 ? excess.mul(weiReceived).div(tokens) : 0);

        weiReceived = weiReceived.sub(refund);
        weiRaised = weiRaised.add(weiReceived);

        if (refund > 0) {
            sender.transfer(refund);
        }

        TokenPurchase(sender, beneficiary, weiReceived, tokens.sub(excess));

        if (goalReached()) {
            WALLET.transfer(weiReceived);
        } else {
            vault.deposit.value(weiReceived)(sender);
        }
    }

    // if crowdsale is unsuccessful, investors can claim refunds here
    function claimRefund() public {
        require(isFinalized);
        require(!goalReached());

        vault.refund(msg.sender);
    }

    /**
    * @dev Must be called after crowdsale ends, to do some extra finalization
    * work. Calls the contract's finalization function.
    */
    function finalize() public onlyOwner {
        require(!isFinalized);
        require(hasEnded());

        if (goalReached()) {
            vault.close();

            uint256 totalSupply = token.totalSupply();

            uint256 teamTokens = uint256(TEAM_TOKENS_PERCENT).mul(totalSupply).div(ICO_TOKENS_PERCENT);
            token.mint(TEAM_WALLET, teamTokens);
            uint256 rdTokens = uint256(RESEARCH_AND_DEVELOPMENT_TOKENS_PERCENT).mul(totalSupply).div(ICO_TOKENS_PERCENT);
            token.mint(RESEARCH_AND_DEVELOPMENT_WALLET, rdTokens);
            uint256 bountyTokens = uint256(BOUNTY_TOKENS_PERCENT).mul(totalSupply).div(ICO_TOKENS_PERCENT);
            token.mint(BOUNTY_WALLET, bountyTokens);

            token.finishMinting();
            token.transferOwnership(token);
        } else {
            vault.enableRefunds();
        }

        Finalized();

        isFinalized = true;
    }

    // @return true if crowdsale event has ended
    function hasEnded() public view returns (bool) {
        return getNow() > icoEndTime || token.totalSupply() == ICO_TOKENS;
    }

    function goalReached() public view returns (bool) {
        return token.totalSupply() >= SOFT_CAP;
    }

    function setTokenMinter(address _tokenMinter) public onlyOwner {
        require(_tokenMinter != address(0));
        tokenMinter = _tokenMinter;
    }

    function setTokenDeskProxy(address _tokekDeskProxy) public onlyOwner {
        require(_tokekDeskProxy != address(0));
        tokenDeskProxy = _tokekDeskProxy;
    }

    function setIcoEndTime(uint256 _endTime) public onlyOwner {
        require(_endTime > icoEndTime);
        icoEndTime = _endTime;
    }

    function getNow() internal view returns (uint256) {
        return now;
    }

    function calculateTokens(uint256 _weiAmount) internal view returns (uint256) {
        uint256 tokens = _weiAmount.mul(RATE).mul(100).div(uint256(100).sub(phases[currentPhase].discount));

        uint256 bonus = 0;
        if (currentPhase > 0) {
            bonus = bonus.add(tokens >= LARGE_PURCHASE ? LARGE_PURCHASE_BONUS : 0);
            bonus = bonus.add(msg.sender == tokenDeskProxy ? TOKEN_DESK_BONUS : 0);
        }
        return tokens.add(tokens.mul(bonus).div(100));
    }

    function appendContribution(address _beneficiary, uint256 _tokens) internal returns (uint256) {
        uint256 excess = 0;
        uint256 tokensToMint = 0;
        uint256 totalSupply = token.totalSupply();

        if (totalSupply.add(_tokens) < ICO_TOKENS) {
            tokensToMint = _tokens;
        } else {
            tokensToMint = ICO_TOKENS.sub(totalSupply);
            excess = _tokens.sub(tokensToMint);
        }
        if (tokensToMint > 0) {
            token.mint(_beneficiary, tokensToMint);
        }
        return excess;
    }

    // @return true if the transaction can buy tokens
    function validPurchase() internal view returns (bool) {
        bool withinPeriod = getNow() >= START_TIME && getNow() <= icoEndTime;
        bool nonZeroPurchase = msg.value != 0;
        bool canMint = token.totalSupply() < ICO_TOKENS;
        bool validPhase = (currentPhase < phases.length);
        return withinPeriod && nonZeroPurchase && canMint && validPhase;
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"currentPhase","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"sender","type":"address"},{"name":"beneficiary","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"TEAM_WALLET","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BOUNTY_TOKENS_PERCENT","outputs":[{"name":"","type":"uint8"}],"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":"RESEARCH_AND_DEVELOPMENT_WALLET","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokekDeskProxy","type":"address"}],"name":"setTokenDeskProxy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"LARGE_PURCHASE","outputs":[{"name":"","type":"uint256"}],"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":"WALLET","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenMinter","type":"address"}],"name":"setTokenMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"goalReached","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoEndTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"RESEARCH_AND_DEVELOPMENT_TOKENS_PERCENT","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isFinalized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ICO_TOKENS_PERCENT","outputs":[{"name":"","type":"uint8"}],"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":"LARGE_PURCHASE_BONUS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimRefund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ICO_TOKENS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SOFT_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_receivers","type":"address[]"},{"name":"_amounts","type":"uint256[]"}],"name":"mintTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"UINT256_MAX","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TEAM_TOKENS_PERCENT","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BOUNTY_WALLET","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"START_TIME","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_TOKEN_AMOUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hasEnded","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_DESK_BONUS","outputs":[{"name":"","type":"uint256"}],"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":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_endTime","type":"uint256"}],"name":"setIcoEndTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"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"},{"anonymous":false,"inputs":[],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"ManualTokenMintRequiresRefund","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060405260006005556000600660006101000a81548160ff021916908315150217905550635afd6ec060085534156200003857600080fd5b6040516020806200343583398101604052808051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018054806001018281620000ab919062000596565b916000526020600020906002020160006040805190810160405280635a8d5f408152602001602360ff1681525090919091506000820151816000015560208201518160010160006101000a81548160ff021916908360ff1602179055505050506001805480600101828162000121919062000596565b916000526020600020906002020160006040805190810160405280635a97eb408152602001601e60ff1681525090919091506000820151816000015560208201518160010160006101000a81548160ff021916908360ff1602179055505050506001805480600101828162000197919062000596565b916000526020600020906002020160006040805190810160405280635aabb1c08152602001601960ff1681525090919091506000820151816000015560208201518160010160006101000a81548160ff021916908360ff160217905550505050600180548060010182816200020d919062000596565b916000526020600020906002020160006040805190810160405280635ac0c9c08152602001601460ff1681525090919091506000820151816000015560208201518160010160006101000a81548160ff021916908360ff1602179055505050506001805480600101828162000283919062000596565b916000526020600020906002020160006040805190810160405280635adb27c08152602001600f60ff1681525090919091506000820151816000015560208201518160010160006101000a81548160ff021916908360ff16021790555050505060018054806001018281620002f9919062000596565b916000526020600020906002020160006040805190810160405280635aeeee408152602001600a60ff1681525090919091506000820151816000015560208201518160010160006101000a81548160ff021916908360ff160217905550505050600180548060010182816200036f919062000596565b916000526020600020906002020160006040805190810160405280635afc1d408152602001600560ff1681525090919091506000820151816000015560208201518160010160006101000a81548160ff021916908360ff16021790555050505060018054806001018281620003e5919062000596565b9160005260206000209060020201600060408051908101604052807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8152602001600060ff1681525090919091506000820151816000015560208201518160010160006101000a81548160ff021916908360ff16021790555050505080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732c2b3885bc8b82ad4d603d95ed8528ef112fe8f2620004c1620005cb565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f08015156200050e57600080fd5b600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200061a565b815481835581811511620005c657600202816002028360005260206000209182019101620005c59190620005dc565b5b505050565b604051610a7780620029be83390190565b6200061791905b8082111562000613576000808201600090556001820160006101000a81549060ff021916905550600201620005e3565b5090565b90565b612394806200062a6000396000f3006060604052600436106101ac576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063055ad42e146101dc57806321bc9a55146102055780632b905bf6146102525780632fdf795a146102a75780634042b66f146102d65780634bb278f3146102ff57806358dc2a8b14610314578063590daaec1461036957806361dbbc80146103a2578063664e9704146103cb5780636d9cdbc6146103f457806378533e90146104495780637d3d6522146104825780637e1055b6146104af5780638c33a5c4146104d85780638d4e4083146105075780638d60be98146105345780638da5cb5b146105635780638e885cbb146105b8578063b5545a3c146105e1578063b6062b5b146105f6578063b652dc2f1461061f578063c2acc5cf14610648578063d0949f991461068a578063d48e6a1b146106b3578063dc6055dd146106e2578063ddaa26ad14610737578063e3b45ab714610760578063ecb70fb714610789578063ee737c12146107b6578063f2fde38b146107df578063fbfa77cf14610818578063fc0c546a1461086d578063fe3c9b6b146108c2575b600660009054906101000a900460ff1615156101d1576101cc33336108e5565b6101da565b6101d9610c80565b5b005b34156101e757600080fd5b6101ef610d81565b6040518082815260200191505060405180910390f35b610250600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506108e5565b005b341561025d57600080fd5b610265610d87565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102b257600080fd5b6102ba610d9f565b604051808260ff1660ff16815260200191505060405180910390f35b34156102e157600080fd5b6102e9610da4565b6040518082815260200191505060405180910390f35b341561030a57600080fd5b610312610daa565b005b341561031f57600080fd5b610327611597565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561037457600080fd5b6103a0600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506115af565b005b34156103ad57600080fd5b6103b561168a565b6040518082815260200191505060405180910390f35b34156103d657600080fd5b6103de611698565b6040518082815260200191505060405180910390f35b34156103ff57600080fd5b61040761169e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561045457600080fd5b610480600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506116b6565b005b341561048d57600080fd5b610495611791565b604051808215151515815260200191505060405180910390f35b34156104ba57600080fd5b6104c261184f565b6040518082815260200191505060405180910390f35b34156104e357600080fd5b6104eb611855565b604051808260ff1660ff16815260200191505060405180910390f35b341561051257600080fd5b61051a61185a565b604051808215151515815260200191505060405180910390f35b341561053f57600080fd5b61054761186d565b604051808260ff1660ff16815260200191505060405180910390f35b341561056e57600080fd5b610576611872565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105c357600080fd5b6105cb611897565b6040518082815260200191505060405180910390f35b34156105ec57600080fd5b6105f4610c80565b005b341561060157600080fd5b61060961189c565b6040518082815260200191505060405180910390f35b341561062a57600080fd5b6106326118ab565b6040518082815260200191505060405180910390f35b341561065357600080fd5b6106886004808035906020019082018035906020019190919290803590602001908201803590602001919091929050506118ba565b005b341561069557600080fd5b61069d611adf565b6040518082815260200191505060405180910390f35b34156106be57600080fd5b6106c6611b03565b604051808260ff1660ff16815260200191505060405180910390f35b34156106ed57600080fd5b6106f5611b08565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561074257600080fd5b61074a611b20565b6040518082815260200191505060405180910390f35b341561076b57600080fd5b610773611b28565b6040518082815260200191505060405180910390f35b341561079457600080fd5b61079c611b35565b604051808215151515815260200191505060405180910390f35b34156107c157600080fd5b6107c9611c05565b6040518082815260200191505060405180910390f35b34156107ea57600080fd5b610816600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c0a565b005b341561082357600080fd5b61082b611d5f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561087857600080fd5b610880611d85565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156108cd57600080fd5b6108e36004808035906020019091905050611dab565b005b60008060008060008073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415151561092857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415151561096457600080fd5b61096c611e20565b151561097757600080fd5b349450610982611f3e565b93505b6001805490506005541080156109bc57508360016005548154811015156109a857fe5b906000526020600020906002020160000154105b156109e2576109d76001600554611f4690919063ffffffff16565b600581905550610985565b6109eb85611f64565b925068056bc75e2d63100000831015610a0357600080fd5b610a0d86846120de565b915060008211610a1e576000610a44565b610a4383610a3587856122f990919063ffffffff16565b61233490919063ffffffff16565b5b9050610a59818661234f90919063ffffffff16565b9450610a7085600354611f4690919063ffffffff16565b6003819055506000811115610ac0578673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610abf57600080fd5b5b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad1887610b23868861234f90919063ffffffff16565b604051808381526020018281526020019250505060405180910390a3610b47611791565b15610ba557732c2b3885bc8b82ad4d603d95ed8528ef112fe8f273ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f193505050501515610ba057600080fd5b610c77565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f340fa0186896040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506000604051808303818588803b1515610c6157600080fd5b6125ee5a03f11515610c7257600080fd5b505050505b50505050505050565b600660009054906101000a900460ff161515610c9b57600080fd5b610ca3611791565b151515610caf57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fa89401a336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1515610d6b57600080fd5b6102c65a03f11515610d7c57600080fd5b505050565b60055481565b73997faef570b534e5fadc8d2d373e2f11af4e115a81565b600281565b60035481565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e0b57600080fd5b600660009054906101000a900460ff16151515610e2757600080fd5b610e2f611b35565b1515610e3a57600080fd5b610e42611791565b156114b057600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166343d726d66040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515610ecc57600080fd5b6102c65a03f11515610edd57600080fd5b505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610f6e57600080fd5b6102c65a03f11515610f7f57600080fd5b505050604051805190509350610fb8605260ff16610faa86600a60ff166122f990919063ffffffff16565b61233490919063ffffffff16565b9250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1973997faef570b534e5fadc8d2d373e2f11af4e115a856000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561109b57600080fd5b6102c65a03f115156110ac57600080fd5b50505060405180519050506110e4605260ff166110d686600660ff166122f990919063ffffffff16565b61233490919063ffffffff16565b9150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1973770998331d6775c345b1807c40413861fc4d6421846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156111c757600080fd5b6102c65a03f115156111d857600080fd5b5050506040518051905050611210605260ff1661120286600260ff166122f990919063ffffffff16565b61233490919063ffffffff16565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1973d481aab166b104b1ab12e372ef7af6f986f4cf19836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156112f357600080fd5b6102c65a03f1151561130457600080fd5b5050506040518051905050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637d64bcb46000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561139d57600080fd5b6102c65a03f115156113ae57600080fd5b5050506040518051905050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2fde38b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b151561149757600080fd5b6102c65a03f115156114a857600080fd5b50505061154a565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638c52dc416040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b151561153557600080fd5b6102c65a03f1151561154657600080fd5b5050505b7f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a16001600660006101000a81548160ff02191690831515021790555050505050565b73770998331d6775c345b1807c40413861fc4d642181565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561160a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561164657600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b69021e19e0c9bab240000081565b6103e881565b732c2b3885bc8b82ad4d603d95ed8528ef112fe8f281565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561171157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561174d57600080fd5b80600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006a027b46536c66c8e3000000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561182d57600080fd5b6102c65a03f1151561183e57600080fd5b505050604051805190501015905090565b60085481565b600681565b600660009054906101000a900460ff1681565b605281565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600481565b6aed669d2cd7be677f00000081565b6a027b46536c66c8e300000081565b600080600080600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061196857506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561197357600080fd5b60008888905011801561198a575060648888905011155b151561199557600080fd5b85859050888890501415156119a957600080fd5b600660009054906101000a900460ff161515156119c557600080fd5b600093505b87879050841015611ad55787878581811015156119e357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1692508585858181101515611a1057fe5b905060200201359150600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611a5557600080fd5b600082111515611a6457600080fd5b611a6e83836120de565b90506000811115611ac8578273ffffffffffffffffffffffffffffffffffffffff167fc549e7a0e587e053b9e5a7eca60f3a352f16d8552eeafce4367dfceb59f27348826040518082815260200191505060405180910390a25b83806001019450506119ca565b5050505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b600a81565b73d481aab166b104b1ab12e372ef7af6f986f4cf1981565b635a85683081565b68056bc75e2d6310000081565b6000600854611b42611f3e565b1180611c0057506aed669d2cd7be677f000000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611be357600080fd5b6102c65a03f11515611bf457600080fd5b50505060405180519050145b905090565b600381565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c6557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611ca157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e0657600080fd5b60085481111515611e1657600080fd5b8060088190555050565b6000806000806000635a856830611e35611f3e565b10158015611e4c5750600854611e49611f3e565b11155b9350600034141592506aed669d2cd7be677f000000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611eef57600080fd5b6102c65a03f11515611f0057600080fd5b50505060405180519050109150600180549050600554109050838015611f235750825b8015611f2c5750815b8015611f355750805b94505050505090565b600042905090565b6000808284019050838110151515611f5a57fe5b8091505092915050565b6000806000611fe8611fb26001600554815481101515611f8057fe5b906000526020600020906002020160010160009054906101000a900460ff1660ff16606461234f90919063ffffffff16565b611fda6064611fcc6103e8896122f990919063ffffffff16565b6122f990919063ffffffff16565b61233490919063ffffffff16565b9150600090506000600554111561209d5761202769021e19e0c9bab2400000831015612015576000612018565b60045b82611f4690919063ffffffff16565b905061209a600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461208857600061208b565b60035b82611f4690919063ffffffff16565b90505b6120d56120c660646120b884866122f990919063ffffffff16565b61233490919063ffffffff16565b83611f4690919063ffffffff16565b92505050919050565b6000806000806000925060009150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561217a57600080fd5b6102c65a03f1151561218b57600080fd5b5050506040518051905090506aed669d2cd7be677f0000006121b68683611f4690919063ffffffff16565b10156121c4578491506121fa565b6121e2816aed669d2cd7be677f00000061234f90919063ffffffff16565b91506121f7828661234f90919063ffffffff16565b92505b60008211156122ed57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1987846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156122d057600080fd5b6102c65a03f115156122e157600080fd5b50505060405180519050505b82935050505092915050565b600080600084141561230e576000915061232d565b828402905082848281151561231f57fe5b0414151561232957fe5b8091505b5092915050565b600080828481151561234257fe5b0490508091505092915050565b600082821115151561235d57fe5b8183039050929150505600a165627a7a72305820a4a1c08856a6372bdc3f4ae42d9247f2099045a9935b1eb1877759b10c491d3b00296060604052341561000f57600080fd5b604051602080610a7783398101604052808051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156100a757600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260146101000a81548160ff0219169083600281111561010757fe5b02179055505061095b8061011c6000396000f300606060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806343d726d61461009e578063521eb273146100b35780638c52dc41146101085780638da5cb5b1461011d578063c19d93fb14610172578063cb13cddb146101a9578063f2fde38b146101f6578063f340fa011461022f578063fa89401a1461025d575b600080fd5b34156100a957600080fd5b6100b1610296565b005b34156100be57600080fd5b6100c66103ef565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561011357600080fd5b61011b610415565b005b341561012857600080fd5b6101306104f6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561017d57600080fd5b61018561051b565b6040518082600281111561019557fe5b60ff16815260200191505060405180910390f35b34156101b457600080fd5b6101e0600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061052e565b6040518082815260200191505060405180910390f35b341561020157600080fd5b61022d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610546565b005b61025b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061069b565b005b341561026857600080fd5b610294600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506107c2565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156102f157600080fd5b600060028111156102fe57fe5b600260149054906101000a900460ff16600281111561031957fe5b14151561032557600080fd5b60028060146101000a81548160ff0219169083600281111561034357fe5b02179055507f1cdde67b72a90f19919ac732a437ac2f7a10fc128d28c2a6e525d89ce5cd9d3a60405160405180910390a1600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015156103ed57600080fd5b565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561047057600080fd5b6000600281111561047d57fe5b600260149054906101000a900460ff16600281111561049857fe5b1415156104a457600080fd5b6001600260146101000a81548160ff021916908360028111156104c357fe5b02179055507f599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b8960405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260149054906101000a900460ff1681565b60016020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105a157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156105dd57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106f657600080fd5b6000600281111561070357fe5b600260149054906101000a900460ff16600281111561071e57fe5b14151561072a57600080fd5b61077c34600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461091190919063ffffffff16565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600160028111156107d157fe5b600260149054906101000a900460ff1660028111156107ec57fe5b1415156107f857600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156108bf57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff167fd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651826040518082815260200191505060405180910390a25050565b600080828401905083811015151561092557fe5b80915050929150505600a165627a7a72305820fde9420d3c9cdd70b537e3d8c513587c634fc8f1d18ccea6dcc3501ac5b9d3240029000000000000000000000000141044ccc363d6e8d92dd8983422775913e304ec

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000141044ccc363d6e8d92dd8983422775913e304ec


   Swarm Source:
bzzr://fde9420d3c9cdd70b537e3d8c513587c634fc8f1d18ccea6dcc3501ac5b9d324

 

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