ETH Price: $3,136.56 (-0.48%)
Gas: 6 Gwei

Contract

0x9047237b16c918d94Db3d1a9a86d7A2A605CdFE7
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
0xc6235af764ffe8cd03c8a48d691f5b8f277152f2ed13baa1b437037ef2d4c3f5Registration(pending)2024-05-05 8:40:263 hrs ago1714898426IN
LionsShare.io
0.04 ETH(Pending)(Pending)
0x167127859e4cb86ce1fd1ee2eaf2e98b328ee2ff6424a4bd157c6707d2a17abfRegistration(pending)2024-05-05 7:25:505 hrs ago1714893950IN
LionsShare.io
0.04 ETH(Pending)(Pending)
0x09af2e20d0f85df0236f82eb14355ab9cd1efd0b5b383552eed601783b3dee6cRegistration(pending)2024-05-05 2:29:299 hrs ago1714876169IN
LionsShare.io
0.04 ETH(Pending)(Pending)
0x60a05a79ce68eb657ee14b3608d7920ef666f71b956199c3a9b9802f6caba363Purchase Level(pending)2024-05-05 2:28:379 hrs ago1714876117IN
LionsShare.io
0.1 ETH(Pending)(Pending)
Purchase Level175113942023-06-19 4:23:23321 days ago1687148603IN
LionsShare.io
0.2 ETH0.0087270457
Transfer153819112022-08-21 4:45:29623 days ago1661057129IN
LionsShare.io
0 ETH0.000061192
Transfer149546502022-06-13 6:59:21692 days ago1655103561IN
LionsShare.io
0 ETH0.00123959
Registration134457812021-10-19 3:23:46929 days ago1634613826IN
LionsShare.io
0.04 ETH0.0125347240
Registration127143082021-06-27 5:41:231043 days ago1624772483IN
LionsShare.io
0.04 ETH0.000125324
Registration127142772021-06-27 5:33:431043 days ago1624772023IN
LionsShare.io
0.04 ETH0.000125324
Registration127142432021-06-27 5:26:401043 days ago1624771600IN
LionsShare.io
0.04 ETH0.000125324
Registration126723152021-06-20 16:43:071049 days ago1624207387IN
LionsShare.io
0.04 ETH0.0003133210
Purchase Level126304632021-06-14 4:38:011056 days ago1623645481IN
LionsShare.io
0.1 ETH0.000523343
Registration126253552021-06-13 9:37:431057 days ago1623577063IN
LionsShare.io
0.04 ETH0.001809435
Registration126233782021-06-13 2:08:481057 days ago1623550128IN
LionsShare.io
0.04 ETH0.000187926
Registration126233772021-06-13 2:08:451057 days ago1623550125IN
LionsShare.io
0.04 ETH0.001986296
Registration126090292021-06-10 20:43:501059 days ago1623357830IN
LionsShare.io
0.04 ETH0.002565448
Registration126085642021-06-10 18:59:481059 days ago1623351588IN
LionsShare.io
0.04 ETH0.002647398
Registration126083602021-06-10 18:17:591059 days ago1623349079IN
LionsShare.io
0.04 ETH0.002838718.10000014
Registration125967482021-06-08 23:07:271061 days ago1623193647IN
LionsShare.io
0.04 ETH0.0005639718
Transfer125940922021-06-08 13:18:061061 days ago1623158286IN
LionsShare.io
0 ETH0.00035717
Transfer125937842021-06-08 12:10:321062 days ago1623154232IN
LionsShare.io
0 ETH0.0004220
Transfer125937712021-06-08 12:07:221062 days ago1623154042IN
LionsShare.io
0 ETH0.00027313
Transfer125870512021-06-07 11:07:311063 days ago1623064051IN
LionsShare.io
0 ETH0.00025212
Transfer125828042021-06-06 19:24:521063 days ago1623007492IN
LionsShare.io
0 ETH0.0013462644
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
175113942023-06-19 4:23:23321 days ago1687148603
LionsShare.io
0.2 ETH
134457812021-10-19 3:23:46929 days ago1634613826
LionsShare.io
0.02 ETH
134457812021-10-19 3:23:46929 days ago1634613826
LionsShare.io
0.02 ETH
126304632021-06-14 4:38:011056 days ago1623645481
LionsShare.io
0.1 ETH
126253552021-06-13 9:37:431057 days ago1623577063
LionsShare.io
0.02 ETH
126253552021-06-13 9:37:431057 days ago1623577063
LionsShare.io
0.02 ETH
126233772021-06-13 2:08:451057 days ago1623550125
LionsShare.io
0.02 ETH
126233772021-06-13 2:08:451057 days ago1623550125
LionsShare.io
0.02 ETH
126090292021-06-10 20:43:501059 days ago1623357830
LionsShare.io
0.02 ETH
126090292021-06-10 20:43:501059 days ago1623357830
LionsShare.io
0.02 ETH
126085642021-06-10 18:59:481059 days ago1623351588
LionsShare.io
0.02 ETH
126085642021-06-10 18:59:481059 days ago1623351588
LionsShare.io
0.02 ETH
126083602021-06-10 18:17:591059 days ago1623349079
LionsShare.io
0.02 ETH
126083602021-06-10 18:17:591059 days ago1623349079
LionsShare.io
0.02 ETH
125828042021-06-06 19:24:521063 days ago1623007492
LionsShare.io
0.02 ETH
125828042021-06-06 19:24:521063 days ago1623007492
LionsShare.io
0.02 ETH
125826222021-06-06 18:45:161063 days ago1623005116
LionsShare.io
0.05 ETH
125820352021-06-06 16:33:521063 days ago1622997232
LionsShare.io
0.02 ETH
125820352021-06-06 16:33:521063 days ago1622997232
LionsShare.io
0.02 ETH
125800572021-06-06 9:11:541064 days ago1622970714
LionsShare.io
0.05 ETH
125795232021-06-06 7:17:131064 days ago1622963833
LionsShare.io
0.02 ETH
125795232021-06-06 7:17:131064 days ago1622963833
LionsShare.io
0.02 ETH
125794452021-06-06 7:00:341064 days ago1622962834
LionsShare.io
0.02 ETH
125794452021-06-06 7:00:341064 days ago1622962834
LionsShare.io
0.02 ETH
125792622021-06-06 6:21:281064 days ago1622960488
LionsShare.io
0.02 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LionShare

Compiler Version
v0.6.8+commit.0bbfe453

Optimization Enabled:
Yes with 1000 runs

Other Settings:
byzantium EvmVersion, BSD-3-Clause license
/**
 *Submitted for verification at Etherscan.io on 2020-07-14
*/

// SPDX-License-Identifier: BSD-3-Clause

/** 
*                                                                                                                                  
*       ##### /                                                             #######      /                                         
*    ######  /          #                                                 /       ###  #/                                          
*   /#   /  /          ###                                               /         ##  ##                                          
*  /    /  /            #                                                ##        #   ##                                          
*      /  /                                                               ###          ##                                          
*     ## ##           ###        /###    ###  /###         /###          ## ###        ##  /##      /###    ###  /###       /##    
*     ## ##            ###      / ###  /  ###/ #### /     / #### /        ### ###      ## / ###    / ###  /  ###/ #### /   / ###   
*     ## ##             ##     /   ###/    ##   ###/     ##  ###/           ### ###    ##/   ###  /   ###/    ##   ###/   /   ###  
*     ## ##             ##    ##    ##     ##    ##   k ####                  ### /##  ##     ## ##    ##     ##         ##    ### 
*     ## ##             ##    ##    ##     ##    ##   a   ###                   #/ /## ##     ## ##    ##     ##         ########  
*     #  ##             ##    ##    ##     ##    ##   i     ###                  #/ ## ##     ## ##    ##     ##         #######   
*        /              ##    ##    ##     ##    ##   z       ###                 # /  ##     ## ##    ##     ##         ##        
*    /##/           /   ##    ##    ##     ##    ##   e  /###  ##       /##        /   ##     ## ##    /#     ##         ####    / 
*   /  ############/    ### /  ######      ###   ###  n / #### /       /  ########/    ##     ##  ####/ ##    ###         ######/  
*  /     #########       ##/    ####        ###   ### -    ###/       /     #####       ##    ##   ###   ##    ###         #####   
*  #                                                  w               |                       /                                    
*   ##                                                e                \)                    /                                     
*                                                     b                                     /                                      
*                                                                                          /                                       
*
*
* Lion's Share is the very first true follow-me matrix smart contract ever created. 
* https://www.lionsshare.io
* Get your share, join today!
*/

pragma solidity 0.6.8;

contract LionShare {

  struct Account {
    uint32 id;
    uint32 directSales;
    uint8[] activeLevel;
    bool exists;
    address sponsor;
    mapping(uint8 => L1) x31Positions;
    mapping(uint8 => L2) x22Positions;
  }

  struct L1 {
    uint32 directSales;
    uint16 cycles;
    uint8 passup;
    uint8 reEntryCheck;
    uint8 placement;
    address sponsor;
  }

  struct L2 {
    uint32 directSales;
    uint16 cycles;
    uint8 passup;
    uint8 cycle;
    uint8 reEntryCheck;
    uint8 placementLastLevel;
    uint8 placementSide;
    address sponsor;
    address placedUnder;
    address[] placementFirstLevel;
  }

  uint internal constant ENTRY_ENABLED = 1;
  uint internal constant ENTRY_DISABLED = 2;
  uint public constant REENTRY_REQ = 2;

  mapping(address => Account) public members;
  mapping(uint32 => address) public idToMember;
  mapping(uint8 => uint) public levelCost;
  
  uint internal reentry_status;
  uint32 public lastId;
  uint8 public topLevel;
  address internal owner;

  event Registration(address member, uint memberId, address sponsor);
  event Upgrade(address member, address sponsor, uint8 matrix, uint8 level);
  event PlacementL1(address member, address sponsor, uint8 level, uint8 placement, bool passup);  
  event PlacementL2(address member, address sponsor, uint8 level, uint8 placementSide, address placedUnder, bool passup);
  event Cycle(address indexed member, address fromPosition, uint8 matrix, uint8 level);
  event PlacementReEntry(address indexed member, address reEntryFrom, uint8 matrix, uint8 level);
  event FundsPayout(address indexed member, address payoutFrom, uint8 matrix, uint8 level);
  event FundsPassup(address indexed member, address passupFrom, uint8 matrix, uint8 level);

  modifier isOwner(address _account) {
    require(owner == _account, "Restricted Access!");
    _;
  }

  modifier isMember(address _addr) {
    require(members[_addr].exists, "Register Account First!");
    _;
  }
  
  modifier blockReEntry() {
    require(reentry_status != ENTRY_DISABLED, "Security Block");
    reentry_status = ENTRY_DISABLED;

    _;

    reentry_status = ENTRY_ENABLED;
  }

  constructor(address _addr) public {
    owner = msg.sender;

    reentry_status = ENTRY_ENABLED;

    levelCost[1] = 0.02 ether;
    topLevel = 1;

    createAccount(_addr, _addr, true);
    handlePositionL1(_addr, _addr, _addr, 1, true);
    handlePositionL2(_addr, _addr, _addr, 1, true);
  }

  fallback() external payable blockReEntry() {
    preRegistration(msg.sender, bytesToAddress(msg.data));
  }

  receive() external payable blockReEntry() {
    preRegistration(msg.sender, idToMember[1]);
  }

  function registration(address _sponsor) external payable blockReEntry() {
    preRegistration(msg.sender, _sponsor);
  }

  function preRegistration(address _addr, address _sponsor) internal {
    require((levelCost[1] * 2) == msg.value, "Require .04 eth to register!");

    createAccount(_addr, _sponsor, false);

    members[_sponsor].directSales++;
    
    handlePositionL1(_addr, _sponsor, _sponsor, 1, false);
    handlePositionL2(_addr, _sponsor, _sponsor, 1, false);
    
    handlePayout(_addr, 0, 1);
    handlePayout(_addr, 1, 1);
  }
  
  function createAccount(address _addr, address _sponsor, bool _initial) internal {
    require(!members[_addr].exists, "Already a member!");

    if (_initial == false) {
      require(members[_sponsor].exists, "Sponsor dont exist!");
    }

    lastId++;    

    members[_addr] = Account({id: lastId, sponsor: _sponsor, exists: true, directSales: 0, activeLevel: new uint8[](2)});
    idToMember[lastId] = _addr;
    
    emit Registration(_addr, lastId, _sponsor);
  }

  function purchaseLevel(uint8 _matrix, uint8 _level) external payable isMember(msg.sender) blockReEntry() {
    require((_matrix == 1 || _matrix == 2), "Invalid matrix identifier.");
    require((_level > 0 && _level <= topLevel), "Invalid matrix level.");    

    uint8 activeLevel = members[msg.sender].activeLevel[(_matrix - 1)];
    uint8 otherLevel = 1;

    if (_matrix == 2) {
      otherLevel = 0;
    }

    require((activeLevel < _level), "Already active at level!");
    require((activeLevel == (_level - 1)), "Level upgrade req. in order!");
    require(((members[msg.sender].activeLevel[otherLevel] * 2) >= _level), "Double upgrade exeeded.");
    require((msg.value == levelCost[_level]), "Wrong amount transferred.");
  
    address sponsor = members[msg.sender].sponsor;
    
    Upgrade(msg.sender, sponsor, _matrix, _level);

    if (_matrix == 1) {
      handlePositionL1(msg.sender, sponsor, findActiveSponsor(msg.sender, sponsor, 0, _level, true), _level, false);
    } else {
      handlePositionL2(msg.sender, sponsor, findActiveSponsor(msg.sender, sponsor, 1, _level, true), _level, false);
    }

    handlePayout(msg.sender, (_matrix - 1), _level);    
  }

  function handlePositionL1(address _addr, address _mainSponsor, address _sponsor, uint8 _level, bool _initial) internal {
    Account storage member = members[_addr];

    member.activeLevel[0] = _level;
    member.x31Positions[_level] = L1({sponsor: _sponsor, placement: 0, directSales: 0, cycles: 0, passup: 0, reEntryCheck: 0});

    if (_initial == true) {
      return;
    } else if (_mainSponsor == _sponsor) {
      members[_mainSponsor].x31Positions[_level].directSales++;
    } else {
      member.x31Positions[_level].reEntryCheck = 1;
    }
    
    sponsorPlaceL1(_addr, _sponsor, _level, false);
  }

  function sponsorPlaceL1(address _addr, address _sponsor, uint8 _level, bool passup) internal {
    L1 storage position = members[_sponsor].x31Positions[_level];

    emit PlacementL1(_addr, _sponsor, _level, (position.placement + 1), passup);

    if (position.placement >= 2) {
      emit Cycle(_sponsor, _addr, 1, _level);

      position.placement = 0;
      position.cycles++;

      if (_sponsor != idToMember[1]) {
        position.passup++;

        sponsorPlaceL1(_sponsor, position.sponsor, _level, true);
      }
    } else {
      position.placement++;
    }
  }

  function handlePositionL2(address _addr, address _mainSponsor, address _sponsor, uint8 _level, bool _initial) internal {
    Account storage member = members[_addr];
    
    member.activeLevel[1] = _level;
    member.x22Positions[_level] = L2({sponsor: _sponsor, directSales: 0, cycles: 0, passup: 0, cycle: 0, reEntryCheck: 0, placementSide: 0, placedUnder: _sponsor, placementFirstLevel: new address[](0), placementLastLevel: 0});

    if (_initial == true) {
      return;
    } else if (_mainSponsor == _sponsor) {
      members[_mainSponsor].x22Positions[_level].directSales++;
    } else {
      member.x22Positions[_level].reEntryCheck = 1;
    }

    sponsorPlaceL2(_addr, _sponsor, _level, false);
  }

  function sponsorPlaceL2(address _addr, address _sponsor, uint8 _level, bool passup) internal {
    L2 storage member = members[_addr].x22Positions[_level];
    L2 storage position = members[_sponsor].x22Positions[_level];

    if (position.placementFirstLevel.length < 2) {
      if (position.placementFirstLevel.length == 0) {
        member.placementSide = 1;
      } else {
        member.placementSide = 2;
      }
      
      member.placedUnder = _sponsor;
      position.placementFirstLevel.push(_addr);

      if (_sponsor != idToMember[1]) {
        position.passup++;
      }
      
      positionPlaceLastLevelL2(_addr, _sponsor, position.placedUnder, position.placementSide, _level);
    } else {

      if (position.placementLastLevel == 0) {
        member.placementSide = 1;
        member.placedUnder = position.placementFirstLevel[0];
        position.placementLastLevel += 1;      
      } else if ((position.placementLastLevel & 2) == 0) {
        member.placementSide = 2;
        member.placedUnder = position.placementFirstLevel[0];
        position.placementLastLevel += 2;
      } else if ((position.placementLastLevel & 4) == 0) {
        member.placementSide = 1;
        member.placedUnder = position.placementFirstLevel[1];
        position.placementLastLevel += 4;
      } else {
        member.placementSide = 2;
        member.placedUnder = position.placementFirstLevel[1];
        position.placementLastLevel += 8;
      }

      if (member.placedUnder != idToMember[1]) {
        members[member.placedUnder].x22Positions[_level].placementFirstLevel.push(_addr);        
      }
    }

    if ((position.placementLastLevel & 15) == 15) {
      emit Cycle(_sponsor, _addr, 2, _level);

      position.placementFirstLevel = new address[](0);
      position.placementLastLevel = 0;
      position.cycles++;

      if (_sponsor != idToMember[1]) {
        position.cycle++;

        sponsorPlaceL2(_sponsor, position.sponsor, _level, true);
      }
    }

    emit PlacementL2(_addr, _sponsor, _level, member.placementSide, member.placedUnder, passup);
  }

  function positionPlaceLastLevelL2(address _addr, address _sponsor, address _position, uint8 _placementSide, uint8 _level) internal {
    L2 storage position = members[_position].x22Positions[_level];

    if (position.placementSide == 0 && _sponsor == idToMember[1]) {
      return;
    }
    
    if (_placementSide == 1) {
      if ((position.placementLastLevel & 1) == 0) {
        position.placementLastLevel += 1;
      } else {
        position.placementLastLevel += 2;
      }
    } else {
      if ((position.placementLastLevel & 4) == 0) {
        position.placementLastLevel += 4;
      } else {
        position.placementLastLevel += 8;
      }
    }

    if ((position.placementLastLevel & 15) == 15) {
      emit Cycle(_position, _addr, 2, _level);

      position.placementFirstLevel = new address[](0);
      position.placementLastLevel = 0;
      position.cycles++;

      if (_position != idToMember[1]) {
        position.cycle++;

        sponsorPlaceL2(_position, position.sponsor, _level, true);
      }
    }
  }

  function findActiveSponsor(address _addr, address _sponsor, uint8 _matrix, uint8 _level, bool _emit) internal returns (address) {
    address sponsorAddress = _sponsor;

    while (true) {
      if (members[sponsorAddress].activeLevel[_matrix] >= _level) {
        return sponsorAddress;
      }

      if (_emit == true) {
        emit FundsPassup(sponsorAddress, _addr, (_matrix + 1), _level);
      }

      sponsorAddress = members[sponsorAddress].sponsor;
    }
  }

  function handleReEntryL1(address _addr, uint8 _level) internal {
    L1 storage member = members[_addr].x31Positions[_level];
    bool reentry = false;

    member.reEntryCheck++;

    if (member.reEntryCheck >= REENTRY_REQ) {
      address sponsor = members[_addr].sponsor;

      if (members[sponsor].activeLevel[0] >= _level) {
        member.reEntryCheck = 0;
        reentry = true;
      } else {
        sponsor = findActiveSponsor(_addr, sponsor, 0, _level, false);

        if (member.sponsor != sponsor && members[sponsor].activeLevel[0] >= _level) {        
          reentry = true;
        }
      }

      if (reentry == true) {
        member.sponsor = sponsor;

        emit PlacementReEntry(sponsor, _addr, 1, _level);
      }
    }
  }

  function handleReEntryL2(address _addr, uint8 _level) internal {
    L2 storage member = members[_addr].x22Positions[_level];
    bool reentry = false;

    member.reEntryCheck++;

    if (member.reEntryCheck >= REENTRY_REQ) {
      address sponsor = members[_addr].sponsor;

      if (members[sponsor].activeLevel[1] >= _level) {
        member.reEntryCheck = 0;
        member.sponsor = sponsor;
        reentry = true;
      } else {
        address active_sponsor = findActiveSponsor(_addr, sponsor, 1, _level, false);

        if (member.sponsor != active_sponsor && members[active_sponsor].activeLevel[1] >= _level) {
          member.sponsor = active_sponsor;
          reentry = true;
        }
      }

      if (reentry == true) {
        emit PlacementReEntry(member.sponsor, _addr, 2, _level);
      }
    }
  }

  function findPayoutReceiver(address _addr, uint8 _matrix, uint8 _level) internal returns (address) {    
    address from;
    address receiver;

    if (_matrix == 0) {      
      receiver = members[_addr].x31Positions[_level].sponsor;

      while (true) {
        L1 storage member = members[receiver].x31Positions[_level];

        if (member.passup == 0) {
          return receiver;
        }

        member.passup--;
        from = receiver;
        receiver = member.sponsor;

        if (_level > 1 && member.reEntryCheck > 0) {          
          handleReEntryL1(from, _level);
        }
      }
    } else {
      receiver = members[_addr].x22Positions[_level].sponsor;

      while (true) {
        L2 storage member = members[receiver].x22Positions[_level];

        if (member.passup == 0 && member.cycle == 0) {
          return receiver;
        }

        if (member.passup > 0) {
          member.passup--;
          receiver = member.placedUnder;
        } else {
          member.cycle--;
          from = receiver;
          receiver = member.sponsor;  

          if (_level > 1 && member.reEntryCheck > 0) {
            handleReEntryL2(from, _level);
          }
        }
      }
    }
  }

  function handlePayout(address _addr, uint8 _matrix, uint8 _level) internal {
    address receiver = findPayoutReceiver(_addr, _matrix, _level);

    emit FundsPayout(receiver, _addr, (_matrix + 1), _level);

    (bool success, ) = address(uint160(receiver)).call{ value: levelCost[_level], gas: 40000 }("");

    if (success == false) { //Failsafe to prevent malicious contracts from blocking matrix
      (success, ) = address(uint160(idToMember[1])).call{ value: levelCost[_level], gas: 40000 }("");
      require(success, 'Transfer Failed');
    }
  }

  function getAffiliateId() external view returns (uint) {
    return members[msg.sender].id;
  }

  function getAffiliateWallet(uint32 memberId) external view returns (address) {
    return idToMember[memberId];
  }

  function setupAccount(address _addr, address _sponsor, uint8 _level) external isOwner(msg.sender) {
    createAccount(_addr, _sponsor, false);
    compLevel(_addr, 1, _level);
    compLevel(_addr, 2, _level);
  }

  function compLevel(address _addr, uint8 _matrix, uint8 _level) public isOwner(msg.sender) isMember(_addr) {
    require((_matrix == 1 || _matrix == 2), "Invalid matrix identifier.");
    require((_level > 0 && _level <= topLevel), "Invalid matrix level.");

    uint8 matrix = _matrix - 1;
    uint8 activeLevel = members[_addr].activeLevel[matrix];
    address sponsor = members[_addr].sponsor;

    require((activeLevel < _level), "Already active at level!");

    for (uint8 num = (activeLevel + 1);num <= _level;num++) {
      Upgrade(_addr, sponsor, _matrix, num);

      if (matrix == 0) {
        handlePositionL1(_addr, sponsor, findActiveSponsor(_addr, sponsor, 0, num, true), num, false);
      } else {
        handlePositionL2(_addr, sponsor, findActiveSponsor(_addr, sponsor, 1, num, true), num, false);
      }
    }
  }

  function addLevel(uint _levelPrice) external isOwner(msg.sender) {
    require((levelCost[topLevel] < _levelPrice), "Check price point!");

    topLevel++;

    levelCost[topLevel] = _levelPrice;

    handlePositionL1(idToMember[1], idToMember[1], idToMember[1], topLevel, true);
    handlePositionL2(idToMember[1], idToMember[1], idToMember[1], topLevel, true);
  }

  function updateLevelCost(uint8 _level, uint _levelPrice) external isOwner(msg.sender) {
    require((_level > 0 && _level <= topLevel), "Invalid matrix level.");
    require((_levelPrice > 0), "Check price point!");

    if (_level > 1) {
      require((levelCost[(_level - 1)] < _levelPrice), "Check price point!");
    }

    if (_level < topLevel) {
      require((levelCost[(_level + 1)] > _levelPrice), "Check price point!");
    }

    levelCost[_level] = _levelPrice;
  }

  function bytesToAddress(bytes memory _source) private pure returns (address addr) {
    assembly {
      addr := mload(add(_source, 20))
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"member","type":"address"},{"indexed":false,"internalType":"address","name":"fromPosition","type":"address"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"}],"name":"Cycle","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"member","type":"address"},{"indexed":false,"internalType":"address","name":"passupFrom","type":"address"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"}],"name":"FundsPassup","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"member","type":"address"},{"indexed":false,"internalType":"address","name":"payoutFrom","type":"address"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"}],"name":"FundsPayout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"member","type":"address"},{"indexed":false,"internalType":"address","name":"sponsor","type":"address"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"placement","type":"uint8"},{"indexed":false,"internalType":"bool","name":"passup","type":"bool"}],"name":"PlacementL1","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"member","type":"address"},{"indexed":false,"internalType":"address","name":"sponsor","type":"address"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"placementSide","type":"uint8"},{"indexed":false,"internalType":"address","name":"placedUnder","type":"address"},{"indexed":false,"internalType":"bool","name":"passup","type":"bool"}],"name":"PlacementL2","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"member","type":"address"},{"indexed":false,"internalType":"address","name":"reEntryFrom","type":"address"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"}],"name":"PlacementReEntry","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"member","type":"address"},{"indexed":false,"internalType":"uint256","name":"memberId","type":"uint256"},{"indexed":false,"internalType":"address","name":"sponsor","type":"address"}],"name":"Registration","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"member","type":"address"},{"indexed":false,"internalType":"address","name":"sponsor","type":"address"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"}],"name":"Upgrade","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"REENTRY_REQ","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_levelPrice","type":"uint256"}],"name":"addLevel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"uint8","name":"_matrix","type":"uint8"},{"internalType":"uint8","name":"_level","type":"uint8"}],"name":"compLevel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAffiliateId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"memberId","type":"uint32"}],"name":"getAffiliateWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"}],"name":"idToMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastId","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"name":"levelCost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"members","outputs":[{"internalType":"uint32","name":"id","type":"uint32"},{"internalType":"uint32","name":"directSales","type":"uint32"},{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"address","name":"sponsor","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_matrix","type":"uint8"},{"internalType":"uint8","name":"_level","type":"uint8"}],"name":"purchaseLevel","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_sponsor","type":"address"}],"name":"registration","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"address","name":"_sponsor","type":"address"},{"internalType":"uint8","name":"_level","type":"uint8"}],"name":"setupAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"topLevel","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_level","type":"uint8"},{"internalType":"uint256","name":"_levelPrice","type":"uint256"}],"name":"updateLevelCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b506040516200488f3803806200488f833981810160405260208110156200003757600080fd5b505160048054600160038190556000819052600260205266470de4df8200007fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0556401000000007fffffffffffffff0000000000000000000000000000000000000000ffffffffff9092163365010000000000021764ff0000000019168217909255620000cc91839182919062000105810204565b620000e5818080600180640100000000620003b0810204565b620000fe818080600180640100000000620005df810204565b5062001501565b600160a060020a03831660009081526020819052604090206002015460ff16156200019157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f416c72656164792061206d656d62657221000000000000000000000000000000604482015290519081900360640190fd5b806200022257600160a060020a03821660009081526020819052604090206002015460ff166200022257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f53706f6e736f7220646f6e742065786973742100000000000000000000000000604482015290519081900360640190fd5b6004805463ffffffff808216600101811663ffffffff1990921691909117918290556040805160a081018252929091168252600060208301528051600280825260608201835291830191816020016020820280368337505050815260016020808301829052600160a060020a0386811660409485015287166000908152808252839020845181548684015163ffffffff1990911663ffffffff9283161767ffffffff0000000019166401000000009290911691909102178155928401518051620002f4938501929190910190620013a3565b50606082810151600292909201805460809094015160ff199094169215159290921761010060a860020a031916610100600160a060020a0394851602179091556004805463ffffffff9081166000908152600160209081526040918290208054600160a060020a0319168a881690811790915593548251948552909216918301919091529285168184015291517ff6c21a7ac3d366bc7ad22dd21433c86cb88a57fdff3acdd76408fc302241af379281900390910190a1505050565b600160a060020a038516600090815260208190526040812060018101805491928592620003d957fe5b60009182526020808320818304018054601f9093166101000a60ff8181021990941695841602949094179093556040805160c0810182528381528085018481528183018581526060830186815260808401878152600160a060020a038d811660a087019081528d89168a5260038c01909a5295909720935184549351925191519751985163ffffffff1990941663ffffffff9091161765ffff00000000191664010000000061ffff909316929092029190911766ff000000000000191666010000000000009186169190910217603860020a60ff0219166701000000000000009585169590950294909417604060020a60ff021916680100000000000000009590931694909402919091177fffffff0000000000000000000000000000000000000000ffffffffffffffffff1669010000000000000000009290911691909102179055811515600114156200052f5750620005d8565b83600160a060020a031685600160a060020a031614156200059157600160a060020a03851660009081526020818152604080832060ff871684526003019091529020805463ffffffff8082166001011663ffffffff19909116179055620005be565b60ff8316600090815260038201602052604090208054603860020a60ff0219166701000000000000001790555b620005d68685856000640100000000620008fa810204565b505b5050505050565b600160a060020a03851660009081526020819052604090206001808201805485929081106200060a57fe5b6000918252602080832081830401805460ff958616601f90941661010090810a9485029690940219169490941790935560408051610140810182528381529384018390528301829052606083018290526080830182905260a0830182905260c08301829052600160a060020a03871660e0840181905290830152610120820190604051908082528060200260200182016040528015620006b4578160200160208202803683370190505b508152508160040160008560ff1660ff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548161ffff021916908361ffff16021790555060408201518160000160066101000a81548160ff021916908360ff16021790555060608201518160000160076101000a81548160ff021916908360ff16021790555060808201518160000160086101000a81548160ff021916908360ff16021790555060a08201518160000160096101000a81548160ff021916908360ff16021790555060c082015181600001600a6101000a81548160ff021916908360ff16021790555060e082015181600001600b6101000a815481600160a060020a030219169083600160a060020a031602179055506101008201518160010160006101000a815481600160a060020a030219169083600160a060020a031602179055506101208201518160020190805190602001906200083c92919062001450565b50505060018215151415620008525750620005d8565b83600160a060020a031685600160a060020a03161415620008b457600160a060020a03851660009081526020818152604080832060ff871684526004019091529020805463ffffffff8082166001011663ffffffff19909116179055620008e2565b60ff8316600090815260048201602052604090208054604060020a60ff021916680100000000000000001790555b620005d6868585600064010000000062000adb810204565b600160a060020a0380841660008181526020818152604080832060ff808916808652600390920184529382902080548351978c1688529387019590955285820152600168010000000000000000909204831691909101909116606084015283151560808401525190917f3177570e9575b071562484c332319d7abd50dd64dae2cc34a42ff5d65264ce6d919081900360a00190a1805460026801000000000000000090910460ff161062000aab5760408051600160a060020a0387811682526001602083015260ff8616828401529151918616916000805160206200486f8339815191529181900360600190a2805468ff0000ffff000000001981166001640100000000604060020a60ff021990931683900461ffff90811682011690920217825560008190526020526000805160206200484f83398151915254600160a060020a039081169085161462000aa5578054600160ff6601000000000000808404821683019091160266ff000000000000199092169190911780835562000aa5918691600160a060020a03690100000000000000000090910416908690640100000000620008fa810204565b620005d8565b8054604060020a60ff02198116680100000000000000009182900460ff9081166001011690910217905550505050565b600160a060020a0380851660009081526020818152604080832060ff8716808552600491820184528285209589168552848452828520908552019091529020600280820154101562000c3e57600281015462000b52578154605060020a60ff0219166a010000000000000000000017825562000b6e565b8154605060020a60ff0219166a02000000000000000000001782555b60018281018054600160a060020a0319908116600160a060020a0389811691821790935560028501805480860182556000918252602080832090910180549094168c8616179093558490529290526000805160206200484f83398151915254161462000bfd578054600160ff6601000000000000808404821692909201160266ff000000000000199091161781555b6001810154815462000c389188918891600160a060020a0316906a0100000000000000000000900460ff1688640100000000620010ef810204565b62000f2c565b80546901000000000000000000900460ff1662000cdf578154605060020a60ff0219166a010000000000000000000017825560028101805460009062000c8057fe5b60009182526020909120015460018381018054600160a060020a031916600160a060020a0390931692909217909155815460ff6901000000000000000000808304821690930116909102604860020a60ff021990911617815562000ea4565b80546901000000000000000000900460021662000d7e578154605060020a60ff0219166a020000000000000000000017825560028101805460009062000d2157fe5b600091825260209091200154600183018054600160a060020a031916600160a060020a03909216919091179055805460ff6901000000000000000000808304821660020190911602604860020a60ff021990911617815562000ea4565b80546901000000000000000000900460041662000e1f578154605060020a60ff0219166a0100000000000000000000178255600281018054600190811062000dc257fe5b600091825260209091200154600183018054600160a060020a031916600160a060020a03909216919091179055805460ff6901000000000000000000808304821660040190911602604860020a60ff021990911617815562000ea4565b8154605060020a60ff0219166a0200000000000000000000178255600281018054600190811062000e4c57fe5b600091825260209091200154600183018054600160a060020a031916600160a060020a03909216919091179055805460ff6901000000000000000000808304821660080190911602604860020a60ff02199091161781555b6001600081905260208190526000805160206200484f8339815191525490830154600160a060020a0390811691161462000f2c57600182810154600160a060020a0390811660009081526020818152604080832060ff8a1684526004018252822060020180549485018155825290209091018054600160a060020a0319169188169190911790555b8054600f6901000000000000000000909104811614156200106a5760408051600160a060020a0388811682526002602083015260ff8716828401529151918716916000805160206200486f8339815191529181900360600190a2604080516000815260208101918290525162000fa791600284019162001450565b50805469ff000000ffff000000001981166001640100000000604860020a60ff021990931683900461ffff90811682011690920217825560008190526020526000805160206200484f83398151915254600160a060020a03908116908616146200106a578054600160ff6701000000000000008084048216830190911602603860020a60ff0219909216919091178083556200106a918791600160a060020a036b0100000000000000000000009091041690879064010000000062000adb810204565b8154600183015460408051600160a060020a03808b168252808a16602083015260ff808a16838501526a010000000000000000000090950494909416606082015292909116608083015284151560a0830152517f24ba8014500fa35b0f3c906afcf122c44bbbe189dd2df854b412c2e1d8e36b2e9181900360c00190a1505050505050565b600160a060020a03831660009081526020818152604080832060ff80861685526004909101909252909120805490916a010000000000000000000090910416158015620011615750600160008190526020526000805160206200484f83398151915254600160a060020a038681169116145b156200116e5750620005d8565b8260ff1660011415620011f357805469010000000000000000009004600116620011c257805460ff6901000000000000000000808304821660010190911602604860020a60ff0219909116178155620011ed565b805460ff6901000000000000000000808304821660020190911602604860020a60ff02199091161781555b62001265565b8054690100000000000000000090046004166200123a57805460ff6901000000000000000000808304821660040190911602604860020a60ff021990911617815562001265565b805460ff6901000000000000000000808304821660080190911602604860020a60ff02199091161781555b8054600f690100000000000000000090910481161415620005d65760408051600160a060020a0388811682526002602083015260ff8516828401529151918616916000805160206200486f8339815191529181900360600190a26040805160008152602081019182905251620012e091600284019162001450565b50805469ff000000ffff000000001981166001640100000000604860020a60ff021990931683900461ffff90811682011690920217825560008190526020526000805160206200484f83398151915254600160a060020a0390811690851614620005d6578054600160ff6701000000000000008084048216830190911602603860020a60ff021990921691909117808355620005d6918691600160a060020a036b0100000000000000000000009091041690859064010000000062000adb810204565b82805482825590600052602060002090601f016020900481019282156200143e5791602002820160005b838211156200140d57835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302620013cd565b80156200143c5782816101000a81549060ff02191690556001016020816000010492830192600103026200140d565b505b506200144c929150620014b6565b5090565b828054828255906000526020600020908101928215620014a8579160200282015b82811115620014a85782518254600160a060020a031916600160a060020a0390911617825560209092019160019091019062001471565b506200144c929150620014da565b620014d791905b808211156200144c57805460ff19168155600101620014bd565b90565b620014d791905b808211156200144c578054600160a060020a0319168155600101620014e1565b61333e80620015116000396000f3fe6080604052600436106100fe576000357c0100000000000000000000000000000000000000000000000000000000900480637a8d05021161009c578063a9c4d2ce11610076578063a9c4d2ce1461046c578063b93d9004146104b3578063c1292cc3146104e0578063d4ac38c81461050e576101af565b80637a8d0502146103e95780637d02722f14610419578063975cb1c114610441576101af565b806330ce7ac6116100d857806330ce7ac61461033f5780633a1ad04614610383578063446aac8d146103ad5780634e619ace146103d4576101af565b80630840605a1461026057806308ae4b0c146102885780631f1025ee146102f3576101af565b366101af576002600354141561016357604080516000805160206132e9833981519152815260206004820152600e60248201527f536563757269747920426c6f636b000000000000000000000000000000000000604482015290519081900360640190fd5b6002600355600160008190526020527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f546101a8903390600160a060020a0316610541565b6001600355005b6002600354141561020f57604080516000805160206132e9833981519152815260206004820152600e60248201527f536563757269747920426c6f636b000000000000000000000000000000000000604482015290519081900360640190fd5b60026003819055506101a83361025b6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061065992505050565b610541565b6102866004803603602081101561027657600080fd5b5035600160a060020a0316610660565b005b34801561029457600080fd5b506102bb600480360360208110156102ab57600080fd5b5035600160a060020a03166106d7565b6040805163ffffffff958616815293909416602084015290151582840152600160a060020a0316606082015290519081900360800190f35b3480156102ff57600080fd5b506103236004803603602081101561031657600080fd5b503563ffffffff16610716565b60408051600160a060020a039092168252519081900360200190f35b34801561034b57600080fd5b506102866004803603606081101561036257600080fd5b50600160a060020a038135169060ff60208201358116916040013516610737565b34801561038f57600080fd5b50610286600480360360208110156103a657600080fd5b5035610a9f565b3480156103b957600080fd5b506103c2610c6a565b60408051918252519081900360200190f35b3480156103e057600080fd5b506103c2610c84565b3480156103f557600080fd5b506103236004803603602081101561040c57600080fd5b503563ffffffff16610c89565b6102866004803603604081101561042f57600080fd5b5060ff81358116916020013516610ca4565b34801561044d57600080fd5b5061045661116e565b6040805160ff9092168252519081900360200190f35b34801561047857600080fd5b506102866004803603606081101561048f57600080fd5b508035600160a060020a03908116916020810135909116906040013560ff1661117f565b3480156104bf57600080fd5b506103c2600480360360208110156104d657600080fd5b503560ff1661121b565b3480156104ec57600080fd5b506104f561122d565b6040805163ffffffff9092168252519081900360200190f35b34801561051a57600080fd5b506102866004803603604081101561053157600080fd5b5060ff8135169060200135611239565b6001600052600260208190527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0540234146105cb57604080516000805160206132e9833981519152815260206004820152601c60248201527f52657175697265202e30342065746820746f2072656769737465722100000000604482015290519081900360640190fd5b6105d7828260006114a4565b600160a060020a03811660009081526020819052604081208054600163ffffffff640100000000808404821683019091160267ffffffff00000000199092169190911790915561062d918491849182919061174a565b61063c8282836001600061196d565b6106498260006001611c77565b61065582600180611c77565b5050565b6014015190565b600260035414156106c057604080516000805160206132e9833981519152815260206004820152600e60248201527f536563757269747920426c6f636b000000000000000000000000000000000000604482015290519081900360640190fd5b60026003556106cf3382610541565b506001600355565b6000602081905290815260409020805460029091015463ffffffff808316926401000000009004169060ff8116906101009004600160a060020a031684565b63ffffffff16600090815260016020526040902054600160a060020a031690565b6004543390650100000000009004600160a060020a031681146107a957604080516000805160206132e9833981519152815260206004820152601260248201527f5265737472696374656420416363657373210000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038416600090815260208190526040902060020154849060ff1661082357604080516000805160206132e9833981519152815260206004820152601760248201527f5265676973746572204163636f756e7420466972737421000000000000000000604482015290519081900360640190fd5b8360ff166001148061083857508360ff166002145b61089157604080516000805160206132e9833981519152815260206004820152601a60248201527f496e76616c6964206d6174726978206964656e7469666965722e000000000000604482015290519081900360640190fd5b60008360ff161180156108b5575060045460ff640100000000909104811690841611155b61090e57604080516000805160206132e9833981519152815260206004820152601560248201527f496e76616c6964206d6174726978206c6576656c2e0000000000000000000000604482015290519081900360640190fd5b600160a060020a03851660009081526020819052604081206001018054600019870192919060ff841690811061094057fe5b600091825260208083208183040154600160a060020a038b8116855291849052604090932060020154601f90921661010090810a90930460ff9081169450929091041690861682106109e157604080516000805160206132e9833981519152815260206004820152601860248201527f416c726561647920616374697665206174206c6576656c210000000000000000604482015290519081900360640190fd5b600182015b8660ff168160ff1611610a945760408051600160a060020a03808c1682528416602082015260ff808b16828401528316606082015290517f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed8111199181900360800190a160ff8416610a7057610a6b8983610a638c866000876001611e2d565b84600061174a565b610a8c565b610a8c8983610a848c866001876001611e2d565b84600061196d565b6001016109e6565b505050505050505050565b6004543390650100000000009004600160a060020a03168114610b1157604080516000805160206132e9833981519152815260206004820152601260248201527f5265737472696374656420416363657373210000000000000000000000000000604482015290519081900360640190fd5b600454640100000000900460ff166000908152600260205260409020548211610b8957604080516000805160206132e9833981519152815260206004820152601260248201527f436865636b20707269636520706f696e74210000000000000000000000000000604482015290519081900360640190fd5b60048054600160ff640100000000808404821683018216810264ff000000001990941693909317808555839004811660009081526002602090815260408220889055908390528290527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f549354610c1394600160a060020a0316938493849391909204169061174a565b6001600081905260208190527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f5460045461065592600160a060020a03909216918291829164010000000090910460ff169061196d565b3360009081526020819052604090205463ffffffff165b90565b600281565b600160205260009081526040902054600160a060020a031681565b3360008181526020819052604090206002015460ff16610d1357604080516000805160206132e9833981519152815260206004820152601760248201527f5265676973746572204163636f756e7420466972737421000000000000000000604482015290519081900360640190fd5b60026003541415610d7357604080516000805160206132e9833981519152815260206004820152600e60248201527f536563757269747920426c6f636b000000000000000000000000000000000000604482015290519081900360640190fd5b6002600355600160ff84161480610d8d57508260ff166002145b610de657604080516000805160206132e9833981519152815260206004820152601a60248201527f496e76616c6964206d6174726978206964656e7469666965722e000000000000604482015290519081900360640190fd5b60008260ff16118015610e0a575060045460ff640100000000909104811690831611155b610e6357604080516000805160206132e9833981519152815260206004820152601560248201527f496e76616c6964206d6174726978206c6576656c2e0000000000000000000000604482015290519081900360640190fd5b336000908152602081905260408120600101805460ff600019870116908110610e8857fe5b90600052602060002090602091828204019190069054906101000a900460ff1690506000600190508460ff1660021415610ec0575060005b8360ff168260ff1610610f2257604080516000805160206132e9833981519152815260206004820152601860248201527f416c726561647920616374697665206174206c6576656c210000000000000000604482015290519081900360640190fd5b6001840360ff168260ff1614610f8757604080516000805160206132e9833981519152815260206004820152601c60248201527f4c6576656c2075706772616465207265712e20696e206f726465722100000000604482015290519081900360640190fd5b336000908152602081905260409020600101805460ff8087169291908416908110610fae57fe5b90600052602060002090602091828204019190069054906101000a900460ff1660020260ff16101561102f57604080516000805160206132e9833981519152815260206004820152601760248201527f446f75626c65207570677261646520657865656465642e000000000000000000604482015290519081900360640190fd5b60ff8416600090815260026020526040902054341461109d57604080516000805160206132e9833981519152815260206004820152601960248201527f57726f6e6720616d6f756e74207472616e736665727265642e00000000000000604482015290519081900360640190fd5b33600081815260208181526040918290206002015482519384526101009004600160a060020a031690830181905260ff8089168484015287166060840152905190917f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed811119919081900360800190a18560ff166001141561113757611132338261112a338560008b6001611e2d565b88600061174a565b611153565b611153338261114b338560018b6001611e2d565b88600061196d565b611161336001880387611c77565b5050600160035550505050565b600454640100000000900460ff1681565b6004543390650100000000009004600160a060020a031681146111f157604080516000805160206132e9833981519152815260206004820152601260248201527f5265737472696374656420416363657373210000000000000000000000000000604482015290519081900360640190fd5b6111fd848460006114a4565b61120984600184610737565b61121584600284610737565b50505050565b60026020526000908152604090205481565b60045463ffffffff1681565b6004543390650100000000009004600160a060020a031681146112ab57604080516000805160206132e9833981519152815260206004820152601260248201527f5265737472696374656420416363657373210000000000000000000000000000604482015290519081900360640190fd5b60008360ff161180156112cf575060045460ff640100000000909104811690841611155b61132857604080516000805160206132e9833981519152815260206004820152601560248201527f496e76616c6964206d6174726978206c6576656c2e0000000000000000000000604482015290519081900360640190fd5b6000821161138557604080516000805160206132e9833981519152815260206004820152601260248201527f436865636b20707269636520706f696e74210000000000000000000000000000604482015290519081900360640190fd5b60018360ff1611156114035760ff600019840116600090815260026020526040902054821161140357604080516000805160206132e9833981519152815260206004820152601260248201527f436865636b20707269636520706f696e74210000000000000000000000000000604482015290519081900360640190fd5b60045460ff6401000000009091048116908416101561148d5760ff6001840116600090815260026020526040902054821061148d57604080516000805160206132e9833981519152815260206004820152601260248201527f436865636b20707269636520706f696e74210000000000000000000000000000604482015290519081900360640190fd5b5060ff909116600090815260026020526040902055565b600160a060020a03831660009081526020819052604090206002015460ff161561151d57604080516000805160206132e9833981519152815260206004820152601160248201527f416c72656164792061206d656d62657221000000000000000000000000000000604482015290519081900360640190fd5b8061159a57600160a060020a03821660009081526020819052604090206002015460ff1661159a57604080516000805160206132e9833981519152815260206004820152601360248201527f53706f6e736f7220646f6e742065786973742100000000000000000000000000604482015290519081900360640190fd5b6004805463ffffffff808216600101811663ffffffff1990921691909117918290556040805160a081018252929091168252600060208301528051600280825260608201835291830191816020016020820280368337505050815260016020808301829052600160a060020a0386811660409485015287166000908152808252839020845181548684015163ffffffff1990911663ffffffff9283161767ffffffff000000001916640100000000929091169190910217815592840151805161166a938501929190910190613185565b50606082810151600292909201805460809094015160ff19909416921515929092177fffffffffffffffffffffff0000000000000000000000000000000000000000ff16610100600160a060020a0394851602179091556004805463ffffffff908116600090815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff19168a881690811790915593548251948552909216918301919091529285168184015291517ff6c21a7ac3d366bc7ad22dd21433c86cb88a57fdff3acdd76408fc302241af379281900390910190a1505050565b600160a060020a03851660009081526020819052604081206001810180549192859261177257fe5b60009182526020808320818304018054601f9093166101000a60ff8181021990941695841602949094179093556040805160c0810182528381528085018481528183018581526060830186815260808401878152600160a060020a038d811660a087019081528d89168a5260038c01909a5295909720935184549351925191519751985163ffffffff1990941663ffffffff9091161765ffff00000000191664010000000061ffff909316929092029190911766ff00000000000019166601000000000000918616919091021767ff000000000000001916670100000000000000958516959095029490941768ff00000000000000001916680100000000000000009590931694909402919091177fffffff0000000000000000000000000000000000000000ffffffffffffffffff1669010000000000000000009290911691909102179055811515600114156118c95750611966565b83600160a060020a031685600160a060020a0316141561192957600160a060020a03851660009081526020818152604080832060ff871684526003019091529020805463ffffffff8082166001011663ffffffff19909116179055611957565b60ff831660009081526003820160205260409020805467ff0000000000000019166701000000000000001790555b6119648685856000611f27565b505b5050505050565b600160a060020a038516600090815260208190526040902060018082018054859290811061199757fe5b6000918252602080832081830401805460ff958616601f90941661010090810a9485029690940219169490941790935560408051610140810182528381529384018390528301829052606083018290526080830182905260a0830182905260c08301829052600160a060020a03871660e0840181905290830152610120820190604051908082528060200260200182016040528015611a40578160200160208202803683370190505b508152508160040160008560ff1660ff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548161ffff021916908361ffff16021790555060408201518160000160066101000a81548160ff021916908360ff16021790555060608201518160000160076101000a81548160ff021916908360ff16021790555060808201518160000160086101000a81548160ff021916908360ff16021790555060a08201518160000160096101000a81548160ff021916908360ff16021790555060c082015181600001600a6101000a81548160ff021916908360ff16021790555060e082015181600001600b6101000a815481600160a060020a030219169083600160a060020a031602179055506101008201518160010160006101000a815481600160a060020a030219169083600160a060020a03160217905550610120820151816002019080519060200190611bc692919061322b565b50505060018215151415611bda5750611966565b83600160a060020a031685600160a060020a03161415611c3a57600160a060020a03851660009081526020818152604080832060ff871684526004019091529020805463ffffffff8082166001011663ffffffff19909116179055611c6a565b60ff831660009081526004820160205260409020805468ff00000000000000001916680100000000000000001790555b6119648685856000612120565b6000611c848484846127c4565b60408051600160a060020a03878116825260ff60018801811660208401528616828401529151929350908316917f859f8e4639bbeb354f6ae9358c3af9b160b03299dd61675031305d65ca3db5ca9181900360600190a260ff8216600090815260026020526040808220549051600160a060020a03841691619c409184818181858888f193505050503d8060008114611d39576040519150601f19603f3d011682016040523d82523d6000602084013e611d3e565b606091505b509091505080611966577fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f5460ff8416600090815260026020526040808220549051600160a060020a0390931692619c4092818181858888f193505050503d8060008114611dc8576040519150601f19603f3d011682016040523d82523d6000602084013e611dcd565b606091505b5050809150508061196657604080516000805160206132e9833981519152815260206004820152600f60248201527f5472616e73666572204661696c65640000000000000000000000000000000000604482015290519081900360640190fd5b6000845b8360ff1660008083600160a060020a0316600160a060020a031681526020019081526020016000206001018660ff1681548110611e6a57fe5b60009182526020918290209181049091015460ff601f9092166101000a90041610611e96579050611f1e565b60018315151415611ef65760408051600160a060020a03898116825260ff60018901811660208401528716828401529151918316917f71c4711151d4fc1884a248b8e1a30b714df5a4e3db908e69619308006ba211fb9181900360600190a25b600160a060020a03908116600090815260208190526040902060020154610100900416611e31565b95945050505050565b600160a060020a0380841660008181526020818152604080832060ff808916808652600390920184529382902080548351978c1688529387019590955285820152600168010000000000000000909204831691909101909116606084015283151560808401525190917f3177570e9575b071562484c332319d7abd50dd64dae2cc34a42ff5d65264ce6d919081900360a00190a1805460026801000000000000000090910460ff16106120ee5760408051600160a060020a0387811682526001602083015260ff8616828401529151918616917f915b1c128925c0e84df94efb2e69832f3e3e51e7647abd9b53833e37b6bf75049181900360600190a2805468ff0000ffff00000000198116600164010000000068ff00000000000000001990931683900461ffff90811682011690920217825560008190526020527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f54600160a060020a03908116908516146120e9578054600160ff6601000000000000808404821683019091160266ff00000000000019909216919091178083556120e9918691600160a060020a03690100000000000000000090910416908690611f27565b611966565b805468ff0000000000000000198116680100000000000000009182900460ff9081166001011690910217905550505050565b600160a060020a0380851660009081526020818152604080832060ff871680855260049182018452828520958916855284845282852090855201909152902060028082015410156122995760028101546121985781546aff0000000000000000000019166a01000000000000000000001782556121b8565b81546aff0000000000000000000019166a02000000000000000000001782555b6001828101805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a0389811691821790935560028501805480860182556000918252602080832090910180549094168c8616179093558490529290527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f541614612264578054600160ff6601000000000000808404821692909201160266ff000000000000199091161781555b600181015481546122949188918891600160a060020a0316906a0100000000000000000000900460ff1688612a45565b6125ea565b80546901000000000000000000900460ff1661234b5781546aff0000000000000000000019166a01000000000000000000001782556002810180546000906122dd57fe5b6000918252602090912001546001838101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390931692909217909155815460ff690100000000000000000080830482169093011690910269ff00000000000000000019909116178155612545565b8054690100000000000000000090046002166123fb5781546aff0000000000000000000019166a020000000000000000000017825560028101805460009061238f57fe5b60009182526020909120015460018301805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055805460ff690100000000000000000080830482166002019091160269ff00000000000000000019909116178155612545565b8054690100000000000000000090046004166124ad5781546aff0000000000000000000019166a0100000000000000000000178255600281018054600190811061244157fe5b60009182526020909120015460018301805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055805460ff690100000000000000000080830482166004019091160269ff00000000000000000019909116178155612545565b81546aff0000000000000000000019166a020000000000000000000017825560028101805460019081106124dd57fe5b60009182526020909120015460018301805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055805460ff690100000000000000000080830482166008019091160269ff000000000000000000199091161781555b6001600081905260208190527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f5490830154600160a060020a039081169116146125ea57600182810154600160a060020a0390811660009081526020818152604080832060ff8a168452600401825282206002018054948501815582529020909101805473ffffffffffffffffffffffffffffffffffffffff19169188169190911790555b8054600f69010000000000000000009091048116141561273f5760408051600160a060020a0388811682526002602083015260ff8716828401529151918716917f915b1c128925c0e84df94efb2e69832f3e3e51e7647abd9b53833e37b6bf75049181900360600190a2604080516000815260208101918290525161267391600284019161322b565b50805469ff000000ffff00000000198116600164010000000069ff0000000000000000001990931683900461ffff90811682011690920217825560008190526020527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f54600160a060020a039081169086161461273f578054600160ff670100000000000000808404821683019091160267ff00000000000000199092169190911780835561273f918791600160a060020a036b01000000000000000000000090910416908790612120565b8154600183015460408051600160a060020a03808b168252808a16602083015260ff808a16838501526a010000000000000000000090950494909416606082015292909116608083015284151560a0830152517f24ba8014500fa35b0f3c906afcf122c44bbbe189dd2df854b412c2e1d8e36b2e9181900360c00190a1505050505050565b6000808060ff85166128cd5750600160a060020a0380861660009081526020818152604080832060ff8816845260030190915290205469010000000000000000009004165b600160a060020a03811660009081526020818152604080832060ff808916855260039091019092529091208054909166010000000000009091041661285257509150612a3e9050565b805466ff00000000000019811666010000000000009182900460ff908116600019018116909202178083559293506901000000000000000000909204600160a060020a03169160019086161180156128b857508054670100000000000000900460ff1615155b156128c7576128c78386612d24565b50612809565b50600160a060020a0380861660009081526020818152604080832060ff881684526004019091529020546b0100000000000000000000009004165b600160a060020a03811660009081526020818152604080832060ff808916855260049091019092529091208054909166010000000000009091041615801561295d57508054670100000000000000900460ff16155b1561296c57509150612a3e9050565b80546601000000000000900460ff16156129be57805460001960ff6601000000000000808404821692909201160266ff000000000000199091161781556001810154600160a060020a03169150612a38565b805467ff000000000000001981166701000000000000009182900460ff908116600019018116909202178083559293506b010000000000000000000000909204600160a060020a0316916001908616118015612a295750805468010000000000000000900460ff1615155b15612a3857612a388386612f27565b50612908565b9392505050565b600160a060020a03831660009081526020818152604080832060ff80861685526004909101909252909120805490916a010000000000000000000090910416158015612ac75750600160008190526020527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f54600160a060020a038681169116145b15612ad25750611966565b8260ff1660011415612b5957805469010000000000000000009004600116612b2657805460ff690100000000000000000080830482166001019091160269ff00000000000000000019909116178155612b54565b805460ff690100000000000000000080830482166002019091160269ff000000000000000000199091161781555b612bcf565b805469010000000000000000009004600416612ba157805460ff690100000000000000000080830482166004019091160269ff00000000000000000019909116178155612bcf565b805460ff690100000000000000000080830482166008019091160269ff000000000000000000199091161781555b8054600f6901000000000000000000909104811614156119645760408051600160a060020a0388811682526002602083015260ff8516828401529151918616917f915b1c128925c0e84df94efb2e69832f3e3e51e7647abd9b53833e37b6bf75049181900360600190a26040805160008152602081019182905251612c5891600284019161322b565b50805469ff000000ffff00000000198116600164010000000069ff0000000000000000001990931683900461ffff90811682011690920217825560008190526020527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f54600160a060020a0390811690851614611964578054600160ff670100000000000000808404821683019091160267ff000000000000001990921691909117808355611964918691600160a060020a036b01000000000000000000000090910416908590612120565b600160a060020a03821660009081526020818152604080832060ff858116855260039091019092528220805467ff0000000000000019811667010000000000000091829004841660010184168202178083559193926002919092049091161061121557600160a060020a03808516600090815260208190526040808220600201546101009004909216808252918120600101805460ff87169290612dc457fe5b60009182526020918290209181049091015460ff601f9092166101000a90041610612e0157825467ff000000000000001916835560019150612e8e565b612e1085826000876000611e2d565b8354909150600160a060020a0380831669010000000000000000009092041614801590612e845750600160a060020a0381166000908152602081905260408120600101805460ff87169290612e6157fe5b60009182526020918290209181049091015460ff601f9092166101000a90041610155b15612e8e57600191505b60018215151415611966578254600160a060020a03808316690100000000000000000081027fffffff0000000000000000000000000000000000000000ffffffffffffffffff9093169290921785556040805191881682526001602083015260ff871682820152517f93bcb70f69bc4aba4a8a396ec352b738b2c2af733d81859380961b08a7320ac69181900360600190a25050505050565b600160a060020a03821660009081526020818152604080832060ff858116855260049091019092528220805468ff00000000000000001981166801000000000000000091829004841660010184168202178083559193926002919092049091161061121557600160a060020a038085166000908152602081905260408082206002015461010090049092168082529190206001908101805460ff871692908110612fcd57fe5b60009182526020918290209181049091015460ff601f9092166101000a9004161061303a5782547fff0000000000000000000000000000000000000000ffff00ffffffffffffffff166b010000000000000000000000600160a060020a0383160217835560019150613110565b600061304b86836001886000611e2d565b8454909150600160a060020a038083166b01000000000000000000000090920416148015906130c55750600160a060020a03811660009081526020819052604090206001908101805460ff8816929081106130a257fe5b60009182526020918290209181049091015460ff601f9092166101000a90041610155b1561310e5783547fff0000000000000000000000000000000000000000ffffffffffffffffffffff166b010000000000000000000000600160a060020a03831602178455600192505b505b6001821515141561196657825460408051600160a060020a0388811682526002602083015260ff88168284015291516b01000000000000000000000090930491909116917f93bcb70f69bc4aba4a8a396ec352b738b2c2af733d81859380961b08a7320ac69181900360600190a25050505050565b82805482825590600052602060002090601f0160209004810192821561321b5791602002820160005b838211156131ec57835183826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026131ae565b80156132195782816101000a81549060ff02191690556001016020816000010492830192600103026131ec565b505b50613227929150613299565b5090565b82805482825590600052602060002090810192821561328d579160200282015b8281111561328d578251825473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390911617825560209092019160019091019061324b565b506132279291506132b7565b610c8191905b8082111561322757805460ff1916815560010161329f565b610c8191905b8082111561322757805473ffffffffffffffffffffffffffffffffffffffff191681556001016132bd56fe08c379a000000000000000000000000000000000000000000000000000000000a26469706673582212202eeb65f1c5138a4ae5191d939dfa119c98fc14e39c4bc8ba660397ade9209ab664736f6c63430006080033cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f915b1c128925c0e84df94efb2e69832f3e3e51e7647abd9b53833e37b6bf75040000000000000000000000000ec97f7bac8d38a16da32bbbd84f74b0870a2002

Deployed Bytecode

0x6080604052600436106100fe576000357c0100000000000000000000000000000000000000000000000000000000900480637a8d05021161009c578063a9c4d2ce11610076578063a9c4d2ce1461046c578063b93d9004146104b3578063c1292cc3146104e0578063d4ac38c81461050e576101af565b80637a8d0502146103e95780637d02722f14610419578063975cb1c114610441576101af565b806330ce7ac6116100d857806330ce7ac61461033f5780633a1ad04614610383578063446aac8d146103ad5780634e619ace146103d4576101af565b80630840605a1461026057806308ae4b0c146102885780631f1025ee146102f3576101af565b366101af576002600354141561016357604080516000805160206132e9833981519152815260206004820152600e60248201527f536563757269747920426c6f636b000000000000000000000000000000000000604482015290519081900360640190fd5b6002600355600160008190526020527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f546101a8903390600160a060020a0316610541565b6001600355005b6002600354141561020f57604080516000805160206132e9833981519152815260206004820152600e60248201527f536563757269747920426c6f636b000000000000000000000000000000000000604482015290519081900360640190fd5b60026003819055506101a83361025b6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061065992505050565b610541565b6102866004803603602081101561027657600080fd5b5035600160a060020a0316610660565b005b34801561029457600080fd5b506102bb600480360360208110156102ab57600080fd5b5035600160a060020a03166106d7565b6040805163ffffffff958616815293909416602084015290151582840152600160a060020a0316606082015290519081900360800190f35b3480156102ff57600080fd5b506103236004803603602081101561031657600080fd5b503563ffffffff16610716565b60408051600160a060020a039092168252519081900360200190f35b34801561034b57600080fd5b506102866004803603606081101561036257600080fd5b50600160a060020a038135169060ff60208201358116916040013516610737565b34801561038f57600080fd5b50610286600480360360208110156103a657600080fd5b5035610a9f565b3480156103b957600080fd5b506103c2610c6a565b60408051918252519081900360200190f35b3480156103e057600080fd5b506103c2610c84565b3480156103f557600080fd5b506103236004803603602081101561040c57600080fd5b503563ffffffff16610c89565b6102866004803603604081101561042f57600080fd5b5060ff81358116916020013516610ca4565b34801561044d57600080fd5b5061045661116e565b6040805160ff9092168252519081900360200190f35b34801561047857600080fd5b506102866004803603606081101561048f57600080fd5b508035600160a060020a03908116916020810135909116906040013560ff1661117f565b3480156104bf57600080fd5b506103c2600480360360208110156104d657600080fd5b503560ff1661121b565b3480156104ec57600080fd5b506104f561122d565b6040805163ffffffff9092168252519081900360200190f35b34801561051a57600080fd5b506102866004803603604081101561053157600080fd5b5060ff8135169060200135611239565b6001600052600260208190527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0540234146105cb57604080516000805160206132e9833981519152815260206004820152601c60248201527f52657175697265202e30342065746820746f2072656769737465722100000000604482015290519081900360640190fd5b6105d7828260006114a4565b600160a060020a03811660009081526020819052604081208054600163ffffffff640100000000808404821683019091160267ffffffff00000000199092169190911790915561062d918491849182919061174a565b61063c8282836001600061196d565b6106498260006001611c77565b61065582600180611c77565b5050565b6014015190565b600260035414156106c057604080516000805160206132e9833981519152815260206004820152600e60248201527f536563757269747920426c6f636b000000000000000000000000000000000000604482015290519081900360640190fd5b60026003556106cf3382610541565b506001600355565b6000602081905290815260409020805460029091015463ffffffff808316926401000000009004169060ff8116906101009004600160a060020a031684565b63ffffffff16600090815260016020526040902054600160a060020a031690565b6004543390650100000000009004600160a060020a031681146107a957604080516000805160206132e9833981519152815260206004820152601260248201527f5265737472696374656420416363657373210000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038416600090815260208190526040902060020154849060ff1661082357604080516000805160206132e9833981519152815260206004820152601760248201527f5265676973746572204163636f756e7420466972737421000000000000000000604482015290519081900360640190fd5b8360ff166001148061083857508360ff166002145b61089157604080516000805160206132e9833981519152815260206004820152601a60248201527f496e76616c6964206d6174726978206964656e7469666965722e000000000000604482015290519081900360640190fd5b60008360ff161180156108b5575060045460ff640100000000909104811690841611155b61090e57604080516000805160206132e9833981519152815260206004820152601560248201527f496e76616c6964206d6174726978206c6576656c2e0000000000000000000000604482015290519081900360640190fd5b600160a060020a03851660009081526020819052604081206001018054600019870192919060ff841690811061094057fe5b600091825260208083208183040154600160a060020a038b8116855291849052604090932060020154601f90921661010090810a90930460ff9081169450929091041690861682106109e157604080516000805160206132e9833981519152815260206004820152601860248201527f416c726561647920616374697665206174206c6576656c210000000000000000604482015290519081900360640190fd5b600182015b8660ff168160ff1611610a945760408051600160a060020a03808c1682528416602082015260ff808b16828401528316606082015290517f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed8111199181900360800190a160ff8416610a7057610a6b8983610a638c866000876001611e2d565b84600061174a565b610a8c565b610a8c8983610a848c866001876001611e2d565b84600061196d565b6001016109e6565b505050505050505050565b6004543390650100000000009004600160a060020a03168114610b1157604080516000805160206132e9833981519152815260206004820152601260248201527f5265737472696374656420416363657373210000000000000000000000000000604482015290519081900360640190fd5b600454640100000000900460ff166000908152600260205260409020548211610b8957604080516000805160206132e9833981519152815260206004820152601260248201527f436865636b20707269636520706f696e74210000000000000000000000000000604482015290519081900360640190fd5b60048054600160ff640100000000808404821683018216810264ff000000001990941693909317808555839004811660009081526002602090815260408220889055908390528290527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f549354610c1394600160a060020a0316938493849391909204169061174a565b6001600081905260208190527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f5460045461065592600160a060020a03909216918291829164010000000090910460ff169061196d565b3360009081526020819052604090205463ffffffff165b90565b600281565b600160205260009081526040902054600160a060020a031681565b3360008181526020819052604090206002015460ff16610d1357604080516000805160206132e9833981519152815260206004820152601760248201527f5265676973746572204163636f756e7420466972737421000000000000000000604482015290519081900360640190fd5b60026003541415610d7357604080516000805160206132e9833981519152815260206004820152600e60248201527f536563757269747920426c6f636b000000000000000000000000000000000000604482015290519081900360640190fd5b6002600355600160ff84161480610d8d57508260ff166002145b610de657604080516000805160206132e9833981519152815260206004820152601a60248201527f496e76616c6964206d6174726978206964656e7469666965722e000000000000604482015290519081900360640190fd5b60008260ff16118015610e0a575060045460ff640100000000909104811690831611155b610e6357604080516000805160206132e9833981519152815260206004820152601560248201527f496e76616c6964206d6174726978206c6576656c2e0000000000000000000000604482015290519081900360640190fd5b336000908152602081905260408120600101805460ff600019870116908110610e8857fe5b90600052602060002090602091828204019190069054906101000a900460ff1690506000600190508460ff1660021415610ec0575060005b8360ff168260ff1610610f2257604080516000805160206132e9833981519152815260206004820152601860248201527f416c726561647920616374697665206174206c6576656c210000000000000000604482015290519081900360640190fd5b6001840360ff168260ff1614610f8757604080516000805160206132e9833981519152815260206004820152601c60248201527f4c6576656c2075706772616465207265712e20696e206f726465722100000000604482015290519081900360640190fd5b336000908152602081905260409020600101805460ff8087169291908416908110610fae57fe5b90600052602060002090602091828204019190069054906101000a900460ff1660020260ff16101561102f57604080516000805160206132e9833981519152815260206004820152601760248201527f446f75626c65207570677261646520657865656465642e000000000000000000604482015290519081900360640190fd5b60ff8416600090815260026020526040902054341461109d57604080516000805160206132e9833981519152815260206004820152601960248201527f57726f6e6720616d6f756e74207472616e736665727265642e00000000000000604482015290519081900360640190fd5b33600081815260208181526040918290206002015482519384526101009004600160a060020a031690830181905260ff8089168484015287166060840152905190917f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed811119919081900360800190a18560ff166001141561113757611132338261112a338560008b6001611e2d565b88600061174a565b611153565b611153338261114b338560018b6001611e2d565b88600061196d565b611161336001880387611c77565b5050600160035550505050565b600454640100000000900460ff1681565b6004543390650100000000009004600160a060020a031681146111f157604080516000805160206132e9833981519152815260206004820152601260248201527f5265737472696374656420416363657373210000000000000000000000000000604482015290519081900360640190fd5b6111fd848460006114a4565b61120984600184610737565b61121584600284610737565b50505050565b60026020526000908152604090205481565b60045463ffffffff1681565b6004543390650100000000009004600160a060020a031681146112ab57604080516000805160206132e9833981519152815260206004820152601260248201527f5265737472696374656420416363657373210000000000000000000000000000604482015290519081900360640190fd5b60008360ff161180156112cf575060045460ff640100000000909104811690841611155b61132857604080516000805160206132e9833981519152815260206004820152601560248201527f496e76616c6964206d6174726978206c6576656c2e0000000000000000000000604482015290519081900360640190fd5b6000821161138557604080516000805160206132e9833981519152815260206004820152601260248201527f436865636b20707269636520706f696e74210000000000000000000000000000604482015290519081900360640190fd5b60018360ff1611156114035760ff600019840116600090815260026020526040902054821161140357604080516000805160206132e9833981519152815260206004820152601260248201527f436865636b20707269636520706f696e74210000000000000000000000000000604482015290519081900360640190fd5b60045460ff6401000000009091048116908416101561148d5760ff6001840116600090815260026020526040902054821061148d57604080516000805160206132e9833981519152815260206004820152601260248201527f436865636b20707269636520706f696e74210000000000000000000000000000604482015290519081900360640190fd5b5060ff909116600090815260026020526040902055565b600160a060020a03831660009081526020819052604090206002015460ff161561151d57604080516000805160206132e9833981519152815260206004820152601160248201527f416c72656164792061206d656d62657221000000000000000000000000000000604482015290519081900360640190fd5b8061159a57600160a060020a03821660009081526020819052604090206002015460ff1661159a57604080516000805160206132e9833981519152815260206004820152601360248201527f53706f6e736f7220646f6e742065786973742100000000000000000000000000604482015290519081900360640190fd5b6004805463ffffffff808216600101811663ffffffff1990921691909117918290556040805160a081018252929091168252600060208301528051600280825260608201835291830191816020016020820280368337505050815260016020808301829052600160a060020a0386811660409485015287166000908152808252839020845181548684015163ffffffff1990911663ffffffff9283161767ffffffff000000001916640100000000929091169190910217815592840151805161166a938501929190910190613185565b50606082810151600292909201805460809094015160ff19909416921515929092177fffffffffffffffffffffff0000000000000000000000000000000000000000ff16610100600160a060020a0394851602179091556004805463ffffffff908116600090815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff19168a881690811790915593548251948552909216918301919091529285168184015291517ff6c21a7ac3d366bc7ad22dd21433c86cb88a57fdff3acdd76408fc302241af379281900390910190a1505050565b600160a060020a03851660009081526020819052604081206001810180549192859261177257fe5b60009182526020808320818304018054601f9093166101000a60ff8181021990941695841602949094179093556040805160c0810182528381528085018481528183018581526060830186815260808401878152600160a060020a038d811660a087019081528d89168a5260038c01909a5295909720935184549351925191519751985163ffffffff1990941663ffffffff9091161765ffff00000000191664010000000061ffff909316929092029190911766ff00000000000019166601000000000000918616919091021767ff000000000000001916670100000000000000958516959095029490941768ff00000000000000001916680100000000000000009590931694909402919091177fffffff0000000000000000000000000000000000000000ffffffffffffffffff1669010000000000000000009290911691909102179055811515600114156118c95750611966565b83600160a060020a031685600160a060020a0316141561192957600160a060020a03851660009081526020818152604080832060ff871684526003019091529020805463ffffffff8082166001011663ffffffff19909116179055611957565b60ff831660009081526003820160205260409020805467ff0000000000000019166701000000000000001790555b6119648685856000611f27565b505b5050505050565b600160a060020a038516600090815260208190526040902060018082018054859290811061199757fe5b6000918252602080832081830401805460ff958616601f90941661010090810a9485029690940219169490941790935560408051610140810182528381529384018390528301829052606083018290526080830182905260a0830182905260c08301829052600160a060020a03871660e0840181905290830152610120820190604051908082528060200260200182016040528015611a40578160200160208202803683370190505b508152508160040160008560ff1660ff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548161ffff021916908361ffff16021790555060408201518160000160066101000a81548160ff021916908360ff16021790555060608201518160000160076101000a81548160ff021916908360ff16021790555060808201518160000160086101000a81548160ff021916908360ff16021790555060a08201518160000160096101000a81548160ff021916908360ff16021790555060c082015181600001600a6101000a81548160ff021916908360ff16021790555060e082015181600001600b6101000a815481600160a060020a030219169083600160a060020a031602179055506101008201518160010160006101000a815481600160a060020a030219169083600160a060020a03160217905550610120820151816002019080519060200190611bc692919061322b565b50505060018215151415611bda5750611966565b83600160a060020a031685600160a060020a03161415611c3a57600160a060020a03851660009081526020818152604080832060ff871684526004019091529020805463ffffffff8082166001011663ffffffff19909116179055611c6a565b60ff831660009081526004820160205260409020805468ff00000000000000001916680100000000000000001790555b6119648685856000612120565b6000611c848484846127c4565b60408051600160a060020a03878116825260ff60018801811660208401528616828401529151929350908316917f859f8e4639bbeb354f6ae9358c3af9b160b03299dd61675031305d65ca3db5ca9181900360600190a260ff8216600090815260026020526040808220549051600160a060020a03841691619c409184818181858888f193505050503d8060008114611d39576040519150601f19603f3d011682016040523d82523d6000602084013e611d3e565b606091505b509091505080611966577fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f5460ff8416600090815260026020526040808220549051600160a060020a0390931692619c4092818181858888f193505050503d8060008114611dc8576040519150601f19603f3d011682016040523d82523d6000602084013e611dcd565b606091505b5050809150508061196657604080516000805160206132e9833981519152815260206004820152600f60248201527f5472616e73666572204661696c65640000000000000000000000000000000000604482015290519081900360640190fd5b6000845b8360ff1660008083600160a060020a0316600160a060020a031681526020019081526020016000206001018660ff1681548110611e6a57fe5b60009182526020918290209181049091015460ff601f9092166101000a90041610611e96579050611f1e565b60018315151415611ef65760408051600160a060020a03898116825260ff60018901811660208401528716828401529151918316917f71c4711151d4fc1884a248b8e1a30b714df5a4e3db908e69619308006ba211fb9181900360600190a25b600160a060020a03908116600090815260208190526040902060020154610100900416611e31565b95945050505050565b600160a060020a0380841660008181526020818152604080832060ff808916808652600390920184529382902080548351978c1688529387019590955285820152600168010000000000000000909204831691909101909116606084015283151560808401525190917f3177570e9575b071562484c332319d7abd50dd64dae2cc34a42ff5d65264ce6d919081900360a00190a1805460026801000000000000000090910460ff16106120ee5760408051600160a060020a0387811682526001602083015260ff8616828401529151918616917f915b1c128925c0e84df94efb2e69832f3e3e51e7647abd9b53833e37b6bf75049181900360600190a2805468ff0000ffff00000000198116600164010000000068ff00000000000000001990931683900461ffff90811682011690920217825560008190526020527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f54600160a060020a03908116908516146120e9578054600160ff6601000000000000808404821683019091160266ff00000000000019909216919091178083556120e9918691600160a060020a03690100000000000000000090910416908690611f27565b611966565b805468ff0000000000000000198116680100000000000000009182900460ff9081166001011690910217905550505050565b600160a060020a0380851660009081526020818152604080832060ff871680855260049182018452828520958916855284845282852090855201909152902060028082015410156122995760028101546121985781546aff0000000000000000000019166a01000000000000000000001782556121b8565b81546aff0000000000000000000019166a02000000000000000000001782555b6001828101805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a0389811691821790935560028501805480860182556000918252602080832090910180549094168c8616179093558490529290527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f541614612264578054600160ff6601000000000000808404821692909201160266ff000000000000199091161781555b600181015481546122949188918891600160a060020a0316906a0100000000000000000000900460ff1688612a45565b6125ea565b80546901000000000000000000900460ff1661234b5781546aff0000000000000000000019166a01000000000000000000001782556002810180546000906122dd57fe5b6000918252602090912001546001838101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390931692909217909155815460ff690100000000000000000080830482169093011690910269ff00000000000000000019909116178155612545565b8054690100000000000000000090046002166123fb5781546aff0000000000000000000019166a020000000000000000000017825560028101805460009061238f57fe5b60009182526020909120015460018301805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055805460ff690100000000000000000080830482166002019091160269ff00000000000000000019909116178155612545565b8054690100000000000000000090046004166124ad5781546aff0000000000000000000019166a0100000000000000000000178255600281018054600190811061244157fe5b60009182526020909120015460018301805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055805460ff690100000000000000000080830482166004019091160269ff00000000000000000019909116178155612545565b81546aff0000000000000000000019166a020000000000000000000017825560028101805460019081106124dd57fe5b60009182526020909120015460018301805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055805460ff690100000000000000000080830482166008019091160269ff000000000000000000199091161781555b6001600081905260208190527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f5490830154600160a060020a039081169116146125ea57600182810154600160a060020a0390811660009081526020818152604080832060ff8a168452600401825282206002018054948501815582529020909101805473ffffffffffffffffffffffffffffffffffffffff19169188169190911790555b8054600f69010000000000000000009091048116141561273f5760408051600160a060020a0388811682526002602083015260ff8716828401529151918716917f915b1c128925c0e84df94efb2e69832f3e3e51e7647abd9b53833e37b6bf75049181900360600190a2604080516000815260208101918290525161267391600284019161322b565b50805469ff000000ffff00000000198116600164010000000069ff0000000000000000001990931683900461ffff90811682011690920217825560008190526020527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f54600160a060020a039081169086161461273f578054600160ff670100000000000000808404821683019091160267ff00000000000000199092169190911780835561273f918791600160a060020a036b01000000000000000000000090910416908790612120565b8154600183015460408051600160a060020a03808b168252808a16602083015260ff808a16838501526a010000000000000000000090950494909416606082015292909116608083015284151560a0830152517f24ba8014500fa35b0f3c906afcf122c44bbbe189dd2df854b412c2e1d8e36b2e9181900360c00190a1505050505050565b6000808060ff85166128cd5750600160a060020a0380861660009081526020818152604080832060ff8816845260030190915290205469010000000000000000009004165b600160a060020a03811660009081526020818152604080832060ff808916855260039091019092529091208054909166010000000000009091041661285257509150612a3e9050565b805466ff00000000000019811666010000000000009182900460ff908116600019018116909202178083559293506901000000000000000000909204600160a060020a03169160019086161180156128b857508054670100000000000000900460ff1615155b156128c7576128c78386612d24565b50612809565b50600160a060020a0380861660009081526020818152604080832060ff881684526004019091529020546b0100000000000000000000009004165b600160a060020a03811660009081526020818152604080832060ff808916855260049091019092529091208054909166010000000000009091041615801561295d57508054670100000000000000900460ff16155b1561296c57509150612a3e9050565b80546601000000000000900460ff16156129be57805460001960ff6601000000000000808404821692909201160266ff000000000000199091161781556001810154600160a060020a03169150612a38565b805467ff000000000000001981166701000000000000009182900460ff908116600019018116909202178083559293506b010000000000000000000000909204600160a060020a0316916001908616118015612a295750805468010000000000000000900460ff1615155b15612a3857612a388386612f27565b50612908565b9392505050565b600160a060020a03831660009081526020818152604080832060ff80861685526004909101909252909120805490916a010000000000000000000090910416158015612ac75750600160008190526020527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f54600160a060020a038681169116145b15612ad25750611966565b8260ff1660011415612b5957805469010000000000000000009004600116612b2657805460ff690100000000000000000080830482166001019091160269ff00000000000000000019909116178155612b54565b805460ff690100000000000000000080830482166002019091160269ff000000000000000000199091161781555b612bcf565b805469010000000000000000009004600416612ba157805460ff690100000000000000000080830482166004019091160269ff00000000000000000019909116178155612bcf565b805460ff690100000000000000000080830482166008019091160269ff000000000000000000199091161781555b8054600f6901000000000000000000909104811614156119645760408051600160a060020a0388811682526002602083015260ff8516828401529151918616917f915b1c128925c0e84df94efb2e69832f3e3e51e7647abd9b53833e37b6bf75049181900360600190a26040805160008152602081019182905251612c5891600284019161322b565b50805469ff000000ffff00000000198116600164010000000069ff0000000000000000001990931683900461ffff90811682011690920217825560008190526020527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f54600160a060020a0390811690851614611964578054600160ff670100000000000000808404821683019091160267ff000000000000001990921691909117808355611964918691600160a060020a036b01000000000000000000000090910416908590612120565b600160a060020a03821660009081526020818152604080832060ff858116855260039091019092528220805467ff0000000000000019811667010000000000000091829004841660010184168202178083559193926002919092049091161061121557600160a060020a03808516600090815260208190526040808220600201546101009004909216808252918120600101805460ff87169290612dc457fe5b60009182526020918290209181049091015460ff601f9092166101000a90041610612e0157825467ff000000000000001916835560019150612e8e565b612e1085826000876000611e2d565b8354909150600160a060020a0380831669010000000000000000009092041614801590612e845750600160a060020a0381166000908152602081905260408120600101805460ff87169290612e6157fe5b60009182526020918290209181049091015460ff601f9092166101000a90041610155b15612e8e57600191505b60018215151415611966578254600160a060020a03808316690100000000000000000081027fffffff0000000000000000000000000000000000000000ffffffffffffffffff9093169290921785556040805191881682526001602083015260ff871682820152517f93bcb70f69bc4aba4a8a396ec352b738b2c2af733d81859380961b08a7320ac69181900360600190a25050505050565b600160a060020a03821660009081526020818152604080832060ff858116855260049091019092528220805468ff00000000000000001981166801000000000000000091829004841660010184168202178083559193926002919092049091161061121557600160a060020a038085166000908152602081905260408082206002015461010090049092168082529190206001908101805460ff871692908110612fcd57fe5b60009182526020918290209181049091015460ff601f9092166101000a9004161061303a5782547fff0000000000000000000000000000000000000000ffff00ffffffffffffffff166b010000000000000000000000600160a060020a0383160217835560019150613110565b600061304b86836001886000611e2d565b8454909150600160a060020a038083166b01000000000000000000000090920416148015906130c55750600160a060020a03811660009081526020819052604090206001908101805460ff8816929081106130a257fe5b60009182526020918290209181049091015460ff601f9092166101000a90041610155b1561310e5783547fff0000000000000000000000000000000000000000ffffffffffffffffffffff166b010000000000000000000000600160a060020a03831602178455600192505b505b6001821515141561196657825460408051600160a060020a0388811682526002602083015260ff88168284015291516b01000000000000000000000090930491909116917f93bcb70f69bc4aba4a8a396ec352b738b2c2af733d81859380961b08a7320ac69181900360600190a25050505050565b82805482825590600052602060002090601f0160209004810192821561321b5791602002820160005b838211156131ec57835183826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026131ae565b80156132195782816101000a81549060ff02191690556001016020816000010492830192600103026131ec565b505b50613227929150613299565b5090565b82805482825590600052602060002090810192821561328d579160200282015b8281111561328d578251825473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390911617825560209092019160019091019061324b565b506132279291506132b7565b610c8191905b8082111561322757805460ff1916815560010161329f565b610c8191905b8082111561322757805473ffffffffffffffffffffffffffffffffffffffff191681556001016132bd56fe08c379a000000000000000000000000000000000000000000000000000000000a26469706673582212202eeb65f1c5138a4ae5191d939dfa119c98fc14e39c4bc8ba660397ade9209ab664736f6c63430006080033

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

0000000000000000000000000ec97f7bac8d38a16da32bbbd84f74b0870a2002

-----Decoded View---------------
Arg [0] : _addr (address): 0x0EC97f7bAc8d38A16da32bBbd84f74B0870A2002

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000ec97f7bac8d38a16da32bbbd84f74b0870a2002


Deployed Bytecode Sourcemap

2894:16518:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3644:1;4966:14;;:32;;4958:59;;;;;-1:-1:-1;;;;;;;;;;;4958:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3644:1;5024:14;:31;5619:10:::1;:13;::::0;;;::::1;::::0;;;5591:42:::1;::::0;5607:10:::1;::::0;-1:-1:-1;;;;;5619:13:0::1;5591:15;:42::i;:::-;3598:1:::0;5074:14;:30;2894:16518;;3644:1;4966:14;;:32;;4958:59;;;;;-1:-1:-1;;;;;;;;;;;4958:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3644:1;5024:14;:31;;;;5477:53:::1;5493:10;5505:24;5520:8;;5505:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;5505:14:0::1;::::0;-1:-1:-1;;;5505:24:0:i:1;:::-;5477:15;:53::i;5645:122::-:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5645:122:0;-1:-1:-1;;;;;5645:122:0;;:::i;:::-;;3693:42;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3693:42:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3693:42:0;-1:-1:-1;;;;;3693:42:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3693:42:0;;;;;;;;;;;;;;;17177:117;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17177:117:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17177:117:0;;;;:::i;:::-;;;;-1:-1:-1;;;;;17177:117:0;;;;;;;;;;;;;;17522:853;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17522:853:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;17522:853:0;;;;;;;;;;;;;;;;;:::i;18381:375::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18381:375:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;18381:375:0;;:::i;17074:97::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17074:97:0;;;:::i;:::-;;;;;;;;;;;;;;;;3650:36;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3650:36:0;;;:::i;3740:44::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3740:44:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3740:44:0;;;;:::i;6704:1209::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6704:1209:0;;;;;;;;;;;:::i;3895:21::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3895:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17300:216;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17300:216:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17300:216:0;;-1:-1:-1;;;;;17300:216:0;;;;;;;;;;;;;;;;;;:::i;3789:39::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3789:39:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3789:39:0;;;;:::i;3870:20::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3870:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18762:491;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18762:491:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;18762:491:0;;;;;;;;;:::i;5773:434::-;5866:1;5856:12;;:9;:12;;;;;;:16;5877:9;5855:31;5847:72;;;;;-1:-1:-1;;;;;;;;;;;5847:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5928:37;5942:5;5949:8;5959:5;5928:13;:37::i;:::-;-1:-1:-1;;;;;5974:17:0;;:7;:17;;;;;;;;;;:31;;;;;;;;;;;;;;;;-1:-1:-1;;5974:31:0;;;;;;;;;;6018:53;;6035:5;;5982:8;;;;5974:31;6018:16;:53::i;:::-;6078;6095:5;6102:8;6112;6122:1;6125:5;6078:16;:53::i;:::-;6144:25;6157:5;6164:1;6167;6144:12;:25::i;:::-;6176;6189:5;6196:1;6199;6176:12;:25::i;:::-;5773:434;;:::o;19259:150::-;19393:2;19380:16;19374:23;;19357:47::o;5645:122::-;3644:1;4966:14;;:32;;4958:59;;;;;-1:-1:-1;;;;;;;;;;;4958:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3644:1;5024:14;:31;5724:37:::1;5740:10;5752:8:::0;5724:15:::1;:37::i;:::-;-1:-1:-1::0;3598:1:0;5074:14;:30;5645:122::o;3693:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3693:42:0;;:::o;17177:117::-;17268:20;;17245:7;17268:20;;;:10;:20;;;;;;-1:-1:-1;;;;;17268:20:0;;17177:117::o;17522:853::-;4748:5;;17600:10;;4748:5;;;-1:-1:-1;;;;;4748:5:0;:17;;4740:48;;;;;-1:-1:-1;;;;;;;;;;;4740:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4856:14:0;::::1;:7;:14:::0;;;::::1;::::0;;;;;;:21:::1;;::::0;17621:5;;4856:21:::1;;4848:57;;;::::0;;-1:-1:-1;;;;;;;;;;;4848:57:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;17644:7:::2;:12;;17655:1;17644:12;:28;;;;17660:7;:12;;17671:1;17660:12;17644:28;17635:69;;;::::0;;-1:-1:-1;;;;;;;;;;;17635:69:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;17729:1;17720:6;:10;;;:32;;;;-1:-1:-1::0;17744:8:0::2;::::0;::::2;::::0;;;::::2;::::0;::::2;17734:18:::0;;::::2;;;17720:32;17711:68;;;::::0;;-1:-1:-1;;;;;;;;;;;17711:68:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;-1:-1:-1::0;;;;;17841:14:0;::::2;17788:12;17841:14:::0;;;::::2;::::0;;;;;;17813:1:::2;17841:26;:34:::0;;-1:-1:-1;;17803:11:0;;;17788:12;17841:26;:34:::2;::::0;::::2;::::0;;::::2;;;;;;::::0;;;::::2;::::0;;;;;::::2;;::::0;-1:-1:-1;;;;;17900:14:0;;::::2;::::0;;;;;;;;;;:22:::2;;::::0;17841:34;;;;::::2;::::0;;::::2;::::0;;::::2;;::::0;;::::2;::::0;-1:-1:-1;17900:22:0;;;::::2;;::::0;17940:20;::::2;::::0;::::2;17931:59;;;::::0;;-1:-1:-1;;;;;;;;;;;17931:59:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;18031:1;18017:15:::0;::::2;17999:371;18041:6;18034:13;;:3;:13;;;17999:371;;18064:37;::::0;;-1:-1:-1;;;;;18064:37:0;;::::2;::::0;;;::::2;;::::0;::::2;::::0;::::2;::::0;;::::2;::::0;;;;;::::2;::::0;;;;;;::::2;::::0;;;;;;;::::2;18116:11;::::0;::::2;18112:251;;18140:93;18157:5;18164:7;18173:47;18191:5;18198:7;18207:1;18210:3;18215:4;18173:17;:47::i;:::-;18222:3;18227:5;18140:16;:93::i;:::-;18112:251;;;18260:93;18277:5;18284:7;18293:47;18311:5;18318:7;18327:1;18330:3;18335:4;18293:17;:47::i;:::-;18342:3;18347:5;18260:16;:93::i;:::-;18048:5;;17999:371;;;;4912:1;;;4795::::1;17522:853:::0;;;;:::o;18381:375::-;4748:5;;18434:10;;4748:5;;;-1:-1:-1;;;;;4748:5:0;:17;;4740:48;;;;;-1:-1:-1;;;;;;;;;;;4740:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;18472:8:::1;::::0;;;::::1;;;18462:19;::::0;;;:9:::1;:19;::::0;;;;;-1:-1:-1;;18453:66:0::1;;;::::0;;-1:-1:-1;;;;;;;;;;;18453:66:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;18528:8;:10:::0;;::::1;;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;18528:10:0;;::::1;::::0;;;::::1;::::0;;;18557:8;;::::1;::::0;::::1;-1:-1:-1::0;18547:19:0;;;:9:::1;:19;::::0;;;;;;:33;;;18606:13;;;;;;;;;18651:8;;18589:77:::1;::::0;-1:-1:-1;;;;;18606:13:0::1;::::0;;;;;18651:8;;;::::1;;::::0;18589:16:::1;:77::i;:::-;18690:10;:13;::::0;;;::::1;::::0;;;;;18735:8:::1;::::0;18673:77:::1;::::0;-1:-1:-1;;;;;18690:13:0;;::::1;::::0;;;;;18735:8;;;::::1;;;::::0;18673:16:::1;:77::i;17074:97::-:0;17151:10;17123:4;17143:19;;;;;;;;;;:22;;;17074:97;;:::o;3650:36::-;3685:1;3650:36;:::o;3740:44::-;;;;;;;;;;;;-1:-1:-1;;;;;3740:44:0;;:::o;6704:1209::-;6782:10;4856:7;:14;;;;;;;;;;:21;;;;;4848:57;;;;;-1:-1:-1;;;;;;;;;;;4848:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3644:1:::1;4966:14;;:32;;4958:59;;;::::0;;-1:-1:-1;;;;;;;;;;;4958:59:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;3644:1;5024:14;:31:::0;6836:1:::2;6825:12;::::0;::::2;;::::0;:28:::2;;;6841:7;:12;;6852:1;6841:12;6825:28;6816:69;;;::::0;;-1:-1:-1;;;;;;;;;;;6816:69:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;6910:1;6901:6;:10;;;:32;;;;-1:-1:-1::0;6925:8:0::2;::::0;::::2;::::0;;;::::2;::::0;::::2;6915:18:::0;;::::2;;;6901:32;6892:68;;;::::0;;-1:-1:-1;;;;;;;;;;;6892:68:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;7001:10;6973:17;6993:19:::0;;;::::2;::::0;;;;;;:31:::2;;:46:::0;;::::2;-1:-1:-1::0;;7026:11:0;;6993:46:::2;::::0;;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6973:66;;7046:16;7065:1;7046:20;;7079:7;:12;;7090:1;7079:12;7075:49;;;-1:-1:-1::0;7115:1:0::2;7075:49;7155:6;7141:20;;:11;:20;;;7132:59;;;::::0;;-1:-1:-1;;;;;;;;;;;7132:59:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;7232:1;7223:6;:10;7207:27;;:11;:27;;;7198:70;;;::::0;;-1:-1:-1;;;;;;;;;;;7198:70:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;7293:10;7285:7;:19:::0;;;::::2;::::0;;;;;;:31:::2;;:43:::0;;7284:59:::2;::::0;;::::2;::::0;7285:31;:43;;::::2;::::0;;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7331:1;7285:47;7284:59;;;;7275:97;;;::::0;;-1:-1:-1;;;;;;;;;;;7275:97:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;7401:17;::::0;::::2;;::::0;;;:9:::2;:17;::::0;;;;;7388:9:::2;:30;7379:70;;;::::0;;-1:-1:-1;;;;;;;;;;;7379:70:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;7486:10;7460:15;7478:19:::0;;;::::2;::::0;;;;;;;;:27:::2;;::::0;7518:45;;;;;7478:27:::2;::::0;::::2;-1:-1:-1::0;;;;;7478:27:0::2;7518:45:::0;;::::2;::::0;;;::::2;::::0;;::::2;::::0;;;;;::::2;::::0;;;;;;7478:27;;7518:45:::2;::::0;;;;;;;;::::2;7576:7;:12;;7587:1;7576:12;7572:276;;;7599:109;7616:10;7628:7;7637:55;7655:10;7667:7;7676:1;7679:6;7687:4;7637:17;:55::i;:::-;7694:6;7702:5;7599:16;:109::i;:::-;7572:276;;;7731:109;7748:10;7760:7;7769:55;7787:10;7799:7;7808:1;7811:6;7819:4;7769:17;:55::i;:::-;7826:6;7834:5;7731:16;:109::i;:::-;7856:47;7869:10;7892:1;7882:7;:11;7896:6;7856:12;:47::i;:::-;-1:-1:-1::0;;3598:1:0::1;5074:14;:30:::0;-1:-1:-1;;;;6704:1209:0:o;3895:21::-;;;;;;;;;:::o;17300:216::-;4748:5;;17386:10;;4748:5;;;-1:-1:-1;;;;;4748:5:0;:17;;4740:48;;;;;-1:-1:-1;;;;;;;;;;;4740:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17405:37:::1;17419:5;17426:8;17436:5;17405:13;:37::i;:::-;17449:27;17459:5;17466:1;17469:6;17449:9;:27::i;:::-;17483;17493:5;17500:1;17503:6;17483:9;:27::i;:::-;17300:216:::0;;;;:::o;3789:39::-;;;;;;;;;;;;;:::o;3870:20::-;;;;;;:::o;18762:491::-;4748:5;;18836:10;;4748:5;;;-1:-1:-1;;;;;4748:5:0;:17;;4740:48;;;;;-1:-1:-1;;;;;;;;;;;4740:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;18873:1:::1;18864:6;:10;;;:32;;;;-1:-1:-1::0;18888:8:0::1;::::0;::::1;::::0;;;::::1;::::0;::::1;18878:18:::0;;::::1;;;18864:32;18855:68;;;::::0;;-1:-1:-1;;;;;;;;;;;18855:68:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;18953:1;18939:11;:15;18930:48;;;::::0;;-1:-1:-1;;;;;;;;;;;18930:48:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;19000:1;18991:6;:10;;;18987:103;;;19021:23;-1:-1:-1::0;;19032:10:0;;19021:23:::1;;::::0;;;:9:::1;:23;::::0;;;;;:37;-1:-1:-1;19012:70:0::1;;;::::0;;-1:-1:-1;;;;;;;;;;;19012:70:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;19111:8;::::0;::::1;::::0;;;::::1;::::0;::::1;19102:17:::0;;::::1;;19098:110;;;19139:23;19159:1;19150:10:::0;::::1;19139:23;;::::0;;;:9:::1;:23;::::0;;;;;:37;-1:-1:-1;19130:70:0::1;;;::::0;;-1:-1:-1;;;;;;;;;;;19130:70:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;19216:17:0::1;::::0;;::::1;;::::0;;;:9:::1;:17;::::0;;;;:31;18762:491::o;6215:483::-;-1:-1:-1;;;;;6311:14:0;;:7;:14;;;;;;;;;;:21;;;;;6310:22;6302:52;;;;;-1:-1:-1;;;;;;;;;;;6302:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6367:17;6363:96;;-1:-1:-1;;;;;6403:17:0;;:7;:17;;;;;;;;;;:24;;;;;6395:56;;;;;-1:-1:-1;;;;;;;;;;;6395:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6467:6;:8;;;;;;;;;;-1:-1:-1;;6467:8:0;;;;;;;;;;;6505:99;;;;;;;;6518:6;;;;6505:99;;-1:-1:-1;6505:99:0;;;;6588:14;;6600:1;6588:14;;;;;;;;6505:99;;;;6588:14;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;-1:-1;;;6505:99:0;;6553:4;6505:99;;;;;;;-1:-1:-1;;;;;6505:99:0;;;;;;;;6488:14;;-1:-1:-1;6488:14:0;;;;;;;;;:116;;;;;;;;-1:-1:-1;;6488:116:0;;;;;;;;-1:-1:-1;;6488:116:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6488:116:0;;;;;;;;;;;;;;;;;-1:-1:-1;;6488:116:0;;;;;;;;;;;;;-1:-1:-1;;;;;6488:116:0;;;;;;;;6622:6;;;;;;;-1:-1:-1;6611:18:0;;;-1:-1:-1;6611:18:0;;;;;;;;;:26;;-1:-1:-1;;6611:26:0;;;;;;;;;;6675:6;;6655:37;;;;;6675:6;;;6655:37;;;;;;;;;;;;;;;;;;;;;;;;;;6215:483;;;:::o;7919:627::-;-1:-1:-1;;;;;8070:14:0;;8045:22;8070:14;;;;;;;;;;8093:18;;;:21;;8070:14;;8117:6;;8093:21;;;;;;;;;;;;;;;;:30;;:21;;;;:30;;;;;;;;;;;;;;;;;;;;;8160:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8160:92:0;;;;;;;;;8130:27;;;;;:19;;;:27;;;;;;;:122;;;;;;;;;;;;;;-1:-1:-1;;8130:122:0;;;8160:92;8130:122;;;;-1:-1:-1;;8130:122:0;;8160:92;8130:122;;;;;;;;;;;-1:-1:-1;;8130:122:0;;;;;;;;;;-1:-1:-1;;8130:122:0;;;;;;;;;;;;;-1:-1:-1;;8130:122:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8265:16;;;-1:-1:-1;8265:16:0;8261:221;;;8292:7;;;8261:221;8332:8;-1:-1:-1;;;;;8316:24:0;:12;-1:-1:-1;;;;;8316:24:0;;8312:170;;;-1:-1:-1;;;;;8351:21:0;;:7;:21;;;;;;;;;;;:42;;;;;:34;;:42;;;;;:56;;;;;;;;;-1:-1:-1;;8351:56:0;;;;;;8312:170;;;8430:27;;;;;;;:19;;;:27;;;;;:44;;-1:-1:-1;;8430:44:0;;;;;8312:170;8494:46;8509:5;8516:8;8526:6;8534:5;8494:14;:46::i;:::-;7919:627;;;;;;;:::o;9150:726::-;-1:-1:-1;;;;;9301:14:0;;9276:22;9301:14;;;;;;;;;;9328:18;;;;:21;;9352:6;;9328:18;:21;;;;;;;;;;;;;;;;;;:30;;;;;;:21;;;;:30;;;;;;;;;;;;;;;;;;;;9395:191;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9395:191:0;;;;;;;;;;;;;;;;9545:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;9545:16:0;;9395:191;;;9365:6;:19;;:27;9385:6;9365:27;;;;;;;;;;;;;;;:221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9365:221:0;;;;;-1:-1:-1;;;;;9365:221:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9365:221:0;;;;;-1:-1:-1;;;;;9365:221:0;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;9611:4:0;9599:16;;;;9595:221;;;9626:7;;;9595:221;9666:8;-1:-1:-1;;;;;9650:24:0;:12;-1:-1:-1;;;;;9650:24:0;;9646:170;;;-1:-1:-1;;;;;9685:21:0;;:7;:21;;;;;;;;;;;:42;;;;;:34;;:42;;;;;:56;;;;;;;;;-1:-1:-1;;9685:56:0;;;;;;9646:170;;;9764:27;;;;;;;:19;;;:27;;;;;:44;;-1:-1:-1;;9764:44:0;;;;;9646:170;9824:46;9839:5;9846:8;9856:6;9864:5;9824:14;:46::i;16503:565::-;16585:16;16604:42;16623:5;16630:7;16639:6;16604:18;:42::i;:::-;16660:51;;;-1:-1:-1;;;;;16660:51:0;;;;;;16700:1;16690:11;;16660:51;;;;;;;;;;;;;;16585:61;;-1:-1:-1;16660:51:0;;;;;;;;;;;;;16779:17;;;16721:12;16779:17;;;:9;:17;;;;;;;16739:75;;-1:-1:-1;;;;;16739:31:0;;;16803:5;;16721:12;16739:75;16721:12;16739:75;16779:17;16739:31;16803:5;16739:75;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;-1:-1;16720:94:0;;-1:-1:-1;;16827:16:0;16823:240;;16947:13;;16976:17;;;16947:13;16976:17;;;:9;16947:13;16976:17;16947:13;16976:17;;;;16931:80;;-1:-1:-1;;;;;16947:13:0;;;;17000:5;;16931:80;16947:13;16931:80;16976:17;16947:13;17000:5;16931:80;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;16917:94:0;;;;;17028:7;17020:35;;;;;-1:-1:-1;;;;;;;;;;;17020:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;13105:484;13224:7;13265:8;13282:302;13356:6;13308:54;;:7;:23;13316:14;-1:-1:-1;;;;;13308:23:0;-1:-1:-1;;;;;13308:23:0;;;;;;;;;;;;:35;;13344:7;13308:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:54;13304:102;;13382:14;-1:-1:-1;13375:21:0;;13304:102;13429:4;13420:13;;;;13416:102;;;13451:57;;;-1:-1:-1;;;;;13451:57:0;;;;;;13497:1;13487:11;;13451:57;;;;;;;;;;;;;;;;;;;;;;;;;;;13416:102;-1:-1:-1;;;;;13545:23:0;;;:7;:23;;;;;;;;;;:31;;;;;;;13282:302;;13105:484;;;;;;;;:::o;8552:592::-;-1:-1:-1;;;;;8674:17:0;;;8652:19;8674:17;;;;;;;;;;;:38;;;;;;;:30;;;;:38;;;;;;8764:18;;8726:70;;;;;;;;;;;;;;;;;;8785:1;8764:18;;;;;;:22;;;;8726:70;;;;;;;;;;;;;;;8674:38;;8726:70;;;;;;;;;;8809:18;;8831:1;8809:18;;;;;;:23;8805:334;;8848:33;;;-1:-1:-1;;;;;8848:33:0;;;;;8871:1;8848:33;;;;;;;;;;;;;;;;;;;;;;;;;;8892:22;;-1:-1:-1;;8923:17:0;;-1:-1:-1;8923:17:0;-1:-1:-1;;8892:22:0;;;8923:17;;;;;;;;;;;;;;;;-1:-1:-1;8967:13:0;;;;;;;-1:-1:-1;;;;;8967:13:0;;;8955:25;;;;8951:138;;8993:17;;;;;;;;;;;;;;;;-1:-1:-1;;8993:17:0;;;;;;;;;;9023:56;;9038:8;;-1:-1:-1;;;;;9048:16:0;;;;;;9066:6;;9023:14;:56::i;:::-;8805:334;;;9111:20;;-1:-1:-1;;9111:20:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;8552:592:0:o;9882:2143::-;-1:-1:-1;;;;;10002:14:0;;;9982:17;10002:14;;;;;;;;;;;:35;;;;;;:27;;;;:35;;;;;10066:17;;;;;;;;;;;:38;;;:30;:38;;;;;10155:1;10117:28;;;:35;:39;10113:1427;;;10171:28;;;:35;10167:142;;10224:24;;-1:-1:-1;;10224:24:0;;;;;10167:142;;;10275:24;;-1:-1:-1;;10275:24:0;;;;;10167:142;10325:18;;;;:29;;-1:-1:-1;;10325:29:0;;;-1:-1:-1;;;;;10325:29:0;;;;;;;;;10363:28;;;27:10:-1;;23:18;;;45:23;;-1:-1;10363:40:0;;;;;;;;;;;;;;;;;;;;;;10430:13;;;;;;;;;10418:25;10414:69;;10456:17;;;;;;;;;;;;;;;;-1:-1:-1;;10456:17:0;;;;;;10414:69;10541:20;;;;10563:22;;10499:95;;10524:5;;10531:8;;-1:-1:-1;;;;;10541:20:0;;10563:22;;;;;10587:6;10499:24;:95::i;:::-;10113:1427;;;10623:27;;;;;;;10619:754;;10668:24;;-1:-1:-1;;10668:24:0;;;;;10724:28;;;:31;;10668:20;;10724:31;;;;;;;;;;;;;;;10703:18;;;:52;;-1:-1:-1;;10703:52:0;-1:-1:-1;;;;;10724:31:0;;;10703:52;;;;;;;10766:32;;;;;;;;;;;;;;;;-1:-1:-1;;10766:32:0;;;;;;10619:754;;;10825:27;;;;;10855:1;10825:31;10820:553;;10875:24;;-1:-1:-1;;10875:24:0;;;;;10898:1;10931:28;;:31;;-1:-1:-1;;10931:31:0;;;;;;;;;;;;;;;10910:18;;:52;;-1:-1:-1;;10910:52:0;-1:-1:-1;;;;;10931:31:0;;;10910:52;;;;;;10973:32;;;;;;;;;11004:1;10973:32;;;;;-1:-1:-1;;10973:32:0;;;;;;10820:553;;;11026:27;;;;;11056:1;11026:31;11021:352;;11076:24;;-1:-1:-1;;11076:24:0;;;;;11132:28;;;:31;;11099:1;;11132:31;;;;;;;;;;;;;;;;;11111:18;;:52;;-1:-1:-1;;11111:52:0;-1:-1:-1;;;;;11132:31:0;;;11111:52;;;;;;11174:32;;;;;;;;;11205:1;11174:32;;;;;-1:-1:-1;;11174:32:0;;;;;;11021:352;;;11233:24;;-1:-1:-1;;11233:24:0;;;;;11256:1;11289:28;;:31;;-1:-1:-1;;11289:31:0;;;;;;;;;;;;;;;;;11268:18;;:52;;-1:-1:-1;;11268:52:0;-1:-1:-1;;;;;11289:31:0;;;11268:52;;;;;;11331:32;;;;;;;;;11362:1;11331:32;;;;;-1:-1:-1;;11331:32:0;;;;;;11021:352;11409:10;:13;;;;;;;;;;11387:18;;;;-1:-1:-1;;;;;11387:18:0;;;11409:13;;11387:35;11383:150;;11443:18;;;;;-1:-1:-1;;;;;11443:18:0;;;11435:7;:27;;;;;;;;;;;:48;;;;;:40;;:48;;;;:68;;27:10:-1;;23:18;;;45:23;;11435:80:0;;;;;;;;;-1:-1:-1;;11435:80:0;;;;;;;;;;11383:150;11553:27;;11583:2;11553:27;;;;:32;;11552:40;11548:372;;;11608:33;;;-1:-1:-1;;;;;11608:33:0;;;;;11631:1;11608:33;;;;;;;;;;;;;;;;;;;;;;;;;;11683:16;;;11697:1;11683:16;;;;;;;;;11652:47;;;:28;;;;:47;:::i;:::-;-1:-1:-1;11708:31:0;;-1:-1:-1;;11748:17:0;;-1:-1:-1;11748:17:0;-1:-1:-1;;11708:31:0;;;11748:17;;;;;;;;;;;;;;;;-1:-1:-1;11792:13:0;;;;;;;-1:-1:-1;;;;;11792:13:0;;;11780:25;;;;11776:137;;11818:16;;;;;;;;;;;;;;;;-1:-1:-1;;11818:16:0;;;;;;;;;;11847:56;;11862:8;;-1:-1:-1;;;;;11872:16:0;;;;;;11890:6;;11847:14;:56::i;:::-;11970:20;;11992:18;;;;11933:86;;;-1:-1:-1;;;;;11933:86:0;;;;;;;;;;;;11970:20;11933:86;;;;;;;11970:20;;;;;;;;11933:86;;;;11992:18;;;;11933:86;;;;;;;;;;;;;;;;;;;;;9882:2143;;;;;;:::o;15235:1262::-;15325:7;;;15393:12;;;15389:1103;;-1:-1:-1;;;;;;15433:14:0;;;:7;:14;;;;;;;;;;;:35;;;;;:27;;:35;;;;;:43;;;;;15487:377;-1:-1:-1;;;;;15531:17:0;;15511;15531;;;;;;;;;;;:38;;;;;;:30;;;;:38;;;;;;15586:13;;15531:38;;15586:13;;;;;15582:64;;-1:-1:-1;15626:8:0;-1:-1:-1;15619:15:0;;-1:-1:-1;15619:15:0;15582:64;15658:15;;-1:-1:-1;;15658:15:0;;;;;;;;;;;-1:-1:-1;;15658:15:0;;;;;;;;;;15691:8;;-1:-1:-1;15721:14:0;;;;-1:-1:-1;;;;;15721:14:0;;-1:-1:-1;15752:10:0;;;;:37;;;;-1:-1:-1;15766:19:0;;;;;;;:23;;15752:37;15748:107;;;15814:29;15830:4;15836:6;15814:15;:29::i;:::-;15487:377;;;15389:1103;-1:-1:-1;;;;;;15897:14:0;;;:7;:14;;;;;;;;;;;:35;;;;;:27;;:35;;;;;:43;;;;;15951:534;-1:-1:-1;;;;;15995:17:0;;15975;15995;;;;;;;;;;;:38;;;;;;:30;;;;:38;;;;;;16050:13;;15995:38;;16050:13;;;;;:18;:39;;;;-1:-1:-1;16072:12:0;;;;;;;:17;16050:39;16046:85;;;-1:-1:-1;16111:8:0;-1:-1:-1;16104:15:0;;-1:-1:-1;16104:15:0;16046:85;16147:13;;;;;;;:17;16143:333;;16179:15;;-1:-1:-1;;16179:15:0;;;;;;;;;;;;;-1:-1:-1;;16179:15:0;;;;;;;16218:18;;;-1:-1:-1;;;;;16218:18:0;;-1:-1:-1;16143:333:0;;;16267:14;;-1:-1:-1;;16267:14:0;;;;;;;;;;;-1:-1:-1;;16267:14:0;;;;;;;;;;16301:8;;-1:-1:-1;16333:14:0;;;;-1:-1:-1;;;;;16333:14:0;;-1:-1:-1;16368:10:0;;;;:37;;;;-1:-1:-1;16382:19:0;;;;;;;:23;;16368:37;16364:101;;;16422:29;16438:4;16444:6;16422:15;:29::i;:::-;15951:534;;;15235:1262;;;;;;:::o;12031:1068::-;-1:-1:-1;;;;;12191:18:0;;12169:19;12191:18;;;;;;;;;;;:39;;;;;;:31;;;;:39;;;;;;12243:22;;12191:39;;12243:22;;;;;:27;:56;;;;-1:-1:-1;12286:10:0;:13;;;;;;;;-1:-1:-1;;;;;12274:25:0;;;12286:13;;12274:25;12243:56;12239:85;;;12310:7;;;12239:85;12340:14;:19;;12358:1;12340:19;12336:375;;;12375:27;;;;;12405:1;12375:31;12370:156;;12425:32;;;;;;;;;12456:1;12425:32;;;;;-1:-1:-1;;12425:32:0;;;;;;12370:156;;;12484:32;;;;;;;;;12515:1;12484:32;;;;;-1:-1:-1;;12484:32:0;;;;;;12370:156;12336:375;;;12553:27;;;;;12583:1;12553:31;12548:156;;12603:32;;;;;;;;;12634:1;12603:32;;;;;-1:-1:-1;;12603:32:0;;;;;;12548:156;;;12662:32;;;;;;;;;12693:1;12662:32;;;;;-1:-1:-1;;12662:32:0;;;;;;12548:156;12724:27;;12754:2;12724:27;;;;:32;;12723:40;12719:375;;;12779:34;;;-1:-1:-1;;;;;12779:34:0;;;;;12803:1;12779:34;;;;;;;;;;;;;;;;;;;;;;;;;;12855:16;;;12869:1;12855:16;;;;;;;;;12824:47;;;:28;;;;:47;:::i;:::-;-1:-1:-1;12880:31:0;;-1:-1:-1;;12920:17:0;;-1:-1:-1;12920:17:0;-1:-1:-1;;12880:31:0;;;12920:17;;;;;;;;;;;;;;;;-1:-1:-1;12965:13:0;;;;;;;-1:-1:-1;;;;;12965:13:0;;;12952:26;;;;12948:139;;12991:16;;;;;;;;;;;;;;;;-1:-1:-1;;12991:16:0;;;;;;;;;;13020:57;;13035:9;;-1:-1:-1;;;;;13046:16:0;;;;;;13064:6;;13020:14;:57::i;13595:779::-;-1:-1:-1;;;;;13685:14:0;;13665:17;13685:14;;;;;;;;;;;:35;;;;;;:27;;;;:35;;;;;13756:21;;-1:-1:-1;;13756:21:0;;;;;;;;;;;;;;;;;;;13685:35;;13665:17;3685:1;13790:19;;;;;;;:34;13786:583;;-1:-1:-1;;;;;13853:14:0;;;13835:15;13853:14;;;;;;;;;;;:22;;;;;;;;;13890:16;;;;;;13853:22;13890:28;:31;;:41;;;;13835:15;13890:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:41;13886:339;;13944:23;;-1:-1:-1;;13944:23:0;;;-1:-1:-1;;;13886:339:0;;;14029:51;14047:5;14054:7;14063:1;14066:6;14074:5;14029:17;:51::i;:::-;14097:14;;14019:61;;-1:-1:-1;;;;;;14097:25:0;;;:14;;;;;:25;;;;:70;;-1:-1:-1;;;;;;14126:16:0;;:7;:16;;;;;;;;;;:28;;:31;;:41;;;;:7;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:41;;14097:70;14093:123;;;14200:4;14190:14;;14093:123;14250:4;14239:15;;;;14235:127;;;14267:24;;-1:-1:-1;;;;;14267:24:0;;;;;;;;;;;;;;;;14309:43;;;;;;;;-1:-1:-1;14309:43:0;;;;;;;;;;;;;;;;;;;;;13786:583;13595:779;;;;:::o;14380:849::-;-1:-1:-1;;;;;14470:14:0;;14450:17;14470:14;;;;;;;;;;;:35;;;;;;:27;;;;:35;;;;;14541:21;;-1:-1:-1;;14541:21:0;;;;;;;;;;;;;;;;;;;14470:35;;14450:17;3685:1;14575:19;;;;;;;:34;14571:653;;-1:-1:-1;;;;;14638:14:0;;;14620:15;14638:14;;;;;;;;;;;:22;;;;;;;;;14675:16;;;;;;14638:22;14675:28;;;:31;;:41;;;;14638:22;14675:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:41;14671:439;;14729:23;;14763:24;;;-1:-1:-1;;;;;14763:24:0;;;;;;-1:-1:-1;;;14671:439:0;;;14839:22;14864:51;14882:5;14889:7;14898:1;14901:6;14909:5;14864:17;:51::i;:::-;14932:14;;14839:76;;-1:-1:-1;;;;;;14932:32:0;;;:14;;;;;:32;;;;:84;;-1:-1:-1;;;;;;14968:23:0;;:7;:23;;;;;;;;;;:35;;;;:38;;:48;;;;:35;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;14932:84;14928:173;;;15031:31;;;;;-1:-1:-1;;;;;15031:31:0;;;;;;-1:-1:-1;;;14928:173:0;14671:439;;15135:4;15124:15;;;;15120:97;;;15174:14;;15157:50;;;-1:-1:-1;;;;;15157:50:0;;;;;15197:1;15157:50;;;;;;;;;;;;;15174:14;;;;;;;;;15157:50;;;;;;;;;14571:653;14380:849;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

ipfs://2eeb65f1c5138a4ae5191d939dfa119c98fc14e39c4bc8ba660397ade9209ab6

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.