0 txs
0 calls
constructor
constructor()
functions
BLOCK_STALE_MEASURE
viewfunction BLOCK_STALE_MEASURE() view returns (uint256)
dataManageAddress
viewfunction dataManageAddress() view returns (address)
dataStoreIdToL2RollUpBlock
viewfunction dataStoreIdToL2RollUpBlock(uint32) view returns (uint256 startL2BlockNumber, uint256 endBL2BlockNumber, bool isReRollup)
dataStoreIdToRollupStoreNumber
viewfunction dataStoreIdToRollupStoreNumber(uint32) view returns (uint256)
FRAUD_STRING
viewfunction FRAUD_STRING() view returns (bytes)
fraudProofPeriod
viewfunction fraudProofPeriod() view returns (uint256)
getL2ConfirmedBlockNumber
viewfunction getL2ConfirmedBlockNumber() view returns (uint256)
getL2RollUpBlockByDataStoreId
viewfunction getL2RollUpBlockByDataStoreId(uint32 _dataStoreId) view returns (tuple)
getL2StoredBlockNumber
viewfunction getL2StoredBlockNumber() view returns (uint256)
getRollupStoreByRollupBatchIndex
viewfunction getRollupStoreByRollupBatchIndex(uint256 _rollupBatchIndex) view returns (tuple)
l2ConfirmedBlockNumber
viewfunction l2ConfirmedBlockNumber() view returns (uint256)
l2StoredBlockNumber
viewfunction l2StoredBlockNumber() view returns (uint256)
owner
viewfunction owner() view returns (address)
parse
purefunction parse(bytes[] polys, uint256 startIndex, uint256 length) pure returns (bytes provenString)
reRollupBatchIndex
viewfunction reRollupBatchIndex(uint256) view returns (uint256)
reRollupIndex
viewfunction reRollupIndex() view returns (uint256)
reSubmitterAddress
viewfunction reSubmitterAddress() view returns (address)
rollupBatchIndex
viewfunction rollupBatchIndex() view returns (uint256)
rollupBatchIndexRollupStores
viewfunction rollupBatchIndexRollupStores(uint256) view returns (uint32 originDataStoreId, uint32 dataStoreId, uint32 confirmAt, uint8 status)
sequencer
viewfunction sequencer() view returns (address)
confirmData
nonpayablefunction confirmData(bytes data, tuple searchData, uint256 startL2Block, uint256 endL2Block, uint32 originDataStoreId, uint256 reConfirmedBatchIndex, bool isReRollup)
initialize
nonpayablefunction initialize(address _sequencer, address _dataManageAddress, address _reSubmitterAddress, uint256 _block_stale_measure, uint256 _fraudProofPeriod, uint256 _l2SubmittedBlockNumber)
proveFraud
nonpayablefunction proveFraud(uint256 fraudulentStoreNumber, uint256 startIndex, tuple searchData, tuple disclosureProofs)
removeFraudProofAddress
nonpayablefunction removeFraudProofAddress(address _address)
renounceOwnership
nonpayablefunction renounceOwnership()
resetRollupBatchData
nonpayablefunction resetRollupBatchData(uint256 _rollupBatchIndex)
setFraudProofAddress
nonpayablefunction setFraudProofAddress(address _address)
storeData
nonpayablefunction storeData(bytes header, uint8 duration, uint32 blockNumber, uint256 startL2Block, uint256 endL2Block, uint32 totalOperatorsIndex, bool isReRollup)
submitReRollUpInfo
nonpayablefunction submitReRollUpInfo(uint256 batchIndex)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unavailableFraudProofAddress
nonpayablefunction unavailableFraudProofAddress(address _address)
updateDataLayrManagerAddress
nonpayablefunction updateDataLayrManagerAddress(address _dataManageAddress)
updateFraudProofPeriod
nonpayablefunction updateFraudProofPeriod(uint256 _fraudProofPeriod)
updateL2ConfirmedBlockNumber
nonpayablefunction updateL2ConfirmedBlockNumber(uint256 _l2ConfirmedBlockNumber)
updateL2StoredBlockNumber
nonpayablefunction updateL2StoredBlockNumber(uint256 _l2StoredBlockNumber)
updateReSubmitterAddress
nonpayablefunction updateReSubmitterAddress(address _reSubmitterAddress)
updateRollupBatchIndex
nonpayablefunction updateRollupBatchIndex(uint256 _rollupBatchIndex)
updateSequencerAddress
nonpayablefunction updateSequencerAddress(address _sequencer)
events
DataLayrManagerAddressUpdated
event DataLayrManagerAddressUpdated(address oldDataLayrManagerAddress, address newDataLayrManagerAddress)
FraudProofPeriodUpdated
event FraudProofPeriodUpdated(uint256 oldFraudProofPeriod, uint256 newFraudProofPeriod)
Initialized
event Initialized(uint8 version)
L2ConfirmedBlockNumberUpdated
event L2ConfirmedBlockNumberUpdated(uint256 oldL2ConfirmedBlockNumber, uint256 newL2ConfirmedBlockNumber)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ReRollupBatchData
event ReRollupBatchData(uint256 reRollupIndex, uint256 rollupBatchIndex, uint256 stratL2BlockNumber, uint256 endL2BlockNumber)
ReSubmitterAddressUpdated
event ReSubmitterAddressUpdated(address oldReSubmitterAddress, address newReSubmitterAddress)
RollupBatchIndexUpdated
event RollupBatchIndexUpdated(uint256 oldRollupBatchIndex, uint256 newRollupBatchIndex)
RollupStoreConfirmed
event RollupStoreConfirmed(uint256 rollupBatchIndex, uint32 dataStoreId, uint256 stratL2BlockNumber, uint256 endL2BlockNumber)
RollupStoreInitialized
event RollupStoreInitialized(uint32 dataStoreId, uint256 stratL2BlockNumber, uint256 endL2BlockNumber)
RollupStoreReverted
event RollupStoreReverted(uint256 rollupBatchIndex, uint32 dataStoreId, uint256 stratL2BlockNumber, uint256 endL2BlockNumber)
SequencerAddressUpdated
event SequencerAddressUpdated(address oldSequencerAddress, address newSequencerAddress)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6144dd80620000f46000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c8063728cdbca11610130578063afab4ac5116100b8578063f24950291161007c578063f249502914610542578063f2a8f12414610555578063f2fde38b1461055e578063f7db979514610571578063ff2e07491461058457600080fd5b8063afab4ac5146104b2578063b537c4c7146104c5578063c8fff01b146104e5578063c96c0d38146104f8578063d7fbc2e21461052f57600080fd5b8063927f2032116100ff578063927f20321461042b57806392f30a45146104345780639495de4014610483578063990fca66146104965780639a71e29c1461049f57600080fd5b8063728cdbca146103ec578063758b8147146103ff5780638bea6cae146104125780638da5cb5b1461041a57600080fd5b80633c762984116101be5780635c1bba38116101825780635c1bba38146103945780635d42ffb7146103bf5780635e4a3056146103c85780635e8b3f2d146103db578063715018a6146103e457600080fd5b80633c762984146103065780634618ed871461030f57806346b2eb9b146103225780634a4232de1461032a57806359cb63911461033d57600080fd5b80631f944c8f116102055780631f944c8f146102855780632e64b4c0146102ae5780632e72866b146102c1578063301b39ab146102e157806332c58f7a146102f357600080fd5b806302d777de14610237578063060ee9a41461024c5780630a33202e1461025f57806315fda73714610272575b600080fd5b61024a6102453660046137be565b6105a4565b005b61024a61025a3660046137be565b6106c3565b61024a61026d3660046137be565b6107a0565b61024a61028036600461398f565b61086c565b6102986102933660046139f9565b610f48565b6040516102a59190613aab565b60405180910390f35b61024a6102bc366004613ade565b6110d7565b6102d46102cf366004613ade565b611106565b6040516102a59190613b2f565b609a545b6040519081526020016102a5565b61024a6103013660046137be565b611191565b6102e5609d5481565b61024a61031d366004613bc6565b61124f565b6102986116e2565b61024a610338366004613ade565b6116fe565b61038461034b366004613ade565b609e6020526000908152604090205463ffffffff808216916401000000008104821691600160401b82041690600160601b900460ff1684565b6040516102a59493929190613c61565b6097546103a7906001600160a01b031681565b6040516001600160a01b0390911681526020016102a5565b6102e5609b5481565b61024a6103d6366004613c94565b611766565b6102e560995481565b61024a611a35565b61024a6103fa366004613d22565b611a49565b60a2546103a7906001600160a01b031681565b609b546102e5565b6033546001600160a01b03166103a7565b6102e560a35481565b610466610442366004613d81565b609f6020526000908152604090208054600182015460029092015490919060ff1683565b6040805193845260208401929092521515908201526060016102a5565b61024a610491366004613ade565b611bad565b6102e5609a5481565b61024a6104ad366004613ade565b611c15565b61024a6104c03660046137be565b611dc4565b6102e56104d3366004613d81565b60a06020526000908152604090205481565b61024a6104f33660046137be565b611ece565b61050b610506366004613d81565b611fa5565b604080518251815260208084015190820152918101511515908201526060016102a5565b61024a61053d366004613ade565b61200f565b6098546103a7906001600160a01b031681565b6102e5609c5481565b61024a61056c3660046137be565b612077565b61024a61057f366004613ade565b6120f0565b6102e5610592366004613ade565b60a46020526000908152604090205481565b6097546001600160a01b031633146105d75760405162461bcd60e51b81526004016105ce90613d9e565b60405180910390fd5b6001600160a01b0381166106615760405162461bcd60e51b8152602060048201526044602482018190527f757064617465446174614c6179724d616e61676572416464726573733a205f64908201527f6174614d616e6167654164647265737320697320746865207a65726f206164646064820152637265737360e01b608482015260a4016105ce565b609880546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f7dc2cdf7b45e41e53cedea7a30250d948690332e87d86f5eff45acd42ab259a291015b60405180910390a15050565b6097546001600160a01b031633146106ed5760405162461bcd60e51b81526004016105ce90613d9e565b6001600160a01b03811661077f5760405162461bcd60e51b815260206004820152604d60248201527f72656d6f7665467261756450726f6f66416464726573733a2072656d6f76654660448201527f7261756450726f6f66416464726573733a20616464726573732069732074686560648201526c207a65726f206164647265737360981b608482015260a4016105ce565b6001600160a01b0316600090815260a160205260409020805460ff19169055565b6097546001600160a01b031633146107ca5760405162461bcd60e51b81526004016105ce90613d9e565b6001600160a01b03811661077f5760405162461bcd60e51b815260206004820152605760248201527f756e617661696c61626c65467261756450726f6f66416464726573733a20756e60448201527f617661696c61626c65467261756450726f6f66416464726573733a206164647260648201527f65737320697320746865207a65726f2061646472657373000000000000000000608482015260a4016105ce565b33600090815260a1602052604090205460ff166108f15760405162461bcd60e51b815260206004820152603a60248201527f70726f766546726175643a204f6e6c792066726175642070726f6f662077686960448201527f7465206c6973742063616e206368616c6c656e6765206461746100000000000060648201526084016105ce565b6000848152609e602090815260408083208151608081018352815463ffffffff80821683526401000000008204811695830195909552600160401b81049094169281019290925290916060830190600160601b900460ff16600281111561095a5761095a613af7565b600281111561096b5761096b613af7565b905250905060018160600151600281111561098857610988613af7565b14801561099e575042816040015163ffffffff16115b610a005760405162461bcd60e51b815260206004820152602d60248201527f526f6c6c757053746f7265206d75737420626520636f6d6d697474656420616e60448201526c19081d5b98dbdb999a5c9b5959609a1b60648201526084016105ce565b8251610a0b9061216a565b6098546020850151604080870151606088015191516376c1607760e11b815260ff9093166004840152602483015263ffffffff1660448201526001600160a01b039091169063ed82c0ee9060640160206040518083038186803b158015610a7157600080fd5b505afa158015610a85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa99190613de3565b14610b095760405162461bcd60e51b815260206004820152602a60248201527f70726f766546726175643a206d6574616461746120707265696d616765206973604482015269081a5b98dbdc9c9958dd60b21b60648201526084016105ce565b806020015163ffffffff1683600001516040015163ffffffff1614610ba15760405162461bcd60e51b815260206004820152604260248201527f7365616368446174612773206461746173746f7265206964206973206e6f742060448201527f636f6e73697374656e74207769746820676976656e20726f6c6c75702073746f606482015261726560f01b608482015260a4016105ce565b610bab8280613dfc565b604051610bb9929190613e43565b60405190819003902083515114610c2d5760405162461bcd60e51b815260206004820152603260248201527f646973636c6f737572652070726f6f66732068656164657268617368207072656044820152711a5b5859d9481a5cc81a5b98dbdc9c9958dd60721b60648201526084016105ce565b610c6d610c3a8380613dfc565b610c4a6040860160208701613d81565b610c576040870187613e53565b610c646060890189613e53565b89608001612236565b610cb95760405162461bcd60e51b815260206004820152601d60248201527f646973636c6f737572652070726f6f66732061726520696e76616c696400000060448201526064016105ce565b6000610ccd610cc88480613dfc565b6127cb565b905063ffffffff8116610ce36040850185613e53565b9050610cf56040860160208701613d81565b63ffffffff16610d059190613eb3565b1115610d6a5760405162461bcd60e51b815260206004820152602e60248201527f43616e206f6e6c792070726f766520646174612066726f6d207468652073797360448201526d74656d61746963206368756e6b7360901b60648201526084016105ce565b6000610d9c610d7c6040860186613e53565b886040518060600160405280603281526020016144566032913951610f48565b90506040518060600160405280603281526020016144566032913951815114610e385760405162461bcd60e51b815260206004820152604260248201527f50617273696e67206572726f722c2070726f76656e20737472696e672069732060448201527f646966666572656e74206c656e677468207468616e20667261756420737472696064820152616e6760f01b608482015260a4016105ce565b6040518060600160405280603281526020016144566032913980519060200120818051906020012014610ead5760405162461bcd60e51b815260206004820152601d60248201527f70726f76656e20737472696e6720213d20667261756420737472696e6700000060448201526064016105ce565b6000878152609e60209081526040808320805460ff60601b1916600160611b179055875181015163ffffffff908116808552609f8452828520548a518401519092168552938290206001015482518c8152938401949094529082015260608101919091527fca227c67a02028763083580d42e8bdef4bb49c393068d05983421cd7a4a2a5be906080015b60405180910390a150505050505050565b6060610f55602084613ee1565b610fb15760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742073746172742072656164696e672066726f6d206120706164646044820152666564206279746560c81b60648201526084016105ce565b6000835b83835110156110cd57600061100082610fcf602082613ef5565b610fda906001613eb3565b610fe5906020613f09565b610fef9190613f28565b8551610ffb9088613f28565b6127da565b90508388888581811061101557611015613f3f565b90506020028101906110279190613dfc565b84906110338583613eb3565b9261104093929190613f55565b60405160200161105293929190613f7f565b604051602081830303815290604052935087878481811061107557611075613f3f565b90506020028101906110879190613dfc565b90506110938284613eb3565b14156110af57826110a381613fa7565b935050600191506110c7565b6110ba816001613eb3565b6110c49083613eb3565b91505b50610fb5565b5050949350505050565b6097546001600160a01b031633146111015760405162461bcd60e51b81526004016105ce90613d9e565b609b55565b61110e6136c8565b6000828152609e60209081526040918290208251608081018452815463ffffffff80821683526401000000008204811694830194909452600160401b810490931693810193909352906060830190600160601b900460ff16600281111561117757611177613af7565b600281111561118857611188613af7565b90525092915050565b6097546001600160a01b031633146111bb5760405162461bcd60e51b81526004016105ce90613d9e565b6001600160a01b03811661122b5760405162461bcd60e51b815260206004820152603160248201527f736574467261756450726f6f66416464726573733a206164647265737320697360448201527020746865207a65726f206164647265737360781b60648201526084016105ce565b6001600160a01b0316600090815260a160205260409020805460ff19166001179055565b6097546001600160a01b031633146112795760405162461bcd60e51b81526004016105ce90613d9e565b8484116112e45760405162461bcd60e51b815260206004820152603360248201527f636f6e6669726d446174613a20656e644c32426c6f636b206d757374206d6f7260448201527265207468616e2073746172744c32426c6f636b60681b60648201526084016105ce565b855160409081015163ffffffff166000908152609f6020908152908290208251606081018452815480825260018301549382019390935260029091015460ff161515928101929092528614801561133e5750848160200151145b8015611351575081151581604001511515145b61136d5760405162461bcd60e51b81526004016105ce90613fc2565b865160409081015163ffffffff16600090815260a06020522054600019146113a75760405162461bcd60e51b81526004016105ce90613fc2565b6098546040516358942e7360e01b81526001600160a01b03909116906358942e73906113db908c908c908c90600401614079565b600060405180830381600087803b1580156113f557600080fd5b505af1158015611409573d6000803e3d6000fd5b50505050816115845760408051608081018252885182015163ffffffff90811682528951830151166020820152609c5490918201906114489042613eb3565b63ffffffff16815260200160019052609d546000908152609e602090815260409182902083518154928501519385015163ffffffff908116600160401b0263ffffffff60401b199582166401000000000267ffffffffffffffff1990951691909216179290921792831682178155606084015190929091839160ff60601b1990911664ffffffffff60401b1990911617600160601b8360028111156114ef576114ef613af7565b02179055505050609b859055609d8054885160409081015163ffffffff16600090815260a06020529081208290557fc7c0900be05d2a0ad0f77852eb975d9e862d1db0a2238617dd0f77854782f672929061154983613fa7565b909155508851604090810151815163ffffffff93841681529216602083015281018890526060810187905260800160405180910390a16116d7565b60405180608001604052808563ffffffff16815260200188600001516040015163ffffffff168152602001609c54426115bd9190613eb3565b63ffffffff168152602001600190526000848152609e602090815260409182902083518154928501519385015163ffffffff908116600160401b0263ffffffff60401b199582166401000000000267ffffffffffffffff1990951691909216179290921792831682178155606084015190929091839160ff60601b1990911664ffffffffff60401b1990911617600160601b83600281111561166157611661613af7565b021790555050875160409081015163ffffffff908116600090815260a06020908152908390208790558a518301518351888152921690820152908101889052606081018790527fc7c0900be05d2a0ad0f77852eb975d9e862d1db0a2238617dd0f77854782f67291506080015b60405180910390a15b505050505050505050565b6040518060600160405280603281526020016144566032913981565b6097546001600160a01b031633146117285760405162461bcd60e51b81526004016105ce90613d9e565b609d80549082905560408051828152602081018490527f84d29a10fee283002b5c77232e8d38a21f0a3f16190de1693f837ac60bfbe2bb91016106b7565b6097546001600160a01b031633146117905760405162461bcd60e51b81526004016105ce90613d9e565b8383116117f95760405162461bcd60e51b815260206004820152603160248201527f73746f7265446174613a20656e644c32426c6f636b206d757374206d6f7265206044820152707468616e2073746172744c32426c6f636b60781b60648201526084016105ce565b60995461180c63ffffffff871643613f28565b1061186b5760405162461bcd60e51b815260206004820152602960248201527f73746f7265446174613a207374616b65732074616b656e2066726f6d20746f6f604482015268206c6f6e672061676f60b81b60648201526084016105ce565b609854604080516372d18e8d60e01b815290516000926001600160a01b0316916372d18e8d916004808301926020929190829003018186803b1580156118b057600080fd5b505afa1580156118c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e89190614149565b9050609860009054906101000a90046001600160a01b03166001600160a01b031663dcf49ea733308a8a888f8f6040518863ffffffff1660e01b81526004016119379796959493929190614166565b602060405180830381600087803b15801561195157600080fd5b505af1158015611965573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119899190614149565b5060408051606081018252868152602080820187815285151583850190815263ffffffff86166000908152609f84528581209451855591516001850155516002909301805460ff19169315159390931790925560a09052206000199055816119f157609a8490555b6040805163ffffffff83168152602081018790529081018590527fa99ca06ac3461399088feac88ec48dc5a47d61c3b6839eab20146f2c4ee53584906060016116ce565b611a3d6127f2565b611a47600061284c565b565b600054610100900460ff1615808015611a695750600054600160ff909116105b80611a835750303b158015611a83575060005460ff166001145b611ae65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105ce565b6000805460ff191660011790558015611b09576000805461ff0019166101001790555b611b1161289e565b609780546001600160a01b03808a166001600160a01b0319928316179092556098805489841690831617905560a28054928816929091169190911790556099849055609c839055609a829055609b8290558015611ba4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610f37565b50505050505050565b6097546001600160a01b03163314611bd75760405162461bcd60e51b81526004016105ce90613d9e565b609a80549082905560408051828152602081018490527fd81cc97cc11cd748d88c14364de569a7d07c4aeaea3b5a0525ca4d504ec548a991016106b7565b60a2546001600160a01b03163314611ca15760405162461bcd60e51b815260206004820152604360248201527f7375626d69745265526f6c6c5570496e666f3a204f6e6c79207468652072652060448201527f7375626d69747465722063616e207375626d697420726520726f6c6c7570206460648201526261746160e81b608482015260a4016105ce565b6000818152609e602090815260408083208151608081018352815463ffffffff80821683526401000000008204811695830195909552600160401b81049094169281019290925290916060830190600160601b900460ff166002811115611d0a57611d0a613af7565b6002811115611d1b57611d1b613af7565b905250602081015190915063ffffffff1615611dc05760a38054600090815260a46020526040812084905581547fee84ab0752d66e31e484f6855689d7067ecd900a6c5a198a2908f74e583e7d57929091611d7583613fa7565b909155506020838101805163ffffffff9081166000908152609f84526040808220549351909216815281902060010154815194855292840187905283015260608201526080016106b7565b5050565b6097546001600160a01b03163314611dee5760405162461bcd60e51b81526004016105ce90613d9e565b6001600160a01b038116611e745760405162461bcd60e51b815260206004820152604160248201527f75706461746552655375626d6974746572416464726573733a205f726553756260448201527f6d69747465724164647265737320697320746865207a65726f206164647265736064820152607360f81b608482015260a4016105ce565b60a280546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f84756a63b0b7003b255a685f66d60e972c20c2dd95acbc14c2e52fc1e91e6b3791016106b7565b611ed66127f2565b6001600160a01b038116611f4b5760405162461bcd60e51b815260206004820152603660248201527f75706461746553657175656e636572416464726573733a205f73657175656e63604482015275657220697320746865207a65726f206164647265737360501b60648201526084016105ce565b609780546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fe12a0ecca55e8af7ccbe853ac12e9d45a828685168f3e7c75edd4381b26e317191016106b7565b611fcb604051806060016040528060008152602001600081526020016000151581525090565b5063ffffffff166000908152609f60209081526040918290208251606081018452815481526001820154928101929092526002015460ff1615159181019190915290565b6097546001600160a01b031633146120395760405162461bcd60e51b81526004016105ce90613d9e565b609c80549082905560408051828152602081018490527f52d7ac606181dee95c39c1f26eaf69c99d262a01c7665cdd62497c29989694ab91016106b7565b61207f6127f2565b6001600160a01b0381166120e45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105ce565b6120ed8161284c565b50565b6097546001600160a01b0316331461211a5760405162461bcd60e51b81526004016105ce90613d9e565b805b609d5481101561215a576000818152609e6020526040902080546cffffffffffffffffffffffffff191690558061215281613fa7565b91505061211c565b50609d556001609a819055609b55565b600080826000015183602001518460400151856060015186608001518760a001518860c001518960e0015160405160200161221798979695949392919097885260e096871b6001600160e01b031990811660208a015295871b8616602489015293861b851660288801529190941b909216602c85015260a09290921b6001600160a01b031916603084015260601b6bffffffffffffffffffffffff1916603c830152605082015260700190565b60408051601f1981840301815291905280516020909101209392505050565b6000808567ffffffffffffffff811115612252576122526137d9565b60405190808252806020026020018201604052801561227b578160200160208202803683370190505b50905060006123088b8b6040805160c08101825260006080820181815260a0830182905282526020820181905291810182905260608101919091525050604080518082018252823581526020838101358183015282516080810184529182528383013560e090811c918301919091526044840135811c92820192909252604890920135901c606082015290565b90508460005b818110156125cc576123de83612324838e6141b0565b8a8a8581811061233657612336613f3f565b905060200281019061234891906141d8565b8b8b8681811061235a5761235a613f3f565b905060200281019061236c91906141d8565b6040018c8c8781811061238157612381613f3f565b905060200281019061239391906141d8565b6080018036038101906123a69190614249565b8d8d888181106123b8576123b8613f3f565b90506020028101906123ca91906141d8565b6123d990610100810190613dfc565b6128cd565b6124355760405162461bcd60e51b815260206004820152602260248201527f52657665616c206661696c65642064756520746f206e6f6e20312070616972696044820152616e6760f01b60648201526084016105ce565b89898281811061244757612447613f3f565b90506020028101906124599190613dfc565b90508360200151602061246c91906142a6565b65ffffffffffff16146124e75760405162461bcd60e51b815260206004820152603860248201527f506f6c796e6f6d69616c206d757374206861766520612032353620626974206360448201527f6f656666696369656e7420666f722065616368207465726d000000000000000060648201526084016105ce565b8989828181106124f9576124f9613f3f565b905060200281019061250b9190613dfc565b604051612519929190613e43565b604051809103902088888381811061253357612533613f3f565b905060200281019061254591906141d8565b3589898481811061255857612558613f3f565b905060200281019061256a91906141d8565b60405161259193929160209081013591019283526020830191909152604082015260600190565b604051602081830303815290604052805190602001208482815181106125b9576125b9613f3f565b602090810291909101015260010161230e565b506000600080516020614488833981519152846040516020016125ef9190614307565b6040516020818303038152906040528051906020012060001c6126129190613ee1565b905061261c6136f0565b60008051602061448883398151915285600060405160200161263f929190614313565b6040516020818303038152906040528051906020012060001c6126629190613ee1565b808252602082015260008989828161267c5761267c613f3f565b905060200281019061268e91906141d8565b61269e903681900381019061432c565b905060006126d08d8d60008181106126b8576126b8613f3f565b90506020028101906126ca9190613dfc565b86612a24565b905060015b8a8110156127a957612727836127228e8e858181106126f6576126f6613f3f565b905060200281019061270891906141d8565b612718903681900381019061432c565b6020880151612aa6565b612b3d565b925060006127588f8f8481811061274057612740613f3f565b90506020028101906127529190613dfc565b88612a24565b905060008051602061448883398151915280828760016020020151098408602086015186519194506000805160206144888339815191529109602086015250806127a181613fa7565b9150506126d5565b506127b6828a8684612bd1565b97505050505050505098975050505050505050565b604482013560e01c5b92915050565b60008183106127e957816127eb565b825b9392505050565b6033546001600160a01b03163314611a475760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105ce565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166128c55760405162461bcd60e51b81526004016105ce9061435e565b611a47612cac565b600061298883838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505060208b015161291e915065ffffffffffff16612cdc565b86516020808201519151818a01518083015190516040805194850195909552938301919091526060820152608081019190915260a0016040516020818303038152906040528051906020012061297d8b8d604001518e60600151612fd5565b63ffffffff16613136565b6129d45760405162461bcd60e51b815260206004820181905260248201527f496e636f7272656374207a65726f20706f6c79206d65726b6c652070726f6f6660448201526064016105ce565b87516000906129f4906127226129ef368b90038b018b61432c565b61314e565b9050612a17612a083688900388018861432c565b8683612a1261320d565b6132cd565b9998505050505050505050565b600080836001825b82811015612a9a576000888289612a44826020613eb3565b92612a5193929190613f55565b612a5a916143a9565b905060008051602061448883398151915280848309860894506000805160206144888339815191528784099250612a92602083613eb3565b915050612a2c565b50919695505050505050565b6040805180820190915260008082526020820152612ac261370e565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808015612af557612af7565bfe5b5080612b355760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016105ce565b505092915050565b6040805180820190915260008082526020820152612b5961372c565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa9050808015612af5575080612b355760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016105ce565b60408051808201909152600181526002602082015260009081612bfc612bf68361314e565b86612aa6565b604080518082019091527f220ac48bb1f91fd93f502a3d0caa077ac70e0af8819b9d8fa26a168a2c558a5781527f08f54b82af08ceaf7cd5f180bac94870f6d8100a9c9afa9dd09a4491653891126020820152909150612c5c8183612b3d565b91506000612c72612c6c8561314e565b87612aa6565b90506000612c808a83612b3d565b9050612c9e84612c95368c90038c018c614249565b83612a1261320d565b9a9950505050505050505050565b600054610100900460ff16612cd35760405162461bcd60e51b81526004016105ce9061435e565b611a473361284c565b600080612ce88361353a565b905080612d1757507fe82cea94884b1b895ea0742840a3b19249a723810fd1b04d8564d675b0a416f192915050565b8060011415612d4857507f4843774a80fc8385b31024f5bd18b42e62de439206ab9468d42d826796d41f6792915050565b8060021415612d7957507f092d3e5f87f5293e7ab0cc2ca6b0b5e4adb5e0011656544915f7cea34e69e5ab92915050565b8060031415612daa57507f494b208540ec8624fbbb3f2c64ffccdaf6253f8f4e50c0d93922d88195b0775592915050565b8060041415612ddb57507ffdb44b84a82893cfa0e37a97f09ffc4298ad5e62be1bea1d03320ae836213d2292915050565b8060051415612e0c57507f3f50cb08231d2a76853ba9dbb20dad45a1b75c57cdaff6223bfe069752cff3d492915050565b8060061415612e3d57507fbb39eebd8138eefd5802a49d571e65b3e0d4e32277c28fbf5fbca66e7fb0431092915050565b8060071415612e6e57507ff0a39b513e11fa80cbecbf352f69310eddd5cd03148768e0e9542bd600b133ec92915050565b8060081415612e9f57507f038cca2238865414efb752cc004fffec9e6069b709f495249cdf36efbd5952f692915050565b8060091415612ed057507f2a26b054ed559dd255d8ac9060ebf6b95b768d87de767f8174ad2f9a4e48dd0192915050565b80600a1415612f0157507f1fe180d0bc4ff7c69fefa595b3b5f3c284535a280f6fdcf69b20770d1e20e1fc92915050565b80600b1415612f3257507f60e34ad57c61cd6fdd8177437c30e4a30334e63d7683989570cf27020efc820192915050565b80600c1415612f6357507feda2417e770ddbe88f083acf06b6794dfb76301314a32bd0697440d76f6cd9cc92915050565b80600d1415612f9457507f8cbe9b8cf92ce70e3bec8e1e72a0f85569017a7e43c3db50e4a5badb8dea7ce892915050565b60405162461bcd60e51b81526020600482015260166024820152754c6f67206e6f7420696e2076616c69642072616e676560501b60448201526064016105ce565b600080612fe283856141b0565b90506000612ff58563ffffffff166135a0565b9050600061300386846143c7565b63ffffffff1615613015576001613018565b60005b60ff1661302587856143ea565b61302f91906141b0565b9050600061304b613040838561440d565b63ffffffff166135a0565b90508663ffffffff168863ffffffff16101561308d578061306c828a6135cd565b6130789061010061440d565b61308291906143ea565b9450505050506127eb565b6130978784614430565b6130a19082614430565b63ffffffff168863ffffffff1610156130d3578061306c81856130c48b8d614430565b6130ce91906141b0565b6135cd565b60405162461bcd60e51b815260206004820152603260248201527f43616e6e6f7420637265617465206e756d626572206f66206672616d6520686960448201527167686572207468616e20706f737369626c6560701b60648201526084016105ce565b60008361314486858561360c565b1495945050505050565b6040805180820190915260008082526020820152815115801561317357506020820151155b15613191575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516131d69190613ee1565b613200907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47613f28565b905292915050565b919050565b61321561374a565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820182528581526020808201859052825180840190935285835282018390526000916132fc61376a565b60005b60028110156134c1576000613315826006613f09565b905084826002811061332957613329613f3f565b6020020151518361333b836000613eb3565b600c811061334b5761334b613f3f565b602002015284826002811061336257613362613f3f565b602002015160200151838260016133799190613eb3565b600c811061338957613389613f3f565b60200201528382600281106133a0576133a0613f3f565b60200201515151836133b3836002613eb3565b600c81106133c3576133c3613f3f565b60200201528382600281106133da576133da613f3f565b60200201515160016020020151836133f3836003613eb3565b600c811061340357613403613f3f565b602002015283826002811061341a5761341a613f3f565b60200201516020015160006002811061343557613435613f3f565b602002015183613446836004613eb3565b600c811061345657613456613f3f565b602002015283826002811061346d5761346d613f3f565b60200201516020015160016002811061348857613488613f3f565b602002015183613499836005613eb3565b600c81106134a9576134a9613f3f565b602002015250806134b981613fa7565b9150506132ff565b506134ca613789565b60006020826101808560086107d05a03fa9050808015612af557508061352a5760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016105ce565b5051151598975050505050505050565b60008082116135815760405162461bcd60e51b8152602060048201526013602482015272131bd9c81b5d5cdd081899481919599a5b9959606a1b60448201526064016105ce565b60005b600183821c146127d4578061359881613fa7565b915050613584565b600060015b82816001901b10156135c357806135bb81613fa7565b9150506135a5565b6001901b92915050565b6000806135df8463ffffffff1661353a565b6135ea906020614430565b90508063ffffffff166135fc8461367a565b63ffffffff16901c949350505050565b60008260205b8551811161367157613625600285613ee1565b6136465781600052808601516020526040600020915060028404935061365f565b8086015160005281602052604060002091506002840493505b61366a602082613eb3565b9050613612565b50949350505050565b600080805b60208110156136c1576001811b84811663ffffffff16156136ae576136a582601f613f28565b6001901b831792505b50806136b981613fa7565b91505061367f565b5092915050565b604080516080810182526000808252602082018190529181018290529060608201905b905290565b60405180604001604052806002906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061375d6136f0565b81526020016136eb6136f0565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b80356001600160a01b038116811461320857600080fd5b6000602082840312156137d057600080fd5b6127eb826137a7565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715613812576138126137d9565b60405290565b604051610100810167ffffffffffffffff81118282101715613812576138126137d9565b6040805190810167ffffffffffffffff81118282101715613812576138126137d9565b63ffffffff811681146120ed57600080fd5b80356132088161385f565b80356bffffffffffffffffffffffff8116811461320857600080fd5b803560ff8116811461320857600080fd5b60008183036101608112156138bd57600080fd5b6138c56137ef565b9150610100808212156138d757600080fd5b6138df613818565b91508335825260208401356138f38161385f565b602083015261390460408501613871565b604083015261391560608501613871565b606083015261392660808501613871565b608083015261393760a0850161387c565b60a083015261394860c085016137a7565b60c083015260e084013560e0830152818352613965818501613898565b6020840152505061012082013560408201526139846101408301613871565b606082015292915050565b6000806000806101c085870312156139a657600080fd5b84359350602085013592506139be86604087016138a9565b91506101a085013567ffffffffffffffff8111156139db57600080fd5b850161010081880312156139ee57600080fd5b939692955090935050565b60008060008060608587031215613a0f57600080fd5b843567ffffffffffffffff80821115613a2757600080fd5b818701915087601f830112613a3b57600080fd5b813581811115613a4a57600080fd5b8860208260051b8501011115613a5f57600080fd5b6020928301999098509187013596604001359550909350505050565b60005b83811015613a96578181015183820152602001613a7e565b83811115613aa5576000848401525b50505050565b6020815260008251806020840152613aca816040850160208701613a7b565b601f01601f19169190910160400192915050565b600060208284031215613af057600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60038110613b2b57634e487b7160e01b600052602160045260246000fd5b9052565b600060808201905063ffffffff8084511683528060208501511660208401528060408501511660408401525060608301516136c16060840182613b0d565b60008083601f840112613b7f57600080fd5b50813567ffffffffffffffff811115613b9757600080fd5b602083019150836020828501011115613baf57600080fd5b9250929050565b8035801515811461320857600080fd5b600080600080600080600080610220898b031215613be357600080fd5b883567ffffffffffffffff811115613bfa57600080fd5b613c068b828c01613b6d565b9099509750613c1a90508a60208b016138a9565b955061018089013594506101a089013593506101c0890135613c3b8161385f565b92506101e08901359150613c526102008a01613bb6565b90509295985092959890939650565b63ffffffff858116825284811660208301528316604082015260808101613c8b6060830184613b0d565b95945050505050565b60008060008060008060008060e0898b031215613cb057600080fd5b883567ffffffffffffffff811115613cc757600080fd5b613cd38b828c01613b6d565b9099509750613ce6905060208a01613898565b95506040890135613cf68161385f565b9450606089013593506080890135925060a0890135613d148161385f565b9150613c5260c08a01613bb6565b60008060008060008060c08789031215613d3b57600080fd5b613d44876137a7565b9550613d52602088016137a7565b9450613d60604088016137a7565b9350606087013592506080870135915060a087013590509295509295509295565b600060208284031215613d9357600080fd5b81356127eb8161385f565b60208082526025908201527f4f6e6c79207468652073657175656e6365722063616e20646f2074686973206160408201526431ba34b7b760d91b606082015260800190565b600060208284031215613df557600080fd5b5051919050565b6000808335601e19843603018112613e1357600080fd5b83018035915067ffffffffffffffff821115613e2e57600080fd5b602001915036819003821315613baf57600080fd5b8183823760009101908152919050565b6000808335601e19843603018112613e6a57600080fd5b83018035915067ffffffffffffffff821115613e8557600080fd5b6020019150600581901b3603821315613baf57600080fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115613ec657613ec6613e9d565b500190565b634e487b7160e01b600052601260045260246000fd5b600082613ef057613ef0613ecb565b500690565b600082613f0457613f04613ecb565b500490565b6000816000190483118215151615613f2357613f23613e9d565b500290565b600082821015613f3a57613f3a613e9d565b500390565b634e487b7160e01b600052603260045260246000fd5b60008085851115613f6557600080fd5b83861115613f7257600080fd5b5050820193919092039150565b60008451613f91818460208901613a7b565b8201838582376000930192835250909392505050565b6000600019821415613fbb57613fbb613e9d565b5060010190565b60208082526062908201527f636f6e6669726d446174613a20446174612073746f726520656974686572207760408201527f6173206e6f7420696e697469616c697a65642062792074686520726f6c6c757060608201527f20636f6e74726163742c206f7220697320616c726561647920636f6e6669726d608082015261195960f21b60a082015260c00190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600061018080835261408e8184018688614050565b915050825180516020840152602081015163ffffffff8082166040860152806040840151166060860152806060840151166080860152505060808101516140dd60a085018263ffffffff169052565b5060a08101516bffffffffffffffffffffffff1660c0848101919091528101516001600160a01b031660e0808501919091520151610100830152602083015160ff16610120830152604083015161014083015260609092015163ffffffff166101609091015292915050565b60006020828403121561415b57600080fd5b81516127eb8161385f565b6001600160a01b0388811682528716602082015260ff8616604082015263ffffffff85811660608301528416608082015260c060a08201819052600090612a179083018486614050565b600063ffffffff8083168185168083038211156141cf576141cf613e9d565b01949350505050565b6000823561011e198336030181126141ef57600080fd5b9190910192915050565b600082601f83011261420a57600080fd5b61421261383c565b80604084018581111561422457600080fd5b845b8181101561423e578035845260209384019301614226565b509095945050505050565b60006080828403121561425b57600080fd5b6040516040810181811067ffffffffffffffff8211171561427e5761427e6137d9565b60405261428b84846141f9565b815261429a84604085016141f9565b60208201529392505050565b600065ffffffffffff808316818516818304811182151516156142cb576142cb613e9d565b02949350505050565b60008151602080840160005b838110156142fc578151875295820195908201906001016142e0565b509495945050505050565b60006127eb82846142d4565b600061431f82856142d4565b9283525050602001919050565b60006040828403121561433e57600080fd5b61434661383c565b82358152602083013560208201528091505092915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b803560208310156127d457600019602084900360031b1b1692915050565b600063ffffffff808416806143de576143de613ecb565b92169190910692915050565b600063ffffffff8084168061440157614401613ecb565b92169190910492915050565b600063ffffffff808316818516818304811182151516156142cb576142cb613e9d565b600063ffffffff8381169083168181101561444d5761444d613e9d565b03939250505056fe2d2d5468697320697320612062616420737472696e672e204e6f626f64792073617973207468697320737472696e672e2d2d30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220b09199499b73161d5ebb82ac5f8b4f2e901aebb86eab86c1c53fff7982a5160964736f6c63430008090033