ETH Price: $3,264.31 (+1.29%)
Gas: 2.68 Gwei

Contract

0xC32818A2f18B5C92bCF9f406b04Bcf05589E549C
 

Overview

ETH Balance

3.2985 ETH

Eth Value

$10,767.31 (@ $3,264.31/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Registration109376882020-09-26 10:26:441567 days ago1601116004IN
0xC32818A2...5589E549C
0.03 ETH0.0524336445
Registration107150302020-08-23 6:47:121601 days ago1598165232IN
0xC32818A2...5589E549C
0.03 ETH0.0540441660
Registration107140992020-08-23 3:19:321601 days ago1598152772IN
0xC32818A2...5589E549C
0.03 ETH0.0583784566
Registration107139112020-08-23 2:41:141601 days ago1598150474IN
0xC32818A2...5589E549C
0.03 ETH0.046591966
Registration107138232020-08-23 2:20:361601 days ago1598149236IN
0xC32818A2...5589E549C
0.03 ETH0.0547650962
Registration107135742020-08-23 1:19:411601 days ago1598145581IN
0xC32818A2...5589E549C
0.03 ETH0.0546891462.00000134
Registration107111662020-08-22 16:34:581602 days ago1598114098IN
0xC32818A2...5589E549C
0.03 ETH0.0816829496
Disburse Reward ...106846522020-08-18 14:54:371606 days ago1597762477IN
0xC32818A2...5589E549C
0 ETH0.06943146
Registration106845182020-08-18 14:28:341606 days ago1597760914IN
0xC32818A2...5589E549C
0.03 ETH0.15237697157
Registration106835912020-08-18 11:04:261606 days ago1597748666IN
0xC32818A2...5589E549C
0.03 ETH0.0556660473.76893785
Registration106828362020-08-18 8:13:051606 days ago1597738385IN
0xC32818A2...5589E549C
0.03 ETH0.09093731117
Upgrade106737722020-08-16 22:18:531608 days ago1597616333IN
0xC32818A2...5589E549C
0.03 ETH0.07474
Registration106726682020-08-16 18:16:111608 days ago1597601771IN
0xC32818A2...5589E549C
0.03 ETH0.0676475275
Registration106716652020-08-16 14:41:291608 days ago1597588889IN
0xC32818A2...5589E549C
0.03 ETH0.08317979106
Registration106688552020-08-16 4:09:371608 days ago1597550977IN
0xC32818A2...5589E549C
0.03 ETH0.0736152484
Upgrade106687692020-08-16 3:49:431608 days ago1597549783IN
0xC32818A2...5589E549C
0.03 ETH0.08484
Upgrade106687322020-08-16 3:41:211608 days ago1597549281IN
0xC32818A2...5589E549C
0.03 ETH0.08181
Upgrade106686312020-08-16 3:18:121608 days ago1597547892IN
0xC32818A2...5589E549C
0.03 ETH0.0859137585.91375123
Upgrade106686282020-08-16 3:17:071608 days ago1597547827IN
0xC32818A2...5589E549C
0.03 ETH0.0859137585.91375123
Upgrade106686242020-08-16 3:15:491608 days ago1597547749IN
0xC32818A2...5589E549C
0.03 ETH0.0216102285.91375123
Upgrade106685812020-08-16 3:05:511608 days ago1597547151IN
0xC32818A2...5589E549C
0.06 ETH0.0334532880
Registration106682822020-08-16 1:59:021608 days ago1597543142IN
0xC32818A2...5589E549C
0.03 ETH0.0567868375.264
Registration106682612020-08-16 1:53:021608 days ago1597542782IN
0xC32818A2...5589E549C
0.03 ETH0.003645
Registration106679422020-08-16 0:44:551609 days ago1597538695IN
0xC32818A2...5589E549C
0.03 ETH0.0652310470
Registration106677802020-08-16 0:13:021609 days ago1597536782IN
0xC32818A2...5589E549C
0.03 ETH0.0069108660
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
109376882020-09-26 10:26:441567 days ago1601116004
0xC32818A2...5589E549C
0.0001875 ETH
109376882020-09-26 10:26:441567 days ago1601116004
0xC32818A2...5589E549C
0.0001875 ETH
109376882020-09-26 10:26:441567 days ago1601116004
0xC32818A2...5589E549C
0.0001875 ETH
109376882020-09-26 10:26:441567 days ago1601116004
0xC32818A2...5589E549C
0.0001875 ETH
109376882020-09-26 10:26:441567 days ago1601116004
0xC32818A2...5589E549C
0.0105 ETH
109376882020-09-26 10:26:441567 days ago1601116004
0xC32818A2...5589E549C
0.015 ETH
107150302020-08-23 6:47:121601 days ago1598165232
0xC32818A2...5589E549C
0.01125 ETH
107150302020-08-23 6:47:121601 days ago1598165232
0xC32818A2...5589E549C
0.015 ETH
107140992020-08-23 3:19:321601 days ago1598152772
0xC32818A2...5589E549C
0.01125 ETH
107140992020-08-23 3:19:321601 days ago1598152772
0xC32818A2...5589E549C
0.015 ETH
107139112020-08-23 2:41:141601 days ago1598150474
0xC32818A2...5589E549C
0.01125 ETH
107139112020-08-23 2:41:141601 days ago1598150474
0xC32818A2...5589E549C
0.015 ETH
107138232020-08-23 2:20:361601 days ago1598149236
0xC32818A2...5589E549C
0.01125 ETH
107138232020-08-23 2:20:361601 days ago1598149236
0xC32818A2...5589E549C
0.015 ETH
107135742020-08-23 1:19:411601 days ago1598145581
0xC32818A2...5589E549C
0.01125 ETH
107135742020-08-23 1:19:411601 days ago1598145581
0xC32818A2...5589E549C
0.015 ETH
107111662020-08-22 16:34:581602 days ago1598114098
0xC32818A2...5589E549C
0.01125 ETH
107111662020-08-22 16:34:581602 days ago1598114098
0xC32818A2...5589E549C
0.015 ETH
106846522020-08-18 14:54:371606 days ago1597762477
0xC32818A2...5589E549C
0.0123075 ETH
106846522020-08-18 14:54:371606 days ago1597762477
0xC32818A2...5589E549C
0.0287175 ETH
106846522020-08-18 14:54:371606 days ago1597762477
0xC32818A2...5589E549C
0.0615375 ETH
106846522020-08-18 14:54:371606 days ago1597762477
0xC32818A2...5589E549C
0.1025625 ETH
106846522020-08-18 14:54:371606 days ago1597762477
0xC32818A2...5589E549C
0.205125 ETH
106845182020-08-18 14:28:341606 days ago1597760914
0xC32818A2...5589E549C
0.00075 ETH
106845182020-08-18 14:28:341606 days ago1597760914
0xC32818A2...5589E549C
0.0105 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ALPHA

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-08-13
*/

/*
    ___     __     ____     __  __    ___ 
   /   |   / /    / __ \   / / / /   /   |
  / /| |  / /    / /_/ /  / /_/ /   / /| |
 / ___ | / /___ / ____/  / __  /   / ___ |
/_/  |_|/_____//_/      /_/ /_/   /_/  |_|
                                          

https://thealphaproject.io/                                          
*/

pragma solidity ^0.4.18;contract ALPHA { struct MemberInfo { uint userID; uint datereg; address referrer; address[] allReferrals; uint totalRewardBonus; uint bonusID; uint[] rewardBonusIDs; uint activeX3Levels; uint activeX4Levels; uint pendingIncomeID; mapping(uint => mapping(uint => mapping(uint => PendingIncome))) pendingIncome; mapping (uint => uint) pendingIncomeLevel; mapping (uint => uint) pendingIncomeMatrix; } struct AX3Info { uint datereg; bool isActive; uint enterred; mapping(uint => address[]) referrals; uint cycle; } struct AX4Info { uint datereg; bool missedIncome; bool isActive; uint enterred; uint cycle; address uplineposition; mapping(uint => address[]) accounts; mapping(uint => mapping(uint => address)) slotAddress; mapping(uint => mapping(address => uint)) source; } struct RewardBonus { bool isActive; uint amount; uint dateAdded; uint amountWithdrawn; } struct RewardInfo{ address account; uint totalDirect; uint bonusPrize; bool isWinner; } struct PendingIncome{ bool isActive; uint amount; uint dateAdded; } mapping(uint => address[]) rewardQualifiers; mapping(uint => address[]) rewardPoolWinners; mapping (address => MemberInfo) memberInfos; mapping(address => uint) public balance; mapping(address => uint) public x3balance; mapping(address => uint) public x4balance; mapping(uint => mapping(uint => AX3Info)) matrix3Infos; mapping(uint => mapping(uint => AX4Info)) matrix4Infos; mapping(uint => mapping(uint => RewardInfo)) rewardInfo; mapping(uint => mapping(uint => RewardBonus)) rewardBonus; address owner; uint public lastID = 2; uint public rewardPool; uint public rewardCycle; uint public TotalEthTransactions; uint public UnclaimeddProfit; constructor() public { owner = msg.sender; rewardCycle = 1; for(uint i=1; i<=12; i++){ if(i== 1){ newMember(owner, 1, address(0), i, false, 0, 0); }else{ newMember(owner, 1, address(0), i, true, 3, 0); newMember(owner, 1, address(0), i, true, 4, 0); } } } function registration(address uplineAddress) external payable { require(msg.value == 0.03 ether, "registration starts at 0.03"); uint packageLvl = 1; uint memberId = getUserId(msg.sender); require(memberId == 0, "member is already registered."); uint uplineUserId = getUserId(uplineAddress); require(uplineUserId > 0, "upline address not found"); TotalEthTransactions += msg.value; uint _entry = msg.value; uint _x3Profit = _entry / 2; rewardPool += (_x3Profit * 5) / 100; memberId = lastID++; newMember(msg.sender, memberId, uplineAddress, packageLvl, false, 0, _x3Profit); address _referrerUpline = getUpline(uplineAddress); MemberInfo storage _uplineInfo = memberInfos[uplineAddress]; _uplineInfo.allReferrals.push(msg.sender); AX3Info storage _uplineMatrix3Info = matrix3Infos[uplineUserId][packageLvl]; _uplineMatrix3Info.referrals[_uplineMatrix3Info.cycle].push(msg.sender); addRewardQualifier(uplineAddress, uplineUserId); if(_uplineMatrix3Info.enterred == 2){ _uplineMatrix3Info.enterred = 0; _uplineMatrix3Info.cycle += 1; sendProfit(3, _referrerUpline, _x3Profit, packageLvl); }else{ _uplineMatrix3Info.enterred += 1; uplineAddress.transfer(_x3Profit); balance[uplineAddress] += _x3Profit; x3balance[uplineAddress] += _x3Profit; } processMatrix(uplineAddress, uplineUserId, msg.sender, packageLvl, _x3Profit); } uint memberId; function upgrade(uint256 matrix) external payable { require(matrix == 3 || matrix == 4,"invalid matrix type"); require(msg.value >= 0.03 ether, "upgrade starts from 0.03 eth"); memberId = getUserId(msg.sender); require(memberId > 0, "register to level 1 first"); uint packageLvl = getPackageLevel(msg.value); require(getActiveMatrix(matrix, msg.sender) == (packageLvl - 1), "InvalidLevel Upgrade. Must be in sequence."); require(packageLvl > 1, "invalid amount for the upgrade"); bool hasPackage = matrix3Infos[memberId][packageLvl].isActive; if(matrix == 4){ hasPackage = matrix4Infos[memberId][packageLvl].isActive; } require(!hasPackage, "you are already registered to this level"); address _referrerAddress = getUpline(msg.sender); uint _referrerUserId = getUserId(_referrerAddress); releasePendingIncome(matrix, msg.sender, packageLvl); newMember(msg.sender, memberId, _referrerAddress, packageLvl, true, matrix, msg.value); if(matrix == 3){ uint _x3Profit = getX3Profit(packageLvl, msg.value, msg.sender); address _referrerUplineAddress = getUpline(_referrerAddress); AX3Info storage _referrerMatrix3Info = matrix3Infos[_referrerUserId][packageLvl]; _referrerMatrix3Info.referrals[_referrerMatrix3Info.cycle].push(msg.sender); addRewardQualifier(_referrerAddress, _referrerUserId); if(_referrerMatrix3Info.enterred == 2){ _referrerMatrix3Info.enterred = 0; _referrerMatrix3Info.cycle += 1; sendProfit(3, _referrerUplineAddress, _x3Profit, packageLvl); }else{ _referrerMatrix3Info.enterred += 1; sendProfit(3, _referrerAddress, _x3Profit, packageLvl); } }else{ uint _x4Profit = msg.value; rewardPool += (_x4Profit * 5) / 100; _referrerAddress = getActiveUpline(4, msg.sender, packageLvl - 1, packageLvl); _referrerUserId = getUserId(_referrerAddress); processMatrix(_referrerAddress , _referrerUserId, msg.sender, packageLvl, _x4Profit); } } function sendProfit(uint matrix, address _account, uint _profit, uint _packageLvl)internal{ if(_account != address(0)){ bool isLvlActive = isMatrixActive(matrix, _account, _packageLvl); if(isLvlActive || matrix == 4){ if(_account != address(0)){ _account.transfer(_profit); balance[_account] += _profit; if(matrix == 3){ x3balance[_account] += _profit; }else{ x4balance[_account] += _profit; } } else{ owner.transfer(_profit); balance[owner] += _profit; } }else{ UnclaimeddProfit += _profit; MissedIncome(matrix, _account, _profit, _packageLvl); } } else{ owner.transfer(_profit); balance[owner] += _profit; } } function AddRewardBonus(uint _memberId, uint _rewardBonusID, uint _rewardBonus)internal{ RewardBonus storage _uplineRewardBonus = rewardBonus[_memberId][_rewardBonusID]; _uplineRewardBonus.isActive = true; _uplineRewardBonus.amount = (_rewardBonus * 20) / 100; _uplineRewardBonus.dateAdded = now; } function getX3Profit(uint _packageLvl, uint _amount, address _newMember)internal returns (uint profit){ uint _x3profit = _amount; uint _rewardBack; if(_packageLvl >= 3 && _packageLvl <= 6){ _x3profit = (_amount * 75) / 100; _rewardBack = _amount - _x3profit; _newMember.transfer(_rewardBack); balance[_newMember] += _rewardBack; x3balance[_newMember] += _rewardBack; }else if(_packageLvl >= 7){ _rewardBack = (_amount * 50) / 100; _x3profit = _rewardBack; _newMember.transfer(_rewardBack); balance[_newMember] += _rewardBack; x3balance[_newMember] += _rewardBack; } return _x3profit; } function newMember(address _account, uint _memberId, address _uplineAddress, uint _packageLvl, bool isUpgrade, uint matrix, uint _packageAmount) internal{ MemberInfo storage _memberInfo = memberInfos[_account]; AX3Info storage _newMatrix3Info = matrix3Infos[_memberId][_packageLvl]; AX4Info storage _newMatrix4Info = matrix4Infos[_memberId][_packageLvl]; if(!isUpgrade){ AddRewardBonus(_memberId, 1, (_packageAmount)); _memberInfo.datereg = now; _memberInfo.totalRewardBonus += (_packageAmount * 20) / 100; _memberInfo.rewardBonusIDs.push(1); _memberInfo.referrer = _uplineAddress; _memberInfo.userID = _memberId; _memberInfo.bonusID = 2; _memberInfo.pendingIncomeID = 1; _newMatrix3Info.isActive = true; _newMatrix3Info.datereg = now; _memberInfo.activeX3Levels += 1; _newMatrix4Info.isActive = true; _newMatrix4Info.datereg = now; _memberInfo.activeX4Levels += 1; }else{ if(matrix == 3){ _newMatrix3Info.isActive = true; _newMatrix3Info.datereg = now; _memberInfo.activeX3Levels += 1; }else{ AddRewardBonus(_memberId, _memberInfo.bonusID, _packageAmount); _memberInfo.totalRewardBonus += (_packageAmount * 20) / 100; _memberInfo.rewardBonusIDs.push(_memberInfo.bonusID); _memberInfo.bonusID += 1; _newMatrix4Info.isActive = true; _newMatrix4Info.datereg = now; _newMatrix4Info.missedIncome = false; _memberInfo.activeX4Levels += 1; } } }function processMatrix(address _uplineAddress, uint _uplineUserId, address _newMember, uint _packageLvl, uint _giveProfit) internal { uint _x4Profit = (_giveProfit * 75) / 100; address _2ndUpline = getNetworkUpline(_uplineAddress, _packageLvl); AX4Info storage _uplineMatrix4Info = matrix4Infos[_uplineUserId][_packageLvl]; uint spillOverPosition = getX4AvailableSlot(_uplineAddress, _packageLvl, _uplineMatrix4Info.cycle); _uplineMatrix4Info.slotAddress[_uplineMatrix4Info.cycle][spillOverPosition] = _newMember; _uplineMatrix4Info.source[_uplineMatrix4Info.cycle][_newMember] = 1; _uplineMatrix4Info.accounts[_uplineMatrix4Info.cycle].push(_newMember); _uplineMatrix4Info.enterred += 1; uint getAccountPosition = 0; if(spillOverPosition == 3 || spillOverPosition == 4){ getAccountPosition = 1; }else if(spillOverPosition == 5 || spillOverPosition == 6){ getAccountPosition = 2; } if(getAccountPosition > 0){ address _x4DownlineAddress = _uplineMatrix4Info.slotAddress[_uplineMatrix4Info.cycle][getAccountPosition]; DownlineX4Matrix(_x4DownlineAddress, _packageLvl, _newMember, _uplineMatrix4Info.cycle); if(_uplineMatrix4Info.enterred <= 5){ sendProfit(4, _uplineAddress, _x4Profit, _packageLvl); }else{ uplineUpdateX4(_uplineAddress, _2ndUpline, _packageLvl, _giveProfit); } }else{ setUpline(_newMember, _uplineAddress, _packageLvl); nextUplineUpdateX4(_uplineAddress, _2ndUpline, _newMember, _packageLvl, _giveProfit, false); } } function nextUplineUpdateX4(address _downline, address _uplineAddress, address _newMember, uint _packageLvl, uint _giveProfit, bool isCycle)internal{ uint _uplineUserId = getUserId(_uplineAddress); AX4Info storage _2ndupline_Matrix4Info = matrix4Infos[_uplineUserId][_packageLvl]; uint cycle = _2ndupline_Matrix4Info.cycle; uint dlPosition = 0; uint _2ndUplineEnterPosition = _2ndupline_Matrix4Info.enterred; if(isCycle) { _2ndUplineEnterPosition = getX4AvailableSlot(_uplineAddress, _packageLvl, cycle); if(_2ndUplineEnterPosition == 3 || _2ndUplineEnterPosition == 4){ dlPosition = 1; }else if(_2ndUplineEnterPosition == 4 || _2ndUplineEnterPosition == 6){ dlPosition = 2; } } else{ if(_2ndUplineEnterPosition > 0){ if(getMatrix4SlotInfo(_uplineAddress, _packageLvl, cycle, 1) == _downline) { _2ndUplineEnterPosition = 3; if(getMatrix4SlotInfo(_uplineAddress, _packageLvl, cycle, 3) != address(0)){ _2ndUplineEnterPosition = 4; } dlPosition = 1; } else { dlPosition = 2; _2ndUplineEnterPosition = 5; if(getMatrix4SlotInfo(_uplineAddress, _packageLvl, cycle, 5) != address(0)){ _2ndUplineEnterPosition = 6; } } }else{ _2ndUplineEnterPosition = getX4AvailableSlot(_uplineAddress, _packageLvl, cycle); } } _2ndupline_Matrix4Info.slotAddress[cycle][_2ndUplineEnterPosition] = _newMember; _2ndupline_Matrix4Info.source[cycle][_newMember] = 3; _2ndupline_Matrix4Info.accounts[cycle].push(_newMember); _2ndupline_Matrix4Info.enterred += 1; if(isCycle){ if(dlPosition > 0){ address _x4DownlineAddress = _2ndupline_Matrix4Info.slotAddress[cycle][dlPosition]; DownlineX4Matrix(_x4DownlineAddress, _packageLvl, _newMember, cycle); } } if(_2ndupline_Matrix4Info.enterred == 6){ _2ndupline_Matrix4Info.enterred = 0; _2ndupline_Matrix4Info.cycle += 1; if(_giveProfit > 0){ sendProfit(4, _uplineAddress, (_giveProfit * 70) / 100, _packageLvl); disburseRefRewards(_uplineAddress, _giveProfit); MemberInfo storage _memberInfo = memberInfos[_uplineAddress]; AddRewardBonus(_uplineUserId, _memberInfo.bonusID, (_giveProfit * 20) / 100); _memberInfo.totalRewardBonus += (_giveProfit * 20) / 100; _memberInfo.rewardBonusIDs.push(1); _memberInfo.bonusID += 1; } address nxtUpline = getNetworkUpline(_uplineAddress, _packageLvl); if(nxtUpline != address(0)){ nextUplineUpdateX4(_uplineAddress, nxtUpline, _uplineAddress, _packageLvl,0, true); } }else{ if(_giveProfit > 0){ sendProfit(4, _uplineAddress, (_giveProfit * 75) / 100, _packageLvl); } } } function uplineUpdateX4(address _account, address _uplineAddress, uint _packageLvl, uint _giveProfit) internal{ uint userId = getUserId(_account); AX4Info storage _uplineMatrix4Info = matrix4Infos[userId][_packageLvl]; if(_uplineMatrix4Info.enterred >= 6){ _uplineMatrix4Info.enterred = 0; _uplineMatrix4Info.cycle += 1; uint _resetProfit = (_giveProfit * 70) / 100; sendProfit(4, _uplineAddress, _resetProfit, _packageLvl); disburseRefRewards(_account, _giveProfit); MemberInfo storage _memberInfo = memberInfos[_account]; AddRewardBonus(userId, _memberInfo.bonusID, (_giveProfit * 20) / 100); _memberInfo.totalRewardBonus += (_giveProfit * 20) / 100; _memberInfo.rewardBonusIDs.push(1); _memberInfo.bonusID += 1; if(_uplineAddress != address(0)){ nextUplineUpdateX4(_account, _uplineAddress, _account, _packageLvl, 0, true); } } } function DownlineX4Matrix(address account, uint _packageLvl, address _newMember, uint uplinecycle) internal{ setUpline(_newMember, account, _packageLvl); uint userId = getUserId(account); AX4Info storage _downline_Matrix4Info = matrix4Infos[userId][_packageLvl]; _downline_Matrix4Info.slotAddress[_downline_Matrix4Info.cycle][_downline_Matrix4Info.enterred + 1] = _newMember; _downline_Matrix4Info.source[_downline_Matrix4Info.cycle][_newMember] = 2; _downline_Matrix4Info.accounts[uplinecycle].push(_newMember); _downline_Matrix4Info.enterred += 1; } function setUpline(address newaccount, address uplineaccount, uint _packageLvl)internal{ uint _memberId = getUserId(newaccount); AX4Info storage _newMatrix4Info = matrix4Infos[_memberId][_packageLvl]; _newMatrix4Info.uplineposition = uplineaccount; } function getNetworkUpline(address account, uint _packageLvl)view public returns (address upline){ uint _memberId = getUserId(account); AX4Info storage _memberInfo = matrix4Infos[_memberId][_packageLvl]; return _memberInfo.uplineposition; } function MissedIncome(uint matrix, address account, uint income, uint _packageLvl)internal{ MemberInfo storage accountInfo = memberInfos[account]; accountInfo.pendingIncomeLevel[accountInfo.pendingIncomeID] = _packageLvl; accountInfo.pendingIncomeMatrix[accountInfo.pendingIncomeID] = matrix; PendingIncome storage _missedIncome = accountInfo.pendingIncome[matrix][_packageLvl][accountInfo.pendingIncomeID]; _missedIncome.amount = income; _missedIncome.dateAdded = now; _missedIncome.isActive = true; accountInfo.pendingIncomeID += 1; } function disburseRefRewards(address _account, uint _entry)internal{ address[] memory _allRefs = getAllReferrals(_account); uint _giveDlProfit = ((_entry * 5) / 100) / (_allRefs.length); for (uint i=0; i < _allRefs.length; i++) { _allRefs[i].transfer(_giveDlProfit); balance[_allRefs[i]] += _giveDlProfit; x4balance[_allRefs[i]] += _giveDlProfit; } } function getPackageLevel(uint _amount)pure internal returns(uint){ uint lvl = 0; if(_amount == 0.03 ether){ lvl = 2; }else if(_amount == 0.06 ether){ lvl = 3; }else if(_amount == 0.12 ether){ lvl = 4; }else if(_amount == 0.24 ether){ lvl = 5; }else if(_amount == 0.48 ether){ lvl = 6; }else if(_amount == 0.96 ether){ lvl = 7; }else if(_amount == 1.92 ether){ lvl = 8; }else if(_amount == 3.84 ether){ lvl = 9; }else if(_amount == 7.68 ether){ lvl = 10; }else if(_amount == 15.36 ether){ lvl = 11; }else if(_amount == 30.72 ether){ lvl = 12; } return lvl; } function addRewardQualifier(address account, uint accountId) internal{ RewardInfo storage _reward = rewardInfo[accountId][rewardCycle]; _reward.account = account; _reward.totalDirect += 1; if(!existInRewardList(account, rewardCycle)){ rewardQualifiers[rewardCycle].push(account); } } function getX4AvailableSlot(address _address, uint _packageLvl, uint _cycle)view public returns(uint){ for(uint i=1; i<=6; i++){ address account = getMatrix4SlotInfo(_address, _packageLvl, _cycle, i); if(account == address(0)){ return i; } } return 0; } function existInRewardList(address account, uint cycle)view internal returns (bool){ address[] memory rewardList = rewardQualifiers[cycle]; for (uint i = 0; i < rewardList.length; i++) { if (rewardList[i] == account) { return true; } } return false; } function getRewardQualifiers(uint _cycle) view public returns (address[] accounts){ return rewardQualifiers[_cycle]; } function getRewardPoolInfo(address _account, uint _cycle) view public returns (address account, uint totalDirect, uint bonusPrize, bool isWinner){ uint _userID = getUserId(_account); return (rewardInfo[_userID][_cycle].account, rewardInfo[_userID][_cycle].totalDirect, rewardInfo[_userID][_cycle].bonusPrize, rewardInfo[_userID][_cycle].isWinner); } function getAccountInfo(address _address) view public returns (uint userId, address directUpline, uint totalRewardBonus, uint BonusID, uint PendingIncomeID, uint registered) { return (memberInfos[_address].userID, memberInfos[_address].referrer, memberInfos[_address].totalRewardBonus, memberInfos[_address].bonusID, memberInfos[_address].pendingIncomeID, memberInfos[_address].datereg); } function getUserId(address _address) view public returns (uint userId) { if(_address == owner){ return 1; } return (memberInfos[_address].userID); } function getUpline(address _address) view public returns (address upline) { return (memberInfos[_address].referrer); } function getPendingIncomeID(address _address) view public returns (uint PendingID) { return (memberInfos[_address].pendingIncomeID); } function getPendingIncome(uint matrix, address _address, uint level, uint pendingId) view public returns (bool isactive, uint amount, uint totalHours) { PendingIncome storage pending = memberInfos[_address].pendingIncome[matrix][level][pendingId]; return (pending.isActive, pending.amount, ((now - pending.dateAdded) / 60) / 60); } function getPendingIncomeInfo(address account, uint pendingId) view public returns(uint matrix, uint package){ MemberInfo storage accountInfo = memberInfos[account]; return(accountInfo.pendingIncomeMatrix[pendingId], accountInfo.pendingIncomeLevel[pendingId]); } function getMatrix3Info(uint userId, uint level) view public returns (bool isactive, uint occupiedslots, uint cyclecount, uint datereg) { return (matrix3Infos[userId][level].isActive, matrix3Infos[userId][level].enterred, matrix3Infos[userId][level].cycle, matrix3Infos[userId][level].datereg); } function getMatrix3Referrals(address _address,uint level, uint cycle) view public returns (address[] referrals) { uint _memberId = getUserId(_address); return (matrix3Infos[_memberId][level].referrals[cycle]); } function getAllReferrals(address _address) view public returns (address[] referrals) { return (memberInfos[_address].allReferrals); } function getMatrix4Info(uint userId, uint level) view public returns (bool isactive, uint occupiedslots, uint cyclecount, bool missedIncome, uint datereg) { return (matrix4Infos[userId][level].isActive, matrix4Infos[userId][level].enterred, matrix4Infos[userId][level].cycle, matrix4Infos[userId][level].missedIncome, matrix4Infos[userId][level].datereg); } function isMatrixActive(uint matrix, address _address, uint level) view public returns (bool) { uint userId = getUserId(_address); if(matrix == 3){ return (matrix3Infos[userId][level].isActive); } return (matrix4Infos[userId][level].isActive); } function getMatrix4Referrals(address _address, uint level, uint cycle) view public returns (address[] referrals) { uint _memberId = getUserId(_address); AX4Info storage _matrix4Info = matrix4Infos[_memberId][level]; return _matrix4Info.accounts[cycle]; } function getMatrix4SlotInfo(address _address, uint level, uint cycle, uint position) view public returns (address account) { uint _memberId = getUserId(_address); AX4Info storage _matrix4Info = matrix4Infos[_memberId][level]; return _matrix4Info.slotAddress[cycle][position]; } function getMatrix4SourceType(uint _userID, address _address, uint level, uint cycle) view public returns (uint sourceType) { AX4Info storage _matrix4Info = matrix4Infos[_userID][level]; return _matrix4Info.source[cycle][_address]; } function getActiveMatrix(uint matrix, address _address) view public returns (uint lastlevel) { MemberInfo storage member = memberInfos[_address]; if(matrix == 3){ return member.activeX3Levels; } return member.activeX4Levels; } function getRewardBonusIDs(address _address) view public returns (uint[] RewardBonus_IDs) { return memberInfos[_address].rewardBonusIDs; } function getRewardBonusInfo(uint _userId, uint _rewardId) view public returns (bool isActive, uint Amount, uint DateAdded, uint withdrawnAmount) { RewardBonus storage _rewardBonus = rewardBonus[_userId][_rewardId]; return(_rewardBonus.isActive, _rewardBonus.amount, _rewardBonus.dateAdded, _rewardBonus.amountWithdrawn); } function getAvailableRewardBonus(uint _userId, uint _rewardId) view public returns (uint Balance) { RewardBonus storage _rewardBonus = rewardBonus[_userId][_rewardId]; if(_rewardBonus.isActive){ uint _totalMins = (((now - _rewardBonus.dateAdded) / 60)); if(_totalMins > 7200){ _totalMins = 7200; } uint _hourlyIncome = (_rewardBonus.amount / 7200); uint _totalIncome = _hourlyIncome * _totalMins; uint _balance = _totalIncome - _rewardBonus.amountWithdrawn; return _balance; } return 0; } function withdrawBonus(uint amount, uint rewardID)public{ uint _userId = getUserId(msg.sender); require(_userId > 0, "invalid account"); uint _balance = getAvailableRewardBonus(_userId, rewardID); require(_balance > 0,"you don't have available balance"); require(_balance >= amount, "invalid amount to withdraw"); RewardBonus storage _rewardBonus = rewardBonus[_userId][rewardID]; _rewardBonus.amountWithdrawn += amount; if(_rewardBonus.amount >= _rewardBonus.amountWithdrawn){ _rewardBonus.isActive = false; } msg.sender.transfer(amount); balance[msg.sender] += amount; x4balance[msg.sender] += amount; } function disburseRewardPool(address winner_1, address winner_2,address winner_3,address winner_4,address winner_5) public{ require(msg.sender == owner, "invalid transaction"); uint _dividend = rewardPool; uint _cycle = rewardCycle; rewardPoolWinners[_cycle].push(winner_1); rewardPoolWinners[_cycle].push(winner_2); rewardPoolWinners[_cycle].push(winner_3); rewardPoolWinners[_cycle].push(winner_4); rewardPoolWinners[_cycle].push(winner_5); uint percentage = 50; for(uint i=0; i<=4; i++){ if(i == 1){ percentage = 25; } else if(i == 2){ percentage = 15; } else if(i == 3){ percentage = 7; }if(i == 4){ percentage = 3; } address _winner = rewardPoolWinners[_cycle][i]; uint _userId = getUserId(_winner); uint _sendReward = (_dividend * percentage) / 100; RewardInfo storage reward1 = rewardInfo[_userId][_cycle]; reward1.isWinner = true; reward1.bonusPrize = _sendReward; _winner.transfer(_sendReward); balance[_winner] += _sendReward; x4balance[_winner] += _sendReward; } rewardCycle += 1; rewardPool = 0; } function getActiveUpline(uint matrix, address account, uint _networkLvl, uint _packageLvl) internal returns(address ){ bool _isUplineActiveBox = false; address _uplineAccount; uint _uplineUserId; while(_isUplineActiveBox != true){ if(matrix == 3){ _uplineAccount = getUpline(account); }else{ _uplineAccount = getNetworkUpline(account, _networkLvl); } if(_uplineAccount == address(0)){ _uplineAccount = owner; } if(_uplineAccount == owner){ _isUplineActiveBox = true; }else{ MemberInfo storage uplineInfox = memberInfos[_uplineAccount]; _uplineUserId = uplineInfox.userID; account = uplineInfox.referrer; if(matrix == 3){ _isUplineActiveBox = matrix3Infos[_uplineUserId][_packageLvl].isActive; }else{ _isUplineActiveBox = matrix4Infos[_uplineUserId][_packageLvl].isActive; if(_isUplineActiveBox == false){ AX4Info storage uplineX4 = matrix4Infos[_uplineUserId][_packageLvl]; uplineX4.missedIncome = true; } } } } return _uplineAccount; } function releasePendingIncome(uint matrix, address account, uint _packageLvl) internal{ MemberInfo storage accountInfo = memberInfos[account]; uint pendingId = accountInfo.pendingIncomeID;for(uint i=1; i< pendingId; i++){ PendingIncome storage _missedIncome = accountInfo.pendingIncome[matrix][_packageLvl][i]; if(_missedIncome.isActive){ uint timeDuration = ((now - _missedIncome.dateAdded) / 60) / 60; if(timeDuration < 24) { uint income = _missedIncome.amount; account.transfer(income); balance[account] += (income); x3balance[account] += (income); }else{ uint _income1 = (_missedIncome.amount * 30) / 100; uint _income2 = (_missedIncome.amount * 70) / 100; account.transfer(_income1); balance[account] += _income1; x3balance[account] += _income1; address _uplineAccount = getActiveUpline(matrix, account, _packageLvl, _packageLvl); _uplineAccount.transfer(_income2); balance[_uplineAccount] += _income2; x3balance[_uplineAccount] += _income2; } UnclaimeddProfit -= _missedIncome.amount; _missedIncome.isActive = false; } } }}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"uplineAddress","type":"address"}],"name":"registration","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"winner_1","type":"address"},{"name":"winner_2","type":"address"},{"name":"winner_3","type":"address"},{"name":"winner_4","type":"address"},{"name":"winner_5","type":"address"}],"name":"disburseRewardPool","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"},{"name":"pendingId","type":"uint256"}],"name":"getPendingIncomeInfo","outputs":[{"name":"matrix","type":"uint256"},{"name":"package","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getUserId","outputs":[{"name":"userId","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userId","type":"uint256"},{"name":"_rewardId","type":"uint256"}],"name":"getRewardBonusInfo","outputs":[{"name":"isActive","type":"bool"},{"name":"Amount","type":"uint256"},{"name":"DateAdded","type":"uint256"},{"name":"withdrawnAmount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"},{"name":"level","type":"uint256"},{"name":"cycle","type":"uint256"},{"name":"position","type":"uint256"}],"name":"getMatrix4SlotInfo","outputs":[{"name":"account","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"matrix","type":"uint256"}],"name":"upgrade","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"},{"name":"level","type":"uint256"},{"name":"cycle","type":"uint256"}],"name":"getMatrix4Referrals","outputs":[{"name":"referrals","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"userId","type":"uint256"},{"name":"level","type":"uint256"}],"name":"getMatrix4Info","outputs":[{"name":"isactive","type":"bool"},{"name":"occupiedslots","type":"uint256"},{"name":"cyclecount","type":"uint256"},{"name":"missedIncome","type":"bool"},{"name":"datereg","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardPool","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"},{"name":"_cycle","type":"uint256"}],"name":"getRewardPoolInfo","outputs":[{"name":"account","type":"address"},{"name":"totalDirect","type":"uint256"},{"name":"bonusPrize","type":"uint256"},{"name":"isWinner","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardCycle","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"matrix","type":"uint256"},{"name":"_address","type":"address"}],"name":"getActiveMatrix","outputs":[{"name":"lastlevel","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"},{"name":"rewardID","type":"uint256"}],"name":"withdrawBonus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getAccountInfo","outputs":[{"name":"userId","type":"uint256"},{"name":"directUpline","type":"address"},{"name":"totalRewardBonus","type":"uint256"},{"name":"BonusID","type":"uint256"},{"name":"PendingIncomeID","type":"uint256"},{"name":"registered","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TotalEthTransactions","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getPendingIncomeID","outputs":[{"name":"PendingID","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"},{"name":"_packageLvl","type":"uint256"}],"name":"getNetworkUpline","outputs":[{"name":"upline","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"userId","type":"uint256"},{"name":"level","type":"uint256"}],"name":"getMatrix3Info","outputs":[{"name":"isactive","type":"bool"},{"name":"occupiedslots","type":"uint256"},{"name":"cyclecount","type":"uint256"},{"name":"datereg","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userId","type":"uint256"},{"name":"_rewardId","type":"uint256"}],"name":"getAvailableRewardBonus","outputs":[{"name":"Balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getRewardBonusIDs","outputs":[{"name":"RewardBonus_IDs","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getAllReferrals","outputs":[{"name":"referrals","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"matrix","type":"uint256"},{"name":"_address","type":"address"},{"name":"level","type":"uint256"}],"name":"isMatrixActive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"x4balance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"UnclaimeddProfit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"},{"name":"_packageLvl","type":"uint256"},{"name":"_cycle","type":"uint256"}],"name":"getX4AvailableSlot","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"matrix","type":"uint256"},{"name":"_address","type":"address"},{"name":"level","type":"uint256"},{"name":"pendingId","type":"uint256"}],"name":"getPendingIncome","outputs":[{"name":"isactive","type":"bool"},{"name":"amount","type":"uint256"},{"name":"totalHours","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userID","type":"uint256"},{"name":"_address","type":"address"},{"name":"level","type":"uint256"},{"name":"cycle","type":"uint256"}],"name":"getMatrix4SourceType","outputs":[{"name":"sourceType","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getUpline","outputs":[{"name":"upline","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"},{"name":"level","type":"uint256"},{"name":"cycle","type":"uint256"}],"name":"getMatrix3Referrals","outputs":[{"name":"referrals","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_cycle","type":"uint256"}],"name":"getRewardQualifiers","outputs":[{"name":"accounts","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"x3balance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]

60806040526002600b553480156200001657600080fd5b50600a8054600160a060020a031916331790556001600d8190555b600c8111620000cd5780600114156200007257600a546200006c90600160a060020a03166001600084818080640100000000620000d4810204565b620000c4565b600a546200009b90600160a060020a0316600160008482600383640100000000620000d4810204565b600a54620000c490600160a060020a0316600160008482600483640100000000620000d4810204565b60010162000031565b50620002c2565b600160a060020a03871660009081526002602090815260408083208984526006835281842088855283528184208a8552600784528285208986529093529220851515620001d157620001328960018664010000000062000286810204565b426001848101829055600485018054606460148902040190556006850180548083018255600091825260209091200181905560028086018054600160a060020a038d16600160a060020a03199091161790558b8655600586015560098501819055838101805460ff19168217905581845560078501805482019055828101805461ff00191661010017905590825560088401805490910190556200027a565b8460031415620001fe576001828101805460ff19168217905542835560078401805490910190556200027a565b6200021e8984600501548662000286640100000000026401000000009004565b60048301805460646014870204019055600583018054600685018054600181810183556000928352602090922001829055908101909155818101805442845560ff1961ff00199091166101001716905560088401805490910190555b50505050505050505050565b60008381526009602090815260408083208584529091529020805460ff1916600117815560646014830204600182015542600290910155505050565b612fa480620002d26000396000f3006080604052600436106101ab5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630840605a81146101b05780630b1d1a44146101c657806310b5473f146101ff5780632b956ff71461023c57806338a6f5381461026f578063392d26e3146102b257806345977d03146102f8578063479acbdd146103035780634ac0e14e1461037a57806366666aa9146103c45780636dde1d50146103d95780636ee010ae1461042f57806378d488b2146104445780637ac8456f146104685780637b510fe81461048357806386c5d117146104df5780638e1c0fa2146104f45780638f322d6e1461051557806393a8eabe146105395780639d37a7c6146105545780639d8326dc1461056f578063a218f1c514610590578063a2b38907146105b1578063a3827db3146105ec578063a40d372e1461060d578063aa61890b14610622578063ae857c4514610649578063c5e0e0de14610693578063cb6f37ab146106bd578063e2f45965146106de578063e31a9d9214610705578063e3d670d71461071a578063eebad1661461073b578063f0273f5b14610753575b600080fd5b6101c4600160a060020a0360043516610774565b005b3480156101d257600080fd5b506101c4600160a060020a0360043581169060243581169060443581169060643581169060843516610ab3565b34801561020b57600080fd5b50610223600160a060020a0360043516602435610e58565b6040805192835260208301919091528051918290030190f35b34801561024857600080fd5b5061025d600160a060020a0360043516610e91565b60408051918252519081900360200190f35b34801561027b57600080fd5b5061028a600435602435610ed2565b6040805194151585526020850193909352838301919091526060830152519081900360800190f35b3480156102be57600080fd5b506102dc600160a060020a0360043516602435604435606435610f09565b60408051600160a060020a039092168252519081900360200190f35b6101c4600435610f5b565b34801561030f57600080fd5b5061032a600160a060020a0360043516602435604435611396565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561036657818101518382015260200161034e565b505050509050019250505060405180910390f35b34801561038657600080fd5b5061039560043560243561142d565b604080519515158652602086019490945284840192909252151560608401526080830152519081900360a00190f35b3480156103d057600080fd5b5061025d611468565b3480156103e557600080fd5b506103fd600160a060020a036004351660243561146e565b60408051600160a060020a03909516855260208501939093528383019190915215156060830152519081900360800190f35b34801561043b57600080fd5b5061025d6114c9565b34801561045057600080fd5b5061025d600435600160a060020a03602435166114cf565b34801561047457600080fd5b506101c460043560243561150b565b34801561048f57600080fd5b506104a4600160a060020a03600435166116c3565b60408051968752600160a060020a039095166020870152858501939093526060850191909152608084015260a0830152519081900360c00190f35b3480156104eb57600080fd5b5061025d611708565b34801561050057600080fd5b5061025d600160a060020a036004351661170e565b34801561052157600080fd5b506102dc600160a060020a036004351660243561172c565b34801561054557600080fd5b5061028a600435602435611771565b34801561056057600080fd5b5061025d6004356024356117a7565b34801561057b57600080fd5b5061032a600160a060020a0360043516611821565b34801561059c57600080fd5b5061032a600160a060020a0360043516611890565b3480156105bd57600080fd5b506105d8600435600160a060020a0360243516604435611908565b604080519115158252519081900360200190f35b3480156105f857600080fd5b5061025d600160a060020a0360043516611976565b34801561061957600080fd5b5061025d611988565b34801561062e57600080fd5b5061025d600160a060020a036004351660243560443561198e565b34801561065557600080fd5b50610673600435600160a060020a03602435166044356064356119d9565b604080519315158452602084019290925282820152519081900360600190f35b34801561069f57600080fd5b5061025d600435600160a060020a0360243516604435606435611a39565b3480156106c957600080fd5b506102dc600160a060020a0360043516611a75565b3480156106ea57600080fd5b5061032a600160a060020a0360043516602435604435611a97565b34801561071157600080fd5b5061025d611b28565b34801561072657600080fd5b5061025d600160a060020a0360043516611b2e565b34801561074757600080fd5b5061032a600435611b40565b34801561075f57600080fd5b5061025d600160a060020a0360043516611ba8565b600080808080808080666a94d74f43000034146107db576040805160e560020a62461bcd02815260206004820152601b60248201527f726567697374726174696f6e2073746172747320617420302e30330000000000604482015290519081900360640190fd5b600197506107e833610e91565b96508615610840576040805160e560020a62461bcd02815260206004820152601d60248201527f6d656d62657220697320616c726561647920726567697374657265642e000000604482015290519081900360640190fd5b61084989610e91565b9550600086116108a3576040805160e560020a62461bcd02815260206004820152601860248201527f75706c696e652061646472657373206e6f7420666f756e640000000000000000604482015290519081900360640190fd5b600e8054349081019091559450600285049350606460058502600c8054929091049091019055600b80546001810190915596506108e633888b8b6000808a611bba565b6108ef89611a75565b9250600260008a600160a060020a0316600160a060020a031681526020019081526020016000209150816003013390806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a03160217905550506006600087815260200190815260200160002060008981526020019081526020016000209050806003016000826004015481526020019081526020016000203390806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a03160217905550506109f98987611d59565b806002015460021415610a2a57600060028201556004810180546001019055610a25600384868b611e05565b610a9b565b6002810180546001019055604051600160a060020a038a169085156108fc029086906000818181858888f19350505050158015610a6b573d6000803e3d6000fd5b50600160a060020a0389166000908152600360209081526040808320805488019055600490915290208054850190555b610aa88987338b88611fc6565b505050505050505050565b600a546000908190819081908190819081908190600160a060020a03163314610b26576040805160e560020a62461bcd02815260206004820152601360248201527f696e76616c6964207472616e73616374696f6e00000000000000000000000000604482015290519081900360640190fd5b600c549750600d549650600160008881526020019081526020016000208d90806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050600160008881526020019081526020016000208c90806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050600160008881526020019081526020016000208b90806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050600160008881526020019081526020016000208a90806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050600160008881526020019081526020016000208990806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a031602179055505060329550600094505b60048511610e3b578460011415610d245760199550610d44565b8460021415610d3657600f9550610d44565b8460031415610d4457600795505b8460041415610d5257600395505b6000878152600160205260409020805486908110610d6c57fe5b600091825260209091200154600160a060020a03169350610d8c84610e91565b9250606488870260008581526008602090815260408083208c845290915280822060038101805460ff1916600117905593909204600284018190559151919450919250600160a060020a0386169184156108fc02918591818181858888f19350505050158015610e00573d6000803e3d6000fd5b50600160a060020a03841660009081526003602090815260408083208054860190556005909152902080548301905560019490940193610d0a565b5050600d8054600101905550506000600c55505050505050505050565b600160a060020a03919091166000908152600260209081526040808320938352600c8401825280832054600b9094019091529020549091565b600a54600090600160a060020a0383811691161415610eb257506001610ecd565b50600160a060020a0381166000908152600260205260409020545b919050565b6000918252600960209081526040808420928452919052902080546001820154600283015460039093015460ff9092169390929190565b6000806000610f1787610e91565b6000908152600760209081526040808320988352978152878220968252600690960186528681209481529390945250509190912054600160a060020a031692915050565b6000806000806000806000808860031480610f765750886004145b1515610fcc576040805160e560020a62461bcd02815260206004820152601360248201527f696e76616c6964206d6174726978207479706500000000000000000000000000604482015290519081900360640190fd5b666a94d74f43000034101561102b576040805160e560020a62461bcd02815260206004820152601c60248201527f75706772616465207374617274732066726f6d20302e30332065746800000000604482015290519081900360640190fd5b61103433610e91565b6010819055600010611090576040805160e560020a62461bcd02815260206004820152601960248201527f726567697374657220746f206c6576656c203120666972737400000000000000604482015290519081900360640190fd5b611099346121ea565b9750600188036110a98a336114cf565b14611124576040805160e560020a62461bcd02815260206004820152602a60248201527f496e76616c69644c6576656c20557067726164652e204d75737420626520696e60448201527f2073657175656e63652e00000000000000000000000000000000000000000000606482015290519081900360840190fd5b6001881161117c576040805160e560020a62461bcd02815260206004820152601e60248201527f696e76616c696420616d6f756e7420666f722074686520757067726164650000604482015290519081900360640190fd5b60105460009081526006602090815260408083208b845290915290206001015460ff16965060048914156111d55760105460009081526007602090815260408083208b8452909152902060010154610100900460ff1696505b8615611251576040805160e560020a62461bcd02815260206004820152602860248201527f796f752061726520616c7265616479207265676973746572656420746f20746860448201527f6973206c6576656c000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61125a33611a75565b955061126586610e91565b945061127289338a6122f6565b61128433601054888b60018e34611bba565b886003141561135657611298883433612506565b93506112a386611a75565b60008681526006602090815260408083208c845282528083206004810154845260038101835290832080546001810182559084529190922001805473ffffffffffffffffffffffffffffffffffffffff19163317905590935091506113088686611d59565b81600201546002141561133957600060028301556004820180546001019055611334600384868b611e05565b611351565b6002820180546001019055611351600387868b611e05565b610aa8565b5034606460058202600c805492909104909101905561137c6004336000198b018b61261c565b955061138786610e91565b9450610aa88686338b85611fc6565b60606000806113a486610e91565b60008181526007602090815260408083208984528252808320888452600581018352928190208054825181850281018501909352808352949650929450929083018282801561141c57602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116113fe575b505050505092505b50509392505050565b60009182526007602090815260408084209284529190529020600181015460028201546003830154925460ff61010084048116959294931691565b600c5481565b600080600080600061147f87610e91565b600090815260086020908152604080832098835297905295909520805460018201546002830154600390930154600160a060020a039092169990985091965060ff16945092505050565b600d5481565b600160a060020a038116600090815260026020526040812060038414156114fc5780600701549150611504565b806008015491505b5092915050565b600080600061151933610e91565b925060008311611573576040805160e560020a62461bcd02815260206004820152600f60248201527f696e76616c6964206163636f756e740000000000000000000000000000000000604482015290519081900360640190fd5b61157d83856117a7565b9150600082116115d7576040805160e560020a62461bcd02815260206004820181905260248201527f796f7520646f6e2774206861766520617661696c61626c652062616c616e6365604482015290519081900360640190fd5b8482101561162f576040805160e560020a62461bcd02815260206004820152601a60248201527f696e76616c696420616d6f756e7420746f207769746864726177000000000000604482015290519081900360640190fd5b506000828152600960209081526040808320868452909152902060038101805486019081905560018201541061166857805460ff191681555b604051339086156108fc029087906000818181858888f19350505050158015611695573d6000803e3d6000fd5b5050336000908152600360209081526040808320805488019055600590915290208054909401909355505050565b600160a060020a039081166000908152600260208190526040909120805491810154600482015460058301546009840154600190940154949692909516949093909291565b600e5481565b600160a060020a031660009081526002602052604090206009015490565b600080600061173a85610e91565b600081815260076020908152604080832088845290915290206004810154600160a060020a0316945090925090505b505092915050565b60009182526006602090815260408084209284529190529020600181015460028201546004830154925460ff9092169390929190565b600082815260096020908152604080832084845290915281208054829081908190819060ff1615611811576002850154603c904203049350611c208411156117ef57611c2093505b6001850154611c20900492508383029150846003015482039050809550611816565b600095505b505050505092915050565b600160a060020a03811660009081526002602090815260409182902060060180548351818402810184019094528084526060939283018282801561188457602002820191906000526020600020905b815481526020019060010190808311611870575b50505050509050919050565b600160a060020a03811660009081526002602090815260409182902060030180548351818402810184019094528084526060939283018282801561188457602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116118df5750505050509050919050565b60008061191484610e91565b9050846003141561194657600081815260066020908152604080832086845290915290206001015460ff16915061196e565b6000818152600760209081526040808320868452909152902060010154610100900460ff1691505b509392505050565b60056020526000908152604090205481565b600f5481565b60006001815b600682116119cd576119a886868685610f09565b9050600160a060020a03811615156119c257819250611424565b600190910190611994565b50600095945050505050565b600160a060020a03929092166000908152600260208181526040808420968452600a9096018152858320938352928352848220938252929091529190912080546001820154919092015460ff909216929091603c42919091038190040490565b600093845260076020818152604080872094875293815283862092865291018152818420600160a060020a039390931684529190915290205490565b600160a060020a03908116600090815260026020819052604090912001541690565b60606000611aa485610e91565b600081815260066020908152604080832088845282528083208784526003018252918290208054835181840281018401909452808452939450919290830182828015611b1957602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611afb575b50505050509150509392505050565b600b5481565b60036020526000908152604090205481565b6000818152602081815260409182902080548351818402810184019094528084526060939283018282801561188457602002820191906000526020600020908154600160a060020a031681526001909101906020018083116118df5750505050509050919050565b60046020526000908152604090205481565b600160a060020a03871660009081526002602090815260408083208984526006835281842088855283528184208a8552600784528285208986529093529220851515611cb757611c0c89600186612759565b426001848101829055600485018054606460148902040190556006850180548083018255600091825260209091200181905560028086018054600160a060020a038d1673ffffffffffffffffffffffffffffffffffffffff199091161790558b8655600586015560098501819055838101805460ff19168217905581845560078501805482019055828101805461ff0019166101001790559082556008840180549091019055611d4d565b8460031415611ce2576001828101805460ff1916821790554283556007840180549091019055611d4d565b611cf189846005015486612759565b60048301805460646014870204019055600583018054600685018054600181810183556000928352602090922001829055908101909155818101805442845560ff1961ff00199091166101001716905560088401805490910190555b50505050505050505050565b6000818152600860209081526040808320600d805485529252909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0385161781556001808201805490910190559054611db4908490612795565b1515611e0057600d5460009081526020818152604082208054600181018255908352912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0385161790555b505050565b6000600160a060020a03841615611f6357611e21858584611908565b90508080611e2f5750846004145b15611f4a57600160a060020a03841615611ee957604051600160a060020a0385169084156108fc029085906000818181858888f19350505050158015611e79573d6000803e3d6000fd5b50600160a060020a0384166000908152600360208190526040909120805485019055851415611ec557600160a060020a0384166000908152600460205260409020805484019055611ee4565b600160a060020a03841660009081526005602052604090208054840190555b611f45565b600a54604051600160a060020a039091169084156108fc029085906000818181858888f19350505050158015611f23573d6000803e3d6000fd5b50600a54600160a060020a031660009081526003602052604090208054840190555b611f5e565b600f805484019055611f5e85858585612858565b611fbf565b600a54604051600160a060020a039091169084156108fc029085906000818181858888f19350505050158015611f9d573d6000803e3d6000fd5b50600a54600160a060020a031660009081526003602052604090208054840190555b5050505050565b6064604b820204600080808080611fdd8b8961172c565b60008b81526007602090815260408083208c845290915290206003810154919650945061200d908c908a9061198e565b92508884600601600086600301548152602001908152602001600020600085815260200190815260200160002060006101000a815481600160a060020a030219169083600160a060020a0316021790555060018460070160008660030154815260200190815260200160002060008b600160a060020a0316600160a060020a0316815260200190815260200160002081905550836005016000856003015481526020019081526020016000208990806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050600184600201600082825401925050819055506000915082600314806121295750826004145b156121375760019150612150565b82600514806121465750826006145b1561215057600291505b60008211156121c35750600383015460008181526006850160209081526040808320858452909152902054600160a060020a0316906121949082908a908c906128d8565b60028401546005106121b2576121ad60048c888b611e05565b6121be565b6121be8b868a8a6129a0565b6121dd565b6121ce898c8a612a9b565b6121dd8b868b8b8b6000612af6565b5050505050505050505050565b600080666a94d74f430000831415612204575060026122f0565b8266d529ae9e860000141561221b575060036122f0565b826701aa535d3d0c00001415612233575060046122f0565b82670354a6ba7a180000141561224b575060056122f0565b826706a94d74f43000001415612263575060066122f0565b82670d529ae9e8600000141561227b575060076122f0565b82671aa535d3d0c000001415612293575060086122f0565b8267354a6ba7a180000014156122ab575060096122f0565b82676a94d74f4300000014156122c35750600a6122f0565b8267d529ae9e8600000014156122db5750600b6122f0565b826801aa535d3d0c00000014156122f05750600c5b92915050565b600160a060020a03821660009081526002602052604081206009810154909160019080808080805b878710156124f85760008c8152600a8a01602090815260408083208d845282528083208a84529091529020805490965060ff16156124ed576002860154603c90420381900404945060188510156123e1576001860154604051909450600160a060020a038c169085156108fc029086906000818181858888f193505050501580156123ad573d6000803e3d6000fd5b50600160a060020a038b166000908152600360209081526040808320805488019055600490915290208054850190556124d5565b60018601546064601e82028190049450906046020491508a600160a060020a03166108fc849081150290604051600060405180830381858888f19350505050158015612431573d6000803e3d6000fd5b50600160a060020a038b1660009081526003602090815260408083208054870190556004909152902080548401905561246c8c8c8c8061261c565b604051909150600160a060020a0382169083156108fc029084906000818181858888f193505050501580156124a5573d6000803e3d6000fd5b50600160a060020a0381166000908152600360209081526040808320805486019055600490915290208054830190555b6001860154600f8054919091039055855460ff191686555b60019096019561231e565b505050505050505050505050565b600082816003861080159061251c575060068611155b156125995750506040516064604b8502049081850390600160a060020a0385169082156108fc029083906000818181858888f19350505050158015612565573d6000803e3d6000fd5b50600160a060020a038416600090815260036020908152604080832080548501905560049091529020805482019055612613565b6007861061261357505060405160646032850204908190600160a060020a0385169082156108fc029083906000818181858888f193505050501580156125e3573d6000803e3d6000fd5b50600160a060020a0384166000908152600360209081526040808320805485019055600490915290208054820190555b50949350505050565b600080808080805b60018515151461274b5789600314156126475761264089611a75565b9350612654565b612651898961172c565b93505b600160a060020a038416151561267357600a54600160a060020a031693505b600a54600160a060020a03858116911614156126925760019450612746565b600160a060020a0380851660009081526002602081905260409091208054918101549092169a509350915060038a14156126ed5760008381526006602090815260408083208a845290915290206001015460ff169450612746565b60008381526007602090815260408083208a8452909152902060010154610100900460ff1694508415156127465750600082815260076020908152604080832089845290915290206001808201805460ff191690911790555b612624565b509198975050505050505050565b60008381526009602090815260408083208584529091529020805460ff1916600117815560646014830204600182015542600290910155505050565b600081815260208181526040808320805482518185028101850190935280835260609385939291908301828280156127f657602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116127d8575b50505050509150600090505b815181101561284d5784600160a060020a0316828281518110151561282357fe5b90602001906020020151600160a060020a031614156128455760019250611769565b600101612802565b506000949350505050565b600160a060020a0390921660009081526002602081815260408084206009810180548652600b8201845282862088905580548652600c82018452828620899055978552600a0182528084209584529481528483208654845290529290206001808201929092554292810192909255815460ff191681179091558154019055565b6000806128e6848787612a9b565b6128ef86610e91565b6000908152600760208181526040808420988452978152878320600381018054855260068201835289852060028084018054600190810189529286528c88208054600160a060020a03909d1673ffffffffffffffffffffffffffffffffffffffff199d8e1681179091559354885295840185528b872083885285528b872055978552600590910182529783208054808801825590845292209091018054909516909517909355508254019091555050565b6000806000806129af88610e91565b60008181526007602090815260408083208a8452909152902060028101549195509350600611612a9157600060028401556003830180546001019055606460468602049150612a016004888489611e05565b612a0b8886612e65565b50600160a060020a03871660009081526002602052604090206005810154612a3c9085906064601489025b04612759565b600481018054606460148802040190556006810180546001818101835560009283526020909220018190556005820180549091019055600160a060020a03871615612a9157612a9188888a8960006001612af6565b5050505050505050565b600080612aa785610e91565b600090815260076020908152604080832095835294905292909220600401805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039490941693909317909255505050565b600080600080600080600080612b0b8d610e91565b60008181526007602090815260408083208f8452909152812060038101546002820154939b509099509750955093508815612b8857612b4b8d8c8861198e565b93508360031480612b5c5750836004145b15612b6a5760019450612b83565b8360041480612b795750836006145b15612b8357600294505b612c20565b6000841115612c12578d600160a060020a0316612ba88e8d896001610f09565b600160a060020a03161415612be557600393506000612bc98e8d8988610f09565b600160a060020a031614612bdc57600493505b60019450612b83565b60029450600593506000612bfb8e8d8988610f09565b600160a060020a031614612b835760069350612c20565b612c1d8d8c8861198e565b93505b8b876006016000888152602001908152602001600020600086815260200190815260200160002060006101000a815481600160a060020a030219169083600160a060020a03160217905550600387600701600088815260200190815260200160002060008e600160a060020a0316600160a060020a03168152602001908152602001600020819055508660050160008781526020019081526020016000208c90806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050600187600201600082825401925050819055508815612d5d576000851115612d5d5760008681526006880160209081526040808320888452909152902054600160a060020a03169250612d5d838c8e896128d8565b866002015460061415612e3b5760006002880181905560038801805460010190558a1115612e0b57612d9960048e606460468e025b048e611e05565b612da38d8b612e65565b600160a060020a038d1660009081526002602052604090206005810154909250612dd4908990606460148e02612a36565b600482018054606460148d020401905560068201805460018181018355600092835260209092200181905560058301805490910190555b612e158d8c61172c565b9050600160a060020a03811615612e3657612e368d828f8e60006001612af6565b612e55565b60008a1115612e5557612e5560048e6064604b8e02612d92565b5050505050505050505050505050565b6060600080612e7385611890565b805190935060646005860204811515612e8857fe5b049150600090505b8251811015611fbf578281815181101515612ea757fe5b90602001906020020151600160a060020a03166108fc839081150290604051600060405180830381858888f19350505050158015612ee9573d6000803e3d6000fd5b5081600360008584815181101515612efd57fe5b90602001906020020151600160a060020a0316600160a060020a031681526020019081526020016000206000828254019250508190555081600560008584815181101515612f4757fe5b6020908102909101810151600160a060020a0316825281019190915260400160002080549091019055600101612e905600a165627a7a72305820c3000e3eefae6c577d00002f1bf17d72bc4890d86f6bca09a802ac262396c8000029

Deployed Bytecode

0x6080604052600436106101ab5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630840605a81146101b05780630b1d1a44146101c657806310b5473f146101ff5780632b956ff71461023c57806338a6f5381461026f578063392d26e3146102b257806345977d03146102f8578063479acbdd146103035780634ac0e14e1461037a57806366666aa9146103c45780636dde1d50146103d95780636ee010ae1461042f57806378d488b2146104445780637ac8456f146104685780637b510fe81461048357806386c5d117146104df5780638e1c0fa2146104f45780638f322d6e1461051557806393a8eabe146105395780639d37a7c6146105545780639d8326dc1461056f578063a218f1c514610590578063a2b38907146105b1578063a3827db3146105ec578063a40d372e1461060d578063aa61890b14610622578063ae857c4514610649578063c5e0e0de14610693578063cb6f37ab146106bd578063e2f45965146106de578063e31a9d9214610705578063e3d670d71461071a578063eebad1661461073b578063f0273f5b14610753575b600080fd5b6101c4600160a060020a0360043516610774565b005b3480156101d257600080fd5b506101c4600160a060020a0360043581169060243581169060443581169060643581169060843516610ab3565b34801561020b57600080fd5b50610223600160a060020a0360043516602435610e58565b6040805192835260208301919091528051918290030190f35b34801561024857600080fd5b5061025d600160a060020a0360043516610e91565b60408051918252519081900360200190f35b34801561027b57600080fd5b5061028a600435602435610ed2565b6040805194151585526020850193909352838301919091526060830152519081900360800190f35b3480156102be57600080fd5b506102dc600160a060020a0360043516602435604435606435610f09565b60408051600160a060020a039092168252519081900360200190f35b6101c4600435610f5b565b34801561030f57600080fd5b5061032a600160a060020a0360043516602435604435611396565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561036657818101518382015260200161034e565b505050509050019250505060405180910390f35b34801561038657600080fd5b5061039560043560243561142d565b604080519515158652602086019490945284840192909252151560608401526080830152519081900360a00190f35b3480156103d057600080fd5b5061025d611468565b3480156103e557600080fd5b506103fd600160a060020a036004351660243561146e565b60408051600160a060020a03909516855260208501939093528383019190915215156060830152519081900360800190f35b34801561043b57600080fd5b5061025d6114c9565b34801561045057600080fd5b5061025d600435600160a060020a03602435166114cf565b34801561047457600080fd5b506101c460043560243561150b565b34801561048f57600080fd5b506104a4600160a060020a03600435166116c3565b60408051968752600160a060020a039095166020870152858501939093526060850191909152608084015260a0830152519081900360c00190f35b3480156104eb57600080fd5b5061025d611708565b34801561050057600080fd5b5061025d600160a060020a036004351661170e565b34801561052157600080fd5b506102dc600160a060020a036004351660243561172c565b34801561054557600080fd5b5061028a600435602435611771565b34801561056057600080fd5b5061025d6004356024356117a7565b34801561057b57600080fd5b5061032a600160a060020a0360043516611821565b34801561059c57600080fd5b5061032a600160a060020a0360043516611890565b3480156105bd57600080fd5b506105d8600435600160a060020a0360243516604435611908565b604080519115158252519081900360200190f35b3480156105f857600080fd5b5061025d600160a060020a0360043516611976565b34801561061957600080fd5b5061025d611988565b34801561062e57600080fd5b5061025d600160a060020a036004351660243560443561198e565b34801561065557600080fd5b50610673600435600160a060020a03602435166044356064356119d9565b604080519315158452602084019290925282820152519081900360600190f35b34801561069f57600080fd5b5061025d600435600160a060020a0360243516604435606435611a39565b3480156106c957600080fd5b506102dc600160a060020a0360043516611a75565b3480156106ea57600080fd5b5061032a600160a060020a0360043516602435604435611a97565b34801561071157600080fd5b5061025d611b28565b34801561072657600080fd5b5061025d600160a060020a0360043516611b2e565b34801561074757600080fd5b5061032a600435611b40565b34801561075f57600080fd5b5061025d600160a060020a0360043516611ba8565b600080808080808080666a94d74f43000034146107db576040805160e560020a62461bcd02815260206004820152601b60248201527f726567697374726174696f6e2073746172747320617420302e30330000000000604482015290519081900360640190fd5b600197506107e833610e91565b96508615610840576040805160e560020a62461bcd02815260206004820152601d60248201527f6d656d62657220697320616c726561647920726567697374657265642e000000604482015290519081900360640190fd5b61084989610e91565b9550600086116108a3576040805160e560020a62461bcd02815260206004820152601860248201527f75706c696e652061646472657373206e6f7420666f756e640000000000000000604482015290519081900360640190fd5b600e8054349081019091559450600285049350606460058502600c8054929091049091019055600b80546001810190915596506108e633888b8b6000808a611bba565b6108ef89611a75565b9250600260008a600160a060020a0316600160a060020a031681526020019081526020016000209150816003013390806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a03160217905550506006600087815260200190815260200160002060008981526020019081526020016000209050806003016000826004015481526020019081526020016000203390806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a03160217905550506109f98987611d59565b806002015460021415610a2a57600060028201556004810180546001019055610a25600384868b611e05565b610a9b565b6002810180546001019055604051600160a060020a038a169085156108fc029086906000818181858888f19350505050158015610a6b573d6000803e3d6000fd5b50600160a060020a0389166000908152600360209081526040808320805488019055600490915290208054850190555b610aa88987338b88611fc6565b505050505050505050565b600a546000908190819081908190819081908190600160a060020a03163314610b26576040805160e560020a62461bcd02815260206004820152601360248201527f696e76616c6964207472616e73616374696f6e00000000000000000000000000604482015290519081900360640190fd5b600c549750600d549650600160008881526020019081526020016000208d90806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050600160008881526020019081526020016000208c90806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050600160008881526020019081526020016000208b90806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050600160008881526020019081526020016000208a90806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050600160008881526020019081526020016000208990806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a031602179055505060329550600094505b60048511610e3b578460011415610d245760199550610d44565b8460021415610d3657600f9550610d44565b8460031415610d4457600795505b8460041415610d5257600395505b6000878152600160205260409020805486908110610d6c57fe5b600091825260209091200154600160a060020a03169350610d8c84610e91565b9250606488870260008581526008602090815260408083208c845290915280822060038101805460ff1916600117905593909204600284018190559151919450919250600160a060020a0386169184156108fc02918591818181858888f19350505050158015610e00573d6000803e3d6000fd5b50600160a060020a03841660009081526003602090815260408083208054860190556005909152902080548301905560019490940193610d0a565b5050600d8054600101905550506000600c55505050505050505050565b600160a060020a03919091166000908152600260209081526040808320938352600c8401825280832054600b9094019091529020549091565b600a54600090600160a060020a0383811691161415610eb257506001610ecd565b50600160a060020a0381166000908152600260205260409020545b919050565b6000918252600960209081526040808420928452919052902080546001820154600283015460039093015460ff9092169390929190565b6000806000610f1787610e91565b6000908152600760209081526040808320988352978152878220968252600690960186528681209481529390945250509190912054600160a060020a031692915050565b6000806000806000806000808860031480610f765750886004145b1515610fcc576040805160e560020a62461bcd02815260206004820152601360248201527f696e76616c6964206d6174726978207479706500000000000000000000000000604482015290519081900360640190fd5b666a94d74f43000034101561102b576040805160e560020a62461bcd02815260206004820152601c60248201527f75706772616465207374617274732066726f6d20302e30332065746800000000604482015290519081900360640190fd5b61103433610e91565b6010819055600010611090576040805160e560020a62461bcd02815260206004820152601960248201527f726567697374657220746f206c6576656c203120666972737400000000000000604482015290519081900360640190fd5b611099346121ea565b9750600188036110a98a336114cf565b14611124576040805160e560020a62461bcd02815260206004820152602a60248201527f496e76616c69644c6576656c20557067726164652e204d75737420626520696e60448201527f2073657175656e63652e00000000000000000000000000000000000000000000606482015290519081900360840190fd5b6001881161117c576040805160e560020a62461bcd02815260206004820152601e60248201527f696e76616c696420616d6f756e7420666f722074686520757067726164650000604482015290519081900360640190fd5b60105460009081526006602090815260408083208b845290915290206001015460ff16965060048914156111d55760105460009081526007602090815260408083208b8452909152902060010154610100900460ff1696505b8615611251576040805160e560020a62461bcd02815260206004820152602860248201527f796f752061726520616c7265616479207265676973746572656420746f20746860448201527f6973206c6576656c000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61125a33611a75565b955061126586610e91565b945061127289338a6122f6565b61128433601054888b60018e34611bba565b886003141561135657611298883433612506565b93506112a386611a75565b60008681526006602090815260408083208c845282528083206004810154845260038101835290832080546001810182559084529190922001805473ffffffffffffffffffffffffffffffffffffffff19163317905590935091506113088686611d59565b81600201546002141561133957600060028301556004820180546001019055611334600384868b611e05565b611351565b6002820180546001019055611351600387868b611e05565b610aa8565b5034606460058202600c805492909104909101905561137c6004336000198b018b61261c565b955061138786610e91565b9450610aa88686338b85611fc6565b60606000806113a486610e91565b60008181526007602090815260408083208984528252808320888452600581018352928190208054825181850281018501909352808352949650929450929083018282801561141c57602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116113fe575b505050505092505b50509392505050565b60009182526007602090815260408084209284529190529020600181015460028201546003830154925460ff61010084048116959294931691565b600c5481565b600080600080600061147f87610e91565b600090815260086020908152604080832098835297905295909520805460018201546002830154600390930154600160a060020a039092169990985091965060ff16945092505050565b600d5481565b600160a060020a038116600090815260026020526040812060038414156114fc5780600701549150611504565b806008015491505b5092915050565b600080600061151933610e91565b925060008311611573576040805160e560020a62461bcd02815260206004820152600f60248201527f696e76616c6964206163636f756e740000000000000000000000000000000000604482015290519081900360640190fd5b61157d83856117a7565b9150600082116115d7576040805160e560020a62461bcd02815260206004820181905260248201527f796f7520646f6e2774206861766520617661696c61626c652062616c616e6365604482015290519081900360640190fd5b8482101561162f576040805160e560020a62461bcd02815260206004820152601a60248201527f696e76616c696420616d6f756e7420746f207769746864726177000000000000604482015290519081900360640190fd5b506000828152600960209081526040808320868452909152902060038101805486019081905560018201541061166857805460ff191681555b604051339086156108fc029087906000818181858888f19350505050158015611695573d6000803e3d6000fd5b5050336000908152600360209081526040808320805488019055600590915290208054909401909355505050565b600160a060020a039081166000908152600260208190526040909120805491810154600482015460058301546009840154600190940154949692909516949093909291565b600e5481565b600160a060020a031660009081526002602052604090206009015490565b600080600061173a85610e91565b600081815260076020908152604080832088845290915290206004810154600160a060020a0316945090925090505b505092915050565b60009182526006602090815260408084209284529190529020600181015460028201546004830154925460ff9092169390929190565b600082815260096020908152604080832084845290915281208054829081908190819060ff1615611811576002850154603c904203049350611c208411156117ef57611c2093505b6001850154611c20900492508383029150846003015482039050809550611816565b600095505b505050505092915050565b600160a060020a03811660009081526002602090815260409182902060060180548351818402810184019094528084526060939283018282801561188457602002820191906000526020600020905b815481526020019060010190808311611870575b50505050509050919050565b600160a060020a03811660009081526002602090815260409182902060030180548351818402810184019094528084526060939283018282801561188457602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116118df5750505050509050919050565b60008061191484610e91565b9050846003141561194657600081815260066020908152604080832086845290915290206001015460ff16915061196e565b6000818152600760209081526040808320868452909152902060010154610100900460ff1691505b509392505050565b60056020526000908152604090205481565b600f5481565b60006001815b600682116119cd576119a886868685610f09565b9050600160a060020a03811615156119c257819250611424565b600190910190611994565b50600095945050505050565b600160a060020a03929092166000908152600260208181526040808420968452600a9096018152858320938352928352848220938252929091529190912080546001820154919092015460ff909216929091603c42919091038190040490565b600093845260076020818152604080872094875293815283862092865291018152818420600160a060020a039390931684529190915290205490565b600160a060020a03908116600090815260026020819052604090912001541690565b60606000611aa485610e91565b600081815260066020908152604080832088845282528083208784526003018252918290208054835181840281018401909452808452939450919290830182828015611b1957602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611afb575b50505050509150509392505050565b600b5481565b60036020526000908152604090205481565b6000818152602081815260409182902080548351818402810184019094528084526060939283018282801561188457602002820191906000526020600020908154600160a060020a031681526001909101906020018083116118df5750505050509050919050565b60046020526000908152604090205481565b600160a060020a03871660009081526002602090815260408083208984526006835281842088855283528184208a8552600784528285208986529093529220851515611cb757611c0c89600186612759565b426001848101829055600485018054606460148902040190556006850180548083018255600091825260209091200181905560028086018054600160a060020a038d1673ffffffffffffffffffffffffffffffffffffffff199091161790558b8655600586015560098501819055838101805460ff19168217905581845560078501805482019055828101805461ff0019166101001790559082556008840180549091019055611d4d565b8460031415611ce2576001828101805460ff1916821790554283556007840180549091019055611d4d565b611cf189846005015486612759565b60048301805460646014870204019055600583018054600685018054600181810183556000928352602090922001829055908101909155818101805442845560ff1961ff00199091166101001716905560088401805490910190555b50505050505050505050565b6000818152600860209081526040808320600d805485529252909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0385161781556001808201805490910190559054611db4908490612795565b1515611e0057600d5460009081526020818152604082208054600181018255908352912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0385161790555b505050565b6000600160a060020a03841615611f6357611e21858584611908565b90508080611e2f5750846004145b15611f4a57600160a060020a03841615611ee957604051600160a060020a0385169084156108fc029085906000818181858888f19350505050158015611e79573d6000803e3d6000fd5b50600160a060020a0384166000908152600360208190526040909120805485019055851415611ec557600160a060020a0384166000908152600460205260409020805484019055611ee4565b600160a060020a03841660009081526005602052604090208054840190555b611f45565b600a54604051600160a060020a039091169084156108fc029085906000818181858888f19350505050158015611f23573d6000803e3d6000fd5b50600a54600160a060020a031660009081526003602052604090208054840190555b611f5e565b600f805484019055611f5e85858585612858565b611fbf565b600a54604051600160a060020a039091169084156108fc029085906000818181858888f19350505050158015611f9d573d6000803e3d6000fd5b50600a54600160a060020a031660009081526003602052604090208054840190555b5050505050565b6064604b820204600080808080611fdd8b8961172c565b60008b81526007602090815260408083208c845290915290206003810154919650945061200d908c908a9061198e565b92508884600601600086600301548152602001908152602001600020600085815260200190815260200160002060006101000a815481600160a060020a030219169083600160a060020a0316021790555060018460070160008660030154815260200190815260200160002060008b600160a060020a0316600160a060020a0316815260200190815260200160002081905550836005016000856003015481526020019081526020016000208990806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050600184600201600082825401925050819055506000915082600314806121295750826004145b156121375760019150612150565b82600514806121465750826006145b1561215057600291505b60008211156121c35750600383015460008181526006850160209081526040808320858452909152902054600160a060020a0316906121949082908a908c906128d8565b60028401546005106121b2576121ad60048c888b611e05565b6121be565b6121be8b868a8a6129a0565b6121dd565b6121ce898c8a612a9b565b6121dd8b868b8b8b6000612af6565b5050505050505050505050565b600080666a94d74f430000831415612204575060026122f0565b8266d529ae9e860000141561221b575060036122f0565b826701aa535d3d0c00001415612233575060046122f0565b82670354a6ba7a180000141561224b575060056122f0565b826706a94d74f43000001415612263575060066122f0565b82670d529ae9e8600000141561227b575060076122f0565b82671aa535d3d0c000001415612293575060086122f0565b8267354a6ba7a180000014156122ab575060096122f0565b82676a94d74f4300000014156122c35750600a6122f0565b8267d529ae9e8600000014156122db5750600b6122f0565b826801aa535d3d0c00000014156122f05750600c5b92915050565b600160a060020a03821660009081526002602052604081206009810154909160019080808080805b878710156124f85760008c8152600a8a01602090815260408083208d845282528083208a84529091529020805490965060ff16156124ed576002860154603c90420381900404945060188510156123e1576001860154604051909450600160a060020a038c169085156108fc029086906000818181858888f193505050501580156123ad573d6000803e3d6000fd5b50600160a060020a038b166000908152600360209081526040808320805488019055600490915290208054850190556124d5565b60018601546064601e82028190049450906046020491508a600160a060020a03166108fc849081150290604051600060405180830381858888f19350505050158015612431573d6000803e3d6000fd5b50600160a060020a038b1660009081526003602090815260408083208054870190556004909152902080548401905561246c8c8c8c8061261c565b604051909150600160a060020a0382169083156108fc029084906000818181858888f193505050501580156124a5573d6000803e3d6000fd5b50600160a060020a0381166000908152600360209081526040808320805486019055600490915290208054830190555b6001860154600f8054919091039055855460ff191686555b60019096019561231e565b505050505050505050505050565b600082816003861080159061251c575060068611155b156125995750506040516064604b8502049081850390600160a060020a0385169082156108fc029083906000818181858888f19350505050158015612565573d6000803e3d6000fd5b50600160a060020a038416600090815260036020908152604080832080548501905560049091529020805482019055612613565b6007861061261357505060405160646032850204908190600160a060020a0385169082156108fc029083906000818181858888f193505050501580156125e3573d6000803e3d6000fd5b50600160a060020a0384166000908152600360209081526040808320805485019055600490915290208054820190555b50949350505050565b600080808080805b60018515151461274b5789600314156126475761264089611a75565b9350612654565b612651898961172c565b93505b600160a060020a038416151561267357600a54600160a060020a031693505b600a54600160a060020a03858116911614156126925760019450612746565b600160a060020a0380851660009081526002602081905260409091208054918101549092169a509350915060038a14156126ed5760008381526006602090815260408083208a845290915290206001015460ff169450612746565b60008381526007602090815260408083208a8452909152902060010154610100900460ff1694508415156127465750600082815260076020908152604080832089845290915290206001808201805460ff191690911790555b612624565b509198975050505050505050565b60008381526009602090815260408083208584529091529020805460ff1916600117815560646014830204600182015542600290910155505050565b600081815260208181526040808320805482518185028101850190935280835260609385939291908301828280156127f657602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116127d8575b50505050509150600090505b815181101561284d5784600160a060020a0316828281518110151561282357fe5b90602001906020020151600160a060020a031614156128455760019250611769565b600101612802565b506000949350505050565b600160a060020a0390921660009081526002602081815260408084206009810180548652600b8201845282862088905580548652600c82018452828620899055978552600a0182528084209584529481528483208654845290529290206001808201929092554292810192909255815460ff191681179091558154019055565b6000806128e6848787612a9b565b6128ef86610e91565b6000908152600760208181526040808420988452978152878320600381018054855260068201835289852060028084018054600190810189529286528c88208054600160a060020a03909d1673ffffffffffffffffffffffffffffffffffffffff199d8e1681179091559354885295840185528b872083885285528b872055978552600590910182529783208054808801825590845292209091018054909516909517909355508254019091555050565b6000806000806129af88610e91565b60008181526007602090815260408083208a8452909152902060028101549195509350600611612a9157600060028401556003830180546001019055606460468602049150612a016004888489611e05565b612a0b8886612e65565b50600160a060020a03871660009081526002602052604090206005810154612a3c9085906064601489025b04612759565b600481018054606460148802040190556006810180546001818101835560009283526020909220018190556005820180549091019055600160a060020a03871615612a9157612a9188888a8960006001612af6565b5050505050505050565b600080612aa785610e91565b600090815260076020908152604080832095835294905292909220600401805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039490941693909317909255505050565b600080600080600080600080612b0b8d610e91565b60008181526007602090815260408083208f8452909152812060038101546002820154939b509099509750955093508815612b8857612b4b8d8c8861198e565b93508360031480612b5c5750836004145b15612b6a5760019450612b83565b8360041480612b795750836006145b15612b8357600294505b612c20565b6000841115612c12578d600160a060020a0316612ba88e8d896001610f09565b600160a060020a03161415612be557600393506000612bc98e8d8988610f09565b600160a060020a031614612bdc57600493505b60019450612b83565b60029450600593506000612bfb8e8d8988610f09565b600160a060020a031614612b835760069350612c20565b612c1d8d8c8861198e565b93505b8b876006016000888152602001908152602001600020600086815260200190815260200160002060006101000a815481600160a060020a030219169083600160a060020a03160217905550600387600701600088815260200190815260200160002060008e600160a060020a0316600160a060020a03168152602001908152602001600020819055508660050160008781526020019081526020016000208c90806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050600187600201600082825401925050819055508815612d5d576000851115612d5d5760008681526006880160209081526040808320888452909152902054600160a060020a03169250612d5d838c8e896128d8565b866002015460061415612e3b5760006002880181905560038801805460010190558a1115612e0b57612d9960048e606460468e025b048e611e05565b612da38d8b612e65565b600160a060020a038d1660009081526002602052604090206005810154909250612dd4908990606460148e02612a36565b600482018054606460148d020401905560068201805460018181018355600092835260209092200181905560058301805490910190555b612e158d8c61172c565b9050600160a060020a03811615612e3657612e368d828f8e60006001612af6565b612e55565b60008a1115612e5557612e5560048e6064604b8e02612d92565b5050505050505050505050505050565b6060600080612e7385611890565b805190935060646005860204811515612e8857fe5b049150600090505b8251811015611fbf578281815181101515612ea757fe5b90602001906020020151600160a060020a03166108fc839081150290604051600060405180830381858888f19350505050158015612ee9573d6000803e3d6000fd5b5081600360008584815181101515612efd57fe5b90602001906020020151600160a060020a0316600160a060020a031681526020019081526020016000206000828254019250508190555081600560008584815181101515612f4757fe5b6020908102909101810151600160a060020a0316825281019190915260400160002080549091019055600101612e905600a165627a7a72305820c3000e3eefae6c577d00002f1bf17d72bc4890d86f6bca09a802ac262396c8000029

Deployed Bytecode Sourcemap

371:24539:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2287:1321;;-1:-1:-1;;;;;2287:1321:0;;;;;;;21935:1008;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21935:1008:0;-1:-1:-1;;;;;21935:1008:0;;;;;;;;;;;;;;;;;;;;;;;;;17874:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17874:262:0;-1:-1:-1;;;;;17874:262:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17139:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17139:148:0;-1:-1:-1;;;;;17139:148:0;;;;;;;;;;;;;;;;;;;;;20517:322;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20517:322:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19639:277;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19639:277:0;-1:-1:-1;;;;;19639:277:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;19639:277:0;;;;;;;;;;;;;;3624:1846;;;;;;19384:254;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19384:254:0;-1:-1:-1;;;;;19384:254:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;19384:254:0;;;;;;;;;;;;;;;;;18780:357;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18780:357:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1918:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1918:22:0;;;;16399:349;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16399:349:0;-1:-1:-1;;;;;16399:349:0;;;;;;;;;;;-1:-1:-1;;;;;16399:349:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1942:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1942:23:0;;;;20151:226;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20151:226:0;;;-1:-1:-1;;;;;20151:226:0;;;;;21329:605;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21329:605:0;;;;;;;16749:389;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16749:389:0;-1:-1:-1;;;;;16749:389:0;;;;;;;;;;;;-1:-1:-1;;;;;16749:389:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1967:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1967:32:0;;;;17407:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17407:134:0;-1:-1:-1;;;;;17407:134:0;;;;;13805:239;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13805:239:0;-1:-1:-1;;;;;13805:239:0;;;;;;;18137:296;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18137:296:0;;;;;;;20840:488;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20840:488:0;;;;;;;20378:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20378:138:0;-1:-1:-1;;;;;20378:138:0;;;;;18646:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18646:133:0;-1:-1:-1;;;;;18646:133:0;;;;;19138:245;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19138:245:0;;;-1:-1:-1;;;;;19138:245:0;;;;;;;;;;;;;;;;;;;;;;;;;1608:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1608:41:0;-1:-1:-1;;;;;1608:41:0;;;;;2001:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2001:28:0;;;;15774:253;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15774:253:0;-1:-1:-1;;;;;15774:253:0;;;;;;;;;17542:331;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17542:331:0;;;-1:-1:-1;;;;;17542:331:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19917:233;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19917:233:0;;;-1:-1:-1;;;;;19917:233:0;;;;;;;;;17288:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17288:118:0;-1:-1:-1;;;;;17288:118:0;;;;;18434:211;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18434:211:0;-1:-1:-1;;;;;18434:211:0;;;;;;;;;1894:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1894:22:0;;;;1524:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1524:39:0;-1:-1:-1;;;;;1524:39:0;;;;;16280:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16280:118:0;;;;;1565:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1565:41:0;-1:-1:-1;;;;;1565:41:0;;;;;2287:1321;2416:15;;;;;;;;2372:10;2359:9;:23;2351:63;;;;;-1:-1:-1;;;;;2351:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2434:1;2416:19;;2453:21;2463:10;2453:9;:21::i;:::-;2437:37;-1:-1:-1;2484:13:0;;2476:55;;;;;-1:-1:-1;;;;;2476:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2553:24;2563:13;2553:9;:24::i;:::-;2533:44;-1:-1:-1;2602:1:0;2587:16;;2579:53;;;;;-1:-1:-1;;;;;2579:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2634:20;:33;;2658:9;2634:33;;;;;;2658:9;-1:-1:-1;2720:1:0;2658:9;2711:10;;-1:-1:-1;2755:3:0;2750:1;2738:13;;2723:10;:35;;2737:21;;;;2723:35;;;;;2771:6;:8;;-1:-1:-1;2771:8:0;;;;;;-1:-1:-1;2781:79:0;2791:10;2771:8;2813:13;2828:10;-1:-1:-1;;2850:9:0;2781;:79::i;:::-;2888:24;2898:13;2888:9;:24::i;:::-;2862:50;;2947:11;:26;2959:13;-1:-1:-1;;;;;2947:26:0;-1:-1:-1;;;;;2947:26:0;;;;;;;;;;;;2914:59;;2975:11;:24;;3005:10;2975:41;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;2975:41:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2975:41:0;;;;;-1:-1:-1;;;;;2975:41:0;;;;;;;3055:12;:26;3068:12;3055:26;;;;;;;;;;;:38;3082:10;3055:38;;;;;;;;;;;3018:75;;3095:18;:28;;:54;3124:18;:24;;;3095:54;;;;;;;;;;;3155:10;3095:71;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;3095:71:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3095:71:0;;;;;-1:-1:-1;;;;;3095:71:0;;;;;;;3168:47;3187:13;3202:12;3168:18;:47::i;:::-;3220:18;:27;;;3251:1;3220:32;3217:310;;;3285:1;3255:27;;;:31;3288:24;;;:29;;3316:1;3288:29;;;3319:53;3330:1;3333:15;3350:9;3361:10;3319;:53::i;:::-;3217:310;;;3381:27;;;:32;;3412:1;3381:32;;;3415:33;;-1:-1:-1;;;;;3415:22:0;;;:33;;;;;3438:9;;3381:27;3415:33;3381:27;3415:33;3438:9;3415:22;:33;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;3450:22:0;;;;;;:7;:22;;;;;;;;:35;;;;;;3487:9;:24;;;;;:37;;;;;;3217:310;3528:77;3542:13;3557:12;3571:10;3583;3595:9;3528:13;:77::i;:::-;2287:1321;;;;;;;;;:::o;21935:1008::-;22080:5;;22111:14;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22080:5:0;22066:10;:19;22058:51;;;;;-1:-1:-1;;;;;22058:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;22128:10;;22111:27;;22154:11;;22140:25;;22167:17;:25;22185:6;22167:25;;;;;;;;;;;22198:8;22167:40;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;22167:40:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22167:40:0;;;;;-1:-1:-1;;;;;22167:40:0;;;;;;;22209:17;:25;22227:6;22209:25;;;;;;;;;;;22240:8;22209:40;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;22209:40:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22209:40:0;;;;;-1:-1:-1;;;;;22209:40:0;;;;;;;22251:17;:25;22269:6;22251:25;;;;;;;;;;;22282:8;22251:40;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;22251:40:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22251:40:0;;;;;-1:-1:-1;;;;;22251:40:0;;;;;;;22293:17;:25;22311:6;22293:25;;;;;;;;;;;22324:8;22293:40;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;22293:40:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22293:40:0;;;;;-1:-1:-1;;;;;22293:40:0;;;;;;;22335:17;:25;22353:6;22335:25;;;;;;;;;;;22366:8;22335:40;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;22335:40:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22335:40:0;;;;;-1:-1:-1;;;;;22335:40:0;;;;;;;22395:2;22377:20;;22410:1;22403:8;;22399:508;22416:1;22413:4;;22399:508;;22428:1;22433;22428:6;22425:101;;;22450:2;22437:15;;22425:101;;;22464:1;22469;22464:6;22461:65;;;22486:2;22473:15;;22461:65;;;22500:1;22505;22500:6;22497:29;;;22522:1;22509:14;;22497:29;22529:1;22534;22529:6;22526:29;;;22551:1;22538:14;;22526:29;22574:25;;;;:17;:25;;;;;:28;;22600:1;;22574:28;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22574:28:0;;-1:-1:-1;22619:18:0;22574:28;22619:9;:18::i;:::-;22604:33;-1:-1:-1;22685:3:0;22659:22;;;22719:19;;;;:10;:19;;;;;;;;:27;;;;;;;;;22748:16;;;:23;;-1:-1:-1;;22748:23:0;22767:4;22748:23;;;22658:30;;;;22773:18;;;:32;;;22807:29;;22658:30;;-1:-1:-1;22719:27:0;;-1:-1:-1;;;;;;22807:16:0;;;:29;;;;;22658:30;;22807:29;22719:19;22807:29;22658:30;22807:16;:29;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;22838:16:0;;;;;;:7;:16;;;;;;;;:31;;;;;;22871:9;:18;;;;;:33;;;;;;-1:-1:-1;22419:3:0;;;;;22399:508;;;-1:-1:-1;;22908:11:0;:16;;22923:1;22908:16;;;-1:-1:-1;;22908:11:0;22926:10;:14;-1:-1:-1;;;;;;;;;21935:1008:0:o;17874:262::-;-1:-1:-1;;;;;18018:20:0;;;;17957:11;18018:20;;;:11;:20;;;;;;;;18047:42;;;:31;;;:42;;;;;;18091:30;;;;:41;;;;;;18047:42;;17874:262::o;17139:148::-;17227:5;;17197:11;;-1:-1:-1;;;;;17215:17:0;;;17227:5;;17215:17;17212:34;;;-1:-1:-1;17242:1:0;17235:8;;17212:34;-1:-1:-1;;;;;;17255:21:0;;;;;;:11;:21;;;;;:28;17139:148;;;;:::o;20517:322::-;20596:13;20699:20;;;:11;:20;;;;;;;;:31;;;;;;;;20739:21;;;20762:19;;;20783:22;;;;20807:28;;;;;20739:21;;;;;20762:19;;20783:22;20807:28;20517:322::o;19639:277::-;19745:15;19764:14;19802:28;19781:19;19791:8;19781:9;:19::i;:::-;19833:23;;;;:12;:23;;;;;;;;:30;;;;;;;;;19872:31;;;:24;;;;:31;;;;;:41;;;;;;;-1:-1:-1;;19872:41:0;;;;;-1:-1:-1;;;;;19872:41:0;;19639:277;-1:-1:-1;;19639:277:0:o;3624:1846::-;3887:15;4104;4310:24;4360:20;4571:14;4636:30;4698:36;5190:14;3684:6;3694:1;3684:11;:26;;;;3699:6;3709:1;3699:11;3684:26;3676:57;;;;;;;-1:-1:-1;;;;;3676:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3756:10;3743:9;:23;;3735:64;;;;;-1:-1:-1;;;;;3735:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3812:21;3822:10;3812:9;:21::i;:::-;3801:8;:32;;;3854:1;-1:-1:-1;3835:50:0;;;;;-1:-1:-1;;;;;3835:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3905:26;3921:9;3905:15;:26::i;:::-;3887:44;;3994:1;3981:10;:14;3941:35;3957:6;3965:10;3941:15;:35::i;:::-;:55;3933:110;;;;;-1:-1:-1;;;;;3933:110:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4066:1;4053:14;;4045:57;;;;;-1:-1:-1;;;;;4045:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4135:8;;4122:22;;;;:12;:22;;;;;;;;:34;;;;;;;;:43;;;;;;-1:-1:-1;4180:1:0;4170:11;;4167:76;;;4210:8;;4197:22;;;;:12;:22;;;;;;;;:34;;;;;;;;:43;;;;;;;;;-1:-1:-1;4167:76:0;4252:11;;4244:64;;;;;-1:-1:-1;;;;;4244:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4337:21;4347:10;4337:9;:21::i;:::-;4310:48;;4383:27;4393:16;4383:9;:27::i;:::-;4360:50;;4412:52;4433:6;4441:10;4453;4412:20;:52::i;:::-;4466:86;4476:10;4488:8;;4498:16;4516:10;4528:4;4534:6;4542:9;4466;:86::i;:::-;4557:6;4567:1;4557:11;4554:914;;;4588:46;4600:10;4612:9;4623:10;4588:11;:46::i;:::-;4571:63;;4669:27;4679:16;4669:9;:27::i;:::-;4737:29;;;;:12;:29;;;;;;;;:41;;;;;;;;4811:26;;;;4780:58;;:30;;;:58;;;;;27:10:-1;;39:1;23:18;;45:23;;4780:75:0;;;;;;;;;;-1:-1:-1;;4780:75:0;4844:10;4780:75;;;4636:60;;-1:-1:-1;4737:41:0;-1:-1:-1;4857:53:0;4876:16;4750:15;4857:18;:53::i;:::-;4915:20;:29;;;4948:1;4915:34;4912:270;;;4984:1;4952:29;;;:33;4987:26;;;:31;;5017:1;4987:31;;;5020:60;5031:1;5034:22;5058:9;5069:10;5020;:60::i;:::-;4912:270;;;5089:29;;;:34;;5122:1;5089:34;;;5125:54;5136:1;5139:16;5157:9;5168:10;5125;:54::i;:::-;4554:914;;;-1:-1:-1;5207:9:0;5250:3;5245:1;5233:13;;5218:10;:35;;5232:21;;;;5218:35;;;;;5274:58;5290:1;5293:10;-1:-1:-1;;5305:14:0;;;5274:15;:58::i;:::-;5255:77;;5352:27;5362:16;5352:9;:27::i;:::-;5334:45;;5381:84;5395:16;5414:15;5431:10;5443;5455:9;5381:13;:84::i;19384:254::-;19476:19;19499:14;19537:28;19516:19;19526:8;19516:9;:19::i;:::-;19568:23;;;;:12;:23;;;;;;;;:30;;;;;;;;19607:28;;;:21;;;:28;;;;;;19600:35;;;;;;;;;;;;;;;;;19499:36;;-1:-1:-1;19568:30:0;;-1:-1:-1;19600:35:0;;;;19607:28;19600:35;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19600:35:0;;;;;;;;;;;;;;;;;;;;;;;19384:254;;;;;;;;:::o;18780:357::-;18850:13;18945:20;;;:12;:20;;;;;;;;:27;;;;;;;;:36;;;;18983;;;;19021:33;;;;19098:35;;18945:36;;;;;;;18983;;19021:33;19056:40;;18780:357::o;1918:22::-;;;;:::o;16399:349::-;16478:15;16495:16;16513:15;16530:13;16546:12;16561:19;16571:8;16561:9;:19::i;:::-;16590;;;;:10;:19;;;;;;;;:27;;;;;;;;;;:35;;;16627:39;;;16668:38;;;;16708:36;;;;;-1:-1:-1;;;;;16590:35:0;;;;16627:39;;-1:-1:-1;16668:38:0;;-1:-1:-1;16708:36:0;;;-1:-1:-1;16399:349:0;-1:-1:-1;;;16399:349:0:o;1942:23::-;;;;:::o;20151:226::-;-1:-1:-1;;;;;20274:21:0;;20228:14;20274:21;;;:11;:21;;;;;20310:1;20300:11;;20297:48;;;20321:6;:21;;;20314:28;;;;20297:48;20353:6;:21;;;20346:28;;20151:226;;;;;;:::o;21329:605::-;21387:12;21466:13;21643:32;21402:21;21412:10;21402:9;:21::i;:::-;21387:36;-1:-1:-1;21443:1:0;21433:11;;21425:39;;;;;-1:-1:-1;;;;;21425:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21482:42;21506:7;21515:8;21482:23;:42::i;:::-;21466:58;-1:-1:-1;21545:1:0;21534:12;;21526:56;;;;;-1:-1:-1;;;;;21526:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21592:18;;;;21584:57;;;;;-1:-1:-1;;;;;21584:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21678:20:0;;;;:11;:20;;;;;;;;:30;;;;;;;;21710:28;;;:38;;;;;;;;-1:-1:-1;21753:19:0;;;:51;21750:89;;21807:29;;-1:-1:-1;;21807:29:0;;;21750:89;21840:27;;:10;;:27;;;;;21860:6;;21840:27;;;;21860:6;21840:10;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;21877:10:0;21869:19;;;;:7;:19;;;;;;;;:29;;;;;;21900:9;:21;;;;;:31;;;;;;;;-1:-1:-1;;;21329:605:0:o;16749:389::-;-1:-1:-1;;;;;16933:21:0;;;16812:11;16933:21;;;:11;:21;;;;;;;;:28;;16963:30;;;;16995:38;;;;17035:29;;;;17066:37;;;;16963:30;17105:29;;;;16933:28;;16963:30;;;;;16995:38;;17035:29;;17066:37;16749:389::o;1967:32::-;;;;:::o;17407:134::-;-1:-1:-1;;;;;17500:21:0;17474:14;17500:21;;;:11;:21;;;;;:37;;;;17407:134::o;13805:239::-;13886:14;13903;13940:27;13920:18;13930:7;13920:9;:18::i;:::-;13970:23;;;;:12;:23;;;;;;;;:36;;;;;;;;14015:26;;;;-1:-1:-1;;;;;14015:26:0;;-1:-1:-1;13903:35:0;;-1:-1:-1;13970:36:0;-1:-1:-1;13805:239:0;;;;;;;:::o;18137:296::-;18207:13;18283:20;;;:12;:20;;;;;;;;:27;;;;;;;;:36;;;;18321;;;;18359:33;;;;18394:35;;18283:36;;;;;18321;;18359:33;18394:35;18137:296::o;20840:488::-;20924:12;20975:20;;;:11;:20;;;;;;;;:31;;;;;;;;21011:21;;20924:12;;;;;;;;21011:21;;21008:308;;;21062:22;;;;21088:2;;21056:3;:28;21055:35;21035:57;;21110:4;21097:10;:17;21094:43;;;21130:4;21117:17;;21094:43;21160:19;;;;21182:4;;21160:26;21138:49;;21225:10;21209:13;:26;21189:46;;21268:12;:28;;;21253:12;:43;21237:59;;21305:8;21298:15;;;;21008:308;21324:1;21317:8;;20840:488;;;;;;;;;;:::o;20378:138::-;-1:-1:-1;;;;;20477:21:0;;;;;;:11;:21;;;;;;;;;:36;;20470:43;;;;;;;;;;;;;;;;;20444:22;;20470:43;;;20477:36;20470:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20378:138;;;:::o;18646:133::-;-1:-1:-1;;;;;18741:21:0;;;;;;:11;:21;;;;;;;;;:34;;18733:43;;;;;;;;;;;;;;;;;18710:19;;18733:43;;;18741:34;18733:43;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18733:43:0;;;;;;;;;;;;;;;;;;;;;;18646:133;;;:::o;19138:245::-;19226:4;19234:11;19248:19;19258:8;19248:9;:19::i;:::-;19234:33;;19272:6;19282:1;19272:11;19269:65;;;19294:20;;;;:12;:20;;;;;;;;:27;;;;;;;;:36;;;;;;-1:-1:-1;19286:45:0;;19269:65;19343:20;;;;:12;:20;;;;;;;;:27;;;;;;;;:36;;;;;;;;;-1:-1:-1;19138:245:0;;;;;;;:::o;1608:41::-;;;;;;;;;;;;;:::o;2001:28::-;;;;:::o;15774:253::-;15870:4;15888:1;15870:4;15877:138;15894:1;15891:4;;15877:138;;15921:52;15940:8;15950:11;15963:6;15971:1;15921:18;:52::i;:::-;15903:70;-1:-1:-1;;;;;;15978:21:0;;;15975:38;;;16009:1;16002:8;;;;15975:38;15897:3;;;;;15877:138;;;-1:-1:-1;16023:1:0;;15774:253;-1:-1:-1;;;;;15774:253:0:o;17542:331::-;-1:-1:-1;;;;;17727:21:0;;;;17648:13;17727:21;;;:11;:21;;;;;;;;:43;;;:35;;;;:43;;;;;:50;;;;;;;;;:61;;;;;;;;;;;17798:16;;;17816:14;;;17840:17;;;;;17798:16;;;;;17816:14;;17867:2;17834:3;:23;;;;17833:30;;;17832:37;;17542:331::o;19917:233::-;20024:15;20074:21;;;:12;:21;;;;;;;;:28;;;;;;;;;20111:26;;;:19;;:26;;;;;-1:-1:-1;;;;;20111:36:0;;;;;;;;;;;;;;19917:233::o;17288:118::-;-1:-1:-1;;;;;17372:21:0;;;17346:14;17372:21;;;:11;:21;;;;;;;;:30;;;;17288:118::o;18434:211::-;18525:19;18548:14;18565:19;18575:8;18565:9;:19::i;:::-;18594:23;;;;:12;:23;;;;;;;;:30;;;;;;;;:47;;;:40;;:47;;;;;;18586:56;;;;;;;;;;;;;;;;;18548:36;;-1:-1:-1;18586:56:0;;;;;18594:47;18586:56;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18586:56:0;;;;;;;;;;;;;;;;;;;;;;;18434:211;;;;;;:::o;1894:22::-;;;;:::o;1524:39::-;;;;;;;;;;;;;:::o;16280:118::-;16371:16;:24;;;;;;;;;;;;16364:31;;;;;;;;;;;;;;;;;16343:18;;16364:31;;;16371:24;16364:31;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16364:31:0;;;;;;;;;;;;;;;;;;;;;;16280:118;;;:::o;1565:41::-;;;;;;;;;;;;;:::o;6968:1339::-;-1:-1:-1;;;;;7156:21:0;;7123:30;7156:21;;;:11;:21;;;;;;;;7213:23;;;:12;:23;;;;;:36;;;;;;;;7285:23;;;:12;:23;;;;;:36;;;;;;;;7326:10;;7323:982;;;7339:46;7354:9;7365:1;7369:14;7339;:46::i;:::-;7409:3;7387:19;;;;:25;;;7414:28;;;:59;;7470:3;7464:2;7447:19;;7446:27;7414:59;;;7475:26;;;27:10:-1;;23:18;;;45:23;;-1:-1;7475:34:0;;;;;;;;;;;7511:20;;;;:37;;-1:-1:-1;;;;;7511:37:0;;-1:-1:-1;;7511:37:0;;;;;;7550:30;;;7582:19;;;:23;7607:27;;;:31;;;7640:24;;;:31;;-1:-1:-1;;7640:31:0;;;;;7673:29;;;7704:26;;;:31;;;;;;7737:24;;;:31;;-1:-1:-1;;7737:31:0;7511:37;7737:31;;;7770:29;;;-1:-1:-1;7801:26:0;;:31;;;;;;;7323:982;;;7844:6;7854:1;7844:11;7841:462;;;7885:4;7858:24;;;:31;;-1:-1:-1;;7858:31:0;;;;;7917:3;7891:29;;7922:26;;;:31;;;;;;;7841:462;;;7962:62;7977:9;7988:11;:19;;;8009:14;7962;:62::i;:::-;8026:28;;;:59;;8082:3;8076:2;8059:19;;8058:27;8026:59;;;8119:19;;;;;8087:26;;;27:10:-1;;-1:-1;23:18;;;45:23;;-1:-1;8087:52:0;;;;;;;;;;;8141:24;;;;;;8167;;;:31;;8226:3;8200:29;;-1:-1:-1;;;;8167:31:0;;;;;8231:36;;;8269:26;;;:31;;;;;;;7841:462;6968:1339;;;;;;;;;;:::o;15490:283::-;15561:26;15590:21;;;:10;:21;;;;;;;;15612:11;;;15590:34;;;;;;;15626:25;;-1:-1:-1;;15626:25:0;-1:-1:-1;;;;;15626:25:0;;;;;-1:-1:-1;15653:19:0;;;:24;;;;;;;15710:11;;15683:39;;15626:25;;15683:17;:39::i;:::-;15682:40;15679:92;;;15742:11;;15725:16;:29;;;;;;;;;;27:10:-1;;39:1;23:18;;45:23;;15725:43:0;;;;;;;;-1:-1:-1;;15725:43:0;-1:-1:-1;;;;;15725:43:0;;;;;15679:92;15490:283;;;:::o;5471:611::-;5591:16;-1:-1:-1;;;;;5566:22:0;;;5563:517;;5610:45;5625:6;5633:8;5643:11;5610:14;:45::i;:::-;5591:64;;5660:11;:26;;;;5675:6;5685:1;5675:11;5660:26;5657:361;;;-1:-1:-1;;;;;5692:22:0;;;5689:237;;5717:26;;-1:-1:-1;;;;;5717:17:0;;;:26;;;;;5735:7;;5717:26;;;;5735:7;5717:17;:26;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;5745:17:0;;;;;;:7;:17;;;;;;;;:28;;;;;;5778:11;;5775:89;;;-1:-1:-1;;;;;5792:19:0;;;;;;:9;:19;;;;;:30;;;;;;5775:89;;;-1:-1:-1;;;;;5831:19:0;;;;;;:9;:19;;;;;:30;;;;;;5775:89;5689:237;;;5873:5;;:23;;-1:-1:-1;;;;;5873:5:0;;;;:23;;;;;5888:7;;5873:5;:23;:5;:23;5888:7;5873:5;:23;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;5906:5:0;;-1:-1:-1;;;;;5906:5:0;5898:14;;;;:7;:14;;;;;:25;;;;;;5689:237;5657:361;;;5934:16;:27;;;;;;5963:52;5976:6;5984:8;5954:7;6003:11;5963:12;:52::i;:::-;5563:517;;;6027:5;;:23;;-1:-1:-1;;;;;6027:5:0;;;;:23;;;;;6042:7;;6027:5;:23;:5;:23;6042:7;6027:5;:23;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;6060:5:0;;-1:-1:-1;;;;;6060:5:0;6052:14;;;;:7;:14;;;;;:25;;;;;;5563:517;5471:611;;;;;:::o;8307:1433::-;8479:3;8473:2;8459:16;;8458:24;8441:14;;;;;8505:45;8522:14;8538:11;8505:16;:45::i;:::-;8589:27;;;;:12;:27;;;;;;;;:40;;;;;;;;8704:24;;;;8484:66;;-1:-1:-1;8589:40:0;-1:-1:-1;8656:73:0;;8675:14;;8617:11;;8656:18;:73::i;:::-;8631:98;;8809:10;8731:18;:30;;:56;8762:18;:24;;;8731:56;;;;;;;;;;;:75;8788:17;8731:75;;;;;;;;;;;;:88;;;;;-1:-1:-1;;;;;8731:88:0;;;;;-1:-1:-1;;;;;8731:88:0;;;;;;8887:1;8821:18;:25;;:51;8847:18;:24;;;8821:51;;;;;;;;;;;:63;8873:10;-1:-1:-1;;;;;8821:63:0;-1:-1:-1;;;;;8821:63:0;;;;;;;;;;;;:67;;;;8890:18;:27;;:53;8918:18;:24;;;8890:53;;;;;;;;;;;8949:10;8890:70;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;8890:70:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8890:70:0;;;;;-1:-1:-1;;;;;8890:70:0;;;;;;;8993:1;8962:18;:27;;;:32;;;;;;;;;;;9022:1;8996:27;;9028:17;9049:1;9028:22;:48;;;;9054:17;9075:1;9054:22;9028:48;9025:163;;;9100:1;9079:22;;9025:163;;;9112:17;9133:1;9112:22;:48;;;;9138:17;9159:1;9138:22;9112:48;9109:79;;;9184:1;9163:22;;9109:79;9213:1;9192:18;:22;9189:549;;;-1:-1:-1;9277:24:0;;;;9246:56;;;;:30;;;:56;;;;;;;;:76;;;;;;;;;-1:-1:-1;;;;;9246:76:0;;9324:87;;9246:76;;9361:11;;9374:10;;9324:16;:87::i;:::-;9416:27;;;;9447:1;-1:-1:-1;9413:171:0;;9451:53;9462:1;9465:14;9481:9;9492:11;9451:10;:53::i;:::-;9413:171;;;9513:68;9528:14;9544:10;9556:11;9569;9513:14;:68::i;:::-;9189:549;;;9592:50;9602:10;9614:14;9630:11;9592:9;:50::i;:::-;9644:91;9663:14;9679:10;9691;9703:11;9716;9729:5;9644:18;:91::i;:::-;8307:1433;;;;;;;;;;;:::o;14932:557::-;14992:4;;15027:10;15016:21;;15013:462;;;-1:-1:-1;15046:1:0;15013:462;;;15058:7;15069:10;15058:21;15055:420;;;-1:-1:-1;15088:1:0;15055:420;;;15100:7;15111:10;15100:21;15097:378;;;-1:-1:-1;15130:1:0;15097:378;;;15142:7;15153:10;15142:21;15139:336;;;-1:-1:-1;15172:1:0;15139:336;;;15184:7;15195:10;15184:21;15181:294;;;-1:-1:-1;15214:1:0;15181:294;;;15226:7;15237:10;15226:21;15223:252;;;-1:-1:-1;15256:1:0;15223:252;;;15268:7;15279:10;15268:21;15265:210;;;-1:-1:-1;15298:1:0;15265:210;;;15310:7;15321:10;15310:21;15307:168;;;-1:-1:-1;15340:1:0;15307:168;;;15352:7;15363:10;15352:21;15349:126;;;-1:-1:-1;15382:2:0;15349:126;;;15395:7;15406:11;15395:22;15392:83;;;-1:-1:-1;15426:2:0;15392:83;;;15439:7;15450:11;15439:22;15436:39;;;-1:-1:-1;15470:2:0;15436:39;15483:3;14932:557;-1:-1:-1;;14932:557:0:o;23881:1028::-;-1:-1:-1;;;;;24002:20:0;;23969:30;24002:20;;;:11;:20;;;;;24041:27;;;;24002:20;;24080:1;;23969:30;;;;;24069:838;24086:9;24083:1;:12;24069:838;;;24141:33;;;;:25;;;:33;;;;;;;;:46;;;;;;;;:49;;;;;;;;24195:22;;24141:49;;-1:-1:-1;24195:22:0;;24192:713;;;24248:23;;;;24281:2;;24242:3;:29;24241:36;;;24240:43;24220:63;;24303:2;24288:12;:17;24285:544;;;24323:20;;;;24345:24;;24323:20;;-1:-1:-1;;;;;;24345:16:0;;;:24;;;;;24323:20;;24345:24;;;;24323:20;24345:16;:24;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;24371:16:0;;;;;;:7;:16;;;;;;;;:28;;;;;;24401:9;:18;;;;;:30;;;;;;24285:544;;;24457:20;;;;24486:3;24480:2;24457:25;;24456:33;;;;-1:-1:-1;24486:3:0;24531:2;24508:25;24507:33;24491:49;;24542:7;-1:-1:-1;;;;;24542:16:0;:26;24559:8;24542:26;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;24570:16:0;;;;;;:7;:16;;;;;;;;:28;;;;;;24600:9;:18;;;;;:30;;;;;;24657:58;24673:6;24578:7;24690:11;;24657:15;:58::i;:::-;24717:33;;24632:83;;-1:-1:-1;;;;;;24717:23:0;;;:33;;;;;24741:8;;24717:33;;;;24741:8;24717:23;:33;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;24752:23:0;;;;;;:7;:23;;;;;;;;:35;;;;;;24789:9;:25;;;;;:37;;;;;;24285:544;24850:20;;;;24830:16;:40;;;;;;;;24872:30;;-1:-1:-1;;24872:30:0;;;24192:713;24097:3;;;;;24069:838;;;23881:1028;;;;;;;;;;;;:::o;6382:585::-;6472:11;6503:7;6472:11;6548:1;6533:16;;;;;:36;;;6568:1;6553:11;:16;;6533:36;6530:417;;;-1:-1:-1;;6641:32:0;;6601:3;6595:2;6585:12;;6584:20;;6620:19;;;;-1:-1:-1;;;;;6641:19:0;;;:32;;;;;6620:19;;6641:32;;;;6620:19;6641;:32;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;6675:19:0;;;;;;:7;:19;;;;;;;;:34;;;;;;6711:9;:21;;;;;:36;;;;;;6530:417;;;6773:1;6758:16;;6755:192;;-1:-1:-1;;6838:32:0;;6808:3;6802:2;6792:12;;6791:20;;;;-1:-1:-1;;;;;6838:19:0;;;:32;;;;;6791:20;;6838:32;;;;6791:20;6838:19;:32;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;6872:19:0;;;;;;:7;:19;;;;;;;;:34;;;;;;6908:9;:21;;;;;:36;;;;;;6755:192;-1:-1:-1;6955:9:0;6382:585;-1:-1:-1;;;;6382:585:0:o;22944:936::-;23052:7;;;;;;23140:715;23168:4;23146:26;;;;23140:715;;23178:6;23188:1;23178:11;23175:119;;;23209:18;23219:7;23209:9;:18::i;:::-;23192:35;;23175:119;;;23253:38;23270:7;23279:11;23253:16;:38::i;:::-;23236:55;;23175:119;-1:-1:-1;;;;;23298:28:0;;;23295:59;;;23346:5;;-1:-1:-1;;;;;23346:5:0;;-1:-1:-1;23295:59:0;23376:5;;-1:-1:-1;;;;;23358:23:0;;;23376:5;;23358:23;23355:498;;;23405:4;23384:25;;23355:498;;;-1:-1:-1;;;;;23451:27:0;;;;;;;:11;:27;;;;;;;;23496:18;;23526:20;;;;;;;;-1:-1:-1;23496:18:0;-1:-1:-1;23451:27:0;-1:-1:-1;23561:1:0;23551:11;;23548:303;;;23586:27;;;;:12;:27;;;;;;;;:40;;;;;;;;:49;;;;;;-1:-1:-1;23548:303:0;;;23665:27;;;;:12;:27;;;;;;;;:40;;;;;;;;:49;;;;;;;;;-1:-1:-1;23719:27:0;;;23716:133;;-1:-1:-1;23776:27:0;;;;:12;:27;;;;;;;;:40;;;;;;;;23842:4;23818:21;;;:28;;-1:-1:-1;;23818:28:0;;;;;;23716:133;23140:715;;;-1:-1:-1;23863:14:0;;22944:936;-1:-1:-1;;;;;;;;22944:936:0:o;6083:298::-;6172:38;6213:22;;;:11;:22;;;;;;;;:38;;;;;;;;6253:34;;-1:-1:-1;;6253:34:0;6283:4;6253:34;;;6339:3;6333:2;6318:17;;6317:25;6289;;;:53;6375:3;6344:28;;;;:34;-1:-1:-1;;;6083:298:0:o;16028:251::-;16106:4;16143:23;;;;;;;;;;;16113:53;;;;;;;;;;;;;;;;;:27;;16106:4;;16113:53;16143:23;16113:53;;;16143:23;16113:53;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16113:53:0;;;;;;;;;;;;;;;;;;;;;;;16182:1;16173:10;;16168:95;16189:10;:17;16185:1;:21;16168:95;;;16236:7;-1:-1:-1;;;;;16219:24:0;:10;16230:1;16219:13;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16219:24:0;;16215:46;;;16254:4;16247:11;;;;16215:46;16208:3;;16168:95;;;-1:-1:-1;16271:5:0;;16028:251;-1:-1:-1;;;;16028:251:0:o;14045:536::-;-1:-1:-1;;;;;14170:20:0;;;14137:30;14170:20;;;:11;:20;;;;;;;;14223:27;;;;;14192:59;;:30;;;:59;;;;;:73;;;14299:27;;14267:60;;:31;;;:60;;;;;:69;;;14376:33;;;:25;;:33;;;;;:46;;;;;;;;;14423:27;;14376:75;;;;;;;14453:20;;;;:29;;;;14510:3;14484:23;;;:29;;;;14515;;-1:-1:-1;;14515:29:0;;;;;;14546:32;;;;;14045:536::o;13002:551::-;13156:11;13190:37;13111:43;13121:10;13133:7;13142:11;13111:9;:43::i;:::-;13170:18;13180:7;13170:9;:18::i;:::-;13230:20;;;;:12;:20;;;;;;;;:33;;;;;;;;;13299:27;;;;;13265:62;;:33;;;:62;;;;;13328:30;;;;;;13361:1;13328:34;;;13265:98;;;;;;;;:111;;-1:-1:-1;;;;;13265:111:0;;;-1:-1:-1;;13265:111:0;;;;;;;;13407:27;;13378:57;;:28;;;:57;;;;;:69;;;;;;;;:73;13453:43;;;:30;;;;:43;;;;;27:10:-1;;23:18;;;45:23;;13453:60:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;13515:35:0;;;;;;-1:-1:-1;;13002:551:0:o;12169:832::-;12281:11;12316:34;12490:17;12637:30;12295:19;12305:8;12295:9;:19::i;:::-;12353:20;;;;:12;:20;;;;;;;;:33;;;;;;;;12391:27;;;;12281:33;;-1:-1:-1;12353:33:0;-1:-1:-1;12422:1:0;-1:-1:-1;12388:611:0;;12456:1;12426:27;;;:31;12459:24;;;:29;;12487:1;12459:29;;;12531:3;12525:2;12511:16;;12510:24;12490:44;;12536:56;12547:1;12550:14;12566:12;12580:11;12536:10;:56::i;:::-;12594:41;12613:8;12623:11;12594:18;:41::i;:::-;-1:-1:-1;;;;;;12670:21:0;;;;;;:11;:21;;;;;12716:19;;;;12693:69;;12708:6;;12758:3;12752:2;12738:16;;12737:24;;12693:14;:69::i;:::-;12764:28;;;:56;;12817:3;12811:2;12797:16;;12796:24;12764:56;;;12822:26;;;27:10:-1;;-1:-1;23:18;;;45:23;;-1:-1;12822:34:0;;;;;;;;;;;12858:19;;;:24;;;;;;;-1:-1:-1;;;;;12887:28:0;;;12884:113;;12918:76;12937:8;12947:14;12963:8;12973:11;12986:1;12989:4;12918:18;:76::i;:::-;12169:832;;;;;;;;:::o;13554:250::-;13643:14;13683:31;13660:21;13670:10;13660:9;:21::i;:::-;13717:23;;;;:12;:23;;;;;;;;:36;;;;;;;;;;13755:30;;:46;;-1:-1:-1;;13755:46:0;-1:-1:-1;;;;;13755:46:0;;;;;;;;;;;-1:-1:-1;;;13554:250:0:o;9741:2427::-;9891:18;9939:38;10022:10;10065:15;10086:28;11209:26;11621:30;11883:17;9912:25;9922:14;9912:9;:25::i;:::-;9980:27;;;;:12;:27;;;;;;;;:40;;;;;;;;10035:28;;;;10117:31;;;;9891:46;;-1:-1:-1;9980:40:0;;-1:-1:-1;10035:28:0;-1:-1:-1;9980:27:0;-1:-1:-1;10117:31:0;-1:-1:-1;10150:795:0;;;;10190:54;10209:14;10225:11;10238:5;10190:18;:54::i;:::-;10164:80;;10249:23;10276:1;10249:28;:60;;;;10281:23;10308:1;10281:28;10249:60;10246:171;;;10325:1;10312:14;;10246:171;;;10337:23;10364:1;10337:28;:60;;;;10369:23;10396:1;10369:28;10337:60;10334:83;;;10413:1;10400:14;;10334:83;10150:795;;;10455:1;10429:23;:27;10426:517;;;10523:9;-1:-1:-1;;;;;10462:70:0;:57;10481:14;10497:11;10510:5;10517:1;10462:18;:57::i;:::-;-1:-1:-1;;;;;10462:70:0;;10459:393;;;10562:1;;-1:-1:-1;10637:1:0;10568:57;10587:14;10603:11;10616:5;10562:1;10568:18;:57::i;:::-;-1:-1:-1;;;;;10568:71:0;;10565:107;;10668:1;10642:27;;10565:107;10686:1;10673:14;;10459:393;;;10711:1;;-1:-1:-1;10740:1:0;;-1:-1:-1;10815:1:0;10746:57;10765:14;10781:11;10794:5;10740:1;10746:18;:57::i;:::-;-1:-1:-1;;;;;10746:71:0;;10743:107;;10846:1;10820:27;;10426:517;;;10886:54;10905:14;10921:11;10934:5;10886:18;:54::i;:::-;10860:80;;10426:517;11015:10;10946:22;:34;;:41;10981:5;10946:41;;;;;;;;;;;:66;10988:23;10946:66;;;;;;;;;;;;:79;;;;;-1:-1:-1;;;;;10946:79:0;;;;;-1:-1:-1;;;;;10946:79:0;;;;;;11078:1;11027:22;:29;;:36;11057:5;11027:36;;;;;;;;;;;:48;11064:10;-1:-1:-1;;;;;11027:48:0;-1:-1:-1;;;;;11027:48:0;;;;;;;;;;;;:52;;;;11081:22;:31;;:38;11113:5;11081:38;;;;;;;;;;;11125:10;11081:55;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;11081:55:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11081:55:0;;;;;-1:-1:-1;;;;;11081:55:0;;;;;;;11173:1;11138:22;:31;;;:36;;;;;;;;;;;11179:7;11176:190;;;11205:1;11192:10;:14;11189:175;;;11238:41;;;;:34;;;:41;;;;;;;;:53;;;;;;;;;-1:-1:-1;;;;;11238:53:0;;-1:-1:-1;11293:68:0;11238:53;11330:11;11343:10;11273:5;11293:16;:68::i;:::-;11370:22;:31;;;11405:1;11370:36;11367:799;;;11443:1;11409:31;;;:35;;;11446:28;;;:33;;11478:1;11446:33;;;11484:15;;11481:401;;;11502:68;11513:1;11516:14;11553:3;11547:2;11533:16;;11532:24;;11558:11;11502:10;:68::i;:::-;11572:47;11591:14;11607:11;11572:18;:47::i;:::-;-1:-1:-1;;;;;11654:27:0;;;;;;:11;:27;;;;;11713:19;;;;11654:27;;-1:-1:-1;11683:76:0;;11698:13;;11755:3;11749:2;11735:16;;11734:24;;11683:76;11761:28;;;:56;;11814:3;11808:2;11794:16;;11793:24;11761:56;;;11819:26;;;27:10:-1;;-1:-1;23:18;;;45:23;;-1:-1;11819:34:0;;;;;;;;;;;11855:19;;;:24;;;;;;;11481:401;11903:45;11920:14;11936:11;11903:16;:45::i;:::-;11883:65;-1:-1:-1;;;;;;11953:23:0;;;11950:114;;11979:82;11998:14;12014:9;12025:14;12041:11;12053:1;12056:4;11979:18;:82::i;:::-;11367:799;;;12089:1;12075:11;:15;12072:92;;;12093:68;12104:1;12107:14;12144:3;12138:2;12124:16;;12123:24;;12093:68;9741:2427;;;;;;;;;;;;;;:::o;14582:349::-;14650:25;14705:18;14773:6;14678:25;14694:8;14678:15;:25::i;:::-;14750:15;;14650:53;;-1:-1:-1;14742:3:0;14737:1;14728:10;;14727:18;14726:40;;;;;;;;14705:61;;14780:1;14773:8;;14768:161;14787:8;:15;14783:1;:19;14768:161;;;14811:8;14820:1;14811:11;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14811:20:0;:35;14832:13;14811:35;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14811:35:0;14872:13;14848:7;:20;14856:8;14865:1;14856:11;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14848:20:0;-1:-1:-1;;;;;14848:20:0;;;;;;;;;;;;;:37;;;;;;;;;;;14913:13;14887:9;:22;14897:8;14906:1;14897:11;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14887:22:0;;;;;;;;;;;-1:-1:-1;14887:22:0;:39;;;;;;;-1:-1:-1;14804:3:0;14768:161;

Swarm Source

bzzr://c3000e3eefae6c577d00002f1bf17d72bc4890d86f6bca09a802ac262396c800

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.