ETH Price: $3,010.96 (+1.15%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Buy57176782018-06-02 4:36:462599 days ago1527914206IN
0xA4337c34...610B93D5B
0.6 ETH0.00011675.1
Buy57173782018-06-02 3:20:132599 days ago1527909613IN
0xA4337c34...610B93D5B
1.2 ETH0.000572125
Buy57173782018-06-02 3:20:132599 days ago1527909613IN
0xA4337c34...610B93D5B
0.2 ETH0.0003624615
Withdraw All57088752018-05-31 15:06:352601 days ago1527779195IN
0xA4337c34...610B93D5B
0 ETH0.0005990620
Buy57083952018-05-31 13:00:332601 days ago1527771633IN
0xA4337c34...610B93D5B
4.5 ETH0.0107646930
Buy57083912018-05-31 12:59:272601 days ago1527771567IN
0xA4337c34...610B93D5B
4.1 ETH0.0096214530
Buy57083892018-05-31 12:59:112601 days ago1527771551IN
0xA4337c34...610B93D5B
3.9 ETH0.0096242435.1
Buy57081542018-05-31 12:04:022601 days ago1527768242IN
0xA4337c34...610B93D5B
3.5 ETH0.0045185323
Buy57081422018-05-31 12:00:232601 days ago1527768023IN
0xA4337c34...610B93D5B
3.6 ETH0.0009176440.1
Buy57081392018-05-31 11:59:532601 days ago1527767993IN
0xA4337c34...610B93D5B
3.5 ETH0.0009425532.1
Buy57081372018-05-31 11:58:352601 days ago1527767915IN
0xA4337c34...610B93D5B
3.5 ETH0.005038530
Buy57080702018-05-31 11:43:412601 days ago1527767021IN
0xA4337c34...610B93D5B
3 ETH0.0056454525
Buy57079722018-05-31 11:19:562601 days ago1527765596IN
0xA4337c34...610B93D5B
2.4 ETH0.0043391221
Buy57079582018-05-31 11:16:002601 days ago1527765360IN
0xA4337c34...610B93D5B
1.6 ETH0.00499524
Buy57079562018-05-31 11:15:462601 days ago1527765346IN
0xA4337c34...610B93D5B
1.2 ETH0.0007047124
Buy57079352018-05-31 11:09:362601 days ago1527764976IN
0xA4337c34...610B93D5B
1.5 ETH0.0052045426.1
Buy57079032018-05-31 11:00:072601 days ago1527764407IN
0xA4337c34...610B93D5B
2.7 ETH0.004664220
Buy57078952018-05-31 10:57:252601 days ago1527764245IN
0xA4337c34...610B93D5B
1.6 ETH0.0037462518
Buy57078802018-05-31 10:53:512601 days ago1527764031IN
0xA4337c34...610B93D5B
3.1 ETH0.0004832820
Buy57078772018-05-31 10:52:432601 days ago1527763963IN
0xA4337c34...610B93D5B
3 ETH0.0080017334
Buy57078772018-05-31 10:52:432601 days ago1527763963IN
0xA4337c34...610B93D5B
2.7 ETH0.0152767463
Buy57078752018-05-31 10:51:392601 days ago1527763899IN
0xA4337c34...610B93D5B
2.6 ETH0.004592420
Buy57078692018-05-31 10:50:412601 days ago1527763841IN
0xA4337c34...610B93D5B
2.4 ETH0.0087545934
Buy57078652018-05-31 10:50:092601 days ago1527763809IN
0xA4337c34...610B93D5B
1.5 ETH0.0029792716.1
Buy57078502018-05-31 10:47:362601 days ago1527763656IN
0xA4337c34...610B93D5B
2.1 ETH0.00401820
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer57088752018-05-31 15:06:352601 days ago1527779195
0xA4337c34...610B93D5B
7.6 ETH
Transfer57083952018-05-31 13:00:332601 days ago1527771633
0xA4337c34...610B93D5B
3.9 ETH
Transfer57083892018-05-31 12:59:112601 days ago1527771551
0xA4337c34...610B93D5B
3.5 ETH
Transfer57081542018-05-31 12:04:022601 days ago1527768242
0xA4337c34...610B93D5B
2.4 ETH
Transfer57081372018-05-31 11:58:352601 days ago1527767915
0xA4337c34...610B93D5B
3 ETH
Transfer57080702018-05-31 11:43:412601 days ago1527767021
0xA4337c34...610B93D5B
2.7 ETH
Transfer57079722018-05-31 11:19:562601 days ago1527765596
0xA4337c34...610B93D5B
1.6 ETH
Transfer57079582018-05-31 11:16:002601 days ago1527765360
0xA4337c34...610B93D5B
1.5 ETH
Transfer57079352018-05-31 11:09:362601 days ago1527764976
0xA4337c34...610B93D5B
1.1 ETH
Transfer57079032018-05-31 11:00:072601 days ago1527764407
0xA4337c34...610B93D5B
1.6 ETH
Transfer57078952018-05-31 10:57:252601 days ago1527764245
0xA4337c34...610B93D5B
1.5 ETH
Transfer57078772018-05-31 10:52:432601 days ago1527763963
0xA4337c34...610B93D5B
2.7 ETH
Transfer57078772018-05-31 10:52:432601 days ago1527763963
0xA4337c34...610B93D5B
2.6 ETH
Transfer57078752018-05-31 10:51:392601 days ago1527763899
0xA4337c34...610B93D5B
2.4 ETH
Transfer57078692018-05-31 10:50:412601 days ago1527763841
0xA4337c34...610B93D5B
2.1 ETH
Transfer57078652018-05-31 10:50:092601 days ago1527763809
0xA4337c34...610B93D5B
1.2 ETH
Transfer57078502018-05-31 10:47:362601 days ago1527763656
0xA4337c34...610B93D5B
1.7 ETH
Transfer57078452018-05-31 10:46:172601 days ago1527763577
0xA4337c34...610B93D5B
1.5 ETH
Transfer57078142018-05-31 10:38:002601 days ago1527763080
0xA4337c34...610B93D5B
1.2 ETH
Transfer57077912018-05-31 10:33:192601 days ago1527762799
0xA4337c34...610B93D5B
1.1 ETH
Transfer57076912018-05-31 10:04:182601 days ago1527761058
0xA4337c34...610B93D5B
4.4 ETH
Transfer57050742018-05-30 22:55:402602 days ago1527720940
0xA4337c34...610B93D5B
1 ETH
Transfer57049862018-05-30 22:34:172602 days ago1527719657
0xA4337c34...610B93D5B
0.8 ETH
Transfer57033422018-05-30 15:43:142602 days ago1527694994
0xA4337c34...610B93D5B
0.9 ETH
Transfer57032122018-05-30 15:06:272602 days ago1527692787
0xA4337c34...610B93D5B
1 ETH
View All Internal Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CryptoAndDragonsAuction

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-05-24
*/

pragma solidity ^0.4.19;
contract AccessControl {
    address public owner;
    // address[] public moderators;
    uint16 public totalModerators = 0;
    mapping (address => bool) public moderators;
    bool public isMaintaining = false;

    function AccessControl() public {
        owner = msg.sender;
        moderators[msg.sender] = true;
    }

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

    modifier onlyModerators() {
        require(moderators[msg.sender] == true);
        _;
    }

    modifier isActive {
        require(!isMaintaining);
        _;
    }

    function ChangeOwner(address _newOwner) onlyOwner public {
        if (_newOwner != address(0)) {
            owner = _newOwner;
        }
    }

    function AddModerator(address _newModerator) onlyOwner public {
        if (moderators[_newModerator] == false) {
            moderators[_newModerator] = true;
            totalModerators += 1;
        }
    }

    function RemoveModerator(address _oldModerator) onlyOwner public {
        if (moderators[_oldModerator] == true) {
            moderators[_oldModerator] = false;
            totalModerators -= 1;
        }
    }

    function UpdateMaintaining(bool _isMaintaining) onlyOwner public {
        isMaintaining = _isMaintaining;
    }
}

contract DTT is AccessControl{
  function approve(address _spender, uint256 _value) public returns (bool success);
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
  function balanceOf(address _addr) public returns (uint);
  mapping (address => mapping (address => uint256)) public allowance;
}

contract DataBase is AccessControl{
  function addMonsterObj(uint64 _monsterId,uint256 _genes,uint32 _classId,address _master,string _name,string _skills) public;
  function getTotalMonster() constant public returns(uint64);
  function setMonsterGene(uint64 _monsterId,uint256 _genes) public;
}
contract NFTToken is AccessControl{
  function transferAuction(address _from, address _to, uint256 _value) external;
  function ownerOf(uint256 _tokenId) public constant returns (address owner);
}

contract CryptoAndDragonsAuction is AccessControl{
  event Bought (uint256 indexed _itemId, address indexed _owner, uint256 _price);
  event Sold (uint256 indexed _itemId, address indexed _owner, uint256 _price);
  event Transfer(address indexed _from, address indexed _to, uint256 _tokenId);
  event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId);
  event Hatch(address indexed _owner, uint16 _tableId);

  address public thisAddress;
  address public dragonTreasureToken;
  address public databaseContract;
  address public ERC721Contract;

  uint256 public totalAuction;
  uint256 private increaseRate = 0.1 ether;

  mapping (address => address) public masterToReferral;

  function setNewMonster(uint256 _genes,uint32 _classId,address _master,string _name,string _skills) onlyModerators public returns(uint64 _monsterId) {
    DataBase data = DataBase(databaseContract);
    uint64 monsterId = data.getTotalMonster() + 1;
    data.addMonsterObj(monsterId,_genes,_classId,_master,_name,_skills);
    return monsterId;
  }
  function setMasterToReferral(address _master, address _referral) onlyOwner public{
    masterToReferral[_master] = _referral;
  }

  function setAddresses(address _dragonTreasureToken,address _databaseContract,address _ERC721Contract) onlyOwner public{
    dragonTreasureToken = _dragonTreasureToken;
    databaseContract = _databaseContract;
    ERC721Contract = _ERC721Contract;
  }

  struct Auction {
    uint256 classId;
    uint256 monsterId;
    uint256 price;
    uint256 endTime;
    uint8 rarity;
    address bidder;
  }
  Auction[] public auctions;


  uint randNonce = 0;
  function randMod(uint _modulus) internal returns(uint) {
    randNonce++;
    return uint(keccak256(now, msg.sender, randNonce)) % _modulus;
  }


  function getSortedArray(uint[] storageInt) public pure returns(uint[]) {
      uint[] memory a = getCloneArray(storageInt);
      quicksort(a);
      return a;
  }
  function getCloneArray(uint[] a) private pure returns(uint[]) {
      return a;
  }
  function swap(uint[] a, uint l, uint r) private pure {
      uint t = a[l];
      a[l] = a[r];
      a[r] = t;
  }
  function getPivot(uint a, uint b, uint c) private pure returns(uint) {
      if(a > b){
          if(b > c){
              return b;
          }else{
              return a > c ? c : a ;
          }
      }else{
          if(a > c){
              return a;
          }else{
              return b > c ? c : b ;
          }
      }
  }
  function quicksort(uint[] a) private pure {
      uint left = 0;
      uint right = a.length - 1;
      quicksort_core(a, left, right);
  }
  function quicksort_core(uint[] a, uint left, uint right) private pure {
      if(right <= left){
          return;
      }
      uint l = left;
      uint r = right;
      uint p = getPivot(a[l], a[l+1], a[r]);
      while(true){
          while(a[l] < p){
              l++;
          }
          while(p < a[r]){
              r--;
          }
          if(r <= l){
              break;
          }
          swap(a, l, r);
          l++;
          r--;
      }
      quicksort_core(a, left, l-1);
      quicksort_core(a, r+1, right);
  }

  /* Withdraw */
  /*
    NOTICE: These functions withdraw the developer's cut which is left
    in the contract by `buy`. User funds are immediately sent to the old
    owner in `buy`, no user funds are left in the contract.
  */
  function withdrawAll () onlyOwner public {
    msg.sender.transfer(this.balance);
  }

  function withdrawAmount (uint256 _amount) onlyOwner public {
    msg.sender.transfer(_amount);
  }


  function addAuction(uint32 _classId, uint256 _monsterId, uint256 _price, uint8 _rarity, uint32 _endTime) onlyOwner public {
    Auction memory auction = Auction({
      classId: _classId,
      monsterId: _monsterId,
      price: _price,
      rarity: _rarity,
      endTime: _endTime + now,
      bidder: msg.sender
    });
    auctions.push(auction);
    totalAuction += 1;
  }

  function burnAuction() onlyOwner external {
    uint256 counter = 0;
    for (uint256 i = 0; i < totalAuction; i++) {
      if(auctions[i].endTime < now - 86400 * 3){
        delete auctions[i];
        counter++;
      }
    }
    totalAuction -= counter;
  }

  /* Buying */

  function ceil(uint a) public pure returns (uint ) {
    return uint(int(a * 100) / 100);
  }
  /*
     Buy a country directly from the contract for the calculated price
     which ensures that the owner gets a profit.  All countries that
     have been listed can be bought by this method. User funds are sent
     directly to the previous owner and are never stored in the contract.
  */
  function setGenes(uint256 _price, uint256 _monsterId) internal{
    DataBase data = DataBase(databaseContract);
    uint256 gene = _price / 100000000000000000;
    if(gene > 255)
      gene = 255;
    uint256 genes = 0;
    genes += gene * 1000000000000000;
    genes += gene * 1000000000000;
    genes += gene * 1000000000;
    genes += gene * 1000000;
    genes += gene * 1000;
    genes += gene;
    if(genes > 255255255255255255)
      genes = 255255255255255255;
    data.setMonsterGene(uint64(_monsterId),genes);
  }

  function buy (uint256 _auctionId, address _referral) payable public {
    NFTToken CNDERC721 = NFTToken(ERC721Contract);
    require(auctions[_auctionId].endTime > now);
    require(CNDERC721.ownerOf(auctions[_auctionId].monsterId) != address(0));
    require(ceil(msg.value) >= ceil(auctions[_auctionId].price + increaseRate));
    require(CNDERC721.ownerOf(auctions[_auctionId].monsterId) != msg.sender);
    require(!isContract(msg.sender));
    require(msg.sender != address(0));
    address oldOwner = CNDERC721.ownerOf(auctions[_auctionId].monsterId);
    address newOwner = msg.sender;
    uint256 oldPrice = auctions[_auctionId].price;
    uint256 price = ceil(msg.value);
    setGenes(price,auctions[_auctionId].monsterId);
    CNDERC721.transferAuction(oldOwner, newOwner, auctions[_auctionId].monsterId);
    auctions[_auctionId].price = ceil(price);
    auctions[_auctionId].bidder = msg.sender;
    DTT DTTtoken = DTT(dragonTreasureToken);
    if(masterToReferral[msg.sender] != address(0) && masterToReferral[msg.sender] != msg.sender){
      DTTtoken.approve(masterToReferral[msg.sender], DTTtoken.allowance(this,masterToReferral[msg.sender]) + (price - oldPrice) / 1000000000 * 5);
    }else if(_referral != address(0) && _referral != msg.sender){
      masterToReferral[msg.sender] = _referral;
      DTTtoken.approve(_referral, DTTtoken.allowance(this,_referral) + (price - oldPrice) / 1000000000 * 5);
    }

    DTTtoken.approve(msg.sender, DTTtoken.allowance(this,msg.sender) + (price - oldPrice) / 1000000000 * 5);
    if(oldPrice > 0)
      oldOwner.transfer(oldPrice);
    Bought(auctions[_auctionId].monsterId, newOwner, price);
    Sold(auctions[_auctionId].monsterId, oldOwner, price);
  }

  function monstersForSale (uint8 optSort) external view returns (uint256[] _monsters){
    uint256[] memory mcount = new uint256[](totalAuction);
    uint256 counter = 0;
    for (uint256 i = 0; i < totalAuction; i++) {
        mcount[counter] = i;
        counter++;
    }
    if(optSort != 0){
      sortAuction(mcount);
    }
    return mcount;
  }
  function sortAuction (uint256[] _mcount) public view returns (uint256[] _monsters){
    uint256[] memory mcount = new uint256[](_mcount.length);
    for(uint256 i = 0; i < _mcount.length; i++){
      mcount[i] = auctions[i].price * 10000000000 + i;
    }
    uint256[] memory tmps = getSortedArray(_mcount);
    uint256[] memory result = new uint256[](tmps.length);
    for(uint256 i2 = 0; i2 < tmps.length; i2++){
      result[i2] = tmps[i2] % 10000000000;
    }
    return result;
  }

  /* Util */
  function isContract(address addr) internal view returns (bool) {
    uint size;
    assembly { size := extcodesize(addr) } // solium-disable-line
    return size > 0;
  }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"withdrawAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"moderators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"storageInt","type":"uint256[]"}],"name":"getSortedArray","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_master","type":"address"},{"name":"_referral","type":"address"}],"name":"setMasterToReferral","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dragonTreasureToken","type":"address"},{"name":"_databaseContract","type":"address"},{"name":"_ERC721Contract","type":"address"}],"name":"setAddresses","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ERC721Contract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"uint256"}],"name":"ceil","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_isMaintaining","type":"bool"}],"name":"UpdateMaintaining","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalModerators","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"auctions","outputs":[{"name":"classId","type":"uint256"},{"name":"monsterId","type":"uint256"},{"name":"price","type":"uint256"},{"name":"endTime","type":"uint256"},{"name":"rarity","type":"uint8"},{"name":"bidder","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_genes","type":"uint256"},{"name":"_classId","type":"uint32"},{"name":"_master","type":"address"},{"name":"_name","type":"string"},{"name":"_skills","type":"string"}],"name":"setNewMonster","outputs":[{"name":"_monsterId","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"databaseContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newModerator","type":"address"}],"name":"AddModerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"masterToReferral","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_classId","type":"uint32"},{"name":"_monsterId","type":"uint256"},{"name":"_price","type":"uint256"},{"name":"_rarity","type":"uint8"},{"name":"_endTime","type":"uint32"}],"name":"addAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_auctionId","type":"uint256"},{"name":"_referral","type":"address"}],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"totalAuction","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"optSort","type":"uint8"}],"name":"monstersForSale","outputs":[{"name":"_monsters","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_mcount","type":"uint256[]"}],"name":"sortAuction","outputs":[{"name":"_monsters","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_oldModerator","type":"address"}],"name":"RemoveModerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"dragonTreasureToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"burnAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"thisAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isMaintaining","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"ChangeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_itemId","type":"uint256"},{"indexed":true,"name":"_owner","type":"address"},{"indexed":false,"name":"_price","type":"uint256"}],"name":"Bought","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_itemId","type":"uint256"},{"indexed":true,"name":"_owner","type":"address"},{"indexed":false,"name":"_price","type":"uint256"}],"name":"Sold","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_approved","type":"address"},{"indexed":false,"name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":false,"name":"_tableId","type":"uint16"}],"name":"Hatch","type":"event"}]

606060405260008060146101000a81548161ffff021916908361ffff1602179055506000600260006101000a81548160ff02191690831515021790555067016345785d8a00006007556000600a55336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612eea806100f36000396000f30060606040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630562b9f71461016457806314d0f1ba146101875780631e1d237e146101d8578063278a4c4f14610287578063363bf964146102df578063397e953f1461035657806340f0a21f146103ab57806348ef5aa8146103e25780634efb023e14610407578063571a26a0146104385780635b6a42b8146104c45780636c1247e5146105c35780636c81fd6d146106185780636df238c31461065157806376a310a5146106ca5780637deb6025146107205780638252ad9c14610757578063853828b6146107805780638da5cb5b146107955780639e1e1ca9146107ea578063a703078c14610865578063b85d627514610914578063c880fab11461094d578063c9f0a02d146109a2578063d4dca69b146109b7578063ee4e441614610a0c578063f285329214610a39575b600080fd5b341561016f57600080fd5b6101856004808035906020019091905050610a72565b005b341561019257600080fd5b6101be600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b10565b604051808215151515815260200191505060405180910390f35b34156101e357600080fd5b610230600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050610b30565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610273578082015181840152602081019050610258565b505050509050019250505060405180910390f35b341561029257600080fd5b6102dd600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b5d565b005b34156102ea57600080fd5b610354600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c3a565b005b341561036157600080fd5b610369610d5d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103b657600080fd5b6103cc6004808035906020019091905050610d83565b6040518082815260200191505060405180910390f35b34156103ed57600080fd5b61040560048080351515906020019091905050610d9b565b005b341561041257600080fd5b61041a610e13565b604051808261ffff1661ffff16815260200191505060405180910390f35b341561044357600080fd5b6104596004808035906020019091905050610e27565b604051808781526020018681526020018581526020018481526020018360ff1660ff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001965050505050505060405180910390f35b34156104cf57600080fd5b610599600480803590602001909190803563ffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610e9f565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b34156105ce57600080fd5b6105d6611182565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561062357600080fd5b61064f600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111a8565b005b341561065c57600080fd5b610688600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112e8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106d557600080fd5b61071e600480803563ffffffff1690602001909190803590602001909190803590602001909190803560ff1690602001909190803563ffffffff1690602001909190505061131b565b005b610755600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506114ab565b005b341561076257600080fd5b61076a6123b7565b6040518082815260200191505060405180910390f35b341561078b57600080fd5b6107936123bd565b005b34156107a057600080fd5b6107a8612471565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107f557600080fd5b61080e600480803560ff16906020019091905050612496565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610851578082015181840152602081019050610836565b505050509050019250505060405180910390f35b341561087057600080fd5b6108bd600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050612534565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156109005780820151818401526020810190506108e5565b505050509050019250505060405180910390f35b341561091f57600080fd5b61094b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612674565b005b341561095857600080fd5b6109606127b5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109ad57600080fd5b6109b56127db565b005b34156109c257600080fd5b6109ca61291e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a1757600080fd5b610a1f612944565b604051808215151515815260200191505060405180910390f35b3415610a4457600080fd5b610a70600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612957565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610acd57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610b0d57600080fd5b50565b60016020528060005260406000206000915054906101000a900460ff1681565b610b38612dae565b610b40612dae565b610b4983612a2c565b9050610b5481612a3c565b80915050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bb857600080fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c9557600080fd5b82600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006064808302811515610d9357fe5b059050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610df657600080fd5b80600260006101000a81548160ff02191690831515021790555050565b600060149054906101000a900461ffff1681565b600981815481101515610e3657fe5b90600052602060002090600502016000915090508060000154908060010154908060020154908060030154908060040160009054906101000a900460ff16908060040160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905086565b600080600060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515610f0357600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915060018273ffffffffffffffffffffffffffffffffffffffff166382ef351a6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610f9657600080fd5b6102c65a03f11515610fa757600080fd5b505050604051805190500190508173ffffffffffffffffffffffffffffffffffffffff16634654b6e2828a8a8a8a8a6040518763ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808767ffffffffffffffff1667ffffffffffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156110a957808201518184015260208101905061108e565b50505050905090810190601f1680156110d65780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561110f5780820151818401526020810190506110f4565b50505050905090810190601f16801561113c5780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b151561116057600080fd5b6102c65a03f1151561117157600080fd5b505050809250505095945050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561120357600080fd5b60001515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156112e55760018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600060148282829054906101000a900461ffff160192506101000a81548161ffff021916908361ffff1602179055505b50565b60086020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611323612dc2565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561137e57600080fd5b60c0604051908101604052808763ffffffff168152602001868152602001858152602001428463ffffffff160181526020018460ff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152509050600980548060010182816113e99190612e12565b916000526020600020906005020160008390919091506000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a81548160ff021916908360ff16021790555060a08201518160040160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506001600660008282540192505081905550505050505050565b600080600080600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169550426009898154811015156114e957fe5b90600052602060002090600502016003015411151561150757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16636352211e60098b81548110151561154a57fe5b9060005260206000209060050201600101546000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156115b657600080fd5b6102c65a03f115156115c757600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16141515156115f457600080fd5b61162160075460098a81548110151561160957fe5b90600052602060002090600502016002015401610d83565b61162a34610d83565b1015151561163757600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16636352211e60098b81548110151561167957fe5b9060005260206000209060050201600101546000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156116e557600080fd5b6102c65a03f115156116f657600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff161415151561172357600080fd5b61172c33612a5a565b15151561173857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561177457600080fd5b8573ffffffffffffffffffffffffffffffffffffffff16636352211e60098a81548110151561179f57fe5b9060005260206000209060050201600101546000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561180b57600080fd5b6102c65a03f1151561181c57600080fd5b50505060405180519050945033935060098881548110151561183a57fe5b906000526020600020906005020160020154925061185734610d83565b91506118838260098a81548110151561186c57fe5b906000526020600020906005020160010154612a6d565b8573ffffffffffffffffffffffffffffffffffffffff1663d3fd9eba868660098c8154811015156118b057fe5b9060005260206000209060050201600101546040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b151561197957600080fd5b6102c65a03f1151561198a57600080fd5b50505061199682610d83565b6009898154811015156119a557fe5b906000526020600020906005020160020181905550336009898154811015156119ca57fe5b906000526020600020906005020160040160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff16600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611b6557503373ffffffffffffffffffffffffffffffffffffffff16600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15611dfb578073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166005633b9aca00878703811515611bf957fe5b04028473ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1515611d3157600080fd5b6102c65a03f11515611d4257600080fd5b50505060405180519050016000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611dda57600080fd5b6102c65a03f11515611deb57600080fd5b50505060405180519050506120b7565b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614158015611e6457503373ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156120b65786600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3886005633b9aca00878703811515611f1757fe5b04028473ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e308d6000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1515611ff057600080fd5b6102c65a03f1151561200157600080fd5b50505060405180519050016000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561209957600080fd5b6102c65a03f115156120aa57600080fd5b50505060405180519050505b5b8073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3336005633b9aca008787038115156120e757fe5b04028473ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30336000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15156121c057600080fd5b6102c65a03f115156121d157600080fd5b50505060405180519050016000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561226957600080fd5b6102c65a03f1151561227a57600080fd5b505050604051805190505060008311156122cf578473ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015156122ce57600080fd5b5b8373ffffffffffffffffffffffffffffffffffffffff166009898154811015156122f557fe5b9060005260206000209060050201600101547fd2728f908c7e0feb83c6278798370fcb86b62f236c9dbf1a3f541096c2159040846040518082815260200191505060405180910390a38473ffffffffffffffffffffffffffffffffffffffff1660098981548110151561236457fe5b9060005260206000209060050201600101547f66f5cd880edf48cdde6c966e5da0784fcc4c5e85572b8b3b62c4357798d447d7846040518082815260200191505060405180910390a35050505050505050565b60065481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561241857600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050151561246f57600080fd5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61249e612dae565b6124a6612dae565b6000806006546040518059106124b95750595b9080825280602002602001820160405250925060009150600090505b600654811015612511578083838151811015156124ee57fe5b9060200190602002018181525050818060010192505080806001019150506124d5565b60008560ff161415156125295761252783612534565b505b829350505050919050565b61253c612dae565b612544612dae565b600061254e612dae565b612556612dae565b600086516040518059106125675750595b90808252806020026020018201604052509450600093505b86518410156125db57836402540be40060098681548110151561259e57fe5b906000526020600020906005020160020154020185858151811015156125c057fe5b9060200190602002018181525050838060010194505061257f565b6125e487610b30565b925082516040518059106125f55750595b90808252806020026020018201604052509150600090505b8251811015612667576402540be400838281518110151561262a57fe5b9060200190602002015181151561263d57fe5b06828281518110151561264c57fe5b9060200190602002018181525050808060010191505061260d565b8195505050505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156126cf57600080fd5b60011515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156127b2576000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600060148282829054906101000a900461ffff160392506101000a81548161ffff021916908361ffff1602179055505b50565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561283957600080fd5b60009150600090505b60065481101561290a576203f480420360098281548110151561286157fe5b90600052602060002090600502016003015410156128fd5760098181548110151561288857fe5b90600052602060002090600502016000808201600090556001820160009055600282016000905560038201600090556004820160006101000a81549060ff02191690556004820160016101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055505081806001019250505b8080600101915050612842565b816006600082825403925050819055505050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129b257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515612a2957806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b612a34612dae565b819050919050565b6000806000915060018351039050612a55838383612bbd565b505050565b600080823b905060008111915050919050565b6000806000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925067016345785d8a000085811515612aaa57fe5b04915060ff821115612abb5760ff91505b6000905066038d7ea4c6800082028101905064e8d4a51000820281019050633b9aca00820281019050620f42408202810190506103e8820281019050818101905067038ad94d608a88d7811115612b185767038ad94d608a88d790505b8273ffffffffffffffffffffffffffffffffffffffff1663e931fa0c85836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808367ffffffffffffffff1667ffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515612ba257600080fd5b6102c65a03f11515612bb357600080fd5b5050505050505050565b60008060008484111515612bd057612cda565b849250839150612c298684815181101515612be757fe5b906020019060200201518760018601815181101515612c0257fe5b906020019060200201518885815181101515612c1a57fe5b90602001906020020151612ce2565b90505b600115612cbd575b808684815181101515612c4357fe5b906020019060200201511015612c60578280600101935050612c34565b5b8582815181101515612c6f57fe5b90602001906020020151811015612c8e57818060019003925050612c61565b8282111515612c9c57612cbd565b612ca7868484612d3b565b8280600101935050818060019003925050612c2c565b612ccb868660018603612bbd565b612cd9866001840186612bbd565b5b505050505050565b600082841115612d125781831115612cfc57829050612d34565b818411612d095783612d0b565b815b9050612d34565b81841115612d2257839050612d34565b818311612d2f5782612d31565b815b90505b9392505050565b60008383815181101515612d4b57fe5b9060200190602002015190508382815181101515612d6557fe5b906020019060200201518484815181101515612d7d57fe5b9060200190602002018181525050808483815181101515612d9a57fe5b906020019060200201818152505050505050565b602060405190810160405280600081525090565b60c06040519081016040528060008152602001600081526020016000815260200160008152602001600060ff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b815481835581811511612e3f57600502816005028360005260206000209182019101612e3e9190612e44565b5b505050565b612ebb91905b80821115612eb7576000808201600090556001820160009055600282016000905560038201600090556004820160006101000a81549060ff02191690556004820160016101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600501612e4a565b5090565b905600a165627a7a7230582099746fc5cf64873286c50df11c7f965667e8632f3d0196bd9442b8035628d2ba0029

Deployed Bytecode

0x60606040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630562b9f71461016457806314d0f1ba146101875780631e1d237e146101d8578063278a4c4f14610287578063363bf964146102df578063397e953f1461035657806340f0a21f146103ab57806348ef5aa8146103e25780634efb023e14610407578063571a26a0146104385780635b6a42b8146104c45780636c1247e5146105c35780636c81fd6d146106185780636df238c31461065157806376a310a5146106ca5780637deb6025146107205780638252ad9c14610757578063853828b6146107805780638da5cb5b146107955780639e1e1ca9146107ea578063a703078c14610865578063b85d627514610914578063c880fab11461094d578063c9f0a02d146109a2578063d4dca69b146109b7578063ee4e441614610a0c578063f285329214610a39575b600080fd5b341561016f57600080fd5b6101856004808035906020019091905050610a72565b005b341561019257600080fd5b6101be600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b10565b604051808215151515815260200191505060405180910390f35b34156101e357600080fd5b610230600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050610b30565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610273578082015181840152602081019050610258565b505050509050019250505060405180910390f35b341561029257600080fd5b6102dd600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b5d565b005b34156102ea57600080fd5b610354600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c3a565b005b341561036157600080fd5b610369610d5d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103b657600080fd5b6103cc6004808035906020019091905050610d83565b6040518082815260200191505060405180910390f35b34156103ed57600080fd5b61040560048080351515906020019091905050610d9b565b005b341561041257600080fd5b61041a610e13565b604051808261ffff1661ffff16815260200191505060405180910390f35b341561044357600080fd5b6104596004808035906020019091905050610e27565b604051808781526020018681526020018581526020018481526020018360ff1660ff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001965050505050505060405180910390f35b34156104cf57600080fd5b610599600480803590602001909190803563ffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610e9f565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b34156105ce57600080fd5b6105d6611182565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561062357600080fd5b61064f600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111a8565b005b341561065c57600080fd5b610688600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112e8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106d557600080fd5b61071e600480803563ffffffff1690602001909190803590602001909190803590602001909190803560ff1690602001909190803563ffffffff1690602001909190505061131b565b005b610755600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506114ab565b005b341561076257600080fd5b61076a6123b7565b6040518082815260200191505060405180910390f35b341561078b57600080fd5b6107936123bd565b005b34156107a057600080fd5b6107a8612471565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107f557600080fd5b61080e600480803560ff16906020019091905050612496565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610851578082015181840152602081019050610836565b505050509050019250505060405180910390f35b341561087057600080fd5b6108bd600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050612534565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156109005780820151818401526020810190506108e5565b505050509050019250505060405180910390f35b341561091f57600080fd5b61094b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612674565b005b341561095857600080fd5b6109606127b5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109ad57600080fd5b6109b56127db565b005b34156109c257600080fd5b6109ca61291e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a1757600080fd5b610a1f612944565b604051808215151515815260200191505060405180910390f35b3415610a4457600080fd5b610a70600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612957565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610acd57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610b0d57600080fd5b50565b60016020528060005260406000206000915054906101000a900460ff1681565b610b38612dae565b610b40612dae565b610b4983612a2c565b9050610b5481612a3c565b80915050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bb857600080fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c9557600080fd5b82600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006064808302811515610d9357fe5b059050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610df657600080fd5b80600260006101000a81548160ff02191690831515021790555050565b600060149054906101000a900461ffff1681565b600981815481101515610e3657fe5b90600052602060002090600502016000915090508060000154908060010154908060020154908060030154908060040160009054906101000a900460ff16908060040160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905086565b600080600060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515610f0357600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915060018273ffffffffffffffffffffffffffffffffffffffff166382ef351a6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610f9657600080fd5b6102c65a03f11515610fa757600080fd5b505050604051805190500190508173ffffffffffffffffffffffffffffffffffffffff16634654b6e2828a8a8a8a8a6040518763ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808767ffffffffffffffff1667ffffffffffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156110a957808201518184015260208101905061108e565b50505050905090810190601f1680156110d65780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561110f5780820151818401526020810190506110f4565b50505050905090810190601f16801561113c5780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b151561116057600080fd5b6102c65a03f1151561117157600080fd5b505050809250505095945050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561120357600080fd5b60001515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156112e55760018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600060148282829054906101000a900461ffff160192506101000a81548161ffff021916908361ffff1602179055505b50565b60086020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611323612dc2565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561137e57600080fd5b60c0604051908101604052808763ffffffff168152602001868152602001858152602001428463ffffffff160181526020018460ff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152509050600980548060010182816113e99190612e12565b916000526020600020906005020160008390919091506000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a81548160ff021916908360ff16021790555060a08201518160040160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506001600660008282540192505081905550505050505050565b600080600080600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169550426009898154811015156114e957fe5b90600052602060002090600502016003015411151561150757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16636352211e60098b81548110151561154a57fe5b9060005260206000209060050201600101546000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156115b657600080fd5b6102c65a03f115156115c757600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16141515156115f457600080fd5b61162160075460098a81548110151561160957fe5b90600052602060002090600502016002015401610d83565b61162a34610d83565b1015151561163757600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16636352211e60098b81548110151561167957fe5b9060005260206000209060050201600101546000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156116e557600080fd5b6102c65a03f115156116f657600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff161415151561172357600080fd5b61172c33612a5a565b15151561173857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561177457600080fd5b8573ffffffffffffffffffffffffffffffffffffffff16636352211e60098a81548110151561179f57fe5b9060005260206000209060050201600101546000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561180b57600080fd5b6102c65a03f1151561181c57600080fd5b50505060405180519050945033935060098881548110151561183a57fe5b906000526020600020906005020160020154925061185734610d83565b91506118838260098a81548110151561186c57fe5b906000526020600020906005020160010154612a6d565b8573ffffffffffffffffffffffffffffffffffffffff1663d3fd9eba868660098c8154811015156118b057fe5b9060005260206000209060050201600101546040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b151561197957600080fd5b6102c65a03f1151561198a57600080fd5b50505061199682610d83565b6009898154811015156119a557fe5b906000526020600020906005020160020181905550336009898154811015156119ca57fe5b906000526020600020906005020160040160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff16600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611b6557503373ffffffffffffffffffffffffffffffffffffffff16600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15611dfb578073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166005633b9aca00878703811515611bf957fe5b04028473ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1515611d3157600080fd5b6102c65a03f11515611d4257600080fd5b50505060405180519050016000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611dda57600080fd5b6102c65a03f11515611deb57600080fd5b50505060405180519050506120b7565b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614158015611e6457503373ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156120b65786600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3886005633b9aca00878703811515611f1757fe5b04028473ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e308d6000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1515611ff057600080fd5b6102c65a03f1151561200157600080fd5b50505060405180519050016000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561209957600080fd5b6102c65a03f115156120aa57600080fd5b50505060405180519050505b5b8073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3336005633b9aca008787038115156120e757fe5b04028473ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30336000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15156121c057600080fd5b6102c65a03f115156121d157600080fd5b50505060405180519050016000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561226957600080fd5b6102c65a03f1151561227a57600080fd5b505050604051805190505060008311156122cf578473ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015156122ce57600080fd5b5b8373ffffffffffffffffffffffffffffffffffffffff166009898154811015156122f557fe5b9060005260206000209060050201600101547fd2728f908c7e0feb83c6278798370fcb86b62f236c9dbf1a3f541096c2159040846040518082815260200191505060405180910390a38473ffffffffffffffffffffffffffffffffffffffff1660098981548110151561236457fe5b9060005260206000209060050201600101547f66f5cd880edf48cdde6c966e5da0784fcc4c5e85572b8b3b62c4357798d447d7846040518082815260200191505060405180910390a35050505050505050565b60065481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561241857600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050151561246f57600080fd5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61249e612dae565b6124a6612dae565b6000806006546040518059106124b95750595b9080825280602002602001820160405250925060009150600090505b600654811015612511578083838151811015156124ee57fe5b9060200190602002018181525050818060010192505080806001019150506124d5565b60008560ff161415156125295761252783612534565b505b829350505050919050565b61253c612dae565b612544612dae565b600061254e612dae565b612556612dae565b600086516040518059106125675750595b90808252806020026020018201604052509450600093505b86518410156125db57836402540be40060098681548110151561259e57fe5b906000526020600020906005020160020154020185858151811015156125c057fe5b9060200190602002018181525050838060010194505061257f565b6125e487610b30565b925082516040518059106125f55750595b90808252806020026020018201604052509150600090505b8251811015612667576402540be400838281518110151561262a57fe5b9060200190602002015181151561263d57fe5b06828281518110151561264c57fe5b9060200190602002018181525050808060010191505061260d565b8195505050505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156126cf57600080fd5b60011515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156127b2576000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600060148282829054906101000a900461ffff160392506101000a81548161ffff021916908361ffff1602179055505b50565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561283957600080fd5b60009150600090505b60065481101561290a576203f480420360098281548110151561286157fe5b90600052602060002090600502016003015410156128fd5760098181548110151561288857fe5b90600052602060002090600502016000808201600090556001820160009055600282016000905560038201600090556004820160006101000a81549060ff02191690556004820160016101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055505081806001019250505b8080600101915050612842565b816006600082825403925050819055505050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129b257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515612a2957806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b612a34612dae565b819050919050565b6000806000915060018351039050612a55838383612bbd565b505050565b600080823b905060008111915050919050565b6000806000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925067016345785d8a000085811515612aaa57fe5b04915060ff821115612abb5760ff91505b6000905066038d7ea4c6800082028101905064e8d4a51000820281019050633b9aca00820281019050620f42408202810190506103e8820281019050818101905067038ad94d608a88d7811115612b185767038ad94d608a88d790505b8273ffffffffffffffffffffffffffffffffffffffff1663e931fa0c85836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808367ffffffffffffffff1667ffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515612ba257600080fd5b6102c65a03f11515612bb357600080fd5b5050505050505050565b60008060008484111515612bd057612cda565b849250839150612c298684815181101515612be757fe5b906020019060200201518760018601815181101515612c0257fe5b906020019060200201518885815181101515612c1a57fe5b90602001906020020151612ce2565b90505b600115612cbd575b808684815181101515612c4357fe5b906020019060200201511015612c60578280600101935050612c34565b5b8582815181101515612c6f57fe5b90602001906020020151811015612c8e57818060019003925050612c61565b8282111515612c9c57612cbd565b612ca7868484612d3b565b8280600101935050818060019003925050612c2c565b612ccb868660018603612bbd565b612cd9866001840186612bbd565b5b505050505050565b600082841115612d125781831115612cfc57829050612d34565b818411612d095783612d0b565b815b9050612d34565b81841115612d2257839050612d34565b818311612d2f5782612d31565b815b90505b9392505050565b60008383815181101515612d4b57fe5b9060200190602002015190508382815181101515612d6557fe5b906020019060200201518484815181101515612d7d57fe5b9060200190602002018181525050808483815181101515612d9a57fe5b906020019060200201818152505050505050565b602060405190810160405280600081525090565b60c06040519081016040528060008152602001600081526020016000815260200160008152602001600060ff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b815481835581811511612e3f57600502816005028360005260206000209182019101612e3e9190612e44565b5b505050565b612ebb91905b80821115612eb7576000808201600090556001820160009055600282016000905560038201600090556004820160006101000a81549060ff02191690556004820160016101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600501612e4a565b5090565b905600a165627a7a7230582099746fc5cf64873286c50df11c7f965667e8632f3d0196bd9442b8035628d2ba0029

Swarm Source

bzzr://99746fc5cf64873286c50df11c7f965667e8632f3d0196bd9442b8035628d2ba

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.