0 txs
1 call
constructor
constructor(address _dev1, address _dev2, address _dev3, address _dev4)
functions
canManualReinvest
viewfunction canManualReinvest(address user, uint8 planId) view returns (bool, uint256, uint256)
DEPOSIT_FEE_TOTAL_BPS
viewfunction DEPOSIT_FEE_TOTAL_BPS() view returns (uint16)
depositDevBps
viewfunction depositDevBps(uint256) view returns (uint16)
dev1
viewfunction dev1() view returns (address)
dev2
viewfunction dev2() view returns (address)
dev3
viewfunction dev3() view returns (address)
dev4
viewfunction dev4() view returns (address)
EMERGENCY_DEV_TOTAL_BPS
viewfunction EMERGENCY_DEV_TOTAL_BPS() view returns (uint16)
EMERGENCY_TO_TVL_BPS
viewfunction EMERGENCY_TO_TVL_BPS() view returns (uint16)
emergencyDevOnCapitalBps
viewfunction emergencyDevOnCapitalBps(uint256) view returns (uint16)
getAllPlansOf
viewfunction getAllPlansOf(address user) view returns (uint256[8], uint256[8], uint64[8])
getDepositFeeConfig
viewfunction getDepositFeeConfig() view returns (uint16, uint16, uint16, uint16, uint16)
getDevWallets
viewfunction getDevWallets() view returns (address, address, address, address)
getDirectReferrals
viewfunction getDirectReferrals(address user) view returns (address[])
getEmergencyConfig
viewfunction getEmergencyConfig() view returns (uint16, uint16, uint16, uint16, uint16)
getGemProfile
viewfunction getGemProfile(address user) view returns (uint256, uint256, uint256, uint256, address)
getGlobalStats
viewfunction getGlobalStats() view returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256)
getMinerStatsBase
viewfunction getMinerStatsBase(address user, uint8 planId) view returns (uint256, uint64, uint64, uint64, uint256)
getMinerStatsComputed
viewfunction getMinerStatsComputed(address user, uint8 planId) view returns (uint256, bool)
getPlanParams
viewfunction getPlanParams(uint8 planId) view returns (uint16, uint16)
getQualifiedLevels
viewfunction getQualifiedLevels(address user) view returns (bool[20] qualified)
getReferralConfigLevel
viewfunction getReferralConfigLevel(uint8 level) view returns (uint16, uint256)
getReferralCountLevels
viewfunction getReferralCountLevels(address user) view returns (uint256[20] counts)
getReinvestFeeConfig
viewfunction getReinvestFeeConfig() view returns (uint16, uint16, uint16, uint16, uint16, uint16)
getUserTotals
viewfunction getUserTotals(address user) view returns (uint256, uint256, uint256, uint256, uint256, address)
isOwnershipRenounced
viewfunction isOwnershipRenounced() view returns (bool)
owner
viewfunction owner() view returns (address)
PLAN_COUNT
viewfunction PLAN_COUNT() view returns (uint8)
planDailyBps
viewfunction planDailyBps(uint256) view returns (uint16)
planLockDays
viewfunction planLockDays(uint256) view returns (uint16)
referralCountByLevel
viewfunction referralCountByLevel(address, uint8) view returns (uint256)
referrerOf
viewfunction referrerOf(address) view returns (address)
refLevelBps
viewfunction refLevelBps(uint256) view returns (uint16)
refLevelThresholdWei
viewfunction refLevelThresholdWei(uint256) view returns (uint256)
REINVEST_FEE_BPS
viewfunction REINVEST_FEE_BPS() view returns (uint16)
REINVEST_WEIGHT_SUM
viewfunction REINVEST_WEIGHT_SUM() view returns (uint16)
reinvestWeights
viewfunction reinvestWeights(uint256) view returns (uint16)
reservePool
viewfunction reservePool() view returns (uint256)
totalDepositedAll
viewfunction totalDepositedAll() view returns (uint256)
totalReinvestedAll
viewfunction totalReinvestedAll() view returns (uint256)
totalRewardsPaidAll
viewfunction totalRewardsPaidAll() view returns (uint256)
totalUsers
viewfunction totalUsers() view returns (uint256)
totalWithdrawnAll
viewfunction totalWithdrawnAll() view returns (uint256)
tvlPrincipal
viewfunction tvlPrincipal() view returns (uint256)
collectGems
nonpayablefunction collectGems(uint8 planId)
emergencyWithdraw
nonpayablefunction emergencyWithdraw(uint8 planId)
miningGems
payablefunction miningGems(uint8 planId, address ref) payable
reinvestGems
payablefunction reinvestGems(uint8 planId) payable
renounceOwnership
nonpayablefunction renounceOwnership()
retrieveGemChest
nonpayablefunction retrieveGemChest(uint8 planId, uint8 mode)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
AutoReinvest8020
event AutoReinvest8020(address indexed user, uint8 indexed planId, uint256 grossReinvest, uint256 fee, uint256 netReinvest)
CapitalWithdrawn
event CapitalWithdrawn(address indexed user, uint8 indexed planId, uint256 amountToWallet, uint256 rewardPartPaid)
EmergencyWithdraw
event EmergencyWithdraw(address indexed user, uint8 indexed planId, uint256 toUser, uint256 toReserve, uint256 devPaid)
ManualReinvest
event ManualReinvest(address indexed user, uint8 indexed planId, uint256 amountIn, uint256 fee, uint256 netAdded)
NewInvestment
event NewInvestment(address indexed user, uint8 indexed planId, uint256 amountNet, address indexed referrer, uint256 feeDevTotal)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ReferralLinked
event ReferralLinked(address indexed user, address indexed referrer)
ReferralPaid
event ReferralPaid(address indexed upline, address indexed fromUser, uint8 level, uint256 amount)
RewardsClaimed
event RewardsClaimed(address indexed user, uint8 indexed planId, uint256 amount)
errors
No errors.
creation bytecode
0x6001805561018060405260506080908152606460a0908152607860c052608c60e0526101005260b46101205260c86101405260dc6101605261004590600290600861047c565b50604080516101008101825260078152600e6020820152601e91810191909152603c6060820152605a6080820152607860a0820152609660c082015260b460e082015261009690600390600861047c565b506040805160808101825260fa81526032602082015261019091810182905260608101919091526100ca9060049081610510565b506040805160808101825260198152600560208201819052602892820183905260608201929092526100fe9190600461047c565b506040805160808101825261012c815260c860208201526101f49181018290526060810191909152610134906006906004610510565b5060408051610280810182526107d081526103e860208201526101f4918101829052606081018290526080810182905260a0810182905260c081019190915261012c60e08201819052610100820181905261012082015260646101408201819052610160820181905261018082018190526101a082018190526101c082018190526101e082018190526102008201819052610220820181905261024082018190526102608201526101e9906007906014610565565b50604080516102808101825266470de4df8200008152668e1bc9bf040000602082015266d529ae9e8600009181019190915267011c37937e080000606082015267016345785d8a000060808201526701aa535d3d0c000060a08201526701f161421c8e000060c08201526702386f26fc10000060e082015267027f7d0bdb9200006101008201526702c68af0bb140000610120820152670429d069189e000061014082015267063eb89da4ed0000610160820152670853a0d2313c0000610180820152670a688906bd8b00006101a0820152670c7d713b49da00006101c0820152670f43fc2c04ee00006101e082015267120a871cc00200006102008201526714d1120d7b1600006102208201526718493fba64ef0000610240820152671bc16d674ec800006102608201526103239060099060146105b9565b5034801561032f575f5ffd5b506040516138e23803806138e283398101604081905261034e91610621565b6103573361042d565b6001600160a01b0384161580159061037757506001600160a01b03831615155b801561038b57506001600160a01b03821615155b801561039f57506001600160a01b03811615155b6103da5760405162461bcd60e51b8152602060048201526008602482015267646576207a65726f60c01b604482015260640160405180910390fd5b601d80546001600160a01b039586166001600160a01b031991821617909155601e805494861694821694909417909355601f80549285169284169290921790915560208054919093169116179055610672565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600183019183908215610500579160200282015f5b838211156104d057835183826101000a81548161ffff021916908360ff1602179055509260200192600201602081600101049283019260010302610491565b80156104fe5782816101000a81549061ffff02191690556002016020816001010492830192600103026104d0565b505b5061050c9291506105f2565b5090565b600183019183908215610500579160200282015f5b838211156104d057835183826101000a81548161ffff021916908361ffff1602179055509260200192600201602081600101049283019260010302610525565b600283019183908215610500579160200282015f838211156104d057835183826101000a81548161ffff021916908361ffff1602179055509260200192600201602081600101049283019260010302610525565b8260148101928215610500579160200282015b8281111561050057825182906001600160401b03169055916020019190600101906105cc565b5b8082111561050c575f81556001016105f3565b80516001600160a01b038116811461061c575f5ffd5b919050565b5f5f5f5f60808587031215610634575f5ffd5b61063d85610606565b935061064b60208601610606565b925061065960408601610606565b915061066760608601610606565b905092959194509250565b6132638061067f5f395ff3fe608060405260043610610273575f3560e01c8063821921c31161014d578063b9b6aae4116100ba578063b9b6aae41461095d578063bcb3afbc1461097c578063bff1f9e114610991578063c7d77116146109a6578063cd994bb1146109dc578063d21cacdf146109f1578063d2c8e0e514610a25578063dd05b5a114610a51578063e7e9c0f114610a66578063e8927a9e14610a79578063f2fde38b14610a98578063fd55244f14610ab7578063fed0ba9b14610acb575f5ffd5b8063821921c31461065757806388059a301461066c5780638b16b6f2146106b55780638da5cb5b146106ca5780638dd2a6b5146106de578063950c178e1461073b5780639788d07b1461077757806399044f7c1461078b5780639f023eb6146108245780639ff5812214610848578063a327c45d1461089d578063a34adf28146108bc578063aeec347014610948575f5ffd5b8063564511de116101eb578063564511de146104535780635b66b427146104725780635f6609e31461049157806363a535cb146104dd57806367257be2146104f057806367aabe2d1461052457806367e21c90146105435780636b4169c3146105625780636bb47db5146105b85780636f23ed22146105d7578063715018a6146106055780638013f3a71461061957806381e7a66514610638575f5ffd5b80630266f0441461027e57806307a559f4146102a657806308836be1146102ce5780630f096bec14610308578063155622a41461031d5780632362ce891461033e57806326b66c91146103755780632b0df331146103ae5780632e9af017146103cd578063394f48d1146103e25780634c9f3236146104085780634fbbb2fa14610427575f5ffd5b3661027a57005b5f5ffd5b348015610289575f5ffd5b5061029360285481565b6040519081526020015b60405180910390f35b3480156102b1575f5ffd5b506102bb6109c481565b60405161ffff909116815260200161029d565b3480156102d9575f5ffd5b506102ed6102e8366004612e85565b610af7565b6040805161ffff93841681529290911660208301520161029d565b348015610313575f5ffd5b50610293602b5481565b348015610328575f5ffd5b5061033c610337366004612e85565b610b8e565b005b348015610349575f5ffd5b50601f5461035d906001600160a01b031681565b6040516001600160a01b03909116815260200161029d565b348015610380575f5ffd5b5061039461038f366004612e85565b610e23565b6040805161ffff909316835260208301919091520161029d565b3480156103b9575f5ffd5b5061033c6103c8366004612ea5565b610ede565b3480156103d8575f5ffd5b5061029360295481565b3480156103ed575f5ffd5b506103f6600881565b60405160ff909116815260200161029d565b348015610413575f5ffd5b506102bb610422366004612edd565b611445565b348015610432575f5ffd5b50610446610441366004612f0a565b611472565b60405161029d9190612f23565b34801561045e575f5ffd5b506102bb61046d366004612edd565b6114dd565b34801561047d575f5ffd5b506102bb61048c366004612edd565b6114ec565b34801561049c575f5ffd5b50601d54601e54601f5460208054604080516001600160a01b039687168152948616928501929092529184169083015291909116606082015260800161029d565b61033c6104eb366004612f56565b6114fb565b3480156104fb575f5ffd5b5061050f61050a366004612f87565b6117d7565b6040805192835290151560208301520161029d565b34801561052f575f5ffd5b5060205461035d906001600160a01b031681565b34801561054e575f5ffd5b506102bb61055d366004612edd565b611961565b34801561056d575f5ffd5b50602654602754602854602954602a54602b54602c54604080519788526020880196909652948601939093526060850191909152608084015260a083015260c082015260e00161029d565b3480156105c3575f5ffd5b506102bb6105d2366004612edd565b611970565b3480156105e2575f5ffd5b506105f66105f1366004612f0a565b61197f565b60405161029d93929190612fd1565b348015610610575f5ffd5b5061033c611b9b565b348015610624575f5ffd5b50601e5461035d906001600160a01b031681565b348015610643575f5ffd5b506102bb610652366004612edd565b611bd5565b348015610662575f5ffd5b50610293602a5481565b348015610677575f5ffd5b50610680611be4565b6040805161ffff968716815294861660208601529285169284019290925283166060830152909116608082015260a00161029d565b3480156106c0575f5ffd5b5061029360275481565b3480156106d5575f5ffd5b5061035d611c3f565b3480156106e9575f5ffd5b50600554604080516103e8815261ffff8084166020830152620100008404811692820192909252600160201b830482166060820152600160301b909204166080820152606e60a082015260c00161029d565b348015610746575f5ffd5b5061075a610755366004612f87565b611c4d565b60408051931515845260208401929092529082015260600161029d565b348015610782575f5ffd5b506102bb606e81565b348015610796575f5ffd5b506107ee6107a5366004612f0a565b6001600160a01b039081165f9081526022602090815260408083208054600182015460028301546003840154600490940154602390965293909520549096949592949193921690565b60408051968752602087019590955293850192909252606084015260808301526001600160a01b031660a082015260c00161029d565b34801561082f575f5ffd5b50610838611d6f565b604051901515815260200161029d565b348015610853575f5ffd5b50610867610862366004612f87565b611d88565b604080519586526001600160401b039485166020870152928416928501929092529091166060830152608082015260a00161029d565b3480156108a8575f5ffd5b50601d5461035d906001600160a01b031681565b3480156108c7575f5ffd5b506109176108d6366004612f0a565b6001600160a01b039081165f908152602260209081526040808320600481015481546001830154600290930154602390955292909420549395919490931690565b6040805195865260208601949094529284019190915260608301526001600160a01b0316608082015260a00161029d565b348015610953575f5ffd5b506102bb6105dc81565b348015610968575f5ffd5b50610293610977366004612edd565b611e0e565b348015610987575f5ffd5b506102bb61044c81565b34801561099c575f5ffd5b5061029360265481565b3480156109b1575f5ffd5b506102936109c0366004612f87565b602560209081525f928352604080842090915290825290205481565b3480156109e7575f5ffd5b506102bb6103e881565b3480156109fc575f5ffd5b5061035d610a0b366004612f0a565b60236020525f90815260409020546001600160a01b031681565b348015610a30575f5ffd5b50610a44610a3f366004612f0a565b611e24565b60405161029d9190613029565b348015610a5c575f5ffd5b50610293602c5481565b61033c610a74366004612e85565b611e97565b348015610a84575f5ffd5b5061033c610a93366004612e85565b61215c565b348015610aa3575f5ffd5b5061033c610ab2366004612f0a565b612324565b348015610ac2575f5ffd5b506106806123a5565b348015610ad6575f5ffd5b50610aea610ae5366004612f0a565b6123d9565b60405161029d9190613074565b5f80600860ff841610610b255760405162461bcd60e51b8152600401610b1c9061309c565b60405180910390fd5b60028360ff1660088110610b3b57610b3b6130be565b601091828204019190066002029054906101000a900461ffff1660038460ff1660088110610b6b57610b6b6130be565b601091828204019190066002029054906101000a900461ffff1691509150915091565b600260015403610bb05760405162461bcd60e51b8152600401610b1c906130d2565b6002600155600860ff821610610bd85760405162461bcd60e51b8152600401610b1c9061309c565b335f90815260216020908152604080832060ff8516845290915290208054610c125760405162461bcd60e51b8152600401610b1c906130fb565b6001810154600160401b90046001600160401b03164210610c6b5760405162461bcd60e51b8152602060048201526013602482015272757365206e6f726d616c20776974686472617760681b6044820152606401610b1c565b610c753383612451565b805460028201545f81612710610c8d85611770613132565b610c979190613149565b610ca19190613168565b90505f612710610cb36109c486613132565b610cbd9190613149565b90508060285f828254610cd09190613168565b909155505f9050610ce0856125ce565b5f808855600288018190556003880180549293508692909190610d04908490613168565b925050819055508460275f828254610d1c919061317b565b9091555050335f9081526022602052604081206004018054879290610d4290849061317b565b9091555050335f9081526022602052604081206002018054869290610d68908490613168565b9091555050335f9081526022602052604081206001018054859290610d8e908490613168565b9250508190555083602b5f828254610da69190613168565b9250508190555082602a5f828254610dbe9190613168565b90915550610dce905033846126f7565b604080518481526020810184905290810182905260ff88169033907f898bebede7bfb74a20daf9a28cf455e495659ecc95bf5b22b7b3b191e3f7c50c9060600160405180910390a35050600180555050505050565b5f5f60018360ff1610158015610e3d575060148360ff1611155b610e775760405162461bcd60e51b815260206004820152600b60248201526a06c6576656c20312e2e32360ac1b6044820152606401610b1c565b6007610e8460018561318e565b60ff1660148110610e9757610e976130be565b601091828204019190066002029054906101000a900461ffff166009600185610ec0919061318e565b60ff1660148110610ed357610ed36130be565b015491509150915091565b600260015403610f005760405162461bcd60e51b8152600401610b1c906130d2565b6002600155600860ff831610610f285760405162461bcd60e51b8152600401610b1c9061309c565b335f90815260216020908152604080832060ff8616845290915290208054610f625760405162461bcd60e51b8152600401610b1c906130fb565b6001810154600160401b90046001600160401b0316421015610faf5760405162461bcd60e51b81526020600482015260066024820152651b1bd8dad95960d21b6044820152606401610b1c565b610fb93384612451565b805460028201545f846001811115610fd357610fd36131a7565b03611127575f610fe38284613168565b5f808655600286018190556003860180549293508492909190611007908490613168565b925050819055508260275f82825461101f919061317b565b9091555050335f908152602260205260408120600401805485929061104590849061317b565b9091555050335f908152602260205260408120600201805484929061106b908490613168565b9091555050335f9081526022602052604081206001018054839290611091908490613168565b9250508190555081602b5f8282546110a99190613168565b9250508190555080602a5f8282546110c19190613168565b909155506110d1905033826126f7565b604080518281526020810184905260ff88169133917f85be6bc026a0acb7fb8920be4c086609bc5b2829c1aaba6bab5dbfb9f4c0fa6d910160405180910390a38115611121576111213383612792565b5061143a565b5f6111328284613168565b90505f61271061114483611f40613132565b61114e9190613149565b90505f61115b828461317b565b90505f61271061116d86611f40613132565b6111779190613149565b90505f6127106111896103e885613132565b6111939190613149565b90505f6111a0828561317b565b90506111ab826128f8565b80895560018901805467ffffffffffffffff1916426001600160401b0381169190911790915562015180600360ff8e16600881106111eb576111eb6130be565b60108104919091015461120e9291600f166002026101000a900461ffff16613132565b611221906001600160401b038316613168565b60018b018054600160401b600160c01b031916600160401b6001600160401b0393841602600160801b600160c01b03191617600160801b9284169290920291909117905560038a0180548591905f9061127b908490613168565b90915550505f60028b01556027548290611296908b9061317b565b6112a09190613168565b602755335f9081526022602052604090206004015482906112c2908b9061317b565b6112cc9190613168565b335f9081526022602052604081206004810192909255600290910180548692906112f7908490613168565b9091555050335f908152602260205260408120600101805488929061131d908490613168565b9091555050335f9081526022602052604081206003018054849290611343908490613168565b9250508190555083602b5f82825461135b9190613168565b9250508190555085602a5f8282546113739190613168565b9250508190555081602c5f82825461138b9190613168565b9091555061139b905033876126f7565b604080518781526020810186905260ff8e169133917f85be6bc026a0acb7fb8920be4c086609bc5b2829c1aaba6bab5dbfb9f4c0fa6d910160405180910390a3604080518681526020810185905290810183905260ff8d169033907e6604bf837fcbb8feccb2eabd0a08c86bfc38db448636f7c82e4998206cf7989060600160405180910390a38315611432576114323385612792565b505050505050505b505060018055505050565b60038160088110611454575f80fd5b60109182820401919006600202915054906101000a900461ffff1681565b61147a612e32565b5f611484836129fe565b90505f5b60148160ff1610156114d65760098160ff16601481106114aa576114aa6130be565b0154821015838260ff16601481106114c4576114c46130be565b91151560209092020152600101611488565b5050919050565b60068160048110611454575f80fd5b60058160048110611454575f80fd5b60026001540361151d5760405162461bcd60e51b8152600401610b1c906130d2565b6002600155600860ff8316106115455760405162461bcd60e51b8152600401610b1c9061309c565b662386f26fc1000034101561158b5760405162461bcd60e51b815260206004820152600c60248201526b36b4b710181718189021272160a11b6044820152606401610b1c565b335f90815260216020908152604080832060ff8616845290915290208054156116015760405162461bcd60e51b815260206004820152602260248201527f706c616e206163746976653b20757365207265696e766573742f776974686472604482015261617760f01b6064820152608401610b1c565b61160b3383612a33565b61161434612c79565b5f61271061162461044c34613132565b61162e9190613149565b90505f61163b823461317b565b80845560018401805467ffffffffffffffff1916426001600160401b0381169190911790915590915062015180600360ff88166008811061167e5761167e6130be565b6010810491909101546116a19291600f166002026101000a900461ffff16613132565b6116b4906001600160401b038316613168565b600185018054600160401b600160c01b031916600160401b6001600160401b0393841602600160801b600160c01b03191617600160801b92841692909202919091179055335f9081526022602052604081208054349290611716908490613168565b9091555050335f908152602260205260408120600401805484929061173c908490613168565b925050819055503460295f8282546117549190613168565b925050819055508160275f82825461176c9190613168565b9091555050335f818152602360209081526040918290205482518681529182018790526001600160a01b03169260ff8a169290917f33385d599c9aec6b19ecbcaa44d02912b7e8534a1e71c93f23c77626832792ca910160405180910390a450506001805550505050565b5f80600860ff8416106117fc5760405162461bcd60e51b8152600401610b1c9061309c565b6001600160a01b0384165f90815260216020908152604080832060ff871684529091528120600181015490919042906001600160401b03600160401b9091048116908216111561185d57506001820154600160401b90046001600160401b03165b60018301546001600160401b03600160801b90910481169082161180156118845750825415155b156119285760018301545f906118aa90600160801b90046001600160401b0316836131bb565b6001600160401b031690505f61271060028960ff16600881106118cf576118cf6130be565b601091828204019190066002029054906101000a900461ffff1661ffff16865f01546118fb9190613132565b6119059190613149565b9050620151806119158383613132565b61191f9190613149565b9350505061192c565b5f91505b82545f901580159061195257506001840154600160401b90046001600160401b03164210155b92989297509195505050505050565b60048160048110611454575f80fd5b60028160088110611454575f80fd5b611987612e51565b61198f612e51565b611997612e51565b61199f612e51565b6119a7612e51565b6119af612e51565b5f5b600860ff82161015611b8d576001600160a01b0388165f90815260216020908152604080832060ff85168085529252909120805490918690600881106119f9576119f96130be565b60200201526001810154600160401b90046001600160401b03168360ff841660088110611a2857611a286130be565b6001600160401b03928316602091909102919091015260018201544291600160401b90910481169082161115611a6f57506001810154600160401b90046001600160401b03165b60018201546001600160401b03600160801b9091048116908216118015611a965750815415155b15611b635760018201545f90611abc90600160801b90046001600160401b0316836131bb565b6001600160401b031690505f61271060028660ff1660088110611ae157611ae16130be565b601091828204019190066002029054906101000a900461ffff1661ffff16855f0154611b0d9190613132565b611b179190613149565b600285015490915062015180611b2d8484613132565b611b379190613149565b611b419190613168565b878660ff1660088110611b5657611b566130be565b602002015250611b839050565b8160020154858460ff1660088110611b7d57611b7d6130be565b60200201525b50506001016119b1565b509196909550909350915050565b33611ba4611c3f565b6001600160a01b031614611bca5760405162461bcd60e51b8152600401610b1c906131da565b611bd35f612d75565b565b60078160148110611454575f80fd5b600480545f91829182918291829161044c9161ffff80821692620100008304821692600160201b90049091169060035b601091828204019190066002029054906101000a900461ffff16945094509450945094509091929394565b5f546001600160a01b031690565b6001600160a01b0382165f9081526022602090815260408083206021835281842060ff861685529092528220815483928392909183906722b1c8c1227a000011801590611c9a5750815415155b8015611cc857506001820154611cc4906201518090600160c01b90046001600160401b0316613168565b4210155b90505f6722b1c8c1227a0000845f01541015611cf7578354611cf2906722b1c8c1227a000061317b565b611cf9565b5f5b60018401549091505f90611d21906201518090600160c01b90046001600160401b0316613168565b421015611d5c5760018401544290611d4d906201518090600160c01b90046001600160401b0316613168565b611d57919061317b565b611d5e565b5f5b929a91995091975095505050505050565b5f80611d79611c3f565b6001600160a01b031614905090565b5f80808080600860ff871610611db05760405162461bcd60e51b8152600401610b1c9061309c565b505050506001600160a01b03929092165f90815260216020908152604080832060ff949094168352929052208054600182015460029092015490936001600160401b038084169450600160401b8404811693600160801b9004169190565b60098160148110611e1d575f80fd5b0154905081565b6001600160a01b0381165f90815260246020908152604091829020805483518184028101840190945280845260609392830182828015611e8b57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611e6d575b50505050509050919050565b600260015403611eb95760405162461bcd60e51b8152600401610b1c906130d2565b6002600155600860ff821610611ee15760405162461bcd60e51b8152600401610b1c9061309c565b5f3411611f1b5760405162461bcd60e51b81526020600482015260086024820152676e6f2076616c756560c01b6044820152606401610b1c565b335f908152602260205260409020546722b1c8c1227a00001115611f7c5760405162461bcd60e51b81526020600482015260186024820152771b995959080f8f4c8b8d481093908819195c1bdcda5d195960421b6044820152606401610b1c565b335f90815260216020908152604080832060ff8516845290915290208054611fb65760405162461bcd60e51b8152600401610b1c906130fb565b6001810154611fd9906201518090600160c01b90046001600160401b0316613168565b4210156120195760405162461bcd60e51b815260206004820152600e60248201526d7265696e7665737420312f64617960901b6044820152606401610b1c565b6120233383612451565b5f6127106120336103e834613132565b61203d9190613149565b90505f61204a823461317b565b9050612055826128f8565b80835f015f8282546120679190613168565b9091555050335f908152602260205260408120600301805483929061208d908490613168565b9091555050335f90815260226020526040812060040180548392906120b3908490613168565b9250508190555080602c5f8282546120cb9190613168565b925050819055508060275f8282546120e39190613168565b90915550506001830180546001600160c01b0316600160c01b426001600160401b031602179055604080513481526020810184905290810182905260ff85169033907f0bbc7d108c8d6f145c8d90521be8ed9731c3afbfcfbc74a8b0901ef34a6ebf5d9060600160405180910390a35050600180555050565b60026001540361217e5760405162461bcd60e51b8152600401610b1c906130d2565b6002600155600860ff8216106121a65760405162461bcd60e51b8152600401610b1c9061309c565b335f90815260216020908152604080832060ff85168452909152902080546121e05760405162461bcd60e51b8152600401610b1c906130fb565b6121ea3383612451565b60028101548061222f5760405162461bcd60e51b815260206004820152601060248201526f6e6f7468696e6720746f20636c61696d60801b6044820152606401610b1c565b5f826002018190555080826003015f82825461224b9190613168565b9091555061225b905033826126f7565b335f908152602260205260408120600201805483929061227c908490613168565b9091555050335f90815260226020526040812060010180548392906122a2908490613168565b9250508190555080602b5f8282546122ba9190613168565b9250508190555080602a5f8282546122d29190613168565b909155505060405181815260ff84169033907fdb1b2f66e1b9bd60d7756c7b006401cdd2526e0aa7a6ea41c1c2692b544cf6529060200160405180910390a361231b3382612792565b50506001805550565b3361232d611c3f565b6001600160a01b0316146123535760405162461bcd60e51b8152600401610b1c906131da565b6001600160a01b0381166123995760405162461bcd60e51b815260206004820152600d60248201526c4f776e61626c653a207a65726f60981b6044820152606401610b1c565b6123a281612d75565b50565b600680545f9182918291829182916109c49161ffff80821692620100008304821692600160201b9004909116906003611c14565b6123e1612e32565b60015b60148160ff161161244b576001600160a01b0383165f90815260256020908152604080832060ff851684529091529020548261242160018461318e565b60ff1660148110612434576124346130be565b6020020152806124438161320f565b9150506123e4565b50919050565b6001600160a01b0382165f90815260216020908152604080832060ff851684529091528120805490910361248457505050565b600181015442906001600160401b03600160401b909104811690821611156124bd57506001810154600160401b90046001600160401b03165b60018201546001600160401b03600160801b9091048116908216116124e25750505050565b60018201545f9061250390600160801b90046001600160401b0316836131bb565b6001600160401b031690505f61271060028660ff1660088110612528576125286130be565b601091828204019190066002029054906101000a900461ffff1661ffff16855f01546125549190613132565b61255e9190613149565b90505f6201518061256f8484613132565b6125799190613149565b9050801561259a5780856002015f8282546125949190613168565b90915550505b505050600190910180546001600160401b03909216600160801b02600160801b600160c01b03199092169190911790555050565b6006545f908190612710906125e79061ffff1685613132565b6125f19190613149565b6006549091505f90612710906126119062010000900461ffff1686613132565b61261b9190613149565b6006549091505f906127109061263c90600160201b900461ffff1687613132565b6126469190613149565b6006549091505f906127109061266790600160301b900461ffff1688613132565b6126719190613149565b9050808261267f8587613168565b6126899190613168565b6126939190613168565b601d549095506126ac906001600160a01b0316856126f7565b601e546126c2906001600160a01b0316846126f7565b601f546126d8906001600160a01b0316836126f7565b6020546126ee906001600160a01b0316826126f7565b50505050919050565b805f03612702575050565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f811461274b576040519150601f19603f3d011682016040523d82523d5f602084013e612750565b606091505b505090508061278d5760405162461bcd60e51b81526020600482015260096024820152681cd95b990819985a5b60ba1b6044820152606401610b1c565b505050565b805f0361279d575050565b6001600160a01b038083165f908152602360205260409020541660015b60148160ff16111580156127d657506001600160a01b03821615155b156128f25760096127e860018361318e565b60ff16601481106127fb576127fb6130be565b015461280683612dc4565b106128c3575f612710600761281c60018561318e565b60ff166014811061282f5761282f6130be565b601091828204019190066002029054906101000a900461ffff1661ffff16856128589190613132565b6128629190613149565b905080156128c15761287483826126f7565b6040805160ff84168152602081018390526001600160a01b0380881692908616917f53aa79cc77a3d2e16f0f104bce3b3da868f1ec7596a2cc49a09f8103982da834910160405180910390a35b505b6001600160a01b039182165f9081526023602052604090205490911690806128ea8161320f565b9150506127ba565b50505050565b805f036129025750565b600554606e905f90829061291a9061ffff1685613132565b6129249190613149565b6005549091505f9083906129429062010000900461ffff1686613132565b61294c9190613149565b6005549091505f90849061296b90600160201b900461ffff1687613132565b6129759190613149565b90505f816129838486613168565b61298d9190613168565b90505f61299a828861317b565b601d549091506129b3906001600160a01b0316866126f7565b601e546129c9906001600160a01b0316856126f7565b601f546129df906001600160a01b0316846126f7565b6020546129f5906001600160a01b0316826126f7565b50505050505050565b5f612a0882612dd4565b15612a1557505f19919050565b506001600160a01b03165f9081526022602052604090206004015490565b6001600160a01b0382165f9081526022602052604090206005015460ff1615612a5a575050565b6001600160a01b0382165f908152602260205260408120600501805460ff191660019081179091556026805491929091612a95908490613168565b909155508190506001600160a01b0381161580612ac35750826001600160a01b0316816001600160a01b0316145b80612b025750601d546001600160a01b03828116911614801590612b0257506001600160a01b0381165f9081526022602052604090206005015460ff16155b15612b155750601d546001600160a01b03165b6001600160a01b038381165f9081526023602052604090205416158015612b4457506001600160a01b03811615155b8015612b625750826001600160a01b0316816001600160a01b031614155b1561278d576001600160a01b038084165f81815260236020908152604080832080549587166001600160a01b031996871681179091558084526024835281842080546001810182559085529284209092018054909516841790945592517f817ae04f92799377adbf2ef0bd14067ab8426099966ae80c038b5cad85746f549190a38060015b60148160ff1611158015612c0357506001600160a01b03821615155b15612c72576001600160a01b0382165f90815260256020908152604080832060ff851684529091528120805460019290612c3e908490613168565b90915550506001600160a01b039182165f908152602360205260409020549091169080612c6a8161320f565b915050612be7565b5050505050565b6004545f9061271090612c909061ffff1684613132565b612c9a9190613149565b6004549091505f9061271090612cba9062010000900461ffff1685613132565b612cc49190613149565b6004549091505f9061271090612ce590600160201b900461ffff1686613132565b612cef9190613149565b6004549091505f9061271090612d1090600160301b900461ffff1687613132565b612d1a9190613149565b601d54909150612d33906001600160a01b0316856126f7565b601e54612d49906001600160a01b0316846126f7565b601f54612d5f906001600160a01b0316836126f7565b602054612c72906001600160a01b0316826126f7565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f612dce826129fe565b92915050565b601d545f906001600160a01b0383811691161480612dff5750601e546001600160a01b038381169116145b80612e175750601f546001600160a01b038381169116145b80612dce5750506020546001600160a01b0390811691161490565b6040518061028001604052806014906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b803560ff81168114612e80575f5ffd5b919050565b5f60208284031215612e95575f5ffd5b612e9e82612e70565b9392505050565b5f5f60408385031215612eb6575f5ffd5b612ebf83612e70565b9150602083013560028110612ed2575f5ffd5b809150509250929050565b5f60208284031215612eed575f5ffd5b5035919050565b80356001600160a01b0381168114612e80575f5ffd5b5f60208284031215612f1a575f5ffd5b612e9e82612ef4565b610280810181835f5b6014811015612f4d5781511515835260209283019290910190600101612f2c565b50505092915050565b5f5f60408385031215612f67575f5ffd5b612f7083612e70565b9150612f7e60208401612ef4565b90509250929050565b5f5f60408385031215612f98575f5ffd5b612fa183612ef4565b9150612f7e60208401612e70565b805f5b60088110156128f2578151845260209384019390910190600101612fb2565b6103008101612fe08286612faf565b612fee610100830185612faf565b6102008201835f5b600881101561301e5781516001600160401b0316835260209283019290910190600101612ff6565b505050949350505050565b602080825282518282018190525f918401906040840190835b818110156130695783516001600160a01b0316835260209384019390920191600101613042565b509095945050505050565b610280810181835f5b6014811015612f4d57815183526020928301929091019060010161307d565b6020808252600890820152673130b210383630b760c11b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b6020808252600f908201526e1499595b9d1c985b98de51dd585c99608a1b604082015260600190565b6020808252600990820152686e6f2061637469766560b81b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417612dce57612dce61311e565b5f8261316357634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115612dce57612dce61311e565b81810381811115612dce57612dce61311e565b60ff8281168282160390811115612dce57612dce61311e565b634e487b7160e01b5f52602160045260245ffd5b6001600160401b038281168282160390811115612dce57612dce61311e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60ff821660ff81036132245761322461311e565b6001019291505056fea2646970667358221220270d5edef198993767a84e0c0611afbbd6941dea9923ae3afc7ed1645547874a64736f6c634300081e00330000000000000000000000006cd63ba0caefdcb7e7567b4d7a2fc11638647eba0000000000000000000000006cd63ba0caefdcb7e7567b4d7a2fc11638647eba0000000000000000000000006cd63ba0caefdcb7e7567b4d7a2fc11638647eba0000000000000000000000006cd63ba0caefdcb7e7567b4d7a2fc11638647eba