0 txs
1 call
constructor
No constructor.
functions
areMarketsResolved
viewfunction areMarketsResolved(bytes32[] _gameIds, uint16[] _typeIds, uint24[] _playerIds, int24[] _lines) view returns (bool[] resolvedMarkets)
getActiveTicketsDataPerUser
viewfunction getActiveTicketsDataPerUser(address user, uint256 _startIndex, uint256 _pageSize) view returns (tuple[] ticketsData, tuple[] freeBetsData, tuple[] stakingBettingProxyData)
getAllActiveGameIdsTypeIdsPlayerIdsLinesForGameIds
viewfunction getAllActiveGameIdsTypeIdsPlayerIdsLinesForGameIds(bytes32[] _gameIds, uint256 _startIndex, uint256 _pageSize) view returns (tuple[] finalTicketsInfo)
getCapsPerMarkets
viewfunction getCapsPerMarkets(bytes32[] _gameIds, uint16[] _sportIds, uint16[] _typeIds, uint256[] _maturities) view returns (uint256[] caps)
getFreeBetsDataPerUser
viewfunction getFreeBetsDataPerUser(address user, address[] collateralAddresses) view returns (uint256[] freeBetsAmountPerCollateral, uint256[] freeBetsExpiryPerCollateral)
getOnlyActiveGameIdsAndTicketsOf
viewfunction getOnlyActiveGameIdsAndTicketsOf(bytes32[] _gameIds, uint256 _startIndex, uint256 _pageSize) view returns (bytes32[] activeGameIds, uint256[] numOfTicketsPerGameId, address[][] ticketsPerGameId)
getResolvedTicketsDataPerUser
viewfunction getResolvedTicketsDataPerUser(address user, uint256 _startIndex, uint256 _pageSize) view returns (tuple[] ticketsData, tuple[] freeBetsData, tuple[] stakingBettingProxyData)
getResultsForMarkets
viewfunction getResultsForMarkets(bytes32[] _gameIds, uint16[] _typeIds, uint24[] _playerIds) view returns (int24[][] resultsForMarkets)
getRiskOnMarkets
viewfunction getRiskOnMarkets(bytes32[] _gameIds, uint256[] _typeIds, uint256[] _playerIds, uint256[] _positions) view returns (int256[] riskAmounts)
getSpentOnGames
viewfunction getSpentOnGames(bytes32[] _gameIds) view returns (uint256[] spentAmounts)
getSportsAMMParameters
viewfunction getSportsAMMParameters() view returns (tuple)
getTicketsData
viewfunction getTicketsData(address[] ticketsArray) view returns (tuple[])
getTicketsDataPerGame
viewfunction getTicketsDataPerGame(bytes32 gameId, uint256 _startIndex, uint256 _pageSize) view returns (tuple[])
lastPauseTime
viewfunction lastPauseTime() view returns (uint256)
nominatedOwner
viewfunction nominatedOwner() view returns (address)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
riskManager
viewfunction riskManager() view returns (address)
sportsAMM
viewfunction sportsAMM() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
initialize
nonpayablefunction initialize(address _owner, address _sportsAMM, address _riskManager)
nominateNewOwner
nonpayablefunction nominateNewOwner(address _owner)
setOwner
nonpayablefunction setOwner(address _owner)
setPaused
nonpayablefunction setPaused(bool _paused)
setRiskManager
nonpayablefunction setRiskManager(address _riskManager)
setSportsAMM
nonpayablefunction setSportsAMM(address _sportsAMM)
transferOwnershipAtInit
nonpayablefunction transferOwnershipAtInit(address proxyAddress)
events
Initialized
event Initialized(uint64 version)
OwnerChanged
event OwnerChanged(address oldOwner, address newOwner)
OwnerNominated
event OwnerNominated(address newOwner)
PauseChanged
event PauseChanged(bool isPaused)
RiskManagerChanged
event RiskManagerChanged(address riskManager)
SportAMMChanged
event SportAMMChanged(address sportsAMM)
errors
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
creation bytecode
0x608060405234801561001057600080fd5b506153c4806100206000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806379ba5097116100f9578063c3b83f5f11610097578063e211088411610071578063e2110884146103fb578063e81e52ee1461040e578063f39d03b814610421578063f518a5cf1461048157600080fd5b8063c3b83f5f146103ae578063c9925288146103c1578063ddd57607146103d957600080fd5b8063b60d3707116100d3578063b60d370714610355578063b71a6cf914610368578063b7dab93014610388578063c0c53b8b1461039b57600080fd5b806379ba5097146103235780638da5cb5b1461032b57806391b4ded91461033e57600080fd5b8063563b27c4116101665780635fb1162d116101405780635fb1162d146102b0578063604ab8b4146102d057806362ca8460146102f05780636b43bc821461030357600080fd5b8063563b27c4146102525780635b615b2c146102725780635c975abb1461029357600080fd5b806313af4035146101ae5780631627540c146101c357806316c38b3c146101d657806345e94eb8146101e9578063478426631461021457806353a47bb71461023f575b600080fd5b6101c16101bc3660046141be565b6104a1565b005b6101c16101d13660046141be565b6105d7565b6101c16101e43660046141e9565b61062d565b6101fc6101f7366004614302565b61069f565b60405161020b9392919061438a565b60405180910390f35b600454610227906001600160a01b031681565b6040516001600160a01b03909116815260200161020b565b600154610227906001600160a01b031681565b6102656102603660046144b2565b6106be565b60405161020b919061486d565b610285610280366004614880565b610705565b60405161020b92919061492e565b6003546102a09060ff1681565b604051901515815260200161020b565b6102c36102be36600461495c565b610ad3565b60405161020b9190614a1f565b6102e36102de366004614302565b610c4b565b60405161020b9190614a63565b6101c16102fe3660046141be565b6110c7565b610316610311366004614bbb565b61111d565b60405161020b9190614c42565b6101c161131a565b600054610227906001600160a01b031681565b61034760025481565b60405190815260200161020b565b610265610363366004614ca4565b611404565b61037b6103763660046144b2565b61160b565b60405161020b9190614cd0565b61037b61039636600461495c565b61171b565b6101c16103a9366004614ce3565b6118c5565b6101c16103bc3660046141be565b611a14565b6003546102279061010090046001600160a01b031681565b6103ec6103e7366004614d2e565b611b1d565b60405161020b93929190614d63565b6103ec610409366004614d2e565b611ead565b6101c161041c3660046141be565b6121de565b61042961223c565b60405161020b9190600060e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a0830151151560a083015260c083015160c083015292915050565b61049461048f366004614dab565b6125f1565b60405161020b9190614eb3565b6001600160a01b0381166104fc5760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f7420626520300000000000000060448201526064015b60405180910390fd5b600154600160a01b900460ff16156105685760405162461bcd60e51b815260206004820152602960248201527f416c726561647920696e697469616c697a65642c20757365206e6f6d696e617460448201526832a732bba7bbb732b960b91b60648201526084016104f3565b6001805460ff60a01b1916600160a01b179055600080546001600160a01b0383166001600160a01b0319909116811782556040805192835260208301919091527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91015b60405180910390a150565b6105df612946565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906020016105cc565b610635612946565b60035460ff1615158115151461069c576003805460ff191682151590811790915560ff161561066357426002555b60035460405160ff909116151581527f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5906020016105cc565b50565b60608060606106af8686866129ba565b91989097509095509350505050565b60606106fc838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612e5e92505050565b90505b92915050565b60608082516001600160401b0381111561072157610721614206565b60405190808252806020026020018201604052801561074a578160200160208202803683370190505b50915082516001600160401b0381111561076657610766614206565b60405190808252806020026020018201604052801561078f578160200160208202803683370190505b5090506000600360019054906101000a90046001600160a01b03166001600160a01b031663ce18a8376040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080b9190614eed565b90506000816001600160a01b031663b1b5823b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108719190614f0a565b90506000826001600160a01b031663edc5de8e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190614f0a565b905060005b8651811015610ac857836001600160a01b031663cab7bf568989848151811061090757610907614f23565b60200260200101516040518363ffffffff1660e01b81526004016109419291906001600160a01b0392831681529116602082015260400190565b602060405180830381865afa15801561095e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109829190614f0a565b86828151811061099457610994614f23565b6020026020010181815250506000846001600160a01b031663e74e33e08a8a85815181106109c4576109c4614f23565b60200260200101516040518363ffffffff1660e01b81526004016109fe9291906001600160a01b0392831681529116602082015260400190565b602060405180830381865afa158015610a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3f9190614f0a565b905080600003610a7c5742610a548486614f4f565b11610a60576000610a75565b42610a6b8486614f4f565b610a759190614f62565b9050610a97565b428111610a8a576000610a94565b610a944282614f62565b90505b80868381518110610aaa57610aaa614f23565b60209081029190910101525080610ac081614f75565b9150506108dc565b505050509250929050565b6060876001600160401b03811115610aed57610aed614206565b604051908082528060200260200182016040528015610b16578160200160208202803683370190505b50905060005b88811015610c3e576004546001600160a01b031663ca9ef2e68b8b84818110610b4757610b47614f23565b905060200201358a8a85818110610b6057610b60614f23565b90506020020135898986818110610b7957610b79614f23565b90506020020135888887818110610b9257610b92614f23565b905060200201356040518563ffffffff1660e01b8152600401610bce949392919093845260208401929092526040830152606082015260800190565b602060405180830381865afa158015610beb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0f9190614f0a565b828281518110610c2157610c21614f23565b602090810291909101015280610c3681614f75565b915050610b1c565b5098975050505050505050565b606080606080610c5c8787876129ba565b919450925090506000805b8451811015610d595760005b848281518110610c8557610c85614f23565b6020026020010151811015610d4657838281518110610ca657610ca6614f23565b60200260200101518181518110610cbf57610cbf614f23565b60200260200101516001600160a01b03166362e5c8196040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d289190614f0a565b610d329084614f4f565b925080610d3e81614f75565b915050610c73565b5080610d5181614f75565b915050610c67565b506000816001600160401b03811115610d7457610d74614206565b604051908082528060200260200182016040528015610dc657816020015b604080516080810182526000808252602080830182905292820181905260608201528252600019909201910181610d925790505b50905060009150610dd561415b565b60005b8651811015610fb75760005b868281518110610df657610df6614f23565b6020026020010151811015610fa4576000868381518110610e1957610e19614f23565b60200260200101518281518110610e3257610e32614f23565b6020026020010151905060005b816001600160a01b03166362e5c8196040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea19190614f0a565b811015610f8f57610eb28282613b26565b94508460000151868881518110610ecb57610ecb614f23565b602002602001015160000181815250508460400151868881518110610ef257610ef2614f23565b60200260200101516020019061ffff16908161ffff16815250508460a00151868881518110610f2357610f23614f23565b60200260200101516040019062ffffff16908162ffffff16815250508460800151868881518110610f5657610f56614f23565b60200260200101516060019060020b908160020b815250508680610f7990614f75565b9750508080610f8790614f75565b915050610e3f565b50508080610f9c90614f75565b915050610de4565b5080610faf81614f75565b915050610dd8565b50610fc182613c8c565b95509250826001600160401b03811115610fdd57610fdd614206565b60405190808252806020026020018201604052801561102f57816020015b604080516080810182526000808252602080830182905292820181905260608201528252600019909201910181610ffb5790505b5096506000925060005b82518110156110b95785818151811061105457611054614f23565b60200260200101516001036110a75782818151811061107557611075614f23565b602002602001015188858151811061108f5761108f614f23565b6020026020010181905250836110a490614f75565b93505b806110b181614f75565b915050611039565b505050505050509392505050565b6110cf612946565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527fde93646733d5d7f1fb776a284cd4a3d76db86799b2789f91c07cdb2b45dc6d4c906020016105cc565b606082518451148015611131575081518351145b156113135783516001600160401b0381111561114f5761114f614206565b60405190808252806020026020018201604052801561118257816020015b606081526020019060019003908161116d5790505b50905060005b845181101561131157600360019054906101000a90046001600160a01b03166001600160a01b0316638ff9d5cf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112089190614eed565b6001600160a01b031663514b756386838151811061122857611228614f23565b602002602001015186848151811061124257611242614f23565b602002602001015186858151811061125c5761125c614f23565b60200260200101516040518463ffffffff1660e01b815260040161129c9392919092835261ffff91909116602083015262ffffff16604082015260600190565b600060405180830381865afa1580156112b9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112e19190810190614f8e565b8282815181106112f3576112f3614f23565b6020026020010181905250808061130990614f75565b915050611188565b505b9392505050565b6001546001600160a01b031633146113925760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b60648201526084016104f3565b600054600154604080516001600160a01b0393841681529290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60606000600360019054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa15801561145b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147f9190614eed565b6001600160a01b0316635c3aa11b866040518263ffffffff1660e01b81526004016114ac91815260200190565b602060405180830381865afa1580156114c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ed9190614f0a565b90508083116114fc57826114fe565b805b92506000600360019054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611555573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115799190614eed565b604051633a30376f60e11b81526004810187905260248101869052604481018890526001600160a01b0391909116906374606ede90606401600060405180830381865afa1580156115ce573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115f69190810190615027565b905061160181612e5e565b9695505050505050565b6060816001600160401b0381111561162557611625614206565b60405190808252806020026020018201604052801561164e578160200160208202803683370190505b50905060005b82811015611714576004546001600160a01b03166305954ad485858481811061167f5761167f614f23565b905060200201356040518263ffffffff1660e01b81526004016116a491815260200190565b602060405180830381865afa1580156116c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e59190614f0a565b8282815181106116f7576116f7614f23565b60209081029190910101528061170c81614f75565b915050611654565b5092915050565b6060876001600160401b0381111561173557611735614206565b60405190808252806020026020018201604052801561175e578160200160208202803683370190505b50905060005b88811015610c3e576004546001600160a01b03166359dc82578b8b8481811061178f5761178f614f23565b905060200201358a8a858181106117a8576117a8614f23565b90506020020160208101906117bd91906150b5565b8989868181106117cf576117cf614f23565b90506020020160208101906117e491906150b5565b6000808a8a898181106117f9576117f9614f23565b60405160e08a901b6001600160e01b0319168152600481019890985261ffff968716602489015294909516604487015262ffffff92909216606486015260020b60848501526020909102013560a483015250600060c482015260e401602060405180830381865afa158015611872573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118969190614f0a565b8282815181106118a8576118a8614f23565b6020908102919091010152806118bd81614f75565b915050611764565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b031660008115801561190a5750825b90506000826001600160401b031660011480156119265750303b155b905081158015611934575080155b156119525760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561197c57845460ff60401b1916600160401b1785555b611985886104a1565b60038054610100600160a81b0319166101006001600160a01b038a81169190910291909117909155600480546001600160a01b0319169188169190911790558315611a0a57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b611a1c612946565b6001600160a01b038116611a645760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016104f3565b600154600160a81b900460ff1615611ab45760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481d1c985b9cd9995c9c9959606a1b60448201526064016104f3565b600080546001600160a01b0383166001600160a01b031990911681179091556001805460ff60a81b1916600160a81b1790556040805182815260208101929092527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91016105cc565b60608060606000600360019054906101000a90046001600160a01b03166001600160a01b031663ce18a8376040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b9b9190614eed565b6001600160a01b031663485b23bf87878a6040518463ffffffff1660e01b8152600401611bca939291906150d2565b600060405180830381865afa158015611be7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c0f9190810190615027565b90506000600360019054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8a9190614eed565b6001600160a01b031663485b23bf88888b6040518463ffffffff1660e01b8152600401611cb9939291906150d2565b600060405180830381865afa158015611cd6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cfe9190810190615027565b9050611d0981612e5e565b9450611d1482612e5e565b935060006001600160a01b0316600360019054906101000a90046001600160a01b03166001600160a01b0316630fe621906040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d989190614eed565b6001600160a01b031614611ea2576000600360019054906101000a90046001600160a01b03166001600160a01b0316630fe621906040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1f9190614eed565b6001600160a01b031663485b23bf89898c6040518463ffffffff1660e01b8152600401611e4e939291906150d2565b600060405180830381865afa158015611e6b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e939190810190615027565b9050611e9e81612e5e565b9350505b505093509350939050565b60608060606000600360019054906101000a90046001600160a01b03166001600160a01b031663ce18a8376040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2b9190614eed565b6001600160a01b031663dd37861d87878a6040518463ffffffff1660e01b8152600401611f5a939291906150d2565b600060405180830381865afa158015611f77573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f9f9190810190615027565b90506000600360019054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ff6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201a9190614eed565b6001600160a01b031663dd37861d88888b6040518463ffffffff1660e01b8152600401612049939291906150d2565b600060405180830381865afa158015612066573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261208e9190810190615027565b905061209981612e5e565b94506120a482612e5e565b935060006001600160a01b0316600360019054906101000a90046001600160a01b03166001600160a01b0316630fe621906040518163ffffffff1660e01b8152600401602060405180830381865afa158015612104573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121289190614eed565b6001600160a01b031614611ea2576000600360019054906101000a90046001600160a01b03166001600160a01b0316630fe621906040518163ffffffff1660e01b8152600401602060405180830381865afa15801561218b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121af9190614eed565b6001600160a01b031663dd37861d89898c6040518463ffffffff1660e01b8152600401611e4e939291906150d2565b6121e6612946565b60038054610100600160a81b0319166101006001600160a01b038416908102919091179091556040519081527f576297e5fcc8cd907ee80b240284865eb3d821bdc5232e6ee9e4d78a12531c09906020016105cc565b61227e6040518060e001604052806000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600081525090565b6040518060e00160405280600460009054906101000a90046001600160a01b03166001600160a01b031663c6334f9f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123009190614f0a565b8152602001600460009054906101000a90046001600160a01b03166001600160a01b03166341dcd5fe6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612358573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237c9190614f0a565b8152602001600460009054906101000a90046001600160a01b03166001600160a01b031663422f96bf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f89190614f0a565b8152602001600460009054906101000a90046001600160a01b03166001600160a01b031663e88698bf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612450573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124749190614f0a565b8152602001600360019054906101000a90046001600160a01b03166001600160a01b03166338ea71036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f09190614f0a565b8152602001600360019054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612548573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256c91906150f1565b15158152602001600460009054906101000a90046001600160a01b03166001600160a01b031663e20222136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ea9190614f0a565b9052919050565b606083518551148015612605575082518451145b1561293e5784516001600160401b0381111561262357612623614206565b60405190808252806020026020018201604052801561264c578160200160208202803683370190505b50905060005b855181101561293c576000600360019054906101000a90046001600160a01b03166001600160a01b0316638ff9d5cf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d49190614eed565b6001600160a01b031663914008bc8784815181106126f4576126f4614f23565b60200260200101516040518263ffffffff1660e01b8152600401612722919061ffff91909116815260200190565b602060405180830381865afa15801561273f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127639190615124565b905060ff81166003146129295760408051600080825260208201909252816127b3565b60408051606081018252600080825260208083018290529282015282526000199092019101816127865790505b509050600360019054906101000a90046001600160a01b03166001600160a01b0316638ff9d5cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612809573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282d9190614eed565b6001600160a01b031663397f782389858151811061284d5761284d614f23565b602002602001015189868151811061286757612867614f23565b602002602001015189878151811061288157612881614f23565b602002602001015189888151811061289b5761289b614f23565b6020026020010151866040518663ffffffff1660e01b81526004016128c495949392919061513f565b602060405180830381865afa1580156128e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061290591906150f1565b84848151811061291757612917614f23565b91151560209283029190910190910152505b508061293481614f75565b915050612652565b505b949350505050565b6000546001600160a01b031633146129b85760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b60648201526084016104f3565b565b6060806060855184116129cd57836129d0565b85515b93506000846001600160401b038111156129ec576129ec614206565b604051908082528060200260200182016040528015612a15578160200160208202803683370190505b5090506000865b86811015612b6c576000600360019054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a9d9190614eed565b6001600160a01b0316635c3aa11b8b8481518110612abd57612abd614f23565b60200260200101516040518263ffffffff1660e01b8152600401612ae391815260200190565b602060405180830381865afa158015612b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b249190614f0a565b90508015612b595782612b3681614f75565b93505080848381518110612b4c57612b4c614f23565b6020026020010181815250505b5080612b6481614f75565b915050612a1c565b50806001600160401b03811115612b8557612b85614206565b604051908082528060200260200182016040528015612bae578160200160208202803683370190505b509450806001600160401b03811115612bc957612bc9614206565b604051908082528060200260200182016040528015612bf2578160200160208202803683370190505b509350806001600160401b03811115612c0d57612c0d614206565b604051908082528060200260200182016040528015612c4057816020015b6060815260200190600190039081612c2b5790505b5092506000905060005b8851811015612e52576000838281518110612c6757612c67614f23565b60200260200101511115612e4057888181518110612c8757612c87614f23565b6020026020010151868381518110612ca157612ca1614f23565b602002602001018181525050828181518110612cbf57612cbf614f23565b6020026020010151858381518110612cd957612cd9614f23565b602002602001018181525050600360019054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d5c9190614eed565b6001600160a01b03166374606ede6000858481518110612d7e57612d7e614f23565b60200260200101518c8581518110612d9857612d98614f23565b60200260200101516040518463ffffffff1660e01b8152600401612dcf939291909283526020830191909152604082015260600190565b600060405180830381865afa158015612dec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e149190810190615027565b848381518110612e2657612e26614f23565b60200260200101819052508180612e3c90614f75565b9250505b80612e4a81614f75565b915050612c4a565b50505093509350939050565b6060600082516001600160401b03811115612e7b57612e7b614206565b604051908082528060200260200182016040528015612f5a57816020015b604080516102c08101825260008082526060602080840182905293830181905282018190526080820181905260a0820181905260c0820181905260e08201819052610100820181905261012082018190526101408201819052610160820181905261018082018190526101a082018190526101c082018190526101e08201819052610200820181905261022082018190526102408201819052610260820181905261028082018190526102a08201528252600019909201910181612e995790505b50905060005b8351811015611714576000848281518110612f7d57612f7d614f23565b602002602001015190506000816001600160a01b03166362e5c8196040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612feb9190614f0a565b6001600160401b0381111561300257613002614206565b60405190808252806020026020018201604052801561303b57816020015b61302861415b565b8152602001906001900390816130205790505b5090506000826001600160a01b03166362e5c8196040518163ffffffff1660e01b8152600401602060405180830381865afa15801561307e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130a29190614f0a565b6001600160401b038111156130b9576130b9614206565b6040519080825280602002602001820160405280156130ff57816020015b6040805180820190915260008152606060208201528152602001906001900390816130d75790505b50905060005b836001600160a01b03166362e5c8196040518163ffffffff1660e01b8152600401602060405180830381865afa158015613143573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131679190614f0a565b8110156131cf576131788482613b26565b83828151811061318a5761318a614f23565b602002602001018190525061319f8482613e25565b8282815181106131b1576131b1614f23565b602002602001018190525080806131c790614f75565b915050613105565b506000600360019054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015613225573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132499190614eed565b6040516320dcb23360e01b81526001600160a01b03868116600483015291909116906320dcb23390602401602060405180830381865afa158015613291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132b591906150f1565b90506000600360019054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa15801561330c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133309190614eed565b604051633d2e50f360e21b81526001600160a01b038781166004830152919091169063f4b943cc90602401602060405180830381865afa158015613378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061339c91906150f1565b9050604051806102c001604052808a88815181106133bc576133bc614f23565b60200260200101516001600160a01b03168152602001858152602001848152602001866001600160a01b031663d8dfeb456040518163ffffffff1660e01b8152600401602060405180830381865afa15801561341c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134409190614eed565b6001600160a01b03168152602001866001600160a01b031662641e8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561348b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134af9190614eed565b6001600160a01b03168152602001866001600160a01b031663d165dac26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061351f9190614f0a565b8152602001866001600160a01b0316639af1d35a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613562573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135869190614f0a565b8152602001866001600160a01b031663400e69ef6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135ed9190614f0a565b8152602001866001600160a01b03166362e5c8196040518163ffffffff1660e01b8152600401602060405180830381865afa158015613630573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136549190614f0a565b8152602001866001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613697573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136bb9190614f0a565b8152602001866001600160a01b031663cf09e0d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137229190614f0a565b8152602001866001600160a01b0316633f6fa6556040518163ffffffff1660e01b8152600401602060405180830381865afa158015613765573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061378991906150f1565b15158152602001866001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137f291906150f1565b15158152602001866001600160a01b0316639a82a09a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061385b91906150f1565b15158152602001866001600160a01b031663085d03ee6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156138a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138c491906150f1565b15158152602001866001600160a01b0316633356a35a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613909573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061392d91906150f1565b15158152602001866001600160a01b031663e74d3c476040518163ffffffff1660e01b8152600401602060405180830381865afa158015613972573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061399691906150f1565b15158152602001866001600160a01b031663242a8a6b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139ff9190614f0a565b8152602001866001600160a01b031663b8f7a6656040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a6691906150f1565b15158152602001831515815260200183613a81576000613ae3565b866001600160a01b031663eef8889b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613abf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ae39190615124565b60ff168152602001821515815250878781518110613b0357613b03614f23565b602002602001018190525050505050508080613b1e90614f75565b915050612f60565b613b2e61415b565b6000806000806000806000808a6001600160a01b031663b1283e778b6040518263ffffffff1660e01b8152600401613b6891815260200190565b61012060405180830381865afa158015613b86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613baa9190615176565b985098509850985050975097509750975060008b6001600160a01b031663c358c6968c6040518263ffffffff1660e01b8152600401613beb91815260200190565b600060405180830381865afa158015613c08573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613c309190810190615214565b60408051610120810182529a8b5261ffff998a1660208c01529790981696890196909652606088019490945260029290920b608087015262ffffff1660a086015260ff1660c085015260e0840152506101008201529392505050565b60006060600083516001600160401b03811115613cab57613cab614206565b604051908082528060200260200182016040528015613cd4578160200160208202803683370190505b50905083516001600160401b03811115613cf057613cf0614206565b604051908082528060200260200182016040528015613d19578160200160208202803683370190505b50915060008060005b8651811015613e1c57868181518110613d3d57613d3d614f23565b6020026020010151604051602001613d5591906152ea565b6040516020818303038152906040528051906020012092506001915060005b86811015613db757848181518110613d8e57613d8e614f23565b60200260200101518403613da55760009250613db7565b80613daf81614f75565b915050613d74565b508115613e0a5782848781518110613dd157613dd1614f23565b6020026020010181815250506001858281518110613df157613df1614f23565b602090810291909101015285613e0681614f75565b9650505b80613e1481614f75565b915050613d22565b50505050915091565b6040805180820190915260008152606060208201526000806000806000876001600160a01b031663b1283e77886040518263ffffffff1660e01b8152600401613e7091815260200190565b61012060405180830381865afa158015613e8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eb29190615176565b50975097509750505095505094506000886001600160a01b031663c358c696896040518263ffffffff1660e01b8152600401613ef091815260200190565b600060405180830381865afa158015613f0d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613f359190810190615214565b90506000600360019054906101000a90046001600160a01b03166001600160a01b0316638ff9d5cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613f8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fb09190614eed565b6001600160a01b031663aa0cc0968888878988886040518763ffffffff1660e01b8152600401613fe596959493929190615321565b602060405180830381865afa158015614002573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614026919061536d565b90506000600360019054906101000a90046001600160a01b03166001600160a01b0316638ff9d5cf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561407d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140a19190614eed565b60405163514b756360e01b8152600481018a905261ffff8916602482015262ffffff871660448201526001600160a01b03919091169063514b756390606401600060405180830381865afa1580156140fd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526141259190810190614f8e565b905060405180604001604052808360038111156141445761414461460d565b8152602001919091529a9950505050505050505050565b604080516101208101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082019290925261010081019190915290565b6001600160a01b038116811461069c57600080fd5b6000602082840312156141d057600080fd5b8135611313816141a9565b801515811461069c57600080fd5b6000602082840312156141fb57600080fd5b8135611313816141db565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561423e5761423e614206565b60405290565b604051601f8201601f191681016001600160401b038111828210171561426c5761426c614206565b604052919050565b60006001600160401b0382111561428d5761428d614206565b5060051b60200190565b600082601f8301126142a857600080fd5b813560206142bd6142b883614274565b614244565b82815260059290921b840181019181810190868411156142dc57600080fd5b8286015b848110156142f757803583529183019183016142e0565b509695505050505050565b60008060006060848603121561431757600080fd5b83356001600160401b0381111561432d57600080fd5b61433986828701614297565b9660208601359650604090950135949350505050565b600081518084526020808501945080840160005b8381101561437f57815187529582019590820190600101614363565b509495945050505050565b606080825284519082018190526000906020906080840190828801845b828110156143c3578151845292840192908401906001016143a7565b505050838103828501526143d7818761434f565b905083810360408501528085518083528383019150838160051b84010184880160005b8381101561445757858303601f1901855281518051808552908801908885019060005b818110156144425783516001600160a01b03168352928a0192918a019160010161441d565b505095880195935050908601906001016143fa565b50909a9950505050505050505050565b60008083601f84011261447957600080fd5b5081356001600160401b0381111561449057600080fd5b6020830191508360208260051b85010111156144ab57600080fd5b9250929050565b600080602083850312156144c557600080fd5b82356001600160401b038111156144db57600080fd5b6144e785828601614467565b90969095509350505050565b600081518084526020808501945080840160005b8381101561437f578151805161ffff1688528381015160ff168489015260409081015160020b9088015260609096019590820190600101614507565b600082825180855260208086019550808260051b84010181860160005b8481101561460057858303601f190189528151805184528481015161ffff90811686860152604080830151909116908501526060808201519085015260808082015160020b9085015260a08082015162ffffff169085015260c08082015160ff169085015260e0808201519085015261010090810151610120918501829052906145ec818601836144f3565b9a86019a9450505090830190600101614560565b5090979650505050505050565b634e487b7160e01b600052602160045260246000fd5b600081518084526020808501945080840160005b8381101561437f57815160020b87529582019590820190600101614637565b600082825180855260208086019550808260051b8401018186016000805b858110156146d557601f19878503018a5282516040815160048082106146a757634e487b7160e01b865260218152602486fd5b50865290860151868601829052906146c181870183614623565b9b87019b9550505091840191600101614674565b509198975050505050505050565b600081518084526020808501808196508360051b8101915082860160005b85811015614860578284038952815180516001600160a01b031685526102c086820151818888015261473582880182614543565b9150506040808301518783038289015261474f8382614656565b9250505060608083015161476d828901826001600160a01b03169052565b50506080828101516001600160a01b03169087015260a0808301519087015260c0808301519087015260e0808301519087015261010080830151908701526101208083015190870152610140808301519087015261016080830151151590870152610180808301511515908701526101a0808301511515908701526101c0808301511515908701526101e08083015115159087015261020080830151151590870152610220808301519087015261024080830151151590870152610260808301511515908701526102808083015160ff16908701526102a091820151151591909501529784019790840190600101614701565b5091979650505050505050565b6020815260006106fc60208301846146e3565b6000806040838503121561489357600080fd5b823561489e816141a9565b91506020838101356001600160401b038111156148ba57600080fd5b8401601f810186136148cb57600080fd5b80356148d96142b882614274565b81815260059190911b820183019083810190888311156148f857600080fd5b928401925b8284101561491f578335614910816141a9565b825292840192908401906148fd565b80955050505050509250929050565b604081526000614941604083018561434f565b8281036020840152614953818561434f565b95945050505050565b6000806000806000806000806080898b03121561497857600080fd5b88356001600160401b038082111561498f57600080fd5b61499b8c838d01614467565b909a50985060208b01359150808211156149b457600080fd5b6149c08c838d01614467565b909850965060408b01359150808211156149d957600080fd5b6149e58c838d01614467565b909650945060608b01359150808211156149fe57600080fd5b50614a0b8b828c01614467565b999c989b5096995094979396929594505050565b6020808252825182820181905260009190848201906040850190845b81811015614a5757835183529284019291840191600101614a3b565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015614a5757614abf8385518051825261ffff602082015116602083015262ffffff6040820151166040830152606081015160020b60608301525050565b9284019260809290920191600101614a7f565b61ffff8116811461069c57600080fd5b600082601f830112614af357600080fd5b81356020614b036142b883614274565b82815260059290921b84018101918181019086841115614b2257600080fd5b8286015b848110156142f7578035614b3981614ad2565b8352918301918301614b26565b62ffffff8116811461069c57600080fd5b600082601f830112614b6857600080fd5b81356020614b786142b883614274565b82815260059290921b84018101918181019086841115614b9757600080fd5b8286015b848110156142f7578035614bae81614b46565b8352918301918301614b9b565b600080600060608486031215614bd057600080fd5b83356001600160401b0380821115614be757600080fd5b614bf387838801614297565b94506020860135915080821115614c0957600080fd5b614c1587838801614ae2565b93506040860135915080821115614c2b57600080fd5b50614c3886828701614b57565b9150509250925092565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015614c9757603f19888603018452614c85858351614623565b94509285019290850190600101614c69565b5092979650505050505050565b600080600060608486031215614cb957600080fd5b505081359360208301359350604090920135919050565b6020815260006106fc602083018461434f565b600080600060608486031215614cf857600080fd5b8335614d03816141a9565b92506020840135614d13816141a9565b91506040840135614d23816141a9565b809150509250925092565b600080600060608486031215614d4357600080fd5b8335614d4e816141a9565b95602085013595506040909401359392505050565b606081526000614d7660608301866146e3565b8281036020840152614d8881866146e3565b9050828103604084015261160181856146e3565b8060020b811461069c57600080fd5b60008060008060808587031215614dc157600080fd5b84356001600160401b0380821115614dd857600080fd5b614de488838901614297565b9550602091508187013581811115614dfb57600080fd5b614e0789828a01614ae2565b955050604087013581811115614e1c57600080fd5b614e2889828a01614b57565b945050606087013581811115614e3d57600080fd5b87019050601f81018813614e5057600080fd5b8035614e5e6142b882614274565b81815260059190911b8201830190838101908a831115614e7d57600080fd5b928401925b82841015614ea4578335614e9581614d9c565b82529284019290840190614e82565b979a9699509497505050505050565b6020808252825182820181905260009190848201906040850190845b81811015614a57578351151583529284019291840191600101614ecf565b600060208284031215614eff57600080fd5b8151611313816141a9565b600060208284031215614f1c57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156106ff576106ff614f39565b818103818111156106ff576106ff614f39565b600060018201614f8757614f87614f39565b5060010190565b60006020808385031215614fa157600080fd5b82516001600160401b03811115614fb757600080fd5b8301601f81018513614fc857600080fd5b8051614fd66142b882614274565b81815260059190911b82018301908381019087831115614ff557600080fd5b928401925b8284101561501c57835161500d81614d9c565b82529284019290840190614ffa565b979650505050505050565b6000602080838503121561503a57600080fd5b82516001600160401b0381111561505057600080fd5b8301601f8101851361506157600080fd5b805161506f6142b882614274565b81815260059190911b8201830190838101908783111561508e57600080fd5b928401925b8284101561501c5783516150a6816141a9565b82529284019290840190615093565b6000602082840312156150c757600080fd5b813561131381614ad2565b92835260208301919091526001600160a01b0316604082015260600190565b60006020828403121561510357600080fd5b8151611313816141db565b805160ff8116811461511f57600080fd5b919050565b60006020828403121561513657600080fd5b6106fc8261510e565b85815261ffff8516602082015262ffffff841660408201528260020b606082015260a06080820152600061501c60a08301846144f3565b60008060008060008060008060006101208a8c03121561519557600080fd5b8951985060208a01516151a781614ad2565b60408b01519098506151b881614ad2565b60608b015190975095506151ce60808b0161510e565b945060a08a01516151de81614d9c565b60c08b01519094506151ef81614b46565b92506151fd60e08b0161510e565b91506101008a015190509295985092959850929598565b6000602080838503121561522757600080fd5b82516001600160401b0381111561523d57600080fd5b8301601f8101851361524e57600080fd5b805161525c6142b882614274565b8181526060918202830184019184820191908884111561527b57600080fd5b938501935b838510156152de5780858a0312156152985760008081fd5b6152a061421c565b85516152ab81614ad2565b81526152b886880161510e565b878201526040808701516152cb81614d9c565b9082015283529384019391850191615280565b50979650505050505050565b8151815260208083015161ffff169082015260408083015162ffffff169082015260608083015160020b90820152608081016106ff565b86815261ffff8616602082015262ffffff851660408201528360020b606082015260ff8316608082015260c060a0820152600061536160c08301846144f3565b98975050505050505050565b60006020828403121561537f57600080fd5b81516004811061131357600080fdfea26469706673582212206ff9910b3a563ef9178c38a7abdcdd0ff39d55e99b85158e58dec93255a50fc064736f6c63430008140033