0 txs
1 call
constructor
constructor(address _eventEmitter, address _dataStore, address _oracleStore, address _roleStore, address _timelockController)
functions
dataStore
viewfunction dataStore() view returns (address)
eventEmitter
viewfunction eventEmitter() view returns (address)
getHash
viewfunction getHash(address target, bytes payload, bytes32 predecessor, bytes32 salt) view returns (bytes32)
getHashBatch
viewfunction getHashBatch(address[] targets, bytes[] payloads, uint256[] values, bytes32 predecessor, bytes32 salt) view returns (bytes32)
MAX_TIMELOCK_DELAY
viewfunction MAX_TIMELOCK_DELAY() view returns (uint256)
oracleStore
viewfunction oracleStore() view returns (address)
roleStore
viewfunction roleStore() view returns (address)
timelockController
viewfunction timelockController() view returns (address)
cancelAction
nonpayablefunction cancelAction(bytes32 id)
execute
nonpayablefunction execute(address target, bytes payload, bytes32 predecessor, bytes32 salt)
executeBatch
nonpayablefunction executeBatch(address[] targets, uint256[] values, bytes[] payloads, bytes32 predecessor, bytes32 salt)
executeWithOraclePrice
nonpayablefunction executeWithOraclePrice(address target, bytes payload, bytes32 predecessor, bytes32 salt, tuple oracleParams)
increaseTimelockDelay
nonpayablefunction increaseTimelockDelay(uint256 _timelockDelay, bytes32 predecessor, bytes32 salt)
multicall
nonpayablefunction multicall(bytes[] data) returns (bytes[] results)
revokeRole
nonpayablefunction revokeRole(address account, bytes32 roleKey)
signalAddOracleSigner
nonpayablefunction signalAddOracleSigner(address account, bytes32 predecessor, bytes32 salt)
signalGrantRole
nonpayablefunction signalGrantRole(address account, bytes32 roleKey, bytes32 predecessor, bytes32 salt)
signalReduceLentAmount
nonpayablefunction signalReduceLentAmount(address market, address fundingAccount, uint256 reductionAmount, bytes32 predecessor, bytes32 salt)
signalRemoveOracleSigner
nonpayablefunction signalRemoveOracleSigner(address account, bytes32 predecessor, bytes32 salt)
signalRevokeRole
nonpayablefunction signalRevokeRole(address account, bytes32 roleKey, bytes32 predecessor, bytes32 salt)
signalSetAtomicOracleProvider
nonpayablefunction signalSetAtomicOracleProvider(address provider, bool value, bytes32 predecessor, bytes32 salt)
signalSetDataStream
nonpayablefunction signalSetDataStream(address token, bytes32 feedId, uint256 dataStreamMultiplier, uint256 dataStreamSpreadReductionFactor, bytes32 predecessor, bytes32 salt)
signalSetEdgeDataStream
nonpayablefunction signalSetEdgeDataStream(address token, bytes32 edgeDataStreamId, uint256 edgeDataStreamTokenDecimals, bytes32 predecessor, bytes32 salt)
signalSetFeeReceiver
nonpayablefunction signalSetFeeReceiver(address account, bytes32 predecessor, bytes32 salt)
signalSetHoldingAddress
nonpayablefunction signalSetHoldingAddress(address account, bytes32 predecessor, bytes32 salt)
signalSetMaxTotalContributorTokenAmount
nonpayablefunction signalSetMaxTotalContributorTokenAmount(address target, address[] tokens, uint256[] amounts, bytes32 predecessor, bytes32 salt)
signalSetMinContributorPaymentInterval
nonpayablefunction signalSetMinContributorPaymentInterval(address target, uint256 interval, bytes32 predecessor, bytes32 salt)
signalSetOracleProviderEnabled
nonpayablefunction signalSetOracleProviderEnabled(address provider, bool value, bytes32 predecessor, bytes32 salt)
signalSetPriceFeed
nonpayablefunction signalSetPriceFeed(address token, address priceFeed, uint256 priceFeedMultiplier, uint256 priceFeedHeartbeatDuration, uint256 stablePrice, bytes32 predecessor, bytes32 salt)
signalWithdrawFromPositionImpactPool
nonpayablefunction signalWithdrawFromPositionImpactPool(address market, address receiver, uint256 amount, bytes32 predecessor, bytes32 salt)
signalWithdrawTokens
nonpayablefunction signalWithdrawTokens(address target, address token, address receiver, uint256 amount, bytes32 predecessor, bytes32 salt)
events
No events.
errors
ConfigValueExceedsAllowedRange
error ConfigValueExceedsAllowedRange(bytes32 baseKey, uint256 value)
EmptyDataStreamFeedId
error EmptyDataStreamFeedId(address token)
EmptyFundingAccount
error EmptyFundingAccount()
EmptyMarket
error EmptyMarket()
EmptyPositionImpactWithdrawalAmount
error EmptyPositionImpactWithdrawalAmount()
EmptyReceiver
error EmptyReceiver()
EmptyReduceLentAmount
error EmptyReduceLentAmount()
EmptyTarget
error EmptyTarget()
EmptyToken
error EmptyToken()
EmptyWithdrawalAmount
error EmptyWithdrawalAmount()
InvalidContributorToken
error InvalidContributorToken(address token)
InvalidFeeReceiver
error InvalidFeeReceiver(address receiver)
InvalidHoldingAddress
error InvalidHoldingAddress(address account)
InvalidOracleSigner
error InvalidOracleSigner(address signer)
InvalidSetMaxTotalContributorTokenAmountInput
error InvalidSetMaxTotalContributorTokenAmountInput(uint256 tokensLength, uint256 amountsLength)
InvalidTimelockDelay
error InvalidTimelockDelay(uint256 timelockDelay)
MaxTimelockDelayExceeded
error MaxTimelockDelayExceeded(uint256 timelockDelay)
MinContributorPaymentIntervalBelowAllowedRange
error MinContributorPaymentIntervalBelowAllowedRange(uint256 interval)
Unauthorized
error Unauthorized(address msgSender, string role)
creation bytecode
0x61012060405234801561001157600080fd5b50604051614e12380380614e1283398101604081905261003091610071565b6001600160a01b0391821660805293811660a05291821660e0528116610100521660c0526100e6565b6001600160a01b038116811461006e57600080fd5b50565b600080600080600060a0868803121561008957600080fd5b855161009481610059565b60208701519095506100a581610059565b60408701519094506100b681610059565b60608701519093506100c781610059565b60808701519092506100d881610059565b809150509295509295909350565b60805160a05160c05160e05161010051614c166101fc600039600081816101ea01528181611877015261202701526000818161027e015281816107b4015281816109880152818161108c0152818161164a01528181611d8e0152818161219001528181612341015261275b0152600081816104090152818161066c01528181610c2d01528181611238015281816112ac015281816113bb01528181611b150152818161224c015281816124f101528181612647015281816129d901528181612deb01528181612e2001528181613051015261308501526000818161031701528181612d040152612d8201526000818161021e015281816104e50152818161197201528181611ecd0152612a7a0152614c166000f3fe608060405234801561001057600080fd5b50600436106101755760003560e01c8063208dd1ff1461017a5780632a083ca31461018f5780632ab148dd146101ac578063314907c1146101bf57806331847c96146101d2578063392bf7f6146101e55780634a4a7b04146102195780634e2ba52d146102405780635588ec5a14610253578063569936a414610266578063660d0d67146102795780636d00753e146102a0578063781cc3d3146102b357806378b79025146102c65780637ed67107146102d9578063881be502146102ec578063990200cb146102ff5780639ff78c3014610312578063a6a58fab14610339578063ac9650d81461034c578063ad4e4ab21461036c578063b97177941461037f578063cd63bfa514610392578063cdb07a4f146103a5578063d0b91b01146103b8578063d597d570146103cb578063db477adc146103de578063e38335e5146103f1578063f3388e7514610404578063f373d4b91461042b578063feca03a51461043e575b600080fd5b61018d6101883660046136d0565b610451565b005b6101996206978081565b6040519081526020015b60405180910390f35b61018d6101ba366004613742565b610601565b61018d6101cd3660046137a6565b6106e5565b61018d6101e03660046137d9565b61085a565b61020c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516101a3919061381b565b61020c7f000000000000000000000000000000000000000000000000000000000000000081565b61018d61024e36600461382f565b610ad9565b61018d610261366004613868565b610c04565b61018d6102743660046138fe565b610ca9565b61020c7f000000000000000000000000000000000000000000000000000000000000000081565b61018d6102ae36600461395d565b610ec4565b61018d6102c13660046139a7565b611210565b61018d6102d43660046139c0565b611298565b61018d6102e73660046139ec565b611472565b61018d6102fa3660046137a6565b6117f8565b61018d61030d36600461382f565b61191a565b61020c7f000000000000000000000000000000000000000000000000000000000000000081565b61018d610347366004613a4a565b611a4c565b61035f61035a366004613adb565b611c17565b6040516101a39190613bc8565b61018d61037a366004613bf3565b611d2a565b61018d61038d36600461382f565b611e75565b61018d6103a03660046137a6565b611fa8565b61018d6103b33660046137a6565b6120c7565b6101996103c6366004613c37565b612232565b61018d6103d9366004613bf3565b6122dd565b61018d6103ec366004613a4a565b612428565b61018d6103ff366004613c37565b61261e565b61020c7f000000000000000000000000000000000000000000000000000000000000000081565b61018d610439366004613ce9565b6126c6565b61019961044c366004613742565b6129bf565b6104ce6040516020016104899060208082526011908201527054494d454c4f434b5f4d554c544953494760781b604082015260600190565b604051602081830303815290604052805190602001206040518060400160405280601181526020017054494d454c4f434b5f4d554c544953494760781b815250612a63565b60405163208dd1ff60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063208dd1ff9061051c9085908590600401613d7c565b600060405180830381600087803b15801561053657600080fd5b505af115801561054a573d6000803e3d6000fd5b505050506105566135c3565b8051610563906001612b17565b6040805180820190915260078152661858d8dbdd5b9d60ca1b602082015281516105909160009086612b7c565b60808101516105a0906001612b17565b604080518082019091526007815266726f6c654b657960c81b602082015260808201516105d09160009085612bd9565b6105fc6040518060400160405280600a8152602001695265766f6b65526f6c6560b01b81525082612c2c565b505050565b61065560405160200161061390613d95565b604051602081830303815290604052805190602001206040518060400160405280600e81526020016d2a24a6a2a627a1a5afa0a226a4a760911b815250612a63565b60405163134008d360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063134008d3906106ac9088906000908990899089908990600401613de6565b600060405180830381600087803b1580156106c657600080fd5b505af11580156106da573d6000803e3d6000fd5b505050505050505050565b6106f760405160200161061390613d95565b6001600160a01b038316610729578260405163cb9339d560e01b8152600401610720919061381b565b60405180910390fd5b600060405160200161075b906020808252600c908201526b2322a2afa922a1a2a4ab22a960a11b604082015260600190565b6040516020818303038152906040528051906020012084604051602401610783929190613e23565b60408051601f198184030181529190526020810180516001600160e01b031663ca446dd960e01b17905290506107db7f0000000000000000000000000000000000000000000000000000000000000000828585612de9565b6107e36135c3565b80516107f0906001612b17565b6040805180820190915260078152661858d8dbdd5b9d60ca1b6020820152815161081d9160009088612b7c565b6108536040518060400160405280601481526020017329b4b3b730b629b2ba2332b2a932b1b2b4bb32b960611b81525082612c2c565b5050505050565b61086c60405160200161061390613d95565b8361088c57846040516318b900b360e21b8152600401610720919061381b565b60408051600280825260608201909252600091816020015b60608152602001906001900390816108a45790505090506108c486612ec1565b856040516024016108d6929190613e50565b60408051601f198184030181529190526020810180516001600160e01b03166309d23b6160e31b1790528151829060009061091357610913613e5e565b602002602001018190525061092786612f3f565b84604051602401610939929190613e50565b60408051601f198184030181529190526020810180516001600160e01b0316637152429d60e11b17905281518290600190811061097857610978613e5e565b60200260200101819052506109af7f0000000000000000000000000000000000000000000000000000000000000000828585612f82565b6109b76135c3565b80516109c4906001612b17565b6040805180820190915260058152643a37b5b2b760d91b602082015281516109ef916000908a612b7c565b60808101516109ff906001612b17565b60408051808201909152601081526f195919d951185d1854dd1c99585b525960821b60208201526080820151610a389160009089612bd9565b6020810151610a48906001612b17565b610a9760006040518060400160405280601b81526020017a656467654461746153747265616d546f6b656e446563696d616c7360281b815250878460200151612bd9909392919063ffffffff16565b610ad0604051806040016040528060178152602001765369676e616c536574456467654461746153747265616d60481b81525082612c2c565b50505050505050565b610aeb60405160200161061390613d95565b6001600160a01b038416610b1257604051634e6e36d560e11b815260040160405180910390fd5b621a5e00831015610b395760405163961b402560e01b815260048101849052602401610720565b600083604051602401610b4e91815260200190565b60408051601f198184030181529190526020810180516001600160e01b0316630f8c394b60e01b1790529050610b8685828585612de9565b610b8e6135c3565b6020810151610b9e906001612b17565b610bda6000604051806040016040528060088152602001671a5b9d195c9d985b60c21b815250878460200151612bd9909392919063ffffffff16565b610bfc604051806060016040528060268152602001614b706026913982612c2c565b505050505050565b610c1660405160200161061390613d95565b60405163d0663e6160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d0663e6190610c6f9089906000908a908a908a908a908a90600401613f96565b600060405180830381600087803b158015610c8957600080fd5b505af1158015610c9d573d6000803e3d6000fd5b50505050505050505050565b610cbb60405160200161061390613d95565b6001600160a01b038616610ce257604051634e6e36d560e11b815260040160405180910390fd5b6001600160a01b038516610d095760405163066f53b160e01b815260040160405180910390fd5b6001600160a01b038416610d305760405163d551823d60e01b815260040160405180910390fd5b82600003610d51576040516301d6f7b160e01b815260040160405180910390fd5b6000858585604051602401610d6893929190614046565b60408051601f198184030181529190526020810180516001600160e01b0316632f1a9acf60e11b1790529050610da087828585612de9565b610da86135c3565b8051610db5906003612b17565b6040805180820190915260068152651d185c99d95d60d21b60208201528151610de1916000908b612b7c565b6040805180820190915260058152643a37b5b2b760d91b60208201528151610e0c916001908a612b7c565b6040805180820190915260088152673932b1b2b4bb32b960c11b60208201528151610e3a9160029089612b7c565b6020810151610e4a906001612b17565b610e84600060405180604001604052806006815260200165185b5bdd5b9d60d21b815250878460200151612bd9909392919063ffffffff16565b610eba604051806040016040528060148152602001735369676e616c5769746864726177546f6b656e7360601b81525082612c2c565b5050505050505050565b610ed660405160200161061390613d95565b68327cb2734119d3b7a9601e1b831115610f2b57604051602001610ef99061406a565b6040516020818303038152906040528051906020012083604051635ebb87c960e01b8152600401610720929190613e50565b60408051600380825260808201909252600091816020015b6060815260200190600190039081610f43579050509050610f6387613161565b86604051602401610f75929190613e50565b60408051601f198184030181529190526020810180516001600160e01b03166309d23b6160e31b17905281518290600090610fb257610fb2613e5e565b6020026020010181905250610fc687613195565b85604051602401610fd8929190613e50565b60408051601f198184030181529190526020810180516001600160e01b0316637152429d60e11b17905281518290600190811061101757611017613e5e565b602002602001018190525061102b876131d1565b8460405160240161103d929190613e50565b60408051601f198184030181529190526020810180516001600160e01b0316637152429d60e11b17905281518290600290811061107c5761107c613e5e565b60200260200101819052506110b37f0000000000000000000000000000000000000000000000000000000000000000828585612f82565b6110bb6135c3565b80516110c8906001612b17565b6040805180820190915260058152643a37b5b2b760d91b602082015281516110f3916000908b612b7c565b6080810151611103906001612b17565b60408051808201909152600681526519995959125960d21b60208201526080820151611132916000908a612bd9565b6020810151611142906002612b17565b61118a6000604051806040016040528060148152602001733230ba30a9ba3932b0b6a6bab63a34b83634b2b960611b815250888460200151612bd9909392919063ffffffff16565b6111db60016040518060400160405280601f81526020017f6461746153747265616d537072656164526564756374696f6e466163746f7200815250878460200151612bd9909392919063ffffffff16565b610eba604051806040016040528060138152602001725369676e616c5365744461746153747265616d60681b81525082612c2c565b61122260405160200161061390613d95565b60405163c4d252f560e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c4d252f590602401600060405180830381600087803b15801561128457600080fd5b505af1158015610853573d6000803e3d6000fd5b6112aa60405160200161061390613d95565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa158015611308573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132c91906140ad565b831161134e576040516373586edb60e11b815260048101849052602401610720565b6206978083111561137557604051633ebd9bc360e21b815260048101849052602401610720565b60008360405160240161138a91815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166364d6235360e01b17905290506113e27f0000000000000000000000000000000000000000000000000000000000000000828585612de9565b6113ea6135c3565b60208101516113fa906001612b17565b61143b60006040518060400160405280600d81526020016c74696d656c6f636b44656c617960981b815250878460200151612bd9909392919063ffffffff16565b61085360405180604001604052806015815260200174496e63726561736554696d656c6f636b44656c617960581b81525082612c2c565b61148460405160200161061390613d95565b60408051600480825260a08201909252600091816020015b606081526020019060019003908161149c5790505090506114bc886131e2565b876040516024016114ce929190613e23565b60408051601f198184030181529190526020810180516001600160e01b031663ca446dd960e01b1790528151829060009061150b5761150b613e5e565b602002602001018190525061151f88613212565b86604051602401611531929190613e50565b60408051601f198184030181529190526020810180516001600160e01b0316637152429d60e11b17905281518290600190811061157057611570613e5e565b60200260200101819052506115848861324d565b85604051602401611596929190613e50565b60408051601f198184030181529190526020810180516001600160e01b0316637152429d60e11b1790528151829060029081106115d5576115d5613e5e565b60200260200101819052506115e988613290565b846040516024016115fb929190613e50565b60408051601f198184030181529190526020810180516001600160e01b0316637152429d60e11b17905281518290600390811061163a5761163a613e5e565b60200260200101819052506116717f0000000000000000000000000000000000000000000000000000000000000000828585612f82565b6116796135c3565b8051611686906002612b17565b6040805180820190915260058152643a37b5b2b760d91b602082015281516116b1916000908c612b7c565b6040805180820190915260098152681c1c9a58d95199595960ba1b602082015281516116e0916001908b612b7c565b60208101516116f0906003612b17565b611737600060405180604001604052806013815260200172383934b1b2a332b2b226bab63a34b83634b2b960691b815250898460200151612bd9909392919063ffffffff16565b61178560016040518060400160405280601a815260200179383934b1b2a332b2b22432b0b93a3132b0ba223ab930ba34b7b760311b815250888460200151612bd9909392919063ffffffff16565b6117c460026040518060400160405280600b81526020016a737461626c65507269636560a81b815250878460200151612bd9909392919063ffffffff16565b6106da6040518060400160405280601281526020017114da59db985b14d95d141c9a58d95199595960721b81525082612c2c565b61180a60405160200161061390613d95565b6001600160a01b038316611833578260405163c1b14c9160e01b8152600401610720919061381b565b600083604051602401611846919061381b565b60408051601f198184030181529190526020810180516001600160e01b0316630e316ab760e01b179052905061189e7f0000000000000000000000000000000000000000000000000000000000000000828585612de9565b6118a66135c3565b80516118b3906001612b17565b6040805180820190915260078152661858d8dbdd5b9d60ca1b602082015281516118e09160009088612b7c565b6108536040518060400160405280601881526020017729b4b3b730b62932b6b7bb32a7b930b1b632a9b4b3b732b960411b81525082612c2c565b61192c60405160200161061390613d95565b60008484604051602401611941929190613d7c565b60408051601f198184030181529190526020810180516001600160e01b0316632ac9d0b760e21b17905290506119997f0000000000000000000000000000000000000000000000000000000000000000828585612de9565b6119a16135c3565b80516119ae906001612b17565b6040805180820190915260078152661858d8dbdd5b9d60ca1b602082015281516119db9160009089612b7c565b60808101516119eb906001612b17565b604080518082019091526007815266726f6c654b657960c81b60208201526080820151611a1b9160009088612bd9565b610bfc6040518060400160405280600f81526020016e5369676e616c4772616e74526f6c6560881b81525082612c2c565b611a5e60405160200161061390613d95565b6001600160a01b038516611a85576040516302fde0d760e11b815260040160405180910390fd5b6001600160a01b038416611aac5760405163d551823d60e01b815260040160405180910390fd5b82600003611acd57604051630d1bbc9560e01b815260040160405180910390fd5b6000858585604051602401611ae493929190614046565b60408051601f198184030181529190526020810180516001600160e01b0316632bae9a3560e11b1790529050611b3c7f0000000000000000000000000000000000000000000000000000000000000000828585612de9565b611b446135c3565b8051611b51906002612b17565b6040805180820190915260068152651b585c9ad95d60d21b60208201528151611b7d916000908a612b7c565b6040805180820190915260088152673932b1b2b4bb32b960c11b60208201528151611bab9160019089612b7c565b6020810151611bbb906001612b17565b611bf5600060405180604001604052806006815260200165185b5bdd5b9d60d21b815250878460200151612bd9909392919063ffffffff16565b610ad0604051806060016040528060248152602001614bbd6024913982612c2c565b6060816001600160401b03811115611c3157611c31613e3a565b604051908082528060200260200182016040528015611c6457816020015b6060815260200190600190039081611c4f5790505b50905060005b82811015611d235760008030868685818110611c8857611c88613e5e565b9050602002810190611c9a91906140c6565b604051611ca892919061410c565b600060405180830381855af49150503d8060008114611ce3576040519150601f19603f3d011682016040523d82523d6000602084013e611ce8565b606091505b509150915081611cfb57611cfb816132c2565b80848481518110611d0e57611d0e613e5e565b60209081029190910101525050600101611c6a565b5092915050565b611d3c60405160200161061390613d95565b6000611d47856132fb565b6040516024810191909152841515604482015260640160408051601f198184030181529190526020810180516001600160e01b031663abfdcced60e01b1790529050611db57f0000000000000000000000000000000000000000000000000000000000000000828585612de9565b611dbd6135c3565b8051611dca906001612b17565b604080518082019091526008815267383937bb34b232b960c11b60208201528151611df89160009089612b7c565b6060810151611e08906001612b17565b60408051808201909152600581526476616c756560d81b60208201526060820151611e36916000908861333a565b610bfc6040518060400160405280601d81526020017f5369676e616c53657441746f6d69634f7261636c6550726f766964657200000081525082612c2c565b611e8760405160200161061390613d95565b60008484604051602401611e9c929190613d7c565b60408051601f198184030181529190526020810180516001600160e01b031663208dd1ff60e01b1790529050611ef47f0000000000000000000000000000000000000000000000000000000000000000828585612de9565b611efc6135c3565b8051611f09906001612b17565b6040805180820190915260078152661858d8dbdd5b9d60ca1b60208201528151611f369160009089612b7c565b6080810151611f46906001612b17565b604080518082019091526007815266726f6c654b657960c81b60208201526080820151611f769160009088612bd9565b610bfc6040518060400160405280601081526020016f5369676e616c5265766f6b65526f6c6560801b81525082612c2c565b611fba60405160200161061390613d95565b6001600160a01b038316611fe3578260405163c1b14c9160e01b8152600401610720919061381b565b600083604051602401611ff6919061381b565b60408051601f198184030181529190526020810180516001600160e01b03166375896b0f60e11b179052905061204e7f0000000000000000000000000000000000000000000000000000000000000000828585612de9565b6120566135c3565b8051612063906001612b17565b6040805180820190915260078152661858d8dbdd5b9d60ca1b602082015281516120909160009088612b7c565b6108536040518060400160405280601581526020017429b4b3b730b620b23227b930b1b632a9b4b3b732b960591b81525082612c2c565b6120d960405160200161061390613d95565b6001600160a01b0383166121025782604051630f773b1f60e31b8152600401610720919061381b565b6000604051602001612137906020808252600f908201526e484f4c44494e475f4144445245535360881b604082015260600190565b604051602081830303815290604052805190602001208460405160240161215f929190613e23565b60408051601f198184030181529190526020810180516001600160e01b031663ca446dd960e01b17905290506121b77f0000000000000000000000000000000000000000000000000000000000000000828585612de9565b6121bf6135c3565b80516121cc906001612b17565b6040805180820190915260078152661858d8dbdd5b9d60ca1b602082015281516121f99160009088612b7c565b610853604051806040016040528060178152602001765369676e616c536574486f6c64696e674164647265737360481b81525082612c2c565b60405163b1c5f42760e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b1c5f4279061228f908c908c908a908a908e908e908c908c9060040161414e565b602060405180830381865afa1580156122ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d091906140ad565b9998505050505050505050565b6122ef60405160200161061390613d95565b60006122fa8561338f565b6040516024810191909152841515604482015260640160408051601f198184030181529190526020810180516001600160e01b031663abfdcced60e01b17905290506123687f0000000000000000000000000000000000000000000000000000000000000000828585612de9565b6123706135c3565b805161237d906001612b17565b604080518082019091526008815267383937bb34b232b960c11b602082015281516123ab9160009089612b7c565b60608101516123bb906001612b17565b60408051808201909152600581526476616c756560d81b602082015260608201516123e9916000908861333a565b610bfc6040518060400160405280601e81526020017f5369676e616c5365744f7261636c6550726f7669646572456e61626c6564000081525082612c2c565b61243a60405160200161061390613d95565b6001600160a01b038516612461576040516302fde0d760e11b815260040160405180910390fd5b6001600160a01b03841661248857604051639ab5d12760e01b815260040160405180910390fd5b826000036124a95760405163b3d3553960e01b815260040160405180910390fd5b60008585856040516024016124c093929190614046565b60408051601f198184030181529190526020810180516001600160e01b031663f128024b60e01b17905290506125187f0000000000000000000000000000000000000000000000000000000000000000828585612de9565b6125206135c3565b805161252d906002612b17565b6040805180820190915260068152651b585c9ad95d60d21b60208201528151612559916000908a612b7c565b60408051808201909152600e81526d199d5b991a5b99d058d8dbdd5b9d60921b6020820152815161258d9160019089612b7c565b602081015161259d906001612b17565b6125e060006040518060400160405280600f81526020016e1c99591d58dd1a5bdb905b5bdd5b9d608a1b815250878460200151612bd9909392919063ffffffff16565b610ad06040518060400160405280601c81526020017b14da59db985b1499591d58d953195b9d125b5c1858dd105b5bdd5b9d60221b81525082612c2c565b61263060405160200161061390613d95565b60405163e38335e560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e38335e59061268a908b908b908b908b908b908b908b908b9060040161414e565b600060405180830381600087803b1580156126a457600080fd5b505af11580156126b8573d6000803e3d6000fd5b505050505050505050505050565b6126d860405160200161061390613d95565b6001600160a01b0387166126ff57604051634e6e36d560e11b815260040160405180910390fd5b84831461272357604051630a6a4f7160e21b81526107209086908590600401613e50565b60005b8581101561285f57600087878381811061274257612742613e5e565b905060200201602081019061275791906141a2565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c769d1a16040516020016127c29060208082526016908201527510d3d395149250955513d497d513d2d15397d31254d560521b604082015260600190565b60405160208183030381529060405280519060200120836040518363ffffffff1660e01b81526004016127f6929190613e23565b602060405180830381865afa158015612813573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061283791906141bd565b6128565780604051634a59130960e01b8152600401610720919061381b565b50600101612726565b5060008686868660405160240161287994939291906141da565b60408051601f198184030181529190526020810180516001600160e01b031663127db19160e21b17905290506128b188828585612de9565b6128b96135c3565b80516128c69060016133cf565b612928600060405180604001604052806006815260200165746f6b656e7360d01b8152508a8a80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250508651949392915050613439565b60208101516129389060016133cf565b61299d600060405180604001604052806007815260200166616d6f756e747360c81b8152508888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050506020850151929190613439565b6106da604051806060016040528060278152602001614b966027913982612c2c565b604051638065657f60e01b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638065657f90612a1890899085908a908a908a908a90600401613de6565b602060405180830381865afa158015612a35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a5991906140ad565b9695505050505050565b60405163ac4ab3fb60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ac4ab3fb90612ab19033908690600401613d7c565b602060405180830381865afa158015612ace573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af291906141bd565b612b1357338160405163a35b150b60e01b815260040161072092919061420c565b5050565b806001600160401b03811115612b2f57612b2f613e3a565b604051908082528060200260200182016040528015612b7557816020015b604080518082019091526060815260006020820152815260200190600190039081612b4d5790505b5090915250565b8184600001518481518110612b9357612b93613e5e565b6020026020010151600001819052508084600001518481518110612bb957612bb9613e5e565b6020908102919091018101516001600160a01b0390921691015250505050565b8184600001518481518110612bf057612bf0613e5e565b6020026020010151600001819052508084600001518481518110612c1657612c16613e5e565b6020026020010151602001818152505050505050565b612c346135c3565b600083604051602001612c479190614238565b604051602081830303815290604052805190602001209050612c7760018360800151612b1790919063ffffffff16565b604080518082019091526009815268616374696f6e4b657960b81b60208201526080830151612ca99160009084612bd9565b60c0820151612cb990600161348b565b60408051808201909152600b81526a1858dd1a5bdb931858995b60aa1b602082015260c0830151612ced91600090876134ed565b604051630937807960e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906324de01e490612d3b908490869060040161495c565b600060405180830381600087803b158015612d5557600080fd5b505af1158015612d69573d6000803e3d6000fd5b505060405163483624fb60e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063906c49f69150612dbb908790879060040161499f565b600060405180830381600087803b158015612dd557600080fd5b505af1158015610eba573d6000803e3d6000fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301d5062a8560008686867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ea091906140ad565b6040518763ffffffff1660e01b8152600401612dbb969594939291906149c4565b6000604051602001612efa90602080825260139082015272115111d157d110551057d4d51491505357d251606a1b604082015260600190565b6040516020818303038152906040528051906020012082604051602001612f22929190613e23565b604051602081830303815290604052805190602001209050919050565b6000604051602001612efa906020808252601f908201527f454447455f444154415f53545245414d5f544f4b454e5f444543494d414c5300604082015260600190565b82516000816001600160401b03811115612f9e57612f9e613e3a565b604051908082528060200260200182016040528015612fc7578160200160208202803683370190505b50905060005b828110156130085786828281518110612fe857612fe8613e5e565b6001600160a01b0390921660209283029190910190910152600101612fcd565b506000826001600160401b0381111561302357613023613e3a565b60405190808252806020026020018201604052801561304c578160200160208202803683370190505b5090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638f2a0bb083838989897f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061310591906140ad565b6040518763ffffffff1660e01b815260040161312696959493929190614a3b565b600060405180830381600087803b15801561314057600080fd5b505af1158015613154573d6000803e3d6000fd5b5050505050505050505050565b6000604051602001612efa906020808252600e908201526d1110551057d4d51491505357d25160921b604082015260600190565b6000604051602001612efa906020808252601690820152752220aa20afa9aa2922a0a6afa6aaa62a24a82624a2a960511b604082015260600190565b6000604051602001612efa9061406a565b6000604051602001612efa906020808252600a908201526914149250d157d191515160b21b604082015260600190565b6000604051602001612efa90602080825260159082015274282924a1a2afa322a2a22fa6aaa62a24a82624a2a960591b604082015260600190565b6000604051602001612efa906020808252601d908201527f50524943455f464545445f4845415254424541545f4455524154494f4e000000604082015260600190565b6000604051602001612efa906020808252600c908201526b535441424c455f505249434560a01b604082015260600190565b6000806132ce8361352a565b9150915080156132f2578160405162461bcd60e51b81526004016107209190614238565b6105fc836135ba565b6000604051602001612efa9060208082526019908201527824a9afa0aa27a6a4a1afa7a920a1a622afa82927ab24a222a960391b604082015260600190565b818460000151848151811061335157613351613e5e565b602002602001015160000181905250808460000151848151811061337757613377613e5e565b60209081029190910181015191151591015250505050565b6000604051602001612efa906020808252601a90820152791254d7d3d49050d31157d41493d59251115497d153905093115160321b604082015260600190565b806001600160401b038111156133e7576133e7613e3a565b60405190808252806020026020018201604052801561342c57816020015b60408051808201909152606080825260208201528152602001906001900390816134055790505b5082602001819052505050565b818460200151848151811061345057613450613e5e565b602002602001015160000181905250808460200151848151811061347657613476613e5e565b60200260200101516020018190525050505050565b806001600160401b038111156134a3576134a3613e3a565b604051908082528060200260200182016040528015612b7557816020015b60408051808201909152606080825260208201528152602001906001900390816134c157505090915250565b818460000151848151811061350457613504613e5e565b602002602001015160000181905250808460000151848151811061347657613476613e5e565b60606000604483511015613551575050604080516020810190915260008082529092909150565b600061355e846020015190565b90506307b9e43360e51b6001600160e01b031982160161359d57600484019350838060200190518101906135929190614ac6565b946001945092505050565b600060405180602001604052806000815250909250925050915091565b80518060208301fd5b604080516101208101909152606060e0820181815261010083019190915281908152602001613605604051806040016040528060608152602001606081525090565b8152602001613627604051806040016040528060608152602001606081525090565b8152602001613649604051806040016040528060608152602001606081525090565b815260200161366b604051806040016040528060608152602001606081525090565b815260200161368d604051806040016040528060608152602001606081525090565b81526020016136af604051806040016040528060608152602001606081525090565b905290565b80356001600160a01b03811681146136cb57600080fd5b919050565b600080604083850312156136e357600080fd5b6136ec836136b4565b946020939093013593505050565b60008083601f84011261370c57600080fd5b5081356001600160401b0381111561372357600080fd5b60208301915083602082850101111561373b57600080fd5b9250929050565b60008060008060006080868803121561375a57600080fd5b613763866136b4565b945060208601356001600160401b0381111561377e57600080fd5b61378a888289016136fa565b9699909850959660408101359660609091013595509350505050565b6000806000606084860312156137bb57600080fd5b6137c4846136b4565b95602085013595506040909401359392505050565b600080600080600060a086880312156137f157600080fd5b6137fa866136b4565b97602087013597506040870135966060810135965060800135945092505050565b6001600160a01b0391909116815260200190565b6000806000806080858703121561384557600080fd5b61384e856136b4565b966020860135965060408601359560600135945092505050565b60008060008060008060a0878903121561388157600080fd5b61388a876136b4565b955060208701356001600160401b038111156138a557600080fd5b6138b189828a016136fa565b909650945050604087013592506060870135915060808701356001600160401b038111156138de57600080fd5b87016060818a0312156138f057600080fd5b809150509295509295509295565b60008060008060008060c0878903121561391757600080fd5b613920876136b4565b955061392e602088016136b4565b945061393c604088016136b4565b959894975094956060810135955060808101359460a0909101359350915050565b60008060008060008060c0878903121561397657600080fd5b61397f876136b4565b9860208801359850604088013597606081013597506080810135965060a00135945092505050565b6000602082840312156139b957600080fd5b5035919050565b6000806000606084860312156139d557600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a031215613a0757600080fd5b613a10886136b4565b9650613a1e602089016136b4565b96999698505050506040850135946060810135946080820135945060a0820135935060c0909101359150565b600080600080600060a08688031215613a6257600080fd5b613a6b866136b4565b9450613a79602087016136b4565b94979496505050506040830135926060810135926080909101359150565b60008083601f840112613aa957600080fd5b5081356001600160401b03811115613ac057600080fd5b6020830191508360208260051b850101111561373b57600080fd5b60008060208385031215613aee57600080fd5b82356001600160401b03811115613b0457600080fd5b613b1085828601613a97565b90969095509350505050565b60005b83811015613b37578181015183820152602001613b1f565b50506000910152565b60008151808452613b58816020860160208601613b1c565b601f01601f19169290920160200192915050565b600082825180855260208501945060208160051b8301016020850160005b83811015613bbc57601f19858403018852613ba6838351613b40565b6020988901989093509190910190600101613b8a565b50909695505050505050565b602081526000613bdb6020830184613b6c565b9392505050565b8015158114613bf057600080fd5b50565b60008060008060808587031215613c0957600080fd5b613c12856136b4565b93506020850135613c2281613be2565b93969395505050506040820135916060013590565b60008060008060008060008060a0898b031215613c5357600080fd5b88356001600160401b03811115613c6957600080fd5b613c758b828c01613a97565b90995097505060208901356001600160401b03811115613c9457600080fd5b613ca08b828c01613a97565b90975095505060408901356001600160401b03811115613cbf57600080fd5b613ccb8b828c01613a97565b999c989b509699959896976060870135966080013595509350505050565b600080600080600080600060a0888a031215613d0457600080fd5b613d0d886136b4565b965060208801356001600160401b03811115613d2857600080fd5b613d348a828b01613a97565b90975095505060408801356001600160401b03811115613d5357600080fd5b613d5f8a828b01613a97565b989b979a5095989597966060870135966080013595509350505050565b6001600160a01b03929092168252602082015260400190565b6020808252600e908201526d2a24a6a2a627a1a5afa0a226a4a760911b604082015260600190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a060408201526000613e0e60a083018688613dbd565b60608301949094525060800152949350505050565b9182526001600160a01b0316602082015260400190565b634e487b7160e01b600052604160045260246000fd5b918252602082015260400190565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112613e8b57600080fd5b83016020810192503590506001600160401b03811115613eaa57600080fd5b8060051b360382131561373b57600080fd5b81835260208301925060008160005b84811015613efa576001600160a01b03613ee4836136b4565b1686526020958601959190910190600101613ecb565b5093949350505050565b60008383855260208501945060208460051b8201018360005b86811015613bbc57838303601f19018852600080833536899003601e19018112613f45578283fd5b88016020810192503590506001600160401b03811115613f6457600080fd5b803603821315613f7357600080fd5b613f7e858284613dbd565b60209a8b019a90955093909301925050600101613f1d565b60018060a01b038816815286602082015260c060408201526000613fbe60c083018789613dbd565b85606084015284608084015282810360a0840152613fdc8485613e74565b60608352613fee606084018284613ebc565b915050613ffe6020860186613e74565b8383036020850152614011838284613ebc565b925050506140226040860186613e74565b8383036040850152614035838284613f04565b9d9c50505050505050505050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60208082526023908201527f444154415f53545245414d5f5350524541445f524544554354494f4e5f4641436040820152622a27a960e91b606082015260800190565b6000602082840312156140bf57600080fd5b5051919050565b6000808335601e198436030181126140dd57600080fd5b8301803591506001600160401b038211156140f757600080fd5b60200191503681900382131561373b57600080fd5b8183823760009101908152919050565b81835260006001600160fb1b0383111561413557600080fd5b8260051b80836020870137939093016020019392505050565b60a08152600061416260a083018a8c613ebc565b828103602084015261417581898b61411c565b9050828103604084015261418a818789613f04565b60608401959095525050608001529695505050505050565b6000602082840312156141b457600080fd5b613bdb826136b4565b6000602082840312156141cf57600080fd5b8151613bdb81613be2565b6040815260006141ee604083018688613ebc565b828103602084015261420181858761411c565b979650505050505050565b6001600160a01b038316815260406020820181905260009061423090830184613b40565b949350505050565b602081526000613bdb6020830184613b40565b600082825180855260208501945060208160051b8301016020850160005b83811015613bbc57601f19858403018852815180516040855261428f6040860182613b40565b6020928301518682038785015280518083529084019360009350909101905b808310156142d95783516001600160a01b0316825260209384019360019390930192909101906142ae565b5060209a8b019a90955093909301925050600101614269565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b8181101561436c57605f1988860301835283518051604087526143446040880182613b40565b6020928301516001600160a01b0316978301979097525093840193929092019160010161431e565b5050505060208301518482036020860152614387828261424b565b95945050505050565b600082825180855260208501945060208160051b8301016020850160005b83811015613bbc57601f1985840301885281518051604085526143d46040860182613b40565b6020928301518682038785015280518083529084019360009350909101905b8083101561441657835182526020820191506020840193506001830192506143f3565b5060209a8b019a909550939093019250506001016143ae565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b818110156144a057605f1988860301835283518051604087526144816040880182613b40565b602092830151978301979097525093840193929092019160010161445b565b50505050602083015184820360208601526143878282614390565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b818110156144a057605f19888603018352835180516040875261450d6040880182613b40565b60209283015197830197909752509384019392909201916001016144e7565b600082825180855260208501945060208160051b8301016020850160005b83811015613bbc57601f1985840301885281518051604085526145706040860182613b40565b6020928301518682038785015280518083529084019360009350909101905b808310156145b45783511515825260208201915060208401935060018301925061458f565b5060209a8b019a9095509390930192505060010161454a565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b8181101561464057605f19888603018352835180516040875261461f6040880182613b40565b602092830151151597830197909752509384019392909201916001016145f9565b5050505060208301518482036020860152614387828261452c565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b818110156144a057605f1988860301835283518051604087526146ad6040880182613b40565b6020928301519783019790975250938401939290920191600101614687565b600082825180855260208501945060208160051b8301016020850160005b83811015613bbc57601f1985840301885281518051604085526147106040860182613b40565b6020928301518682038785015280518083529084019391925081830191600582901b84010160005b8281101561476957601f19858303018452614754828751613b40565b60209687019694909401939150600101614738565b5080975050505050506020820191506020880197506001810190506146ea565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b8181101561480d57605f1988860301835283518051604087526147db6040880182613b40565b90506020820151915086810360208801526147f68183613b40565b9650505060209384019392909201916001016147b5565b505050506020830151848203602086015261438782826146cc565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b8181101561480d57605f19888603018352835180516040875261487a6040880182613b40565b90506020820151915086810360208801526148958183613b40565b965050506020938401939290920191600101614854565b6000815160e084526148c160e08501826142f2565b9050602083015184820360208601526148da828261442f565b915050604083015184820360408601526148f482826144bb565b9150506060830151848203606086015261490e82826145cd565b91505060808301518482036080860152614928828261465b565b91505060a083015184820360a08601526149428282614789565b91505060c083015184820360c08601526143878282614828565b60608152601360608201527229b4b3b730b62832b73234b733a0b1ba34b7b760691b608082015282602082015260a06040820152600061423060a08301846148ac565b6040815260006149b26040830185613b40565b828103602084015261438781856148ac565b60018060a01b038716815285602082015260c0604082015260006149eb60c0830187613b40565b606083019590955250608081019290925260a0909101529392505050565b600081518084526020840193506020830160005b82811015613efa578151865260209586019590910190600101614a1d565b60c08082528751908201819052600090602089019060e0840190835b81811015614a7e5783516001600160a01b0316835260209384019390920191600101614a57565b50508381036020850152614a92818a614a09565b9150508281036040840152614aa78188613b6c565b60608401969096525050608081019290925260a0909101529392505050565b600060208284031215614ad857600080fd5b81516001600160401b03811115614aee57600080fd5b8201601f81018413614aff57600080fd5b80516001600160401b03811115614b1857614b18613e3a565b604051601f8201601f19908116603f011681016001600160401b0381118282101715614b4657614b46613e3a565b604052818152828201602001861015614b5e57600080fd5b614387826020830160208601613b1c56fe5369676e616c5365744d696e436f6e7472696275746f725061796d656e74496e74657276616c5369676e616c5365744d6178546f74616c436f6e7472696275746f72546f6b656e416d6f756e745369676e616c576974686472617746726f6d506f736974696f6e496d70616374506f6f6ca26469706673582212208ba4955076e8f7c9f38a44d6a4948627c8c53c337d869089e386271b5f8ac77364736f6c634300081d0033000000000000000000000000c8ee91a54287db53897056e12d9819156d3822fb000000000000000000000000fd70de6b91282d8017aa4e741e9ae325cab992d8000000000000000000000000a8af9b86fc47deade1bc66b12673706615e2b0110000000000000000000000003c3d99fd298f679dbc2cecd132b4ec4d0f5e6e72000000000000000000000000ba110f140e26ede9fd8b5a5c44d832cba0b184c6