ETH Price: $2,509.63 (+0.73%)

Token

ExoPlanets (XPL)
 

Overview

Max Total Supply

250 XPL

Holders

2

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

ExoPlanets is a blockchain game that allows you to own, collect, sell and play with scientifically accurate planets outside of solar system.

ICO Information

Project Sector : Gaming
Total Cap : 175,000,000 XPL
Remarks : Minted via Exoplanets's Dapp

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ExoplanetToken

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-08-08
*/

pragma solidity ^0.4.19;


contract ERC721 {
    function approve(address to, uint256 tokenId) public;
    function balanceOf(address owner) public view returns (uint256 balance);
    function implementsERC721() public pure returns (bool);
    function ownerOf(uint256 tokenId) public view returns (address addr);
    function takeOwnership(uint256 tokenId) public;
    function totalSupply() public view returns (uint256 total);
    function transferFrom(address from, address to, uint256 tokenId) public;
    function transfer(address to, uint256 tokenId) public;

    event Transfer(address indexed from, address indexed to, uint256 tokenId);
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);

    function name() external view returns (string name);
    function symbol() external view returns (string symbol);
    function tokenURI(uint256 _tokenId) external view returns (string uri);
  }


contract ExoplanetToken is ERC721 {

    using SafeMath for uint256;

    event Birth(uint256 indexed tokenId, string name, uint32 numOfTokensBonusOnPurchase, address owner);

    event TokenSold(uint256 tokenId, uint256 oldPriceInEther, uint256 newPriceInEther, address prevOwner, address winner, string name);

    event Transfer(address from, address to, uint256 tokenId);

    event ContractUpgrade(address newContract);


    string private constant CONTRACT_NAME = "ExoPlanets";

    string private constant CONTRACT_SYMBOL = "XPL";

    string public constant BASE_URL = "https://exoplanets.io/metadata/planet_";

    uint32 private constant NUM_EXOPLANETS_LIMIT = 10000;

    uint256 private constant STEP_1 =  5.0 ether;
    uint256 private constant STEP_2 = 10.0 ether;
    uint256 private constant STEP_3 = 26.0 ether;
    uint256 private constant STEP_4 = 36.0 ether;
    uint256 private constant STEP_5 = 47.0 ether;
    uint256 private constant STEP_6 = 59.0 ether;
    uint256 private constant STEP_7 = 67.85 ether;
    uint256 private constant STEP_8 = 76.67 ether;


    mapping (uint256 => address) public currentOwner;

    mapping (address => uint256) private numOwnedTokens;

    mapping (uint256 => address) public approvedToTransfer;

    mapping (uint256 => uint256) private currentPrice;

    address public ceoAddress;
    address public cooAddress;

    bool public inPresaleMode = true;

    bool public paused = false;

    bool public allowMigrate = true;

    address public newContractAddress;

    bool public _allowBuyDirect = false;


    struct ExoplanetRec {
        uint8 lifeRate;
        bool canBePurchased;
        uint32 priceInExoTokens;
        uint32 numOfTokensBonusOnPurchase;
        string name;
        string nickname;
        string cryptoMatch;
        string techBonus1;
        string techBonus2;
        string techBonus3;
        string scientificData;
    }

    ExoplanetRec[] private exoplanets;

    address public marketplaceAddress;


    modifier onlyCEO() {
      require(msg.sender == ceoAddress);
      _;
    }


    modifier migrateAllowed() {
        require(allowMigrate);
        _;
    }

    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    modifier whenPaused() {
        require(paused);
        _;
    }

    function turnMigrateOff() public onlyCEO() {
      allowMigrate = false;
    }

    function pause() public onlyCEO() whenNotPaused() {
      paused = true;
    }

    function unpause() public onlyCEO() whenPaused() {
      paused = false;
    }

    modifier allowBuyDirect() {
      require(_allowBuyDirect);
      _;
    }

   function setBuyDirectMode(bool newMode, address newMarketplace) public onlyCEO {
      _allowBuyDirect = newMode;
      marketplaceAddress = newMarketplace;
    }


    function setPurchaseableMode(uint256 tokenId, bool _canBePurchased, uint256 _newPrice) public afterPresaleMode() {
      require(owns(msg.sender, tokenId));
      exoplanets[tokenId].canBePurchased = _canBePurchased;
      setPriceInEth(tokenId, _newPrice);
    }


    function getPurchaseableMode(uint256 tokenId) public view returns (bool) {
      return exoplanets[tokenId].canBePurchased;
    }

    function setNewAddress(address _v2Address) public onlyCEO() whenPaused() {
      newContractAddress = _v2Address;
      ContractUpgrade(_v2Address);
    }


    modifier onlyCOO() {
      require(msg.sender == cooAddress);
      _;
    }

    modifier presaleModeActive() {
      require(inPresaleMode);
      _;
    }


    modifier afterPresaleMode() {
      require(!inPresaleMode);
      _;
    }


    modifier onlyCLevel() {
      require(
        msg.sender == ceoAddress ||
        msg.sender == cooAddress
      );
      _;
    }

    function setCEO(address newCEO) public onlyCEO {
      require(newCEO != address(0));
      ceoAddress = newCEO;
    }

    function setCOO(address newCOO) public onlyCEO {
      require(newCOO != address(0));
      cooAddress = newCOO;
    }

    function setPresaleMode(bool newMode) public onlyCEO {
      inPresaleMode = newMode;
    }


    /*** CONSTRUCTOR ***/
    function ExoplanetToken() public {
        ceoAddress = msg.sender;
        cooAddress = msg.sender;
        marketplaceAddress = msg.sender;
    }


    function approve(address to, uint256 tokenId) public {
        require(owns(msg.sender, tokenId));

        approvedToTransfer[tokenId] = to;

        Approval(msg.sender, to, tokenId);
    }

    function balanceOf(address owner) public view returns (uint256 balance) {
        balance = numOwnedTokens[owner];
    }

    function bytes32ToString(bytes32 x) private pure returns (string) {
        bytes memory bytesString = new bytes(32);
        uint charCount = 0;
        for (uint j = 0; j < 32; j++) {
            byte char = byte(bytes32(uint(x) * 2 ** (8 * j)));
            if (char != 0) {
                bytesString[charCount] = char;
                charCount++;
            }
        }
        bytes memory bytesStringTrimmed = new bytes(charCount);
        for (j = 0; j < charCount; j++) {
            bytesStringTrimmed[j] = bytesString[j];
        }
        return string(bytesStringTrimmed);
    }

    function migrateSinglePlanet(
          uint256 origTokenId, string name, uint256 priceInEther, uint32 priceInExoTokens,
          string cryptoMatch, uint32 numOfTokensBonusOnPurchase,
          uint8 lifeRate, string scientificData, address owner) public onlyCLevel migrateAllowed {

        _migrateExoplanet(origTokenId, name, priceInEther, priceInExoTokens,
              cryptoMatch, numOfTokensBonusOnPurchase, lifeRate, scientificData, owner);
    }


    function _migrateExoplanet(
        uint256 origTokenId, string name, uint256 priceInEther, uint32 priceInExoTokens,
        string cryptoMatch, uint32 numOfTokensBonusOnPurchase, uint8 lifeRate,
        string scientificData, address owner) private {

      require(totalSupply() < NUM_EXOPLANETS_LIMIT);

      require(origTokenId == uint256(uint32(origTokenId)));

      ExoplanetRec memory _exoplanet = ExoplanetRec({
        name: name,
        nickname: "",
        priceInExoTokens: priceInExoTokens,
        cryptoMatch: cryptoMatch,
        numOfTokensBonusOnPurchase: numOfTokensBonusOnPurchase,
        lifeRate: lifeRate,
        techBonus1: "",
        techBonus2: "",
        techBonus3: "",
        scientificData: scientificData,
        canBePurchased: false
      });

      uint256 tokenId = exoplanets.push(_exoplanet) - 1;

      currentPrice[tokenId] = priceInEther;

      numOwnedTokens[owner]++;
      exoplanets[tokenId].canBePurchased = false;
      currentOwner[tokenId] = owner;
    }


    function createContractExoplanet(
          string name, uint256 priceInEther, uint32 priceInExoTokens,
          string cryptoMatch, uint32 numOfTokensBonusOnPurchase,
          uint8 lifeRate, string scientificData) public onlyCLevel returns (uint256) {

        return _createExoplanet(name, address(this), priceInEther, priceInExoTokens,
              cryptoMatch, numOfTokensBonusOnPurchase, lifeRate,
              scientificData);
    }

    function _createExoplanet(
        string name, address owner, uint256 priceInEther, uint32 priceInExoTokens,
        string cryptoMatch, uint32 numOfTokensBonusOnPurchase, uint8 lifeRate,
        string scientificData) private returns (uint256) {

      require(totalSupply() < NUM_EXOPLANETS_LIMIT);

      ExoplanetRec memory _exoplanet = ExoplanetRec({
        name: name,
        nickname: "",
        priceInExoTokens: priceInExoTokens,
        cryptoMatch: cryptoMatch,
        numOfTokensBonusOnPurchase: numOfTokensBonusOnPurchase,
        lifeRate: lifeRate,
        techBonus1: "",
        techBonus2: "",
        techBonus3: "",
        scientificData: scientificData,
        canBePurchased: false
      });
      uint256 newExoplanetId = exoplanets.push(_exoplanet) - 1;

      require(newExoplanetId == uint256(uint32(newExoplanetId)));

      Birth(newExoplanetId, name, numOfTokensBonusOnPurchase, owner);

      currentPrice[newExoplanetId] = priceInEther;

      _transfer(address(0), owner, newExoplanetId);

      return newExoplanetId;
    }


    function unownedPlanet(uint256 tokenId) private view returns (bool) {
      return currentOwner[tokenId] == address(this);
    }

    function getPlanetName(uint256 tokenId) public view returns (string) {
      return exoplanets[tokenId].name;
    }
    function getNickname(uint256 tokenId) public view returns (string) {
      return exoplanets[tokenId].nickname;
    }

    function getPriceInExoTokens(uint256 tokenId) public view returns (uint32) {
      return exoplanets[tokenId].priceInExoTokens;
    }

    function getLifeRate(uint256 tokenId) public view returns (uint8) {
      return exoplanets[tokenId].lifeRate;
    }

    function getNumOfTokensBonusOnPurchase(uint256 tokenId) public view returns (uint32) {
      return exoplanets[tokenId].numOfTokensBonusOnPurchase;
    }

    function getCryptoMatch(uint256 tokenId) public view returns (string) {
      return exoplanets[tokenId].cryptoMatch;
    }

    function getTechBonus1(uint256 tokenId) public view returns (string) {
      return exoplanets[tokenId].techBonus1;
    }

    function getTechBonus2(uint256 tokenId) public view returns (string) {
      return exoplanets[tokenId].techBonus2;
    }

    function getTechBonus3(uint256 tokenId) public view returns (string) {
      return exoplanets[tokenId].techBonus3;
    }

    function getScientificData(uint256 tokenId) public view returns (string) {
      return exoplanets[tokenId].scientificData;
    }


    function setTechBonus1(uint256 tokenId, string newVal) public {
      require(msg.sender == marketplaceAddress || msg.sender == ceoAddress);
      exoplanets[tokenId].techBonus1 = newVal;
    }

    function setTechBonus2(uint256 tokenId, string newVal) public {
      require(msg.sender == marketplaceAddress || msg.sender == ceoAddress);
      exoplanets[tokenId].techBonus2 = newVal;
    }

    function setTechBonus3(uint256 tokenId, string newVal) public {
      require(msg.sender == marketplaceAddress || msg.sender == ceoAddress);
      exoplanets[tokenId].techBonus3 = newVal;
    }

    function setPriceInEth(uint256 tokenId, uint256 newPrice) public afterPresaleMode() {
      require(owns(msg.sender, tokenId));
      currentPrice[tokenId] = newPrice;
    }

    function setUnownedPriceInEth(uint256 tokenId, uint256 newPrice) public onlyCLevel {
      require(unownedPlanet(tokenId));
      currentPrice[tokenId] = newPrice;
    }

    function setUnownedPurchaseableMode(uint256 tokenId, bool _canBePurchased) public onlyCLevel {
      require(unownedPlanet(tokenId));
      exoplanets[tokenId].canBePurchased = _canBePurchased;
    }

    function setPriceInExoTokens(uint256 tokenId, uint32 newPrice) public afterPresaleMode() {
      require(owns(msg.sender, tokenId));
      exoplanets[tokenId].priceInExoTokens = newPrice;
    }

    function setUnownedPriceInExoTokens(uint256 tokenId, uint32 newPrice) public onlyCLevel {
      require(unownedPlanet(tokenId));
      exoplanets[tokenId].priceInExoTokens = newPrice;
    }

    function setScientificData(uint256 tokenId, string newData) public onlyCLevel {
      exoplanets[tokenId].scientificData = newData;
    }

    function setUnownedName(uint256 tokenId, string newData) public onlyCLevel {
      require(unownedPlanet(tokenId));
      exoplanets[tokenId].name = newData;
    }

    function setUnownedNickname(uint256 tokenId, string newData) public onlyCLevel {
      require(unownedPlanet(tokenId));
      exoplanets[tokenId].nickname = newData;
    }

    function setCryptoMatchValue(uint256 tokenId, string newData) public onlyCLevel {
      exoplanets[tokenId].cryptoMatch = newData;
    }

    function setUnownedNumOfExoTokensBonus(uint256 tokenId, uint32 newData) public onlyCLevel {
      require(unownedPlanet(tokenId));
      exoplanets[tokenId].numOfTokensBonusOnPurchase = newData;
    }

     function setUnownedLifeRate(uint256 tokenId, uint8 newData) public onlyCLevel {
      require(unownedPlanet(tokenId));
      exoplanets[tokenId].lifeRate = newData;
    }



    function getExoplanet(uint256 tokenId) public view returns (
        uint8 lifeRate,
        bool canBePurchased,
        uint32 priceInExoTokens,
        uint32 numOfTokensBonusOnPurchase,
        string name,
        string nickname,
        string cryptoMatch,
        string scientificData,
        uint256 sellingPriceInEther,
        address owner) {

      ExoplanetRec storage exoplanet = exoplanets[tokenId];

      lifeRate = exoplanet.lifeRate;
      canBePurchased = exoplanet.canBePurchased;
      priceInExoTokens = exoplanet.priceInExoTokens;
      numOfTokensBonusOnPurchase = exoplanet.numOfTokensBonusOnPurchase;
      name = exoplanet.name;
      nickname = exoplanet.nickname;
      cryptoMatch = exoplanet.cryptoMatch;
      scientificData = exoplanet.scientificData;

      sellingPriceInEther = currentPrice[tokenId];
      owner = currentOwner[tokenId];
    }


    function implementsERC721() public pure returns (bool) {
      return true;
    }

    function ownerOf(uint256 tokenId) public view returns (address owner) {
      owner = currentOwner[tokenId];
    }


    function transferUnownedPlanet(address newOwner, uint256 tokenId) public onlyCLevel {

      require(unownedPlanet(tokenId));

      require(newOwner != address(0));

      _transfer(currentOwner[tokenId], newOwner, tokenId);

      TokenSold(tokenId, currentPrice[tokenId], currentPrice[tokenId], address(this), newOwner, exoplanets[tokenId].name);
    }


    function purchase(uint256 tokenId) public payable whenNotPaused() presaleModeActive() {

      require(currentOwner[tokenId] != msg.sender);

      require(addressNotNull(msg.sender));

      uint256 planetPrice = currentPrice[tokenId];

      require(msg.value >= planetPrice);

      uint paymentPrcnt;
      uint stepPrcnt;

      if (planetPrice <= STEP_1) {
        paymentPrcnt = 93;
        stepPrcnt = 200;
      } else if (planetPrice <= STEP_2) {
        paymentPrcnt = 93;
        stepPrcnt = 150;
      } else if (planetPrice <= STEP_3) {
        paymentPrcnt = 93;
        stepPrcnt = 135;
      } else if (planetPrice <= STEP_4) {
        paymentPrcnt = 94;
        stepPrcnt = 125;
      } else if (planetPrice <= STEP_5) {
        paymentPrcnt = 94;
        stepPrcnt = 119;
      } else if (planetPrice <= STEP_6) {
        paymentPrcnt = 95;
        stepPrcnt = 117;
      } else if (planetPrice <= STEP_7) {
        paymentPrcnt = 95;
        stepPrcnt = 115;
      } else if (planetPrice <= STEP_8) {
        paymentPrcnt = 95;
        stepPrcnt = 113;
      } else {
        paymentPrcnt = 96;
        stepPrcnt = 110;
      }

      currentPrice[tokenId] = planetPrice.mul(stepPrcnt).div(100);

      uint256 payment = uint256(planetPrice.mul(paymentPrcnt).div(100));

      address seller = currentOwner[tokenId];

      if (seller != address(this)) {
        seller.transfer(payment);
      }

      _transfer(seller, msg.sender, tokenId);

      TokenSold(tokenId, planetPrice, currentPrice[tokenId], seller, msg.sender, exoplanets[tokenId].name);

    }



    function buyDirectInMarketplace(uint256 tokenId) public payable
                    whenNotPaused() afterPresaleMode() allowBuyDirect() {

      require(exoplanets[tokenId].canBePurchased);

      uint256 planetPrice = currentPrice[tokenId];

      require(msg.value >= planetPrice);

      address seller = currentOwner[tokenId];

      if (seller != address(this)) {
        seller.transfer(planetPrice);
      }

      _transfer(seller, msg.sender, tokenId);

      TokenSold(tokenId, planetPrice, currentPrice[tokenId], seller, msg.sender, exoplanets[tokenId].name);
    }


    function priceOf(uint256 tokenId) public view returns (uint256) {
      return currentPrice[tokenId];
    }


    function takeOwnership(uint256 tokenId) public whenNotPaused() {

      require(addressNotNull(msg.sender));

      require(approved(msg.sender, tokenId));

      _transfer(currentOwner[tokenId], msg.sender, tokenId);
    }

    function tokensOfOwner(address owner) public view returns(uint256[] ownerTokens) {
      uint256 tokenCount = balanceOf(owner);
      if (tokenCount == 0) {
        return new uint256[](0);
      } else {
        uint256[] memory result = new uint256[](tokenCount);
        uint256 totalExoplanets = totalSupply();
        uint256 resultIndex = 0;

        uint256 exoplanetId;
        for (exoplanetId = 0; exoplanetId <= totalExoplanets; exoplanetId++) {
          if (currentOwner[exoplanetId] == owner) {
            result[resultIndex] = exoplanetId;
            resultIndex++;
          }
        }
        return result;
      }
    }

    function name() external view returns (string name) {
      name = CONTRACT_NAME;
    }

    function symbol() external view returns (string symbol) {
      symbol = CONTRACT_SYMBOL;
    }

    function tokenURI(uint256 _tokenId) external view returns (string uri) {
      uri = appendNumToString(BASE_URL, _tokenId);
    }

    function totalSupply() public view returns (uint256 total) {
      total = exoplanets.length;
    }

    function transfer(address to, uint256 tokenId) public whenNotPaused() {
      require(owns(msg.sender, tokenId));
      require(addressNotNull(to));
      _transfer(msg.sender, to, tokenId);
    }

    function transferFrom(address from, address to, uint256 tokenId) public whenNotPaused() {
      require(owns(from, tokenId));
      require(approved(msg.sender, tokenId));
      require(addressNotNull(to));
      _transfer(from, to, tokenId);
    }

    function addressNotNull(address addr) private pure returns (bool) {
      return addr != address(0);
    }

    function approved(address to, uint256 tokenId) private view returns (bool) {
      return approvedToTransfer[tokenId] == to;
    }


    function owns(address claimant, uint256 tokenId) private view returns (bool) {
      return claimant == currentOwner[tokenId];
    }

    function payout() public onlyCLevel {
      ceoAddress.transfer(this.balance);
    }

    function payoutPartial(uint256 amount) public onlyCLevel {
      require(amount <= this.balance);
      ceoAddress.transfer(amount);
    }


    function _transfer(address from, address to, uint256 tokenId) private {
      numOwnedTokens[to]++;

      exoplanets[tokenId].canBePurchased = false;

      currentOwner[tokenId] = to;

      if (from != address(0)) {
        numOwnedTokens[from]--;
        delete approvedToTransfer[tokenId];
      }

      Transfer(from, to, tokenId);
    }

    function appendNumToString(string baseUrl, uint256 tokenId) private pure returns (string) {
      string memory _b = numToString(tokenId);
      bytes memory bytes_a = bytes(baseUrl);
      bytes memory bytes_b = bytes(_b);
      string memory length_ab = new string(bytes_a.length + bytes_b.length);
      bytes memory bytes_c = bytes(length_ab);
      uint k = 0;
      for (uint i = 0; i < bytes_a.length; i++) {
        bytes_c[k++] = bytes_a[i];
      }
      for (i = 0; i < bytes_b.length; i++) {
        bytes_c[k++] = bytes_b[i];
      }
      return string(bytes_c);
    }

    function numToString(uint256 tokenId) private pure returns (string str) {
      uint uintVal = uint(tokenId);
      bytes32 bytes32Val = uintToBytes32(uintVal);
      return bytes32ToString(bytes32Val);
    }

    function uintToBytes32(uint v) private pure returns (bytes32 ret) {
      if (v == 0) {
          ret = '0';
      }
      else {
          while (v > 0) {
              ret = bytes32(uint(ret) / (2 ** 8));
              ret |= bytes32(((v % 10) + 48) * 2 ** (8 * 31));
              v /= 10;
          }
      }
      return ret;
    }

}


library SafeMath {

    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;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
      uint256 c = a / b;
      return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
      assert(b <= a);
      return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
      uint256 c = a + b;
      assert(c >= a);
      return c;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"getExoplanet","outputs":[{"name":"lifeRate","type":"uint8"},{"name":"canBePurchased","type":"bool"},{"name":"priceInExoTokens","type":"uint32"},{"name":"numOfTokensBonusOnPurchase","type":"uint32"},{"name":"name","type":"string"},{"name":"nickname","type":"string"},{"name":"cryptoMatch","type":"string"},{"name":"scientificData","type":"string"},{"name":"sellingPriceInEther","type":"uint256"},{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenId","type":"uint256"},{"name":"newData","type":"uint8"}],"name":"setUnownedLifeRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ceoAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"implementsERC721","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"inPresaleMode","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"total","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenId","type":"uint256"},{"name":"newData","type":"uint32"}],"name":"setUnownedNumOfExoTokensBonus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"priceInEther","type":"uint256"},{"name":"priceInExoTokens","type":"uint32"},{"name":"cryptoMatch","type":"string"},{"name":"numOfTokensBonusOnPurchase","type":"uint32"},{"name":"lifeRate","type":"uint8"},{"name":"scientificData","type":"string"}],"name":"createContractExoplanet","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newCEO","type":"address"}],"name":"setCEO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newCOO","type":"address"}],"name":"setCOO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"getTechBonus2","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"getNickname","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenId","type":"uint256"},{"name":"newPrice","type":"uint256"}],"name":"setUnownedPriceInEth","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"getPlanetName","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"payout","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newContractAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenId","type":"uint256"},{"name":"newVal","type":"string"}],"name":"setTechBonus1","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"approvedToTransfer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_v2Address","type":"address"}],"name":"setNewAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"payoutPartial","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newMode","type":"bool"},{"name":"newMarketplace","type":"address"}],"name":"setBuyDirectMode","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenId","type":"uint256"},{"name":"newData","type":"string"}],"name":"setCryptoMatchValue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"BASE_URL","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"getLifeRate","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"origTokenId","type":"uint256"},{"name":"name","type":"string"},{"name":"priceInEther","type":"uint256"},{"name":"priceInExoTokens","type":"uint32"},{"name":"cryptoMatch","type":"string"},{"name":"numOfTokensBonusOnPurchase","type":"uint32"},{"name":"lifeRate","type":"uint8"},{"name":"scientificData","type":"string"},{"name":"owner","type":"address"}],"name":"migrateSinglePlanet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"tokensOfOwner","outputs":[{"name":"ownerTokens","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenId","type":"uint256"},{"name":"_canBePurchased","type":"bool"},{"name":"_newPrice","type":"uint256"}],"name":"setPurchaseableMode","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"buyDirectInMarketplace","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"symbol","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"getPriceInExoTokens","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenId","type":"uint256"},{"name":"newData","type":"string"}],"name":"setUnownedName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenId","type":"uint256"},{"name":"newVal","type":"string"}],"name":"setTechBonus2","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenId","type":"uint256"},{"name":"newVal","type":"string"}],"name":"setTechBonus3","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"cooAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"takeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"getNumOfTokensBonusOnPurchase","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"},{"name":"tokenId","type":"uint256"}],"name":"transferUnownedPlanet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newMode","type":"bool"}],"name":"setPresaleMode","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"priceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenId","type":"uint256"},{"name":"newPrice","type":"uint32"}],"name":"setUnownedPriceInExoTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenId","type":"uint256"},{"name":"newPrice","type":"uint256"}],"name":"setPriceInEth","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"name":"uri","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"getCryptoMatch","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"getTechBonus3","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"turnMigrateOff","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"getScientificData","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"marketplaceAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenId","type":"uint256"},{"name":"newData","type":"string"}],"name":"setUnownedNickname","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenId","type":"uint256"},{"name":"newPrice","type":"uint32"}],"name":"setPriceInExoTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"currentOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"allowMigrate","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenId","type":"uint256"},{"name":"_canBePurchased","type":"bool"}],"name":"setUnownedPurchaseableMode","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"purchase","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"getPurchaseableMode","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_allowBuyDirect","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"getTechBonus1","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenId","type":"uint256"},{"name":"newData","type":"string"}],"name":"setScientificData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"numOfTokensBonusOnPurchase","type":"uint32"},{"indexed":false,"name":"owner","type":"address"}],"name":"Birth","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"oldPriceInEther","type":"uint256"},{"indexed":false,"name":"newPriceInEther","type":"uint256"},{"indexed":false,"name":"prevOwner","type":"address"},{"indexed":false,"name":"winner","type":"address"},{"indexed":false,"name":"name","type":"string"}],"name":"TokenSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newContract","type":"address"}],"name":"ContractUpgrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"approved","type":"address"},{"indexed":true,"name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"}]

60606040526005805460a860020a61ffff021960a060020a60ff021991821674010000000000000000000000000000000000000000171676010000000000000000000000000000000000000000000017909155600680549091169055341561006657600080fd5b60048054600160a060020a033316600160a060020a0319918216811790925560058054821683179055600880549091169091179055613bc6806100aa6000396000f30060606040526004361061030b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306d91eea811461031057806306f33ae21461051f57806306fdde031461053d578063095ea7b3146105c75780630a0f8168146105e95780631051db341461061857806312cacbb51461063f57806318160ddd146106525780631d017b28146106775780631d8b4dd11461069657806323b872dd1461078c57806327d7874c146107b45780632ba73c15146107d35780632f0ddcb2146107f257806334c2b620146108085780633f4ba83a1461081e5780634777c1f4146108315780635c975abb1461084a57806362133a6c1461085d5780636352211e1461087357806363bd1d4a146108895780636af04a571461089c5780636d25ba1d146108af5780636f7a6b8b1461090557806370a082311461091b578063715879881461093a578063798ce54f146109595780637be5b5ae1461096f5780637dc45e27146109935780637f78636a146109e95780637ffc0712146109fc57806381bc365714610a285780638456cb5914610b2e5780638462151c14610b415780638bfff5a014610bb35780638f8db73714610bd157806395d89b4114610bdc578063a594056f14610bef578063a715df5814610c1e578063a9059cbb14610c74578063ad50039f14610c96578063afe1d4cf14610cec578063b047fb5014610d42578063b2e6ceeb14610d55578063b3ef774b14610d6b578063b629d74114610d81578063b8a2511914610da3578063b9186d7d14610dbb578063bd62104214610dd1578063bf8edd8514610df0578063c87b56dd14610e09578063cbe7a15014610e1f578063ccdaeab014610e35578063d19b99b514610e4b578063d6c5d82314610e5e578063daa17f4914610e74578063e12925a914610e87578063e2f77ae214610edd578063e545110314610efc578063e780444414610f12578063e785daaf14610f25578063efef39a114610f40578063f13b68e814610f4b578063f36a1fd914610f61578063f4ae0d2f14610f74578063f6e5e29814610f8a575b600080fd5b341561031b57600080fd5b610326600435610fe0565b60405160ff8b168152891515602082015263ffffffff808a166040830152881660608201526101008101839052600160a060020a038216610120820152610140608082018181529060a083019060c084019060e085019085018b818151815260200191508051906020019080838360005b838110156103af578082015183820152602001610397565b50505050905090810190601f1680156103dc5780820380516001836020036101000a031916815260200191505b5085810384528a818151815260200191508051906020019080838360005b838110156104125780820151838201526020016103fa565b50505050905090810190601f16801561043f5780820380516001836020036101000a031916815260200191505b50858103835289818151815260200191508051906020019080838360005b8381101561047557808201518382015260200161045d565b50505050905090810190601f1680156104a25780820380516001836020036101000a031916815260200191505b50858103825288818151815260200191508051906020019080838360005b838110156104d85780820151838201526020016104c0565b50505050905090810190601f1680156105055780820380516001836020036101000a031916815260200191505b509e50505050505050505050505050505060405180910390f35b341561052a57600080fd5b61053b60043560ff60243516611336565b005b341561054857600080fd5b6105506113b6565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561058c578082015183820152602001610574565b50505050905090810190601f1680156105b95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156105d257600080fd5b61053b600160a060020a03600435166024356113f7565b34156105f457600080fd5b6105fc61146f565b604051600160a060020a03909116815260200160405180910390f35b341561062357600080fd5b61062b61147e565b604051901515815260200160405180910390f35b341561064a57600080fd5b61062b611484565b341561065d57600080fd5b610665611494565b60405190815260200160405180910390f35b341561068257600080fd5b61053b60043563ffffffff6024351661149a565b34156106a157600080fd5b61066560046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949686359660208082013563ffffffff169750919550606081019450604090810135860180830194503592508291601f8301819004810201905190810160405281815292919060208401838380828437509496863563ffffffff169660208082013560ff169750919550606081019450604090810135860180830194503592508291601f83018190048102019051908101604052818152929190602084018383808284375094965061152795505050505050565b341561079757600080fd5b61053b600160a060020a036004358116906024351660443561157c565b34156107bf57600080fd5b61053b600160a060020a03600435166115e1565b34156107de57600080fd5b61053b600160a060020a0360043516611633565b34156107fd57600080fd5b610550600435611685565b341561081357600080fd5b61055060043561174c565b341561082957600080fd5b61053b6117dc565b341561083c57600080fd5b61053b600435602435611830565b341561085557600080fd5b61062b61188c565b341561086857600080fd5b61055060043561189c565b341561087e57600080fd5b6105fc60043561192c565b341561089457600080fd5b61053b611947565b34156108a757600080fd5b6105fc6119b8565b34156108ba57600080fd5b61053b600480359060446024803590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506119c795505050505050565b341561091057600080fd5b6105fc600435611a2f565b341561092657600080fd5b610665600160a060020a0360043516611a4a565b341561094557600080fd5b61053b600160a060020a0360043516611a65565b341561096457600080fd5b61053b600435611af3565b341561097a57600080fd5b61053b6004351515600160a060020a0360243516611b76565b341561099e57600080fd5b61053b600480359060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611be195505050505050565b34156109f457600080fd5b610550611c49565b3415610a0757600080fd5b610a12600435611ca9565b60405160ff909116815260200160405180910390f35b3415610a3357600080fd5b61053b600480359060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949686359660208082013563ffffffff169750919550606081019450604090810135860180830194503592508291601f8301819004810201905190810160405281815292919060208401838380828437509496863563ffffffff169660208082013560ff169750919550606081019450604090810135860180830194503592508291601f83018190048102019051908101604052818152929190602084018383808284375094965050509235600160a060020a03169250611cd4915050565b3415610b3957600080fd5b61053b611d51565b3415610b4c57600080fd5b610b60600160a060020a0360043516611daa565b60405160208082528190810183818151815260200191508051906020019060200280838360005b83811015610b9f578082015183820152602001610b87565b505050509050019250505060405180910390f35b3415610bbe57600080fd5b61053b6004356024351515604435611e8b565b61053b600435611ef7565b3415610be757600080fd5b610550612107565b3415610bfa57600080fd5b610c05600435612148565b60405163ffffffff909116815260200160405180910390f35b3415610c2957600080fd5b61053b600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061217c95505050505050565b3415610c7f57600080fd5b61053b600160a060020a03600435166024356121f8565b3415610ca157600080fd5b61053b600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061224795505050505050565b3415610cf757600080fd5b61053b600480359060446024803590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506122af95505050505050565b3415610d4d57600080fd5b6105fc612317565b3415610d6057600080fd5b61053b600435612326565b3415610d7657600080fd5b610c05600435612389565b3415610d8c57600080fd5b61053b600160a060020a03600435166024356123c1565b3415610dae57600080fd5b61053b6004351515612558565b3415610dc657600080fd5b6106656004356125a2565b3415610ddc57600080fd5b61053b60043563ffffffff602435166125b4565b3415610dfb57600080fd5b61053b600435602435612641565b3415610e1457600080fd5b610550600435612662565b3415610e2a57600080fd5b6105506004356126d6565b3415610e4057600080fd5b610550600435612766565b3415610e5657600080fd5b61053b6127f6565b3415610e6957600080fd5b610550600435612833565b3415610e7f57600080fd5b6105fc6128c3565b3415610e9257600080fd5b61053b600480359060446024803590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506128d295505050505050565b3415610ee857600080fd5b61053b60043563ffffffff6024351661294e565b3415610f0757600080fd5b6105fc60043561296f565b3415610f1d57600080fd5b61062b61298a565b3415610f3057600080fd5b61053b60043560243515156129ad565b61053b600435612a31565b3415610f5657600080fd5b61062b600435612d76565b3415610f6c57600080fd5b61062b612da6565b3415610f7f57600080fd5b610550600435612db6565b3415610f9557600080fd5b61053b600480359060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650612e4695505050505050565b600080600080610fee613971565b610ff6613971565b610ffe613971565b611006613971565b600080600060078c81548110151561101a57fe5b906000526020600020906008020190508060000160009054906101000a900460ff169a508060000160019054906101000a900460ff1699508060000160029054906101000a900463ffffffff1698508060000160069054906101000a900463ffffffff169750806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111185780601f106110ed57610100808354040283529160200191611118565b820191906000526020600020905b8154815290600101906020018083116110fb57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111b75780601f1061118c576101008083540402835291602001916111b7565b820191906000526020600020905b81548152906001019060200180831161119a57829003601f168201915b50505050509550806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112565780601f1061122b57610100808354040283529160200191611256565b820191906000526020600020905b81548152906001019060200180831161123957829003601f168201915b50505050509450806007018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112f55780601f106112ca576101008083540402835291602001916112f5565b820191906000526020600020905b8154815290600101906020018083116112d857829003601f168201915b50505060009e8f525050600360209081526040808f2054918f9052909d20549b9d9a9c999b989a979996989597909695600160a060020a0316945092505050565b60045433600160a060020a0390811691161480611361575060055433600160a060020a039081169116145b151561136c57600080fd5b61137582612eae565b151561138057600080fd5b8060078381548110151561139057fe5b60009182526020909120600890910201805460ff191660ff929092169190911790555050565b6113be613971565b60408051908101604052600a81527f45786f506c616e657473000000000000000000000000000000000000000000006020820152919050565b6114013382612ecf565b151561140c57600080fd5b600081815260026020526040908190208054600160a060020a031916600160a060020a03858116918217909255839290913316907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925905160405180910390a45050565b600454600160a060020a031681565b60015b90565b60055460a060020a900460ff1681565b60075490565b60045433600160a060020a03908116911614806114c5575060055433600160a060020a039081169116145b15156114d057600080fd5b6114d982612eae565b15156114e457600080fd5b806007838154811015156114f457fe5b906000526020600020906008020160000160066101000a81548163ffffffff021916908363ffffffff1602179055505050565b60045460009033600160a060020a0390811691161480611555575060055433600160a060020a039081169116145b151561156057600080fd5b6115708830898989898989612eef565b98975050505050505050565b60055460a860020a900460ff161561159357600080fd5b61159d8382612ecf565b15156115a857600080fd5b6115b23382613203565b15156115bd57600080fd5b6115c682613223565b15156115d157600080fd5b6115dc838383613231565b505050565b60045433600160a060020a039081169116146115fc57600080fd5b600160a060020a038116151561161157600080fd5b60048054600160a060020a031916600160a060020a0392909216919091179055565b60045433600160a060020a0390811691161461164e57600080fd5b600160a060020a038116151561166357600080fd5b60058054600160a060020a031916600160a060020a0392909216919091179055565b61168d613971565b600780548390811061169b57fe5b90600052602060002090600802016005018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117405780601f1061171557610100808354040283529160200191611740565b820191906000526020600020905b81548152906001019060200180831161172357829003601f168201915b50505050509050919050565b611754613971565b600780548390811061176257fe5b90600052602060002090600802016002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117405780601f1061171557610100808354040283529160200191611740565b60045433600160a060020a039081169116146117f757600080fd5b60055460a860020a900460ff16151561180f57600080fd5b6005805475ff00000000000000000000000000000000000000000019169055565b60045433600160a060020a039081169116148061185b575060055433600160a060020a039081169116145b151561186657600080fd5b61186f82612eae565b151561187a57600080fd5b60009182526003602052604090912055565b60055460a860020a900460ff1681565b6118a4613971565b60078054839081106118b257fe5b90600052602060002090600802016001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117405780601f1061171557610100808354040283529160200191611740565b600090815260208190526040902054600160a060020a031690565b60045433600160a060020a0390811691161480611972575060055433600160a060020a039081169116145b151561197d57600080fd5b600454600160a060020a039081169030163180156108fc0290604051600060405180830381858888f1935050505015156119b657600080fd5b565b600654600160a060020a031681565b60085433600160a060020a03908116911614806119f2575060045433600160a060020a039081169116145b15156119fd57600080fd5b80600783815481101515611a0d57fe5b90600052602060002090600802016004019080516115dc929160200190613983565b600260205260009081526040902054600160a060020a031681565b600160a060020a031660009081526001602052604090205490565b60045433600160a060020a03908116911614611a8057600080fd5b60055460a860020a900460ff161515611a9857600080fd5b60068054600160a060020a031916600160a060020a0383161790557f450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa44619930581604051600160a060020a03909116815260200160405180910390a150565b60045433600160a060020a0390811691161480611b1e575060055433600160a060020a039081169116145b1515611b2957600080fd5b600160a060020a03301631811115611b4057600080fd5b600454600160a060020a031681156108fc0282604051600060405180830381858888f193505050501515611b7357600080fd5b50565b60045433600160a060020a03908116911614611b9157600080fd5b6006805474ff0000000000000000000000000000000000000000191660a060020a931515939093029290921790915560088054600160a060020a031916600160a060020a03909216919091179055565b60045433600160a060020a0390811691161480611c0c575060055433600160a060020a039081169116145b1515611c1757600080fd5b80600783815481101515611c2757fe5b90600052602060002090600802016003019080516115dc929160200190613983565b606060405190810160405280602681526020017f68747470733a2f2f65786f706c616e6574732e696f2f6d657461646174612f7081526020017f6c616e65745f000000000000000000000000000000000000000000000000000081525081565b6000600782815481101515611cba57fe5b600091825260209091206008909102015460ff1692915050565b60045433600160a060020a0390811691161480611cff575060055433600160a060020a039081169116145b1515611d0a57600080fd5b600554760100000000000000000000000000000000000000000000900460ff161515611d3557600080fd5b611d4689898989898989898961334c565b505050505050505050565b60045433600160a060020a03908116911614611d6c57600080fd5b60055460a860020a900460ff1615611d8357600080fd5b6005805475ff000000000000000000000000000000000000000000191660a860020a179055565b611db2613971565b6000611dbc613971565b6000806000611dca87611a4a565b9450841515611dfa576000604051805910611de25750595b90808252806020026020018201604052509550611e81565b84604051805910611e085750595b90808252806020026020018201604052509350611e23611494565b925060009150600090505b828111611e7d57600081815260208190526040902054600160a060020a0388811691161415611e755780848381518110611e6457fe5b602090810290910101526001909101905b600101611e2e565b8395505b5050505050919050565b60055460a060020a900460ff1615611ea257600080fd5b611eac3384612ecf565b1515611eb757600080fd5b81600784815481101515611ec757fe5b6000918252602090912060089091020180549115156101000261ff00199092169190911790556115dc8382612641565b600554600090819060a860020a900460ff1615611f1357600080fd5b60055460a060020a900460ff1615611f2a57600080fd5b60065460a060020a900460ff161515611f4257600080fd5b6007805484908110611f5057fe5b6000918252602090912060089091020154610100900460ff161515611f7457600080fd5b60008381526003602052604090205491503482901015611f9357600080fd5b50600082815260208190526040902054600160a060020a039081169030168114611fe857600160a060020a03811682156108fc0283604051600060405180830381858888f193505050501515611fe857600080fd5b611ff3813385613231565b7e8201e7bcbf010c2c07de59d6e97cb7e3cf67a46125c49cbc89b9d2cde1f48f83836003600087815260200190815260200160002054843360078981548110151561203a57fe5b90600052602060002090600802016001016040518681526020810186905260408101859052600160a060020a0380851660608301528316608082015260c060a082018181528354600260001961010060018416150201909116049183018290529060e0830190849080156120ef5780601f106120c4576101008083540402835291602001916120ef565b820191906000526020600020905b8154815290600101906020018083116120d257829003601f168201915b505097505050505050505060405180910390a1505050565b61210f613971565b60408051908101604052600381527f58504c00000000000000000000000000000000000000000000000000000000006020820152919050565b600060078281548110151561215957fe5b600091825260209091206008909102015462010000900463ffffffff1692915050565b60045433600160a060020a03908116911614806121a7575060055433600160a060020a039081169116145b15156121b257600080fd5b6121bb82612eae565b15156121c657600080fd5b806007838154811015156121d657fe5b90600052602060002090600802016001019080516115dc929160200190613983565b60055460a860020a900460ff161561220f57600080fd5b6122193382612ecf565b151561222457600080fd5b61222d82613223565b151561223857600080fd5b612243338383613231565b5050565b60085433600160a060020a0390811691161480612272575060045433600160a060020a039081169116145b151561227d57600080fd5b8060078381548110151561228d57fe5b90600052602060002090600802016005019080516115dc929160200190613983565b60085433600160a060020a03908116911614806122da575060045433600160a060020a039081169116145b15156122e557600080fd5b806007838154811015156122f557fe5b90600052602060002090600802016006019080516115dc929160200190613983565b600554600160a060020a031681565b60055460a860020a900460ff161561233d57600080fd5b61234633613223565b151561235157600080fd5b61235b3382613203565b151561236657600080fd5b600081815260208190526040902054611b7390600160a060020a03163383613231565b600060078281548110151561239a57fe5b60009182526020909120600890910201546601000000000000900463ffffffff1692915050565b60045433600160a060020a03908116911614806123ec575060055433600160a060020a039081169116145b15156123f757600080fd5b61240081612eae565b151561240b57600080fd5b600160a060020a038216151561242057600080fd5b60008181526020819052604090205461244390600160a060020a03168383613231565b600081815260036020526040902054600780547e8201e7bcbf010c2c07de59d6e97cb7e3cf67a46125c49cbc89b9d2cde1f48f9284929091829130918891908690811061248c57fe5b90600052602060002090600802016001016040518681526020810186905260408101859052600160a060020a0380851660608301528316608082015260c060a082018181528354600260001961010060018416150201909116049183018290529060e0830190849080156125415780601f1061251657610100808354040283529160200191612541565b820191906000526020600020905b81548152906001019060200180831161252457829003601f168201915b505097505050505050505060405180910390a15050565b60045433600160a060020a0390811691161461257357600080fd5b6005805491151560a060020a0274ff000000000000000000000000000000000000000019909216919091179055565b60009081526003602052604090205490565b60045433600160a060020a03908116911614806125df575060055433600160a060020a039081169116145b15156125ea57600080fd5b6125f382612eae565b15156125fe57600080fd5b8060078381548110151561260e57fe5b906000526020600020906008020160000160026101000a81548163ffffffff021916908363ffffffff1602179055505050565b60055460a060020a900460ff161561265857600080fd5b61186f3383612ecf565b61266a613971565b6126d0606060405190810160405280602681526020017f68747470733a2f2f65786f706c616e6574732e696f2f6d657461646174612f7081526020017f6c616e65745f00000000000000000000000000000000000000000000000000008152508361361a565b92915050565b6126de613971565b60078054839081106126ec57fe5b90600052602060002090600802016003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117405780601f1061171557610100808354040283529160200191611740565b61276e613971565b600780548390811061277c57fe5b90600052602060002090600802016006018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117405780601f1061171557610100808354040283529160200191611740565b60045433600160a060020a0390811691161461281157600080fd5b6005805476ff0000000000000000000000000000000000000000000019169055565b61283b613971565b600780548390811061284957fe5b90600052602060002090600802016007018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117405780601f1061171557610100808354040283529160200191611740565b600854600160a060020a031681565b60045433600160a060020a03908116911614806128fd575060055433600160a060020a039081169116145b151561290857600080fd5b61291182612eae565b151561291c57600080fd5b8060078381548110151561292c57fe5b90600052602060002090600802016002019080516115dc929160200190613983565b60055460a060020a900460ff161561296557600080fd5b6125f33383612ecf565b600060208190529081526040902054600160a060020a031681565b600554760100000000000000000000000000000000000000000000900460ff1681565b60045433600160a060020a03908116911614806129d8575060055433600160a060020a039081169116145b15156129e357600080fd5b6129ec82612eae565b15156129f757600080fd5b80600783815481101515612a0757fe5b6000918252602090912060089091020180549115156101000261ff00199092169190911790555050565b6000806000806000600560159054906101000a900460ff16151515612a5557600080fd5b60055460a060020a900460ff161515612a6d57600080fd5b60008681526020819052604090205433600160a060020a0390811691161415612a9557600080fd5b612a9e33613223565b1515612aa957600080fd5b60008681526003602052604090205494503485901015612ac857600080fd5b674563918244f400008511612ae457605d935060c89250612bb7565b678ac7230489e800008511612b0057605d935060969250612bb7565b680168d28e3f002800008511612b1d57605d935060879250612bb7565b6801f399b1438a1000008511612b3a57605e9350607d9250612bb7565b68028c418afbbb5c00008511612b5757605e935060779250612bb7565b680332ca1b67940c00008511612b7457605f935060759250612bb7565b6803ad9b9f83ea4100008511612b9157605f935060739250612bb7565b680428028ec8f13300008511612bae57605f935060719250612bb7565b60609350606e92505b612bd86064612bcc878663ffffffff61375716565b9063ffffffff61378d16565b600087815260036020526040902055612bfc6064612bcc878763ffffffff61375716565b600087815260208190526040902054909250600160a060020a03908116915030168114612c5457600160a060020a03811682156108fc0283604051600060405180830381858888f193505050501515612c5457600080fd5b612c5f813388613231565b7e8201e7bcbf010c2c07de59d6e97cb7e3cf67a46125c49cbc89b9d2cde1f48f8686600360008a815260200190815260200160002054843360078c815481101515612ca657fe5b90600052602060002090600802016001016040518681526020810186905260408101859052600160a060020a0380851660608301528316608082015260c060a082018181528354600260001961010060018416150201909116049183018290529060e083019084908015612d5b5780601f10612d3057610100808354040283529160200191612d5b565b820191906000526020600020905b815481529060010190602001808311612d3e57829003601f168201915b505097505050505050505060405180910390a1505050505050565b6000600782815481101515612d8757fe5b6000918252602090912060089091020154610100900460ff1692915050565b60065460a060020a900460ff1681565b612dbe613971565b6007805483908110612dcc57fe5b90600052602060002090600802016004018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117405780601f1061171557610100808354040283529160200191611740565b60045433600160a060020a0390811691161480612e71575060055433600160a060020a039081169116145b1515612e7c57600080fd5b80600783815481101515612e8c57fe5b90600052602060002090600802016007019080516115dc929160200190613983565b60009081526020819052604090205430600160a060020a0390811691161490565b600090815260208190526040902054600160a060020a0390811691161490565b6000612ef9613a01565b6000612710612f06611494565b10612f1057600080fd5b610160604051908101604052808660ff1681526020016000151581526020018963ffffffff1681526020018763ffffffff1681526020018c8152602001602060405190810160405280600081525081526020018881526020016020604051908101604052806000815250815260200160206040519081016040528060008152508152602001602060405190810160405260008152815260200185905260078054919350600191808301612fc38382613a85565b600092835260209092208591600802018151815460ff191660ff91909116178155602082015181549015156101000261ff00199091161781556040820151815463ffffffff91909116620100000265ffffffff0000199091161781556060820151815463ffffffff9190911666010000000000000269ffffffff00000000000019909116178155608082015181600101908051613064929160200190613983565b5060a08201518160020190805161307f929160200190613983565b5060c08201518160030190805161309a929160200190613983565b5060e0820151816004019080516130b5929160200190613983565b50610100820151816005019080516130d1929160200190613983565b50610120820151816006019080516130ed929160200190613983565b5061014082015181600701908051613109929160200190613983565b50505003905063ffffffff8116811461312157600080fd5b807f9b2c63e473707556567cadc162b1c1e8ed0c0d2684032a847e7ed74cda7291da8c888d60405163ffffffff83166020820152600160a060020a038216604082015260608082528190810185818151815260200191508051906020019080838360005b8381101561319d578082015183820152602001613185565b50505050905090810190601f1680156131ca5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a260008181526003602052604081208a90556131f5908b83613231565b9a9950505050505050505050565b600090815260026020526040902054600160a060020a0391821691161490565b600160a060020a0316151590565b600160a060020a0382166000908152600160208190526040822080549091019055600780548390811061326057fe5b60009182526020808320600890920290910180549315156101000261ff00199094169390931790925582815290819052604090208054600160a060020a03808516600160a060020a0319909216919091179091558316156132f757600160a060020a03831660009081526001602090815260408083208054600019019055838352600290915290208054600160a060020a03191690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1505050565b613354613a01565b6000612710613361611494565b1061336b57600080fd5b63ffffffff8b168b1461337d57600080fd5b610160604051908101604052808660ff1681526020016000151581526020018963ffffffff1681526020018763ffffffff1681526020018b81526020016020604051908101604052806000815250815260200188815260200160206040519081016040528060008152508152602001602060405190810160405280600081525081526020016020604051908101604052600081528152602001859052600780549193506001918083016134308382613a85565b600092835260209092208591600802018151815460ff191660ff91909116178155602082015181549015156101000261ff00199091161781556040820151815463ffffffff91909116620100000265ffffffff0000199091161781556060820151815463ffffffff9190911666010000000000000269ffffffff000000000000199091161781556080820151816001019080516134d1929160200190613983565b5060a0820151816002019080516134ec929160200190613983565b5060c082015181600301908051613507929160200190613983565b5060e082015181600401908051613522929160200190613983565b506101008201518160050190805161353e929160200190613983565b506101208201518160060190805161355a929160200190613983565b5061014082015181600701908051613576929160200190613983565b5050500360008181526003602090815260408083208d9055600160a060020a0387168352600191829052822080549091019055600780549293509091839081106135bc57fe5b60009182526020808320600890920290910180549315156101000261ff001990941693909317909255918252819052604090208054600160a060020a03909316600160a060020a031990931692909217909155505050505050505050565b613622613971565b61362a613971565b613632613971565b61363a613971565b613642613971565b61364a613971565b600080613656896137a4565b965089955086945084518651016040518059106136705750595b818152601f19601f83011681016020016040529050935083925060009150600090505b85518110156136ec578581815181106136a857fe5b016020015160f860020a900460f860020a028383806001019450815181106136cc57fe5b906020010190600160f860020a031916908160001a905350600101613693565b5060005b84518110156137495784818151811061370557fe5b016020015160f860020a900460f860020a0283838060010194508151811061372957fe5b906020010190600160f860020a031916908160001a9053506001016136f0565b509098975050505050505050565b60008083151561376a5760009150613786565b5082820282848281151561377a57fe5b041461378257fe5b8091505b5092915050565b600080828481151561379b57fe5b04949350505050565b6137ac613971565b8160006137b8826137cb565b90506137c381613829565b949350505050565b60008115156137fb57507f3000000000000000000000000000000000000000000000000000000000000000613824565b60008211156138245761010081049050600a820660300160f860020a0217600a820491506137fb565b919050565b613831613971565b613839613971565b6000806000613846613971565b60206040518059106138555750595b818152601f19601f83011681016020016040529050945060009350600092505b60208310156138e8576008830260020a870291507fff000000000000000000000000000000000000000000000000000000000000008216156138dd57818585815181106138be57fe5b906020010190600160f860020a031916908160001a9053506001909301925b600190920191613875565b836040518059106138f65750595b818152601f19601f830116810160200160405290509050600092505b838310156139675784838151811061392657fe5b016020015160f860020a900460f860020a0281848151811061394457fe5b906020010190600160f860020a031916908160001a905350600190920191613912565b9695505050505050565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106139c457805160ff19168380011785556139f1565b828001600101855582156139f1579182015b828111156139f15782518255916020019190600101906139d6565b506139fd929150613ab1565b5090565b6101606040519081016040908152600080835260208301819052908201819052606082015260808101613a32613971565b8152602001613a3f613971565b8152602001613a4c613971565b8152602001613a59613971565b8152602001613a66613971565b8152602001613a73613971565b8152602001613a80613971565b905290565b8154818355818115116115dc576008028160080283600052602060002091820191016115dc9190613acb565b61148191905b808211156139fd5760008155600101613ab7565b61148191905b808211156139fd57805469ffffffffffffffffffff191681556000613af96001830182613b56565b613b07600283016000613b56565b613b15600383016000613b56565b613b23600483016000613b56565b613b31600583016000613b56565b613b3f600683016000613b56565b613b4d600783016000613b56565b50600801613ad1565b50805460018160011615610100020316600290046000825580601f10613b7c5750611b73565b601f016020900490600052602060002090810190611b739190613ab15600a165627a7a723058201ac725bf589917ae019613eb109df68d343d3967e911d88e4d772933b1a019070029

Deployed Bytecode

0x60606040526004361061030b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306d91eea811461031057806306f33ae21461051f57806306fdde031461053d578063095ea7b3146105c75780630a0f8168146105e95780631051db341461061857806312cacbb51461063f57806318160ddd146106525780631d017b28146106775780631d8b4dd11461069657806323b872dd1461078c57806327d7874c146107b45780632ba73c15146107d35780632f0ddcb2146107f257806334c2b620146108085780633f4ba83a1461081e5780634777c1f4146108315780635c975abb1461084a57806362133a6c1461085d5780636352211e1461087357806363bd1d4a146108895780636af04a571461089c5780636d25ba1d146108af5780636f7a6b8b1461090557806370a082311461091b578063715879881461093a578063798ce54f146109595780637be5b5ae1461096f5780637dc45e27146109935780637f78636a146109e95780637ffc0712146109fc57806381bc365714610a285780638456cb5914610b2e5780638462151c14610b415780638bfff5a014610bb35780638f8db73714610bd157806395d89b4114610bdc578063a594056f14610bef578063a715df5814610c1e578063a9059cbb14610c74578063ad50039f14610c96578063afe1d4cf14610cec578063b047fb5014610d42578063b2e6ceeb14610d55578063b3ef774b14610d6b578063b629d74114610d81578063b8a2511914610da3578063b9186d7d14610dbb578063bd62104214610dd1578063bf8edd8514610df0578063c87b56dd14610e09578063cbe7a15014610e1f578063ccdaeab014610e35578063d19b99b514610e4b578063d6c5d82314610e5e578063daa17f4914610e74578063e12925a914610e87578063e2f77ae214610edd578063e545110314610efc578063e780444414610f12578063e785daaf14610f25578063efef39a114610f40578063f13b68e814610f4b578063f36a1fd914610f61578063f4ae0d2f14610f74578063f6e5e29814610f8a575b600080fd5b341561031b57600080fd5b610326600435610fe0565b60405160ff8b168152891515602082015263ffffffff808a166040830152881660608201526101008101839052600160a060020a038216610120820152610140608082018181529060a083019060c084019060e085019085018b818151815260200191508051906020019080838360005b838110156103af578082015183820152602001610397565b50505050905090810190601f1680156103dc5780820380516001836020036101000a031916815260200191505b5085810384528a818151815260200191508051906020019080838360005b838110156104125780820151838201526020016103fa565b50505050905090810190601f16801561043f5780820380516001836020036101000a031916815260200191505b50858103835289818151815260200191508051906020019080838360005b8381101561047557808201518382015260200161045d565b50505050905090810190601f1680156104a25780820380516001836020036101000a031916815260200191505b50858103825288818151815260200191508051906020019080838360005b838110156104d85780820151838201526020016104c0565b50505050905090810190601f1680156105055780820380516001836020036101000a031916815260200191505b509e50505050505050505050505050505060405180910390f35b341561052a57600080fd5b61053b60043560ff60243516611336565b005b341561054857600080fd5b6105506113b6565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561058c578082015183820152602001610574565b50505050905090810190601f1680156105b95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156105d257600080fd5b61053b600160a060020a03600435166024356113f7565b34156105f457600080fd5b6105fc61146f565b604051600160a060020a03909116815260200160405180910390f35b341561062357600080fd5b61062b61147e565b604051901515815260200160405180910390f35b341561064a57600080fd5b61062b611484565b341561065d57600080fd5b610665611494565b60405190815260200160405180910390f35b341561068257600080fd5b61053b60043563ffffffff6024351661149a565b34156106a157600080fd5b61066560046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949686359660208082013563ffffffff169750919550606081019450604090810135860180830194503592508291601f8301819004810201905190810160405281815292919060208401838380828437509496863563ffffffff169660208082013560ff169750919550606081019450604090810135860180830194503592508291601f83018190048102019051908101604052818152929190602084018383808284375094965061152795505050505050565b341561079757600080fd5b61053b600160a060020a036004358116906024351660443561157c565b34156107bf57600080fd5b61053b600160a060020a03600435166115e1565b34156107de57600080fd5b61053b600160a060020a0360043516611633565b34156107fd57600080fd5b610550600435611685565b341561081357600080fd5b61055060043561174c565b341561082957600080fd5b61053b6117dc565b341561083c57600080fd5b61053b600435602435611830565b341561085557600080fd5b61062b61188c565b341561086857600080fd5b61055060043561189c565b341561087e57600080fd5b6105fc60043561192c565b341561089457600080fd5b61053b611947565b34156108a757600080fd5b6105fc6119b8565b34156108ba57600080fd5b61053b600480359060446024803590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506119c795505050505050565b341561091057600080fd5b6105fc600435611a2f565b341561092657600080fd5b610665600160a060020a0360043516611a4a565b341561094557600080fd5b61053b600160a060020a0360043516611a65565b341561096457600080fd5b61053b600435611af3565b341561097a57600080fd5b61053b6004351515600160a060020a0360243516611b76565b341561099e57600080fd5b61053b600480359060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611be195505050505050565b34156109f457600080fd5b610550611c49565b3415610a0757600080fd5b610a12600435611ca9565b60405160ff909116815260200160405180910390f35b3415610a3357600080fd5b61053b600480359060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949686359660208082013563ffffffff169750919550606081019450604090810135860180830194503592508291601f8301819004810201905190810160405281815292919060208401838380828437509496863563ffffffff169660208082013560ff169750919550606081019450604090810135860180830194503592508291601f83018190048102019051908101604052818152929190602084018383808284375094965050509235600160a060020a03169250611cd4915050565b3415610b3957600080fd5b61053b611d51565b3415610b4c57600080fd5b610b60600160a060020a0360043516611daa565b60405160208082528190810183818151815260200191508051906020019060200280838360005b83811015610b9f578082015183820152602001610b87565b505050509050019250505060405180910390f35b3415610bbe57600080fd5b61053b6004356024351515604435611e8b565b61053b600435611ef7565b3415610be757600080fd5b610550612107565b3415610bfa57600080fd5b610c05600435612148565b60405163ffffffff909116815260200160405180910390f35b3415610c2957600080fd5b61053b600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061217c95505050505050565b3415610c7f57600080fd5b61053b600160a060020a03600435166024356121f8565b3415610ca157600080fd5b61053b600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061224795505050505050565b3415610cf757600080fd5b61053b600480359060446024803590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506122af95505050505050565b3415610d4d57600080fd5b6105fc612317565b3415610d6057600080fd5b61053b600435612326565b3415610d7657600080fd5b610c05600435612389565b3415610d8c57600080fd5b61053b600160a060020a03600435166024356123c1565b3415610dae57600080fd5b61053b6004351515612558565b3415610dc657600080fd5b6106656004356125a2565b3415610ddc57600080fd5b61053b60043563ffffffff602435166125b4565b3415610dfb57600080fd5b61053b600435602435612641565b3415610e1457600080fd5b610550600435612662565b3415610e2a57600080fd5b6105506004356126d6565b3415610e4057600080fd5b610550600435612766565b3415610e5657600080fd5b61053b6127f6565b3415610e6957600080fd5b610550600435612833565b3415610e7f57600080fd5b6105fc6128c3565b3415610e9257600080fd5b61053b600480359060446024803590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506128d295505050505050565b3415610ee857600080fd5b61053b60043563ffffffff6024351661294e565b3415610f0757600080fd5b6105fc60043561296f565b3415610f1d57600080fd5b61062b61298a565b3415610f3057600080fd5b61053b60043560243515156129ad565b61053b600435612a31565b3415610f5657600080fd5b61062b600435612d76565b3415610f6c57600080fd5b61062b612da6565b3415610f7f57600080fd5b610550600435612db6565b3415610f9557600080fd5b61053b600480359060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650612e4695505050505050565b600080600080610fee613971565b610ff6613971565b610ffe613971565b611006613971565b600080600060078c81548110151561101a57fe5b906000526020600020906008020190508060000160009054906101000a900460ff169a508060000160019054906101000a900460ff1699508060000160029054906101000a900463ffffffff1698508060000160069054906101000a900463ffffffff169750806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111185780601f106110ed57610100808354040283529160200191611118565b820191906000526020600020905b8154815290600101906020018083116110fb57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111b75780601f1061118c576101008083540402835291602001916111b7565b820191906000526020600020905b81548152906001019060200180831161119a57829003601f168201915b50505050509550806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112565780601f1061122b57610100808354040283529160200191611256565b820191906000526020600020905b81548152906001019060200180831161123957829003601f168201915b50505050509450806007018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112f55780601f106112ca576101008083540402835291602001916112f5565b820191906000526020600020905b8154815290600101906020018083116112d857829003601f168201915b50505060009e8f525050600360209081526040808f2054918f9052909d20549b9d9a9c999b989a979996989597909695600160a060020a0316945092505050565b60045433600160a060020a0390811691161480611361575060055433600160a060020a039081169116145b151561136c57600080fd5b61137582612eae565b151561138057600080fd5b8060078381548110151561139057fe5b60009182526020909120600890910201805460ff191660ff929092169190911790555050565b6113be613971565b60408051908101604052600a81527f45786f506c616e657473000000000000000000000000000000000000000000006020820152919050565b6114013382612ecf565b151561140c57600080fd5b600081815260026020526040908190208054600160a060020a031916600160a060020a03858116918217909255839290913316907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925905160405180910390a45050565b600454600160a060020a031681565b60015b90565b60055460a060020a900460ff1681565b60075490565b60045433600160a060020a03908116911614806114c5575060055433600160a060020a039081169116145b15156114d057600080fd5b6114d982612eae565b15156114e457600080fd5b806007838154811015156114f457fe5b906000526020600020906008020160000160066101000a81548163ffffffff021916908363ffffffff1602179055505050565b60045460009033600160a060020a0390811691161480611555575060055433600160a060020a039081169116145b151561156057600080fd5b6115708830898989898989612eef565b98975050505050505050565b60055460a860020a900460ff161561159357600080fd5b61159d8382612ecf565b15156115a857600080fd5b6115b23382613203565b15156115bd57600080fd5b6115c682613223565b15156115d157600080fd5b6115dc838383613231565b505050565b60045433600160a060020a039081169116146115fc57600080fd5b600160a060020a038116151561161157600080fd5b60048054600160a060020a031916600160a060020a0392909216919091179055565b60045433600160a060020a0390811691161461164e57600080fd5b600160a060020a038116151561166357600080fd5b60058054600160a060020a031916600160a060020a0392909216919091179055565b61168d613971565b600780548390811061169b57fe5b90600052602060002090600802016005018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117405780601f1061171557610100808354040283529160200191611740565b820191906000526020600020905b81548152906001019060200180831161172357829003601f168201915b50505050509050919050565b611754613971565b600780548390811061176257fe5b90600052602060002090600802016002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117405780601f1061171557610100808354040283529160200191611740565b60045433600160a060020a039081169116146117f757600080fd5b60055460a860020a900460ff16151561180f57600080fd5b6005805475ff00000000000000000000000000000000000000000019169055565b60045433600160a060020a039081169116148061185b575060055433600160a060020a039081169116145b151561186657600080fd5b61186f82612eae565b151561187a57600080fd5b60009182526003602052604090912055565b60055460a860020a900460ff1681565b6118a4613971565b60078054839081106118b257fe5b90600052602060002090600802016001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117405780601f1061171557610100808354040283529160200191611740565b600090815260208190526040902054600160a060020a031690565b60045433600160a060020a0390811691161480611972575060055433600160a060020a039081169116145b151561197d57600080fd5b600454600160a060020a039081169030163180156108fc0290604051600060405180830381858888f1935050505015156119b657600080fd5b565b600654600160a060020a031681565b60085433600160a060020a03908116911614806119f2575060045433600160a060020a039081169116145b15156119fd57600080fd5b80600783815481101515611a0d57fe5b90600052602060002090600802016004019080516115dc929160200190613983565b600260205260009081526040902054600160a060020a031681565b600160a060020a031660009081526001602052604090205490565b60045433600160a060020a03908116911614611a8057600080fd5b60055460a860020a900460ff161515611a9857600080fd5b60068054600160a060020a031916600160a060020a0383161790557f450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa44619930581604051600160a060020a03909116815260200160405180910390a150565b60045433600160a060020a0390811691161480611b1e575060055433600160a060020a039081169116145b1515611b2957600080fd5b600160a060020a03301631811115611b4057600080fd5b600454600160a060020a031681156108fc0282604051600060405180830381858888f193505050501515611b7357600080fd5b50565b60045433600160a060020a03908116911614611b9157600080fd5b6006805474ff0000000000000000000000000000000000000000191660a060020a931515939093029290921790915560088054600160a060020a031916600160a060020a03909216919091179055565b60045433600160a060020a0390811691161480611c0c575060055433600160a060020a039081169116145b1515611c1757600080fd5b80600783815481101515611c2757fe5b90600052602060002090600802016003019080516115dc929160200190613983565b606060405190810160405280602681526020017f68747470733a2f2f65786f706c616e6574732e696f2f6d657461646174612f7081526020017f6c616e65745f000000000000000000000000000000000000000000000000000081525081565b6000600782815481101515611cba57fe5b600091825260209091206008909102015460ff1692915050565b60045433600160a060020a0390811691161480611cff575060055433600160a060020a039081169116145b1515611d0a57600080fd5b600554760100000000000000000000000000000000000000000000900460ff161515611d3557600080fd5b611d4689898989898989898961334c565b505050505050505050565b60045433600160a060020a03908116911614611d6c57600080fd5b60055460a860020a900460ff1615611d8357600080fd5b6005805475ff000000000000000000000000000000000000000000191660a860020a179055565b611db2613971565b6000611dbc613971565b6000806000611dca87611a4a565b9450841515611dfa576000604051805910611de25750595b90808252806020026020018201604052509550611e81565b84604051805910611e085750595b90808252806020026020018201604052509350611e23611494565b925060009150600090505b828111611e7d57600081815260208190526040902054600160a060020a0388811691161415611e755780848381518110611e6457fe5b602090810290910101526001909101905b600101611e2e565b8395505b5050505050919050565b60055460a060020a900460ff1615611ea257600080fd5b611eac3384612ecf565b1515611eb757600080fd5b81600784815481101515611ec757fe5b6000918252602090912060089091020180549115156101000261ff00199092169190911790556115dc8382612641565b600554600090819060a860020a900460ff1615611f1357600080fd5b60055460a060020a900460ff1615611f2a57600080fd5b60065460a060020a900460ff161515611f4257600080fd5b6007805484908110611f5057fe5b6000918252602090912060089091020154610100900460ff161515611f7457600080fd5b60008381526003602052604090205491503482901015611f9357600080fd5b50600082815260208190526040902054600160a060020a039081169030168114611fe857600160a060020a03811682156108fc0283604051600060405180830381858888f193505050501515611fe857600080fd5b611ff3813385613231565b7e8201e7bcbf010c2c07de59d6e97cb7e3cf67a46125c49cbc89b9d2cde1f48f83836003600087815260200190815260200160002054843360078981548110151561203a57fe5b90600052602060002090600802016001016040518681526020810186905260408101859052600160a060020a0380851660608301528316608082015260c060a082018181528354600260001961010060018416150201909116049183018290529060e0830190849080156120ef5780601f106120c4576101008083540402835291602001916120ef565b820191906000526020600020905b8154815290600101906020018083116120d257829003601f168201915b505097505050505050505060405180910390a1505050565b61210f613971565b60408051908101604052600381527f58504c00000000000000000000000000000000000000000000000000000000006020820152919050565b600060078281548110151561215957fe5b600091825260209091206008909102015462010000900463ffffffff1692915050565b60045433600160a060020a03908116911614806121a7575060055433600160a060020a039081169116145b15156121b257600080fd5b6121bb82612eae565b15156121c657600080fd5b806007838154811015156121d657fe5b90600052602060002090600802016001019080516115dc929160200190613983565b60055460a860020a900460ff161561220f57600080fd5b6122193382612ecf565b151561222457600080fd5b61222d82613223565b151561223857600080fd5b612243338383613231565b5050565b60085433600160a060020a0390811691161480612272575060045433600160a060020a039081169116145b151561227d57600080fd5b8060078381548110151561228d57fe5b90600052602060002090600802016005019080516115dc929160200190613983565b60085433600160a060020a03908116911614806122da575060045433600160a060020a039081169116145b15156122e557600080fd5b806007838154811015156122f557fe5b90600052602060002090600802016006019080516115dc929160200190613983565b600554600160a060020a031681565b60055460a860020a900460ff161561233d57600080fd5b61234633613223565b151561235157600080fd5b61235b3382613203565b151561236657600080fd5b600081815260208190526040902054611b7390600160a060020a03163383613231565b600060078281548110151561239a57fe5b60009182526020909120600890910201546601000000000000900463ffffffff1692915050565b60045433600160a060020a03908116911614806123ec575060055433600160a060020a039081169116145b15156123f757600080fd5b61240081612eae565b151561240b57600080fd5b600160a060020a038216151561242057600080fd5b60008181526020819052604090205461244390600160a060020a03168383613231565b600081815260036020526040902054600780547e8201e7bcbf010c2c07de59d6e97cb7e3cf67a46125c49cbc89b9d2cde1f48f9284929091829130918891908690811061248c57fe5b90600052602060002090600802016001016040518681526020810186905260408101859052600160a060020a0380851660608301528316608082015260c060a082018181528354600260001961010060018416150201909116049183018290529060e0830190849080156125415780601f1061251657610100808354040283529160200191612541565b820191906000526020600020905b81548152906001019060200180831161252457829003601f168201915b505097505050505050505060405180910390a15050565b60045433600160a060020a0390811691161461257357600080fd5b6005805491151560a060020a0274ff000000000000000000000000000000000000000019909216919091179055565b60009081526003602052604090205490565b60045433600160a060020a03908116911614806125df575060055433600160a060020a039081169116145b15156125ea57600080fd5b6125f382612eae565b15156125fe57600080fd5b8060078381548110151561260e57fe5b906000526020600020906008020160000160026101000a81548163ffffffff021916908363ffffffff1602179055505050565b60055460a060020a900460ff161561265857600080fd5b61186f3383612ecf565b61266a613971565b6126d0606060405190810160405280602681526020017f68747470733a2f2f65786f706c616e6574732e696f2f6d657461646174612f7081526020017f6c616e65745f00000000000000000000000000000000000000000000000000008152508361361a565b92915050565b6126de613971565b60078054839081106126ec57fe5b90600052602060002090600802016003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117405780601f1061171557610100808354040283529160200191611740565b61276e613971565b600780548390811061277c57fe5b90600052602060002090600802016006018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117405780601f1061171557610100808354040283529160200191611740565b60045433600160a060020a0390811691161461281157600080fd5b6005805476ff0000000000000000000000000000000000000000000019169055565b61283b613971565b600780548390811061284957fe5b90600052602060002090600802016007018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117405780601f1061171557610100808354040283529160200191611740565b600854600160a060020a031681565b60045433600160a060020a03908116911614806128fd575060055433600160a060020a039081169116145b151561290857600080fd5b61291182612eae565b151561291c57600080fd5b8060078381548110151561292c57fe5b90600052602060002090600802016002019080516115dc929160200190613983565b60055460a060020a900460ff161561296557600080fd5b6125f33383612ecf565b600060208190529081526040902054600160a060020a031681565b600554760100000000000000000000000000000000000000000000900460ff1681565b60045433600160a060020a03908116911614806129d8575060055433600160a060020a039081169116145b15156129e357600080fd5b6129ec82612eae565b15156129f757600080fd5b80600783815481101515612a0757fe5b6000918252602090912060089091020180549115156101000261ff00199092169190911790555050565b6000806000806000600560159054906101000a900460ff16151515612a5557600080fd5b60055460a060020a900460ff161515612a6d57600080fd5b60008681526020819052604090205433600160a060020a0390811691161415612a9557600080fd5b612a9e33613223565b1515612aa957600080fd5b60008681526003602052604090205494503485901015612ac857600080fd5b674563918244f400008511612ae457605d935060c89250612bb7565b678ac7230489e800008511612b0057605d935060969250612bb7565b680168d28e3f002800008511612b1d57605d935060879250612bb7565b6801f399b1438a1000008511612b3a57605e9350607d9250612bb7565b68028c418afbbb5c00008511612b5757605e935060779250612bb7565b680332ca1b67940c00008511612b7457605f935060759250612bb7565b6803ad9b9f83ea4100008511612b9157605f935060739250612bb7565b680428028ec8f13300008511612bae57605f935060719250612bb7565b60609350606e92505b612bd86064612bcc878663ffffffff61375716565b9063ffffffff61378d16565b600087815260036020526040902055612bfc6064612bcc878763ffffffff61375716565b600087815260208190526040902054909250600160a060020a03908116915030168114612c5457600160a060020a03811682156108fc0283604051600060405180830381858888f193505050501515612c5457600080fd5b612c5f813388613231565b7e8201e7bcbf010c2c07de59d6e97cb7e3cf67a46125c49cbc89b9d2cde1f48f8686600360008a815260200190815260200160002054843360078c815481101515612ca657fe5b90600052602060002090600802016001016040518681526020810186905260408101859052600160a060020a0380851660608301528316608082015260c060a082018181528354600260001961010060018416150201909116049183018290529060e083019084908015612d5b5780601f10612d3057610100808354040283529160200191612d5b565b820191906000526020600020905b815481529060010190602001808311612d3e57829003601f168201915b505097505050505050505060405180910390a1505050505050565b6000600782815481101515612d8757fe5b6000918252602090912060089091020154610100900460ff1692915050565b60065460a060020a900460ff1681565b612dbe613971565b6007805483908110612dcc57fe5b90600052602060002090600802016004018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117405780601f1061171557610100808354040283529160200191611740565b60045433600160a060020a0390811691161480612e71575060055433600160a060020a039081169116145b1515612e7c57600080fd5b80600783815481101515612e8c57fe5b90600052602060002090600802016007019080516115dc929160200190613983565b60009081526020819052604090205430600160a060020a0390811691161490565b600090815260208190526040902054600160a060020a0390811691161490565b6000612ef9613a01565b6000612710612f06611494565b10612f1057600080fd5b610160604051908101604052808660ff1681526020016000151581526020018963ffffffff1681526020018763ffffffff1681526020018c8152602001602060405190810160405280600081525081526020018881526020016020604051908101604052806000815250815260200160206040519081016040528060008152508152602001602060405190810160405260008152815260200185905260078054919350600191808301612fc38382613a85565b600092835260209092208591600802018151815460ff191660ff91909116178155602082015181549015156101000261ff00199091161781556040820151815463ffffffff91909116620100000265ffffffff0000199091161781556060820151815463ffffffff9190911666010000000000000269ffffffff00000000000019909116178155608082015181600101908051613064929160200190613983565b5060a08201518160020190805161307f929160200190613983565b5060c08201518160030190805161309a929160200190613983565b5060e0820151816004019080516130b5929160200190613983565b50610100820151816005019080516130d1929160200190613983565b50610120820151816006019080516130ed929160200190613983565b5061014082015181600701908051613109929160200190613983565b50505003905063ffffffff8116811461312157600080fd5b807f9b2c63e473707556567cadc162b1c1e8ed0c0d2684032a847e7ed74cda7291da8c888d60405163ffffffff83166020820152600160a060020a038216604082015260608082528190810185818151815260200191508051906020019080838360005b8381101561319d578082015183820152602001613185565b50505050905090810190601f1680156131ca5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a260008181526003602052604081208a90556131f5908b83613231565b9a9950505050505050505050565b600090815260026020526040902054600160a060020a0391821691161490565b600160a060020a0316151590565b600160a060020a0382166000908152600160208190526040822080549091019055600780548390811061326057fe5b60009182526020808320600890920290910180549315156101000261ff00199094169390931790925582815290819052604090208054600160a060020a03808516600160a060020a0319909216919091179091558316156132f757600160a060020a03831660009081526001602090815260408083208054600019019055838352600290915290208054600160a060020a03191690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1505050565b613354613a01565b6000612710613361611494565b1061336b57600080fd5b63ffffffff8b168b1461337d57600080fd5b610160604051908101604052808660ff1681526020016000151581526020018963ffffffff1681526020018763ffffffff1681526020018b81526020016020604051908101604052806000815250815260200188815260200160206040519081016040528060008152508152602001602060405190810160405280600081525081526020016020604051908101604052600081528152602001859052600780549193506001918083016134308382613a85565b600092835260209092208591600802018151815460ff191660ff91909116178155602082015181549015156101000261ff00199091161781556040820151815463ffffffff91909116620100000265ffffffff0000199091161781556060820151815463ffffffff9190911666010000000000000269ffffffff000000000000199091161781556080820151816001019080516134d1929160200190613983565b5060a0820151816002019080516134ec929160200190613983565b5060c082015181600301908051613507929160200190613983565b5060e082015181600401908051613522929160200190613983565b506101008201518160050190805161353e929160200190613983565b506101208201518160060190805161355a929160200190613983565b5061014082015181600701908051613576929160200190613983565b5050500360008181526003602090815260408083208d9055600160a060020a0387168352600191829052822080549091019055600780549293509091839081106135bc57fe5b60009182526020808320600890920290910180549315156101000261ff001990941693909317909255918252819052604090208054600160a060020a03909316600160a060020a031990931692909217909155505050505050505050565b613622613971565b61362a613971565b613632613971565b61363a613971565b613642613971565b61364a613971565b600080613656896137a4565b965089955086945084518651016040518059106136705750595b818152601f19601f83011681016020016040529050935083925060009150600090505b85518110156136ec578581815181106136a857fe5b016020015160f860020a900460f860020a028383806001019450815181106136cc57fe5b906020010190600160f860020a031916908160001a905350600101613693565b5060005b84518110156137495784818151811061370557fe5b016020015160f860020a900460f860020a0283838060010194508151811061372957fe5b906020010190600160f860020a031916908160001a9053506001016136f0565b509098975050505050505050565b60008083151561376a5760009150613786565b5082820282848281151561377a57fe5b041461378257fe5b8091505b5092915050565b600080828481151561379b57fe5b04949350505050565b6137ac613971565b8160006137b8826137cb565b90506137c381613829565b949350505050565b60008115156137fb57507f3000000000000000000000000000000000000000000000000000000000000000613824565b60008211156138245761010081049050600a820660300160f860020a0217600a820491506137fb565b919050565b613831613971565b613839613971565b6000806000613846613971565b60206040518059106138555750595b818152601f19601f83011681016020016040529050945060009350600092505b60208310156138e8576008830260020a870291507fff000000000000000000000000000000000000000000000000000000000000008216156138dd57818585815181106138be57fe5b906020010190600160f860020a031916908160001a9053506001909301925b600190920191613875565b836040518059106138f65750595b818152601f19601f830116810160200160405290509050600092505b838310156139675784838151811061392657fe5b016020015160f860020a900460f860020a0281848151811061394457fe5b906020010190600160f860020a031916908160001a905350600190920191613912565b9695505050505050565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106139c457805160ff19168380011785556139f1565b828001600101855582156139f1579182015b828111156139f15782518255916020019190600101906139d6565b506139fd929150613ab1565b5090565b6101606040519081016040908152600080835260208301819052908201819052606082015260808101613a32613971565b8152602001613a3f613971565b8152602001613a4c613971565b8152602001613a59613971565b8152602001613a66613971565b8152602001613a73613971565b8152602001613a80613971565b905290565b8154818355818115116115dc576008028160080283600052602060002091820191016115dc9190613acb565b61148191905b808211156139fd5760008155600101613ab7565b61148191905b808211156139fd57805469ffffffffffffffffffff191681556000613af96001830182613b56565b613b07600283016000613b56565b613b15600383016000613b56565b613b23600483016000613b56565b613b31600583016000613b56565b613b3f600683016000613b56565b613b4d600783016000613b56565b50600801613ad1565b50805460018160011615610100020316600290046000825580601f10613b7c5750611b73565b601f016020900490600052602060002090810190611b739190613ab15600a165627a7a723058201ac725bf589917ae019613eb109df68d343d3967e911d88e4d772933b1a019070029

Swarm Source

bzzr://1ac725bf589917ae019613eb109df68d343d3967e911d88e4d772933b1a01907
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.