0 txs
1 call
constructor
No constructor.
functions
addressManager
viewfunction addressManager() view returns (address)
chainedSpeedMarketsAMM
viewfunction chainedSpeedMarketsAMM() view returns (address)
lastPauseTime
viewfunction lastPauseTime() view returns (uint256)
nominatedOwner
viewfunction nominatedOwner() view returns (address)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
speedMarketsAMM
viewfunction speedMarketsAMM() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
initialize
nonpayablefunction initialize(address _owner, address _speedMarketsAMM, address _addressManager)
initNonReentrant
nonpayablefunction initNonReentrant()
nominateNewOwner
nonpayablefunction nominateNewOwner(address _owner)
resolveChainedMarket
payablefunction resolveChainedMarket(address market, bytes[][] priceUpdateData) payable
resolveChainedMarketManually
nonpayablefunction resolveChainedMarketManually(address _market, int64[] _finalPrices)
resolveChainedMarketManuallyBatch
nonpayablefunction resolveChainedMarketManuallyBatch(address[] markets, int64[][] finalPrices)
resolveChainedMarketsBatch
payablefunction resolveChainedMarketsBatch(address[] markets, bytes[][][] priceUpdateData) payable
resolveChainedMarketsBatchOffRamp
payablefunction resolveChainedMarketsBatchOffRamp(address[] markets, bytes[][][] priceUpdateData, address collateral, bool toEth) payable
resolveChainedMarketWithOfframp
payablefunction resolveChainedMarketWithOfframp(address market, bytes[][] priceUpdateData, address collateral, bool toEth) payable
resolveMarket
payablefunction resolveMarket(address market, bytes[] priceUpdateData) payable
resolveMarketManually
nonpayablefunction resolveMarketManually(address _market, int64 _finalPrice)
resolveMarketManuallyBatch
nonpayablefunction resolveMarketManuallyBatch(address[] markets, int64[] finalPrices)
resolveMarketsBatch
payablefunction resolveMarketsBatch(address[] markets, bytes[] priceUpdateData) payable
resolveMarketsBatchOffRamp
payablefunction resolveMarketsBatchOffRamp(address[] markets, bytes[] priceUpdateData, address collateral, bool toEth) payable
resolveMarketWithOfframp
payablefunction resolveMarketWithOfframp(address market, bytes[] priceUpdateData, address collateral, bool toEth) payable
setChainedSpeedMarketsAMM
nonpayablefunction setChainedSpeedMarketsAMM(address _chainedSpeedMarketsAMM)
setOwner
nonpayablefunction setOwner(address _owner)
setPaused
nonpayablefunction setPaused(bool _paused)
setupMultiCollateralApproval
nonpayablefunction setupMultiCollateralApproval(uint256 amount)
transferOwnershipAtInit
nonpayablefunction transferOwnershipAtInit(address proxyAddress)
events
ChainedSpeedMarketsAMMSet
event ChainedSpeedMarketsAMMSet(address indexed _chainedSpeedMarketsAMM)
OwnerChanged
event OwnerChanged(address oldOwner, address newOwner)
OwnerNominated
event OwnerNominated(address newOwner)
PauseChanged
event PauseChanged(bool isPaused)
SetMulticollateralApproval
event SetMulticollateralApproval(uint256 amount)
errors
CanNotResolve
error CanNotResolve()
CollateralNotSupported
error CollateralNotSupported()
EtherTransferFailed
error EtherTransferFailed()
InvalidOffRampCollateral
error InvalidOffRampCollateral()
InvalidPrice
error InvalidPrice()
InvalidWhitelistAddress
error InvalidWhitelistAddress()
MismatchedLengths
error MismatchedLengths()
MulticollateralOnrampDisabled
error MulticollateralOnrampDisabled()
OnlyMarketOwner
error OnlyMarketOwner()
creation bytecode
0x608060405234801561001057600080fd5b5061586f80620000216000396000f3fe60806040526004361061017a5760003560e01c80638da5cb5b116100cc578063c3b83f5f1161007a578063c3b83f5f146103fe578063c6d9b3ff1461041e578063d3f6aa4014610431578063d9a10e9414610451578063da6b532f14610471578063dc17ea5b14610484578063ebc79772146104a457600080fd5b80638da5cb5b1461032e57806391b4ded91461035457806391befc191461037857806396c43be81461038b578063a3a2adf0146103ab578063a8da1a17146103be578063c0c53b8b146103de57600080fd5b80633ab76e9f116101295780633ab76e9f1461024e5780634832ea01146102895780634fcc4d271461029c57806353a47bb7146102bc5780635c975abb146102dc5780636043bf931461030657806379ba50971461031957600080fd5b8062df071f1461018657806313af40351461019b5780631627540c146101bb57806316c38b3c146101db57806317b94eac146101fb5780632c43dc831461020e5780633713e8701461022e57600080fd5b3661018157005b600080fd5b610199610194366004614fd9565b6104b9565b005b3480156101a757600080fd5b506101996101b6366004614deb565b61071a565b3480156101c757600080fd5b506101996101d6366004614deb565b610838565b3480156101e757600080fd5b506101996101f636600461513a565b61088b565b610199610209366004614e6d565b610901565b34801561021a57600080fd5b50610199610229366004614f71565b610979565b34801561023a57600080fd5b50610199610249366004614e6d565b610b35565b34801561025a57600080fd5b506005546102739061010090046001600160a01b031681565b60405161028091906152d0565b60405180910390f35b610199610297366004614fd9565b610be1565b3480156102a857600080fd5b506101996102b7366004614f71565b610e97565b3480156102c857600080fd5b50600154610273906001600160a01b031681565b3480156102e857600080fd5b506003546102f69060ff1681565b6040519015158152602001610280565b610199610314366004614ebf565b611048565b34801561032557600080fd5b5061019961115f565b34801561033a57600080fd5b50600054610273906201000090046001600160a01b031681565b34801561036057600080fd5b5061036a60025481565b604051908152602001610280565b610199610386366004614f71565b61124a565b34801561039757600080fd5b506101996103a6366004614deb565b6113fb565b6101996103b9366004614f71565b61144d565b3480156103ca57600080fd5b506101996103d9366004614f39565b61165e565b3480156103ea57600080fd5b506101996103f9366004614e23565b611708565b34801561040a57600080fd5b50610199610419366004614deb565b611b69565b61019961042c366004614e6d565b611c6c565b34801561043d57600080fd5b5061019961044c3660046151e1565b611cb8565b34801561045d57600080fd5b50600654610273906001600160a01b031681565b61019961047f366004614ebf565b611f9d565b34801561049057600080fd5b50600754610273906001600160a01b031681565b3480156104b057600080fd5b50610199612093565b6001600460008282546104cc9190615667565b909155505060045460035460ff16156105005760405162461bcd60e51b81526004016104f7906154cd565b60405180910390fd5b600760009054906101000a90046001600160a01b03166001600160a01b03166399c18e7e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561054e57600080fd5b505afa158015610562573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105869190615156565b6105a35760405163355da01160e11b815260040160405180910390fd5b60005b868110156106ef576007546001600160a01b03166314527f3a8989848181106105df57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906105f49190614deb565b6040518263ffffffff1660e01b815260040161061091906152d0565b60206040518083038186803b15801561062857600080fd5b505afa15801561063c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106609190615156565b156106df576106df88888381811061068857634e487b7160e01b600052603260045260246000fd5b905060200201602081019061069d9190614deb565b8787848181106106bd57634e487b7160e01b600052603260045260246000fd5b90506020028101906106cf9190615561565b6106d8916156e0565b86866120f1565b6106e8816157a0565b90506105a6565b5060045481146107115760405162461bcd60e51b81526004016104f79061552a565b50505050505050565b6001600160a01b03811661076c5760405162461bcd60e51b815260206004820152601960248201527804f776e657220616464726573732063616e6e6f74206265203603c1b60448201526064016104f7565b600154600160a01b900460ff16156107d85760405162461bcd60e51b815260206004820152602960248201527f416c726561647920696e697469616c697a65642c20757365206e6f6d696e617460448201526832a732bba7bbb732b960b91b60648201526084016104f7565b6001805460ff60a01b1916600160a01b179055600080546001600160a01b038316620100000262010000600160b01b031990911617815560405160008051602061581a8339815191529161082d9184906152e4565b60405180910390a150565b610840612743565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229061082d9083906152d0565b610893612743565b60035460ff16151581151514156108a75750565b6003805460ff191682151590811790915560ff16156108c557426002555b60035460405160ff909116151581527f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59060200161082d565b50565b6001600460008282546109149190615667565b909155505060045460035460ff161561093f5760405162461bcd60e51b81526004016104f7906154cd565b6109528461094d8486615767565b6127bd565b60045481146109735760405162461bcd60e51b81526004016104f79061552a565b50505050565b60065460405162d9267b60e31b81526001600160a01b03909116906306c933d8906109a89033906004016152d0565b60206040518083038186803b1580156109c057600080fd5b505afa1580156109d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f89190615156565b610a1557604051634d553d1960e01b815260040160405180910390fd5b8260005b81811015610b2d576000868683818110610a4357634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610a589190614deb565b600654604051630a293f9d60e11b81529192506001600160a01b0316906314527f3a90610a899084906004016152d0565b60206040518083038186803b158015610aa157600080fd5b505afa158015610ab5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad99190615156565b15610b1c57610b1c81868685818110610b0257634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610b1791906151a9565b61304d565b50610b26816157a0565b9050610a19565b505050505050565b60065460405162d9267b60e31b81526001600160a01b03909116906306c933d890610b649033906004016152d0565b60206040518083038186803b158015610b7c57600080fd5b505afa158015610b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb49190615156565b610bd157604051634d553d1960e01b815260040160405180910390fd5b610bdc83838361358b565b505050565b600160046000828254610bf49190615667565b909155505060045460035460ff1615610c1f5760405162461bcd60e51b81526004016104f7906154cd565b600660009054906101000a90046001600160a01b03166001600160a01b03166399c18e7e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c6d57600080fd5b505afa158015610c81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca59190615156565b610cc25760405163355da01160e11b815260040160405180910390fd5b60005b868110156106ef576006546001600160a01b03166314527f3a898984818110610cfe57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610d139190614deb565b6040518263ffffffff1660e01b8152600401610d2f91906152d0565b60206040518083038186803b158015610d4757600080fd5b505afa158015610d5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7f9190615156565b15610e8757604080516001808252818301909252600091816020015b6060815260200190600190039081610d9b579050509050868683818110610dd257634e487b7160e01b600052603260045260246000fd5b9050602002810190610de491906155a8565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250855186945090925015159050610e3a57634e487b7160e01b600052603260045260246000fd5b6020026020010181905250610e85898984818110610e6857634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610e7d9190614deb565b828787613bf5565b505b610e90816157a0565b9050610cc5565b60065460405162d9267b60e31b81526001600160a01b03909116906306c933d890610ec69033906004016152d0565b60206040518083038186803b158015610ede57600080fd5b505afa158015610ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f169190615156565b610f3357604051634d553d1960e01b815260040160405180910390fd5b8260005b81811015610b2d576000868683818110610f6157634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610f769190614deb565b600754604051630a293f9d60e11b81529192506001600160a01b0316906314527f3a90610fa79084906004016152d0565b60206040518083038186803b158015610fbf57600080fd5b505afa158015610fd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff79190615156565b15611037576110378186868581811061102057634e487b7160e01b600052603260045260246000fd5b90506020028101906110329190615561565b61358b565b50611041816157a0565b9050610f37565b60016004600082825461105b9190615667565b909155505060045460035460ff16156110865760405162461bcd60e51b81526004016104f7906154cd565b600760009054906101000a90046001600160a01b03166001600160a01b03166399c18e7e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156110d457600080fd5b505afa1580156110e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110c9190615156565b6111295760405163355da01160e11b815260040160405180910390fd5b61113e8661113786886156e0565b85856120f1565b6004548114610b2d5760405162461bcd60e51b81526004016104f79061552a565b6001546001600160a01b031633146111d75760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b60648201526084016104f7565b60005460015460405160008051602061581a8339815191529261120e926001600160a01b03620100009092048216929116906152e4565b60405180910390a1600180546000805462010000600160b01b0319166001600160a01b03831662010000021790556001600160a01b0319169055565b60016004600082825461125d9190615667565b909155505060045460035460ff16156112885760405162461bcd60e51b81526004016104f7906154cd565b60005b848110156113d2576007546001600160a01b03166314527f3a8787848181106112c457634e487b7160e01b600052603260045260246000fd5b90506020020160208101906112d99190614deb565b6040518263ffffffff1660e01b81526004016112f591906152d0565b60206040518083038186803b15801561130d57600080fd5b505afa158015611321573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113459190615156565b156113c2576113c286868381811061136d57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906113829190614deb565b8585848181106113a257634e487b7160e01b600052603260045260246000fd5b90506020028101906113b49190615561565b6113bd916156e0565b614004565b6113cb816157a0565b905061128b565b5060045481146113f45760405162461bcd60e51b81526004016104f79061552a565b5050505050565b611403612743565b600780546001600160a01b0319166001600160a01b0383169081179091556040517f5d9de7aede86bb8f066e68761179e1a100795879b5ae7a37ef2f31c007f063b990600090a250565b6001600460008282546114609190615667565b909155505060045460035460ff161561148b5760405162461bcd60e51b81526004016104f7906154cd565b60005b848110156113d2576006546001600160a01b03166314527f3a8787848181106114c757634e487b7160e01b600052603260045260246000fd5b90506020020160208101906114dc9190614deb565b6040518263ffffffff1660e01b81526004016114f891906152d0565b60206040518083038186803b15801561151057600080fd5b505afa158015611524573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115489190615156565b1561164e57604080516001808252818301909252600091816020015b606081526020019060019003908161156457905050905084848381811061159b57634e487b7160e01b600052603260045260246000fd5b90506020028101906115ad91906155a8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525085518694509092501515905061160357634e487b7160e01b600052603260045260246000fd5b602002602001018190525061164c87878481811061163157634e487b7160e01b600052603260045260246000fd5b90506020020160208101906116469190614deb565b826127bd565b505b611657816157a0565b905061148e565b60065460405162d9267b60e31b81526001600160a01b03909116906306c933d89061168d9033906004016152d0565b60206040518083038186803b1580156116a557600080fd5b505afa1580156116b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116dd9190615156565b6116fa57604051634d553d1960e01b815260040160405180910390fd5b611704828261304d565b5050565b600054610100900460ff166117235760005460ff1615611727565b303b155b61178a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104f7565b600054610100900460ff161580156117ac576000805461ffff19166101011790555b6117b58461071a565b600680546001600160a01b0319166001600160a01b038581169190911790915560058054610100600160a81b0319166101008584168102919091179182905560405163bf40fac160e01b8152602060048201526016602482015275436861696e656453706565644d61726b657473414d4d60501b604482015291049091169063bf40fac19060640160206040518083038186803b15801561185557600080fd5b505afa158015611869573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188d9190614e07565b600780546001600160a01b0319166001600160a01b0392831617905560055460408051639a618c0f60e01b8152905160009361010090930490921691639a618c0f91600480820192602092909190829003018186803b1580156118ef57600080fd5b505afa158015611903573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119279190614e07565b90506001600160a01b03811615611b4957600660009054906101000a90046001600160a01b03166001600160a01b0316639324cac76040518163ffffffff1660e01b815260040160206040518083038186803b15801561198657600080fd5b505afa15801561199a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119be9190614e07565b6001600160a01b031663095ea7b3826000196040518363ffffffff1660e01b81526004016119ed9291906153c9565b602060405180830381600087803b158015611a0757600080fd5b505af1158015611a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3f9190615156565b50600760009054906101000a90046001600160a01b03166001600160a01b0316639324cac76040518163ffffffff1660e01b815260040160206040518083038186803b158015611a8e57600080fd5b505afa158015611aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac69190614e07565b6001600160a01b031663095ea7b3826000196040518363ffffffff1660e01b8152600401611af59291906153c9565b602060405180830381600087803b158015611b0f57600080fd5b505af1158015611b23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b479190615156565b505b611b51612093565b508015610973576000805461ff001916905550505050565b611b71612743565b6001600160a01b038116611bb95760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016104f7565b600154600160a81b900460ff1615611c095760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481d1c985b9cd9995c9c9959606a1b60448201526064016104f7565b600080546001600160a01b038084166201000090810262010000600160b01b031990931692909217928390556001805460ff60a81b1916600160a81b17905560405160008051602061581a8339815191529361082d9390049091169084906152e4565b600160046000828254611c7f9190615667565b909155505060045460035460ff1615611caa5760405162461bcd60e51b81526004016104f7906154cd565b610952846113bd84866156e0565b611cc0612743565b6000600560019054906101000a90046001600160a01b03166001600160a01b0316639a618c0f6040518163ffffffff1660e01b815260040160206040518083038186803b158015611d1057600080fd5b505afa158015611d24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d489190614e07565b90506001600160a01b03811615611f6657600660009054906101000a90046001600160a01b03166001600160a01b0316639324cac76040518163ffffffff1660e01b815260040160206040518083038186803b158015611da757600080fd5b505afa158015611dbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ddf9190614e07565b6001600160a01b031663095ea7b382846040518363ffffffff1660e01b8152600401611e0c9291906153c9565b602060405180830381600087803b158015611e2657600080fd5b505af1158015611e3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5e9190615156565b50600760009054906101000a90046001600160a01b03166001600160a01b0316639324cac76040518163ffffffff1660e01b815260040160206040518083038186803b158015611ead57600080fd5b505afa158015611ec1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee59190614e07565b6001600160a01b031663095ea7b382846040518363ffffffff1660e01b8152600401611f129291906153c9565b602060405180830381600087803b158015611f2c57600080fd5b505af1158015611f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f649190615156565b505b6040518281527fd00a8c07b9962c31dae343ff6cb70fd3af214b2f7013afa7258ec5a939fb71109060200160405180910390a15050565b600160046000828254611fb09190615667565b909155505060045460035460ff1615611fdb5760405162461bcd60e51b81526004016104f7906154cd565b600660009054906101000a90046001600160a01b03166001600160a01b03166399c18e7e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561202957600080fd5b505afa15801561203d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120619190615156565b61207e5760405163355da01160e11b815260040160405180910390fd5b61113e8661208c8688615767565b8585613bf5565b60055460ff16156120dc5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064016104f7565b6005805460ff19166001908117909155600455565b6000846001600160a01b0316634f8632ba6040518163ffffffff1660e01b815260040160206040518083038186803b15801561212c57600080fd5b505afa158015612140573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121649190614e07565b9050336001600160a01b0382161461218f5760405163bd03358160e01b815260040160405180910390fd5b6000856001600160a01b031663d8dfeb456040518163ffffffff1660e01b815260040160206040518083038186803b1580156121ca57600080fd5b505afa1580156121de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122029190614e07565b9050600760009054906101000a90046001600160a01b03166001600160a01b0316639324cac76040518163ffffffff1660e01b815260040160206040518083038186803b15801561225257600080fd5b505afa158015612266573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061228a9190614e07565b6001600160a01b0316816001600160a01b0316146122bb576040516311c77c3560e21b815260040160405180910390fd5b60075460408051639324cac760e01b815290516000926001600160a01b031691639324cac7916004808301926020929190829003018186803b15801561230057600080fd5b505afa158015612314573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123389190614e07565b6001600160a01b03166370a08231846040518263ffffffff1660e01b815260040161236391906152d0565b60206040518083038186803b15801561237b57600080fd5b505afa15801561238f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b39190615172565b90506123bf8787614004565b600081600760009054906101000a90046001600160a01b03166001600160a01b0316639324cac76040518163ffffffff1660e01b815260040160206040518083038186803b15801561241057600080fd5b505afa158015612424573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124489190614e07565b6001600160a01b03166370a08231866040518263ffffffff1660e01b815260040161247391906152d0565b60206040518083038186803b15801561248b57600080fd5b505afa15801561249f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c39190615172565b6124cd91906156c9565b600754604051636dcf6def60e01b81529192506001600160a01b031690636dcf6def9061250090879085906004016153c9565b600060405180830381600087803b15801561251a57600080fd5b505af115801561252e573d6000803e3d6000fd5b505050506000811115612739576000600560019054906101000a90046001600160a01b03166001600160a01b0316639a618c0f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561258b57600080fd5b505afa15801561259f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c39190614e07565b9050851561269c5760405163b45e98d960e01b8152600481018390526000906001600160a01b0383169063b45e98d990602401602060405180830381600087803b15801561261057600080fd5b505af1158015612624573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126489190615172565b60405190915086906000906001600160a01b0383169084156108fc0290859084818181858888f1935050505090508061269457604051630ce8f45160e31b815260040160405180910390fd5b505050612737565b604051630992646d60e31b81526000906001600160a01b03831690634c932368906126cd908b9087906004016153c9565b602060405180830381600087803b1580156126e757600080fd5b505af11580156126fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271f9190615172565b90506127356001600160a01b0389168783614994565b505b505b5050505050505050565b6000546201000090046001600160a01b031633146127bb5760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b60648201526084016104f7565b565b600654604051630a293f9d60e11b81526001600160a01b03909116906314527f3a906127ed9085906004016152d0565b60206040518083038186803b15801561280557600080fd5b505afa158015612819573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061283d9190615156565b61285a576040516309f4985b60e21b815260040160405180910390fd5b60008290506000600560019054906101000a90046001600160a01b03166001600160a01b031663f98d06f06040518163ffffffff1660e01b815260040160206040518083038186803b1580156128af57600080fd5b505afa1580156128c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128e79190614e07565b6040805160018082528183019092529192506000919060208083019080368337019050509050600660009054906101000a90046001600160a01b03166001600160a01b031663bd47a9b8846001600160a01b03166338d52e0f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561296a57600080fd5b505afa15801561297e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a29190615172565b6040518263ffffffff1660e01b81526004016129c091815260200190565b60206040518083038186803b1580156129d857600080fd5b505afa1580156129ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a109190615172565b81600081518110612a3157634e487b7160e01b600052603260045260246000fd5b6020026020010181815250506000600660009054906101000a90046001600160a01b03166001600160a01b031663cf898ca96040518163ffffffff1660e01b815260040160206040518083038186803b158015612a8d57600080fd5b505afa158015612aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ac591906151f9565b90506000836001600160a01b0316634716e9c5856001600160a01b031663d47eed45896040518263ffffffff1660e01b8152600401612b04919061540d565b60206040518083038186803b158015612b1c57600080fd5b505afa158015612b30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b549190615172565b8886896001600160a01b03166351d8044f6040518163ffffffff1660e01b815260040160206040518083038186803b158015612b8f57600080fd5b505afa158015612ba3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc791906151f9565b878b6001600160a01b03166351d8044f6040518163ffffffff1660e01b815260040160206040518083038186803b158015612c0157600080fd5b505afa158015612c15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c3991906151f9565b612c43919061567f565b6040518663ffffffff1660e01b8152600401612c629493929190615420565b6000604051808303818588803b158015612c7b57600080fd5b505af1158015612c8f573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052612cb8919081019061506a565b9050600081600081518110612cdd57634e487b7160e01b600052603260045260246000fd5b60200260200101516020015190506000816000015160070b13612d125760405162bfc92160e01b815260040160405180910390fd5b600654815160405163b0308e0760e01b81526001600160a01b038b8116600483015260079290920b602482015291169063b0308e0790604401600060405180830381600087803b158015612d6557600080fd5b505af1158015612d79573d6000803e3d6000fd5b505060055460405163bf40fac160e01b8152600093506101009091046001600160a01b0316915063bf40fac190612db2906004016154a5565b60206040518083038186803b158015612dca57600080fd5b505afa158015612dde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e029190614e07565b9050806001600160a01b0316876001600160a01b0316634f8632ba6040518163ffffffff1660e01b815260040160206040518083038186803b158015612e4757600080fd5b505afa158015612e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e7f9190614e07565b6001600160a01b0316141561273757806001600160a01b03166318b030f38a896001600160a01b03166363bd1d4a6040518163ffffffff1660e01b815260040160206040518083038186803b158015612ed757600080fd5b505afa158015612eeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f0f9190615172565b8a6001600160a01b0316631fcc8bb26040518163ffffffff1660e01b815260040160206040518083038186803b158015612f4857600080fd5b505afa158015612f5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f809190615172565b8b6001600160a01b031663d8dfeb456040518163ffffffff1660e01b815260040160206040518083038186803b158015612fb957600080fd5b505afa158015612fcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ff19190614e07565b6040518563ffffffff1660e01b815260040161301094939291906153e2565b600060405180830381600087803b15801561302a57600080fd5b505af115801561303e573d6000803e3d6000fd5b50505050505050505050505050565b60008290506000816001600160a01b031663645539ed6040518163ffffffff1660e01b815260040160206040518083038186803b15801561308d57600080fd5b505afa1580156130a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130c5919061518a565b90506000826001600160a01b031663c52987cf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561310257600080fd5b505afa158015613116573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061313a91906151c5565b905060008160070b8560070b1280156131725750600183600181111561317057634e487b7160e01b600052602160045260246000fd5b145b806131ac57508160070b8560070b1380156131ac575060008360018111156131aa57634e487b7160e01b600052602160045260246000fd5b145b600654604051630a293f9d60e11b81529192506001600160a01b0316906314527f3a906131dd9089906004016152d0565b60206040518083038186803b1580156131f557600080fd5b505afa158015613209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061322d9190615156565b15806132365750805b15613254576040516309f4985b60e21b815260040160405180910390fd5b60065460405163b0308e0760e01b81526001600160a01b038881166004830152600788900b60248301529091169063b0308e0790604401600060405180830381600087803b1580156132a557600080fd5b505af11580156132b9573d6000803e3d6000fd5b505060055460405163bf40fac160e01b8152600093506101009091046001600160a01b0316915063bf40fac1906132f2906004016154a5565b60206040518083038186803b15801561330a57600080fd5b505afa15801561331e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133429190614e07565b9050806001600160a01b0316856001600160a01b0316634f8632ba6040518163ffffffff1660e01b815260040160206040518083038186803b15801561338757600080fd5b505afa15801561339b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133bf9190614e07565b6001600160a01b0316141561071157806001600160a01b03166318b030f388876001600160a01b03166363bd1d4a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561341757600080fd5b505afa15801561342b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061344f9190615172565b886001600160a01b0316631fcc8bb26040518163ffffffff1660e01b815260040160206040518083038186803b15801561348857600080fd5b505afa15801561349c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c09190615172565b896001600160a01b031663d8dfeb456040518163ffffffff1660e01b815260040160206040518083038186803b1580156134f957600080fd5b505afa15801561350d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135319190614e07565b6040518563ffffffff1660e01b815260040161355094939291906153e2565b600060405180830381600087803b15801561356a57600080fd5b505af115801561357e573d6000803e3d6000fd5b5050505050505050505050565b60008390506000816001600160a01b031663855d68cb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156135cb57600080fd5b505afa1580156135df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061360391906151c5565b90506000826001600160a01b031663e004b5bf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561364057600080fd5b505afa158015613654573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136789190615213565b60ff166001600160401b038111156136a057634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156136c9578160200160208202803683370190505b50905060005b84811015613bdb57604051635f51b5c760e01b8152600481018290526001600160a01b03851690635f51b5c79060240160206040518083038186803b15801561371757600080fd5b505afa15801561372b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061374f919061518a565b82828151811061376f57634e487b7160e01b600052603260045260246000fd5b6020026020010190600181111561379657634e487b7160e01b600052602160045260246000fd5b908160018111156137b757634e487b7160e01b600052602160045260246000fd5b8152505060008360070b8787848181106137e157634e487b7160e01b600052603260045260246000fd5b90506020020160208101906137f691906151a9565b60070b1215801561384d5750600183838151811061382457634e487b7160e01b600052603260045260246000fd5b6020026020010151600181111561384b57634e487b7160e01b600052602160045260246000fd5b145b806138e357508360070b87878481811061387757634e487b7160e01b600052603260045260246000fd5b905060200201602081019061388c91906151a9565b60070b131580156138e3575060008383815181106138ba57634e487b7160e01b600052603260045260246000fd5b602002602001015160018111156138e157634e487b7160e01b600052602160045260246000fd5b145b90508015613b9057600754604051632236aa6560e01b81526001600160a01b0390911690632236aa6590613922908b908b908b906001906004016152fe565b600060405180830381600087803b15801561393c57600080fd5b505af1158015613950573d6000803e3d6000fd5b505060055460405163bf40fac160e01b8152600093506101009091046001600160a01b0316915063bf40fac190613989906004016154a5565b60206040518083038186803b1580156139a157600080fd5b505afa1580156139b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139d99190614e07565b9050806001600160a01b0316866001600160a01b0316634f8632ba6040518163ffffffff1660e01b815260040160206040518083038186803b158015613a1e57600080fd5b505afa158015613a32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a569190614e07565b6001600160a01b0316141561273757806001600160a01b03166318b030f38a886001600160a01b03166363bd1d4a6040518163ffffffff1660e01b815260040160206040518083038186803b158015613aae57600080fd5b505afa158015613ac2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ae69190615172565b896001600160a01b0316631fcc8bb26040518163ffffffff1660e01b815260040160206040518083038186803b158015613b1f57600080fd5b505afa158015613b33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b579190615172565b8a6001600160a01b031663d8dfeb456040518163ffffffff1660e01b815260040160206040518083038186803b158015612fb957600080fd5b868683818110613bb057634e487b7160e01b600052603260045260246000fd5b9050602002016020810190613bc591906151a9565b9350508080613bd3906157a0565b9150506136cf565b506040516309f4985b60e21b815260040160405180910390fd5b6000846001600160a01b0316634f8632ba6040518163ffffffff1660e01b815260040160206040518083038186803b158015613c3057600080fd5b505afa158015613c44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c689190614e07565b9050336001600160a01b03821614613c935760405163bd03358160e01b815260040160405180910390fd5b6000856001600160a01b031663d8dfeb456040518163ffffffff1660e01b815260040160206040518083038186803b158015613cce57600080fd5b505afa158015613ce2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d069190614e07565b9050600660009054906101000a90046001600160a01b03166001600160a01b0316639324cac76040518163ffffffff1660e01b815260040160206040518083038186803b158015613d5657600080fd5b505afa158015613d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d8e9190614e07565b6001600160a01b0316816001600160a01b031614613dbf576040516311c77c3560e21b815260040160405180910390fd5b60065460408051639324cac760e01b815290516000926001600160a01b031691639324cac7916004808301926020929190829003018186803b158015613e0457600080fd5b505afa158015613e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e3c9190614e07565b6001600160a01b03166370a08231846040518263ffffffff1660e01b8152600401613e6791906152d0565b60206040518083038186803b158015613e7f57600080fd5b505afa158015613e93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eb79190615172565b9050613ec387876127bd565b600081600660009054906101000a90046001600160a01b03166001600160a01b0316639324cac76040518163ffffffff1660e01b815260040160206040518083038186803b158015613f1457600080fd5b505afa158015613f28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f4c9190614e07565b6001600160a01b03166370a08231866040518263ffffffff1660e01b8152600401613f7791906152d0565b60206040518083038186803b158015613f8f57600080fd5b505afa158015613fa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fc79190615172565b613fd191906156c9565b600654604051636dcf6def60e01b81529192506001600160a01b031690636dcf6def9061250090879085906004016153c9565b600754604051630a293f9d60e11b81526001600160a01b03909116906314527f3a906140349085906004016152d0565b60206040518083038186803b15801561404c57600080fd5b505afa158015614060573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140849190615156565b6140a1576040516309f4985b60e21b815260040160405180910390fd5b6000600560019054906101000a90046001600160a01b03166001600160a01b031663f98d06f06040518163ffffffff1660e01b815260040160206040518083038186803b1580156140f157600080fd5b505afa158015614105573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141299190614e07565b60408051600180825281830190925291925060009190602080830190803683375050600654604080516338d52e0f60e01b8152905193945087936001600160a01b03928316935063bd47a9b8928516916338d52e0f916004808301926020929190829003018186803b15801561419e57600080fd5b505afa1580156141b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d69190615172565b6040518263ffffffff1660e01b81526004016141f491815260200190565b60206040518083038186803b15801561420c57600080fd5b505afa158015614220573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142449190615172565b8260008151811061426557634e487b7160e01b600052603260045260246000fd5b602002602001018181525050600084516001600160401b0381111561429a57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156142c3578160200160208202803683370190505b5090506000805b865181101561465d57836001600160a01b0316638b13b64b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561430c57600080fd5b505afa158015614320573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061434491906151f9565b614357906001600160401b0316826156aa565b846001600160a01b03166320c1bb466040518163ffffffff1660e01b815260040160206040518083038186803b15801561439057600080fd5b505afa1580156143a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143c891906151f9565b6143d2919061567f565b91506000866001600160a01b0316634716e9c5886001600160a01b031663d47eed458b868151811061441457634e487b7160e01b600052603260045260246000fd5b60200260200101516040518263ffffffff1660e01b8152600401614438919061540d565b60206040518083038186803b15801561445057600080fd5b505afa158015614464573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144889190615172565b8a85815181106144a857634e487b7160e01b600052603260045260246000fd5b60200260200101518987600660009054906101000a90046001600160a01b03166001600160a01b031663cf898ca96040518163ffffffff1660e01b815260040160206040518083038186803b15801561450057600080fd5b505afa158015614514573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061453891906151f9565b614542908a61567f565b6040518663ffffffff1660e01b81526004016145619493929190615420565b6000604051808303818588803b15801561457a57600080fd5b505af115801561458e573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526145b7919081019061506a565b90506000816000815181106145dc57634e487b7160e01b600052603260045260246000fd5b60200260200101516020015190506000816000015160070b136146115760405162bfc92160e01b815260040160405180910390fd5b806000015185848151811061463657634e487b7160e01b600052603260045260246000fd5b602002602001019060070b908160070b81525050505080614656906157a0565b90506142ca565b50600754604051632236aa6560e01b81526001600160a01b0390911690632236aa6590614693908a908690600090600401615365565b600060405180830381600087803b1580156146ad57600080fd5b505af11580156146c1573d6000803e3d6000fd5b505060055460405163bf40fac160e01b8152600093506101009091046001600160a01b0316915063bf40fac1906146fa906004016154a5565b60206040518083038186803b15801561471257600080fd5b505afa158015614726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061474a9190614e07565b9050806001600160a01b0316846001600160a01b0316634f8632ba6040518163ffffffff1660e01b815260040160206040518083038186803b15801561478f57600080fd5b505afa1580156147a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147c79190614e07565b6001600160a01b0316141561273957806001600160a01b03166318b030f389866001600160a01b03166363bd1d4a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561481f57600080fd5b505afa158015614833573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148579190615172565b876001600160a01b0316631fcc8bb26040518163ffffffff1660e01b815260040160206040518083038186803b15801561489057600080fd5b505afa1580156148a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148c89190615172565b886001600160a01b031663d8dfeb456040518163ffffffff1660e01b815260040160206040518083038186803b15801561490157600080fd5b505afa158015614915573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149399190614e07565b6040518563ffffffff1660e01b815260040161495894939291906153e2565b600060405180830381600087803b15801561497257600080fd5b505af1158015614986573d6000803e3d6000fd5b505050505050505050505050565b610bdc8363a9059cbb60e01b84846040516024016149b39291906153c9565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526000614a3a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614ab79092919063ffffffff16565b805190915015610bdc5780806020019051810190614a589190615156565b610bdc5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016104f7565b6060614ac68484600085614ad0565b90505b9392505050565b606082471015614b315760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016104f7565b843b614b7f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104f7565b600080866001600160a01b03168587604051614b9b91906152b4565b60006040518083038185875af1925050503d8060008114614bd8576040519150601f19603f3d011682016040523d82523d6000602084013e614bdd565b606091505b5091509150614bed828286614bf8565b979650505050505050565b60608315614c07575081614ac9565b825115614c175782518084602001fd5b8160405162461bcd60e51b81526004016104f79190615492565b6000614c44614c3f84615644565b615614565b9050808382526020808301915083868660051b86011115614c6457600080fd5b60005b86811015614cf85781356001600160401b0380821115614c8657600080fd5b8188019150601f8a81840112614c9b57600080fd5b823582811115614cad57614cad6157d1565b614cbe818301601f19168801615614565b92508083528b87828601011115614cd457600080fd5b80878501888501376000908301870152508552509282019290820190600101614c67565b505050509392505050565b60008083601f840112614d14578182fd5b5081356001600160401b03811115614d2a578182fd5b6020830191508360208260051b8501011115614d4557600080fd5b9250929050565b600060808284031215614d5d578081fd5b604051608081018181106001600160401b0382111715614d7f57614d7f6157d1565b80604052508091508251614d928161580a565b8152614da060208401614dcf565b602082015260408301518060030b8114614db957600080fd5b6040820152606092830151920191909152919050565b80516001600160401b0381168114614de657600080fd5b919050565b600060208284031215614dfc578081fd5b8135614ac9816157e7565b600060208284031215614e18578081fd5b8151614ac9816157e7565b600080600060608486031215614e37578182fd5b8335614e42816157e7565b92506020840135614e52816157e7565b91506040840135614e62816157e7565b809150509250925092565b600080600060408486031215614e81578081fd5b8335614e8c816157e7565b925060208401356001600160401b03811115614ea6578182fd5b614eb286828701614d03565b9497909650939450505050565b600080600080600060808688031215614ed6578283fd5b8535614ee1816157e7565b945060208601356001600160401b03811115614efb578384fd5b614f0788828901614d03565b9095509350506040860135614f1b816157e7565b91506060860135614f2b816157fc565b809150509295509295909350565b60008060408385031215614f4b578182fd5b8235614f56816157e7565b91506020830135614f668161580a565b809150509250929050565b60008060008060408587031215614f86578182fd5b84356001600160401b0380821115614f9c578384fd5b614fa888838901614d03565b90965094506020870135915080821115614fc0578384fd5b50614fcd87828801614d03565b95989497509550505050565b60008060008060008060808789031215614ff1578384fd5b86356001600160401b0380821115615007578586fd5b6150138a838b01614d03565b9098509650602089013591508082111561502b578586fd5b5061503889828a01614d03565b909550935050604087013561504c816157e7565b9150606087013561505c816157fc565b809150509295509295509295565b6000602080838503121561507c578182fd5b82516001600160401b03811115615091578283fd5b8301601f810185136150a1578283fd5b80516150af614c3f82615644565b81815283810190838501610120808502860187018a10156150ce578788fd5b8795505b8486101561512c5780828b0312156150e8578788fd5b6150f06155ec565b825181526151008b898501614d4c565b888201526151118b60a08501614d4c565b604082015284526001959095019492860192908101906150d2565b509098975050505050505050565b60006020828403121561514b578081fd5b8135614ac9816157fc565b600060208284031215615167578081fd5b8151614ac9816157fc565b600060208284031215615183578081fd5b5051919050565b60006020828403121561519b578081fd5b815160028110614ac9578182fd5b6000602082840312156151ba578081fd5b8135614ac98161580a565b6000602082840312156151d6578081fd5b8151614ac98161580a565b6000602082840312156151f2578081fd5b5035919050565b60006020828403121561520a578081fd5b614ac982614dcf565b600060208284031215615224578081fd5b815160ff81168114614ac9578182fd5b600081518084526020808501808196508360051b81019150828601855b8581101561527b578284038952615269848351615288565b98850198935090840190600101615251565b5091979650505050505050565b600081518084526152a0816020860160208601615774565b601f01601f19169290920160200192915050565b600082516152c6818460208701615774565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b038516815260606020808301829052908201849052600090859060808401835b8781101561534d5783356153388161580a565b60070b82529282019290820190600101615325565b50809350505050821515604083015295945050505050565b6001600160a01b038416815260606020808301829052845191830182905260009185820191906080850190845b818110156153b157845160070b83529383019391830191600101615392565b50508093505050508215156040830152949350505050565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03948516815260208101939093526040830191909152909116606082015260800190565b602081526000614ac96020830184615234565b6080815260006154336080830187615234565b828103602084810191909152865180835287820192820190845b818110156154695784518352938301939183019160010161544d565b50506001600160401b039687166040860152949095166060909301929092525090949350505050565b602081526000614ac96020830184615288565b6020808252600e908201526d233932b2a132ba39a437b63232b960911b604082015260600190565b6020808252603c908201527f5468697320616374696f6e2063616e6e6f7420626520706572666f726d65642060408201527f7768696c652074686520636f6e74726163742069732070617573656400000000606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6000808335601e19843603018112615577578283fd5b8301803591506001600160401b03821115615590578283fd5b6020019150600581901b3603821315614d4557600080fd5b6000808335601e198436030181126155be578283fd5b8301803591506001600160401b038211156155d7578283fd5b602001915036819003821315614d4557600080fd5b604051606081016001600160401b038111828210171561560e5761560e6157d1565b60405290565b604051601f8201601f191681016001600160401b038111828210171561563c5761563c6157d1565b604052919050565b60006001600160401b0382111561565d5761565d6157d1565b5060051b60200190565b6000821982111561567a5761567a6157bb565b500190565b60006001600160401b038083168185168083038211156156a1576156a16157bb565b01949350505050565b60008160001904831182151516156156c4576156c46157bb565b500290565b6000828210156156db576156db6157bb565b500390565b60006156ee614c3f84615644565b808482526020808301925084368760051b8701111561570b578485fd5b845b8781101561575b5781356001600160401b0381111561572a578687fd5b870136601f82011261573a578687fd5b615748368235868401614c31565b865250938201939082019060010161570d565b50919695505050505050565b6000614ac9368484614c31565b60005b8381101561578f578181015183820152602001615777565b838111156109735750506000910152565b60006000198214156157b4576157b46157bb565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146108fe57600080fd5b80151581146108fe57600080fd5b8060070b81146108fe57600080fdfeb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159ca2646970667358221220657ec124fc2b5834b33514735e84ae7a91d19cb4dc4d2413f0ccfac43d67490664736f6c63430008040033