0 txs
2 calls
constructor
No constructor.
functions
balanceGpc
viewfunction balanceGpc(address user) view returns (uint256)
balanceOfLeft
viewfunction balanceOfLeft(address user) view returns (uint256)
balanceOfUsdt
viewfunction balanceOfUsdt(address user) view returns (uint256)
BLACKHOLE_ADDRESS
viewfunction BLACKHOLE_ADDRESS() view returns (address)
BLACKHOLE_FEE_RATE
viewfunction BLACKHOLE_FEE_RATE() view returns (uint256)
burned
viewfunction burned() view returns (uint256)
checkSynUser
viewfunction checkSynUser(address user) view returns (bool)
getAllAsset
viewfunction getAllAsset() view returns (uint256)
getProduct
viewfunction getProduct(uint16 productId) view returns (uint256, uint8)
getReserves
viewfunction getReserves() view returns (uint256, uint256, uint256, uint256)
getUserLevel
viewfunction getUserLevel(address user) view returns (uint16)
getUserRebate
viewfunction getUserRebate(address user) view returns (tuple)
getUserRecords
viewfunction getUserRecords(address user) view returns (tuple[])
gpcPrice
viewfunction gpcPrice() view returns (uint256)
isUserBlack
viewfunction isUserBlack(address user) view returns (bool)
isWithdrawExt
viewfunction isWithdrawExt(address user) view returns (bool)
leftUsdtAll
viewfunction leftUsdtAll() view returns (uint256)
owner
viewfunction owner() view returns (address)
RATE_PRECISION
viewfunction RATE_PRECISION() view returns (uint256)
usdtAll
viewfunction usdtAll() view returns (uint256)
buy
nonpayablefunction buy(address user, uint16 productId)
initialize
nonpayablefunction initialize()
releaseRecord
nonpayablefunction releaseRecord(address[] users, uint256[] releaseValues, uint16[] releaseTypes)
releaseRecordDaily
nonpayablefunction releaseRecordDaily(address[] users, uint256[] releaseValues)
renounceOwnership
nonpayablefunction renounceOwnership()
setAdmin
nonpayablefunction setAdmin(address _admin_, bool adminFlag)
setUserBlack
nonpayablefunction setUserBlack(address user, bool flag)
setWithdrawOpt
nonpayablefunction setWithdrawOpt(address user, bool flag)
sysAsset
nonpayablefunction sysAsset(address[] users, uint256[] balances, uint256[] subBalances, uint256[] subCounts, uint16[] levels)
sysAssetDaily
nonpayablefunction sysAssetDaily(address[] users, uint256[] subBalances, uint256[] subCounts, uint256[] todayReleases, uint16[] levels)
sysBuyTotal
nonpayablefunction sysBuyTotal(address[] users, uint256[] totalBuys, uint256[] totalValues, uint256[] totalReleases)
sysRecords
nonpayablefunction sysRecords(address[] users, uint256[] recordIds, uint16[] productIds, uint256[] leftValues)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw(uint256 gpcAmount, address toUser)
withDrawErc20
nonpayablefunction withDrawErc20(address erc20Address)
withdrawGpc
nonpayablefunction withdrawGpc(uint256 gpcAmount, address toUser)
withdrawGpcV2
nonpayablefunction withdrawGpcV2(uint256 gpcAmount, address fromUser, address toUser)
events
AddRecord
event AddRecord(address indexed _user, address payUser, uint256 id, uint256 productId, uint256 usdt, uint256 payGpc, uint256 value)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ReleaseRecord
event ReleaseRecord(address indexed _user, uint256 recordId, uint256 releaseValue, uint256 releaseGpc, uint16 releaseType, uint256 timestamp)
SetAdmin
event SetAdmin(address indexed _admin_, bool flag)
TotalReleaseRecord
event TotalReleaseRecord(address indexed _user, uint256 releaseValue, uint256 releaseGpc, uint16 releaseType, uint256 timestamp)
Withdraw
event Withdraw(address indexed _user, uint256 gpc, uint256 timestamp)
errors
No errors.
creation bytecode
0x608060405234801561000f575f80fd5b50613e7e8061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061021d575f3560e01c806371bdfb941161012a578063cdd603ab116100b4578063dda0248211610079578063dda0248214610544578063eeeccb9c14610557578063f2b84e6b1461056a578063f2fde38b1461057d578063fcb6f08714610590575f80fd5b8063cdd603ab146104ba578063d2efcd85146104f5578063d368111414610508578063d7c4fbe314610511578063db3c90151461053c575f80fd5b80638da5cb5b116100fa5780638da5cb5b146104265780638fef99261461044b578063a48243f61461045e578063ab5aebca14610466578063c64f4da1146104b2575f80fd5b806371bdfb94146103ee57806373f425611461040e5780638129fc1c14610416578063882546441461041e575f80fd5b80634b0bddd2116101ab57806363dcfd991161017b57806363dcfd99146103825780636b1c1b8f146103955780636cc9eda3146103a85780636d67dcbd146103bb578063715018a6146103e6575f80fd5b80634b0bddd21461032957806351096b021461033c57806352b7ba071461035c5780635f7476ed1461036f575f80fd5b806325af55a2116101f157806325af55a2146102bc5780632b3ba681146102cf5780632ba66854146102d8578063357f4777146102eb578063426c7677146102fe575f80fd5b8062f714ce1461022157806308f48078146102365780630902f1ac1461025257806321923bde1461027a575b5f80fd5b61023461022f36600461366a565b6105bb565b005b61023f6101f481565b6040519081526020015b60405180910390f35b61025a6107a1565b604080519485526020850193909352918301526060820152608001610249565b6102a9610288366004613698565b6001600160a01b03165f90815260a3602052604090206004015461ffff1690565b60405161ffff9091168152602001610249565b6102346102ca366004613698565b6108c7565b61023f61271081565b6102346102e63660046136fb565b6109c6565b6102346102f9366004613762565b610eef565b61023f61030c366004613698565b6001600160a01b03165f90815260a3602052604090206001015490565b61023461033736600461382a565b611264565b61034f61034a366004613698565b6112f0565b60405161024991906138b9565b61023461036a366004613762565b611507565b61023461037d3660046138f5565b611608565b6102346103903660046138f5565b61175e565b6102346103a336600461366a565b611914565b6102346103b63660046139db565b6119be565b61023f6103c9366004613698565b6001600160a01b03165f90815260a3602052604090206002015490565b610234611c01565b6104016103fc366004613698565b611c14565b6040516102499190613a58565b61023f611dc5565b610234611e36565b61023f61273f565b6065546001600160a01b03165b6040516001600160a01b039091168152602001610249565b61023461045936600461382a565b612833565b60a55461023f565b61049b610474366004613b21565b61ffff165f908152609e602052604090206001810154905490916201000090910460ff1690565b6040805192835260ff909116602083015201610249565b61023f61288b565b6104e56104c8366004613698565b6001600160a01b03165f90815260a0602052604090205460ff1690565b6040519015158152602001610249565b610234610503366004613b3a565b61292e565b61043361dead81565b6104e561051f366004613698565b6001600160a01b03165f90815260a1602052604090205460ff1690565b60a65461023f565b61023461055236600461382a565b612b14565b610234610565366004613b6d565b612b6c565b6104e5610578366004613698565b612c03565b61023461058b366004613698565b612c13565b61023f61059e366004613698565b6001600160a01b03165f90815260a3602052604090206003015490565b6105c3612c89565b335f90815260a0602052604090205460ff161561061f5760405162461bcd60e51b8152602060048201526015602482015274155cd95c881a5cc8125b88109b1858dac8131a5cdd605a1b60448201526064015b60405180910390fd5b6001600160a01b038116331461067b57335f90815260a1602052604090205460ff1661067b5760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b6044820152606401610616565b335f90815260a360205260409020600301548211156106d35760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610616565b335f90815260a360205260409020600301546106ef9083612ce2565b335f90815260a3602052604081206003019190915561071c612710610716856101f4612cf4565b90612cff565b609a54909150610738906001600160a01b031661dead83612d0a565b609a54610758906001600160a01b0316836107538685612ce2565b612d0a565b6040805184815242602082015233917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56891015b60405180910390a25061079d60018055565b5050565b5f805f805f8060985f9054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156107f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081b9190613c16565b506001600160701b031691506001600160701b031691505f8060995f9054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610884573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a89190613c16565b5094985092965050506001600160701b03908116935016905090919293565b6108cf612c89565b73d3c304697f63b279cd314f92c19cdbe5e5b16319196001600160a01b0382160161092d5760405162461bcd60e51b815260206004820152600e60248201526d63616e206e6f742062792067706360901b6044820152606401610616565b6040516370a0823160e01b815230600482015281905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610973573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109979190613c57565b90506109b88273ef044e831740a4675d803566c8a0e7e8800da30b83612d0a565b50506109c360018055565b50565b5f6109cf61288b565b90505f5b84811015610ee7575f60a35f8888858181106109f1576109f1613c6e565b9050602002016020810190610a069190613698565b6001600160a01b0316815260208101919091526040015f90812091508190868685818110610a3657610a36613c6e565b9050602002013590505f805b8354811015610e5557838181548110610a5d57610a5d613c6e565b905f5260205f209060090201600401545f0315610e43575f848281548110610a8757610a87613c6e565b905f5260205f20906009020160040154841115610adc57848281548110610ab057610ab0613c6e565b905f5260205f209060090201600401549050610ad58185612ce290919063ffffffff16565b9350610adf565b50825b805f03610aec5750610e55565b5f610b038961071684670de0b6b3a7640000612cf4565b6003880154909150610b159082612d73565b6003880155610b248482612d73565b9350610b5a82878581548110610b3c57610b3c613c6e565b905f5260205f20906009020160040154612ce290919063ffffffff16565b868481548110610b6c57610b6c613c6e565b905f5260205f20906009020160040181905550610bb382878581548110610b9557610b95613c6e565b905f5260205f20906009020160060154612d7390919063ffffffff16565b868481548110610bc557610bc5613c6e565b905f5260205f20906009020160060181905550610c0c81878581548110610bee57610bee613c6e565b905f5260205f20906009020160070154612d7390919063ffffffff16565b868481548110610c1e57610c1e613c6e565b905f5260205f209060090201600701819055508187600201541115610c56576002870154610c4c9083612ce2565b6002880155610c5d565b5f60028801555b600b870154610c6c9086612d73565b600a88015560a554851015610c905760a554610c889083612ce2565b60a555610c95565b5f60a5555b858381548110610ca757610ca7613c6e565b905f5260205f209060090201600401545f03610da157858381548110610ccf57610ccf613c6e565b905f5260205f2090600902016002015487600101541115610d2c57610d22868481548110610cff57610cff613c6e565b905f5260205f209060090201600201548860010154612ce290919063ffffffff16565b6001880155610d33565b5f60018801555b858381548110610d4557610d45613c6e565b905f5260205f2090600902016002015460a6541115610d9c57610d94868481548110610d7357610d73613c6e565b905f5260205f2090600902016002015460a654612ce290919063ffffffff16565b60a655610da1565b5f60a6555b8c8c89818110610db357610db3613c6e565b9050602002016020810190610dc89190613698565b6001600160a01b03167f7bb2bbaf5335b45fee4cb4cea99ef0ee39a1d55fab618944851d77a09760ba1d878581548110610e0457610e04613c6e565b5f91825260209182902060099091020154604080519182529181018690529081018490526001606082015242608082015260a00160405180910390a250505b80610e4d81613c96565b915050610a42565b50898986818110610e6857610e68613c6e565b9050602002016020810190610e7d9190613698565b604080518481526020810184905260018183015242606082015290516001600160a01b0392909216917f2dcf8c4b4d2ac5e3370fcc771637d6ca9dab28fb921a5e87c130a59a7515166c9181900360800190a2505050508080610edf90613c96565b9150506109d3565b505050505050565b610ef7612c89565b335f908152609d602052604090205460ff16610f255760405162461bcd60e51b815260040161061690613cae565b5f5b85811015611250575f609e5f878785818110610f4557610f45613c6e565b9050602002016020810190610f5a9190613b21565b61ffff908116825260208083019390935260409182015f908120835160a081018552815493841681526201000090930460ff169483019490945260018401549282019290925260028301546060820152600390920154608083015290915060a3818c8c86818110610fcd57610fcd613c6e565b9050602002016020810190610fe29190613698565b6001600160a01b03166001600160a01b031681526020019081526020015f209050805f016040518061012001604052808b8b8781811061102457611024613c6e565b90506020020135815260200189898781811061104257611042613c6e565b90506020020160208101906110579190613b21565b61ffff168152602001846060015181526020018460800151815260200187878781811061108657611086613c6e565b905060200201358152602001846020015160ff1681526020016110ce8888888181106110b4576110b4613c6e565b905060200201358660800151612ce290919063ffffffff16565b81525f602080830182905242604093840152845460018082018755958352918190208451600990930201918255830151938101805461ffff191661ffff909516949094179093558101516002830155606081015160038301556080810151600483015560a081015160058301805460ff191660ff90921691909117905560c0810151600683015560e08101516007830155610100015160089091015561119985858581811061117f5761117f613c6e565b905060200201358260020154612d7390919063ffffffff16565b6002820155606082015160018201546111b191612d73565b6001820155606082015160a6546111c791612d73565b60a6556111f78585858181106111df576111df613c6e565b9050602002013560a554612d7390919063ffffffff16565b60a55588888481811061120c5761120c613c6e565b9050602002013560a254101561123b5788888481811061122e5761122e613c6e565b602002919091013560a255505b5050808061124890613c96565b915050610f27565b5061125a60018055565b5050505050505050565b335f908152609d602052604090205460ff166112925760405162461bcd60e51b815260040161061690613cae565b6001600160a01b0382165f818152609d6020908152604091829020805460ff191685151590811790915591519182527f55a5194bc0174fcaf12b2978bef43911466bf63b34db8d1dd1a0d5dcd5c41bea910160405180910390a25050565b6001600160a01b0381165f90815260a36020526040812080546060928291900361134d57604080515f8082526020820190925290611344565b61133161360c565b8152602001906001900390816113295790505b50949350505050565b5f805b82548110156113a2575f83828154811061136c5761136c613c6e565b905f5260205f209060090201600401541115611390578161138c81613c96565b9250505b8061139a81613c96565b915050611350565b505f8167ffffffffffffffff8111156113bd576113bd613cd3565b6040519080825280602002602001820160405280156113f657816020015b6113e361360c565b8152602001906001900390816113db5790505b5090505f805b84548110156114fb575f85828154811061141857611418613c6e565b905f5260205f2090600902016004015411156114e95784818154811061144057611440613c6e565b5f9182526020918290206040805161012081018252600990930290910180548352600181015461ffff16938301939093526002830154908201526003820154606082015260048201546080820152600582015460ff1660a0820152600682015460c0820152600782015460e082015260089091015461010082015283518490849081106114cf576114cf613c6e565b602002602001018190525081806114e590613c96565b9250505b806114f381613c96565b9150506113fc565b50909695505050505050565b61150f612c89565b335f908152609d602052604090205460ff1661153d5760405162461bcd60e51b815260040161061690613cae565b5f5b87811015611250575f60a35f8b8b8581811061155d5761155d613c6e565b90506020020160208101906115729190613698565b6001600160a01b03166001600160a01b031681526020019081526020015f2090508585838181106115a5576115a5613c6e565b60200291909101356008830155508787838181106115c5576115c5613c6e565b60200291909101356009830155508383838181106115e5576115e5613c6e565b9050602002013581600a018190555050808061160090613c96565b91505061153f565b611610612c89565b335f908152609d602052604090205460ff1661163e5760405162461bcd60e51b815260040161061690613cae565b5f5b89811015611748575f60a35f8d8d8581811061165e5761165e613c6e565b90506020020160208101906116739190613698565b6001600160a01b03166001600160a01b031681526020019081526020015f2090508787838181106116a6576116a6613c6e565b60200291909101356005830155508383838181106116c6576116c6613c6e565b90506020020160208101906116db9190613b21565b60048201805461ffff191661ffff9290921691909117905589898381811061170557611705613c6e565b602002919091013560068301555085858381811061172557611725613c6e565b9050602002013581600b018190555050808061174090613c96565b915050611640565b5061175260018055565b50505050505050505050565b611766612c89565b335f908152609d602052604090205460ff166117945760405162461bcd60e51b815260040161061690613cae565b5f5b89811015611748576117cd8b8b838181106117b3576117b3613c6e565b90506020020160208101906117c89190613698565b612d7e565b611902576118008b8b838181106117e6576117e6613c6e565b90506020020160208101906117fb9190613698565b612de4565b5f60a35f8d8d8581811061181657611816613c6e565b905060200201602081019061182b9190613698565b6001600160a01b03166001600160a01b031681526020019081526020015f20905061187b8a8a8481811061186157611861613c6e565b905060200201358260030154612d7390919063ffffffff16565b600382015585858381811061189257611892613c6e565b60200291909101356005830155508383838181106118b2576118b2613c6e565b90506020020160208101906118c79190613b21565b60048201805461ffff191661ffff929092169190911790558787838181106118f1576118f1613c6e565b905060200201358160060181905550505b8061190c81613c96565b915050611796565b61191c612c89565b609a54611934906001600160a01b0316333085612e40565b5f611947612710610716856101f4612cf4565b609a54909150611963906001600160a01b031661dead83612d0a565b609a5461197e906001600160a01b0316836107538685612ce2565b604080518481524260208201526001600160a01b038416917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568910161078b565b6119c6612c89565b335f908152609d602052604090205460ff166119f45760405162461bcd60e51b815260040161061690613cae565b6001600160a01b0382165f90815260a0602052604090205460ff1615611a545760405162461bcd60e51b8152602060048201526015602482015274155cd95c881a5cc8125b88109b1858dac8131a5cdd605a1b6044820152606401610616565b816001600160a01b0316816001600160a01b031614611ac2576001600160a01b0382165f90815260a1602052604090205460ff16611ac25760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b6044820152606401610616565b6001600160a01b0382165f90815260a36020526040902060030154831115611b235760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610616565b6001600160a01b0382165f90815260a36020526040902060030154611b489084612ce2565b6001600160a01b0383165f90815260a36020526040812060030191909155611b78612710610716866101f4612cf4565b609a54909150611b94906001600160a01b031661dead83612d0a565b609a54611baf906001600160a01b0316836107538785612ce2565b604080518581524260208201526001600160a01b038416917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568910160405180910390a250611bfc60018055565b505050565b611c09612e7e565b611c125f612ed8565b565b611c71604051806101800160405280606081526020015f81526020015f81526020015f81526020015f61ffff1681526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6001600160a01b0382165f90815260a360209081526040808320815181546101a0948102820185019093526101808101838152909491938593919285929185015b82821015611d40575f8481526020908190206040805161012081018252600986029092018054835260018082015461ffff16848601526002820154928401929092526003810154606084015260048101546080840152600581015460ff1660a0840152600681015460c0840152600781015460e0840152600801546101008301529083529092019101611cb2565b50505090825250600182015460208201526002820154604082015260038201546060820152600482015461ffff166080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009820154610120820152600a820154610140820152600b909101546101609091015292915050565b609a546040516370a0823160e01b815261dead60048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611e0d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e319190613c57565b905090565b5f54610100900460ff1615808015611e5457505f54600160ff909116105b80611e6d5750303b158015611e6d57505f5460ff166001145b611ed05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610616565b5f805460ff191660011790558015611ef1575f805461ff0019166101001790555b335f908152609d602090815260408083208054600160ff19918216811790925573ef044e831740a4675d803566c8a0e7e8800da30b85527f840deb29f75d49abe1b92379bc9df4a6d22f82c17f2cc660b0fd498fe881b4f980549091169091179055609b80547373ab8911578f757588e287f2f2d0953ee88c8b356001600160a01b031991821617909155609a805473d3c304697f63b279cd314f92c19cdbe5e5b1631a908316179055609780547310ed43c718714eb63d5aa57b78b54704e256024e921682179055815163c45a015560e01b81529151909263c45a015592600481810193918290030181865afa158015611fee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120129190613ce7565b9050806001600160a01b031663e6a4390573d3c304697f63b279cd314f92c19cdbe5e5b1631a60975f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612088573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120ac9190613ce7565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156120f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121199190613ce7565b609880546001600160a01b0319166001600160a01b03928316179055609754604080516315ab88c960e31b815290518484169363e6a43905937355d398326f99059ff775485246999027b31979559391169163ad5c4648916004808201926020929091908290030181865afa158015612194573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121b89190613ce7565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015612201573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122259190613ce7565b60995f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506040518060a00160405280600161ffff168152602001601460ff168152602001681b1ae4d6e2ef5000008152602001681b1ae4d6e2ef5000008152602001683635c9adc5dea00000815250609e5f600161ffff1681526020019081526020015f205f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548160ff021916908360ff1602179055506040820151816001015560608201518160020155608082015181600301559050506040518060a00160405280600261ffff168152602001601960ff168152602001683635c9adc5dea000008152602001683635c9adc5dea00000815260200168878678326eac900000815250609e5f600261ffff1681526020019081526020015f205f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548160ff021916908360ff1602179055506040820151816001015560608201518160020155608082015181600301559050506040518060a00160405280600361ffff168152602001601960ff16815260200169010f0cf064dd59200000815260200169010f0cf064dd5920000081526020016902a5a058fc295ed00000815250609e5f600361ffff1681526020019081526020015f205f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548160ff021916908360ff1602179055506040820151816001015560608201518160020155608082015181600301559050506040518060a00160405280600461ffff168152602001601e60ff16815260200169021e19e0c9bab2400000815260200169021e19e0c9bab2400000815260200169065a4da25d3016c00000815250609e5f600461ffff1681526020019081526020015f205f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548160ff021916908360ff1602179055506040820151816001015560608201518160020155608082015181600301559050506040518060a00160405280600561ffff168152602001601e60ff168152602001690a968163f0a57b4000008152602001690a968163f0a57b4000008152602001691fc3842bd1f071c00000815250609e5f600561ffff1681526020019081526020015f205f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548160ff021916908360ff1602179055506040820151816001015560608201518160020155608082015181600301559050506040518060a00160405280600761ffff168152602001601460ff16815260200166038d7ea4c680008152602001680ad78ebc5ac62000008152602001691fc3842bd1f071c00000815250609e5f600761ffff1681526020019081526020015f205f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548160ff021916908360ff1602179055506040820151816001015560608201518160020155608082015181600301559050506101f4609c819055506126ef612f29565b6126f7612f57565b5080156109c3575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b609a546040516370a0823160e01b815273a27da34682a1f3bba294f9bef2f8f6f9aa9b94ed60048201525f91611e31916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561279f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127c39190613c57565b609a546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612809573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061282d9190613c57565b90612d73565b335f908152609d602052604090205460ff166128615760405162461bcd60e51b815260040161061690613cae565b6001600160a01b03919091165f90815260a060205260409020805460ff1916911515919091179055565b5f805f805f6128986107a1565b93509350935093505f831180156128ae57505f81115b6128ed5760405162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b6044820152606401610616565b5f61290a670de0b6b3a76400006129048786612cf4565b90612cf4565b90505f6129178584612cf4565b90506129238282612cff565b965050505050505090565b612936612c89565b609b54604051633bb1db8160e21b81526001600160a01b0384811660048301529091169063eec76e0490602401602060405180830381865afa15801561297e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129a29190613d02565b6129e25760405162461bcd60e51b81526020600482015260116024820152701b9bdd08189a5b99081c9959995c9c985b607a1b6044820152606401610616565b6129eb82612d7e565b6129f8576129f882612de4565b60a28054905f612a0783613c96565b909155505061ffff81165f908152609e6020526040812090612a2761288b565b90505f612a4d82610716670de0b6b3a76400008660010154612cf490919063ffffffff16565b90505f612a62612710610716846101f4612cf4565b609a54909150612a7d906001600160a01b0316333085612e40565b609a54612a96906001600160a01b031661dead83612d0a565b60a2546002850154600386015460408051338152602081019490945261ffff89169084015260608301919091526080820184905260a08201526001600160a01b038716907f12b6b50ba4e45a8ef3e541e3794d8e9d92fff99bfabe2a50b083aa142b098b339060c00160405180910390a25050505061079d60018055565b335f908152609d602052604090205460ff16612b425760405162461bcd60e51b815260040161061690613cae565b6001600160a01b03919091165f90815260a160205260409020805460ff1916911515919091179055565b5f612b7561288b565b90505f5b8681101561125a57612bf1888883818110612b9657612b96613c6e565b9050602002016020810190612bab9190613698565b878784818110612bbd57612bbd613c6e565b90506020020135868685818110612bd657612bd6613c6e565b9050602002016020810190612beb9190613b21565b85612f85565b80612bfb81613c96565b915050612b79565b5f612c0d82612d7e565b92915050565b612c1b612e7e565b6001600160a01b038116612c805760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610616565b6109c381612ed8565b600260015403612cdb5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610616565b6002600155565b5f612ced8284613d1d565b9392505050565b5f612ced8284613d30565b5f612ced8284613d47565b6040516001600160a01b038316602482015260448101829052611bfc90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261335a565b60018055565b5f612ced8284613d66565b5f805b60a454811015612ddc57826001600160a01b031660a48281548110612da857612da8613c6e565b5f918252602090912001546001600160a01b031603612dca5750600192915050565b80612dd481613c96565b915050612d81565b505f92915050565b612ded81612d7e565b6109c35760a480546001810182555f919091527fe434dc35da084cf8d7e8186688ea2dacb53db7003d427af3abf351bd9d0a4e8d0180546001600160a01b0383166001600160a01b031990911617905550565b6040516001600160a01b0380851660248301528316604482015260648101829052612e789085906323b872dd60e01b90608401612d36565b50505050565b6065546001600160a01b03163314611c125760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610616565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16612f4f5760405162461bcd60e51b815260040161061690613d79565b611c1261342d565b5f54610100900460ff16612f7d5760405162461bcd60e51b815260040161061690613d79565b611c12613453565b6001600160a01b0384165f90815260a3602052604081208054909103612fab5750612e78565b805481905f908190612fbf90600190613d1d565b90505b5f819050838181548110612fd857612fd8613c6e565b905f5260205f209060090201600401545f03612ff45750613348565b5f84828154811061300757613007613c6e565b905f5260205f209060090201600401548911156130475784828154811061303057613030613c6e565b905f5260205f20906009020160040154905061304a565b50875b805f0361305857505061125a565b5f61306f8861071684670de0b6b3a7640000612cf4565b60038801549091506130819082612d73565b6003880155600b8701546130959083612d73565b600a8801556130a48582612d73565b94506130bc82878581548110610b3c57610b3c613c6e565b8684815481106130ce576130ce613c6e565b905f5260205f209060090201600401819055506130f782878581548110610b9557610b95613c6e565b86848154811061310957613109613c6e565b905f5260205f2090600902016006018190555061313281878581548110610bee57610bee613c6e565b86848154811061314457613144613c6e565b905f5260205f20906009020160070181905550818760020154111561317c5760028701546131729083612ce2565b6002880155613183565b5f60028801555b8960a55411156131a25760a55461319a9083612ce2565b60a5556131a7565b5f60a5555b8583815481106131b9576131b9613c6e565b905f5260205f209060090201600401545f0361326f578583815481106131e1576131e1613c6e565b905f5260205f209060090201600201548760010154111561321b57613211868481548110610cff57610cff613c6e565b6001880155613222565b5f60018801555b85838154811061323457613234613c6e565b905f5260205f2090600902016002015460a654111561326a57613262868481548110610d7357610d73613c6e565b60a65561326f565b5f60a6555b8a6001600160a01b03167f7bb2bbaf5335b45fee4cb4cea99ef0ee39a1d55fab618944851d77a09760ba1d8785815481106132ac576132ac613c6e565b5f918252602091829020600990910201546040805191825291810186905290810184905261ffff8c16606082015242608082015260a00160405180910390a2604080518b81526020810187905261ffff8b168183015242606082015290516001600160a01b038d16917f2dcf8c4b4d2ac5e3370fcc771637d6ca9dab28fb921a5e87c130a59a7515166c919081900360800190a250505061125a565b8061335281613dc4565b915050612fc2565b5f6133ae826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166134829092919063ffffffff16565b905080515f14806133ce5750808060200190518101906133ce9190613d02565b611bfc5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610616565b5f54610100900460ff16612d6d5760405162461bcd60e51b815260040161061690613d79565b5f54610100900460ff166134795760405162461bcd60e51b815260040161061690613d79565b611c1233612ed8565b606061349084845f85613498565b949350505050565b6060824710156134f95760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610616565b5f80866001600160a01b031685876040516135149190613dfb565b5f6040518083038185875af1925050503d805f811461354e576040519150601f19603f3d011682016040523d82523d5f602084013e613553565b606091505b50915091506135648783838761356f565b979650505050505050565b606083156135dd5782515f036135d6576001600160a01b0385163b6135d65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610616565b5081613490565b61349083838151156135f25781518083602001fd5b8060405162461bcd60e51b81526004016106169190613e16565b6040518061012001604052805f81526020015f61ffff1681526020015f81526020015f81526020015f81526020015f60ff1681526020015f81526020015f81526020015f81525090565b6001600160a01b03811681146109c3575f80fd5b5f806040838503121561367b575f80fd5b82359150602083013561368d81613656565b809150509250929050565b5f602082840312156136a8575f80fd5b8135612ced81613656565b5f8083601f8401126136c3575f80fd5b50813567ffffffffffffffff8111156136da575f80fd5b6020830191508360208260051b85010111156136f4575f80fd5b9250929050565b5f805f806040858703121561370e575f80fd5b843567ffffffffffffffff80821115613725575f80fd5b613731888389016136b3565b90965094506020870135915080821115613749575f80fd5b50613756878288016136b3565b95989497509550505050565b5f805f805f805f806080898b031215613779575f80fd5b883567ffffffffffffffff80821115613790575f80fd5b61379c8c838d016136b3565b909a50985060208b01359150808211156137b4575f80fd5b6137c08c838d016136b3565b909850965060408b01359150808211156137d8575f80fd5b6137e48c838d016136b3565b909650945060608b01359150808211156137fc575f80fd5b506138098b828c016136b3565b999c989b5096995094979396929594505050565b80151581146109c3575f80fd5b5f806040838503121561383b575f80fd5b823561384681613656565b9150602083013561368d8161381d565b8051825260208082015161ffff169083015260408082015190830152606080820151908301526080808201519083015260a08082015160ff169083015260c0808201519083015260e0808201519083015261010090810151908201526101200190565b602080825282518282018190525f9190848201906040850190845b818110156114fb576138e7838551613856565b9385019392506001016138d4565b5f805f805f805f805f8060a08b8d03121561390e575f80fd5b8a3567ffffffffffffffff80821115613925575f80fd5b6139318e838f016136b3565b909c509a5060208d0135915080821115613949575f80fd5b6139558e838f016136b3565b909a50985060408d013591508082111561396d575f80fd5b6139798e838f016136b3565b909850965060608d0135915080821115613991575f80fd5b61399d8e838f016136b3565b909650945060808d01359150808211156139b5575f80fd5b506139c28d828e016136b3565b915080935050809150509295989b9194979a5092959850565b5f805f606084860312156139ed575f80fd5b8335925060208401356139ff81613656565b91506040840135613a0f81613656565b809150509250925092565b5f8151808452602080850194508084015f5b83811015613a4d57613a3f878351613856565b965090820190600101613a2c565b509495945050505050565b602081525f8251610180806020850152613a766101a0850183613a1a565b91506020850151604085015260408501516060850152606085015160808501526080850151613aab60a086018261ffff169052565b5060a085015160c08581019190915285015160e08086019190915285015161010080860191909152850151610120808601919091528501516101408086019190915285015161016080860191909152909401519390920192909252919050565b803561ffff81168114613b1c575f80fd5b919050565b5f60208284031215613b31575f80fd5b612ced82613b0b565b5f8060408385031215613b4b575f80fd5b8235613b5681613656565b9150613b6460208401613b0b565b90509250929050565b5f805f805f8060608789031215613b82575f80fd5b863567ffffffffffffffff80821115613b99575f80fd5b613ba58a838b016136b3565b90985096506020890135915080821115613bbd575f80fd5b613bc98a838b016136b3565b90965094506040890135915080821115613be1575f80fd5b50613bee89828a016136b3565b979a9699509497509295939492505050565b80516001600160701b0381168114613b1c575f80fd5b5f805f60608486031215613c28575f80fd5b613c3184613c00565b9250613c3f60208501613c00565b9150604084015163ffffffff81168114613a0f575f80fd5b5f60208284031215613c67575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201613ca757613ca7613c82565b5060010190565b6020808252600b908201526a1b9bdd08185b1b1bddd95960aa1b604082015260600190565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215613cf7575f80fd5b8151612ced81613656565b5f60208284031215613d12575f80fd5b8151612ced8161381d565b81810381811115612c0d57612c0d613c82565b8082028115828204841417612c0d57612c0d613c82565b5f82613d6157634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115612c0d57612c0d613c82565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f81613dd257613dd2613c82565b505f190190565b5f5b83811015613df3578181015183820152602001613ddb565b50505f910152565b5f8251613e0c818460208701613dd9565b9190910192915050565b602081525f8251806020840152613e34816040850160208701613dd9565b601f01601f1916919091016040019291505056fea2646970667358221220a1ae209788a5864ffd0754571eedcc46d47a60cfe96903d65a75493390b03b8364736f6c63430008150033