0 txs
1 call
constructor
constructor(address _linkToken, address _keeperRegistry, address _automationRegistrar, address _cronUpkeepFactory, address _voter, uint96 _newUpkeepFundAmount, uint32 _newUpkeepGasLimit, address[] _crosschainGaugeFactories)
functions
activeUpkeepIds
viewfunction activeUpkeepIds(uint256) view returns (uint256)
activeUpkeepsCount
viewfunction activeUpkeepsCount() view returns (uint256)
automationRegistrar
viewfunction automationRegistrar() view returns (address)
checkLog
viewfunction checkLog(tuple _log, bytes) view returns (bool upkeepNeeded, bytes performData)
cronUpkeepFactory
viewfunction cronUpkeepFactory() view returns (address)
crosschainGaugeFactory
viewfunction crosschainGaugeFactory(address) view returns (bool)
factoryRegistry
viewfunction factoryRegistry() view returns (address)
gaugeUpkeepId
viewfunction gaugeUpkeepId(address) view returns (uint256)
keeperRegistry
viewfunction keeperRegistry() view returns (address)
linkToken
viewfunction linkToken() view returns (address)
newUpkeepFundAmount
viewfunction newUpkeepFundAmount() view returns (uint96)
newUpkeepGasLimit
viewfunction newUpkeepGasLimit() view returns (uint32)
owner
viewfunction owner() view returns (address)
trustedForwarder
viewfunction trustedForwarder(address) view returns (bool)
voter
viewfunction voter() view returns (address)
deregisterGaugeUpkeeps
nonpayablefunction deregisterGaugeUpkeeps(address[] _gauges) returns (uint256[] upkeepIds)
performUpkeep
nonpayablefunction performUpkeep(bytes _performData)
registerGaugeUpkeeps
nonpayablefunction registerGaugeUpkeeps(address[] _gauges) returns (uint256[] upkeepIds)
renounceOwnership
nonpayablefunction renounceOwnership()
setNewUpkeepFundAmount
nonpayablefunction setNewUpkeepFundAmount(uint96 _newUpkeepFundAmount)
setNewUpkeepGasLimit
nonpayablefunction setNewUpkeepGasLimit(uint32 _newUpkeepGasLimit)
setTrustedForwarder
nonpayablefunction setTrustedForwarder(address _trustedForwarder, bool _isTrusted)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdrawLinkBalance
nonpayablefunction withdrawLinkBalance()
withdrawUpkeep
nonpayablefunction withdrawUpkeep(uint256 _upkeepId)
events
GaugeUpkeepCancelled
event GaugeUpkeepCancelled(address indexed gauge, uint256 indexed upkeepId)
GaugeUpkeepRegistered
event GaugeUpkeepRegistered(address indexed gauge, uint256 indexed upkeepId)
GaugeUpkeepWithdrawn
event GaugeUpkeepWithdrawn(uint256 indexed upkeepId)
LinkBalanceWithdrawn
event LinkBalanceWithdrawn(address indexed receiver, uint256 amount)
NewUpkeepFundAmountSet
event NewUpkeepFundAmountSet(uint96 newUpkeepFundAmount)
NewUpkeepGasLimitSet
event NewUpkeepGasLimitSet(uint32 newUpkeepGasLimit)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
TrustedForwarderSet
event TrustedForwarderSet(address indexed trustedForwarder, bool isTrusted)
errors
AddressZeroNotAllowed
error AddressZeroNotAllowed()
AutoApproveDisabled
error AutoApproveDisabled()
CrosschainGaugeNotAllowed
error CrosschainGaugeNotAllowed(address gauge)
GaugeUpkeepExists
error GaugeUpkeepExists(address gauge)
GaugeUpkeepNotFound
error GaugeUpkeepNotFound(address gauge)
InvalidPerformAction
error InvalidPerformAction()
NoLinkBalance
error NoLinkBalance()
NotGauge
error NotGauge(address gauge)
UnauthorizedSender
error UnauthorizedSender()
creation bytecode
0x6101406040523480156200001257600080fd5b50604051620028ad380380620028ad8339810160408190526200003591620002f2565b6200004033620001ad565b606088811b6001600160601b031990811660805288821b811660a05287821b811660c05286821b811660e0529085901b1661010052600080546001600160a01b0316600160a01b6001600160601b038616021781556001805463ffffffff191663ffffffff85161790555b81518110156200011757600160036000848481518110620000d057620000d0620003f9565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806200010e81620003cf565b915050620000ab565b50836001600160a01b0316633bf0c9fb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200015257600080fd5b505afa15801562000167573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018d9190620002cd565b60601b6001600160601b0319166101205250620004259650505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200021557600080fd5b919050565b600082601f8301126200022c57600080fd5b815160206001600160401b03808311156200024b576200024b6200040f565b8260051b604051601f19603f830116810181811084821117156200027357620002736200040f565b604052848152838101925086840182880185018910156200029357600080fd5b600092505b85831015620002c157620002ac81620001fd565b84529284019260019290920191840162000298565b50979650505050505050565b600060208284031215620002e057600080fd5b620002eb82620001fd565b9392505050565b600080600080600080600080610100898b0312156200031057600080fd5b6200031b89620001fd565b97506200032b60208a01620001fd565b96506200033b60408a01620001fd565b95506200034b60608a01620001fd565b94506200035b60808a01620001fd565b60a08a01519094506001600160601b03811681146200037957600080fd5b60c08a015190935063ffffffff811681146200039457600080fd5b60e08a01519092506001600160401b03811115620003b157600080fd5b620003bf8b828c016200021a565b9150509295985092959890939650565b6000600019821415620003f257634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60805160601c60a05160601c60c05160601c60e05160601c6101005160601c6101205160601c6123d2620004db60003960008181610217015261126d01526000818161027201528181610bf30152818161115c015261137d0152600081816102ac015261134e0152600081816101a3015281816116b5015261178701526000818161036301528181610971015261107a0152600081816102db01528181610a3b01528181610ae201526116f001526123d26000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806360870146116100de5780638da5cb5b11610097578063cbf7b43611610071578063cbf7b436146103f3578063d01876c314610413578063e691d03b14610438578063f2fde38b1461044b57600080fd5b80638da5cb5b146103a8578063ab68471e146103b9578063c084cfc9146103c157600080fd5b806360870146146102fd578063715018a61461031057806376b8802414610318578063823860f21461034b57806383e227741461035e5780638584a4091461038557600080fd5b80634585e33b116101305780634585e33b1461025a57806346c96aac1461026d5780634b0b8aa6146102945780634e0f84f5146102a75780634ee8270c146102ce57806357970e93146102d657600080fd5b806308795e43146101785780630c3818731461019e5780630fd7edd4146101dd5780632d25d105146101fd5780633bf0c9fb1461021257806340691db414610239575b600080fd5b61018b610186366004611e4c565b61045e565b6040519081526020015b60405180910390f35b6101c57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610195565b6101f06101eb366004611cbb565b61047f565b6040516101959190611fa2565b61021061020b366004611ea4565b6105d0565b005b6101c57f000000000000000000000000000000000000000000000000000000000000000081565b61024c610247366004611ddf565b610635565b604051610195929190611fda565b610210610268366004611d4d565b61089e565b6101c57f000000000000000000000000000000000000000000000000000000000000000081565b6102106102a2366004611e4c565b61094d565b6101c57f000000000000000000000000000000000000000000000000000000000000000081565b610210610a03565b6101c57f000000000000000000000000000000000000000000000000000000000000000081565b6101f061030b366004611cbb565b610b50565b610210610db6565b61033b610326366004611b9d565b60026020526000908152604090205460ff1681565b6040519015158152602001610195565b610210610359366004611e7e565b610dca565b6101c57f000000000000000000000000000000000000000000000000000000000000000081565b61033b610393366004611b9d565b60036020526000908152604090205460ff1681565b6000546001600160a01b03166101c5565b60055461018b565b6000546103db90600160a01b90046001600160601b031681565b6040516001600160601b039091168152602001610195565b61018b610401366004611b9d565b60046020526000908152604090205481565b6001546104239063ffffffff1681565b60405163ffffffff9091168152602001610195565b610210610446366004611c8d565b610e1a565b610210610459366004611b9d565b610ea1565b6005818154811061046e57600080fd5b600091825260209091200154905081565b6060610489610f1a565b600082815b81811015610518578585828181106104a8576104a861234d565b90506020020160208101906104bd9190611b9d565b6001600160a01b0381166000908152600460205260409020549093506105065760405163422eaeb160e01b81526001600160a01b03841660048201526024015b60405180910390fd5b80610510816122f0565b91505061048e565b508067ffffffffffffffff81111561053257610532612363565b60405190808252806020026020018201604052801561055b578160200160208202803683370190505b50925060005b818110156105c75761059886868381811061057e5761057e61234d565b90506020020160208101906105939190611b9d565b610f74565b8482815181106105aa576105aa61234d565b6020908102919091010152806105bf816122f0565b915050610561565b50505092915050565b6105d8610f1a565b600080546001600160a01b0316600160a01b6001600160601b038416908102919091179091556040519081527f6ef019efc5a9aff5b67358a778670503f4eea3eab8b83144ea1ff444010ea975906020015b60405180910390a150565b600060608161064760c0860186612157565b60008181106106585761065861234d565b9050602002013590507fef9f7d1ffff3b249c6b9bf2528499e935f7d96bb6d6ec4e7da504d1d3c6279e160001b81141561074d5760006106b961069e60c0880188612157565b60038181106106af576106af61234d565b9050602002013590565b905060006106ce6106c988612213565b611114565b6001600160a01b03811660009081526004602052604090205490915015801561071057506001600160a01b03821660009081526003602052604090205460ff16155b1561074657600160008260405160200161072b929190611ff5565b60405160208183030381529060405294509450505050610897565b5050610895565b7f04a5d3f5d80d22d9345acc80618f4a4e7e663cf9e1aed23b57d975acec002ba78114156107ee57600061079861078760c0880188612157565b60018181106106af576106af61234d565b6001600160a01b038116600090815260046020526040902054909150156107e857600180826040516020016107ce929190611ff5565b604051602081830303815290604052935093505050610897565b50610895565b7fed18e9faa3dccfd8aa45f69c4de40546b2ca9cccc4538a2323531656516db1aa81141561089557600061082861078760c0880188612157565b9050600061083582611138565b6001600160a01b03831660009081526004602052604090205490915015801561087757506001600160a01b03811660009081526003602052604090205460ff16155b1561089257600160008360405160200161072b929190611ff5565b50505b505b9250929050565b3360009081526002602052604090205460ff166108ce57604051630101292160e31b815260040160405180910390fd5b6000806108dd83850185611dad565b909250905060008260018111156108f6576108f6612321565b141561090b57610905816112f1565b50610947565b600182600181111561091f5761091f612321565b141561092e5761090581610f74565b6040516305795b8960e11b815260040160405180910390fd5b50505050565b610955610f1a565b60405163744bfe6160e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063744bfe6190604401600060405180830381600087803b1580156109bd57600080fd5b505af11580156109d1573d6000803e3d6000fd5b50506040518392507fd2bff834f602de1b7d992d905cd88359e05a138ea68d552fefc7eda1a8d583ee9150600090a250565b610a0b610f1a565b600080546001600160a01b03166040516370a0823160e01b81523060048201529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b158015610a7d57600080fd5b505afa158015610a91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab59190611e65565b905080610ad557604051636357978760e01b815260040160405180910390fd5b610b096001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001683836115f1565b816001600160a01b03167ffbdec3a5575474c59705a087c0a8047637799a2cebdc03dad0c75ff7c90008af82604051610b4491815260200190565b60405180910390a25050565b6060610b5a610f1a565b60008083815b81811015610cfd57868682818110610b7a57610b7a61234d565b9050602002016020810190610b8f9190611b9d565b6001600160a01b03811660009081526004602052604090205490945015610bd45760405163a506506560e01b81526001600160a01b03851660048201526024016104fd565b60405163aa79979b60e01b81526001600160a01b0385811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063aa79979b9060240160206040518083038186803b158015610c3557600080fd5b505afa158015610c49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6d9190611d30565b610c955760405163f6565c4160e01b81526001600160a01b03851660048201526024016104fd565b610c9e84611138565b9250610cc2836001600160a01b031660009081526003602052604090205460ff1690565b15610ceb576040516335b760b960e21b81526001600160a01b03851660048201526024016104fd565b80610cf5816122f0565b915050610b60565b508067ffffffffffffffff811115610d1757610d17612363565b604051908082528060200260200182016040528015610d40578160200160208202803683370190505b50935060005b81811015610dac57610d7d878783818110610d6357610d6361234d565b9050602002016020810190610d789190611b9d565b6112f1565b858281518110610d8f57610d8f61234d565b602090810291909101015280610da4816122f0565b915050610d46565b5050505092915050565b610dbe610f1a565b610dc86000611648565b565b610dd2610f1a565b6001805463ffffffff191663ffffffff83169081179091556040519081527fa50e633e596676ec061ce7c571f056a11728f3e402130b3892306b8bffbacb459060200161062a565b610e22610f1a565b6001600160a01b038216610e49576040516302154e0360e21b815260040160405180910390fd5b6001600160a01b038216600081815260026020908152604091829020805460ff191685151590811790915591519182527fc284628ecb3f5f7340a26531f005815fc59ddd27f3f0e85953d0d343f00ad4289101610b44565b610ea9610f1a565b6001600160a01b038116610f0e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104fd565b610f1781611648565b50565b6000546001600160a01b03163314610dc85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104fd565b6001600160a01b03811660009081526004602052604081205460055490915b81811015611045578260058281548110610faf57610faf61234d565b90600052602060002001541415611033576005610fcd6001846121fc565b81548110610fdd57610fdd61234d565b906000526020600020015460058281548110610ffb57610ffb61234d565b600091825260209091200155600580548061101857611018612337565b60019003818190600052602060002001600090559055611045565b8061103d816122f0565b915050610f93565b506001600160a01b038381166000908152600460208190526040808320929092559051636402401160e11b81529081018490527f00000000000000000000000000000000000000000000000000000000000000009091169063c804802290602401600060405180830381600087803b1580156110c057600080fd5b505af11580156110d4573d6000803e3d6000fd5b50506040518492506001600160a01b03861691507f1ec45077700651528c50398376fe4b9e4246757253eafbeadc1c3deacfba365590600090a350919050565b60008160e0015180602001905181019061112e9190611bde565b5095945050505050565b60405163036b50d960e11b81526001600160a01b03828116600483015260009182917f000000000000000000000000000000000000000000000000000000000000000016906306d6a1b29060240160206040518083038186803b15801561119e57600080fd5b505afa1580156111b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d69190611bc1565b90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561121357600080fd5b505afa158015611227573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124b9190611bc1565b604051631217afdb60e01b81526001600160a01b0380831660048301529192507f000000000000000000000000000000000000000000000000000000000000000090911690631217afdb90602401604080518083038186803b1580156112b057600080fd5b505afa1580156112c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e89190611c53565b95945050505050565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061132a5761132a61234d565b60200260200101906001600160a01b031690816001600160a01b03168152505060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638c5b12c57f0000000000000000000000000000000000000000000000000000000000000000604051806040016040528060158152602001746469737472696275746528616464726573735b5d2960581b815250856040516024016113db9190611f55565b60408051601f1981840301815290829052916113f691611ef9565b60405180910390206001600160e01b0319166020820180516001600160e01b038381831617835250505050604051806040016040528060098152602001680c080c080a880a880d60ba1b8152506040518463ffffffff1660e01b815260040161146193929190611f15565b602060405180830381600087803b15801561147b57600080fd5b505af115801561148f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b39190611bc1565b6040805161018081018252600b61014082019081526a063726f6e2075706b6565760ac1b61016083015281528151602080820184526000808352818401929092526001600160a01b0385168385015260015463ffffffff16606084015230608084015260a083018290528351808201855282815260c08401528351808201855282815260e084015283519081019093528083526101008201929092529054600160a01b90046001600160601b031661012082015290915061157381611698565b60058054600181019091557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0018190556001600160a01b0386166000818152600460205260408082208490555192965086927fb3c3a601104833a24a6ed16e0c3f36139644b5abee3d012f2bf77db0a0c2d6aa9190a3505050919050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611643908490611835565b505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61012081015160405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160601b0390921660248201526000917f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b390604401602060405180830381600087803b15801561173457600080fd5b505af1158015611748573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176c9190611d30565b50604051633f678e1160e01b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633f678e11906117bc908690600401612042565b602060405180830381600087803b1580156117d657600080fd5b505af11580156117ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061180e9190611e65565b9050801561181c5792915050565b604051631a1d30f560e21b815260040160405180910390fd5b600061188a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661190a9092919063ffffffff16565b90508051600014806118ab5750808060200190518101906118ab9190611d30565b6116435760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016104fd565b60606119198484600085611921565b949350505050565b6060824710156119825760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016104fd565b600080866001600160a01b0316858760405161199e9190611ef9565b60006040518083038185875af1925050503d80600081146119db576040519150601f19603f3d011682016040523d82523d6000602084013e6119e0565b606091505b50915091506119f1878383876119fc565b979650505050505050565b60608315611a68578251611a61576001600160a01b0385163b611a615760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104fd565b5081611919565b6119198383815115611a7d5781518083602001fd5b8060405162461bcd60e51b81526004016104fd919061202f565b8035611aa281612379565b919050565b600082601f830112611ab857600080fd5b8135602067ffffffffffffffff821115611ad457611ad4612363565b8160051b611ae38282016121cb565b838152828101908684018388018501891015611afe57600080fd5b600093505b85841015611b21578035835260019390930192918401918401611b03565b50979650505050505050565b600082601f830112611b3e57600080fd5b813567ffffffffffffffff811115611b5857611b58612363565b611b6b601f8201601f19166020016121cb565b818152846020838601011115611b8057600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215611baf57600080fd5b8135611bba81612379565b9392505050565b600060208284031215611bd357600080fd5b8151611bba81612379565b600080600080600060a08688031215611bf657600080fd5b8551611c0181612379565b6020870151909550611c1281612379565b6040870151909450611c2381612379565b6060870151909350611c3481612379565b6080870151909250611c4581612379565b809150509295509295909350565b60008060408385031215611c6657600080fd5b8251611c7181612379565b6020840151909250611c8281612379565b809150509250929050565b60008060408385031215611ca057600080fd5b8235611cab81612379565b91506020830135611c828161238e565b60008060208385031215611cce57600080fd5b823567ffffffffffffffff80821115611ce657600080fd5b818501915085601f830112611cfa57600080fd5b813581811115611d0957600080fd5b8660208260051b8501011115611d1e57600080fd5b60209290920196919550909350505050565b600060208284031215611d4257600080fd5b8151611bba8161238e565b60008060208385031215611d6057600080fd5b823567ffffffffffffffff80821115611d7857600080fd5b818501915085601f830112611d8c57600080fd5b813581811115611d9b57600080fd5b866020828501011115611d1e57600080fd5b60008060408385031215611dc057600080fd5b823560028110611dcf57600080fd5b91506020830135611c8281612379565b60008060408385031215611df257600080fd5b823567ffffffffffffffff80821115611e0a57600080fd5b908401906101008287031215611e1f57600080fd5b90925060208401359080821115611e3557600080fd5b50611e4285828601611b2d565b9150509250929050565b600060208284031215611e5e57600080fd5b5035919050565b600060208284031215611e7757600080fd5b5051919050565b600060208284031215611e9057600080fd5b813563ffffffff81168114611bba57600080fd5b600060208284031215611eb657600080fd5b81356001600160601b0381168114611bba57600080fd5b60008151808452611ee58160208601602086016122c4565b601f01601f19169290920160200192915050565b60008251611f0b8184602087016122c4565b9190910192915050565b6001600160a01b0384168152606060208201819052600090611f3990830185611ecd565b8281036040840152611f4b8185611ecd565b9695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015611f965783516001600160a01b031683529284019291840191600101611f71565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015611f9657835183529284019291840191600101611fbe565b82151581526040602082015260006119196040830184611ecd565b604081016002841061201757634e487b7160e01b600052602160045260246000fd5b9281526001600160a01b039190911660209091015290565b602081526000611bba6020830184611ecd565b6020815260008251610140806020850152612061610160850183611ecd565b91506020850151601f198086850301604087015261207f8483611ecd565b93506040870151915061209d60608701836001600160a01b03169052565b606087015163ffffffff81166080880152915060808701516001600160a01b03811660a0880152915060a087015160ff811660c0880152915060c08701519150808685030160e08701526120f18483611ecd565b935060e087015191506101008187860301818801526121108584611ecd565b94508088015192505061012081878603018188015261212f8584611ecd565b9450808801519250505061214d828601826001600160601b03169052565b5090949350505050565b6000808335601e1984360301811261216e57600080fd5b83018035915067ffffffffffffffff82111561218957600080fd5b6020019150600581901b360382131561089757600080fd5b604051610100810167ffffffffffffffff811182821017156121c5576121c5612363565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156121f4576121f4612363565b604052919050565b60008282101561220e5761220e61230b565b500390565b6000610100823603121561222657600080fd5b61222e6121a1565b823581526020830135602082015260408301356040820152606083013560608201526080830135608082015261226660a08401611a97565b60a082015260c083013567ffffffffffffffff8082111561228657600080fd5b61229236838701611aa7565b60c084015260e08501359150808211156122ab57600080fd5b506122b836828601611b2d565b60e08301525092915050565b60005b838110156122df5781810151838201526020016122c7565b838111156109475750506000910152565b60006000198214156123045761230461230b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610f1757600080fd5b8015158114610f1757600080fdfea26469706673582212204cda43f69b3376a47e42af8d3b7dfb642f8ae6a22337561ed3137163f055ad2d64736f6c63430008060033000000000000000000000000350a791bfc2c21f9ed5d10980dad2e2638ffa7f6000000000000000000000000696fb0d7d069cc0bb35a7c36115ce63e55cb9aa6000000000000000000000000e601c5837307f07ab39deb0f5516602f045bf14f00000000000000000000000064359993c57ae92aaccd3110e76a9fcf29879c1200000000000000000000000041c914ee0c7e1a5edcd0295623e6dc557b5abf3c00000000000000000000000000000000000000000000000029a2241af62c000000000000000000000000000000000000000000000000000000000000000f42400000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000042e403b73898320f23109708b0ba1ae85838c445000000000000000000000000ead23f606643e387a073d0ee8718602291ffaaeb