0 txs
0 calls
constructor
constructor(address _predictionContract, uint256 _maxAheadTime, uint256 _aheadTimeForCheckUpkeep, uint256 _aheadTimeForPerformUpkeep, string _feedID, address _forwarder, address _verifierProxy)
functions
aheadTimeForCheckUpkeep
viewfunction aheadTimeForCheckUpkeep() view returns (uint256)
aheadTimeForPerformUpkeep
viewfunction aheadTimeForPerformUpkeep() view returns (uint256)
checkCallback
viewfunction checkCallback(bytes[] values, bytes extraData) view returns (bool upkeepNeeded, bytes performData)
checkUpkeep
viewfunction checkUpkeep(bytes checkData) view returns (bool upkeepNeeded, bytes performData)
feedID
viewfunction feedID() view returns (string)
forwarder
viewfunction forwarder() view returns (address)
maxAheadTime
viewfunction maxAheadTime() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
predictionContract
viewfunction predictionContract() view returns (address)
verifierProxy
viewfunction verifierProxy() view returns (address)
approveToken
nonpayablefunction approveToken(address _token, address _spender, uint256 _amount)
pause
nonpayablefunction pause()
performUpkeep
nonpayablefunction performUpkeep(bytes performData)
renounceOwnership
nonpayablefunction renounceOwnership()
setAheadTimeForCheckUpkeep
nonpayablefunction setAheadTimeForCheckUpkeep(uint256 _time)
setAheadTimeForPerformUpkeep
nonpayablefunction setAheadTimeForPerformUpkeep(uint256 _time)
setFeedID
nonpayablefunction setFeedID(string _feedID)
setForwarder
nonpayablefunction setForwarder(address _forwarder)
setMaxAheadTime
nonpayablefunction setMaxAheadTime(uint256 _time)
setPredictionContract
nonpayablefunction setPredictionContract(address _predictionContract)
setVerifierProxy
nonpayablefunction setVerifierProxy(address _verifierProxy)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferToken
nonpayablefunction transferToken(address _token, address _recipient, uint256 _amount)
unpause
nonpayablefunction unpause()
events
NewAheadTimeForCheckUpkeep
event NewAheadTimeForCheckUpkeep(uint256 time)
NewAheadTimeForPerformUpkeep
event NewAheadTimeForPerformUpkeep(uint256 time)
NewFeedID
event NewFeedID(string feedID)
NewForwarder
event NewForwarder(address indexed forwarder)
NewMaxAheadTime
event NewMaxAheadTime(uint256 time)
NewPredictionContract
event NewPredictionContract(address indexed predictionContract)
NewVerifierProxy
event NewVerifierProxy(address indexed verifierProxy)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
Unpaused
event Unpaused(address account)
errors
StreamsLookup
error StreamsLookup(string feedParamKey, string[] feeds, string timeParamKey, uint256 time, bytes extraData)
creation bytecode
0x60806040523480156200001157600080fd5b50604051620039e9380380620039e9833981016040819052620000349162000249565b6200003f3362000136565b6000805460ff60a01b191690556001600160a01b038716158015906200006d57506001600160a01b03811615155b620000be5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f74206265207a65726f206164647265737365730000000000000000604482015260640160405180910390fd5b600180546001600160a01b0319166001600160a01b0389161790556002869055600385905560048490558251620000fd90600590602086019062000186565b50600680546001600160a01b039384166001600160a01b0319918216179091556007805492909316911617905550620003cc9350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054620001949062000379565b90600052602060002090601f016020900481019282620001b8576000855562000203565b82601f10620001d357805160ff191683800117855562000203565b8280016001018555821562000203579182015b8281111562000203578251825591602001919060010190620001e6565b506200021192915062000215565b5090565b5b8082111562000211576000815560010162000216565b80516001600160a01b03811681146200024457600080fd5b919050565b600080600080600080600060e0888a03121562000264578283fd5b6200026f886200022c565b60208981015160408b015160608c015160808d0151949b5091995097509550906001600160401b0380821115620002a4578586fd5b818b0191508b601f830112620002b8578586fd5b815181811115620002cd57620002cd620003b6565b604051601f8201601f19908116603f01168101908382118183101715620002f857620002f8620003b6565b816040528281528e8684870101111562000310578889fd5b8893505b8284101562000333578484018601518185018701529285019262000314565b828411156200034457888684830101525b8098505050505050506200035b60a089016200022c565b91506200036b60c089016200022c565b905092959891949750929550565b600181811c908216806200038e57607f821691505b60208210811415620003b057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b61360d80620003dc6000396000f3fe60806040526004361061019a5760003560e01c80638456cb59116100e1578063b4880e2b1161008a578063da3e339711610064578063da3e33971461049b578063f2fde38b146104bb578063f5537ede146104db578063f645d4f9146104fb576101a1565b8063b4880e2b1461043b578063b9998a241461045b578063c6bbcaa51461047b576101a1565b80639997d09f116100bb5780639997d09f146103d8578063a094dc4114610405578063a83c97b31461041b576101a1565b80638456cb59146103765780638da5cb5b1461038b578063967a572f146103b6576101a1565b806358d07f96116101435780635d5238891161011d5780635d523889146103215780636e04ff0d14610341578063715018a614610361576101a1565b806358d07f96146102a65780635bbbd133146102c65780635c975abb146102e6576101a1565b80634585e33b116101745780634585e33b1461020657806347f77bc0146102265780634b56a42e14610278576101a1565b8063060e89a0146101b05780630927b000146101d95780633f4ba83a146101ef576101a1565b366101a157005b3480156101ad57600080fd5b50005b3480156101bc57600080fd5b506101c660035481565b6040519081526020015b60405180910390f35b3480156101e557600080fd5b506101c660045481565b3480156101fb57600080fd5b50610204610528565b005b34801561021257600080fd5b50610204610221366004612e47565b61053a565b34801561023257600080fd5b506007546102539073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d0565b34801561028457600080fd5b50610298610293366004612d93565b610db8565b6040516101d09291906131f4565b3480156102b257600080fd5b506102046102c1366004612cc6565b610dec565b3480156102d257600080fd5b506102046102e1366004613088565b610ee0565b3480156102f257600080fd5b5060005474010000000000000000000000000000000000000000900460ff1660405190151581526020016101d0565b34801561032d57600080fd5b5061020461033c366004613088565b610fb6565b34801561034d57600080fd5b5061029861035c366004612e47565b610ff3565b34801561036d57600080fd5b5061020461172b565b34801561038257600080fd5b5061020461173d565b34801561039757600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610253565b3480156103c257600080fd5b506103cb61174d565b6040516101d09190613281565b3480156103e457600080fd5b506001546102539073ffffffffffffffffffffffffffffffffffffffff1681565b34801561041157600080fd5b506101c660025481565b34801561042757600080fd5b50610204610436366004613088565b6117db565b34801561044757600080fd5b50610204610456366004612e47565b6118aa565b34801561046757600080fd5b50610204610476366004612cc6565b6118fc565b34801561048757600080fd5b50610204610496366004612cc6565b611973565b3480156104a757600080fd5b506102046104b6366004612eba565b611a67565b3480156104c757600080fd5b506102046104d6366004612cc6565b611b1d565b3480156104e757600080fd5b506102046104f6366004612eba565b611bd4565b34801561050757600080fd5b506006546102539073ffffffffffffffffffffffffffffffffffffffff1681565b610530611cab565b610538611d2c565b565b60065473ffffffffffffffffffffffffffffffffffffffff16331480610576575060065473ffffffffffffffffffffffffffffffffffffffff16155b6105e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4e6f7420666f727761726465720000000000000000000000000000000000000060448201526064015b60405180910390fd5b6105e9611da9565b600154604080517ff7fdec28000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163f7fdec28916004808301926020929190829003018186803b15801561065457600080fd5b505afa158015610668573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068c9190612e2d565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630f74174f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106f857600080fd5b505afa15801561070c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107309190612e2d565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561079c57600080fd5b505afa1580156107b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d49190612e2d565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663766718086040518163ffffffff1660e01b815260040160206040518083038186803b15801561084057600080fd5b505afa158015610854573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087891906130a0565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eaba23616040518163ffffffff1660e01b815260040160206040518083038186803b1580156108e457600080fd5b505afa1580156108f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091c91906130a0565b6001546040517f8c65c81f0000000000000000000000000000000000000000000000000000000081526004810185905291925060009173ffffffffffffffffffffffffffffffffffffffff90911690638c65c81f906024016101c06040518083038186803b15801561098d57600080fd5b505afa1580156109a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c59190612fcf565b60408101519091508415610a5a57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a3d57600080fd5b505af1158015610a51573d6000803e3d6000fd5b50505050610dad565b86610ac957600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663452fd75a6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a3d57600080fd5b85610c3557801580610ae757508060045442610ae591906134a8565b105b15610af157610dad565b8015801590610b085750610b0583826134a8565b42115b15610b7757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a3d57600080fd5b600080610b868a8c018c612dea565b915091506000610b968383611e2e565b6001546040517fa1d2f6ea00000000000000000000000000000000000000000000000000000000815269ffffffffffffffffffff851660048201526024810183905291925073ffffffffffffffffffffffffffffffffffffffff169063a1d2f6ea90604401600060405180830381600087803b158015610c1557600080fd5b505af1158015610c29573d6000803e3d6000fd5b50505050505050610dad565b8060045442610c4491906134a8565b1115610dad57801580610c6357508060045442610c6191906134a8565b105b15610c6d57610dad565b8015801590610c845750610c8183826134a8565b42115b15610cf357600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a3d57600080fd5b600080610d028a8c018c612dea565b915091506000610d128383611e2e565b6001546040517f740e104700000000000000000000000000000000000000000000000000000000815269ffffffffffffffffffff851660048201526024810183905291925073ffffffffffffffffffffffffffffffffffffffff169063740e104790604401600060405180830381600087803b158015610d9157600080fd5b505af1158015610da5573d6000803e3d6000fd5b505050505050505b505050505050505050565b6000606060018484604051602001610dd1929190613161565b604051602081830303815290604052915091505b9250929050565b610df4611cab565b73ffffffffffffffffffffffffffffffffffffffff8116610e71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f43616e6e6f74206265207a65726f20616464726573730000000000000000000060448201526064016105d8565b600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f303c1bce4d3c37479e2b23d6c3338a50bedc1909ce558a88f92f8e6782f4de5f90600090a250565b610ee8611cab565b600254811115610f7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f616865616454696d65466f72506572666f726d55706b6565702063616e6e6f7460448201527f206265206d6f7265207468616e204d6178416865616454696d6500000000000060648201526084016105d8565b60048190556040518181527fee3c43946327f1f066dfe4a6d9fef20fdfafc416fcf4069f31ddb4fdfd6b776b906020015b60405180910390a150565b610fbe611cab565b60028190556040518181527f117f69102ac350c84f55466aca170711c064f3fddbf43d0898380f012c6e8b1c90602001610fab565b6000805460609074010000000000000000000000000000000000000000900460ff16610de55783838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250600154604080517ff7fdec280000000000000000000000000000000000000000000000000000000081529051969750919573ffffffffffffffffffffffffffffffffffffffff909116945063f7fdec28935060048083019350602092829003018186803b1580156110bb57600080fd5b505afa1580156110cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f39190612e2d565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630f74174f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561115f57600080fd5b505afa158015611173573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111979190612e2d565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561120357600080fd5b505afa158015611217573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123b9190612e2d565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663766718086040518163ffffffff1660e01b815260040160206040518083038186803b1580156112a757600080fd5b505afa1580156112bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112df91906130a0565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eaba23616040518163ffffffff1660e01b815260040160206040518083038186803b15801561134b57600080fd5b505afa15801561135f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138391906130a0565b6001546040517f8c65c81f0000000000000000000000000000000000000000000000000000000081526004810185905291925060009173ffffffffffffffffffffffffffffffffffffffff90911690638c65c81f906024016101c06040518083038186803b1580156113f457600080fd5b505afa158015611408573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142c9190612fcf565b90506000816040015190506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ec3247036040518163ffffffff1660e01b815260040160206040518083038186803b1580156114a157600080fd5b505afa1580156114b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d991906130a0565b6114e49060016134a8565b905085156114f5576001995061171c565b87611503576001995061171c565b866116c3578115806115215750816003544261151f91906134a8565b105b1561152b5761171c565b8115801590611542575061153f84836134a8565b42115b15611550576001995061171c565b604080516001808252818301909252600091816020015b60608152602001906001900390816115675790505090506005805461158b90613503565b80601f01602080910402602001604051908101604052809291908181526020018280546115b790613503565b80156116045780601f106115d957610100808354040283529160200191611604565b820191906000526020600020905b8154815290600101906020018083116115e757829003601f168201915b505050505081600081518110611643577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018190525080428360405160200161166391815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527ff055e4a20000000000000000000000000000000000000000000000000000000082526105d8939291600401613294565b81600354426116d291906134a8565b111561171c578115806116f1575081600354426116ef91906134a8565b105b156116fb5761171c565b8115801590611712575061170f84836134a8565b42115b1561155057600199505b50505050505050509250929050565b611733611cab565b61053860006124c9565b611745611cab565b61053861253e565b6005805461175a90613503565b80601f016020809104026020016040519081016040528092919081815260200182805461178690613503565b80156117d35780601f106117a8576101008083540402835291602001916117d3565b820191906000526020600020905b8154815290600101906020018083116117b657829003601f168201915b505050505081565b6117e3611cab565b600254811115611875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f616865616454696d65466f72436865636b55706b6565702063616e6e6f74206260448201527f65206d6f7265207468616e204d6178416865616454696d65000000000000000060648201526084016105d8565b60038190556040518181527ffcf8adcabbe015bf29555d1162dbbf64d6b8631cbfa0973cc0ac058ee250938290602001610fab565b6118b2611cab565b6118be600583836129de565b507fdb1665581817c1455ca4915bc39e78992cdb42b0d5975112049a5f6804f297c882826040516118f0929190613234565b60405180910390a15050565b611904611cab565b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f75a4ce37b5b180b327c7beb0e7f03b1df4a327bb8c2bd30b4dcaf5d79e0586af90600090a250565b61197b611cab565b73ffffffffffffffffffffffffffffffffffffffff81166119f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f43616e6e6f74206265207a65726f20616464726573730000000000000000000060448201526064016105d8565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f84671be6bbfae8584f3eac047acd13c3c089ce73c58c2814a5b11308ade0f7a290600090a250565b611a6f611cab565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905284169063095ea7b390604401602060405180830381600087803b158015611adf57600080fd5b505af1158015611af3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b179190612e2d565b50505050565b611b25611cab565b73ffffffffffffffffffffffffffffffffffffffff8116611bc8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105d8565b611bd1816124c9565b50565b611bdc611cab565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8516906370a082319060240160206040518083038186803b158015611c4457600080fd5b505afa158015611c58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7c91906130a0565b905081811015611c8a578091505b611b1773ffffffffffffffffffffffffffffffffffffffff851684846125ad565b60005473ffffffffffffffffffffffffffffffffffffffff163314610538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105d8565b611d3461263f565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b60005474010000000000000000000000000000000000000000900460ff1615610538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016105d8565b600154604080517fec324703000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163ec324703916004808301926020929190829003018186803b158015611e9957600080fd5b505afa158015611ead573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ed191906130a0565b8211611f5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4f7261636c652075706461746520726f756e644964206d757374206265206c6160448201527f72676572207468616e206f7261636c654c6174657374526f756e64496400000060648201526084016105d8565b600754604080517f38416b5b000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916338416b5b91600480830192602092919082900301818787803b158015611fcb57600080fd5b505af1158015611fdf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120039190612ce9565b905060008173ffffffffffffffffffffffffffffffffffffffff1663638786686040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561204f57600080fd5b505af1158015612063573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120879190612ce9565b90506000856000815181106120c5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101518060200190518101906120e09190612d05565b91505060008373ffffffffffffffffffffffffffffffffffffffff1663e03dab1a3084866040518463ffffffff1660e01b81526004016121229392919061311e565b60a060405180830381600087803b15801561213c57600080fd5b505af1158015612150573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121749190612efa565b505060208101516040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152602482019290925291925084169063095ea7b390604401602060405180830381600087803b1580156121ef57600080fd5b505af1158015612203573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122279190612e2d565b50600754875160009173ffffffffffffffffffffffffffffffffffffffff169063f7e83aee908a908490612284577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151866040516020016122b9919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016122e592919061320f565b600060405180830381600087803b1580156122ff57600080fd5b505af1158015612313573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526123599190810190612e87565b90506000818060200190518101906123719190612f37565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663605540116040518163ffffffff1660e01b815260040160206040518083038186803b1580156123db57600080fd5b505afa1580156123ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241391906130a0565b61241d90426134c0565b816040015163ffffffff1610156124b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4f7261636c6520757064617465206578636565646564206d61782074696d657360448201527f74616d7020616c6c6f77616e636500000000000000000000000000000000000060648201526084016105d8565b60c0015160170b98975050505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b612546611da9565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611d7f3390565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261263a9084906126c3565b505050565b60005474010000000000000000000000000000000000000000900460ff16610538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016105d8565b6000612725826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166127d29092919063ffffffff16565b90508051600014806127465750808060200190518101906127469190612e2d565b61263a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016105d8565b60606127e184846000856127e9565b949350505050565b60608247101561287b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016105d8565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516128a49190613102565b60006040518083038185875af1925050503d80600081146128e1576040519150601f19603f3d011682016040523d82523d6000602084013e6128e6565b606091505b50915091506128f787838387612902565b979650505050505050565b6060831561299557825161298e5773ffffffffffffffffffffffffffffffffffffffff85163b61298e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105d8565b50816127e1565b6127e183838151156129aa5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d89190613281565b8280546129ea90613503565b90600052602060002090601f016020900481019282612a0c5760008555612a70565b82601f10612a43578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555612a70565b82800160010185558215612a70579182015b82811115612a70578235825591602001919060010190612a55565b50612a7c929150612a80565b5090565b5b80821115612a7c5760008155600101612a81565b600082601f830112612aa5578081fd5b8135602067ffffffffffffffff80831115612ac257612ac2613586565b8260051b612ad1838201613413565b8481528381019087850183890186018a1015612aeb578788fd5b8793505b86841015612b2857803585811115612b05578889fd5b612b138b88838d0101612b8a565b84525060019390930192918501918501612aef565b5098975050505050505050565b80518015158114612b4557600080fd5b919050565b60008083601f840112612b5b578182fd5b50813567ffffffffffffffff811115612b72578182fd5b602083019150836020828501011115610de557600080fd5b600082601f830112612b9a578081fd5b8135612bad612ba882613462565b613413565b818152846020838601011115612bc1578283fd5b816020850160208301379081016020019190915292915050565b600082601f830112612beb578081fd5b8151612bf9612ba882613462565b818152846020838601011115612c0d578283fd5b6127e18260208301602087016134d7565b8051601781900b8114612b4557600080fd5b600060408284031215612c41578081fd5b6040516040810181811067ffffffffffffffff82111715612c6457612c64613586565b80604052508091508251612c77816135b5565b8152602092830151920191909152919050565b805177ffffffffffffffffffffffffffffffffffffffffffffffff81168114612b4557600080fd5b805163ffffffff81168114612b4557600080fd5b600060208284031215612cd7578081fd5b8135612ce2816135b5565b9392505050565b600060208284031215612cfa578081fd5b8151612ce2816135b5565b60008060808385031215612d17578081fd5b83601f840112612d25578081fd5b612d2d6133a3565b80846060860187811115612d3f578485fd5b845b6003811015612d60578251855260209485019490920191600101612d41565b50519194509091505067ffffffffffffffff811115612d7d578182fd5b612d8985828601612bdb565b9150509250929050565b60008060408385031215612da5578182fd5b823567ffffffffffffffff80821115612dbc578384fd5b612dc886838701612a95565b93506020850135915080821115612ddd578283fd5b50612d8985828601612b8a565b60008060408385031215612dfc578182fd5b823567ffffffffffffffff811115612e12578283fd5b612e1e85828601612a95565b95602094909401359450505050565b600060208284031215612e3e578081fd5b612ce282612b35565b60008060208385031215612e59578182fd5b823567ffffffffffffffff811115612e6f578283fd5b612e7b85828601612b4a565b90969095509350505050565b600060208284031215612e98578081fd5b815167ffffffffffffffff811115612eae578182fd5b6127e184828501612bdb565b600080600060608486031215612ece578081fd5b8335612ed9816135b5565b92506020840135612ee9816135b5565b929592945050506040919091013590565b600080600060a08486031215612f0e578081fd5b612f188585612c30565b9250612f278560408601612c30565b9150608084015190509250925092565b600060e08284031215612f48578081fd5b612f506133cc565b82518152612f6060208401612cb2565b6020820152612f7160408401612cb2565b6040820152612f8260608401612c8a565b6060820152612f9360808401612c8a565b608082015260a083015167ffffffffffffffff81168114612fb2578283fd5b60a0820152612fc360c08401612c1e565b60c08201529392505050565b60006101c08284031215612fe1578081fd5b612fe96133ef565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101408084015181830152506101608084015181830152506101808084015181830152506101a061307d818501612b35565b908201529392505050565b600060208284031215613099578081fd5b5035919050565b6000602082840312156130b1578081fd5b5051919050565b600081518084526130d08160208601602086016134d7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082516131148184602087016134d7565b9190910192915050565b600073ffffffffffffffffffffffffffffffffffffffff80861683526060602084015261314e60608401866130b8565b9150808416604084015250949350505050565b6000604082016040835280855180835260608501915060608160051b86010192506020808801855b838110156131d5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08887030185526131c38683516130b8565b95509382019390820190600101613189565b5050858403818701525050506131eb81856130b8565b95945050505050565b82151581526040602082015260006127e160408301846130b8565b60408152600061322260408301856130b8565b82810360208401526131eb81856130b8565b60208152816020820152818360408301376000818301604090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b602081526000612ce260208301846130b8565b60a08152600760a08201527f666565644944730000000000000000000000000000000000000000000000000060c0820152600060e08201602060e08185015281875180845261010093508386019150838160051b8701019350828901855b8281101561333e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0088870301845261332c8683516130b8565b955092840192908401906001016132f2565b5050505050828103604084015261337f81600981527f74696d657374616d700000000000000000000000000000000000000000000000602082015260400190565b9050846060840152828103608084015261339981856130b8565b9695505050505050565b6040516060810167ffffffffffffffff811182821017156133c6576133c6613586565b60405290565b60405160e0810167ffffffffffffffff811182821017156133c6576133c6613586565b6040516101c0810167ffffffffffffffff811182821017156133c6576133c6613586565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561345a5761345a613586565b604052919050565b600067ffffffffffffffff82111561347c5761347c613586565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082198211156134bb576134bb613557565b500190565b6000828210156134d2576134d2613557565b500390565b60005b838110156134f25781810151838201526020016134da565b83811115611b175750506000910152565b600181811c9082168061351757607f821691505b60208210811415613551577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114611bd157600080fdfea2646970667358221220195380db51e744aaa7cef46e194eb1f9e163e5b70d1eabf2d258810890802bab64736f6c63430008040033000000000000000000000000f2f90e718a3bfacb430c1818cb962f05a2631998000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000a4c0028748d8f534e6d7bab20d9b696f750f114d000000000000000000000000478aa2ac9f6d65f84e09d9185d126c3a17c2a93c0000000000000000000000000000000000000000000000000000000000000042307830303032356465393231656661386538366636373765343763663331356362636631616334323238316564393434323334356232363730616532393232316362000000000000000000000000000000000000000000000000000000000000