0 txs
116.3k calls
constructor
constructor(address _gelato)
functions
execAddresses
viewfunction execAddresses(bytes32) view returns (address)
fee
viewfunction fee() view returns (uint256)
feeToken
viewfunction feeToken() view returns (address)
gelato
viewfunction gelato() view returns (address)
getFeeDetails
viewfunction getFeeDetails() view returns (uint256, address)
getTaskId
purefunction getTaskId(address taskCreator, address execAddress, bytes4 execSelector, tuple moduleData, address feeToken) pure returns (bytes32 taskId)
getTaskIdsByUser
viewfunction getTaskIdsByUser(address _taskCreator) view returns (bytes32[])
nonce1Balance
viewfunction nonce1Balance(bytes32) view returns (uint256)
taskCreator
viewfunction taskCreator(bytes32) view returns (address)
taskModuleAddresses
viewfunction taskModuleAddresses(uint8) view returns (address)
timedTask
viewfunction timedTask(bytes32) view returns (uint128 nextExec, uint128 interval)
version
viewfunction version() view returns (string)
cancelTask
nonpayablefunction cancelTask(bytes32 _taskId)
createTask
nonpayablefunction createTask(address _execAddress, bytes _execDataOrSelector, tuple _moduleData, address _feeToken) returns (bytes32 taskId)
exec
nonpayablefunction exec(address _taskCreator, address _execAddress, bytes _execData, tuple _moduleData, uint256 _txFee, address _feeToken, bool _revertOnFailure)
exec1Balance
nonpayablefunction exec1Balance(address _taskCreator, address _execAddress, bytes _execData, tuple _moduleData, tuple _oneBalanceParam, bool _revertOnFailure)
execBypassModule
nonpayablefunction execBypassModule(address _taskCreator, address _execAddress, bytes32 _taskId, bytes32 _correlationId, bytes _execData, bool _revertOnFailure, bool _singleExec)
execBypassModuleSyncFee
nonpayablefunction execBypassModuleSyncFee(address _taskCreator, address _execAddress, bytes32 _taskId, uint256 _txFee, address _feeToken, bytes _execData, bool _revertOnFailure, bool _singleExec)
setModule
nonpayablefunction setModule(uint8[] _modules, address[] _moduleAddresses)
events
LogUseGelato1Balance
event LogUseGelato1Balance(address indexed sponsor, address indexed target, address indexed feeToken, uint256 oneBalanceChainId, uint256 nativeToFeeTokenXRateNumerator, uint256 nativeToFeeTokenXRateDenominator, bytes32 correlationId)
errors
No errors.
creation bytecode
0x60a06040523480156200001157600080fd5b5060405162004a7938038062004a798339818101604052810190620000379190620000de565b808073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050505062000110565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000a68262000079565b9050919050565b620000b88162000099565b8114620000c457600080fd5b50565b600081519050620000d881620000ad565b92915050565b600060208284031215620000f757620000f662000074565b5b60006200010784828501620000c7565b91505092915050565b60805161493162000148600039600081816104710152818161072e015281816107ab01528181610a890152610e3701526149316000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806380381407116100ad578063b81cd86611610071578063b81cd8661461032f578063cd3d4fb914610360578063ddca3f4314610390578063e1d173a9146103ae578063ee8ca3b5146103ca57610121565b8063803814071461028c578063813785e6146102a8578063abf26d55146102c4578063ac21631a146102e0578063b810c6361461031057610121565b80633323b467116100f45780633323b467146101d257806354fd4d5014610202578063573ea57514610220578063647846a51461023e5780636d2dd29f1461025c57610121565b80630407145c146101265780632e6e0bd01461015657806330a9fe6a146101865780633140576e146101a2575b600080fd5b610140600480360381019061013b9190612a90565b6103e6565b60405161014d9190612b85565b60405180910390f35b610170600480360381019061016b9190612bd3565b61043c565b60405161017d9190612c0f565b60405180910390f35b6101a0600480360381019061019b9190612dde565b61046f565b005b6101bc60048036038101906101b79190613168565b61065c565b6040516101c9919061320e565b60405180910390f35b6101ec60048036038101906101e791906132a8565b610676565b6040516101f9919061320e565b60405180910390f35b61020a6106f3565b60405161021791906133d4565b60405180910390f35b61022861072c565b6040516102359190613417565b60405180910390f35b610246610750565b6040516102539190612c0f565b60405180910390f35b61027660048036038101906102719190612bd3565b610776565b6040516102839190612c0f565b60405180910390f35b6102a660048036038101906102a19190613432565b6107a9565b005b6102c260048036038101906102bd919061359c565b610920565b005b6102de60048036038101906102d9919061363c565b610a87565b005b6102fa60048036038101906102f59190612bd3565b610d57565b6040516103079190613712565b60405180910390f35b610318610d6f565b60405161032692919061372d565b60405180910390f35b61034960048036038101906103449190612bd3565b610da0565b604051610357929190613781565b60405180910390f35b61037a600480360381019061037591906137aa565b610dfc565b6040516103879190612c0f565b60405180910390f35b610398610e2f565b6040516103a59190613712565b60405180910390f35b6103c860048036038101906103c391906137d7565b610e35565b005b6103e460048036038101906103df9190612bd3565b6110c0565b005b60606000610431600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206110de565b905080915050919050565b60006020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f4906138fd565b60405180910390fd5b61054e86600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206110f390919063ffffffff16565b61058d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058490613969565b60405180910390fd5b8460038190555083600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006105e7878a8a878787600261110a565b9050600360009055600460006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690557f668a2c70c9e33b13c143eac02a389bb5ff706c9939aab9ef9edbbc11216b7b4d878787846040516106499493929190613998565b60405180910390a1505050505050505050565b600061066b8686868686611211565b905095945050505050565b6000806106853388600661124d565b80985081925050506106e7818888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050876106e1906139dd565b87611423565b91505095945050505050565b6040518060400160405280600181526020017f370000000000000000000000000000000000000000000000000000000000000081525081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082e906138fd565b60405180910390fd5b61088885600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206110f390919063ffffffff16565b6108c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108be90613969565b60405180910390fd5b60006108d9868989878787600261110a565b90507f6bc93adab97dd835bee818087939b726558bc8d9177650a0018dd05eb00e56c886868360405161090e939291906139f0565b60405180910390a15050505050505050565b6109286115a1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098c90613a73565b60405180910390fd5b600084849050905060005b81811015610a7f578383828181106109bb576109ba613a93565b5b90506020020160208101906109d09190612a90565b600660008888858181106109e7576109e6613a93565b5b90506020020160208101906109fc91906137aa565b6005811115610a0e57610a0d613ac2565b5b6005811115610a2057610a1f613ac2565b5b815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508080610a7790613b20565b9150506109a0565b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0c906138fd565b60405180910390fd5b6000610b368787610b25886115ca565b87610b2f906139dd565b6000611211565b9050610b8981600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206110f390919063ffffffff16565b610bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbf90613969565b60405180910390fd5b6000610c2982898989898060000190610be19190613b77565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050886006611743565b90508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff1660007fa458375b1282695a972870cbfbc4891a9d856b79d563d17667d171d87e0c527a898686604051610c8f93929190613c2f565b60405180910390a4836020016020810190610caa9190612a90565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16856000016020810190610cea9190612a90565b73ffffffffffffffffffffffffffffffffffffffff167f116bfd46451bbd23e7a5f5b7420b28e3d98d4c477f173da513aaaeac3c4baada8760400135886060013589608001358a60a00135604051610d459493929190613c6d565b60405180910390a45050505050505050565b60076020528060005260406000206000915090505481565b600080600354600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915091509091565b60056020528060005260406000206000915090508060000160009054906101000a90046fffffffffffffffffffffffffffffffff16908060000160109054906101000a90046fffffffffffffffffffffffffffffffff16905082565b60066020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eba906138fd565b60405180910390fd5b6000610ee38888610ed3896115ca565b88610edd906139dd565b87611211565b9050610f3681600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206110f390919063ffffffff16565b610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c90613969565b60405180910390fd5b8360038190555082600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600061101e828a8a8a8a8060000190610fd69190613b77565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050886006611743565b9050600360009055600460006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690558773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16867fa458375b1282695a972870cbfbc4891a9d856b79d563d17667d171d87e0c527a8a86866040516110ad93929190613c2f565b60405180910390a4505050505050505050565b60006110ce823360066117eb565b90506110da81836119a8565b5050565b60606110ec82600001611ac7565b9050919050565b60006111028360000183611b23565b905092915050565b6000611170868689604051602001611123929190613d36565b6040516020818303038152906040526000876040518060400160405280600f81526020017f4175746f6d6174652e657865633a200000000000000000000000000000000000815250611b46565b50809150508215611206576111cb888360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611be090919063ffffffff16565b507f44d83729a43f9c6046446df014d073dd242e0ad672071e9b292f31b669c25b0988886040516111fd929190613d5e565b60405180910390a15b979650505050505050565b6000858585858560405160200161122c959493929190613fdd565b60405160208183030381529060405280519060200120905095945050505050565b6000806000600160058081111561126757611266613ac2565b5b6112719190614037565b905060005b8181101561141357600081600581111561129357611292613ac2565b5b90506112b08160058111156112ab576112aa613ac2565b5b611bf7565b6112ba5750611400565b60008660008360058111156112d2576112d1613ac2565b5b60058111156112e4576112e3613ac2565b5b815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061131e81611c38565b60006376474e6a60e01b8a8a60405160240161133b92919061408d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006113dc83836040518060400160405280601881526020017f4175746f6d6174652e7072654372656174655461736b3a200000000000000000815250611caa565b915050808060200190518101906113f391906140e2565b809b50819c505050505050505b808061140b90613b20565b915050611276565b5085859250925050935093915050565b600061143a8686611433876115ca565b8686611211565b905061148d81600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206110f390919063ffffffff16565b156114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c490614194565b60405180910390fd5b6114dc81878787876006611d34565b61152d81600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611f0590919063ffffffff16565b50808573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f73f079427211e7b93db86024054de0b3c4a076a36cf0f86d2c4bf0d112eb7f1d878787604051611590939291906141b4565b60405180910390a495945050505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610354905090565b60006018826003815181106115e2576115e1613a93565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c60108360028151811061164657611645613a93565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c6008846001815181106116aa576116a9613a93565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c8460008151811061170c5761170b613a93565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161717179050919050565b6000806117508584611f1c565b9050611760898989898986612059565b80975081985050506117cc87878a60405160200161177f929190613d36565b6040516020818303038152906040526000876040518060400160405280600f81526020017f4175746f6d6174652e657865633a200000000000000000000000000000000000815250611b46565b50809250506117df8989898989866121cc565b50979650505050505050565b60008060058081111561180157611800613ac2565b5b905060005b81811161199c57600081600581111561182257611821613ac2565b5b905061183f81600581111561183a57611839613ac2565b5b612312565b6118495750611989565b600085600083600581111561186157611860613ac2565b5b600581111561187357611872613ac2565b5b815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506118ad81611c38565b60006314ae992660e01b89896040516024016118ca929190613d5e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600061196b83836040518060400160405280601881526020017f4175746f6d6174652e70726543616e63656c5461736b3a200000000000000000815250611caa565b9150508080602001905181019061198291906141f9565b9850505050505b808061199490613b20565b915050611806565b50839150509392505050565b6119f981600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206110f390919063ffffffff16565b611a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2f90614298565b60405180910390fd5b611a8981600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611be090919063ffffffff16565b507f44d83729a43f9c6046446df014d073dd242e0ad672071e9b292f31b669c25b098183604051611abb929190613d5e565b60405180910390a15050565b606081600001805480602002602001604051908101604052809291908181526020018280548015611b1757602002820191906000526020600020905b815481526020019060010190808311611b03575b50505050509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b600060608673ffffffffffffffffffffffffffffffffffffffff168587604051611b7091906142b8565b60006040518083038185875af1925050503d8060008114611bad576040519150601f19603f3d011682016040523d82523d6000602084013e611bb2565b606091505b50809250819350505081158015611bc65750835b15611bd657611bd58184612353565b5b9550959350505050565b6000611bef83600001836124ba565b905092915050565b600060026005811115611c0d57611c0c613ac2565b5b826005811115611c2057611c1f613ac2565b5b03611c2e5760019050611c33565b600090505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9e90614341565b60405180910390fd5b50565b600060608473ffffffffffffffffffffffffffffffffffffffff1684604051611cd391906142b8565b600060405180830381855af49150503d8060008114611d0e576040519150601f19603f3d011682016040523d82523d6000602084013e611d13565b606091505b50809250819350505081611d2c57611d2b8184612353565b5b935093915050565b60008260000151519050611d4b83600001516125ce565b60005b81811015611efb57600084600001518281518110611d6f57611d6e613a93565b5b60200260200101519050611d94816005811115611d8f57611d8e613ac2565b5b6128eb565b611d9e5750611ee8565b6000846000836005811115611db657611db5613ac2565b5b6005811115611dc857611dc7613ac2565b5b815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611e0281611c38565b600063b0ccbdf060e01b8b8b8b8b8b602001518981518110611e2757611e26613a93565b5b6020026020010151604051602401611e43959493929190614361565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050611ee282826040518060400160405280601781526020017f4175746f6d6174652e6f6e4372656174655461736b3a20000000000000000000815250611caa565b50505050505b8080611ef390613b20565b915050611d4e565b5050505050505050565b6000611f14836000018361292c565b905092915050565b606060008351905060008167ffffffffffffffff811115611f4057611f3f612c7b565b5b604051908082528060200260200182016040528015611f6e5781602001602082028036833780820191505090505b50905060005b8281101561204d57846000878381518110611f9257611f91613a93565b5b60200260200101516005811115611fac57611fab613ac2565b5b6005811115611fbe57611fbd613ac2565b5b815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682828151811061200057611fff613a93565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808061204590613b20565b915050611f74565b50809250505092915050565b6000606060008451905060005b818110156121b9576120a386828151811061208457612083613a93565b5b6020026020010151600581111561209e5761209d613ac2565b5b61299c565b156121a657600063c10304f760e01b8b8b8b8b6040516024016120c994939291906143c2565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006121848784815181106121405761213f613a93565b5b6020026020010151836040518060400160405280601681526020017f4175746f6d6174652e7072654578656343616c6c3a2000000000000000000000815250611caa565b9150508080602001905181019061219b919061447e565b809a50819b50505050505b80806121b190613b20565b915050612066565b5086869250925050965096945050505050565b60008151905060005b81811015612308576122128482815181106121f3576121f2613a93565b5b6020026020010151600581111561220d5761220c613ac2565b5b6129dd565b156122f557600063b2db0b4160e01b8989898960405160240161223894939291906143c2565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506122f18483815181106122ad576122ac613a93565b5b6020026020010151826040518060400160405280601781526020017f4175746f6d6174652e706f73744578656343616c6c3a20000000000000000000815250611caa565b5050505b808061230090613b20565b9150506121d5565b5050505050505050565b60006002600581111561232857612327613ac2565b5b82600581111561233b5761233a613ac2565b5b03612349576001905061234e565b600090505b919050565b6004602083516123639190614509565b0361245e576000826020015190506308c379a060e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036124025760448301925081836040516020016123b7929190614576565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f991906133d4565b60405180910390fd5b8160405160200161241391906145e6565b6040516020818303038152906040526040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245591906133d4565b60405180910390fd5b8060405160200161246f9190614654565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b191906133d4565b60405180910390fd5b600080836001016000848152602001908152602001600020549050600081146125c25760006001826124ec9190614676565b90506000600186600001805490506125049190614676565b905081811461257357600086600001828154811061252557612524613a93565b5b906000526020600020015490508087600001848154811061254957612548613a93565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612587576125866146aa565b5b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506125c8565b60009150505b92915050565b600081519050600060016005808111156125eb576125ea613ac2565b5b6125f59190614037565b905060008167ffffffffffffffff81111561261357612612612c7b565b5b6040519080825280602002602001820160405280156126415781602001602082028036833780820191505090505b50905060005b838110156127655760008111156126ff57846001826126669190614676565b8151811061267757612676613a93565b5b6020026020010151600581111561269157612690613ac2565b5b8582815181106126a4576126a3613a93565b5b602002602001015160058111156126be576126bd613ac2565b5b116126fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f590614725565b60405180910390fd5b5b60018286838151811061271557612714613a93565b5b6020026020010151600581111561272f5761272e613ac2565b5b815181106127405761273f613a93565b5b602002602001019015159081151581525050808061275d90613b20565b915050612647565b50806001600581111561277b5761277a613ac2565b5b8151811061278c5761278b613a93565b5b6020026020010151156127d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127cb906147b7565b60405180910390fd5b80600060058111156127e9576127e8613ac2565b5b815181106127fa576127f9613a93565b5b602002602001015180156128385750806004600581111561281e5761281d613ac2565b5b8151811061282f5761282e613a93565b5b60200260200101515b15612878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286f90614849565b60405180910390fd5b806002600581111561288d5761288c613ac2565b5b8151811061289e5761289d613a93565b5b60200260200101516128e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128dc906148db565b60405180910390fd5b50505050565b60006002600581111561290157612900613ac2565b5b82600581111561291457612913613ac2565b5b036129225760019050612927565b600090505b919050565b60006129388383611b23565b612991578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612996565b600090505b92915050565b6000600260058111156129b2576129b1613ac2565b5b8260058111156129c5576129c4613ac2565b5b036129d357600190506129d8565b600090505b919050565b6000600360058111156129f3576129f2613ac2565b5b826005811115612a0657612a05613ac2565b5b03612a145760019050612a19565b600090505b919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a5d82612a32565b9050919050565b612a6d81612a52565b8114612a7857600080fd5b50565b600081359050612a8a81612a64565b92915050565b600060208284031215612aa657612aa5612a28565b5b6000612ab484828501612a7b565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b612afc81612ae9565b82525050565b6000612b0e8383612af3565b60208301905092915050565b6000602082019050919050565b6000612b3282612abd565b612b3c8185612ac8565b9350612b4783612ad9565b8060005b83811015612b78578151612b5f8882612b02565b9750612b6a83612b1a565b925050600181019050612b4b565b5085935050505092915050565b60006020820190508181036000830152612b9f8184612b27565b905092915050565b612bb081612ae9565b8114612bbb57600080fd5b50565b600081359050612bcd81612ba7565b92915050565b600060208284031215612be957612be8612a28565b5b6000612bf784828501612bbe565b91505092915050565b612c0981612a52565b82525050565b6000602082019050612c246000830184612c00565b92915050565b6000819050919050565b612c3d81612c2a565b8114612c4857600080fd5b50565b600081359050612c5a81612c34565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612cb382612c6a565b810181811067ffffffffffffffff82111715612cd257612cd1612c7b565b5b80604052505050565b6000612ce5612a1e565b9050612cf18282612caa565b919050565b600067ffffffffffffffff821115612d1157612d10612c7b565b5b612d1a82612c6a565b9050602081019050919050565b82818337600083830152505050565b6000612d49612d4484612cf6565b612cdb565b905082815260208101848484011115612d6557612d64612c65565b5b612d70848285612d27565b509392505050565b600082601f830112612d8d57612d8c612c60565b5b8135612d9d848260208601612d36565b91505092915050565b60008115159050919050565b612dbb81612da6565b8114612dc657600080fd5b50565b600081359050612dd881612db2565b92915050565b600080600080600080600080610100898b031215612dff57612dfe612a28565b5b6000612e0d8b828c01612a7b565b9850506020612e1e8b828c01612a7b565b9750506040612e2f8b828c01612bbe565b9650506060612e408b828c01612c4b565b9550506080612e518b828c01612a7b565b94505060a089013567ffffffffffffffff811115612e7257612e71612a2d565b5b612e7e8b828c01612d78565b93505060c0612e8f8b828c01612dc9565b92505060e0612ea08b828c01612dc9565b9150509295985092959890939650565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612ee581612eb0565b8114612ef057600080fd5b50565b600081359050612f0281612edc565b92915050565b600080fd5b600080fd5b600067ffffffffffffffff821115612f2d57612f2c612c7b565b5b602082029050602081019050919050565b600080fd5b60068110612f5057600080fd5b50565b600081359050612f6281612f43565b92915050565b6000612f7b612f7684612f12565b612cdb565b90508083825260208201905060208402830185811115612f9e57612f9d612f3e565b5b835b81811015612fc75780612fb38882612f53565b845260208401935050602081019050612fa0565b5050509392505050565b600082601f830112612fe657612fe5612c60565b5b8135612ff6848260208601612f68565b91505092915050565b600067ffffffffffffffff82111561301a57613019612c7b565b5b602082029050602081019050919050565b600061303e61303984612fff565b612cdb565b9050808382526020820190506020840283018581111561306157613060612f3e565b5b835b818110156130a857803567ffffffffffffffff81111561308657613085612c60565b5b8086016130938982612d78565b85526020850194505050602081019050613063565b5050509392505050565b600082601f8301126130c7576130c6612c60565b5b81356130d784826020860161302b565b91505092915050565b6000604082840312156130f6576130f5612f08565b5b6131006040612cdb565b9050600082013567ffffffffffffffff8111156131205761311f612f0d565b5b61312c84828501612fd1565b600083015250602082013567ffffffffffffffff8111156131505761314f612f0d565b5b61315c848285016130b2565b60208301525092915050565b600080600080600060a0868803121561318457613183612a28565b5b600061319288828901612a7b565b95505060206131a388828901612a7b565b94505060406131b488828901612ef3565b935050606086013567ffffffffffffffff8111156131d5576131d4612a2d565b5b6131e1888289016130e0565b92505060806131f288828901612a7b565b9150509295509295909350565b61320881612ae9565b82525050565b600060208201905061322360008301846131ff565b92915050565b600080fd5b60008083601f84011261324457613243612c60565b5b8235905067ffffffffffffffff81111561326157613260613229565b5b60208301915083600182028301111561327d5761327c612f3e565b5b9250929050565b600080fd5b60006040828403121561329f5761329e613284565b5b81905092915050565b6000806000806000608086880312156132c4576132c3612a28565b5b60006132d288828901612a7b565b955050602086013567ffffffffffffffff8111156132f3576132f2612a2d565b5b6132ff8882890161322e565b9450945050604086013567ffffffffffffffff81111561332257613321612a2d565b5b61332e88828901613289565b925050606061333f88828901612a7b565b9150509295509295909350565b600081519050919050565b600082825260208201905092915050565b60005b8381101561338657808201518184015260208101905061336b565b83811115613395576000848401525b50505050565b60006133a68261334c565b6133b08185613357565b93506133c0818560208601613368565b6133c981612c6a565b840191505092915050565b600060208201905081810360008301526133ee818461339b565b905092915050565b600061340182612a32565b9050919050565b613411816133f6565b82525050565b600060208201905061342c6000830184613408565b92915050565b600080600080600080600060e0888a03121561345157613450612a28565b5b600061345f8a828b01612a7b565b97505060206134708a828b01612a7b565b96505060406134818a828b01612bbe565b95505060606134928a828b01612bbe565b945050608088013567ffffffffffffffff8111156134b3576134b2612a2d565b5b6134bf8a828b01612d78565b93505060a06134d08a828b01612dc9565b92505060c06134e18a828b01612dc9565b91505092959891949750929550565b60008083601f84011261350657613505612c60565b5b8235905067ffffffffffffffff81111561352357613522613229565b5b60208301915083602082028301111561353f5761353e612f3e565b5b9250929050565b60008083601f84011261355c5761355b612c60565b5b8235905067ffffffffffffffff81111561357957613578613229565b5b60208301915083602082028301111561359557613594612f3e565b5b9250929050565b600080600080604085870312156135b6576135b5612a28565b5b600085013567ffffffffffffffff8111156135d4576135d3612a2d565b5b6135e0878288016134f0565b9450945050602085013567ffffffffffffffff81111561360357613602612a2d565b5b61360f87828801613546565b925092505092959194509250565b600060c0828403121561363357613632613284565b5b81905092915050565b600080600080600080610160878903121561365a57613659612a28565b5b600061366889828a01612a7b565b965050602061367989828a01612a7b565b955050604087013567ffffffffffffffff81111561369a57613699612a2d565b5b6136a689828a01612d78565b945050606087013567ffffffffffffffff8111156136c7576136c6612a2d565b5b6136d389828a01613289565b93505060806136e489828a0161361d565b9250506101406136f689828a01612dc9565b9150509295509295509295565b61370c81612c2a565b82525050565b60006020820190506137276000830184613703565b92915050565b60006040820190506137426000830185613703565b61374f6020830184612c00565b9392505050565b60006fffffffffffffffffffffffffffffffff82169050919050565b61377b81613756565b82525050565b60006040820190506137966000830185613772565b6137a36020830184613772565b9392505050565b6000602082840312156137c0576137bf612a28565b5b60006137ce84828501612f53565b91505092915050565b600080600080600080600060e0888a0312156137f6576137f5612a28565b5b60006138048a828b01612a7b565b97505060206138158a828b01612a7b565b965050604088013567ffffffffffffffff81111561383657613835612a2d565b5b6138428a828b01612d78565b955050606088013567ffffffffffffffff81111561386357613862612a2d565b5b61386f8a828b01613289565b94505060806138808a828b01612c4b565b93505060a06138918a828b01612a7b565b92505060c06138a28a828b01612dc9565b91505092959891949750929550565b7f47656c61746f666965643a204f6e6c792067656c61746f000000000000000000600082015250565b60006138e7601783613357565b91506138f2826138b1565b602082019050919050565b60006020820190508181036000830152613916816138da565b9050919050565b7f4175746f6d6174652e657865633a205461736b206e6f7420666f756e64000000600082015250565b6000613953601d83613357565b915061395e8261391d565b602082019050919050565b6000602082019050818103600083015261398281613946565b9050919050565b61399281612da6565b82525050565b60006080820190506139ad60008301876131ff565b6139ba6020830186613703565b6139c76040830185612c00565b6139d46060830184613989565b95945050505050565b60006139e936836130e0565b9050919050565b6000606082019050613a0560008301866131ff565b613a1260208301856131ff565b613a1f6040830184613989565b949350505050565b7f4e4f545f415554484f52495a4544000000000000000000000000000000000000600082015250565b6000613a5d600e83613357565b9150613a6882613a27565b602082019050919050565b60006020820190508181036000830152613a8c81613a50565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b2b82612c2a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b5d57613b5c613af1565b5b600182019050919050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112613b9457613b93613b68565b5b80840192508235915067ffffffffffffffff821115613bb657613bb5613b6d565b5b602083019250602082023603831315613bd257613bd1613b72565b5b509250929050565b600081519050919050565b600082825260208201905092915050565b6000613c0182613bda565b613c0b8185613be5565b9350613c1b818560208601613368565b613c2481612c6a565b840191505092915050565b60006060820190508181036000830152613c498186613bf6565b9050613c5860208301856131ff565b613c656040830184613989565b949350505050565b6000608082019050613c826000830187613703565b613c8f6020830186613703565b613c9c6040830185613703565b613ca960608301846131ff565b95945050505050565b600081905092915050565b6000613cc882613bda565b613cd28185613cb2565b9350613ce2818560208601613368565b80840191505092915050565b60008160601b9050919050565b6000613d0682613cee565b9050919050565b6000613d1882613cfb565b9050919050565b613d30613d2b82612a52565b613d0d565b82525050565b6000613d428285613cbd565b9150613d4e8284613d1f565b6014820191508190509392505050565b6000604082019050613d7360008301856131ff565b613d806020830184612c00565b9392505050565b613d9081612eb0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60068110613dd357613dd2613ac2565b5b50565b6000819050613de482613dc2565b919050565b6000613df482613dd6565b9050919050565b613e0481613de9565b82525050565b6000613e168383613dfb565b60208301905092915050565b6000602082019050919050565b6000613e3a82613d96565b613e448185613da1565b9350613e4f83613db2565b8060005b83811015613e80578151613e678882613e0a565b9750613e7283613e22565b925050600181019050613e53565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b6000613ed582613bda565b613edf8185613eb9565b9350613eef818560208601613368565b613ef881612c6a565b840191505092915050565b6000613f0f8383613eca565b905092915050565b6000602082019050919050565b6000613f2f82613e8d565b613f398185613e98565b935083602082028501613f4b85613ea9565b8060005b85811015613f875784840389528151613f688582613f03565b9450613f7383613f17565b925060208a01995050600181019050613f4f565b50829750879550505050505092915050565b60006040830160008301518482036000860152613fb68282613e2f565b91505060208301518482036020860152613fd08282613f24565b9150508091505092915050565b600060a082019050613ff26000830188612c00565b613fff6020830187612c00565b61400c6040830186613d87565b818103606083015261401e8185613f99565b905061402d6080830184612c00565b9695505050505050565b600061404282612c2a565b915061404d83612c2a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561408257614081613af1565b5b828201905092915050565b60006040820190506140a26000830185612c00565b6140af6020830184612c00565b9392505050565b6140bf816133f6565b81146140ca57600080fd5b50565b6000815190506140dc816140b6565b92915050565b600080604083850312156140f9576140f8612a28565b5b6000614107858286016140cd565b9250506020614118858286016140cd565b9150509250929050565b7f4175746f6d6174652e6372656174655461736b3a204475706c6963617465207460008201527f61736b0000000000000000000000000000000000000000000000000000000000602082015250565b600061417e602383613357565b915061418982614122565b604082019050919050565b600060208201905081810360008301526141ad81614171565b9050919050565b600060608201905081810360008301526141ce8186613bf6565b905081810360208301526141e28185613f99565b90506141f16040830184612c00565b949350505050565b60006020828403121561420f5761420e612a28565b5b600061421d848285016140cd565b91505092915050565b7f4175746f6d6174652e63616e63656c5461736b3a205461736b206e6f7420666f60008201527f756e640000000000000000000000000000000000000000000000000000000000602082015250565b6000614282602383613357565b915061428d82614226565b604082019050919050565b600060208201905081810360008301526142b181614275565b9050919050565b60006142c48284613cbd565b915081905092915050565b7f4175746f6d6174652e5f6d6f64756c65496e697469616c697365643a204e6f7460008201527f20696e6974000000000000000000000000000000000000000000000000000000602082015250565b600061432b602583613357565b9150614336826142cf565b604082019050919050565b6000602082019050818103600083015261435a8161431e565b9050919050565b600060a08201905061437660008301886131ff565b6143836020830187612c00565b6143906040830186612c00565b81810360608301526143a28185613bf6565b905081810360808301526143b68184613bf6565b90509695505050505050565b60006080820190506143d760008301876131ff565b6143e46020830186612c00565b6143f16040830185612c00565b81810360608301526144038184613bf6565b905095945050505050565b600061442161441c84612cf6565b612cdb565b90508281526020810184848401111561443d5761443c612c65565b5b614448848285613368565b509392505050565b600082601f83011261446557614464612c60565b5b815161447584826020860161440e565b91505092915050565b6000806040838503121561449557614494612a28565b5b60006144a3858286016140cd565b925050602083015167ffffffffffffffff8111156144c4576144c3612a2d565b5b6144d085828601614450565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061451482612c2a565b915061451f83612c2a565b92508261452f5761452e6144da565b5b828206905092915050565b600081905092915050565b60006145508261334c565b61455a818561453a565b935061456a818560208601613368565b80840191505092915050565b60006145828285614545565b915061458e8284614545565b91508190509392505050565b7f4e6f4572726f7253656c6563746f720000000000000000000000000000000000600082015250565b60006145d0600f8361453a565b91506145db8261459a565b600f82019050919050565b60006145f28284614545565b91506145fd826145c3565b915081905092915050565b7f556e657870656374656452657475726e64617461000000000000000000000000600082015250565b600061463e60148361453a565b915061464982614608565b601482019050919050565b60006146608284614545565b915061466b82614631565b915081905092915050565b600061468182612c2a565b915061468c83612c2a565b92508282101561469f5761469e613af1565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4175746f6d6174652e5f76616c69644d6f64756c65733a20417363206f6e6c79600082015250565b600061470f602083613357565b915061471a826146d9565b602082019050919050565b6000602082019050818103600083015261473e81614702565b9050919050565b7f4175746f6d6174652e5f76616c69644d6f64756c65733a2054494d452069732060008201527f6465707265636174656400000000000000000000000000000000000000000000602082015250565b60006147a1602a83613357565b91506147ac82614745565b604082019050919050565b600060208201905081810360008301526147d081614794565b9050919050565b7f4175746f6d6174652e5f76616c69644d6f64756c65733a204f6e6c792052455360008201527f4f4c564552206f7220574542335f46554e4354494f4e00000000000000000000602082015250565b6000614833603683613357565b915061483e826147d7565b604082019050919050565b6000602082019050818103600083015261486281614826565b9050919050565b7f4175746f6d6174652e5f76616c69644d6f64756c65733a2050524f585920697360008201527f2072657175697265640000000000000000000000000000000000000000000000602082015250565b60006148c5602983613357565b91506148d082614869565b604082019050919050565b600060208201905081810360008301526148f4816148b8565b905091905056fea26469706673582212201ea424cb154f91a78d903ce21fbd9aaea3001808fcb97341b656af505713ed9864736f6c634300080e003300000000000000000000000008efb6d315c7e74c39620c9aaea289730f43a429