0 txs
4 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)
releaseUserTest
nonpayablefunction releaseUserTest(address user, uint256 releaseValue, uint16 releaseType)
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
0x608060405234801561000f575f80fd5b5061422e8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610228575f3560e01c806371bdfb941161012a578063cdd603ab116100b4578063dda0248211610079578063dda0248214610562578063eeeccb9c14610575578063f2b84e6b14610588578063f2fde38b1461059b578063fcb6f087146105ae575f80fd5b8063cdd603ab146104d8578063d2efcd8514610513578063d368111414610526578063d7c4fbe31461052f578063db3c90151461055a575f80fd5b80638da5cb5b116100fa5780638da5cb5b146104445780638fef992614610469578063a48243f61461047c578063ab5aebca14610484578063c64f4da1146104d0575f80fd5b806371bdfb941461040c57806373f425611461042c5780638129fc1c14610434578063882546441461043c575f80fd5b8063426c7677116101b657806363dcfd991161017b57806363dcfd99146103a05780636b1c1b8f146103b35780636cc9eda3146103c65780636d67dcbd146103d9578063715018a614610404575f80fd5b8063426c76771461031c5780634b0bddd21461034757806351096b021461035a57806352b7ba071461037a5780635f7476ed1461038d575f80fd5b806321923bde116101fc57806321923bde1461029857806325af55a2146102da5780632b3ba681146102ed5780632ba66854146102f6578063357f477714610309575f80fd5b8062f714ce1461022c57806308f48078146102415780630902f1ac1461025d57806309c5dcd714610285575b5f80fd5b61023f61023a3660046139df565b6105d9565b005b61024a6101f481565b6040519081526020015b60405180910390f35b6102656107bf565b604080519485526020850193909352918301526060820152608001610254565b61023f610293366004613a23565b6108e5565b6102c76102a6366004613a5e565b6001600160a01b03165f90815260a3602052604090206004015461ffff1690565b60405161ffff9091168152602001610254565b61023f6102e8366004613a5e565b610930565b61024a61271081565b61023f610304366004613ac1565b610a2f565b61023f610317366004613b28565b610f58565b61024a61032a366004613a5e565b6001600160a01b03165f90815260a3602052604090206001015490565b61023f610355366004613bf0565b6112cd565b61036d610368366004613a5e565b611359565b6040516102549190613c7f565b61023f610388366004613b28565b611570565b61023f61039b366004613cbb565b611671565b61023f6103ae366004613cbb565b6117c7565b61023f6103c13660046139df565b61197d565b61023f6103d4366004613da1565b611a27565b61024a6103e7366004613a5e565b6001600160a01b03165f90815260a3602052604090206002015490565b61023f611c6a565b61041f61041a366004613a5e565b611c7d565b6040516102549190613e1e565b61024a611e2e565b61023f611e9f565b61024a6127a7565b6065546001600160a01b03165b6040516001600160a01b039091168152602001610254565b61023f610477366004613bf0565b61289b565b60a55461024a565b6104b9610492366004613ed1565b61ffff165f908152609e602052604090206001810154905490916201000090910460ff1690565b6040805192835260ff909116602083015201610254565b61024a6128f3565b6105036104e6366004613a5e565b6001600160a01b03165f90815260a0602052604090205460ff1690565b6040519015158152602001610254565b61023f610521366004613eea565b612996565b61045161dead81565b61050361053d366004613a5e565b6001600160a01b03165f90815260a1602052604090205460ff1690565b60a65461024a565b61023f610570366004613bf0565b612e8f565b61023f610583366004613f1d565b612ee7565b610503610596366004613a5e565b612f7e565b61023f6105a9366004613a5e565b612f8e565b61024a6105bc366004613a5e565b6001600160a01b03165f90815260a3602052604090206003015490565b6105e1613004565b335f90815260a0602052604090205460ff161561063d5760405162461bcd60e51b8152602060048201526015602482015274155cd95c881a5cc8125b88109b1858dac8131a5cdd605a1b60448201526064015b60405180910390fd5b6001600160a01b038116331461069957335f90815260a1602052604090205460ff166106995760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b6044820152606401610634565b335f90815260a360205260409020600301548211156106f15760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610634565b335f90815260a3602052604090206003015461070d908361305d565b335f90815260a3602052604081206003019190915561073a612710610734856101f461306f565b9061307a565b609a54909150610756906001600160a01b031661dead83613085565b609a54610776906001600160a01b031683610771868561305d565b613085565b6040805184815242602082015233917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56891015b60405180910390a2506107bb60018055565b5050565b5f805f805f8060985f9054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610815573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108399190613fc6565b506001600160701b031691506001600160701b031691505f8060995f9054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156108a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c69190613fc6565b5094985092965050506001600160701b03908116935016905090919293565b335f908152609d602052604090205460ff166109135760405162461bcd60e51b815260040161063490614007565b5f61091c6128f3565b905061092a848484846130ee565b50505050565b610938613004565b73d3c304697f63b279cd314f92c19cdbe5e5b16319196001600160a01b038216016109965760405162461bcd60e51b815260206004820152600e60248201526d63616e206e6f742062792067706360901b6044820152606401610634565b6040516370a0823160e01b815230600482015281905f906001600160a01b038316906370a0823190602401602060405180830381865afa1580156109dc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a00919061402c565b9050610a218273ef044e831740a4675d803566c8a0e7e8800da30b83613085565b5050610a2c60018055565b50565b5f610a386128f3565b90505f5b84811015610f50575f60a35f888885818110610a5a57610a5a614043565b9050602002016020810190610a6f9190613a5e565b6001600160a01b0316815260208101919091526040015f90812091508190868685818110610a9f57610a9f614043565b9050602002013590505f805b8354811015610ebe57838181548110610ac657610ac6614043565b905f5260205f209060090201600401545f0315610eac575f848281548110610af057610af0614043565b905f5260205f20906009020160040154841115610b4557848281548110610b1957610b19614043565b905f5260205f209060090201600401549050610b3e818561305d90919063ffffffff16565b9350610b48565b50825b805f03610b555750610ebe565b5f610b6c8961073484670de0b6b3a764000061306f565b6003880154909150610b7e90826134c3565b6003880155610b8d84826134c3565b9350610bc382878581548110610ba557610ba5614043565b905f5260205f2090600902016004015461305d90919063ffffffff16565b868481548110610bd557610bd5614043565b905f5260205f20906009020160040181905550610c1c82878581548110610bfe57610bfe614043565b905f5260205f209060090201600601546134c390919063ffffffff16565b868481548110610c2e57610c2e614043565b905f5260205f20906009020160060181905550610c7581878581548110610c5757610c57614043565b905f5260205f209060090201600701546134c390919063ffffffff16565b868481548110610c8757610c87614043565b905f5260205f209060090201600701819055508187600201541115610cbf576002870154610cb5908361305d565b6002880155610cc6565b5f60028801555b600b870154610cd590866134c3565b600a88015560a554851015610cf95760a554610cf1908361305d565b60a555610cfe565b5f60a5555b858381548110610d1057610d10614043565b905f5260205f209060090201600401545f03610e0a57858381548110610d3857610d38614043565b905f5260205f2090600902016002015487600101541115610d9557610d8b868481548110610d6857610d68614043565b905f5260205f20906009020160020154886001015461305d90919063ffffffff16565b6001880155610d9c565b5f60018801555b858381548110610dae57610dae614043565b905f5260205f2090600902016002015460a6541115610e0557610dfd868481548110610ddc57610ddc614043565b905f5260205f2090600902016002015460a65461305d90919063ffffffff16565b60a655610e0a565b5f60a6555b8c8c89818110610e1c57610e1c614043565b9050602002016020810190610e319190613a5e565b6001600160a01b03167f7bb2bbaf5335b45fee4cb4cea99ef0ee39a1d55fab618944851d77a09760ba1d878581548110610e6d57610e6d614043565b5f91825260209182902060099091020154604080519182529181018690529081018490526001606082015242608082015260a00160405180910390a250505b80610eb68161406b565b915050610aab565b50898986818110610ed157610ed1614043565b9050602002016020810190610ee69190613a5e565b604080518481526020810184905260018183015242606082015290516001600160a01b0392909216917f2dcf8c4b4d2ac5e3370fcc771637d6ca9dab28fb921a5e87c130a59a7515166c9181900360800190a2505050508080610f489061406b565b915050610a3c565b505050505050565b610f60613004565b335f908152609d602052604090205460ff16610f8e5760405162461bcd60e51b815260040161063490614007565b5f5b858110156112b9575f609e5f878785818110610fae57610fae614043565b9050602002016020810190610fc39190613ed1565b61ffff908116825260208083019390935260409182015f908120835160a081018552815493841681526201000090930460ff169483019490945260018401549282019290925260028301546060820152600390920154608083015290915060a3818c8c8681811061103657611036614043565b905060200201602081019061104b9190613a5e565b6001600160a01b03166001600160a01b031681526020019081526020015f209050805f016040518061012001604052808b8b8781811061108d5761108d614043565b9050602002013581526020018989878181106110ab576110ab614043565b90506020020160208101906110c09190613ed1565b61ffff16815260200184606001518152602001846080015181526020018787878181106110ef576110ef614043565b905060200201358152602001846020015160ff16815260200161113788888881811061111d5761111d614043565b90506020020135866080015161305d90919063ffffffff16565b81525f602080830182905242604093840152845460018082018755958352918190208451600990930201918255830151938101805461ffff191661ffff909516949094179093558101516002830155606081015160038301556080810151600483015560a081015160058301805460ff191660ff90921691909117905560c0810151600683015560e0810151600783015561010001516008909101556112028585858181106111e8576111e8614043565b9050602002013582600201546134c390919063ffffffff16565b60028201556060820151600182015461121a916134c3565b6001820155606082015160a654611230916134c3565b60a65561126085858581811061124857611248614043565b9050602002013560a5546134c390919063ffffffff16565b60a55588888481811061127557611275614043565b9050602002013560a25410156112a45788888481811061129757611297614043565b602002919091013560a255505b505080806112b19061406b565b915050610f90565b506112c360018055565b5050505050505050565b335f908152609d602052604090205460ff166112fb5760405162461bcd60e51b815260040161063490614007565b6001600160a01b0382165f818152609d6020908152604091829020805460ff191685151590811790915591519182527f55a5194bc0174fcaf12b2978bef43911466bf63b34db8d1dd1a0d5dcd5c41bea910160405180910390a25050565b6001600160a01b0381165f90815260a3602052604081208054606092829190036113b657604080515f80825260208201909252906113ad565b61139a613981565b8152602001906001900390816113925790505b50949350505050565b5f805b825481101561140b575f8382815481106113d5576113d5614043565b905f5260205f2090600902016004015411156113f957816113f58161406b565b9250505b806114038161406b565b9150506113b9565b505f8167ffffffffffffffff81111561142657611426614083565b60405190808252806020026020018201604052801561145f57816020015b61144c613981565b8152602001906001900390816114445790505b5090505f805b8454811015611564575f85828154811061148157611481614043565b905f5260205f209060090201600401541115611552578481815481106114a9576114a9614043565b5f9182526020918290206040805161012081018252600990930290910180548352600181015461ffff16938301939093526002830154908201526003820154606082015260048201546080820152600582015460ff1660a0820152600682015460c0820152600782015460e0820152600890910154610100820152835184908490811061153857611538614043565b6020026020010181905250818061154e9061406b565b9250505b8061155c8161406b565b915050611465565b50909695505050505050565b611578613004565b335f908152609d602052604090205460ff166115a65760405162461bcd60e51b815260040161063490614007565b5f5b878110156112b9575f60a35f8b8b858181106115c6576115c6614043565b90506020020160208101906115db9190613a5e565b6001600160a01b03166001600160a01b031681526020019081526020015f20905085858381811061160e5761160e614043565b602002919091013560088301555087878381811061162e5761162e614043565b602002919091013560098301555083838381811061164e5761164e614043565b9050602002013581600a01819055505080806116699061406b565b9150506115a8565b611679613004565b335f908152609d602052604090205460ff166116a75760405162461bcd60e51b815260040161063490614007565b5f5b898110156117b1575f60a35f8d8d858181106116c7576116c7614043565b90506020020160208101906116dc9190613a5e565b6001600160a01b03166001600160a01b031681526020019081526020015f20905087878381811061170f5761170f614043565b602002919091013560058301555083838381811061172f5761172f614043565b90506020020160208101906117449190613ed1565b60048201805461ffff191661ffff9290921691909117905589898381811061176e5761176e614043565b602002919091013560068301555085858381811061178e5761178e614043565b9050602002013581600b01819055505080806117a99061406b565b9150506116a9565b506117bb60018055565b50505050505050505050565b6117cf613004565b335f908152609d602052604090205460ff166117fd5760405162461bcd60e51b815260040161063490614007565b5f5b898110156117b1576118368b8b8381811061181c5761181c614043565b90506020020160208101906118319190613a5e565b6134ce565b61196b576118698b8b8381811061184f5761184f614043565b90506020020160208101906118649190613a5e565b613534565b5f60a35f8d8d8581811061187f5761187f614043565b90506020020160208101906118949190613a5e565b6001600160a01b03166001600160a01b031681526020019081526020015f2090506118e48a8a848181106118ca576118ca614043565b9050602002013582600301546134c390919063ffffffff16565b60038201558585838181106118fb576118fb614043565b602002919091013560058301555083838381811061191b5761191b614043565b90506020020160208101906119309190613ed1565b60048201805461ffff191661ffff9290921691909117905587878381811061195a5761195a614043565b905060200201358160060181905550505b806119758161406b565b9150506117ff565b611985613004565b609a5461199d906001600160a01b0316333085613590565b5f6119b0612710610734856101f461306f565b609a549091506119cc906001600160a01b031661dead83613085565b609a546119e7906001600160a01b031683610771868561305d565b604080518481524260208201526001600160a01b038416917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56891016107a9565b611a2f613004565b335f908152609d602052604090205460ff16611a5d5760405162461bcd60e51b815260040161063490614007565b6001600160a01b0382165f90815260a0602052604090205460ff1615611abd5760405162461bcd60e51b8152602060048201526015602482015274155cd95c881a5cc8125b88109b1858dac8131a5cdd605a1b6044820152606401610634565b816001600160a01b0316816001600160a01b031614611b2b576001600160a01b0382165f90815260a1602052604090205460ff16611b2b5760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b6044820152606401610634565b6001600160a01b0382165f90815260a36020526040902060030154831115611b8c5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610634565b6001600160a01b0382165f90815260a36020526040902060030154611bb1908461305d565b6001600160a01b0383165f90815260a36020526040812060030191909155611be1612710610734866101f461306f565b609a54909150611bfd906001600160a01b031661dead83613085565b609a54611c18906001600160a01b031683610771878561305d565b604080518581524260208201526001600160a01b038416917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568910160405180910390a250611c6560018055565b505050565b611c726135c8565b611c7b5f613622565b565b611cda604051806101800160405280606081526020015f81526020015f81526020015f81526020015f61ffff1681526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6001600160a01b0382165f90815260a360209081526040808320815181546101a0948102820185019093526101808101838152909491938593919285929185015b82821015611da9575f8481526020908190206040805161012081018252600986029092018054835260018082015461ffff16848601526002820154928401929092526003810154606084015260048101546080840152600581015460ff1660a0840152600681015460c0840152600781015460e0840152600801546101008301529083529092019101611d1b565b50505090825250600182015460208201526002820154604082015260038201546060820152600482015461ffff166080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009820154610120820152600a820154610140820152600b909101546101609091015292915050565b609a546040516370a0823160e01b815261dead60048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611e76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e9a919061402c565b905090565b5f54610100900460ff1615808015611ebd57505f54600160ff909116105b80611ed65750303b158015611ed657505f5460ff166001145b611f395760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610634565b5f805460ff191660011790558015611f5a575f805461ff0019166101001790555b335f908152609d602090815260408083208054600160ff19918216811790925573ef044e831740a4675d803566c8a0e7e8800da30b85527f840deb29f75d49abe1b92379bc9df4a6d22f82c17f2cc660b0fd498fe881b4f980549091169091179055609b80547373ab8911578f757588e287f2f2d0953ee88c8b356001600160a01b031991821617909155609a805473d3c304697f63b279cd314f92c19cdbe5e5b1631a908316179055609780547310ed43c718714eb63d5aa57b78b54704e256024e921682179055815163c45a015560e01b81529151909263c45a015592600481810193918290030181865afa158015612057573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061207b9190614097565b9050806001600160a01b031663e6a4390573d3c304697f63b279cd314f92c19cdbe5e5b1631a60975f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121159190614097565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561215e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121829190614097565b609880546001600160a01b0319166001600160a01b03928316179055609754604080516315ab88c960e31b815290518484169363e6a43905937355d398326f99059ff775485246999027b31979559391169163ad5c4648916004808201926020929091908290030181865afa1580156121fd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122219190614097565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561226a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061228e9190614097565b60995f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506040518060a00160405280600161ffff168152602001601460ff168152602001681b1ae4d6e2ef5000008152602001681b1ae4d6e2ef5000008152602001683635c9adc5dea00000815250609e5f600161ffff1681526020019081526020015f205f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548160ff021916908360ff1602179055506040820151816001015560608201518160020155608082015181600301559050506040518060a00160405280600261ffff168152602001601960ff168152602001683635c9adc5dea000008152602001683635c9adc5dea00000815260200168878678326eac900000815250609e5f600261ffff1681526020019081526020015f205f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548160ff021916908360ff1602179055506040820151816001015560608201518160020155608082015181600301559050506040518060a00160405280600361ffff168152602001601960ff16815260200169010f0cf064dd59200000815260200169010f0cf064dd5920000081526020016902a5a058fc295ed00000815250609e5f600361ffff1681526020019081526020015f205f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548160ff021916908360ff1602179055506040820151816001015560608201518160020155608082015181600301559050506040518060a00160405280600461ffff168152602001601e60ff16815260200169021e19e0c9bab2400000815260200169021e19e0c9bab2400000815260200169065a4da25d3016c00000815250609e5f600461ffff1681526020019081526020015f205f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548160ff021916908360ff1602179055506040820151816001015560608201518160020155608082015181600301559050506040518060a00160405280600561ffff168152602001601e60ff168152602001690a968163f0a57b4000008152602001690a968163f0a57b4000008152602001691fc3842bd1f071c00000815250609e5f600561ffff1681526020019081526020015f205f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548160ff021916908360ff1602179055506040820151816001015560608201518160020155608082015181600301559050506040518060a00160405280600761ffff168152602001601460ff16815260200166038d7ea4c68000815260200168056bc75e2d631000008152602001680ad78ebc5ac6200000815250609e5f600761ffff1681526020019081526020015f205f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548160ff021916908360ff1602179055506040820151816001015560608201518160020155608082015181600301559050506101f4609c81905550612757613673565b61275f6136a1565b508015610a2c575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b609a546040516370a0823160e01b815273a27da34682a1f3bba294f9bef2f8f6f9aa9b94ed60048201525f91611e9a916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612807573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061282b919061402c565b609a546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612871573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612895919061402c565b906134c3565b335f908152609d602052604090205460ff166128c95760405162461bcd60e51b815260040161063490614007565b6001600160a01b03919091165f90815260a060205260409020805460ff1916911515919091179055565b5f805f805f6129006107bf565b93509350935093505f8311801561291657505f81115b6129555760405162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b6044820152606401610634565b5f612972670de0b6b3a764000061296c878661306f565b9061306f565b90505f61297f858461306f565b905061298b828261307a565b965050505050505090565b61299e613004565b609b54604051633bb1db8160e21b81526001600160a01b0384811660048301529091169063eec76e0490602401602060405180830381865afa1580156129e6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a0a91906140b2565b612a4a5760405162461bcd60e51b81526020600482015260116024820152701b9bdd08189a5b99081c9959995c9c985b607a1b6044820152606401610634565b612a53826134ce565b612a6057612a6082613534565b60a28054905f612a6f8361406b565b909155505061ffff81165f908152609e6020526040812090612a8f6128f3565b90505f612ab582610734670de0b6b3a7640000866001015461306f90919063ffffffff16565b90505f612aca612710610734846101f461306f565b609a54909150612ae5906001600160a01b0316333085613590565b609a54612afe906001600160a01b031661dead83613085565b5f60a35f886001600160a01b03166001600160a01b031681526020019081526020015f209050805f0160405180610120016040528060a25481526020018861ffff168152602001876002015481526020018760030154815260200187600301548152602001875f0160029054906101000a900460ff1660ff1681526020015f81526020015f815260200142815250908060018154018082558091505060019003905f5260205f2090600902015f909190919091505f820151815f01556020820151816001015f6101000a81548161ffff021916908361ffff16021790555060408201518160020155606082015181600301556080820151816004015560a0820151816005015f6101000a81548160ff021916908360ff16021790555060c0820151816006015560e0820151816007015561010082015181600801555050612c56856003015482600201546134c390919063ffffffff16565b6002808301919091558501546001820154612c70916134c3565b6001808301919091558501546009820154612c8a916134c3565b600982015560038501546008820154612ca2916134c3565b6008820155600385015460a554612cb8916134c3565b60a555600285015460a654612ccc916134c3565b60a65560a2546002860154600387015460408051338152602081019490945261ffff8a169084015260608301919091526080820185905260a08201526001600160a01b038816907f12b6b50ba4e45a8ef3e541e3794d8e9d92fff99bfabe2a50b083aa142b098b339060c00160405180910390a2609b54604051633b0f0f2f60e01b81526001600160a01b0389811660048301525f921690633b0f0f2f90602401602060405180830381865afa158015612d88573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dac9190614097565b90505f609b5f9054906101000a90046001600160a01b03166001600160a01b031663f6d5660f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e239190614097565b90507373ab8911578f757588e287f2f2d0953ee88c8b356001600160a01b03821614801590612e50575060015b15612e7f57612e7f82612e78612710610734609c548c6001015461306f90919063ffffffff16565b5f896130ee565b505050505050506107bb60018055565b335f908152609d602052604090205460ff16612ebd5760405162461bcd60e51b815260040161063490614007565b6001600160a01b03919091165f90815260a160205260409020805460ff1916911515919091179055565b5f612ef06128f3565b90505f5b868110156112c357612f6c888883818110612f1157612f11614043565b9050602002016020810190612f269190613a5e565b878784818110612f3857612f38614043565b90506020020135868685818110612f5157612f51614043565b9050602002016020810190612f669190613ed1565b856130ee565b80612f768161406b565b915050612ef4565b5f612f88826134ce565b92915050565b612f966135c8565b6001600160a01b038116612ffb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610634565b610a2c81613622565b6002600154036130565760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610634565b6002600155565b5f61306882846140cd565b9392505050565b5f61306882846140e0565b5f61306882846140f7565b6040516001600160a01b038316602482015260448101829052611c6590849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526136cf565b60018055565b6001600160a01b0384165f90815260a3602052604081208054909103613114575061092a565b805481905f908190613128906001906140cd565b90505b5f81905083818154811061314157613141614043565b905f5260205f209060090201600401545f0361315d57506134b1565b5f84828154811061317057613170614043565b905f5260205f209060090201600401548911156131b05784828154811061319957613199614043565b905f5260205f2090600902016004015490506131b3565b50875b805f036131c15750506112c3565b5f6131d88861073484670de0b6b3a764000061306f565b60038801549091506131ea90826134c3565b6003880155600b8701546131fe90836134c3565b600a88015561320d85826134c3565b945061322582878581548110610ba557610ba5614043565b86848154811061323757613237614043565b905f5260205f2090600902016004018190555061326082878581548110610bfe57610bfe614043565b86848154811061327257613272614043565b905f5260205f2090600902016006018190555061329b81878581548110610c5757610c57614043565b8684815481106132ad576132ad614043565b905f5260205f2090600902016007018190555081876002015411156132e55760028701546132db908361305d565b60028801556132ec565b5f60028801555b8960a554111561330b5760a554613303908361305d565b60a555613310565b5f60a5555b85838154811061332257613322614043565b905f5260205f209060090201600401545f036133d85785838154811061334a5761334a614043565b905f5260205f20906009020160020154876001015411156133845761337a868481548110610d6857610d68614043565b600188015561338b565b5f60018801555b85838154811061339d5761339d614043565b905f5260205f2090600902016002015460a65411156133d3576133cb868481548110610ddc57610ddc614043565b60a6556133d8565b5f60a6555b8a6001600160a01b03167f7bb2bbaf5335b45fee4cb4cea99ef0ee39a1d55fab618944851d77a09760ba1d87858154811061341557613415614043565b5f918252602091829020600990910201546040805191825291810186905290810184905261ffff8c16606082015242608082015260a00160405180910390a2604080518b81526020810187905261ffff8b168183015242606082015290516001600160a01b038d16917f2dcf8c4b4d2ac5e3370fcc771637d6ca9dab28fb921a5e87c130a59a7515166c919081900360800190a25050506112c3565b806134bb81614116565b91505061312b565b5f613068828461412b565b5f805b60a45481101561352c57826001600160a01b031660a482815481106134f8576134f8614043565b5f918252602090912001546001600160a01b03160361351a5750600192915050565b806135248161406b565b9150506134d1565b505f92915050565b61353d816134ce565b610a2c5760a480546001810182555f919091527fe434dc35da084cf8d7e8186688ea2dacb53db7003d427af3abf351bd9d0a4e8d0180546001600160a01b0383166001600160a01b031990911617905550565b6040516001600160a01b038085166024830152831660448201526064810182905261092a9085906323b872dd60e01b906084016130b1565b6065546001600160a01b03163314611c7b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610634565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166136995760405162461bcd60e51b81526004016106349061413e565b611c7b6137a2565b5f54610100900460ff166136c75760405162461bcd60e51b81526004016106349061413e565b611c7b6137c8565b5f613723826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166137f79092919063ffffffff16565b905080515f148061374357508080602001905181019061374391906140b2565b611c655760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610634565b5f54610100900460ff166130e85760405162461bcd60e51b81526004016106349061413e565b5f54610100900460ff166137ee5760405162461bcd60e51b81526004016106349061413e565b611c7b33613622565b606061380584845f8561380d565b949350505050565b60608247101561386e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610634565b5f80866001600160a01b0316858760405161388991906141ab565b5f6040518083038185875af1925050503d805f81146138c3576040519150601f19603f3d011682016040523d82523d5f602084013e6138c8565b606091505b50915091506138d9878383876138e4565b979650505050505050565b606083156139525782515f0361394b576001600160a01b0385163b61394b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610634565b5081613805565b61380583838151156139675781518083602001fd5b8060405162461bcd60e51b815260040161063491906141c6565b6040518061012001604052805f81526020015f61ffff1681526020015f81526020015f81526020015f81526020015f60ff1681526020015f81526020015f81526020015f81525090565b6001600160a01b0381168114610a2c575f80fd5b5f80604083850312156139f0575f80fd5b823591506020830135613a02816139cb565b809150509250929050565b803561ffff81168114613a1e575f80fd5b919050565b5f805f60608486031215613a35575f80fd5b8335613a40816139cb565b925060208401359150613a5560408501613a0d565b90509250925092565b5f60208284031215613a6e575f80fd5b8135613068816139cb565b5f8083601f840112613a89575f80fd5b50813567ffffffffffffffff811115613aa0575f80fd5b6020830191508360208260051b8501011115613aba575f80fd5b9250929050565b5f805f8060408587031215613ad4575f80fd5b843567ffffffffffffffff80821115613aeb575f80fd5b613af788838901613a79565b90965094506020870135915080821115613b0f575f80fd5b50613b1c87828801613a79565b95989497509550505050565b5f805f805f805f806080898b031215613b3f575f80fd5b883567ffffffffffffffff80821115613b56575f80fd5b613b628c838d01613a79565b909a50985060208b0135915080821115613b7a575f80fd5b613b868c838d01613a79565b909850965060408b0135915080821115613b9e575f80fd5b613baa8c838d01613a79565b909650945060608b0135915080821115613bc2575f80fd5b50613bcf8b828c01613a79565b999c989b5096995094979396929594505050565b8015158114610a2c575f80fd5b5f8060408385031215613c01575f80fd5b8235613c0c816139cb565b91506020830135613a0281613be3565b8051825260208082015161ffff169083015260408082015190830152606080820151908301526080808201519083015260a08082015160ff169083015260c0808201519083015260e0808201519083015261010090810151908201526101200190565b602080825282518282018190525f9190848201906040850190845b8181101561156457613cad838551613c1c565b938501939250600101613c9a565b5f805f805f805f805f8060a08b8d031215613cd4575f80fd5b8a3567ffffffffffffffff80821115613ceb575f80fd5b613cf78e838f01613a79565b909c509a5060208d0135915080821115613d0f575f80fd5b613d1b8e838f01613a79565b909a50985060408d0135915080821115613d33575f80fd5b613d3f8e838f01613a79565b909850965060608d0135915080821115613d57575f80fd5b613d638e838f01613a79565b909650945060808d0135915080821115613d7b575f80fd5b50613d888d828e01613a79565b915080935050809150509295989b9194979a5092959850565b5f805f60608486031215613db3575f80fd5b833592506020840135613dc5816139cb565b91506040840135613dd5816139cb565b809150509250925092565b5f8151808452602080850194508084015f5b83811015613e1357613e05878351613c1c565b965090820190600101613df2565b509495945050505050565b602081525f8251610180806020850152613e3c6101a0850183613de0565b91506020850151604085015260408501516060850152606085015160808501526080850151613e7160a086018261ffff169052565b5060a085015160c08581019190915285015160e08086019190915285015161010080860191909152850151610120808601919091528501516101408086019190915285015161016080860191909152909401519390920192909252919050565b5f60208284031215613ee1575f80fd5b61306882613a0d565b5f8060408385031215613efb575f80fd5b8235613f06816139cb565b9150613f1460208401613a0d565b90509250929050565b5f805f805f8060608789031215613f32575f80fd5b863567ffffffffffffffff80821115613f49575f80fd5b613f558a838b01613a79565b90985096506020890135915080821115613f6d575f80fd5b613f798a838b01613a79565b90965094506040890135915080821115613f91575f80fd5b50613f9e89828a01613a79565b979a9699509497509295939492505050565b80516001600160701b0381168114613a1e575f80fd5b5f805f60608486031215613fd8575f80fd5b613fe184613fb0565b9250613fef60208501613fb0565b9150604084015163ffffffff81168114613dd5575f80fd5b6020808252600b908201526a1b9bdd08185b1b1bddd95960aa1b604082015260600190565b5f6020828403121561403c575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f6001820161407c5761407c614057565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b5f602082840312156140a7575f80fd5b8151613068816139cb565b5f602082840312156140c2575f80fd5b815161306881613be3565b81810381811115612f8857612f88614057565b8082028115828204841417612f8857612f88614057565b5f8261411157634e487b7160e01b5f52601260045260245ffd5b500490565b5f8161412457614124614057565b505f190190565b80820180821115612f8857612f88614057565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f5b838110156141a357818101518382015260200161418b565b50505f910152565b5f82516141bc818460208701614189565b9190910192915050565b602081525f82518060208401526141e4816040850160208701614189565b601f01601f1916919091016040019291505056fea26469706673582212200f84955017f70f25de40be09fb4c635c0c44976dd5004dcb18bc6bb10588f7a164736f6c63430008150033