ETH Price: $2,710.75 (+2.90%)

Token

(0x19b369f69bc5bd6aadc4d30c179c8ac5ae6cbae0)
 

Overview

Max Total Supply

10,000,000,000 ERC-20 TOKEN*

Holders

1

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
0 ERC-20 TOKEN*

Value
$0.00
0xbbb147468078b23303bb8644c54f0b4a575d52d4
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
EarnEveryDay_255

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

pragma solidity ^0.4.25;

/**
*
* ETH CRYPTOCURRENCY DISTRIBUTION PROJECT
* Web              - https://255eth.club
* Our partners telegram_channel - https://t.me/invest_to_smartcontract
* EN  Telegram_chat: https://t.me/club_255eth_en
* RU  Telegram_chat: https://t.me/club_255eth_ru
* Email:             mailto:support(at sign)255eth.club
* 
*  - GAIN 2,55% PER 24 HOURS (every 5900 blocks)
*  - Life-long payments
*  - The revolutionary reliability
*  - Minimal contribution 0.01 eth
*  - Currency and payment - ETH
*  - Contribution allocation schemes:
*    -- 90% payments
*    -- 5% Referral program (3% first level, 2% second level)
*    -- 5% (4% Marketing, 1% Operating Expenses)
* 
*  - Referral will be rewarded
*    -- Your referral will receive 3% of his first investment to deposit.
* 
*  - HOW TO GET MORE INCOME?
*    -- Marathon "The Best Investor"
*       Current winner becomes common referrer for investors without 
*       referrer and get a lump sum of 3% of their deposits. 
*       To become winner you must invest more than previous winner.
*       
*       How to check: see bestInvestorInfo in the contract
* 
*    -- Marathon "The Best Promoter"
*       Current winner becomes common referrer for investors without 
*       referrer and get a lump sum of 2% of their deposits. 
*       To become winner you must invite more than previous winner.
*
*       How to check: see bestPromouterInfo in the contract
* 
*    -- Send advertise tokens with contract method massAdvertiseTransfer or transfer 
*       and get 1% from first investments of invited wallets.
*       Advertise tokens free for all but you will pay gas fee for call methods.
*
*   ---About the Project
*  Blockchain-enabled smart contracts have opened a new era of trustless relationships without 
*  intermediaries. This technology opens incredible financial possibilities. Our automated investment 
*  distribution model is written into a smart contract, uploaded to the Ethereum blockchain and can be 
*  freely accessed online. In order to insure our investors' complete security, full control over the 
*  project has been transferred from the organizers to the smart contract: nobody can influence the 
*  system's permanent autonomous functioning.
* 
* ---How to use:
*  1. Send from ETH wallet to the smart contract address 0x19b369f69bc5bd6aadc4d30c179c8ac5ae6cbae0
*     any amount from 0.01 ETH.
*  2. Verify your transaction in the history of your application or etherscan.io, specifying the address 
*     of your wallet.
*  3a. Claim your profit by sending 0 ether transaction (every day, every week, i don't care unless you're 
*      spending too much on GAS). But not early then 24 hours from last time claim or invest.
*  OR
*  3b. For reinvest, you need to first remove the accumulated percentage of charges (by sending 0 ether 
*      transaction), and only after that, deposit the amount that you want to reinvest.
*  
* RECOMMENDED GAS LIMIT: 350000
* RECOMMENDED GAS PRICE: https://ethgasstation.info/
* You can check the payments on the etherscan.io site, in the "Internal Txns" tab of your wallet.
*
* ---It is not allowed to transfer from exchanges, only from your personal ETH wallet, for which you 
* have private keys.
* 
* Contracts reviewed and approved by pros!
* 
* Main contract - Revolution. Scroll down to find it.
*/


contract InvestorsStorage {
  struct investor {
    uint keyIndex;
    uint value;
    uint paymentTime;
    uint refs;
    uint refBonus;
  }
  struct bestAddress {
      uint value;
      address addr;
  }
  struct recordStats {
    uint investors;
    uint invested;
  }
  struct itmap {
    mapping(uint => recordStats) stats;
    mapping(address => investor) data;
    address[] keys;
    bestAddress bestInvestor;
    bestAddress bestPromouter;
  }
  itmap private s;
  
  address private owner;
  
  event LogBestInvestorChanged(address indexed addr, uint when, uint invested);
  event LogBestPromouterChanged(address indexed addr, uint when, uint refs);

  modifier onlyOwner() {
    require(msg.sender == owner, "access denied");
    _;
  }

  constructor() public {
    owner = msg.sender;
    s.keys.length++;
  }

  function insert(address addr, uint value) public onlyOwner returns (bool) {
    uint keyIndex = s.data[addr].keyIndex;
    if (keyIndex != 0) return false;
    s.data[addr].value = value;
    keyIndex = s.keys.length++;
    s.data[addr].keyIndex = keyIndex;
    s.keys[keyIndex] = addr;
    updateBestInvestor(addr, s.data[addr].value);
    
    return true;
  }

  function investorFullInfo(address addr) public view returns(uint, uint, uint, uint, uint) {
    return (
      s.data[addr].keyIndex,
      s.data[addr].value,
      s.data[addr].paymentTime,
      s.data[addr].refs,
      s.data[addr].refBonus
    );
  }

  function investorBaseInfo(address addr) public view returns(uint, uint, uint, uint) {
    return (
      s.data[addr].value,
      s.data[addr].paymentTime,
      s.data[addr].refs,
      s.data[addr].refBonus
    );
  }

  function investorShortInfo(address addr) public view returns(uint, uint) {
    return (
      s.data[addr].value,
      s.data[addr].refBonus
    );
  }

  function getBestInvestor() public view returns(uint, address) {
    return (
      s.bestInvestor.value,
      s.bestInvestor.addr
    );
  }
  
  function getBestPromouter() public view returns(uint, address) {
    return (
      s.bestPromouter.value,
      s.bestPromouter.addr
    );
  }

  function addRefBonus(address addr, uint refBonus) public onlyOwner returns (bool) {
    if (s.data[addr].keyIndex == 0) return false;
    s.data[addr].refBonus += refBonus;
    return true;
  }
  
  function addRefBonusWithRefs(address addr, uint refBonus) public onlyOwner returns (bool) {
    if (s.data[addr].keyIndex == 0) return false;
    s.data[addr].refBonus += refBonus;
    s.data[addr].refs++;
    updateBestPromouter(addr, s.data[addr].refs);
    
    return true;
  }

  function addValue(address addr, uint value) public onlyOwner returns (bool) {
    if (s.data[addr].keyIndex == 0) return false;
    s.data[addr].value += value;
    updateBestInvestor(addr, s.data[addr].value);
    
    return true;
  }
  
  function updateStats(uint dt, uint invested, uint investors) public {
    s.stats[dt].invested += invested;
    s.stats[dt].investors += investors;
  }
  
  function stats(uint dt) public view returns (uint invested, uint investors) {
    return ( 
      s.stats[dt].invested,
      s.stats[dt].investors
    );
  }
  
  function updateBestInvestor(address addr, uint investorValue) internal {
    if(investorValue > s.bestInvestor.value){
        s.bestInvestor.value = investorValue;
        s.bestInvestor.addr = addr;
        emit LogBestInvestorChanged(addr, now, s.bestInvestor.value);
    }      
  }
  
  function updateBestPromouter(address addr, uint investorRefs) internal {
    if(investorRefs > s.bestPromouter.value){
        s.bestPromouter.value = investorRefs;
        s.bestPromouter.addr = addr;
        emit LogBestPromouterChanged(addr, now, s.bestPromouter.value);
    }      
  }

  function setPaymentTime(address addr, uint paymentTime) public onlyOwner returns (bool) {
    if (s.data[addr].keyIndex == 0) return false;
    s.data[addr].paymentTime = paymentTime;
    return true;
  }

  function setRefBonus(address addr, uint refBonus) public onlyOwner returns (bool) {
    if (s.data[addr].keyIndex == 0) return false;
    s.data[addr].refBonus = refBonus;
    return true;
  }

  function keyFromIndex(uint i) public view returns (address) {
    return s.keys[i];
  }

  function contains(address addr) public view returns (bool) {
    return s.data[addr].keyIndex > 0;
  }

  function size() public view returns (uint) {
    return s.keys.length;
  }

  function iterStart() public pure returns (uint) {
    return 1;
  }
}


contract DT {
        struct DateTime {
                uint16 year;
                uint8 month;
                uint8 day;
                uint8 hour;
                uint8 minute;
                uint8 second;
                uint8 weekday;
        }

        uint private constant DAY_IN_SECONDS = 86400;
        uint private constant YEAR_IN_SECONDS = 31536000;
        uint private constant LEAP_YEAR_IN_SECONDS = 31622400;

        uint private constant HOUR_IN_SECONDS = 3600;
        uint private constant MINUTE_IN_SECONDS = 60;

        uint16 private constant ORIGIN_YEAR = 1970;

        function isLeapYear(uint16 year) internal pure returns (bool) {
                if (year % 4 != 0) {
                        return false;
                }
                if (year % 100 != 0) {
                        return true;
                }
                if (year % 400 != 0) {
                        return false;
                }
                return true;
        }

        function leapYearsBefore(uint year) internal pure returns (uint) {
                year -= 1;
                return year / 4 - year / 100 + year / 400;
        }

        function getDaysInMonth(uint8 month, uint16 year) internal pure returns (uint8) {
                if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
                        return 31;
                }
                else if (month == 4 || month == 6 || month == 9 || month == 11) {
                        return 30;
                }
                else if (isLeapYear(year)) {
                        return 29;
                }
                else {
                        return 28;
                }
        }

        function parseTimestamp(uint timestamp) internal pure returns (DateTime dt) {
                uint secondsAccountedFor = 0;
                uint buf;
                uint8 i;

                // Year
                dt.year = getYear(timestamp);
                buf = leapYearsBefore(dt.year) - leapYearsBefore(ORIGIN_YEAR);

                secondsAccountedFor += LEAP_YEAR_IN_SECONDS * buf;
                secondsAccountedFor += YEAR_IN_SECONDS * (dt.year - ORIGIN_YEAR - buf);

                // Month
                uint secondsInMonth;
                for (i = 1; i <= 12; i++) {
                        secondsInMonth = DAY_IN_SECONDS * getDaysInMonth(i, dt.year);
                        if (secondsInMonth + secondsAccountedFor > timestamp) {
                                dt.month = i;
                                break;
                        }
                        secondsAccountedFor += secondsInMonth;
                }

                // Day
                for (i = 1; i <= getDaysInMonth(dt.month, dt.year); i++) {
                        if (DAY_IN_SECONDS + secondsAccountedFor > timestamp) {
                                dt.day = i;
                                break;
                        }
                        secondsAccountedFor += DAY_IN_SECONDS;
                }
        }
        
        function getYear(uint timestamp) internal pure returns (uint16) {
                uint secondsAccountedFor = 0;
                uint16 year;
                uint numLeapYears;

                // Year
                year = uint16(ORIGIN_YEAR + timestamp / YEAR_IN_SECONDS);
                numLeapYears = leapYearsBefore(year) - leapYearsBefore(ORIGIN_YEAR);

                secondsAccountedFor += LEAP_YEAR_IN_SECONDS * numLeapYears;
                secondsAccountedFor += YEAR_IN_SECONDS * (year - ORIGIN_YEAR - numLeapYears);

                while (secondsAccountedFor > timestamp) {
                        if (isLeapYear(uint16(year - 1))) {
                                secondsAccountedFor -= LEAP_YEAR_IN_SECONDS;
                        }
                        else {
                                secondsAccountedFor -= YEAR_IN_SECONDS;
                        }
                        year -= 1;
                }
                return year;
        }

        function getMonth(uint timestamp) internal pure returns (uint8) {
                return parseTimestamp(timestamp).month;
        }

        function getDay(uint timestamp) internal pure returns (uint8) {
                return parseTimestamp(timestamp).day;
        }

}
/**
    ERC20 Token standart for contract advetising
**/
contract ERC20AdToken {
    using SafeMath for uint;
    using Zero for *;

    string public symbol;
    string public  name;
    uint8 public decimals = 0;
    uint256 public totalSupply;
    
    mapping (address => uint256) public balanceOf;
    mapping(address => address) public adtransfers;
    
    event Transfer(address indexed from, address indexed to, uint tokens);
    
    // ------------------------------------------------------------------------
    // Constructor
    // ------------------------------------------------------------------------
    constructor(string _symbol, string _name) public {
        symbol = _symbol;
        name = _name;
        balanceOf[this] = 10000000000;
        totalSupply = 10000000000;
        emit Transfer(address(0), this, 10000000000);
    }

    function transfer(address to, uint tokens) public returns (bool success) {
        //This method do not send anything. It is only notify blockchain that Advertise Token Transfered
        //You can call this method for advertise this contract and invite new investors and gain 1% from each first investments.
        if(!adtransfers[to].notZero()){
            adtransfers[to] = msg.sender;
            emit Transfer(this, to, tokens);
        }
        return true;
    }
    
    function massAdvertiseTransfer(address[] addresses, uint tokens) public returns (bool success) {
        for (uint i = 0; i < addresses.length; i++) {
            if(!adtransfers[addresses[i]].notZero()){
                adtransfers[addresses[i]] = msg.sender;
                emit Transfer(this, addresses[i], tokens);
            }
        }
        
        return true;
    }

    function () public payable {
        revert();
    }

}

contract EarnEveryDay_255 is ERC20AdToken, DT {
  using Percent for Percent.percent;
  using SafeMath for uint;
  using Zero for *;
  using ToAddress for *;
  using Convert for *;

  // investors storage - iterable map;
  InvestorsStorage private m_investors;
  mapping(address => address) private m_referrals;
  bool private m_nextWave;

  // automatically generates getters
  address public adminAddr;
  uint public waveStartup;
  uint public totalInvestments;
  uint public totalInvested;
  uint public constant minInvesment = 10 finney; // 0.01 eth
  uint public constant maxBalance = 255e5 ether; // 25,500,000 eth
  uint public constant dividendsPeriod = 24 hours; //24 hours

  // percents 
  Percent.percent private m_dividendsPercent = Percent.percent(255, 10000); // 255/10000*100% = 2.55%
  Percent.percent private m_adminPercent = Percent.percent(5, 100); // 5/100*100% = 5%
  Percent.percent private m_refPercent1 = Percent.percent(3, 100); // 3/100*100% = 3%
  Percent.percent private m_refPercent2 = Percent.percent(2, 100); // 2/100*100% = 2%
  Percent.percent private m_adBonus = Percent.percent(1, 100); // 1/100*100% = 1%

  // more events for easy read from blockchain
  event LogNewInvestor(address indexed addr, uint when, uint value);
  event LogNewInvesment(address indexed addr, uint when, uint value);
  event LogNewReferral(address indexed addr, uint when, uint value);
  event LogPayDividends(address indexed addr, uint when, uint value);
  event LogPayReferrerBonus(address indexed addr, uint when, uint value);
  event LogBalanceChanged(uint when, uint balance);
  event LogNextWave(uint when);

  modifier balanceChanged {
    _;
    emit LogBalanceChanged(now, address(this).balance);
  }

  constructor() ERC20AdToken("Earn 2.55% Every Day. https://255eth.club", 
                            "Send your ETH to this contract and earn 2.55% every day for Live-long. https://255eth.club") public {
    adminAddr = msg.sender;

    nextWave();
  }

  function() public payable {
    // investor get him dividends
    if (msg.value == 0) {
      getMyDividends();
      return;
    }

    // sender do invest
    address a = msg.data.toAddr();
    doInvest(a);
  }

  function investorsNumber() public view returns(uint) {
    return m_investors.size()-1;
    // -1 because see InvestorsStorage constructor where keys.length++ 
  }

  function balanceETH() public view returns(uint) {
    return address(this).balance;
  }

  function dividendsPercent() public view returns(uint numerator, uint denominator) {
    (numerator, denominator) = (m_dividendsPercent.num, m_dividendsPercent.den);
  }

  function adminPercent() public view returns(uint numerator, uint denominator) {
    (numerator, denominator) = (m_adminPercent.num, m_adminPercent.den);
  }

  function referrer1Percent() public view returns(uint numerator, uint denominator) {
    (numerator, denominator) = (m_refPercent1.num, m_refPercent1.den);
  }
  
  function referrer2Percent() public view returns(uint numerator, uint denominator) {
    (numerator, denominator) = (m_refPercent2.num, m_refPercent2.den);
  }
  
  function stats(uint date) public view returns(uint invested, uint investors) {
    (invested, investors) = m_investors.stats(date);
  }

  function investorInfo(address addr) public view returns(uint value, uint paymentTime, uint refsCount, uint refBonus, bool isReferral) {
    (value, paymentTime, refsCount, refBonus) = m_investors.investorBaseInfo(addr);
    isReferral = m_referrals[addr].notZero();
  }
  
  function bestInvestorInfo() public view returns(uint invested, address addr) {
    (invested, addr) = m_investors.getBestInvestor();
  }
  
  function bestPromouterInfo() public view returns(uint refs, address addr) {
    (refs, addr) = m_investors.getBestPromouter();
  }
  
  function _getMyDividents(bool withoutThrow) private {
    // check investor info
    InvestorsStorage.investor memory investor = getMemInvestor(msg.sender);
    if(investor.keyIndex <= 0){
        if(withoutThrow){
            return;
        }
        
        revert("sender is not investor");
    }

    // calculate days after latest payment
    uint256 daysAfter = now.sub(investor.paymentTime).div(dividendsPeriod);
    if(daysAfter <= 0){
        if(withoutThrow){
            return;
        }
        
        revert("the latest payment was earlier than dividents period");
    }
    assert(m_investors.setPaymentTime(msg.sender, now));

    // check enough eth 
    uint value = m_dividendsPercent.mul(investor.value) * daysAfter;
    if (address(this).balance < value + investor.refBonus) {
      nextWave();
      return;
    }

    // send dividends and ref bonus
    if (investor.refBonus > 0) {
      assert(m_investors.setRefBonus(msg.sender, 0));
      sendDividendsWithRefBonus(msg.sender, value, investor.refBonus);
    } else {
      sendDividends(msg.sender, value);
    }      
  }
  
  function getMyDividends() public balanceChanged {
    _getMyDividents(false);
  }

  function doInvest(address ref) public payable balanceChanged {
    require(msg.value >= minInvesment, "msg.value must be >= minInvesment");
    require(address(this).balance <= maxBalance, "the contract eth balance limit");

    uint value = msg.value;
    // ref system works only once for sender-referral
    if (!m_referrals[msg.sender].notZero()) {
      // level 1
      if (notZeroNotSender(ref) && m_investors.contains(ref)) {
        uint reward = m_refPercent1.mul(value);
        assert(m_investors.addRefBonusWithRefs(ref, reward)); // referrer 1 bonus
        m_referrals[msg.sender] = ref;
        value = m_dividendsPercent.add(value); // referral bonus
        emit LogNewReferral(msg.sender, now, value); 
        // level 2
        if (notZeroNotSender(m_referrals[ref]) && m_investors.contains(m_referrals[ref]) && ref != m_referrals[ref]) { 
          reward = m_refPercent2.mul(value);
          assert(m_investors.addRefBonus(m_referrals[ref], reward)); // referrer 2 bonus
        }
      }else{
        InvestorsStorage.bestAddress memory bestInvestor = getMemBestInvestor();
        InvestorsStorage.bestAddress memory bestPromouter = getMemBestPromouter();
        if(notZeroNotSender(bestInvestor.addr)){
          assert(m_investors.addRefBonus(bestInvestor.addr, m_refPercent1.mul(value) )); // referrer 1 bonus
          m_referrals[msg.sender] = bestInvestor.addr;
        }
        if(notZeroNotSender(bestPromouter.addr)){
          assert(m_investors.addRefBonus(bestPromouter.addr, m_refPercent2.mul(value) )); // referrer 2 bonus
          m_referrals[msg.sender] = bestPromouter.addr;
        }
      }
      
      if(notZeroNotSender(adtransfers[msg.sender]) && m_investors.contains(adtransfers[msg.sender])){
          assert(m_investors.addRefBonus(adtransfers[msg.sender], m_adBonus.mul(msg.value) )); // advertise transfer bonud
      }
    }

    _getMyDividents(true);

    // commission
    adminAddr.transfer(m_adminPercent.mul(msg.value));
    
    DT.DateTime memory dt = parseTimestamp(now);
    uint today = dt.year.uintToString().strConcat((dt.month<10 ? "0":""), dt.month.uintToString(), (dt.day<10 ? "0":""), dt.day.uintToString()).stringToUint();
    
    // write to investors storage
    if (m_investors.contains(msg.sender)) {
      assert(m_investors.addValue(msg.sender, value));
      m_investors.updateStats(today, value, 0);
    } else {
      assert(m_investors.insert(msg.sender, value));
      m_investors.updateStats(today, value, 1);
      emit LogNewInvestor(msg.sender, now, value); 
    }
    
    assert(m_investors.setPaymentTime(msg.sender, now));

    emit LogNewInvesment(msg.sender, now, value);   
    totalInvestments++;
    totalInvested += msg.value;
  }


  function getMemInvestor(address addr) internal view returns(InvestorsStorage.investor) {
    (uint a, uint b, uint c, uint d, uint e) = m_investors.investorFullInfo(addr);
    return InvestorsStorage.investor(a, b, c, d, e);
  }
  
  function getMemBestInvestor() internal view returns(InvestorsStorage.bestAddress) {
    (uint value, address addr) = m_investors.getBestInvestor();
    return InvestorsStorage.bestAddress(value, addr);
  }
  
  function getMemBestPromouter() internal view returns(InvestorsStorage.bestAddress) {
    (uint value, address addr) = m_investors.getBestPromouter();
    return InvestorsStorage.bestAddress(value, addr);
  }

  function notZeroNotSender(address addr) internal view returns(bool) {
    return addr.notZero() && addr != msg.sender;
  }

  function sendDividends(address addr, uint value) private {
    if (addr.send(value)) emit LogPayDividends(addr, now, value); 
  }

  function sendDividendsWithRefBonus(address addr, uint value,  uint refBonus) private {
    if (addr.send(value+refBonus)) {
      emit LogPayDividends(addr, now, value);
      emit LogPayReferrerBonus(addr, now, refBonus);
    }
  }

  function nextWave() private {
    m_investors = new InvestorsStorage();
    totalInvestments = 0;
    waveStartup = now;
    m_nextWave = false;
    emit LogNextWave(now);
  }
}


library SafeMath {
  function mul(uint256 _a, uint256 _b) internal pure returns (uint256) {
    // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
    if (_a == 0) {
      return 0;
    }

    uint256 c = _a * _b;
    require(c / _a == _b);

    return c;
  }

  function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
    require(_b > 0); // Solidity only automatically asserts when dividing by 0
    uint256 c = _a / _b;
    // assert(_a == _b * c + _a % _b); // There is no case in which this doesn't hold

    return c;
  }

  function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
    require(_b <= _a);
    uint256 c = _a - _b;

    return c;
  }

  function add(uint256 _a, uint256 _b) internal pure returns (uint256) {
    uint256 c = _a + _b;
    require(c >= _a);

    return c;
  }

  function mod(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b != 0);
    return a % b;
  }
}

library Percent {
  // Solidity automatically throws when dividing by 0
  struct percent {
    uint num;
    uint den;
  }
  function mul(percent storage p, uint a) internal view returns (uint) {
    if (a == 0) {
      return 0;
    }
    return a*p.num/p.den;
  }

  function div(percent storage p, uint a) internal view returns (uint) {
    return a/p.num*p.den;
  }

  function sub(percent storage p, uint a) internal view returns (uint) {
    uint b = mul(p, a);
    if (b >= a) return 0;
    return a - b;
  }

  function add(percent storage p, uint a) internal view returns (uint) {
    return a + mul(p, a);
  }
}

library Zero {
  function requireNotZero(uint a) internal pure {
    require(a != 0, "require not zero");
  }

  function requireNotZero(address addr) internal pure {
    require(addr != address(0), "require not zero address");
  }

  function notZero(address addr) internal pure returns(bool) {
    return !(addr == address(0));
  }

  function isZero(address addr) internal pure returns(bool) {
    return addr == address(0);
  }
}

library ToAddress {
  function toAddr(uint source) internal pure returns(address) {
    return address(source);
  }

  function toAddr(bytes source) internal pure returns(address addr) {
    assembly { addr := mload(add(source,0x14)) }
    return addr;
  }
}

library Convert {
    function stringToUint(string s) internal pure returns (uint) {
        bytes memory b = bytes(s);
        uint result = 0;
        for (uint i = 0; i < b.length; i++) { // c = b[i] was not needed
            if (b[i] >= 48 && b[i] <= 57) {
                result = result * 10 + (uint(b[i]) - 48); // bytes and int are not compatible with the operator -.
            }
        }
        return result; // this was missing
    }
    
    function uintToString(uint v) internal pure returns (string) {
        uint maxlength = 100;
        bytes memory reversed = new bytes(maxlength);
        uint i = 0;
        while (v != 0) {
            uint remainder = v % 10;
            v = v / 10;
            reversed[i++] = byte(48 + remainder);
        }
        bytes memory s = new bytes(i); // i + 1 is inefficient
        for (uint j = 0; j < i; j++) {
            s[j] = reversed[i - j - 1]; // to avoid the off-by-one error
        }
        string memory str = string(s);  // memory isn't implicitly convertible to storage
        return str; // this was missing
    }
    
    function strConcat(string _a, string _b, string _c, string _d, string _e) internal pure returns (string){
        bytes memory _ba = bytes(_a);
        bytes memory _bb = bytes(_b);
        bytes memory _bc = bytes(_c);
        bytes memory _bd = bytes(_d);
        bytes memory _be = bytes(_e);
        string memory abcde = new string(_ba.length + _bb.length + _bc.length + _bd.length + _be.length);
        bytes memory babcde = bytes(abcde);
        uint k = 0;
        for (uint i = 0; i < _ba.length; i++) babcde[k++] = _ba[i];
        for (i = 0; i < _bb.length; i++) babcde[k++] = _bb[i];
        for (i = 0; i < _bc.length; i++) babcde[k++] = _bc[i];
        for (i = 0; i < _bd.length; i++) babcde[k++] = _bd[i];
        for (i = 0; i < _be.length; i++) babcde[k++] = _be[i];
        return string(babcde);
    }
    
    function strConcat(string _a, string _b, string _c, string _d) internal pure returns (string) {
        return strConcat(_a, _b, _c, _d, "");
    }
    
    function strConcat(string _a, string _b, string _c) internal pure returns (string) {
        return strConcat(_a, _b, _c, "", "");
    }
    
    function strConcat(string _a, string _b) internal pure returns (string) {
        return strConcat(_a, _b, "", "", "");
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addresses","type":"address[]"},{"name":"tokens","type":"uint256"}],"name":"massAdvertiseTransfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bestInvestorInfo","outputs":[{"name":"invested","type":"uint256"},{"name":"addr","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minInvesment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bestPromouterInfo","outputs":[{"name":"refs","type":"uint256"},{"name":"addr","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalInvested","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"adtransfers","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"investorsNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"referrer1Percent","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalInvestments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminAddr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dividendsPeriod","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"referrer2Percent","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"date","type":"uint256"}],"name":"stats","outputs":[{"name":"invested","type":"uint256"},{"name":"investors","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminPercent","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"getMyDividends","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ref","type":"address"}],"name":"doInvest","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"investorInfo","outputs":[{"name":"value","type":"uint256"},{"name":"paymentTime","type":"uint256"},{"name":"refsCount","type":"uint256"},{"name":"refBonus","type":"uint256"},{"name":"isReferral","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"waveStartup","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"balanceETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dividendsPercent","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LogNewInvestor","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LogNewInvesment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LogNewReferral","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LogPayDividends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LogPayReferrerBonus","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"balance","type":"uint256"}],"name":"LogBalanceChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"}],"name":"LogNextWave","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"}]

6002805460ff1916815560ff608081905261271060a0819052600c91909155600d55600560c0819052606460e0819052600e91909155600f8190556003610100819052610120829052601055601181905561014082905261016081905260129190915560138190556101c060405260016101808190526101a08290526014556015553480156200008e57600080fd5b50606060405190810160405280602981526020017f4561726e20322e353525204576657279204461792e2068747470733a2f2f323581526020017f356574682e636c75620000000000000000000000000000000000000000000000815250608060405190810160405280605a81526020017f53656e6420796f75722045544820746f207468697320636f6e7472616374206181526020017f6e64206561726e20322e3535252065766572792064617920666f72204c69766581526020017f2d6c6f6e672e2068747470733a2f2f3235356574682e636c7562000000000000815250816000908051906020019062000187929190620002b5565b5080516200019d906001906020840190620002b5565b503060008181526004602090815260408083206402540be400908190556003819055815190815290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350506008805461010060a860020a03191633610100021790556200021d64010000000062000223810204565b6200036b565b6200022d6200033a565b604051809103906000f0801580156200024a573d6000803e3d6000fd5b5060068054600160a060020a031916600160a060020a03929092169190911790556000600a554260098190556008805460ff1916905560408051918252517fc66870ef5f6257a76295d443e9221488043ec691f830f6c6128755c3518e3c75916020908290030190a1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002f857805160ff191683800117855562000328565b8280016001018555821562000328579182015b82811115620003285782518255916020019190600101906200030b565b50620003369291506200034b565b5090565b604051610bb78062003a7483390190565b6200036891905b8082111562000336576000815560010162000352565b90565b6136f9806200037b6000396000f300608060405260043610620001615763ffffffff60e060020a60003504166306fdde038114620001c7578063151bcc06146200025757806318160ddd14620002c5578063313ce56714620002ef5780633a7221e0146200031d5780633d7ac9f8146200035657806347f66d15146200036e5780635216aeec14620003865780635bd28183146200039e578063653c317414620003de5780636d46c6f514620003f657806370a08231146200042757806370fd37cf146200044b57806373ad468a146200046357806381830593146200047b57806388072c7814620004935780638fd1654114620004ab57806395d89b4114620004c3578063a9059cbb14620004db578063ad217ae51462000502578063c0dab516146200051d578063d50030ad1462000535578063d82fa3f1146200054f578063dbcbaca41462000565578063eafecc7a14620005b6578063ecbdbb3214620005ce578063f2c0cdbe14620005e6575b60003415156200017b5762000175620005fe565b620001c4565b620001b76000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375062000647945050505050565b9050620001c48162000652565b50005b348015620001d457600080fd5b50620001df620014ac565b6040805160208082528351818301528351919283929083019185019080838360005b838110156200021b57818101518382015260200162000201565b50505050905090810190601f168015620002495780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200026457600080fd5b5060408051602060048035808201358381028086018501909652808552620002b19536959394602494938501929182918501908490808284375094975050933594506200153d9350505050565b604080519115158252519081900360200190f35b348015620002d257600080fd5b50620002dd6200166f565b60408051918252519081900360200190f35b348015620002fc57600080fd5b506200030762001675565b6040805160ff9092168252519081900360200190f35b3480156200032a57600080fd5b50620003356200167e565b60408051928352600160a060020a0390911660208301528051918290030190f35b3480156200036357600080fd5b50620002dd6200171c565b3480156200037b57600080fd5b506200033562001727565b3480156200039357600080fd5b50620002dd62001787565b348015620003ab57600080fd5b50620003c2600160a060020a03600435166200178d565b60408051600160a060020a039092168252519081900360200190f35b348015620003eb57600080fd5b50620002dd620017a8565b3480156200040357600080fd5b506200040e62001834565b6040805192835260208301919091528051918290030190f35b3480156200043457600080fd5b50620002dd600160a060020a03600435166200183e565b3480156200045857600080fd5b50620002dd62001850565b3480156200047057600080fd5b50620002dd62001856565b3480156200048857600080fd5b50620003c262001865565b348015620004a057600080fd5b50620002dd62001879565b348015620004b857600080fd5b506200040e62001880565b348015620004d057600080fd5b50620001df6200188a565b348015620004e857600080fd5b50620002b1600160a060020a0360043516602435620018e8565b3480156200050f57600080fd5b506200040e6004356200198d565b3480156200052a57600080fd5b506200040e62001a33565b3480156200054257600080fd5b506200054d620005fe565b005b6200054d600160a060020a036004351662000652565b3480156200057257600080fd5b5062000589600160a060020a036004351662001a3d565b60408051958652602086019490945284840192909252606084015215156080830152519081900360a00190f35b348015620005c357600080fd5b50620002dd62001b2e565b348015620005db57600080fd5b50620002dd62001b34565b348015620005f357600080fd5b506200040e62001b39565b6200060a600062001b43565b604080514281523031602082015281517f32367fddaa1baa1c6a0fc5c3e8284df724bacc7b50e847c32c9f9765f9f96137929181900390910190a1565b60148101515b919050565b6000806200065f62002a82565b6200066962002a82565b6200067362002a99565b6000662386f26fc10000341015620006fb576040805160e560020a62461bcd02815260206004820152602160248201527f6d73672e76616c7565206d757374206265203e3d206d696e496e7665736d656e60448201527f7400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6a1517d5c51969ab898000003031111562000760576040805160e560020a62461bcd02815260206004820152601e60248201527f74686520636f6e7472616374206574682062616c616e6365206c696d69740000604482015290519081900360640190fd5b336000908152600760205260409020543496506200078790600160a060020a031662001e3d565b151562000edd57620007998762001e4b565b80156200082357506006546040805160e360020a630bb7c8fd028152600160a060020a038a8116600483015291519190921691635dbe47e89160248083019260209291908290030181600087803b158015620007f457600080fd5b505af115801562000809573d6000803e3d6000fd5b505050506040513d60208110156200082057600080fd5b50515b1562000b29576200083c60108763ffffffff62001e7c16565b600654604080517f1d480d8b000000000000000000000000000000000000000000000000000000008152600160a060020a038b81166004830152602482018590529151939850911691631d480d8b916044808201926020929091908290030181600087803b158015620008ae57600080fd5b505af1158015620008c3573d6000803e3d6000fd5b505050506040513d6020811015620008da57600080fd5b50511515620008e557fe5b336000908152600760205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03891617905562000927600c8762001eaa565b6040805142815260208101839052815192985033927f51dd0a60788a76a784e14408dda19543a507171e513d8a1aab1859626c30d448929181900390910190a2600160a060020a038088166000908152600760205260409020546200098d911662001e4b565b801562000a275750600654600160a060020a03888116600090815260076020908152604080832054815160e360020a630bb7c8fd028152908516600482015290519390941693635dbe47e89360248083019491928390030190829087803b158015620009f857600080fd5b505af115801562000a0d573d6000803e3d6000fd5b505050506040513d602081101562000a2457600080fd5b50515b801562000a4f5750600160a060020a0380881660008181526007602052604090205490911614155b1562000b235762000a6860128763ffffffff62001e7c16565b600654600160a060020a0389811660009081526007602090815260408083205481517f113028180000000000000000000000000000000000000000000000000000000081529085166004820152602481018790529051959a5092909316936311302818936044808501949193918390030190829087803b15801562000aec57600080fd5b505af115801562000b01573d6000803e3d6000fd5b505050506040513d602081101562000b1857600080fd5b5051151562000b2357fe5b62000d5b565b62000b3362001ec1565b935062000b3f62001f84565b925062000b50846020015162001e4b565b1562000c4e576006546020850151600160a060020a039091169063113028189062000b8360108a63ffffffff62001e7c16565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801562000bd657600080fd5b505af115801562000beb573d6000803e3d6000fd5b505050506040513d602081101562000c0257600080fd5b5051151562000c0d57fe5b60208481015133600090815260079092526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b62000c5d836020015162001e4b565b1562000d5b576006546020840151600160a060020a039091169063113028189062000c9060128a63ffffffff62001e7c16565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801562000ce357600080fd5b505af115801562000cf8573d6000803e3d6000fd5b505050506040513d602081101562000d0f57600080fd5b5051151562000d1a57fe5b60208381015133600090815260079092526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b3360009081526005602052604090205462000d7f90600160a060020a031662001e4b565b801562000e14575060065433600090815260056020908152604080832054815160e360020a630bb7c8fd028152600160a060020a0391821660048201529151941693635dbe47e893602480840194938390030190829087803b15801562000de557600080fd5b505af115801562000dfa573d6000803e3d6000fd5b505050506040513d602081101562000e1157600080fd5b50515b1562000edd5760065433600090815260056020526040902054600160a060020a03918216916311302818911662000e5360143463ffffffff62001e7c16565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801562000ea657600080fd5b505af115801562000ebb573d6000803e3d6000fd5b505050506040513d602081101562000ed257600080fd5b5051151562000edd57fe5b62000ee9600162001b43565b6008546101009004600160a060020a03166108fc62000f0a600e3462001e7c565b6040518115909202916000818181858888f1935050505015801562000f33573d6000803e3d6000fd5b5062000f3f4262001fee565b91506200104862001042600a846020015160ff161062000f6e5760408051602081019091526000815262000fa3565b60408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201525b62000fb5856020015160ff166200210b565b600a866040015160ff161062000fda576040805160208101909152600081526200100f565b60408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201525b62001021876040015160ff166200210b565b8751620010329061ffff166200210b565b9392919063ffffffff6200223816565b620024ae565b6006546040805160e360020a630bb7c8fd0281523360048201529051929350600160a060020a0390911691635dbe47e8916024808201926020929091908290030181600087803b1580156200109c57600080fd5b505af1158015620010b1573d6000803e3d6000fd5b505050506040513d6020811015620010c857600080fd5b5051156200120857600654604080517fca0b1878000000000000000000000000000000000000000000000000000000008152336004820152602481018990529051600160a060020a039092169163ca0b1878916044808201926020929091908290030181600087803b1580156200113e57600080fd5b505af115801562001153573d6000803e3d6000fd5b505050506040513d60208110156200116a57600080fd5b505115156200117557fe5b600654604080517f61ab890400000000000000000000000000000000000000000000000000000000815260048101849052602481018990526000604482018190529151600160a060020a03909316926361ab89049260648084019391929182900301818387803b158015620011e957600080fd5b505af1158015620011fe573d6000803e3d6000fd5b5050505062001379565b600654604080517f0fd0ae10000000000000000000000000000000000000000000000000000000008152336004820152602481018990529051600160a060020a0390921691630fd0ae10916044808201926020929091908290030181600087803b1580156200127657600080fd5b505af11580156200128b573d6000803e3d6000fd5b505050506040513d6020811015620012a257600080fd5b50511515620012ad57fe5b600654604080517f61ab89040000000000000000000000000000000000000000000000000000000081526004810184905260248101899052600160448201529051600160a060020a03909216916361ab89049160648082019260009290919082900301818387803b1580156200132257600080fd5b505af115801562001337573d6000803e3d6000fd5b505060408051428152602081018a905281513394507f5299e1ad8e7b5bcb9a8bfb1ce23cc0210bfea47a33518ab518a93fef68427d9893509081900390910190a25b600654604080517f440135850000000000000000000000000000000000000000000000000000000081523360048201524260248201529051600160a060020a03909216916344013585916044808201926020929091908290030181600087803b158015620013e657600080fd5b505af1158015620013fb573d6000803e3d6000fd5b505050506040513d60208110156200141257600080fd5b505115156200141d57fe5b6040805142815260208101889052815133927f28c94178af4152674986540aaca61b18b89f54283f74283ef675a90583339b8f928290030190a2600a80546001019055600b805434019055604080514281523031602082015281517f32367fddaa1baa1c6a0fc5c3e8284df724bacc7b50e847c32c9f9765f9f96137929181900390910190a150505050505050565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015620015355780601f10620015095761010080835404028352916020019162001535565b820191906000526020600020905b8154815290600101906020018083116200151757829003601f168201915b505050505081565b6000805b835181101562001665576200158f6005600086848151811015156200156257fe5b6020908102909101810151600160a060020a03908116835290820192909252604001600020541662001e3d565b15156200165c5733600560008684815181101515620015aa57fe5b90602001906020020151600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a815481600160a060020a030219169083600160a060020a0316021790555083818151811015156200160757fe5b90602001906020020151600160a060020a031630600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35b60010162001541565b5060019392505050565b60035481565b60025460ff1681565b600654604080517fed355b0b00000000000000000000000000000000000000000000000000000000815281516000938493600160a060020a039091169263ed355b0b926004808301939282900301818787803b158015620016de57600080fd5b505af1158015620016f3573d6000803e3d6000fd5b505050506040513d60408110156200170a57600080fd5b50805160209091015190939092509050565b662386f26fc1000081565b600654604080517f126d20f100000000000000000000000000000000000000000000000000000000815281516000938493600160a060020a039091169263126d20f1926004808301939282900301818787803b158015620016de57600080fd5b600b5481565b600560205260009081526040902054600160a060020a031681565b60006001600660009054906101000a9004600160a060020a0316600160a060020a031663949d225d6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200180057600080fd5b505af115801562001815573d6000803e3d6000fd5b505050506040513d60208110156200182c57600080fd5b505103905090565b6010546011549091565b60046020526000908152604090205481565b600a5481565b6a1517d5c51969ab8980000081565b6008546101009004600160a060020a031681565b6201518081565b6012546013549091565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015620015355780601f10620015095761010080835404028352916020019162001535565b600160a060020a03808316600090815260056020526040812054909162001910911662001e3d565b15156200198357600160a060020a038316600081815260056020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916331790558151858152915130927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92908290030190a35b5060015b92915050565b600654604080517fad217ae50000000000000000000000000000000000000000000000000000000081526004810184905281516000938493600160a060020a039091169263ad217ae5926024808301939282900301818787803b158015620019f457600080fd5b505af115801562001a09573d6000803e3d6000fd5b505050506040513d604081101562001a2057600080fd5b5080516020909101519094909350915050565b600e54600f549091565b600654604080517f743c6775000000000000000000000000000000000000000000000000000000008152600160a060020a03848116600483015291516000938493849384938493929092169163743c67759160248082019260809290919082900301818787803b15801562001ab157600080fd5b505af115801562001ac6573d6000803e3d6000fd5b505050506040513d608081101562001add57600080fd5b508051602080830151604080850151606090950151600160a060020a03808d16600090815260079095529190932054939950909750929550935062001b23911662001e3d565b905091939590929450565b60095481565b303190565b600c54600d549091565b62001b4d62002ad5565b60008062001b5b33620025b2565b805190935060001062001bc557831562001b755762001e37565b6040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420696e766573746f7200000000000000000000604482015290519081900360640190fd5b62001bf36201518062001be6856040015142620026a290919063ffffffff16565b9063ffffffff620026ba16565b91506000821162001c8157831562001c0b5762001e37565b6040805160e560020a62461bcd02815260206004820152603460248201527f746865206c6174657374207061796d656e7420776173206561726c696572207460448201527f68616e206469766964656e747320706572696f64000000000000000000000000606482015290519081900360840190fd5b600654604080517f440135850000000000000000000000000000000000000000000000000000000081523360048201524260248201529051600160a060020a03909216916344013585916044808201926020929091908290030181600087803b15801562001cee57600080fd5b505af115801562001d03573d6000803e3d6000fd5b505050506040513d602081101562001d1a57600080fd5b5051151562001d2557fe5b8162001d408460200151600c62001e7c90919063ffffffff16565b60808501519102915081013031101562001d645762001d5e620026df565b62001e37565b60008360800151111562001e2b57600654604080517ffbeac9c90000000000000000000000000000000000000000000000000000000081523360048201526000602482018190529151600160a060020a039093169263fbeac9c992604480840193602093929083900390910190829087803b15801562001de357600080fd5b505af115801562001df8573d6000803e3d6000fd5b505050506040513d602081101562001e0f57600080fd5b5051151562001e1a57fe5b62001d5e338285608001516200277e565b62001e37338262002836565b50505050565b600160a060020a0316151590565b600062001e6182600160a060020a031662001e3d565b8015620019875750600160a060020a03821633141592915050565b600081151562001e8f5750600062001987565b60018301548354830281151562001ea257fe5b049392505050565b600062001eb8838362001e7c565b90910192915050565b62001ecb62002a82565b600654604080517fed355b0b00000000000000000000000000000000000000000000000000000000815281516000938493600160a060020a039091169263ed355b0b926004808301939282900301818787803b15801562001f2b57600080fd5b505af115801562001f40573d6000803e3d6000fd5b505050506040513d604081101562001f5757600080fd5b50805160209182015160408051808201909152918252600160a060020a0316918101919091529392505050565b62001f8e62002a82565b600654604080517f126d20f100000000000000000000000000000000000000000000000000000000815281516000938493600160a060020a039091169263126d20f1926004808301939282900301818787803b15801562001f2b57600080fd5b62001ff862002a99565b60008080806200200886620028a9565b61ffff1685526200201b6107b26200293b565b85516200202c9061ffff166200293b565b039250826301e285000284019350826107b286600001510361ffff16036301e133800284019350600191505b600c60ff831611620020a8576200207482866000015162002956565b60ff1662015180029050858482011115620020985760ff82166020860152620020a8565b9283019260019091019062002058565b600191505b620020c18560200151866000015162002956565b60ff168260ff161115156200210257858462015180011115620020ed5760ff8216604086015262002102565b620151809390930192600190910190620020ad565b50505050919050565b60408051606480825260a0820190925260609190829060009081908390829082908760208201610c8080388339019050509550600094505b881562002191578551600a808b049a6001880197919006955060f860020a60308701029188919081106200217357fe5b906020010190600160f860020a031916908160001a90535062002143565b846040519080825280601f01601f191660200182016040528015620021c0578160200160208202803883390190505b509250600091505b848210156200222b5785600183870303815181101515620021e557fe5b90602001015160f860020a900460f860020a0283838151811015156200220757fe5b906020010190600160f860020a031916908160001a905350600190910190620021c8565b5090979650505050505050565b6060806060806060806060806000808e98508d97508c96508b95508a94508451865188518a518c51010101016040519080825280601f01601f19166020018201604052801562002292578160200160208202803883390190505b50935083925060009150600090505b885181101562002303578881815181101515620022ba57fe5b90602001015160f860020a900460f860020a028383806001019450815181101515620022e257fe5b906020010190600160f860020a031916908160001a905350600101620022a1565b5060005b8751811015620023695787818151811015156200232057fe5b90602001015160f860020a900460f860020a0283838060010194508151811015156200234857fe5b906020010190600160f860020a031916908160001a90535060010162002307565b5060005b8651811015620023cf5786818151811015156200238657fe5b90602001015160f860020a900460f860020a028383806001019450815181101515620023ae57fe5b906020010190600160f860020a031916908160001a9053506001016200236d565b5060005b855181101562002435578581815181101515620023ec57fe5b90602001015160f860020a900460f860020a0283838060010194508151811015156200241457fe5b906020010190600160f860020a031916908160001a905350600101620023d3565b5060005b84518110156200249b5784818151811015156200245257fe5b90602001015160f860020a900460f860020a0283838060010194508151811015156200247a57fe5b906020010190600160f860020a031916908160001a90535060010162002439565b50909d9c50505050505050505050505050565b60008181805b8251811015620025aa5782517f300000000000000000000000000000000000000000000000000000000000000090849083908110620024ef57fe5b90602001015160f860020a900460f860020a02600160f860020a0319161015801562002567575082517f3900000000000000000000000000000000000000000000000000000000000000908490839081106200254757fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b15620025a157603083828151811015156200257e57fe5b90602001015160f860020a900460f860020a0260f860020a90040382600a020191505b600101620024b4565b509392505050565b620025bc62002ad5565b600654604080517f634d6e57000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015291516000938493849384938493929092169163634d6e579160248082019260a09290919082900301818787803b1580156200263057600080fd5b505af115801562002645573d6000803e3d6000fd5b505050506040513d60a08110156200265c57600080fd5b508051602080830151604080850151606080870151608097880151845160a081018652978852958701949094529185015283015291810191909152979650505050505050565b60008083831115620026b357600080fd5b5050900390565b600080808311620026ca57600080fd5b8284811515620026d657fe5b04949350505050565b620026e962002b05565b604051809103906000f08015801562002706573d6000803e3d6000fd5b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556000600a554260098190556008805460ff1916905560408051918252517fc66870ef5f6257a76295d443e9221488043ec691f830f6c6128755c3518e3c75916020908290030190a1565b604051600160a060020a0384169083830180156108fc02916000818181858888f1935050505015620028315760408051428152602081018490528151600160a060020a038616927f6710e0cad56444677ac916513b384a4acc6501cfb5219f59657ad4ddffef9d60928290030190a260408051428152602081018390528151600160a060020a038616927f8e3ff7e294a4411929d6ec573691ed656c8e5c691be6dc7d776fadb286dbfe82928290030190a25b505050565b604051600160a060020a0383169082156108fc029083906000818181858888f1935050505015620028a55760408051428152602081018390528151600160a060020a038516927f6710e0cad56444677ac916513b384a4acc6501cfb5219f59657ad4ddffef9d60928290030190a25b5050565b6000806107b26301e1338084048101908290620028c6906200293b565b620028d58361ffff166200293b565b039050806301e285000283019250806107b2830361ffff16036301e1338002830192505b84831115620025aa57620029106001830362002a2e565b1562002925576301e28500830392506200292f565b6301e13380830392505b600182039150620028f9565b60001901600061019082046064830460048404030192915050565b60008260ff16600114806200296e57508260ff166003145b806200297d57508260ff166005145b806200298c57508260ff166007145b806200299b57508260ff166008145b80620029aa57508260ff16600a145b80620029b957508260ff16600c145b15620029c85750601f62001987565b8260ff1660041480620029de57508260ff166006145b80620029ed57508260ff166009145b80620029fc57508260ff16600b145b1562002a0b5750601e62001987565b62002a168262002a2e565b1562002a255750601d62001987565b50601c62001987565b6000600382161562002a43575060006200064d565b606461ffff83160661ffff161562002a5e575060016200064d565b61019061ffff83160661ffff161562002a7a575060006200064d565b506001919050565b604080518082019091526000808252602082015290565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b60a06040519081016040528060008152602001600081526020016000815260200160008152602001600081525090565b604051610bb78062002b17833901905600608060405234801561001057600080fd5b5060078054600160a060020a031916331790556002805490610035906001830161003b565b50610085565b81548183558181111561005f5760008381526020902061005f918101908301610064565b505050565b61008291905b8082111561007e576000815560010161006a565b5090565b90565b610b23806100946000396000f3006080604052600436106100f05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630fd0ae1081146100f5578063113028181461012d578063126d20f1146101515780631d480d8b1461018757806344013585146101ab578063460d674b146101cf5780635dbe47e81461020357806361ab890414610224578063634d6e5714610244578063743c67751461029057806380ac80b0146102d7578063949d225d146102fe578063993d348914610313578063ad217ae51461034d578063ca0b187814610365578063ed355b0b14610389578063fbeac9c91461039e575b600080fd5b34801561010157600080fd5b50610119600160a060020a03600435166024356103c2565b604080519115158252519081900360200190f35b34801561013957600080fd5b50610119600160a060020a03600435166024356104fc565b34801561015d57600080fd5b506101666105a2565b60408051928352600160a060020a0390911660208301528051918290030190f35b34801561019357600080fd5b50610119600160a060020a03600435166024356105b5565b3480156101b757600080fd5b50610119600160a060020a0360043516602435610674565b3480156101db57600080fd5b506101e7600435610716565b60408051600160a060020a039092168252519081900360200190f35b34801561020f57600080fd5b50610119600160a060020a0360043516610743565b34801561023057600080fd5b5061024260043560243560443561075f565b005b34801561025057600080fd5b50610265600160a060020a0360043516610783565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b34801561029c57600080fd5b506102b1600160a060020a03600435166107bc565b604080519485526020850193909352838301919091526060830152519081900360800190f35b3480156102e357600080fd5b506102ec6107f2565b60408051918252519081900360200190f35b34801561030a57600080fd5b506102ec6107f8565b34801561031f57600080fd5b50610334600160a060020a03600435166107fe565b6040805192835260208301919091528051918290030190f35b34801561035957600080fd5b50610334600435610826565b34801561037157600080fd5b50610119600160a060020a036004351660243561083f565b34801561039557600080fd5b506101666108e8565b3480156103aa57600080fd5b50610119600160a060020a03600435166024356108fb565b6007546000908190600160a060020a03163314610417576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610ad8833981519152604482015290519081900360640190fd5b50600160a060020a038316600090815260016020526040902054801561044057600091506104f5565b600160a060020a03841660009081526001602081905260409091208101849055600280549161047191908301610a90565b600160a060020a03851660009081526001602052604090208190556002805491925085918390811061049f57fe5b6000918252602080832091909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0394851617905591861681526001918290526040902001546104f090859061099d565b600191505b5092915050565b600754600090600160a060020a0316331461054f576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610ad8833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526001602052604090205415156105765750600061059c565b50600160a060020a03821660009081526001602081905260409091206004018054830190555b92915050565b600554600654600160a060020a03169091565b600754600090600160a060020a03163314610608576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610ad8833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260016020526040902054151561062f5750600061059c565b600160a060020a03831660009081526001602081905260409091206004810180548501905560030180549091019081905561066b908490610a17565b50600192915050565b600754600090600160a060020a031633146106c7576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610ad8833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526001602052604090205415156106ee5750600061059c565b50600160a060020a038216600090815260016020819052604090912060020182905592915050565b60028054600091908390811061072857fe5b600091825260209091200154600160a060020a031692915050565b600160a060020a03166000908152600160205260408120541190565b60009283526020839052604090922060018101805490920190915580549091019055565b600160a060020a031660009081526001602081905260409091208054918101546002820154600383015460049093015493949193909291565b600160a060020a031660009081526001602081905260409091209081015460028201546003830154600490930154919390929190565b60015b90565b60025490565b600160a060020a03166000908152600160208190526040909120908101546004909101549091565b6000908152602081905260409020600181015490549091565b600754600090600160a060020a03163314610892576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610ad8833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526001602052604090205415156108b95750600061059c565b600160a060020a038316600090815260016020819052604090912001805483019081905561066b90849061099d565b600354600454600160a060020a03169091565b600754600090600160a060020a0316331461094e576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610ad8833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526001602052604090205415156109755750600061059c565b50600160a060020a038216600090815260016020819052604090912060040182905592915050565b600354811115610a135760038190556004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416908117909155604080514281526020810184905281517f443bcffbe8f5c9e25899791d5460e94550717041fafb6759ef21989f589a85ff929181900390910190a25b5050565b600554811115610a135760058190556006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416908117909155604080514281526020810184905281517f6b93c83951082b4d98bf0a9f9cedb4d95aa6fb1f15539af6f815e5bae9fdf9bc929181900390910190a25050565b815481835581811115610ab457600083815260209020610ab4918101908301610ab9565b505050565b6107f591905b80821115610ad35760008155600101610abf565b509056006163636573732064656e69656400000000000000000000000000000000000000a165627a7a723058201403b0aa8905e3172f1710a797cae5bdae7912a2eae8f18a55a18828f14fb2730029a165627a7a7230582082056cc210d714e670824f7b61f07f388bde2428cee492eab94a4d6e58fde2b40029608060405234801561001057600080fd5b5060078054600160a060020a031916331790556002805490610035906001830161003b565b50610085565b81548183558181111561005f5760008381526020902061005f918101908301610064565b505050565b61008291905b8082111561007e576000815560010161006a565b5090565b90565b610b23806100946000396000f3006080604052600436106100f05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630fd0ae1081146100f5578063113028181461012d578063126d20f1146101515780631d480d8b1461018757806344013585146101ab578063460d674b146101cf5780635dbe47e81461020357806361ab890414610224578063634d6e5714610244578063743c67751461029057806380ac80b0146102d7578063949d225d146102fe578063993d348914610313578063ad217ae51461034d578063ca0b187814610365578063ed355b0b14610389578063fbeac9c91461039e575b600080fd5b34801561010157600080fd5b50610119600160a060020a03600435166024356103c2565b604080519115158252519081900360200190f35b34801561013957600080fd5b50610119600160a060020a03600435166024356104fc565b34801561015d57600080fd5b506101666105a2565b60408051928352600160a060020a0390911660208301528051918290030190f35b34801561019357600080fd5b50610119600160a060020a03600435166024356105b5565b3480156101b757600080fd5b50610119600160a060020a0360043516602435610674565b3480156101db57600080fd5b506101e7600435610716565b60408051600160a060020a039092168252519081900360200190f35b34801561020f57600080fd5b50610119600160a060020a0360043516610743565b34801561023057600080fd5b5061024260043560243560443561075f565b005b34801561025057600080fd5b50610265600160a060020a0360043516610783565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b34801561029c57600080fd5b506102b1600160a060020a03600435166107bc565b604080519485526020850193909352838301919091526060830152519081900360800190f35b3480156102e357600080fd5b506102ec6107f2565b60408051918252519081900360200190f35b34801561030a57600080fd5b506102ec6107f8565b34801561031f57600080fd5b50610334600160a060020a03600435166107fe565b6040805192835260208301919091528051918290030190f35b34801561035957600080fd5b50610334600435610826565b34801561037157600080fd5b50610119600160a060020a036004351660243561083f565b34801561039557600080fd5b506101666108e8565b3480156103aa57600080fd5b50610119600160a060020a03600435166024356108fb565b6007546000908190600160a060020a03163314610417576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610ad8833981519152604482015290519081900360640190fd5b50600160a060020a038316600090815260016020526040902054801561044057600091506104f5565b600160a060020a03841660009081526001602081905260409091208101849055600280549161047191908301610a90565b600160a060020a03851660009081526001602052604090208190556002805491925085918390811061049f57fe5b6000918252602080832091909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0394851617905591861681526001918290526040902001546104f090859061099d565b600191505b5092915050565b600754600090600160a060020a0316331461054f576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610ad8833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526001602052604090205415156105765750600061059c565b50600160a060020a03821660009081526001602081905260409091206004018054830190555b92915050565b600554600654600160a060020a03169091565b600754600090600160a060020a03163314610608576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610ad8833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260016020526040902054151561062f5750600061059c565b600160a060020a03831660009081526001602081905260409091206004810180548501905560030180549091019081905561066b908490610a17565b50600192915050565b600754600090600160a060020a031633146106c7576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610ad8833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526001602052604090205415156106ee5750600061059c565b50600160a060020a038216600090815260016020819052604090912060020182905592915050565b60028054600091908390811061072857fe5b600091825260209091200154600160a060020a031692915050565b600160a060020a03166000908152600160205260408120541190565b60009283526020839052604090922060018101805490920190915580549091019055565b600160a060020a031660009081526001602081905260409091208054918101546002820154600383015460049093015493949193909291565b600160a060020a031660009081526001602081905260409091209081015460028201546003830154600490930154919390929190565b60015b90565b60025490565b600160a060020a03166000908152600160208190526040909120908101546004909101549091565b6000908152602081905260409020600181015490549091565b600754600090600160a060020a03163314610892576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610ad8833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526001602052604090205415156108b95750600061059c565b600160a060020a038316600090815260016020819052604090912001805483019081905561066b90849061099d565b600354600454600160a060020a03169091565b600754600090600160a060020a0316331461094e576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610ad8833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526001602052604090205415156109755750600061059c565b50600160a060020a038216600090815260016020819052604090912060040182905592915050565b600354811115610a135760038190556004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416908117909155604080514281526020810184905281517f443bcffbe8f5c9e25899791d5460e94550717041fafb6759ef21989f589a85ff929181900390910190a25b5050565b600554811115610a135760058190556006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416908117909155604080514281526020810184905281517f6b93c83951082b4d98bf0a9f9cedb4d95aa6fb1f15539af6f815e5bae9fdf9bc929181900390910190a25050565b815481835581811115610ab457600083815260209020610ab4918101908301610ab9565b505050565b6107f591905b80821115610ad35760008155600101610abf565b509056006163636573732064656e69656400000000000000000000000000000000000000a165627a7a723058201403b0aa8905e3172f1710a797cae5bdae7912a2eae8f18a55a18828f14fb2730029

Deployed Bytecode

0x608060405260043610620001615763ffffffff60e060020a60003504166306fdde038114620001c7578063151bcc06146200025757806318160ddd14620002c5578063313ce56714620002ef5780633a7221e0146200031d5780633d7ac9f8146200035657806347f66d15146200036e5780635216aeec14620003865780635bd28183146200039e578063653c317414620003de5780636d46c6f514620003f657806370a08231146200042757806370fd37cf146200044b57806373ad468a146200046357806381830593146200047b57806388072c7814620004935780638fd1654114620004ab57806395d89b4114620004c3578063a9059cbb14620004db578063ad217ae51462000502578063c0dab516146200051d578063d50030ad1462000535578063d82fa3f1146200054f578063dbcbaca41462000565578063eafecc7a14620005b6578063ecbdbb3214620005ce578063f2c0cdbe14620005e6575b60003415156200017b5762000175620005fe565b620001c4565b620001b76000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375062000647945050505050565b9050620001c48162000652565b50005b348015620001d457600080fd5b50620001df620014ac565b6040805160208082528351818301528351919283929083019185019080838360005b838110156200021b57818101518382015260200162000201565b50505050905090810190601f168015620002495780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200026457600080fd5b5060408051602060048035808201358381028086018501909652808552620002b19536959394602494938501929182918501908490808284375094975050933594506200153d9350505050565b604080519115158252519081900360200190f35b348015620002d257600080fd5b50620002dd6200166f565b60408051918252519081900360200190f35b348015620002fc57600080fd5b506200030762001675565b6040805160ff9092168252519081900360200190f35b3480156200032a57600080fd5b50620003356200167e565b60408051928352600160a060020a0390911660208301528051918290030190f35b3480156200036357600080fd5b50620002dd6200171c565b3480156200037b57600080fd5b506200033562001727565b3480156200039357600080fd5b50620002dd62001787565b348015620003ab57600080fd5b50620003c2600160a060020a03600435166200178d565b60408051600160a060020a039092168252519081900360200190f35b348015620003eb57600080fd5b50620002dd620017a8565b3480156200040357600080fd5b506200040e62001834565b6040805192835260208301919091528051918290030190f35b3480156200043457600080fd5b50620002dd600160a060020a03600435166200183e565b3480156200045857600080fd5b50620002dd62001850565b3480156200047057600080fd5b50620002dd62001856565b3480156200048857600080fd5b50620003c262001865565b348015620004a057600080fd5b50620002dd62001879565b348015620004b857600080fd5b506200040e62001880565b348015620004d057600080fd5b50620001df6200188a565b348015620004e857600080fd5b50620002b1600160a060020a0360043516602435620018e8565b3480156200050f57600080fd5b506200040e6004356200198d565b3480156200052a57600080fd5b506200040e62001a33565b3480156200054257600080fd5b506200054d620005fe565b005b6200054d600160a060020a036004351662000652565b3480156200057257600080fd5b5062000589600160a060020a036004351662001a3d565b60408051958652602086019490945284840192909252606084015215156080830152519081900360a00190f35b348015620005c357600080fd5b50620002dd62001b2e565b348015620005db57600080fd5b50620002dd62001b34565b348015620005f357600080fd5b506200040e62001b39565b6200060a600062001b43565b604080514281523031602082015281517f32367fddaa1baa1c6a0fc5c3e8284df724bacc7b50e847c32c9f9765f9f96137929181900390910190a1565b60148101515b919050565b6000806200065f62002a82565b6200066962002a82565b6200067362002a99565b6000662386f26fc10000341015620006fb576040805160e560020a62461bcd02815260206004820152602160248201527f6d73672e76616c7565206d757374206265203e3d206d696e496e7665736d656e60448201527f7400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6a1517d5c51969ab898000003031111562000760576040805160e560020a62461bcd02815260206004820152601e60248201527f74686520636f6e7472616374206574682062616c616e6365206c696d69740000604482015290519081900360640190fd5b336000908152600760205260409020543496506200078790600160a060020a031662001e3d565b151562000edd57620007998762001e4b565b80156200082357506006546040805160e360020a630bb7c8fd028152600160a060020a038a8116600483015291519190921691635dbe47e89160248083019260209291908290030181600087803b158015620007f457600080fd5b505af115801562000809573d6000803e3d6000fd5b505050506040513d60208110156200082057600080fd5b50515b1562000b29576200083c60108763ffffffff62001e7c16565b600654604080517f1d480d8b000000000000000000000000000000000000000000000000000000008152600160a060020a038b81166004830152602482018590529151939850911691631d480d8b916044808201926020929091908290030181600087803b158015620008ae57600080fd5b505af1158015620008c3573d6000803e3d6000fd5b505050506040513d6020811015620008da57600080fd5b50511515620008e557fe5b336000908152600760205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03891617905562000927600c8762001eaa565b6040805142815260208101839052815192985033927f51dd0a60788a76a784e14408dda19543a507171e513d8a1aab1859626c30d448929181900390910190a2600160a060020a038088166000908152600760205260409020546200098d911662001e4b565b801562000a275750600654600160a060020a03888116600090815260076020908152604080832054815160e360020a630bb7c8fd028152908516600482015290519390941693635dbe47e89360248083019491928390030190829087803b158015620009f857600080fd5b505af115801562000a0d573d6000803e3d6000fd5b505050506040513d602081101562000a2457600080fd5b50515b801562000a4f5750600160a060020a0380881660008181526007602052604090205490911614155b1562000b235762000a6860128763ffffffff62001e7c16565b600654600160a060020a0389811660009081526007602090815260408083205481517f113028180000000000000000000000000000000000000000000000000000000081529085166004820152602481018790529051959a5092909316936311302818936044808501949193918390030190829087803b15801562000aec57600080fd5b505af115801562000b01573d6000803e3d6000fd5b505050506040513d602081101562000b1857600080fd5b5051151562000b2357fe5b62000d5b565b62000b3362001ec1565b935062000b3f62001f84565b925062000b50846020015162001e4b565b1562000c4e576006546020850151600160a060020a039091169063113028189062000b8360108a63ffffffff62001e7c16565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801562000bd657600080fd5b505af115801562000beb573d6000803e3d6000fd5b505050506040513d602081101562000c0257600080fd5b5051151562000c0d57fe5b60208481015133600090815260079092526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b62000c5d836020015162001e4b565b1562000d5b576006546020840151600160a060020a039091169063113028189062000c9060128a63ffffffff62001e7c16565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801562000ce357600080fd5b505af115801562000cf8573d6000803e3d6000fd5b505050506040513d602081101562000d0f57600080fd5b5051151562000d1a57fe5b60208381015133600090815260079092526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b3360009081526005602052604090205462000d7f90600160a060020a031662001e4b565b801562000e14575060065433600090815260056020908152604080832054815160e360020a630bb7c8fd028152600160a060020a0391821660048201529151941693635dbe47e893602480840194938390030190829087803b15801562000de557600080fd5b505af115801562000dfa573d6000803e3d6000fd5b505050506040513d602081101562000e1157600080fd5b50515b1562000edd5760065433600090815260056020526040902054600160a060020a03918216916311302818911662000e5360143463ffffffff62001e7c16565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801562000ea657600080fd5b505af115801562000ebb573d6000803e3d6000fd5b505050506040513d602081101562000ed257600080fd5b5051151562000edd57fe5b62000ee9600162001b43565b6008546101009004600160a060020a03166108fc62000f0a600e3462001e7c565b6040518115909202916000818181858888f1935050505015801562000f33573d6000803e3d6000fd5b5062000f3f4262001fee565b91506200104862001042600a846020015160ff161062000f6e5760408051602081019091526000815262000fa3565b60408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201525b62000fb5856020015160ff166200210b565b600a866040015160ff161062000fda576040805160208101909152600081526200100f565b60408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201525b62001021876040015160ff166200210b565b8751620010329061ffff166200210b565b9392919063ffffffff6200223816565b620024ae565b6006546040805160e360020a630bb7c8fd0281523360048201529051929350600160a060020a0390911691635dbe47e8916024808201926020929091908290030181600087803b1580156200109c57600080fd5b505af1158015620010b1573d6000803e3d6000fd5b505050506040513d6020811015620010c857600080fd5b5051156200120857600654604080517fca0b1878000000000000000000000000000000000000000000000000000000008152336004820152602481018990529051600160a060020a039092169163ca0b1878916044808201926020929091908290030181600087803b1580156200113e57600080fd5b505af115801562001153573d6000803e3d6000fd5b505050506040513d60208110156200116a57600080fd5b505115156200117557fe5b600654604080517f61ab890400000000000000000000000000000000000000000000000000000000815260048101849052602481018990526000604482018190529151600160a060020a03909316926361ab89049260648084019391929182900301818387803b158015620011e957600080fd5b505af1158015620011fe573d6000803e3d6000fd5b5050505062001379565b600654604080517f0fd0ae10000000000000000000000000000000000000000000000000000000008152336004820152602481018990529051600160a060020a0390921691630fd0ae10916044808201926020929091908290030181600087803b1580156200127657600080fd5b505af11580156200128b573d6000803e3d6000fd5b505050506040513d6020811015620012a257600080fd5b50511515620012ad57fe5b600654604080517f61ab89040000000000000000000000000000000000000000000000000000000081526004810184905260248101899052600160448201529051600160a060020a03909216916361ab89049160648082019260009290919082900301818387803b1580156200132257600080fd5b505af115801562001337573d6000803e3d6000fd5b505060408051428152602081018a905281513394507f5299e1ad8e7b5bcb9a8bfb1ce23cc0210bfea47a33518ab518a93fef68427d9893509081900390910190a25b600654604080517f440135850000000000000000000000000000000000000000000000000000000081523360048201524260248201529051600160a060020a03909216916344013585916044808201926020929091908290030181600087803b158015620013e657600080fd5b505af1158015620013fb573d6000803e3d6000fd5b505050506040513d60208110156200141257600080fd5b505115156200141d57fe5b6040805142815260208101889052815133927f28c94178af4152674986540aaca61b18b89f54283f74283ef675a90583339b8f928290030190a2600a80546001019055600b805434019055604080514281523031602082015281517f32367fddaa1baa1c6a0fc5c3e8284df724bacc7b50e847c32c9f9765f9f96137929181900390910190a150505050505050565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015620015355780601f10620015095761010080835404028352916020019162001535565b820191906000526020600020905b8154815290600101906020018083116200151757829003601f168201915b505050505081565b6000805b835181101562001665576200158f6005600086848151811015156200156257fe5b6020908102909101810151600160a060020a03908116835290820192909252604001600020541662001e3d565b15156200165c5733600560008684815181101515620015aa57fe5b90602001906020020151600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a815481600160a060020a030219169083600160a060020a0316021790555083818151811015156200160757fe5b90602001906020020151600160a060020a031630600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35b60010162001541565b5060019392505050565b60035481565b60025460ff1681565b600654604080517fed355b0b00000000000000000000000000000000000000000000000000000000815281516000938493600160a060020a039091169263ed355b0b926004808301939282900301818787803b158015620016de57600080fd5b505af1158015620016f3573d6000803e3d6000fd5b505050506040513d60408110156200170a57600080fd5b50805160209091015190939092509050565b662386f26fc1000081565b600654604080517f126d20f100000000000000000000000000000000000000000000000000000000815281516000938493600160a060020a039091169263126d20f1926004808301939282900301818787803b158015620016de57600080fd5b600b5481565b600560205260009081526040902054600160a060020a031681565b60006001600660009054906101000a9004600160a060020a0316600160a060020a031663949d225d6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200180057600080fd5b505af115801562001815573d6000803e3d6000fd5b505050506040513d60208110156200182c57600080fd5b505103905090565b6010546011549091565b60046020526000908152604090205481565b600a5481565b6a1517d5c51969ab8980000081565b6008546101009004600160a060020a031681565b6201518081565b6012546013549091565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015620015355780601f10620015095761010080835404028352916020019162001535565b600160a060020a03808316600090815260056020526040812054909162001910911662001e3d565b15156200198357600160a060020a038316600081815260056020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916331790558151858152915130927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92908290030190a35b5060015b92915050565b600654604080517fad217ae50000000000000000000000000000000000000000000000000000000081526004810184905281516000938493600160a060020a039091169263ad217ae5926024808301939282900301818787803b158015620019f457600080fd5b505af115801562001a09573d6000803e3d6000fd5b505050506040513d604081101562001a2057600080fd5b5080516020909101519094909350915050565b600e54600f549091565b600654604080517f743c6775000000000000000000000000000000000000000000000000000000008152600160a060020a03848116600483015291516000938493849384938493929092169163743c67759160248082019260809290919082900301818787803b15801562001ab157600080fd5b505af115801562001ac6573d6000803e3d6000fd5b505050506040513d608081101562001add57600080fd5b508051602080830151604080850151606090950151600160a060020a03808d16600090815260079095529190932054939950909750929550935062001b23911662001e3d565b905091939590929450565b60095481565b303190565b600c54600d549091565b62001b4d62002ad5565b60008062001b5b33620025b2565b805190935060001062001bc557831562001b755762001e37565b6040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420696e766573746f7200000000000000000000604482015290519081900360640190fd5b62001bf36201518062001be6856040015142620026a290919063ffffffff16565b9063ffffffff620026ba16565b91506000821162001c8157831562001c0b5762001e37565b6040805160e560020a62461bcd02815260206004820152603460248201527f746865206c6174657374207061796d656e7420776173206561726c696572207460448201527f68616e206469766964656e747320706572696f64000000000000000000000000606482015290519081900360840190fd5b600654604080517f440135850000000000000000000000000000000000000000000000000000000081523360048201524260248201529051600160a060020a03909216916344013585916044808201926020929091908290030181600087803b15801562001cee57600080fd5b505af115801562001d03573d6000803e3d6000fd5b505050506040513d602081101562001d1a57600080fd5b5051151562001d2557fe5b8162001d408460200151600c62001e7c90919063ffffffff16565b60808501519102915081013031101562001d645762001d5e620026df565b62001e37565b60008360800151111562001e2b57600654604080517ffbeac9c90000000000000000000000000000000000000000000000000000000081523360048201526000602482018190529151600160a060020a039093169263fbeac9c992604480840193602093929083900390910190829087803b15801562001de357600080fd5b505af115801562001df8573d6000803e3d6000fd5b505050506040513d602081101562001e0f57600080fd5b5051151562001e1a57fe5b62001d5e338285608001516200277e565b62001e37338262002836565b50505050565b600160a060020a0316151590565b600062001e6182600160a060020a031662001e3d565b8015620019875750600160a060020a03821633141592915050565b600081151562001e8f5750600062001987565b60018301548354830281151562001ea257fe5b049392505050565b600062001eb8838362001e7c565b90910192915050565b62001ecb62002a82565b600654604080517fed355b0b00000000000000000000000000000000000000000000000000000000815281516000938493600160a060020a039091169263ed355b0b926004808301939282900301818787803b15801562001f2b57600080fd5b505af115801562001f40573d6000803e3d6000fd5b505050506040513d604081101562001f5757600080fd5b50805160209182015160408051808201909152918252600160a060020a0316918101919091529392505050565b62001f8e62002a82565b600654604080517f126d20f100000000000000000000000000000000000000000000000000000000815281516000938493600160a060020a039091169263126d20f1926004808301939282900301818787803b15801562001f2b57600080fd5b62001ff862002a99565b60008080806200200886620028a9565b61ffff1685526200201b6107b26200293b565b85516200202c9061ffff166200293b565b039250826301e285000284019350826107b286600001510361ffff16036301e133800284019350600191505b600c60ff831611620020a8576200207482866000015162002956565b60ff1662015180029050858482011115620020985760ff82166020860152620020a8565b9283019260019091019062002058565b600191505b620020c18560200151866000015162002956565b60ff168260ff161115156200210257858462015180011115620020ed5760ff8216604086015262002102565b620151809390930192600190910190620020ad565b50505050919050565b60408051606480825260a0820190925260609190829060009081908390829082908760208201610c8080388339019050509550600094505b881562002191578551600a808b049a6001880197919006955060f860020a60308701029188919081106200217357fe5b906020010190600160f860020a031916908160001a90535062002143565b846040519080825280601f01601f191660200182016040528015620021c0578160200160208202803883390190505b509250600091505b848210156200222b5785600183870303815181101515620021e557fe5b90602001015160f860020a900460f860020a0283838151811015156200220757fe5b906020010190600160f860020a031916908160001a905350600190910190620021c8565b5090979650505050505050565b6060806060806060806060806000808e98508d97508c96508b95508a94508451865188518a518c51010101016040519080825280601f01601f19166020018201604052801562002292578160200160208202803883390190505b50935083925060009150600090505b885181101562002303578881815181101515620022ba57fe5b90602001015160f860020a900460f860020a028383806001019450815181101515620022e257fe5b906020010190600160f860020a031916908160001a905350600101620022a1565b5060005b8751811015620023695787818151811015156200232057fe5b90602001015160f860020a900460f860020a0283838060010194508151811015156200234857fe5b906020010190600160f860020a031916908160001a90535060010162002307565b5060005b8651811015620023cf5786818151811015156200238657fe5b90602001015160f860020a900460f860020a028383806001019450815181101515620023ae57fe5b906020010190600160f860020a031916908160001a9053506001016200236d565b5060005b855181101562002435578581815181101515620023ec57fe5b90602001015160f860020a900460f860020a0283838060010194508151811015156200241457fe5b906020010190600160f860020a031916908160001a905350600101620023d3565b5060005b84518110156200249b5784818151811015156200245257fe5b90602001015160f860020a900460f860020a0283838060010194508151811015156200247a57fe5b906020010190600160f860020a031916908160001a90535060010162002439565b50909d9c50505050505050505050505050565b60008181805b8251811015620025aa5782517f300000000000000000000000000000000000000000000000000000000000000090849083908110620024ef57fe5b90602001015160f860020a900460f860020a02600160f860020a0319161015801562002567575082517f3900000000000000000000000000000000000000000000000000000000000000908490839081106200254757fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b15620025a157603083828151811015156200257e57fe5b90602001015160f860020a900460f860020a0260f860020a90040382600a020191505b600101620024b4565b509392505050565b620025bc62002ad5565b600654604080517f634d6e57000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015291516000938493849384938493929092169163634d6e579160248082019260a09290919082900301818787803b1580156200263057600080fd5b505af115801562002645573d6000803e3d6000fd5b505050506040513d60a08110156200265c57600080fd5b508051602080830151604080850151606080870151608097880151845160a081018652978852958701949094529185015283015291810191909152979650505050505050565b60008083831115620026b357600080fd5b5050900390565b600080808311620026ca57600080fd5b8284811515620026d657fe5b04949350505050565b620026e962002b05565b604051809103906000f08015801562002706573d6000803e3d6000fd5b506006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556000600a554260098190556008805460ff1916905560408051918252517fc66870ef5f6257a76295d443e9221488043ec691f830f6c6128755c3518e3c75916020908290030190a1565b604051600160a060020a0384169083830180156108fc02916000818181858888f1935050505015620028315760408051428152602081018490528151600160a060020a038616927f6710e0cad56444677ac916513b384a4acc6501cfb5219f59657ad4ddffef9d60928290030190a260408051428152602081018390528151600160a060020a038616927f8e3ff7e294a4411929d6ec573691ed656c8e5c691be6dc7d776fadb286dbfe82928290030190a25b505050565b604051600160a060020a0383169082156108fc029083906000818181858888f1935050505015620028a55760408051428152602081018390528151600160a060020a038516927f6710e0cad56444677ac916513b384a4acc6501cfb5219f59657ad4ddffef9d60928290030190a25b5050565b6000806107b26301e1338084048101908290620028c6906200293b565b620028d58361ffff166200293b565b039050806301e285000283019250806107b2830361ffff16036301e1338002830192505b84831115620025aa57620029106001830362002a2e565b1562002925576301e28500830392506200292f565b6301e13380830392505b600182039150620028f9565b60001901600061019082046064830460048404030192915050565b60008260ff16600114806200296e57508260ff166003145b806200297d57508260ff166005145b806200298c57508260ff166007145b806200299b57508260ff166008145b80620029aa57508260ff16600a145b80620029b957508260ff16600c145b15620029c85750601f62001987565b8260ff1660041480620029de57508260ff166006145b80620029ed57508260ff166009145b80620029fc57508260ff16600b145b1562002a0b5750601e62001987565b62002a168262002a2e565b1562002a255750601d62001987565b50601c62001987565b6000600382161562002a43575060006200064d565b606461ffff83160661ffff161562002a5e575060016200064d565b61019061ffff83160661ffff161562002a7a575060006200064d565b506001919050565b604080518082019091526000808252602082015290565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b60a06040519081016040528060008152602001600081526020016000815260200160008152602001600081525090565b604051610bb78062002b17833901905600608060405234801561001057600080fd5b5060078054600160a060020a031916331790556002805490610035906001830161003b565b50610085565b81548183558181111561005f5760008381526020902061005f918101908301610064565b505050565b61008291905b8082111561007e576000815560010161006a565b5090565b90565b610b23806100946000396000f3006080604052600436106100f05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630fd0ae1081146100f5578063113028181461012d578063126d20f1146101515780631d480d8b1461018757806344013585146101ab578063460d674b146101cf5780635dbe47e81461020357806361ab890414610224578063634d6e5714610244578063743c67751461029057806380ac80b0146102d7578063949d225d146102fe578063993d348914610313578063ad217ae51461034d578063ca0b187814610365578063ed355b0b14610389578063fbeac9c91461039e575b600080fd5b34801561010157600080fd5b50610119600160a060020a03600435166024356103c2565b604080519115158252519081900360200190f35b34801561013957600080fd5b50610119600160a060020a03600435166024356104fc565b34801561015d57600080fd5b506101666105a2565b60408051928352600160a060020a0390911660208301528051918290030190f35b34801561019357600080fd5b50610119600160a060020a03600435166024356105b5565b3480156101b757600080fd5b50610119600160a060020a0360043516602435610674565b3480156101db57600080fd5b506101e7600435610716565b60408051600160a060020a039092168252519081900360200190f35b34801561020f57600080fd5b50610119600160a060020a0360043516610743565b34801561023057600080fd5b5061024260043560243560443561075f565b005b34801561025057600080fd5b50610265600160a060020a0360043516610783565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b34801561029c57600080fd5b506102b1600160a060020a03600435166107bc565b604080519485526020850193909352838301919091526060830152519081900360800190f35b3480156102e357600080fd5b506102ec6107f2565b60408051918252519081900360200190f35b34801561030a57600080fd5b506102ec6107f8565b34801561031f57600080fd5b50610334600160a060020a03600435166107fe565b6040805192835260208301919091528051918290030190f35b34801561035957600080fd5b50610334600435610826565b34801561037157600080fd5b50610119600160a060020a036004351660243561083f565b34801561039557600080fd5b506101666108e8565b3480156103aa57600080fd5b50610119600160a060020a03600435166024356108fb565b6007546000908190600160a060020a03163314610417576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610ad8833981519152604482015290519081900360640190fd5b50600160a060020a038316600090815260016020526040902054801561044057600091506104f5565b600160a060020a03841660009081526001602081905260409091208101849055600280549161047191908301610a90565b600160a060020a03851660009081526001602052604090208190556002805491925085918390811061049f57fe5b6000918252602080832091909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0394851617905591861681526001918290526040902001546104f090859061099d565b600191505b5092915050565b600754600090600160a060020a0316331461054f576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610ad8833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526001602052604090205415156105765750600061059c565b50600160a060020a03821660009081526001602081905260409091206004018054830190555b92915050565b600554600654600160a060020a03169091565b600754600090600160a060020a03163314610608576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610ad8833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260016020526040902054151561062f5750600061059c565b600160a060020a03831660009081526001602081905260409091206004810180548501905560030180549091019081905561066b908490610a17565b50600192915050565b600754600090600160a060020a031633146106c7576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610ad8833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526001602052604090205415156106ee5750600061059c565b50600160a060020a038216600090815260016020819052604090912060020182905592915050565b60028054600091908390811061072857fe5b600091825260209091200154600160a060020a031692915050565b600160a060020a03166000908152600160205260408120541190565b60009283526020839052604090922060018101805490920190915580549091019055565b600160a060020a031660009081526001602081905260409091208054918101546002820154600383015460049093015493949193909291565b600160a060020a031660009081526001602081905260409091209081015460028201546003830154600490930154919390929190565b60015b90565b60025490565b600160a060020a03166000908152600160208190526040909120908101546004909101549091565b6000908152602081905260409020600181015490549091565b600754600090600160a060020a03163314610892576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610ad8833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526001602052604090205415156108b95750600061059c565b600160a060020a038316600090815260016020819052604090912001805483019081905561066b90849061099d565b600354600454600160a060020a03169091565b600754600090600160a060020a0316331461094e576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610ad8833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526001602052604090205415156109755750600061059c565b50600160a060020a038216600090815260016020819052604090912060040182905592915050565b600354811115610a135760038190556004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416908117909155604080514281526020810184905281517f443bcffbe8f5c9e25899791d5460e94550717041fafb6759ef21989f589a85ff929181900390910190a25b5050565b600554811115610a135760058190556006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416908117909155604080514281526020810184905281517f6b93c83951082b4d98bf0a9f9cedb4d95aa6fb1f15539af6f815e5bae9fdf9bc929181900390910190a25050565b815481835581811115610ab457600083815260209020610ab4918101908301610ab9565b505050565b6107f591905b80821115610ad35760008155600101610abf565b509056006163636573732064656e69656400000000000000000000000000000000000000a165627a7a723058201403b0aa8905e3172f1710a797cae5bdae7912a2eae8f18a55a18828f14fb2730029a165627a7a7230582082056cc210d714e670824f7b61f07f388bde2428cee492eab94a4d6e58fde2b40029

Swarm Source

bzzr://1403b0aa8905e3172f1710a797cae5bdae7912a2eae8f18a55a18828f14fb273
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.