0 txs
1 call
constructor
constructor()
functions
getLimitOrder
viewfunction getLimitOrder(uint256 tokenId) view returns (tuple order)
MODULE_KEY
viewfunction MODULE_KEY() view returns (bytes32)
vault
viewfunction vault() view returns (address)
announceLimitOrder
nonpayablefunction announceLimitOrder(uint256 tokenId, uint256 priceLowerThreshold, uint256 priceUpperThreshold)
cancelExistingLimitOrder
nonpayablefunction cancelExistingLimitOrder(uint256 tokenId)
cancelLimitOrder
nonpayablefunction cancelLimitOrder(uint256 tokenId)
deleteLimitOrder
nonpayablefunction deleteLimitOrder(uint256 tokenId)
executeLimitOrder
payablefunction executeLimitOrder(uint256 tokenId, bytes[] priceUpdateData) payable
initialize
nonpayablefunction initialize(address _vault)
resetExecutionTime
nonpayablefunction resetExecutionTime(uint256 tokenId)
setVault
nonpayablefunction setVault(address _vault)
events
Initialized
event Initialized(uint64 version)
LimitOrderAnnounced
event LimitOrderAnnounced(address account, uint256 tokenId, uint256 priceLowerThreshold, uint256 priceUpperThreshold)
LimitOrderCancelled
event LimitOrderCancelled(address account, uint256 tokenId)
LimitOrderExecuted
event LimitOrderExecuted(address account, uint256 tokenId, uint256 keeperFee, uint256 price, uint8 limitOrderType)
errors
ExecutableTimeNotReached
error ExecutableTimeNotReached(uint256 executableTime)
InvalidInitialization
error InvalidInitialization()
InvalidThresholds
error InvalidThresholds(uint256 priceLowerThreshold, uint256 priceUpperThreshold)
InvariantViolation
error InvariantViolation(string variableName)
LimitOrderInvalid
error LimitOrderInvalid(uint256 tokenId)
LimitOrderPriceNotInRange
error LimitOrderPriceNotInRange(uint256 price, uint256 priceLowerThreshold, uint256 priceUpperThreshold)
ModuleKeyEmpty
error ModuleKeyEmpty()
NotInitializing
error NotInitializing()
NotTokenOwner
error NotTokenOwner(uint256 tokenId, address msgSender)
OnlyAuthorizedModule
error OnlyAuthorizedModule(address msgSender)
OnlyOwner
error OnlyOwner(address msgSender)
Paused
error Paused(bytes32 moduleKey)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
ZeroAddress
error ZeroAddress(string variableName)
creation bytecode
0x60806040523480156200001157600080fd5b506200001c62000022565b620000d6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000735760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d35780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b612c0280620000e66000396000f3fe6080604052600436106100ac5760003560e01c80636817031b11610074578063d0ca65fc1161004e578063d0ca65fc146101bc578063e859f372146101dc578063fbfa77cf146101fc57600080fd5b80636817031b1461015c578063a5cdc8fc1461017c578063c4d66de81461019c57600080fd5b806318dc3190146100b157806335aea3c1146100d35780633d23b9ca146100f3578063414ca0931461011c578063530610261461012f575b600080fd5b3480156100bd57600080fd5b506100d16100cc366004612560565b610234565b005b3480156100df57600080fd5b506100d16100ee366004612560565b6103b3565b3480156100ff57600080fd5b5061010960005481565b6040519081526020015b60405180910390f35b6100d161012a366004612579565b6106cb565b34801561013b57600080fd5b5061014f61014a366004612560565b610b78565b6040516101139190612699565b34801561016857600080fd5b506100d16101773660046126c8565b610ca2565b34801561018857600080fd5b506100d1610197366004612560565b610da6565b3480156101a857600080fd5b506100d16101b73660046126c8565b610f2f565b3480156101c857600080fd5b506100d16101d73660046126e5565b61106a565b3480156101e857600080fd5b506100d16101f7366004612560565b6113c4565b34801561020857600080fd5b5060015461021c906001600160a01b031681565b6040516001600160a01b039091168152602001610113565b60015460405163399dd46360e01b81523360048201526001600160a01b039091169063399dd46390602401602060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190612711565b15156000036102c957604051633b9e98fd60e11b81523360048201526024015b60405180910390fd5b600660008281526032602052604090205460ff1660068111156102ee576102ee6125f8565b036103b057600160009054906101000a90046001600160a01b03166001600160a01b031663027566a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610346573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036a9190612733565b61037e9067ffffffffffffffff1642612773565b6000828152603260205260409020600201805467ffffffffffffffff191667ffffffffffffffff929092169190911790555b50565b60015460405163399dd46360e01b81523360048201526001600160a01b039091169063399dd46390602401602060405180830381865afa1580156103fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041f9190612711565b151560000361044357604051633b9e98fd60e11b81523360048201526024016102c0565b600660008281526032602052604090205460ff166006811115610468576104686125f8565b036103b0576000818152603260205260408120805460ff191681556001810182905560028101805467ffffffffffffffff19169055906104ab6003830182612512565b5050600154604051630aa10e9f60e41b81526d6c657665726167654d6f64756c6560901b60048201526001600160a01b039091169063aa10e9f090602401602060405180830381865afa158015610506573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052a919061278c565b6040516393b0719d60e01b815260048101839052693634b6b4ba27b93232b960b11b60248201526001600160a01b0391909116906393b0719d90604401600060405180830381600087803b15801561058157600080fd5b505af1158015610595573d6000803e3d6000fd5b5050600154604051630aa10e9f60e41b81526d6c657665726167654d6f64756c6560901b60048201527f76ab445f753faf76ff52f3925f47bb71c776349e0350af38240a122663c5e58e93506001600160a01b03909116915063aa10e9f0906024015b602060405180830381865afa158015610615573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610639919061278c565b6001600160a01b0316636352211e836040518263ffffffff1660e01b815260040161066691815260200190565b602060405180830381865afa158015610683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a7919061278c565b604080516001600160a01b039092168252602082018490520160405180910390a150565b6106d36114f5565b600154600054604051632b47fe9b60e01b81526001600160a01b0390921691632b47fe9b916107089160040190815260200190565b602060405180830381865afa158015610725573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107499190612711565b1561076d57600054604051630cb09dc760e01b81526004016102c091815260200190565b600154604051630aa10e9f60e41b81526b6f7261636c654d6f64756c6560a01b60048201526001600160a01b0390911690339084908490849063aa10e9f090602401602060405180830381865afa1580156107cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f0919061278c565b6001600160a01b03166308f9c88e348585856040518563ffffffff1660e01b8152600401610820939291906127d2565b6000604051808303818588803b15801561083957600080fd5b505af115801561084d573d6000803e3d6000fd5b5050600154604051630aa10e9f60e41b81526b737461626c654d6f64756c6560a01b60048201526001600160a01b0390911693506000925083915063aa10e9f090602401602060405180830381865afa1580156108ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d2919061278c565b9050600060405180604001604052806108ea8561153f565b8152602001836001600160a01b03166367f77e546040518163ffffffff1660e01b8152600401602060405180830381865afa15801561092d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109519190612883565b8152509050600160009054906101000a90046001600160a01b03166001600160a01b031663146a89cc6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156109a657600080fd5b505af11580156109ba573d6000803e3d6000fd5b50505050600160009054906101000a90046001600160a01b03166001600160a01b03166360435c306040518163ffffffff1660e01b815260040160006040518083038186803b158015610a0c57600080fd5b505afa158015610a20573d6000803e3d6000fd5b50505050610a2d8a61174b565b610a368a61188f565b60006040518060400160405280610a4c8661153f565b8152602001846001600160a01b03166367f77e546040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab39190612883565b905282518151919250610ac591611fcc565b610b39836001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2a9190612883565b83602001518360200151612033565b610b428461209a565b5050505050505050610b7360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b505050565b610ba260408051608081019091528060008152600060208201819052604082015260609081015290565b600082815260326020526040908190208151608081019092528054829060ff166006811115610bd357610bd36125f8565b6006811115610be457610be46125f8565b815260018201546020820152600282015467ffffffffffffffff166040820152600382018054606090920191610c199061289c565b80601f0160208091040260200160405190810160405280929190818152602001828054610c459061289c565b8015610c925780601f10610c6757610100808354040283529160200191610c92565b820191906000526020600020905b815481529060010190602001808311610c7557829003601f168201915b5050505050815250509050919050565b60015460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610ceb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0f919061278c565b6001600160a01b031614610d3857604051630543601560e11b81523360048201526024016102c0565b6001600160a01b038116610d775760405163eac0d38960e01b81526020600482015260056024820152641d985d5b1d60da1b60448201526064016102c0565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000610db182612177565b9050610dbc8261174b565b6000828152603260205260408120805460ff191681556001810182905560028101805467ffffffffffffffff1916905590610dfa6003830182612512565b5050600154604051630aa10e9f60e41b81526d6c657665726167654d6f64756c6560901b60048201526001600160a01b039091169063aa10e9f090602401602060405180830381865afa158015610e55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e79919061278c565b6040516393b0719d60e01b815260048101849052693634b6b4ba27b93232b960b11b60248201526001600160a01b0391909116906393b0719d90604401600060405180830381600087803b158015610ed057600080fd5b505af1158015610ee4573d6000803e3d6000fd5b5050604080516001600160a01b0385168152602081018690527f76ab445f753faf76ff52f3925f47bb71c776349e0350af38240a122663c5e58e935001905060405180910390a15050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015610f7a5750825b905060008267ffffffffffffffff166001148015610f975750303b155b905081158015610fa5575080155b15610fc35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610ff757845468ff00000000000000001916680100000000000000001785555b61100e693634b6b4ba27b93232b960b11b8761229c565b61101661232d565b831561106257845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b505050505050565b600154600054604051632b47fe9b60e01b81526001600160a01b0390921691632b47fe9b9161109f9160040190815260200190565b602060405180830381865afa1580156110bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e09190612711565b1561110457600054604051630cb09dc760e01b81526004016102c091815260200190565b600061110e61233f565b9050600061111b85612177565b90506111278484612492565b60408051608081019091528060068152602001600081526020018367ffffffffffffffff16815260200160405180606001604052808881526020018781526020018681525060405160200161117c91906128d6565b60408051601f198184030181529181529152600087815260326020522081518154829060ff191660018360068111156111b7576111b76125f8565b021790555060208201516001820155604082015160028201805467ffffffffffffffff191667ffffffffffffffff909216919091179055606082015160038201906112029082612953565b5050600154604051630aa10e9f60e41b81526d6c657665726167654d6f64756c6560901b6004820152600092506001600160a01b039091169063aa10e9f090602401602060405180830381865afa158015611261573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611285919061278c565b604051632ce333ad60e01b815260048101889052693634b6b4ba27b93232b960b11b60248201529091506001600160a01b03821690632ce333ad90604401602060405180830381865afa1580156112e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113049190612711565b611376576040516324b51b7960e11b815260048101879052693634b6b4ba27b93232b960b11b60248201526001600160a01b0382169063496a36f290604401600060405180830381600087803b15801561135d57600080fd5b505af1158015611371573d6000803e3d6000fd5b505050505b604080516001600160a01b038416815260208101889052908101869052606081018590527f1d4556de98f4650b3c61a673c8378837a424fc8113f8564d641f7cf2c75b995d90608001611059565b60015460405163399dd46360e01b81523360048201526001600160a01b039091169063399dd46390602401602060405180830381865afa15801561140c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114309190612711565b151560000361145457604051633b9e98fd60e11b81523360048201526024016102c0565b6000818152603260205260408120805460ff191681556001810182905560028101805467ffffffffffffffff19169055906114926003830182612512565b5050600154604051630aa10e9f60e41b81526d6c657665726167654d6f64756c6560901b60048201527f76ab445f753faf76ff52f3925f47bb71c776349e0350af38240a122663c5e58e916001600160a01b03169063aa10e9f0906024016105f8565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080546001190161153957604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b600080826001600160a01b031663d8dfeb456040518163ffffffff1660e01b8152600401602060405180830381865afa158015611580573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a4919061278c565b6040516370a0823160e01b81526001600160a01b03858116600483015291909116906370a0823190602401602060405180830381865afa1580156115ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116109190612883565b90506000836001600160a01b0316631cc5b7766040518163ffffffff1660e01b8152600401606060405180830381865afa158015611652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116769190612a3c565b60000151846001600160a01b03166385820ba36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116dc9190612883565b6116e69190612a78565b9050808212156117395760405163015cf55b60e31b815260206004820152600e60248201527f636f6c6c61746572616c4e65743100000000000000000000000000000000000060448201526064016102c0565b6117438183612aa0565b949350505050565b6000818152603260205260408082208151608081019092528054829060ff16600681111561177b5761177b6125f8565b600681111561178c5761178c6125f8565b815260018201546020820152600282015467ffffffffffffffff1660408201526003820180546060909201916117c19061289c565b80601f01602080910402602001604051908101604052809291908181526020018280546117ed9061289c565b801561183a5780601f1061180f5761010080835404028352916020019161183a565b820191906000526020600020905b81548152906001019060200180831161181d57829003601f168201915b5050505050815250509050600680811115611857576118576125f8565b8151600681111561186a5761186a6125f8565b1461188b57604051630114a05960e61b8152600481018390526024016102c0565b5050565b600154604051630aa10e9f60e41b81526d6c657665726167654d6f64756c6560901b60048201526000916001600160a01b03169063aa10e9f090602401602060405180830381865afa1580156118e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190d919061278c565b60008381526032602052604080822081516080810190925280549394509192909190829060ff166006811115611945576119456125f8565b6006811115611956576119566125f8565b815260018201546020820152600282015467ffffffffffffffff16604082015260038201805460609092019161198b9061289c565b80601f01602080910402602001604051908101604052809291908181526020018280546119b79061289c565b8015611a045780601f106119d957610100808354040283529160200191611a04565b820191906000526020600020905b8154815290600101906020018083116119e757829003601f168201915b50505091909252505050600084815260326020526040812060030180549293509091611a2f9061289c565b80601f0160208091040260200160405190810160405280929190818152602001828054611a5b9061289c565b8015611aa85780601f10611a7d57610100808354040283529160200191611aa8565b820191906000526020600020905b815481529060010190602001808311611a8b57829003601f168201915b5050505050806020019051810190611ac09190612a3c565b6040516331a9108f60e11b8152600481018690529091506000906001600160a01b03851690636352211e90602401602060405180830381865afa158015611b0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2f919061278c565b60015460405163eb02c30160e01b8152600481018890529192506000916001600160a01b039091169063eb02c30190602401608060405180830381865afa158015611b7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba29190612ac7565b6040908101516001549151630aa10e9f60e41b81526b6f7261636c654d6f64756c6560a01b60048201529092506000916001600160a01b03169063aa10e9f090602401602060405180830381865afa158015611c02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c26919061278c565b604051630dfb457160e11b8152620151806004820152600160248201526001600160a01b039190911690631bf68ae2906044016040805180830381865afa158015611c75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c999190612b2d565b509050846040015167ffffffffffffffff16421015611cdd57604080860151905163d0878a9360e01b815267ffffffffffffffff90911660048201526024016102c0565b600084602001518211611cf257506000611d3b565b84604001518210611d0857506040840151611d3b565b60208501516040808701519051630715b04f60e31b815260048101859052602481019290925260448201526064016102c0565b6000888152603260205260408120805460ff191681556001810182905560028101805467ffffffffffffffff1916905590611d796003830182612512565b50506040518060600160405280898152602001828152602001886001600160a01b0316639eb33862866040518263ffffffff1660e01b8152600401611dc091815260200190565b602060405180830381865afa158015611ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e019190612883565b9052604051611e1391906020016128d6565b60408051808303601f1901815291815260608801919091526001549051630aa10e9f60e41b8152686b656570657246656560b81b60048201526001600160a01b039091169063aa10e9f090602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea2919061278c565b6001600160a01b031663354662e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611edf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f039190612883565b602087015260405163070a9a7560e41b81526001600160a01b038816906370a9a75090611f3890879033908b90600401612b51565b600060405180830381600087803b158015611f5257600080fd5b505af1158015611f66573d6000803e3d6000fd5b505050507f225b278e483456e2c9b77238a8144536408ec78a1f6850dfb451de92f23ccac384898860200151858960200151871115611fa6576002611fa9565b60015b604051611fba959493929190612b86565b60405180910390a15050505050505050565b80821380611fe55750611fe282620f4240612a78565b81135b1561188b5760405163015cf55b60e31b815260206004820152600e60248201527f636f6c6c61746572616c4e65743200000000000000000000000000000000000060448201526064016102c0565b60008311801561204c57508161204a826001612773565b105b15610b735760405163015cf55b60e31b815260206004820152601860248201527f737461626c65436f6c6c61746572616c5065725368617265000000000000000060448201526064016102c0565b6000816001600160a01b0316631cc5b7766040518163ffffffff1660e01b8152600401606060405180830381865afa1580156120da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120fe9190612a3c565b6020015110156103b05760405163015cf55b60e31b815260206004820152601f60248201527f676c6f62616c41766572616765507269636549734e6f744e656761746976650060448201526064016102c0565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b600154604051630aa10e9f60e41b81526d6c657665726167654d6f64756c6560901b60048201526000916001600160a01b03169063aa10e9f090602401602060405180830381865afa1580156121d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f5919061278c565b6001600160a01b0316636352211e836040518263ffffffff1660e01b815260040161222291815260200190565b602060405180830381865afa15801561223f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612263919061278c565b90506001600160a01b038116331461229757604051630da7a30b60e31b8152600481018390523360248201526044016102c0565b919050565b816122ba5760405163673791e360e11b815260040160405180910390fd5b6001600160a01b0381166122f95760405163eac0d38960e01b81526020600482015260056024820152641d985d5b1d60da1b60448201526064016102c0565b6000919091556001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091179055565b6123356124bc565b61233d61250a565b565b6001546040805163051aa27360e21b815290516000926001600160a01b03169163146a89cc916004808301928692919082900301818387803b15801561238457600080fd5b505af1158015612398573d6000803e3d6000fd5b50505050600160009054906101000a90046001600160a01b03166001600160a01b03166360435c306040518163ffffffff1660e01b815260040160006040518083038186803b1580156123ea57600080fd5b505afa1580156123fe573d6000803e3d6000fd5b50505050600160009054906101000a90046001600160a01b03166001600160a01b031663027566a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015612455573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124799190612733565b61248d9067ffffffffffffffff1642612773565b905090565b80821061188b5760405163e784a72960e01b815260048101839052602481018290526044016102c0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661233d57604051631afcd79f60e31b815260040160405180910390fd5b6121516124bc565b50805461251e9061289c565b6000825580601f1061252e575050565b601f0160209004906000526020600020908101906103b091905b8082111561255c5760008155600101612548565b5090565b60006020828403121561257257600080fd5b5035919050565b60008060006040848603121561258e57600080fd5b83359250602084013567ffffffffffffffff808211156125ad57600080fd5b818601915086601f8301126125c157600080fd5b8135818111156125d057600080fd5b8760208260051b85010111156125e557600080fd5b6020830194508093505050509250925092565b634e487b7160e01b600052602160045260246000fd5b6000815160078110612622576126226125f8565b808452506020808301518185015267ffffffffffffffff6040840151166040850152606083015160806060860152805180608087015260005b818110156126775782810184015187820160a00152830161265b565b50600060a0828801015260a0601f19601f830116870101935050505092915050565b6020815260006126ac602083018461260e565b9392505050565b6001600160a01b03811681146103b057600080fd5b6000602082840312156126da57600080fd5b81356126ac816126b3565b6000806000606084860312156126fa57600080fd5b505081359360208301359350604090920135919050565b60006020828403121561272357600080fd5b815180151581146126ac57600080fd5b60006020828403121561274557600080fd5b815167ffffffffffffffff811681146126ac57600080fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156127865761278661275d565b92915050565b60006020828403121561279e57600080fd5b81516126ac816126b3565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000604082016001600160a01b038616835260206040818501528185835260608501905060608660051b86010192508660005b8781101561287557868503605f190183528135368a9003601e1901811261282b57600080fd5b8901848101903567ffffffffffffffff81111561284757600080fd5b80360382131561285657600080fd5b6128618782846127a9565b965050509183019190830190600101612805565b509298975050505050505050565b60006020828403121561289557600080fd5b5051919050565b600181811c908216806128b057607f821691505b6020821081036128d057634e487b7160e01b600052602260045260246000fd5b50919050565b81518152602080830151908201526040808301519082015260608101612786565b634e487b7160e01b600052604160045260246000fd5b601f821115610b7357600081815260208120601f850160051c810160208610156129345750805b601f850160051c820191505b8181101561106257828155600101612940565b815167ffffffffffffffff81111561296d5761296d6128f7565b6129818161297b845461289c565b8461290d565b602080601f8311600181146129b6576000841561299e5750858301515b600019600386901b1c1916600185901b178555611062565b600085815260208120601f198616915b828110156129e5578886015182559484019460019091019084016129c6565b5085821015612a035787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6040516060810167ffffffffffffffff81118282101715612a3657612a366128f7565b60405290565b600060608284031215612a4e57600080fd5b612a56612a13565b8251815260208301516020820152604083015160408201528091505092915050565b8082018281126000831280158216821582161715612a9857612a9861275d565b505092915050565b8181036000831280158383131683831282161715612ac057612ac061275d565b5092915050565b600060808284031215612ad957600080fd5b6040516080810181811067ffffffffffffffff82111715612afc57612afc6128f7565b8060405250825181526020830151602082015260408301516040820152606083015160608201528091505092915050565b60008060408385031215612b4057600080fd5b505080516020909101519092909150565b60006001600160a01b03808616835280851660208401525060606040830152612b7d606083018461260e565b95945050505050565b600060a0820190506001600160a01b038716825285602083015284604083015283606083015260038310612bbc57612bbc6125f8565b826080830152969550505050505056fea26469706673582212205a6ebbfa0c01fa963e205e4f4bb1dbcefc02feba7b3e266dad01ed9c08220ac864736f6c63430008140033