0 txs
6.6k calls
constructor
constructor(address _roleStore, address _dataStore, address _eventEmitter, address _sequencerUptimeFeed)
functions
dataStore
viewfunction dataStore() view returns (address)
eventEmitter
viewfunction eventEmitter() view returns (address)
getPrimaryPrice
viewfunction getPrimaryPrice(address token) view returns (tuple)
getTokensWithPrices
viewfunction getTokensWithPrices(uint256 start, uint256 end) view returns (address[])
getTokensWithPricesCount
viewfunction getTokensWithPricesCount() view returns (uint256)
maxTimestamp
viewfunction maxTimestamp() view returns (uint256)
minTimestamp
viewfunction minTimestamp() view returns (uint256)
primaryPrices
viewfunction primaryPrices(address) view returns (uint256 min, uint256 max)
roleStore
viewfunction roleStore() view returns (address)
sequencerUptimeFeed
viewfunction sequencerUptimeFeed() view returns (address)
validateSequencerUp
viewfunction validateSequencerUp() view
clearAllPrices
nonpayablefunction clearAllPrices()
setPrices
nonpayablefunction setPrices(tuple params)
setPricesForAtomicAction
nonpayablefunction setPricesForAtomicAction(tuple params)
setPrimaryPrice
nonpayablefunction setPrimaryPrice(address token, tuple price)
setTimestamps
nonpayablefunction setTimestamps(uint256 _minTimestamp, uint256 _maxTimestamp)
validatePrices
nonpayablefunction validatePrices(tuple params, bool forAtomicAction) returns (tuple[])
events
No events.
errors
ChainlinkPriceFeedNotUpdated
error ChainlinkPriceFeedNotUpdated(address token, uint256 timestamp, uint256 heartbeatDuration)
EmptyChainlinkPriceFeedMultiplier
error EmptyChainlinkPriceFeedMultiplier(address token)
EmptyPrimaryPrice
error EmptyPrimaryPrice(address token)
InvalidFeedPrice
error InvalidFeedPrice(address token, int256 price)
InvalidMinMaxForPrice
error InvalidMinMaxForPrice(address token, uint256 min, uint256 max)
InvalidOracleProvider
error InvalidOracleProvider(address provider)
InvalidOracleProviderForToken
error InvalidOracleProviderForToken(address provider, address expectedProvider)
InvalidOracleSetPricesDataParam
error InvalidOracleSetPricesDataParam(uint256 tokensLength, uint256 dataLength)
InvalidOracleSetPricesProvidersParam
error InvalidOracleSetPricesProvidersParam(uint256 tokensLength, uint256 providersLength)
MaxOracleTimestampRangeExceeded
error MaxOracleTimestampRangeExceeded(uint256 range, uint256 maxRange)
MaxPriceAgeExceeded
error MaxPriceAgeExceeded(uint256 oracleTimestamp, uint256 currentTimestamp)
MaxRefPriceDeviationExceeded
error MaxRefPriceDeviationExceeded(address token, uint256 price, uint256 refPrice, uint256 maxRefPriceDeviationFactor)
NonAtomicOracleProvider
error NonAtomicOracleProvider(address provider)
NonEmptyTokensWithPrices
error NonEmptyTokensWithPrices(uint256 tokensWithPricesLength)
PriceAlreadySet
error PriceAlreadySet(address token, uint256 minPrice, uint256 maxPrice)
SequencerDown
error SequencerDown()
SequencerGraceDurationNotYetPassed
error SequencerGraceDurationNotYetPassed(uint256 timeSinceUp, uint256 sequencerGraceDuration)
Unauthorized
error Unauthorized(address msgSender, string role)
creation bytecode
0x61010060405234801561001157600080fd5b506040516132263803806132268339810160408190526100309161006a565b6001600160a01b0393841660805291831660a052821660c0521660e0526100c9565b6001600160a01b038116811461006757600080fd5b50565b6000806000806080858703121561008057600080fd5b845161008b81610052565b602086015190945061009c81610052565b60408601519093506100ad81610052565b60608601519092506100be81610052565b939692955090935050565b60805160a05160c05160e0516130c26101646000396000818161026901528181610353015261038601526000818161020d0152611abc0152600081816101a701528181610432015281816108c4015281816109a501528181610a8c01528181610bb501528181610c8f01528181610d5501528181610f360152818161108b015261124b01526000818161011c01526106d301526130c26000f3fe608060405234801561001057600080fd5b50600436106100da5760003560e01c8062ccf155146100df578063070211e6146100e95780633d333c85146100f157806347cba33d146101045780634a4a7b041461011757806351b5107a146101545780635dcf719414610174578063660d0d67146101a257806371604245146101c95780637901828d146101e05780639364c21a146101e85780639ff78c3014610208578063a2bbd6041461022f578063a726470514610264578063c7a667f41461028b578063f002606b1461029e578063fa101977146102a7575b600080fd5b6100e76102ba565b005b6100e7610351565b6100e76100ff3660046124c3565b610554565b6100e76101123660046124f7565b610582565b61013e7f000000000000000000000000000000000000000000000000000000000000000081565b60405161014b919061256b565b60405180910390f35b61016761016236600461257f565b61059e565b60405161014b91906125a1565b6101876101823660046125ed565b6105b5565b6040805182518152602092830151928101929092520161014b565b61013e7f000000000000000000000000000000000000000000000000000000000000000081565b6101d260045481565b60405190815260200161014b565b6101d2610649565b6101fb6101f6366004612618565b61065a565b60405161014b9190612669565b61013e7f000000000000000000000000000000000000000000000000000000000000000081565b61025661023d3660046125ed565b6002602052600090815260409020805460019091015482565b60405161014b9291906126dc565b61013e7f000000000000000000000000000000000000000000000000000000000000000081565b6100e76102993660046124c3565b610678565b6101d260035481565b6100e76102b536600461257f565b61069f565b61030a6040516020016102cc906126ea565b604051602081830303815290604052805190602001206040518060400160405280600a81526020016921a7a72a2927a62622a960b11b8152506106bc565b6000610316600061076c565b905060005b8181101561034357600061032f8180610776565b905061033a81610782565b5060010161031b565b505060006003819055600455565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661038157565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156103e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610406919061272a565b50919450925050821590508061042e5760405162032b3d60e81b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bd02d0f560405160200161049b9060208082526018908201527729a2a8aaa2a721a2a92fa3a920a1a2afa22aa920aa24a7a760411b604082015260600190565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016104cf91815260200190565b602060405180830381865afa1580156104ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610510919061277c565b9050600061051e84426127ab565b905081811161054d57808260405163113cfc0360e01b81526004016105449291906126dc565b60405180910390fd5b5050505050565b6105666040516020016102cc906126ea565b60006105738260006107ad565b905061057e81611119565b5050565b6105946040516020016102cc906126ea565b61057e8282611371565b60606105ac6000848461143b565b90505b92915050565b60408051808201909152600080825260208201526001600160a01b0382166105f0575050604080518082019091526000808252602082015290565b6001600160a01b038216600090815260026020908152604091829020825180840190935280548352600101549082015261062981611500565b156105af578260405163cd64a02560e01b8152600401610544919061256b565b6000610655600061076c565b905090565b606061066e6040516020016102cc906126ea565b6105ac83836107ad565b61068a6040516020016102cc906126ea565b610692610351565b60006105738260016107ad565b6106b16040516020016102cc906126ea565b600391909155600455565b60405163ac4ab3fb60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ac4ab3fb9061070a90339086906004016127be565b602060405180830381865afa158015610727573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074b91906127d7565b61057e57338160405163a35b150b60e01b815260040161054492919061283a565b60006105af825490565b60006105ac8383611515565b6001600160a01b038116600090815260026020526040812081815560010181905561057e908261153f565b602082015151825151606091146107e25782515160208401515160405163dd51dc7360e01b81526105449291906004016126dc565b604083015151835151146108145782515160408085015151905163f9996e9f60e01b81526105449291906004016126dc565b8251516000906001600160401b038111156108315761083161222c565b6040519080825280602002602001820160405280156108a657816020015b6108936040518060a0016040528060006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681525090565b81526020019060019003908161084f5790505b508451519091506000036108bb5790506105af565b6000836109a3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bd02d0f5604051602001610929906020808252601490820152734d41585f4f5241434c455f50524943455f41474560601b604082015260600190565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161095d91815260200190565b602060405180830381865afa15801561097a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099e919061277c565b610a86565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bd02d0f5604051602001610a11906020808252601b908201527a4d41585f41544f4d49435f4f5241434c455f50524943455f41474560281b604082015260600190565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401610a4591815260200190565b602060405180830381865afa158015610a62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a86919061277c565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bd02d0f5604051602001610b089060208082526025908201527f4d41585f4f5241434c455f5245465f50524943455f444556494154494f4e5f4660408201526420a1aa27a960d91b606082015260800190565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401610b3c91815260200190565b602060405180830381865afa158015610b59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7d919061277c565b905060005b86515181101561110e57600087602001518281518110610ba457610ba461285e565b6020026020010151905060008190507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637ae1cfca610beb84611554565b6040518263ffffffff1660e01b8152600401610c0991815260200190565b602060405180830381865afa158015610c26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4a91906127d7565b610c6957816040516302e8815160e11b8152600401610544919061256b565b600089600001518481518110610c8157610c8161285e565b6020026020010151905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637ae1cfca610cc5866115de565b6040518263ffffffff1660e01b8152600401610ce391815260200190565b602060405180830381865afa158015610d00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2491906127d7565b90508915610d515780610d4c57836040516353410c4360e01b8152600401610544919061256b565b610e34565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166321f8a721610d8c308661161d565b6040518263ffffffff1660e01b8152600401610daa91815260200190565b602060405180830381865afa158015610dc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610deb9190612874565b9050806001600160a01b0316856001600160a01b031614610e3257604051631a2d279b60e21b81526001600160a01b03808716600483015282166024820152604401610544565b505b60008b604001518681518110610e4c57610e4c61285e565b602002602001015190506000846001600160a01b031663377bbdaf85846040518363ffffffff1660e01b8152600401610e8692919061283a565b60a0604051808303816000875af1158015610ea5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec99190612891565b9050846001600160a01b0316638263c28e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2d91906127d7565b15610fe55760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bd02d0f5610f6d89886116b2565b6040518263ffffffff1660e01b8152600401610f8b91815260200190565b602060405180830381865afa158015610fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcc919061277c565b90508082606001818151610fe091906127ab565b905250505b42898260600151610ff69190612917565b101561101d57606081015142604051632b6e7c3f60e01b81526004016105449291906126dc565b846001600160a01b031663eed790c76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f91906127d7565b6110dd576000806110b07f0000000000000000000000000000000000000000000000000000000000000000876116f3565b9150915081156110da576110ca868460200151838d611922565b6110da868460400151838d611922565b50505b808a88815181106110f0576110f061285e565b60200260200101819052505050505050508080600101915050610b82565b509195945050505050565b80516000036111255750565b61112f600061076c565b1561115a5761113e600061076c565b60405163ef2df9b560e01b815260040161054491815260200190565b60008160008151811061116f5761116f61285e565b60200260200101516060015190506000826000815181106111925761119261285e565b602002602001015160600151905060005b83518110156112465760008482815181106111c0576111c061285e565b602002602001015190506111f481600001516040518060400160405280846020015181526020018460400151815250611371565b838160600151101561120857806060015193505b828160600151111561121c57806060015192505b61123d81600001518260200151836040015184606001518560800151611987565b506001016111a3565b5060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bd02d0f56040516020016112b6906020808252601a90820152794d41585f4f5241434c455f54494d455354414d505f52414e474560301b604082015260600190565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016112ea91815260200190565b602060405180830381865afa158015611307573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132b919061277c565b90508061133884846127ab565b11156113645761134883836127ab565b81604051636ece35cd60e11b81526004016105449291906126dc565b5060039190915560045550565b6020810151815111156113a25780516020820151604051630b046a0d60e11b8152610544928592909160040161292a565b6001600160a01b03821660009081526002602090815260409182902082518084019093528054835260010154908201526113db81611500565b6114035780516020820151604051636f684cef60e11b8152610544928692909160040161292a565b6001600160a01b0383166000908152600260209081526040822084518155908401516001909101556114359084611b51565b50505050565b606060006114488561076c565b905080831115611456578092505b600061146285856127ab565b6001600160401b038111156114795761147961222c565b6040519080825280602002602001820160405280156114a2578160200160208202803683370190505b509050845b848110156114f4576114b98782610776565b826114c488846127ab565b815181106114d4576114d461285e565b6001600160a01b03909216602092830291909101909101526001016114a7565b509150505b9392505050565b805160009015806105af575050602001511590565b600082600001828154811061152c5761152c61285e565b9060005260206000200154905092915050565b60006105ac836001600160a01b038416611b66565b6000604051602001611594906020808252601a90820152791254d7d3d49050d31157d41493d59251115497d153905093115160321b604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b03841690820152606001604051602081830303815290604052805190602001209050919050565b60006040516020016115949060208082526019908201527824a9afa0aa27a6a4a1afa7a920a1a622afa82927ab24a222a960391b604082015260600190565b600060405160200161165c9060208082526019908201527827a920a1a622afa82927ab24a222a92fa327a92faa27a5a2a760391b604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b03808616918301919091528316606082015260800160405160208183030381529060405280519060200120905092915050565b600060405160200161165c906020808252601b908201527a13d49050d31157d512535154d510535417d051129554d513515395602a1b604082015260600190565b6000806000846001600160a01b03166321f8a72161171086611c59565b6040518263ffffffff1660e01b815260040161172e91815260200190565b602060405180830381865afa15801561174b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176f9190612874565b90506001600160a01b03811661178c57600080925092505061191b565b6000819050600080826001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156117d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f6919061272a565b5093505092505060008213611822578682604051635f328a5b60e11b81526004016105449291906127be565b6000886001600160a01b031663bd02d0f561183c8a611c89565b6040518263ffffffff1660e01b815260040161185a91815260200190565b602060405180830381865afa158015611877573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189b919061277c565b905081421180156118b45750806118b283426127ab565b115b156118d8578782826040516306b5a95b60e51b81526004016105449392919061292a565b60006118e384611ccc565b905060006118f18b8b611d22565b9050600061190c838368327cb2734119d3b7a9601e1b611dc1565b60019a50985050505050505050505b9250929050565b600061192e8484611dd6565b9050600061193c8285611df8565b90508281111561197f57604051633d1986f760e01b81526001600160a01b0387166004820152602481018690526044810185905260648101849052608401610544565b505050505050565b61198f61213b565b805161199c906002611e06565b6040805180820190915260058152643a37b5b2b760d91b602082015281516119c79160009089611e6b565b604080518082019091526008815267383937bb34b232b960c11b602082015281516119f59160019085611e6b565b6020810151611a05906003611e06565b611a416000604051806040016040528060088152602001676d696e507269636560c01b815250878460200151611ec8909392919063ffffffff16565b611a7d6001604051806040016040528060088152602001676d6178507269636560c01b815250868460200151611ec8909392919063ffffffff16565b611aba600260405180604001604052806009815260200168074696d657374616d760bc1b815250858460200151611ec8909392919063ffffffff16565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166324de01e4611af9886001600160a01b031690565b836040518363ffffffff1660e01b8152600401611b17929190612f3e565b600060405180830381600087803b158015611b3157600080fd5b505af1158015611b45573d6000803e3d6000fd5b50505050505050505050565b60006105ac836001600160a01b038416611f1b565b60008181526001830160205260408120548015611c4f576000611b8a6001836127ab565b8554909150600090611b9e906001906127ab565b9050818114611c03576000866000018281548110611bbe57611bbe61285e565b9060005260206000200154905080876000018481548110611be157611be161285e565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611c1457611c1461304a565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506105af565b60009150506105af565b6000604051602001611594906020808252600a908201526914149250d157d191515160b21b604082015260600190565b6000604051602001611594906020808252601d908201527f50524943455f464545445f4845415254424541545f4455524154494f4e000000604082015260600190565b600080821215611d1e5760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f7369746976656044820152606401610544565b5090565b600080836001600160a01b031663bd02d0f5611d3d85611f6a565b6040518263ffffffff1660e01b8152600401611d5b91815260200190565b602060405180830381865afa158015611d78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9c919061277c565b9050806000036105ac578260405163b86fffef60e01b8152600401610544919061256b565b6000611dce848484611fa5565b949350505050565b6000818311611dee57611de983836127ab565b6105ac565b6105ac82846127ab565b60006105ac8383600061208f565b806001600160401b03811115611e1e57611e1e61222c565b604051908082528060200260200182016040528015611e6457816020015b604080518082019091526060815260006020820152815260200190600190039081611e3c5790505b5090915250565b8184600001518481518110611e8257611e8261285e565b6020026020010151600001819052508084600001518481518110611ea857611ea861285e565b6020908102919091018101516001600160a01b0390921691015250505050565b8184600001518481518110611edf57611edf61285e565b6020026020010151600001819052508084600001518481518110611f0557611f0561285e565b6020026020010151602001818152505050505050565b6000818152600183016020526040812054611f62575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556105af565b5060006105af565b600060405160200161159490602080825260159082015274282924a1a2afa322a2a22fa6aaa62a24a82624a2a960591b604082015260600190565b6000808060001985870985870292508281108382030391505080600003611fdf57838281611fd557611fd5613060565b04925050506114f9565b8084116120265760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401610544565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000836000036120a1575060006114f9565b81156120c7576120c08468327cb2734119d3b7a9601e1b8560016120de565b90506114f9565b611dce8468327cb2734119d3b7a9601e1b85611fa5565b6000806120ec868686611fa5565b9050600183600281111561210257612102613076565b14801561211f57506000848061211a5761211a613060565b868809115b156121325761212f600182612917565b90505b95945050505050565b604080516101208101909152606060e082018181526101008301919091528190815260200161217d604051806040016040528060608152602001606081525090565b815260200161219f604051806040016040528060608152602001606081525090565b81526020016121c1604051806040016040528060608152602001606081525090565b81526020016121e3604051806040016040528060608152602001606081525090565b8152602001612205604051806040016040528060608152602001606081525090565b8152602001612227604051806040016040528060608152602001606081525090565b905290565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b03811182821017156122645761226461222c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156122925761229261222c565b604052919050565b60006001600160401b038211156122b3576122b361222c565b5060051b60200190565b6001600160a01b03811681146122d257600080fd5b50565b600082601f8301126122e657600080fd5b81356122f96122f48261229a565b61226a565b8082825260208201915060208360051b86010192508583111561231b57600080fd5b602085015b83811015612341578035612333816122bd565b835260209283019201612320565b5095945050505050565b60006060828403121561235d57600080fd5b612365612242565b905081356001600160401b0381111561237d57600080fd5b612389848285016122d5565b82525060208201356001600160401b038111156123a557600080fd5b6123b1848285016122d5565b60208301525060408201356001600160401b038111156123d057600080fd5b8201601f810184136123e157600080fd5b80356123ef6122f48261229a565b8082825260208201915060208360051b85010192508683111561241157600080fd5b602084015b838110156124b35780356001600160401b0381111561243457600080fd5b8501603f8101891361244557600080fd5b60208101356001600160401b038111156124615761246161222c565b612474601f8201601f191660200161226a565b8181526040838301018b101561248957600080fd5b81604084016020830137600060208383010152808652505050602083019250602081019050612416565b5060408501525091949350505050565b6000602082840312156124d557600080fd5b81356001600160401b038111156124eb57600080fd5b611dce8482850161234b565b600080828403606081121561250b57600080fd5b8335612516816122bd565b92506040601f198201121561252a57600080fd5b50604080519081016001600160401b038111828210171561254d5761254d61222c565b60409081526020858101358352940135938101939093525092909150565b6001600160a01b0391909116815260200190565b6000806040838503121561259257600080fd5b50508035926020909101359150565b602080825282518282018190526000918401906040840190835b818110156125e25783516001600160a01b03168352602093840193909201916001016125bb565b509095945050505050565b6000602082840312156125ff57600080fd5b81356105ac816122bd565b80151581146122d257600080fd5b6000806040838503121561262b57600080fd5b82356001600160401b0381111561264157600080fd5b61264d8582860161234b565b925050602083013561265e8161260a565b809150509250929050565b602080825282518282018190526000918401906040840190835b818110156125e257835180516001600160a01b039081168552602080830151818701526040808401519087015260608084015190870152608092830151909116918501919091529093019260a090920191600101612683565b918252602082015260400190565b6020808252600a908201526921a7a72a2927a62622a960b11b604082015260600190565b80516001600160501b038116811461272557600080fd5b919050565b600080600080600060a0868803121561274257600080fd5b61274b8661270e565b602087015160408801516060890151929750909550935091506127706080870161270e565b90509295509295909350565b60006020828403121561278e57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156105af576105af612795565b6001600160a01b03929092168252602082015260400190565b6000602082840312156127e957600080fd5b81516105ac8161260a565b6000815180845260005b8181101561281a576020818501810151868301820152016127fe565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0383168152604060208201819052600090611dce908301846127f4565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561288657600080fd5b81516105ac816122bd565b600060a08284031280156128a457600080fd5b5060405160009060a081016001600160401b03811182821017156128ca576128ca61222c565b60405283516128d8816122bd565b815260208481015190820152604080850151908201526060808501519082015260808401519150612908826122bd565b60808101919091529392505050565b808201808211156105af576105af612795565b6001600160a01b039390931683526020830191909152604082015260600190565b600082825180855260208501945060208160051b8301016020850160005b838110156129f257601f19858403018852815180516040855261298f60408601826127f4565b6020928301518682038785015280518083529084019360009350909101905b808310156129d95783516001600160a01b0316825260209384019360019390930192909101906129ae565b5060209a8b019a90955093909301925050600101612969565b50909695505050505050565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b81811015612a7857605f198886030183528351805160408752612a5060408801826127f4565b6020928301516001600160a01b03169783019790975250938401939290920191600101612a2a565b5050505060208301518482036020860152612132828261294b565b600082825180855260208501945060208160051b8301016020850160005b838110156129f257601f198584030188528151805160408552612ad760408601826127f4565b6020928301518682038785015280518083529084019360009350909101905b80831015612b195783518252602082019150602084019350600183019250612af6565b5060209a8b019a90955093909301925050600101612ab1565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b81811015612ba357605f198886030183528351805160408752612b8460408801826127f4565b6020928301519783019790975250938401939290920191600101612b5e565b50505050602083015184820360208601526121328282612a93565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b81811015612ba357605f198886030183528351805160408752612c1060408801826127f4565b6020928301519783019790975250938401939290920191600101612bea565b600082825180855260208501945060208160051b8301016020850160005b838110156129f257601f198584030188528151805160408552612c7360408601826127f4565b6020928301518682038785015280518083529084019360009350909101905b80831015612cb757835115158252602082019150602084019350600183019250612c92565b5060209a8b019a90955093909301925050600101612c4d565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b81811015612d4357605f198886030183528351805160408752612d2260408801826127f4565b60209283015115159783019790975250938401939290920191600101612cfc565b50505050602083015184820360208601526121328282612c2f565b600082825180855260208501945060208160051b8301016020850160005b838110156129f257601f198584030188528151805160408552612da260408601826127f4565b6020928301518682038785015280518083529084019391925081830191600582901b84010160005b82811015612dfb57601f19858303018452612de68287516127f4565b60209687019694909401939150600101612dca565b508097505050505050602082019150602088019750600181019050612d7c565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b81811015612e9f57605f198886030183528351805160408752612e6d60408801826127f4565b9050602082015191508681036020880152612e8881836127f4565b965050506020938401939290920191600101612e47565b50505050602083015184820360208601526121328282612d5e565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b81811015612e9f57605f198886030183528351805160408752612f0c60408801826127f4565b9050602082015191508681036020880152612f2781836127f4565b965050506020938401939290920191600101612ee6565b6060815260116060820152704f7261636c65507269636555706461746560781b608082015282602082015260a060408201526000825160e060a0840152612f896101808401826129fe565b90506020840151609f198483030160c0850152612fa68282612b32565b9150506040840151609f198483030160e0850152612fc48282612bbe565b9150506060840151609f1984830301610100850152612fe38282612cd0565b9150506080840151609f19848303016101208501526130028282612bbe565b91505060a0840151609f19848303016101408501526130218282612e1b565b91505060c0840151609f19848303016101608501526130408282612eba565b9695505050505050565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fdfea264697066735822122008f0ed3c64983a5258aab91c6755b7d865244049f7cafb73b6c74faa13309b9764736f6c634300081d00330000000000000000000000003c3d99fd298f679dbc2cecd132b4ec4d0f5e6e72000000000000000000000000fd70de6b91282d8017aa4e741e9ae325cab992d8000000000000000000000000c8ee91a54287db53897056e12d9819156d3822fb000000000000000000000000fdb631f5ee196f0ed6faa767959853a9f217697d