0 txs
41k calls
constructor
No constructor.
functions
addressManager
viewfunction addressManager() view returns (address)
getPendingChainedSpeedMarketsSize
viewfunction getPendingChainedSpeedMarketsSize() view returns (uint256)
getPendingSpeedMarketsSize
viewfunction getPendingSpeedMarketsSize() view returns (uint256)
lastPauseTime
viewfunction lastPauseTime() view returns (uint256)
maxCreationDelay
viewfunction maxCreationDelay() view returns (uint64)
nominatedOwner
viewfunction nominatedOwner() view returns (address)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
pendingChainedSpeedMarkets
viewfunction pendingChainedSpeedMarkets(uint256) view returns (address user, bytes32 asset, uint64 timeFrame, uint256 strikePrice, uint256 strikePriceSlippage, address collateral, uint256 buyinAmount, address referrer, uint256 createdAt)
pendingSpeedMarkets
viewfunction pendingSpeedMarkets(uint256) view returns (address user, bytes32 asset, uint64 strikeTime, uint64 delta, uint256 strikePrice, uint256 strikePriceSlippage, uint8 direction, address collateral, uint256 buyinAmount, address referrer, uint256 skewImpact, uint256 createdAt)
whitelistedAddresses
viewfunction whitelistedAddresses(address) view returns (bool)
acceptOwnership
nonpayablefunction acceptOwnership()
addPendingChainedSpeedMarket
nonpayablefunction addPendingChainedSpeedMarket(tuple _params)
addPendingSpeedMarket
nonpayablefunction addPendingSpeedMarket(tuple _params)
addToWhitelist
nonpayablefunction addToWhitelist(address _whitelistAddress, bool _flag)
createChainedSpeedMarket
payablefunction createChainedSpeedMarket(tuple _chainedMarketParams, bytes[] _priceUpdateData) payable
createFromPendingChainedSpeedMarkets
payablefunction createFromPendingChainedSpeedMarkets(bytes[] _priceUpdateData) payable
createFromPendingSpeedMarkets
payablefunction createFromPendingSpeedMarkets(bytes[] _priceUpdateData) payable
createSpeedMarket
payablefunction createSpeedMarket(tuple _speedMarketParams, bytes[] _priceUpdateData) payable
initialize
nonpayablefunction initialize(address _owner, address _addressManager)
initNonReentrant
nonpayablefunction initNonReentrant()
nominateNewOwner
nonpayablefunction nominateNewOwner(address _owner)
setAddressManager
nonpayablefunction setAddressManager(address _addressManager)
setMaxCreationDelay
nonpayablefunction setMaxCreationDelay(uint64 _maxCreationDelay)
setOwner
nonpayablefunction setOwner(address _owner)
setPaused
nonpayablefunction setPaused(bool _paused)
transferOwnershipAtInit
nonpayablefunction transferOwnershipAtInit(address proxyAddress)
events
AddChainedSpeedMarket
event AddChainedSpeedMarket((address user, bytes32 asset, uint64 timeFrame, uint256 strikePrice, uint256 strikePriceSlippage, uint8[] directions, address collateral, uint256 buyinAmount, address referrer, uint256 createdAt) _pendingChainedSpeedMarket)
AddedIntoWhitelist
event AddedIntoWhitelist(address _whitelistAddress, bool _flag)
AddSpeedMarket
event AddSpeedMarket((address user, bytes32 asset, uint64 strikeTime, uint64 delta, uint256 strikePrice, uint256 strikePriceSlippage, uint8 direction, address collateral, uint256 buyinAmount, address referrer, uint256 skewImpact, uint256 createdAt) _pendingSpeedMarket)
CreateSpeedMarkets
event CreateSpeedMarkets(uint256 _pendingSize, uint8 _createdSize)
LogChainedError
event LogChainedError(string _errorMessage, (address user, bytes32 asset, uint64 timeFrame, uint256 strikePrice, uint256 strikePriceSlippage, uint8[] directions, address collateral, uint256 buyinAmount, address referrer, uint256 createdAt) _pendingChainedSpeedMarket)
LogChainedErrorData
event LogChainedErrorData(bytes _data, (address user, bytes32 asset, uint64 timeFrame, uint256 strikePrice, uint256 strikePriceSlippage, uint8[] directions, address collateral, uint256 buyinAmount, address referrer, uint256 createdAt) _pendingChainedSpeedMarket)
LogError
event LogError(string _errorMessage, (address user, bytes32 asset, uint64 strikeTime, uint64 delta, uint256 strikePrice, uint256 strikePriceSlippage, uint8 direction, address collateral, uint256 buyinAmount, address referrer, uint256 skewImpact, uint256 createdAt) _pendingSpeedMarket)
LogErrorData
event LogErrorData(bytes _data, (address user, bytes32 asset, uint64 strikeTime, uint64 delta, uint256 strikePrice, uint256 strikePriceSlippage, uint8 direction, address collateral, uint256 buyinAmount, address referrer, uint256 skewImpact, uint256 createdAt) _pendingSpeedMarket)
OwnerChanged
event OwnerChanged(address oldOwner, address newOwner)
OwnerNominated
event OwnerNominated(address newOwner)
PauseChanged
event PauseChanged(bool isPaused)
SetAddressManager
event SetAddressManager(address _addressManager)
SetMaxCreationDelay
event SetMaxCreationDelay(uint64 _maxCreationDelay)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b506138ad806100206000396000f3fe60806040526004361061019c5760003560e01c806353a47bb7116100ec5780638da5cb5b1161008a578063bc93233f11610064578063bc93233f14610502578063c3b83f5f14610522578063ebc7977214610542578063f6264e751461055757600080fd5b80638da5cb5b146104b357806391b4ded9146104d9578063ad043f2d146104ef57600080fd5b8063766f924a116100c6578063766f924a146103cc57806379ba5097146104095780638411f1831461041e5780638d2ccac7146104a057600080fd5b806353a47bb7146103725780635c975abb146103925780636032a027146103ac57600080fd5b80631936f21c116101595780632a789dc4116101335780632a789dc4146102f25780632e8eedd5146103075780633ab76e9f1461031a578063485cc9551461035257600080fd5b80631936f21c146102875780631c07d3c3146102a7578063214e72cb146102df57600080fd5b80630652b57a146101a157806306c933d8146101c357806313af4035146102085780631627540c1461022857806316c38b3c146102485780631929736114610268575b600080fd5b3480156101ad57600080fd5b506101c16101bc366004612c00565b610577565b005b3480156101cf57600080fd5b506101f36101de366004612c00565b60096020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561021457600080fd5b506101c1610223366004612c00565b6105d4565b34801561023457600080fd5b506101c1610243366004612c00565b61070d565b34801561025457600080fd5b506101c1610263366004612cea565b610763565b34801561027457600080fd5b506006545b6040519081526020016101ff565b34801561029357600080fd5b506101c16102a2366004612dee565b6107d9565b3480156102b357600080fd5b506102c76102c2366004612f83565b610b05565b6040516101ff9c9b9a9998979695949392919061322a565b6101c16102ed366004612cab565b610b93565b3480156102fe57600080fd5b50600754610279565b6101c1610315366004612f3d565b6111b8565b34801561032657600080fd5b5060085461033a906001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b34801561035e57600080fd5b506101c161036d366004612c3f565b6114dd565b34801561037e57600080fd5b5060015461033a906001600160a01b031681565b34801561039e57600080fd5b506003546101f39060ff1681565b3480156103b857600080fd5b506101c16103c7366004612f21565b6115bb565b3480156103d857600080fd5b506005546103f19061010090046001600160401b031681565b6040516001600160401b0390911681526020016101ff565b34801561041557600080fd5b506101c1611922565b34801561042a57600080fd5b5061043e610439366004612f83565b611a1f565b604080516001600160a01b039a8b16815260208101999099526001600160401b039097169688019690965260608701949094526080860192909252851660a085015260c08401529290921660e0820152610100810191909152610120016101ff565b6101c16104ae366004612e28565b611a95565b3480156104bf57600080fd5b5060005461033a906201000090046001600160a01b031681565b3480156104e557600080fd5b5061027960025481565b6101c16104fd366004612cab565b611de4565b34801561050e57600080fd5b506101c161051d366004612c77565b612327565b34801561052e57600080fd5b506101c161053d366004612c00565b6123a5565b34801561054e57600080fd5b506101c16124be565b34801561056357600080fd5b506101c1610572366004612f9b565b61251c565b61057f61257b565b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f954328d28753080b3c499697bde218fd8b53e924669801835383aa346e6940ee906020015b60405180910390a150565b6001600160a01b03811661062f5760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f7420626520300000000000000060448201526064015b60405180910390fd5b600154600160a01b900460ff161561069b5760405162461bcd60e51b815260206004820152602960248201527f416c726561647920696e697469616c697a65642c20757365206e6f6d696e617460448201526832a732bba7bbb732b960b91b6064820152608401610626565b6001805460ff60a01b1916600160a01b179055600080546001600160a01b03831662010000810262010000600160b01b03199092169190911782556040805192835260208301919091527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91016105c9565b61071561257b565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906020016105c9565b61076b61257b565b60035460ff161515811515141561077f5750565b6003805460ff191682151590811790915560ff161561079d57426002555b60035460405160ff909116151581527f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5906020016105c9565b50565b6001600460008282546107ec91906136ce565b909155505060045460035460ff16156108175760405162461bcd60e51b815260040161062690613401565b6000604051806101400160405280336001600160a01b03168152602001846000013581526020018460200160208101906108519190612f9b565b6001600160401b0316815260200184604001358152602001846060013581526020018480608001906108839190613687565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506020016108ca60c0860160a08701612c00565b6001600160a01b0316815260c085013560208201526040016108f3610100860160e08701612c00565b6001600160a01b039081168252426020928301526007805460018101825560009190915283517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688600a90920291820180546001600160a01b03191691909316178255838301517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68982015560408401517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68a8201805467ffffffffffffffff19166001600160401b0390921691909117905560608401517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68b82015560808401517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68c82015560a0840151805194955085949293610a54937fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68d9093019291019061292f565b5060c08201516006820180546001600160a01b039283166001600160a01b03199182161790915560e08401516007840155610100840151600884018054919093169116179055610120909101516009909101556040517f099eb78f69f1559bb54045718ce32bd1bcca14c366705ae70449b9ccf154623690610ad790839061365f565b60405180910390a1506004548114610b015760405162461bcd60e51b81526004016106269061345e565b5050565b60068181548110610b1557600080fd5b60009182526020909120600a909102018054600182015460028301546003840154600485015460058601546006870154600788015460088901546009909901546001600160a01b039889169a5096986001600160401b0380881699600160401b90980416979596949560ff851695610100909504851694909216918c565b600160046000828254610ba691906136ce565b909155505060045460035460ff1615610bd15760405162461bcd60e51b815260040161062690613401565b3360009081526009602052604090205460ff16610c005760405162461bcd60e51b815260040161062690613393565b600754610c0c57611192565b81610c295760405162461bcd60e51b8152600401610626906133ca565b600854604080516351cfd60960e11b815290516000926001600160a01b03169163a39fac129160048083019260c0929190829003018186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca69190612d3b565b9050610cb7816080015185856125f5565b60008160a0015190506000816001600160a01b031663a201b3076040518163ffffffff1660e01b815260040160206040518083038186803b158015610cfb57600080fd5b505afa158015610d0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d339190612fb7565b90506000805b60075460ff8216101561114057600060078260ff1681548110610d6c57634e487b7160e01b600052603260045260246000fd5b60009182526020918290206040805161014081018252600a90930290910180546001600160a01b0316835260018101548385015260028101546001600160401b03168383015260038101546060840152600481015460808401526005810180548351818702810187019094528084529394919360a086019392830182828015610e5257602002820191906000526020600020906000905b82829054906101000a900460ff166001811115610e3057634e487b7160e01b600052602160045260246000fd5b815260206001928301818104948501949093039092029101808411610e035790505b505050918352505060068201546001600160a01b0390811660208301526007830154604083015260088301541660608201526009909101546080909101526005546101208201519192504291610eb69161010090046001600160401b0316906136ce565b11610ec1575061112e565b6000610edc87836020015187856060015186608001516126d4565b60085460405163bf40fac160e01b8152602060048201526016602482015275436861696e656453706565644d61726b657473414d4d60501b60448201529192506001600160a01b03169063bf40fac19060640160206040518083038186803b158015610f4757600080fd5b505afa158015610f5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7f9190612c23565b6001600160a01b0316630bfd50ce60405180610100016040528085600001516001600160a01b031681526020018560200151815260200185604001516001600160401b031681526020018481526020018560a0015181526020018560c001516001600160a01b031681526020018560e0015181526020018561010001516001600160a01b03168152506040518263ffffffff1660e01b81526004016110249190613495565b600060405180830381600087803b15801561103e57600080fd5b505af192505050801561104f575060015b61111d5761105b6137ac565b806308c379a014156110ba57506110706137c4565b8061107b57506110bc565b7fe84e33c8088d8797d0968617fc974690124648a9fe6f643c976dbaa434e86c4e81846040516110ac929190613341565b60405180910390a15061112b565b505b3d8080156110e6576040519150601f19603f3d011682016040523d82523d6000602084013e6110eb565b606091505b507fea71beab728aa700f4b1b124c203ca9981b99696ed9f56b3def56a1b3a13833281846040516110ac929190613341565b8361112781613776565b9450505b50505b8061113881613776565b915050610d39565b5060078054906111519060006129f1565b6040805182815260ff841660208201527f48be52c64e0a5ff7b386f592283a0ee5b473efc8a04c47cca0e942d90574d376910160405180910390a150505050505b60045481146111b35760405162461bcd60e51b81526004016106269061345e565b505050565b6001600460008282546111cb91906136ce565b909155505060045460035460ff16156111f65760405162461bcd60e51b815260040161062690613401565b3360009081526009602052604090205460ff166112255760405162461bcd60e51b815260040161062690613393565b816112425760405162461bcd60e51b8152600401610626906133ca565b600854604080516351cfd60960e11b815290516000926001600160a01b03169163a39fac129160048083019260c0929190829003018186803b15801561128757600080fd5b505afa15801561129b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bf9190612d3b565b90506112d0816080015185856125f5565b60008160a0015190506000611364838860000135846001600160a01b031663a201b3076040518163ffffffff1660e01b815260040160206040518083038186803b15801561131d57600080fd5b505afa158015611331573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113559190612fb7565b8a606001358b608001356126d4565b9050816001600160a01b031663e0223eea604051806101400160405280336001600160a01b031681526020018a6000013581526020018a60200160208101906113ad9190612f9b565b6001600160401b031681526020016113cb60608c0160408d01612f9b565b6001600160401b03168152602081018590526040016113f060c08c0160a08d01612d1c565b600181111561140f57634e487b7160e01b600052602160045260246000fd5b815260200161142460e08c0160c08d01612c00565b6001600160a01b0316815260e08b0135602082015260400161144e6101208c016101008d01612c00565b6001600160a01b031681526020018a61012001358152506040518263ffffffff1660e01b81526004016114819190613567565b600060405180830381600087803b15801561149b57600080fd5b505af11580156114af573d6000803e3d6000fd5b5050505050505060045481146114d75760405162461bcd60e51b81526004016106269061345e565b50505050565b600054610100900460ff166114f85760005460ff16156114fc565b303b155b61155f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610626565b600054610100900460ff16158015611581576000805461ffff19166101011790555b61158a836105d4565b600880546001600160a01b0319166001600160a01b03841617905580156111b3576000805461ff0019169055505050565b6001600460008282546115ce91906136ce565b909155505060045460035460ff16156115f95760405162461bcd60e51b815260040161062690613401565b6000604051806101800160405280336001600160a01b03168152602001846000013581526020018460200160208101906116339190612f9b565b6001600160401b031681526020016116516060860160408701612f9b565b6001600160401b031681526060808601356020830152608086013560408301520161168260c0860160a08701612d1c565b60018111156116a157634e487b7160e01b600052602160045260246000fd5b81526020016116b660e0860160c08701612c00565b6001600160a01b0316815260e085013560208201526040016116e061012086016101008701612c00565b6001600160a01b0390811682526101208601356020808401919091524260409384015260068054600181810183556000929092528551600a9091027ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f81018054929095166001600160a01b0319909216919091178455918501517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d40830155928401517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d418201805460608701516001600160401b03908116600160401b026001600160801b031990921693169290921791909117905560808401517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4282015560a08401517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4382015560c08401517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d449091018054949550859492939192909160ff1990911690838181111561188357634e487b7160e01b600052602160045260246000fd5b021790555060e0820151600582018054610100600160a81b0319166101006001600160a01b0393841681029190911790915583015160068301556101208301516007830180546001600160a01b031916919092161790556101408201516008820155610160909101516009909101556040517faa9b85a2e5b93e844f4da51afaa437f075601edf0a59b74db14929d59e2d797790610ad7908390613672565b6001546001600160a01b0316331461199a5760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b6064820152608401610626565b60005460015460408051620100009093046001600160a01b03908116845290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1600180546000805462010000600160b01b0319166001600160a01b03831662010000021790556001600160a01b0319169055565b60078181548110611a2f57600080fd5b60009182526020909120600a90910201805460018201546002830154600384015460048501546006860154600787015460088801546009909801546001600160a01b03978816995095976001600160401b03909516969395929491841693909291169089565b600160046000828254611aa891906136ce565b909155505060045460035460ff1615611ad35760405162461bcd60e51b815260040161062690613401565b3360009081526009602052604090205460ff16611b025760405162461bcd60e51b815260040161062690613393565b81611b1f5760405162461bcd60e51b8152600401610626906133ca565b600854604080516351cfd60960e11b815290516000926001600160a01b03169163a39fac129160048083019260c0929190829003018186803b158015611b6457600080fd5b505afa158015611b78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b9c9190612d3b565b9050611bad816080015185856125f5565b60008160a0015190506000611c41838860000135846001600160a01b031663a201b3076040518163ffffffff1660e01b815260040160206040518083038186803b158015611bfa57600080fd5b505afa158015611c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c329190612fb7565b8a604001358b606001356126d4565b60085460405163bf40fac160e01b8152602060048201526016602482015275436861696e656453706565644d61726b657473414d4d60501b60448201529192506001600160a01b03169063bf40fac19060640160206040518083038186803b158015611cac57600080fd5b505afa158015611cc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce49190612c23565b6001600160a01b0316630bfd50ce604051806101000160405280336001600160a01b031681526020018a6000013581526020018a6020016020810190611d2a9190612f9b565b6001600160401b0316815260208101859052604001611d4c60808c018c613687565b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250505090825250602001611d9360c08c0160a08d01612c00565b6001600160a01b0316815260c08b01356020820152604001611dbc6101008c0160e08d01612c00565b6001600160a01b03168152506040518263ffffffff1660e01b81526004016114819190613495565b600160046000828254611df791906136ce565b909155505060045460035460ff1615611e225760405162461bcd60e51b815260040161062690613401565b3360009081526009602052604090205460ff16611e515760405162461bcd60e51b815260040161062690613393565b600654611e5d57611192565b81611e7a5760405162461bcd60e51b8152600401610626906133ca565b600854604080516351cfd60960e11b815290516000926001600160a01b03169163a39fac129160048083019260c0929190829003018186803b158015611ebf57600080fd5b505afa158015611ed3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef79190612d3b565b9050611f08816080015185856125f5565b60008160a0015190506000816001600160a01b031663a201b3076040518163ffffffff1660e01b815260040160206040518083038186803b158015611f4c57600080fd5b505afa158015611f60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f849190612fb7565b90506000805b60065460ff8216101561231657600060068260ff1681548110611fbd57634e487b7160e01b600052603260045260246000fd5b60009182526020918290206040805161018081018252600a90930290910180546001600160a01b031683526001808201549484019490945260028101546001600160401b0380821693850193909352600160401b9004909116606083015260038101546080830152600481015460a083015260058101549192909160c084019160ff9091169081111561206057634e487b7160e01b600052602160045260246000fd5b600181111561207f57634e487b7160e01b600052602160045260246000fd5b8152600582810154610100908190046001600160a01b0390811660208501526006850154604085015260078501541660608401526008840154608084015260099093015460a0909201919091525461016083015192935042926120ee929091046001600160401b0316906136ce565b116120f95750612304565b60006121148783602001518785608001518660a001516126d4565b9050856001600160a01b031663e0223eea60405180610140016040528085600001516001600160a01b031681526020018560200151815260200185604001516001600160401b0316815260200185606001516001600160401b031681526020018481526020018560c00151600181111561219e57634e487b7160e01b600052602160045260246000fd5b81526020018560e001516001600160a01b0316815260200185610100015181526020018561012001516001600160a01b031681526020018561014001518152506040518263ffffffff1660e01b81526004016121fa9190613567565b600060405180830381600087803b15801561221457600080fd5b505af1925050508015612225575060015b6122f3576122316137ac565b806308c379a0141561229057506122466137c4565b806122515750612292565b7f07f812267f276d6fcc4b3a3d1f2797c3455cdc13d47462b1567a849842e13c46818460405161228292919061336f565b60405180910390a150612301565b505b3d8080156122bc576040519150601f19603f3d011682016040523d82523d6000602084013e6122c1565b606091505b507faf05d7cd9581ee93ea4340706c133f4b6b0bc1f1a71b7fbcdd2dccc025e6d5bd818460405161228292919061336f565b836122fd81613776565b9450505b50505b8061230e81613776565b915050611f8a565b506006805490611151906000612a12565b61232f61257b565b6001600160a01b03821661234257600080fd5b6001600160a01b038216600081815260096020908152604091829020805460ff19168515159081179091558251938452908301527f58d7a3ccc34541e162fcfc87b84be7b78c34d1e1e7f15de6e4dd67d0fe70aecd910160405180910390a15050565b6123ad61257b565b6001600160a01b0381166123f55760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610626565b600154600160a81b900460ff16156124455760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481d1c985b9cd9995c9c9959606a1b6044820152606401610626565b600080546001600160a01b038381166201000081810262010000600160b01b031990941693909317938490556001805460ff60a81b1916600160a81b1790556040805193909404909116825260208201527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91016105c9565b60055460ff16156125075760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610626565b6005805460ff19166001908117909155600455565b61252461257b565b6005805468ffffffffffffffff0019166101006001600160401b038416908102919091179091556040519081527f41b95b0cd63e823b0fff2701a35e7ab970829374fa79149ca1b1d1dce73e0018906020016105c9565b6000546201000090046001600160a01b031633146125f35760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b6064820152608401610626565b565b60405163d47eed4560e01b815283906001600160a01b0382169063ef9e5e2890829063d47eed459061262d90889088906004016132aa565b60206040518083038186803b15801561264557600080fd5b505afa158015612659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061267d9190612d04565b85856040518463ffffffff1660e01b815260040161269c9291906132aa565b6000604051808303818588803b1580156126b557600080fd5b505af11580156126c9573d6000803e3d6000fd5b505050505050505050565b60408051608081018252600080825260208201819052918101829052606081019190915260a086015160808701516040516317a8f53760e31b8152600481018890526001600160a01b03808316916396834ad39185169063bd47a9b89060240160206040518083038186803b15801561274c57600080fd5b505afa158015612760573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127849190612d04565b6040518263ffffffff1660e01b81526004016127a291815260200190565b60806040518083038186803b1580156127ba57600080fd5b505afa1580156127ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f29190612e8d565b925042866001600160401b0316846060015161280e91906136ce565b11801561282257506000836000015160070b135b61285c5760405162461bcd60e51b815260206004820152600b60248201526a5374616c6520707269636560a81b6044820152606401610626565b6000670de0b6b3a764000061287186826136ce565b61287b9088613706565b61288591906136e6565b90506000670de0b6b3a764000061289c8782613725565b6128a69089613706565b6128b091906136e6565b90508160070b856000015160070b131580156128d657508060070b856000015160070b12155b6129225760405162461bcd60e51b815260206004820152601b60248201527f50797468207072696365206578636565647320736c69707061676500000000006044820152606401610626565b5050505095945050505050565b82805482825590600052602060002090601f016020900481019282156129e15791602002820160005b838211156129b257835183826101000a81548160ff0219169083600181111561299157634e487b7160e01b600052602160045260246000fd5b02179055509260200192600101602081600001049283019260010302612958565b80156129df5782816101000a81549060ff02191690556001016020816000010492830192600103026129b2565b505b506129ed929150612a33565b5090565b50805460008255600a02906000526020600020908101906107d69190612a48565b50805460008255600a02906000526020600020908101906107d69190612acd565b5b808211156129ed5760008155600101612a34565b808211156129ed5780546001600160a01b031916815560006001820181905560028201805467ffffffffffffffff191690556003820181905560048201819055612a956005830182612b48565b506006810180546001600160a01b03199081169091556000600783018190556008830180549092169091556009820155600a01612a48565b5b808211156129ed5780546001600160a01b031990811682556000600183018190556002830180546001600160801b031916905560038301819055600483018190556005830180546001600160a81b031916905560068301819055600783018054909216909155600882018190556009820155600a01612ace565b50805460008255601f0160209004906000526020600020908101906107d69190612a33565b8051612b788161384d565b919050565b60008083601f840112612b8e578182fd5b5081356001600160401b03811115612ba4578182fd5b6020830191508360208260051b8501011115612bbf57600080fd5b9250929050565b80358015158114612b7857600080fd5b60006101008284031215612be8578081fd5b50919050565b60006101408284031215612be8578081fd5b600060208284031215612c11578081fd5b8135612c1c8161384d565b9392505050565b600060208284031215612c34578081fd5b8151612c1c8161384d565b60008060408385031215612c51578081fd5b8235612c5c8161384d565b91506020830135612c6c8161384d565b809150509250929050565b60008060408385031215612c89578182fd5b8235612c948161384d565b9150612ca260208401612bc6565b90509250929050565b60008060208385031215612cbd578182fd5b82356001600160401b03811115612cd2578283fd5b612cde85828601612b7d565b90969095509350505050565b600060208284031215612cfb578081fd5b612c1c82612bc6565b600060208284031215612d15578081fd5b5051919050565b600060208284031215612d2d578081fd5b813560028110612c1c578182fd5b600060c08284031215612d4c578081fd5b60405160c081018181106001600160401b0382111715612d7a57634e487b7160e01b83526041600452602483fd5b6040528251612d888161384d565b81526020830151612d988161384d565b60208201526040830151612dab8161384d565b60408201526060830151612dbe8161384d565b60608201526080830151612dd18161384d565b6080820152612de260a08401612b6d565b60a08201529392505050565b600060208284031215612dff578081fd5b81356001600160401b03811115612e14578182fd5b612e2084828501612bd6565b949350505050565b600080600060408486031215612e3c578081fd5b83356001600160401b0380821115612e52578283fd5b612e5e87838801612bd6565b94506020860135915080821115612e73578283fd5b50612e8086828701612b7d565b9497909650939450505050565b600060808284031215612e9e578081fd5b604051608081018181106001600160401b0382111715612ecc57634e487b7160e01b83526041600452602483fd5b6040528251600781900b8114612ee0578283fd5b81526020830151612ef081613862565b60208201526040830151600381900b8114612f09578283fd5b60408201526060928301519281019290925250919050565b60006101408284031215612f33578081fd5b612c1c8383612bee565b60008060006101608486031215612f52578081fd5b612f5c8585612bee565b92506101408401356001600160401b03811115612f77578182fd5b612e8086828701612b7d565b600060208284031215612f94578081fd5b5035919050565b600060208284031215612fac578081fd5b8135612c1c81613862565b600060208284031215612fc8578081fd5b8151612c1c81613862565b6000815180845260208085019450808401835b8381101561300957612ff9878351613088565b9582019590820190600101612fe6565b509495945050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008151808452815b8181101561306257602081850181015186830182015201613046565b818111156130735782602083870101525b50601f01601f19169290920160200192915050565b600281106130a657634e487b7160e01b600052602160045260246000fd5b9052565b80516001600160a01b0316825260006101406020830151602085015260408301516130e060408601826001600160401b03169052565b50606083015160608501526080830151608085015260a08301518160a086015261310c82860182612fd3565b91505060c083015161312960c08601826001600160a01b03169052565b5060e083015160e08501526101008084015161314f828701826001600160a01b03169052565b5050610120928301519390920192909252919050565b80516001600160a01b0316825260208101516020830152604081015161319660408401826001600160401b03169052565b5060608101516131b160608401826001600160401b03169052565b506080810151608083015260a081015160a083015260c08101516131d860c0840182613088565b5060e08101516131f360e08401826001600160a01b03169052565b506101008181015190830152610120808201516001600160a01b031690830152610140808201519083015261016090810151910152565b6001600160a01b038d81168252602082018d90526001600160401b038c811660408401528b166060830152608082018a905260a0820189905261018082019061327660c084018a613088565b96871660e0830152610100820195909552929094166101208301526101408201526101600191909152979650505050505050565b60208082528181018390526000906040600585901b8401810190840186845b8781101561333457868403603f190183528135368a9003601e190181126132ee578687fd5b890180356001600160401b03811115613305578788fd5b8036038b1315613313578788fd5b6133208682898501613014565b9550505091840191908401906001016132c9565b5091979650505050505050565b604081526000613354604083018561303d565b828103602084015261336681856130aa565b95945050505050565b60006101a08083526133838184018661303d565b915050612c1c6020830184613165565b60208082526017908201527f43726561746f72206e6f742077686974656c6973746564000000000000000000604082015260600190565b60208082526017908201527f456d707479207072696365207570646174652064617461000000000000000000604082015260600190565b6020808252603c908201527f5468697320616374696f6e2063616e6e6f7420626520706572666f726d65642060408201527f7768696c652074686520636f6e74726163742069732070617573656400000000606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b602080825282516001600160a01b0316828201528201516040808301919091528201516001600160401b038116606083015260009050606083810151805160070b608085015260208101516001600160401b031660a0850152604081015160030b60c08501529081015160e084015250608083015161016080610100850152613522610180850183612fd3565b915060a085015161353f6101208601826001600160a01b03169052565b5060c085015161014085015260e0909401516001600160a01b03169390920192909252919050565b81516001600160a01b031681526101a0810160208301516020830152604083015161359d60408401826001600160401b03169052565b5060608301516135b860608401826001600160401b03169052565b5060808301516135fb6080840182805160070b82526001600160401b036020820151166020830152604081015160030b6040830152606081015160608301525050565b5060a083015161010061361081850183613088565b60c0850151915061012061362e818601846001600160a01b03169052565b60e0860151610140860152908501516001600160a01b03166101608501529093015161018090920191909152919050565b602081526000612c1c60208301846130aa565b61018081016136818284613165565b92915050565b6000808335601e1984360301811261369d578283fd5b8301803591506001600160401b038211156136b6578283fd5b6020019150600581901b3603821315612bbf57600080fd5b600082198211156136e1576136e1613796565b500190565b60008261370157634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561372057613720613796565b500290565b60008282101561373757613737613796565b500390565b601f8201601f191681016001600160401b038111828210171561376f57634e487b7160e01b600052604160045260246000fd5b6040525050565b600060ff821660ff81141561378d5761378d613796565b60010192915050565b634e487b7160e01b600052601160045260246000fd5b600060033d11156137c157600481823e5160e01c5b90565b600060443d10156137d25790565b6040516003193d81016004833e81513d6001600160401b03816024840111818411171561380157505050505090565b82850191508151818111156138195750505050505090565b843d87010160208285010111156138335750505050505090565b6138426020828601018761373c565b509095945050505050565b6001600160a01b03811681146107d657600080fd5b6001600160401b03811681146107d657600080fdfea2646970667358221220e472543d8c73e761487049094dc276e44e6a95b1384cc206915fad52b728189b64736f6c63430008040033