More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 257 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Registration | 10937688 | 1567 days ago | IN | 0.03 ETH | 0.05243364 | ||||
Registration | 10715030 | 1601 days ago | IN | 0.03 ETH | 0.05404416 | ||||
Registration | 10714099 | 1601 days ago | IN | 0.03 ETH | 0.05837845 | ||||
Registration | 10713911 | 1601 days ago | IN | 0.03 ETH | 0.0465919 | ||||
Registration | 10713823 | 1601 days ago | IN | 0.03 ETH | 0.05476509 | ||||
Registration | 10713574 | 1601 days ago | IN | 0.03 ETH | 0.05468914 | ||||
Registration | 10711166 | 1602 days ago | IN | 0.03 ETH | 0.08168294 | ||||
Disburse Reward ... | 10684652 | 1606 days ago | IN | 0 ETH | 0.06943 | ||||
Registration | 10684518 | 1606 days ago | IN | 0.03 ETH | 0.15237697 | ||||
Registration | 10683591 | 1606 days ago | IN | 0.03 ETH | 0.05566604 | ||||
Registration | 10682836 | 1606 days ago | IN | 0.03 ETH | 0.09093731 | ||||
Upgrade | 10673772 | 1608 days ago | IN | 0.03 ETH | 0.074 | ||||
Registration | 10672668 | 1608 days ago | IN | 0.03 ETH | 0.06764752 | ||||
Registration | 10671665 | 1608 days ago | IN | 0.03 ETH | 0.08317979 | ||||
Registration | 10668855 | 1608 days ago | IN | 0.03 ETH | 0.07361524 | ||||
Upgrade | 10668769 | 1608 days ago | IN | 0.03 ETH | 0.084 | ||||
Upgrade | 10668732 | 1608 days ago | IN | 0.03 ETH | 0.081 | ||||
Upgrade | 10668631 | 1608 days ago | IN | 0.03 ETH | 0.08591375 | ||||
Upgrade | 10668628 | 1608 days ago | IN | 0.03 ETH | 0.08591375 | ||||
Upgrade | 10668624 | 1608 days ago | IN | 0.03 ETH | 0.02161022 | ||||
Upgrade | 10668581 | 1608 days ago | IN | 0.06 ETH | 0.03345328 | ||||
Registration | 10668282 | 1608 days ago | IN | 0.03 ETH | 0.05678683 | ||||
Registration | 10668261 | 1608 days ago | IN | 0.03 ETH | 0.0036 | ||||
Registration | 10667942 | 1609 days ago | IN | 0.03 ETH | 0.06523104 | ||||
Registration | 10667780 | 1609 days ago | IN | 0.03 ETH | 0.00691086 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
10937688 | 1567 days ago | 0.0001875 ETH | ||||
10937688 | 1567 days ago | 0.0001875 ETH | ||||
10937688 | 1567 days ago | 0.0001875 ETH | ||||
10937688 | 1567 days ago | 0.0001875 ETH | ||||
10937688 | 1567 days ago | 0.0105 ETH | ||||
10937688 | 1567 days ago | 0.015 ETH | ||||
10715030 | 1601 days ago | 0.01125 ETH | ||||
10715030 | 1601 days ago | 0.015 ETH | ||||
10714099 | 1601 days ago | 0.01125 ETH | ||||
10714099 | 1601 days ago | 0.015 ETH | ||||
10713911 | 1601 days ago | 0.01125 ETH | ||||
10713911 | 1601 days ago | 0.015 ETH | ||||
10713823 | 1601 days ago | 0.01125 ETH | ||||
10713823 | 1601 days ago | 0.015 ETH | ||||
10713574 | 1601 days ago | 0.01125 ETH | ||||
10713574 | 1601 days ago | 0.015 ETH | ||||
10711166 | 1602 days ago | 0.01125 ETH | ||||
10711166 | 1602 days ago | 0.015 ETH | ||||
10684652 | 1606 days ago | 0.0123075 ETH | ||||
10684652 | 1606 days ago | 0.0287175 ETH | ||||
10684652 | 1606 days ago | 0.0615375 ETH | ||||
10684652 | 1606 days ago | 0.1025625 ETH | ||||
10684652 | 1606 days ago | 0.205125 ETH | ||||
10684518 | 1606 days ago | 0.00075 ETH | ||||
10684518 | 1606 days ago | 0.0105 ETH |
Loading...
Loading
Contract Name:
ALPHA
Compiler Version
v0.4.26+commit.4563c3fc
Contract Source Code (Solidity)
/** *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
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
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
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,264.31 | 3.2985 | $10,767.31 |
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.