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)
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
0x608060405234801561001057600080fd5b50614ebe806100206000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80638da5cb5b116100de578063c3b83f5f11610097578063e211088411610071578063e2110884146103bf578063e81e52ee146103d2578063f39d03b8146103e5578063f518a5cf1461044557600080fd5b8063c3b83f5f14610372578063c992528814610385578063ddd576071461039d57600080fd5b80638da5cb5b146102ef57806391b4ded914610302578063b60d370714610319578063b71a6cf91461032c578063b7dab9301461034c578063c0c53b8b1461035f57600080fd5b8063563b27c41161014b578063604ab8b411610125578063604ab8b41461029457806362ca8460146102b45780636b43bc82146102c757806379ba5097146102e757600080fd5b8063563b27c4146102375780635c975abb146102575780635fb1162d1461027457600080fd5b806313af4035146101935780631627540c146101a857806316c38b3c146101bb57806345e94eb8146101ce57806347842663146101f957806353a47bb714610224575b600080fd5b6101a66101a1366004613db4565b610465565b005b6101a66101b6366004613db4565b61059b565b6101a66101c9366004613ddf565b6105f1565b6101e16101dc366004613ef8565b610663565b6040516101f093929190613f80565b60405180910390f35b60045461020c906001600160a01b031681565b6040516001600160a01b0390911681526020016101f0565b60015461020c906001600160a01b031681565b61024a6102453660046140a8565b610682565b6040516101f09190614456565b6003546102649060ff1681565b60405190151581526020016101f0565b610287610282366004614469565b6106c9565b6040516101f0919061452c565b6102a76102a2366004613ef8565b610841565b6040516101f09190614570565b6101a66102c2366004613db4565b610cbd565b6102da6102d53660046146c8565b610d13565b6040516101f0919061474f565b6101a6610f10565b60005461020c906001600160a01b031681565b61030b60025481565b6040519081526020016101f0565b61024a6103273660046147b1565b610ffa565b61033f61033a3660046140a8565b611201565b6040516101f091906147dd565b61033f61035a366004614469565b611311565b6101a661036d3660046147f0565b6114bb565b6101a6610380366004613db4565b61160a565b60035461020c9061010090046001600160a01b031681565b6103b06103ab36600461483b565b611713565b6040516101f093929190614870565b6103b06103cd36600461483b565b611aa3565b6101a66103e0366004613db4565b611dd4565b6103ed611e32565b6040516101f09190600060e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a0830151151560a083015260c083015160c083015292915050565b6104586104533660046148b8565b6121e7565b6040516101f091906149c0565b6001600160a01b0381166104c05760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f7420626520300000000000000060448201526064015b60405180910390fd5b600154600160a01b900460ff161561052c5760405162461bcd60e51b815260206004820152602960248201527f416c726561647920696e697469616c697a65642c20757365206e6f6d696e617460448201526832a732bba7bbb732b960b91b60648201526084016104b7565b6001805460ff60a01b1916600160a01b179055600080546001600160a01b0383166001600160a01b0319909116811782556040805192835260208301919091527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91015b60405180910390a150565b6105a361253c565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290602001610590565b6105f961253c565b60035460ff16151581151514610660576003805460ff191682151590811790915560ff161561062757426002555b60035460405160ff909116151581527f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec590602001610590565b50565b60608060606106738686866125b0565b91989097509095509350505050565b60606106c0838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612a5492505050565b90505b92915050565b6060876001600160401b038111156106e3576106e3613dfc565b60405190808252806020026020018201604052801561070c578160200160208202803683370190505b50905060005b88811015610834576004546001600160a01b031663ca9ef2e68b8b8481811061073d5761073d6149fa565b905060200201358a8a85818110610756576107566149fa565b9050602002013589898681811061076f5761076f6149fa565b90506020020135888887818110610788576107886149fa565b905060200201356040518563ffffffff1660e01b81526004016107c4949392919093845260208401929092526040830152606082015260800190565b602060405180830381865afa1580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190614a10565b828281518110610817576108176149fa565b60209081029190910101528061082c81614a3f565b915050610712565b5098975050505050505050565b6060806060806108528787876125b0565b919450925090506000805b845181101561094f5760005b84828151811061087b5761087b6149fa565b602002602001015181101561093c5783828151811061089c5761089c6149fa565b602002602001015181815181106108b5576108b56149fa565b60200260200101516001600160a01b03166362e5c8196040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091e9190614a10565b6109289084614a58565b92508061093481614a3f565b915050610869565b508061094781614a3f565b91505061085d565b506000816001600160401b0381111561096a5761096a613dfc565b6040519080825280602002602001820160405280156109bc57816020015b6040805160808101825260008082526020808301829052928201819052606082015282526000199092019101816109885790505b509050600091506109cb613d51565b60005b8651811015610bad5760005b8682815181106109ec576109ec6149fa565b6020026020010151811015610b9a576000868381518110610a0f57610a0f6149fa565b60200260200101518281518110610a2857610a286149fa565b6020026020010151905060005b816001600160a01b03166362e5c8196040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a979190614a10565b811015610b8557610aa8828261371c565b94508460000151868881518110610ac157610ac16149fa565b602002602001015160000181815250508460400151868881518110610ae857610ae86149fa565b60200260200101516020019061ffff16908161ffff16815250508460a00151868881518110610b1957610b196149fa565b60200260200101516040019062ffffff16908162ffffff16815250508460800151868881518110610b4c57610b4c6149fa565b60200260200101516060019060020b908160020b815250508680610b6f90614a3f565b9750508080610b7d90614a3f565b915050610a35565b50508080610b9290614a3f565b9150506109da565b5080610ba581614a3f565b9150506109ce565b50610bb782613882565b95509250826001600160401b03811115610bd357610bd3613dfc565b604051908082528060200260200182016040528015610c2557816020015b604080516080810182526000808252602080830182905292820181905260608201528252600019909201910181610bf15790505b5096506000925060005b8251811015610caf57858181518110610c4a57610c4a6149fa565b6020026020010151600103610c9d57828181518110610c6b57610c6b6149fa565b6020026020010151888581518110610c8557610c856149fa565b602002602001018190525083610c9a90614a3f565b93505b80610ca781614a3f565b915050610c2f565b505050505050509392505050565b610cc561253c565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527fde93646733d5d7f1fb776a284cd4a3d76db86799b2789f91c07cdb2b45dc6d4c90602001610590565b606082518451148015610d27575081518351145b15610f095783516001600160401b03811115610d4557610d45613dfc565b604051908082528060200260200182016040528015610d7857816020015b6060815260200190600190039081610d635790505b50905060005b8451811015610f0757600360019054906101000a90046001600160a01b03166001600160a01b0316638ff9d5cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfe9190614a6b565b6001600160a01b031663514b7563868381518110610e1e57610e1e6149fa565b6020026020010151868481518110610e3857610e386149fa565b6020026020010151868581518110610e5257610e526149fa565b60200260200101516040518463ffffffff1660e01b8152600401610e929392919092835261ffff91909116602083015262ffffff16604082015260600190565b600060405180830381865afa158015610eaf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed79190810190614a88565b828281518110610ee957610ee96149fa565b60200260200101819052508080610eff90614a3f565b915050610d7e565b505b9392505050565b6001546001600160a01b03163314610f885760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b60648201526084016104b7565b600054600154604080516001600160a01b0393841681529290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60606000600360019054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611051573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110759190614a6b565b6001600160a01b0316635c3aa11b866040518263ffffffff1660e01b81526004016110a291815260200190565b602060405180830381865afa1580156110bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e39190614a10565b90508083116110f257826110f4565b805b92506000600360019054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa15801561114b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116f9190614a6b565b604051633a30376f60e11b81526004810187905260248101869052604481018890526001600160a01b0391909116906374606ede90606401600060405180830381865afa1580156111c4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111ec9190810190614b21565b90506111f781612a54565b9695505050505050565b6060816001600160401b0381111561121b5761121b613dfc565b604051908082528060200260200182016040528015611244578160200160208202803683370190505b50905060005b8281101561130a576004546001600160a01b03166305954ad4858584818110611275576112756149fa565b905060200201356040518263ffffffff1660e01b815260040161129a91815260200190565b602060405180830381865afa1580156112b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112db9190614a10565b8282815181106112ed576112ed6149fa565b60209081029190910101528061130281614a3f565b91505061124a565b5092915050565b6060876001600160401b0381111561132b5761132b613dfc565b604051908082528060200260200182016040528015611354578160200160208202803683370190505b50905060005b88811015610834576004546001600160a01b03166359dc82578b8b84818110611385576113856149fa565b905060200201358a8a8581811061139e5761139e6149fa565b90506020020160208101906113b39190614baf565b8989868181106113c5576113c56149fa565b90506020020160208101906113da9190614baf565b6000808a8a898181106113ef576113ef6149fa565b60405160e08a901b6001600160e01b0319168152600481019890985261ffff968716602489015294909516604487015262ffffff92909216606486015260020b60848501526020909102013560a483015250600060c482015260e401602060405180830381865afa158015611468573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148c9190614a10565b82828151811061149e5761149e6149fa565b6020908102919091010152806114b381614a3f565b91505061135a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156115005750825b90506000826001600160401b0316600114801561151c5750303b155b90508115801561152a575080155b156115485760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561157257845460ff60401b1916600160401b1785555b61157b88610465565b60038054610100600160a81b0319166101006001600160a01b038a81169190910291909117909155600480546001600160a01b031916918816919091179055831561160057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b61161261253c565b6001600160a01b03811661165a5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016104b7565b600154600160a81b900460ff16156116aa5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481d1c985b9cd9995c9c9959606a1b60448201526064016104b7565b600080546001600160a01b0383166001600160a01b031990911681179091556001805460ff60a81b1916600160a81b1790556040805182815260208101929092527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9101610590565b60608060606000600360019054906101000a90046001600160a01b03166001600160a01b031663ce18a8376040518163ffffffff1660e01b8152600401602060405180830381865afa15801561176d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117919190614a6b565b6001600160a01b031663485b23bf87878a6040518463ffffffff1660e01b81526004016117c093929190614bcc565b600060405180830381865afa1580156117dd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118059190810190614b21565b90506000600360019054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa15801561185c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118809190614a6b565b6001600160a01b031663485b23bf88888b6040518463ffffffff1660e01b81526004016118af93929190614bcc565b600060405180830381865afa1580156118cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118f49190810190614b21565b90506118ff81612a54565b945061190a82612a54565b935060006001600160a01b0316600360019054906101000a90046001600160a01b03166001600160a01b0316630fe621906040518163ffffffff1660e01b8152600401602060405180830381865afa15801561196a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198e9190614a6b565b6001600160a01b031614611a98576000600360019054906101000a90046001600160a01b03166001600160a01b0316630fe621906040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a159190614a6b565b6001600160a01b031663485b23bf89898c6040518463ffffffff1660e01b8152600401611a4493929190614bcc565b600060405180830381865afa158015611a61573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a899190810190614b21565b9050611a9481612a54565b9350505b505093509350939050565b60608060606000600360019054906101000a90046001600160a01b03166001600160a01b031663ce18a8376040518163ffffffff1660e01b8152600401602060405180830381865afa158015611afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b219190614a6b565b6001600160a01b031663dd37861d87878a6040518463ffffffff1660e01b8152600401611b5093929190614bcc565b600060405180830381865afa158015611b6d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b959190810190614b21565b90506000600360019054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c109190614a6b565b6001600160a01b031663dd37861d88888b6040518463ffffffff1660e01b8152600401611c3f93929190614bcc565b600060405180830381865afa158015611c5c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c849190810190614b21565b9050611c8f81612a54565b9450611c9a82612a54565b935060006001600160a01b0316600360019054906101000a90046001600160a01b03166001600160a01b0316630fe621906040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d1e9190614a6b565b6001600160a01b031614611a98576000600360019054906101000a90046001600160a01b03166001600160a01b0316630fe621906040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da59190614a6b565b6001600160a01b031663dd37861d89898c6040518463ffffffff1660e01b8152600401611a4493929190614bcc565b611ddc61253c565b60038054610100600160a81b0319166101006001600160a01b038416908102919091179091556040519081527f576297e5fcc8cd907ee80b240284865eb3d821bdc5232e6ee9e4d78a12531c0990602001610590565b611e746040518060e001604052806000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600081525090565b6040518060e00160405280600460009054906101000a90046001600160a01b03166001600160a01b031663c6334f9f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ed2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef69190614a10565b8152602001600460009054906101000a90046001600160a01b03166001600160a01b03166341dcd5fe6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f729190614a10565b8152602001600460009054906101000a90046001600160a01b03166001600160a01b031663422f96bf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fee9190614a10565b8152602001600460009054906101000a90046001600160a01b03166001600160a01b031663e88698bf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612046573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206a9190614a10565b8152602001600360019054906101000a90046001600160a01b03166001600160a01b03166338ea71036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e69190614a10565b8152602001600360019054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561213e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121629190614beb565b15158152602001600460009054906101000a90046001600160a01b03166001600160a01b031663e20222136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e09190614a10565b9052919050565b6060835185511480156121fb575082518451145b156125345784516001600160401b0381111561221957612219613dfc565b604051908082528060200260200182016040528015612242578160200160208202803683370190505b50905060005b8551811015612532576000600360019054906101000a90046001600160a01b03166001600160a01b0316638ff9d5cf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ca9190614a6b565b6001600160a01b031663914008bc8784815181106122ea576122ea6149fa565b60200260200101516040518263ffffffff1660e01b8152600401612318919061ffff91909116815260200190565b602060405180830381865afa158015612335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123599190614c1e565b905060ff811660031461251f5760408051600080825260208201909252816123a9565b604080516060810182526000808252602080830182905292820152825260001990920191018161237c5790505b509050600360019054906101000a90046001600160a01b03166001600160a01b0316638ff9d5cf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124239190614a6b565b6001600160a01b031663397f7823898581518110612443576124436149fa565b602002602001015189868151811061245d5761245d6149fa565b6020026020010151898781518110612477576124776149fa565b6020026020010151898881518110612491576124916149fa565b6020026020010151866040518663ffffffff1660e01b81526004016124ba959493929190614c39565b602060405180830381865afa1580156124d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124fb9190614beb565b84848151811061250d5761250d6149fa565b91151560209283029190910190910152505b508061252a81614a3f565b915050612248565b505b949350505050565b6000546001600160a01b031633146125ae5760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b60648201526084016104b7565b565b6060806060855184116125c357836125c6565b85515b93506000846001600160401b038111156125e2576125e2613dfc565b60405190808252806020026020018201604052801561260b578160200160208202803683370190505b5090506000865b86811015612762576000600360019054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa15801561266f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126939190614a6b565b6001600160a01b0316635c3aa11b8b84815181106126b3576126b36149fa565b60200260200101516040518263ffffffff1660e01b81526004016126d991815260200190565b602060405180830381865afa1580156126f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271a9190614a10565b9050801561274f578261272c81614a3f565b93505080848381518110612742576127426149fa565b6020026020010181815250505b508061275a81614a3f565b915050612612565b50806001600160401b0381111561277b5761277b613dfc565b6040519080825280602002602001820160405280156127a4578160200160208202803683370190505b509450806001600160401b038111156127bf576127bf613dfc565b6040519080825280602002602001820160405280156127e8578160200160208202803683370190505b509350806001600160401b0381111561280357612803613dfc565b60405190808252806020026020018201604052801561283657816020015b60608152602001906001900390816128215790505b5092506000905060005b8851811015612a4857600083828151811061285d5761285d6149fa565b60200260200101511115612a365788818151811061287d5761287d6149fa565b6020026020010151868381518110612897576128976149fa565b6020026020010181815250508281815181106128b5576128b56149fa565b60200260200101518583815181106128cf576128cf6149fa565b602002602001018181525050600360019054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa15801561292e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129529190614a6b565b6001600160a01b03166374606ede6000858481518110612974576129746149fa565b60200260200101518c858151811061298e5761298e6149fa565b60200260200101516040518463ffffffff1660e01b81526004016129c5939291909283526020830191909152604082015260600190565b600060405180830381865afa1580156129e2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a0a9190810190614b21565b848381518110612a1c57612a1c6149fa565b60200260200101819052508180612a3290614a3f565b9250505b80612a4081614a3f565b915050612840565b50505093509350939050565b6060600082516001600160401b03811115612a7157612a71613dfc565b604051908082528060200260200182016040528015612b5057816020015b604080516102c08101825260008082526060602080840182905293830181905282018190526080820181905260a0820181905260c0820181905260e08201819052610100820181905261012082018190526101408201819052610160820181905261018082018190526101a082018190526101c082018190526101e08201819052610200820181905261022082018190526102408201819052610260820181905261028082018190526102a08201528252600019909201910181612a8f5790505b50905060005b835181101561130a576000848281518110612b7357612b736149fa565b602002602001015190506000816001600160a01b03166362e5c8196040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612be19190614a10565b6001600160401b03811115612bf857612bf8613dfc565b604051908082528060200260200182016040528015612c3157816020015b612c1e613d51565b815260200190600190039081612c165790505b5090506000826001600160a01b03166362e5c8196040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c989190614a10565b6001600160401b03811115612caf57612caf613dfc565b604051908082528060200260200182016040528015612cf557816020015b604080518082019091526000815260606020820152815260200190600190039081612ccd5790505b50905060005b836001600160a01b03166362e5c8196040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d5d9190614a10565b811015612dc557612d6e848261371c565b838281518110612d8057612d806149fa565b6020026020010181905250612d958482613a1b565b828281518110612da757612da76149fa565b60200260200101819052508080612dbd90614a3f565b915050612cfb565b506000600360019054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3f9190614a6b565b6040516320dcb23360e01b81526001600160a01b03868116600483015291909116906320dcb23390602401602060405180830381865afa158015612e87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eab9190614beb565b90506000600360019054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f269190614a6b565b604051633d2e50f360e21b81526001600160a01b038781166004830152919091169063f4b943cc90602401602060405180830381865afa158015612f6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f929190614beb565b9050604051806102c001604052808a8881518110612fb257612fb26149fa565b60200260200101516001600160a01b03168152602001858152602001848152602001866001600160a01b031663d8dfeb456040518163ffffffff1660e01b8152600401602060405180830381865afa158015613012573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130369190614a6b565b6001600160a01b03168152602001866001600160a01b031662641e8b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613081573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130a59190614a6b565b6001600160a01b03168152602001866001600160a01b031663d165dac26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131159190614a10565b8152602001866001600160a01b0316639af1d35a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613158573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061317c9190614a10565b8152602001866001600160a01b031663400e69ef6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131e39190614a10565b8152602001866001600160a01b03166362e5c8196040518163ffffffff1660e01b8152600401602060405180830381865afa158015613226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061324a9190614a10565b8152602001866001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561328d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132b19190614a10565b8152602001866001600160a01b031663cf09e0d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133189190614a10565b8152602001866001600160a01b0316633f6fa6556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561335b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061337f9190614beb565b15158152602001866001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133e89190614beb565b15158152602001866001600160a01b0316639a82a09a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561342d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134519190614beb565b15158152602001866001600160a01b031663085d03ee6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134ba9190614beb565b15158152602001866001600160a01b0316633356a35a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135239190614beb565b15158152602001866001600160a01b031663e74d3c476040518163ffffffff1660e01b8152600401602060405180830381865afa158015613568573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061358c9190614beb565b15158152602001866001600160a01b031663242a8a6b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135f59190614a10565b8152602001866001600160a01b031663b8f7a6656040518163ffffffff1660e01b8152600401602060405180830381865afa158015613638573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061365c9190614beb565b151581526020018315158152602001836136775760006136d9565b866001600160a01b031663eef8889b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136d99190614c1e565b60ff1681526020018215158152508787815181106136f9576136f96149fa565b60200260200101819052505050505050808061371490614a3f565b915050612b56565b613724613d51565b6000806000806000806000808a6001600160a01b031663b1283e778b6040518263ffffffff1660e01b815260040161375e91815260200190565b61012060405180830381865afa15801561377c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137a09190614c70565b985098509850985050975097509750975060008b6001600160a01b031663c358c6968c6040518263ffffffff1660e01b81526004016137e191815260200190565b600060405180830381865afa1580156137fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526138269190810190614d0e565b60408051610120810182529a8b5261ffff998a1660208c01529790981696890196909652606088019490945260029290920b608087015262ffffff1660a086015260ff1660c085015260e0840152506101008201529392505050565b60006060600083516001600160401b038111156138a1576138a1613dfc565b6040519080825280602002602001820160405280156138ca578160200160208202803683370190505b50905083516001600160401b038111156138e6576138e6613dfc565b60405190808252806020026020018201604052801561390f578160200160208202803683370190505b50915060008060005b8651811015613a1257868181518110613933576139336149fa565b602002602001015160405160200161394b9190614de4565b6040516020818303038152906040528051906020012092506001915060005b868110156139ad57848181518110613984576139846149fa565b6020026020010151840361399b57600092506139ad565b806139a581614a3f565b91505061396a565b508115613a0057828487815181106139c7576139c76149fa565b60200260200101818152505060018582815181106139e7576139e76149fa565b6020908102919091010152856139fc81614a3f565b9650505b80613a0a81614a3f565b915050613918565b50505050915091565b6040805180820190915260008152606060208201526000806000806000876001600160a01b031663b1283e77886040518263ffffffff1660e01b8152600401613a6691815260200190565b61012060405180830381865afa158015613a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aa89190614c70565b50975097509750505095505094506000886001600160a01b031663c358c696896040518263ffffffff1660e01b8152600401613ae691815260200190565b600060405180830381865afa158015613b03573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613b2b9190810190614d0e565b90506000600360019054906101000a90046001600160a01b03166001600160a01b0316638ff9d5cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ba69190614a6b565b6001600160a01b031663aa0cc0968888878988886040518763ffffffff1660e01b8152600401613bdb96959493929190614e1b565b602060405180830381865afa158015613bf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c1c9190614e67565b90506000600360019054906101000a90046001600160a01b03166001600160a01b0316638ff9d5cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613c73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c979190614a6b565b60405163514b756360e01b8152600481018a905261ffff8916602482015262ffffff871660448201526001600160a01b03919091169063514b756390606401600060405180830381865afa158015613cf3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613d1b9190810190614a88565b90506040518060400160405280836003811115613d3a57613d3a614206565b8152602001919091529a9950505050505050505050565b604080516101208101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082019290925261010081019190915290565b6001600160a01b038116811461066057600080fd5b600060208284031215613dc657600080fd5b8135610f0981613d9f565b801515811461066057600080fd5b600060208284031215613df157600080fd5b8135610f0981613dd1565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715613e3457613e34613dfc565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613e6257613e62613dfc565b604052919050565b60006001600160401b03821115613e8357613e83613dfc565b5060051b60200190565b600082601f830112613e9e57600080fd5b81356020613eb3613eae83613e6a565b613e3a565b82815260059290921b84018101918181019086841115613ed257600080fd5b8286015b84811015613eed5780358352918301918301613ed6565b509695505050505050565b600080600060608486031215613f0d57600080fd5b83356001600160401b03811115613f2357600080fd5b613f2f86828701613e8d565b9660208601359650604090950135949350505050565b600081518084526020808501945080840160005b83811015613f7557815187529582019590820190600101613f59565b509495945050505050565b606080825284519082018190526000906020906080840190828801845b82811015613fb957815184529284019290840190600101613f9d565b50505083810382850152613fcd8187613f45565b905083810360408501528085518083528383019150838160051b84010184880160005b8381101561404d57858303601f1901855281518051808552908801908885019060005b818110156140385783516001600160a01b03168352928a0192918a0191600101614013565b50509588019593505090860190600101613ff0565b50909a9950505050505050505050565b60008083601f84011261406f57600080fd5b5081356001600160401b0381111561408657600080fd5b6020830191508360208260051b85010111156140a157600080fd5b9250929050565b600080602083850312156140bb57600080fd5b82356001600160401b038111156140d157600080fd5b6140dd8582860161405d565b90969095509350505050565b600081518084526020808501945080840160005b83811015613f75578151805161ffff1688528381015160ff168489015260409081015160020b90880152606090960195908201906001016140fd565b600081518084526020808501808196508360051b8101915082860160005b858110156141f9578284038952815161012081518652868201516141808888018261ffff169052565b5060408281015161ffff16908701526060808301519087015260808083015160020b9087015260a08083015162ffffff169087015260c08083015160ff169087015260e08083015190870152610100918201519186018190526141e5818701836140e9565b9a87019a9550505090840190600101614157565b5091979650505050505050565b634e487b7160e01b600052602160045260246000fd5b600081518084526020808501945080840160005b83811015613f7557815160020b87529582019590820190600101614230565b600081518084526020808501808196508360051b810191508286016000805b868110156142cb578385038a52825160408151600480821061429d57634e487b7160e01b865260218152602486fd5b50875290870151878701829052906142b78188018361421c565b9b88019b965050509185019160010161426e565b509298975050505050505050565b600081518084526020808501808196508360051b8101915082860160005b858110156141f9578284038952815180516001600160a01b031685526102c086820151818888015261432b82880182614139565b91505060408083015187830382890152614345838261424f565b92505050606080830151614363828901826001600160a01b03169052565b50506080828101516001600160a01b03169087015260a0808301519087015260c0808301519087015260e0808301519087015261010080830151908701526101208083015190870152610140808301519087015261016080830151151590870152610180808301511515908701526101a0808301511515908701526101c0808301511515908701526101e08083015115159087015261020080830151151590870152610220808301519087015261024080830151151590870152610260808301511515908701526102808083015160ff16908701526102a0918201511515919095015297840197908401906001016142f7565b6020815260006106c060208301846142d9565b6000806000806000806000806080898b03121561448557600080fd5b88356001600160401b038082111561449c57600080fd5b6144a88c838d0161405d565b909a50985060208b01359150808211156144c157600080fd5b6144cd8c838d0161405d565b909850965060408b01359150808211156144e657600080fd5b6144f28c838d0161405d565b909650945060608b013591508082111561450b57600080fd5b506145188b828c0161405d565b999c989b5096995094979396929594505050565b6020808252825182820181905260009190848201906040850190845b8181101561456457835183529284019291840191600101614548565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015614564576145cc8385518051825261ffff602082015116602083015262ffffff6040820151166040830152606081015160020b60608301525050565b928401926080929092019160010161458c565b61ffff8116811461066057600080fd5b600082601f83011261460057600080fd5b81356020614610613eae83613e6a565b82815260059290921b8401810191818101908684111561462f57600080fd5b8286015b84811015613eed578035614646816145df565b8352918301918301614633565b62ffffff8116811461066057600080fd5b600082601f83011261467557600080fd5b81356020614685613eae83613e6a565b82815260059290921b840181019181810190868411156146a457600080fd5b8286015b84811015613eed5780356146bb81614653565b83529183019183016146a8565b6000806000606084860312156146dd57600080fd5b83356001600160401b03808211156146f457600080fd5b61470087838801613e8d565b9450602086013591508082111561471657600080fd5b614722878388016145ef565b9350604086013591508082111561473857600080fd5b5061474586828701614664565b9150509250925092565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156147a457603f1988860301845261479285835161421c565b94509285019290850190600101614776565b5092979650505050505050565b6000806000606084860312156147c657600080fd5b505081359360208301359350604090920135919050565b6020815260006106c06020830184613f45565b60008060006060848603121561480557600080fd5b833561481081613d9f565b9250602084013561482081613d9f565b9150604084013561483081613d9f565b809150509250925092565b60008060006060848603121561485057600080fd5b833561485b81613d9f565b95602085013595506040909401359392505050565b60608152600061488360608301866142d9565b828103602084015261489581866142d9565b905082810360408401526111f781856142d9565b8060020b811461066057600080fd5b600080600080608085870312156148ce57600080fd5b84356001600160401b03808211156148e557600080fd5b6148f188838901613e8d565b955060209150818701358181111561490857600080fd5b61491489828a016145ef565b95505060408701358181111561492957600080fd5b61493589828a01614664565b94505060608701358181111561494a57600080fd5b87019050601f8101881361495d57600080fd5b803561496b613eae82613e6a565b81815260059190911b8201830190838101908a83111561498a57600080fd5b928401925b828410156149b15783356149a2816148a9565b8252928401929084019061498f565b979a9699509497505050505050565b6020808252825182820181905260009190848201906040850190845b818110156145645783511515835292840192918401916001016149dc565b634e487b7160e01b600052603260045260246000fd5b600060208284031215614a2257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600060018201614a5157614a51614a29565b5060010190565b808201808211156106c3576106c3614a29565b600060208284031215614a7d57600080fd5b8151610f0981613d9f565b60006020808385031215614a9b57600080fd5b82516001600160401b03811115614ab157600080fd5b8301601f81018513614ac257600080fd5b8051614ad0613eae82613e6a565b81815260059190911b82018301908381019087831115614aef57600080fd5b928401925b82841015614b16578351614b07816148a9565b82529284019290840190614af4565b979650505050505050565b60006020808385031215614b3457600080fd5b82516001600160401b03811115614b4a57600080fd5b8301601f81018513614b5b57600080fd5b8051614b69613eae82613e6a565b81815260059190911b82018301908381019087831115614b8857600080fd5b928401925b82841015614b16578351614ba081613d9f565b82529284019290840190614b8d565b600060208284031215614bc157600080fd5b8135610f09816145df565b92835260208301919091526001600160a01b0316604082015260600190565b600060208284031215614bfd57600080fd5b8151610f0981613dd1565b805160ff81168114614c1957600080fd5b919050565b600060208284031215614c3057600080fd5b6106c082614c08565b85815261ffff8516602082015262ffffff841660408201528260020b606082015260a060808201526000614b1660a08301846140e9565b60008060008060008060008060006101208a8c031215614c8f57600080fd5b8951985060208a0151614ca1816145df565b60408b0151909850614cb2816145df565b60608b01519097509550614cc860808b01614c08565b945060a08a0151614cd8816148a9565b60c08b0151909450614ce981614653565b9250614cf760e08b01614c08565b91506101008a015190509295985092959850929598565b60006020808385031215614d2157600080fd5b82516001600160401b03811115614d3757600080fd5b8301601f81018513614d4857600080fd5b8051614d56613eae82613e6a565b81815260609182028301840191848201919088841115614d7557600080fd5b938501935b83851015614dd85780858a031215614d925760008081fd5b614d9a613e12565b8551614da5816145df565b8152614db2868801614c08565b87820152604080870151614dc5816148a9565b9082015283529384019391850191614d7a565b50979650505050505050565b8151815260208083015161ffff169082015260408083015162ffffff169082015260608083015160020b90820152608081016106c3565b86815261ffff8616602082015262ffffff851660408201528360020b606082015260ff8316608082015260c060a08201526000614e5b60c08301846140e9565b98975050505050505050565b600060208284031215614e7957600080fd5b815160048110610f0957600080fdfea2646970667358221220cedf33aaf598349355472e0577acffe1dd9c0d4aa7fc248fd3477085ce4dc6c364736f6c63430008140033