diff --git a/contracts/bindings/AVSDirectory/binding.go b/contracts/bindings/AVSDirectory/binding.go index a06952f2f7..5a45a02ac5 100644 --- a/contracts/bindings/AVSDirectory/binding.go +++ b/contracts/bindings/AVSDirectory/binding.go @@ -39,7 +39,7 @@ type ISignatureUtilsSignatureWithSaltAndExpiry struct { // ContractAVSDirectoryMetaData contains all meta data concerning the ContractAVSDirectory contract. var ContractAVSDirectoryMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_delegation\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"DOMAIN_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"OPERATOR_AVS_REGISTRATION_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"avsOperatorStatus\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIAVSDirectory.OperatorAVSRegistrationStatus\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateOperatorAVSRegistrationDigestHash\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"cancelSalt\",\"inputs\":[{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deregisterOperatorFromAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"domainSeparator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"operatorSaltIsSpent\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerOperatorToAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setPauserRegistry\",\"inputs\":[{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateAVSMetadataURI\",\"inputs\":[{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"AVSMetadataURIUpdated\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorAVSRegistrationStatusUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"status\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"enumIAVSDirectory.OperatorAVSRegistrationStatus\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"PauserRegistrySet\",\"inputs\":[{\"name\":\"pauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", - Bin: "0x60c06040523480156200001157600080fd5b5060405162001f7838038062001f78833981016040819052620000349162000118565b6001600160a01b0381166080526200004b62000056565b504660a0526200014a565b600054610100900460ff1615620000c35760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000116576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012b57600080fd5b81516001600160a01b03811681146200014357600080fd5b9392505050565b60805160a051611e01620001776000396000610ea801526000818161032401526109830152611e016000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118ab565b610387565b005b61015a61016a3660046118cf565b610443565b61015a61017d3660046118e8565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611929565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b610228610208366004611955565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b391906119a4565b61015a6106ac565b6101ea61024b3660046119cc565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a5f565b610787565b6101a96102cd366004611b46565b610b1a565b61015a6102e03660046118ab565b610bd3565b61015a6102f3366004611b8c565b610d3c565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000000000000000000000000000000000000000000081565b61015a6103543660046118cf565b610d83565b61015a6103673660046118ab565b610e2e565b6101a9610ea4565b61015a6103823660046118cf565b610ee2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611bfe565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c1b565b60405180910390fd5b6104408161103e565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c65565b6104cb5760405162461bcd60e51b815260040161042e90611c87565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611135565b61065461121f565b609755610660846112b6565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c65565b6107345760405162461bcd60e51b815260040161042e90611c87565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611308565b61078560006112b6565b565b606654600090600190811614156107dc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108445760405162461bcd60e51b815260206004820152603e6024820152600080516020611dac83398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087e5761087e61198e565b14156108e05760405162461bcd60e51b815260206004820152603f6024820152600080516020611dac83398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109645760405162461bcd60e51b81526020600482015260366024820152600080516020611dac8339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa1580156109ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ee9190611c65565b610a645760405162461bcd60e51b815260206004820152604d6024820152600080516020611dac83398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a7a843385602001518660400151610b1a565b9050610a8b84828560000151611362565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0c91906119a4565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b90610ea4565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b60665460009060019081161415610c285760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c6257610c6261198e565b14610cd55760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d3091906119a4565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d77929190611ccf565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e085760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e36611308565b6001600160a01b038116610e9b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b6565b60007f0000000000000000000000000000000000000000000000000000000000000000461415610ed5575060975490565b610edd61121f565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f599190611bfe565b6001600160a01b0316336001600160a01b031614610f895760405162461bcd60e51b815260040161042e90611c1b565b6066541981196066541916146110075760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110cc5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115657506001600160a01b03821615155b6111d85760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261121b8261103e565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561148157604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906113a29086908690600401611cfe565b602060405180830381865afa1580156113bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e39190611d5b565b6001600160e01b0319161461147c5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b03166114958383611521565b6001600160a01b03161461147c5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b60008060006115308585611545565b9150915061153d816115b5565b509392505050565b60008082516041141561157c5760208301516040840151606085015160001a61157087828585611770565b945094505050506115ae565b8251604014156115a6576020830151604084015161159b86838361185d565b9350935050506115ae565b506000905060025b9250929050565b60008160048111156115c9576115c961198e565b14156115d25750565b60018160048111156115e6576115e661198e565b14156116345760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b60028160048111156116485761164861198e565b14156116965760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116aa576116aa61198e565b14156117035760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b60048160048111156117175761171761198e565b14156104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156117a75750600090506003611854565b8460ff16601b141580156117bf57508460ff16601c14155b156117d05750600090506004611854565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611824573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661184d57600060019250925050611854565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187a60ff86901c601b611d85565b905061188887828885611770565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118bd57600080fd5b81356118c881611896565b9392505050565b6000602082840312156118e157600080fd5b5035919050565b6000806000606084860312156118fd57600080fd5b833561190881611896565b9250602084013561191881611896565b929592945050506040919091013590565b6000806040838503121561193c57600080fd5b823561194781611896565b946020939093013593505050565b6000806040838503121561196857600080fd5b823561197381611896565b9150602083013561198381611896565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119c657634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119de57600080fd5b813560ff811681146118c857600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a2857611a286119ef565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a5757611a576119ef565b604052919050565b60008060408385031215611a7257600080fd5b8235611a7d81611896565b915060208381013567ffffffffffffffff80821115611a9b57600080fd5b9085019060608288031215611aaf57600080fd5b611ab7611a05565b823582811115611ac657600080fd5b8301601f81018913611ad757600080fd5b803583811115611ae957611ae96119ef565b611afb601f8201601f19168701611a2e565b93508084528986828401011115611b1157600080fd5b808683018786013760008682860101525050818152838301358482015260408301356040820152809450505050509250929050565b60008060008060808587031215611b5c57600080fd5b8435611b6781611896565b93506020850135611b7781611896565b93969395505050506040820135916060013590565b60008060208385031215611b9f57600080fd5b823567ffffffffffffffff80821115611bb757600080fd5b818501915085601f830112611bcb57600080fd5b813581811115611bda57600080fd5b866020828501011115611bec57600080fd5b60209290920196919550909350505050565b600060208284031215611c1057600080fd5b81516118c881611896565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7757600080fd5b815180151581146118c857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b82815260006020604081840152835180604085015260005b81811015611d3257858101830151858201606001528201611d16565b81811115611d44576000606083870101525b50601f01601f191692909201606001949350505050565b600060208284031215611d6d57600080fd5b81516001600160e01b0319811681146118c857600080fd5b60008219821115611da657634e487b7160e01b600052601160045260246000fd5b50019056fe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220a11b9543a1ba264f0e8544d40f86bed752f7edf38128050726de4e7e691df80064736f6c634300080c0033", + Bin: "0x60c06040523480156200001157600080fd5b5060405162001f7838038062001f78833981016040819052620000349162000118565b6001600160a01b0381166080526200004b62000056565b504660a0526200014a565b600054610100900460ff1615620000c35760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000116576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012b57600080fd5b81516001600160a01b03811681146200014357600080fd5b9392505050565b60805160a051611e01620001776000396000610ea801526000818161032401526109830152611e016000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118ab565b610387565b005b61015a61016a3660046118cf565b610443565b61015a61017d3660046118e8565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611929565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b610228610208366004611955565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b391906119a4565b61015a6106ac565b6101ea61024b3660046119cc565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a5f565b610787565b6101a96102cd366004611b46565b610b1a565b61015a6102e03660046118ab565b610bd3565b61015a6102f3366004611b8c565b610d3c565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000000000000000000000000000000000000000000081565b61015a6103543660046118cf565b610d83565b61015a6103673660046118ab565b610e2e565b6101a9610ea4565b61015a6103823660046118cf565b610ee2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611bfe565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c1b565b60405180910390fd5b6104408161103e565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c65565b6104cb5760405162461bcd60e51b815260040161042e90611c87565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611135565b61065461121f565b609755610660846112b6565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c65565b6107345760405162461bcd60e51b815260040161042e90611c87565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611308565b61078560006112b6565b565b606654600090600190811614156107dc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108445760405162461bcd60e51b815260206004820152603e6024820152600080516020611dac83398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087e5761087e61198e565b14156108e05760405162461bcd60e51b815260206004820152603f6024820152600080516020611dac83398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109645760405162461bcd60e51b81526020600482015260366024820152600080516020611dac8339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa1580156109ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ee9190611c65565b610a645760405162461bcd60e51b815260206004820152604d6024820152600080516020611dac83398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a7a843385602001518660400151610b1a565b9050610a8b84828560000151611362565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0c91906119a4565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b90610ea4565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b60665460009060019081161415610c285760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c6257610c6261198e565b14610cd55760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d3091906119a4565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d77929190611ccf565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e085760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e36611308565b6001600160a01b038116610e9b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b6565b60007f0000000000000000000000000000000000000000000000000000000000000000461415610ed5575060975490565b610edd61121f565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f599190611bfe565b6001600160a01b0316336001600160a01b031614610f895760405162461bcd60e51b815260040161042e90611c1b565b6066541981196066541916146110075760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110cc5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115657506001600160a01b03821615155b6111d85760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261121b8261103e565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561148157604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906113a29086908690600401611cfe565b602060405180830381865afa1580156113bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e39190611d5b565b6001600160e01b0319161461147c5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b03166114958383611521565b6001600160a01b03161461147c5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b60008060006115308585611545565b9150915061153d816115b5565b509392505050565b60008082516041141561157c5760208301516040840151606085015160001a61157087828585611770565b945094505050506115ae565b8251604014156115a6576020830151604084015161159b86838361185d565b9350935050506115ae565b506000905060025b9250929050565b60008160048111156115c9576115c961198e565b14156115d25750565b60018160048111156115e6576115e661198e565b14156116345760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b60028160048111156116485761164861198e565b14156116965760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116aa576116aa61198e565b14156117035760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b60048160048111156117175761171761198e565b14156104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156117a75750600090506003611854565b8460ff16601b141580156117bf57508460ff16601c14155b156117d05750600090506004611854565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611824573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661184d57600060019250925050611854565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187a60ff86901c601b611d85565b905061188887828885611770565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118bd57600080fd5b81356118c881611896565b9392505050565b6000602082840312156118e157600080fd5b5035919050565b6000806000606084860312156118fd57600080fd5b833561190881611896565b9250602084013561191881611896565b929592945050506040919091013590565b6000806040838503121561193c57600080fd5b823561194781611896565b946020939093013593505050565b6000806040838503121561196857600080fd5b823561197381611896565b9150602083013561198381611896565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119c657634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119de57600080fd5b813560ff811681146118c857600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a2857611a286119ef565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a5757611a576119ef565b604052919050565b60008060408385031215611a7257600080fd5b8235611a7d81611896565b915060208381013567ffffffffffffffff80821115611a9b57600080fd5b9085019060608288031215611aaf57600080fd5b611ab7611a05565b823582811115611ac657600080fd5b8301601f81018913611ad757600080fd5b803583811115611ae957611ae96119ef565b611afb601f8201601f19168701611a2e565b93508084528986828401011115611b1157600080fd5b808683018786013760008682860101525050818152838301358482015260408301356040820152809450505050509250929050565b60008060008060808587031215611b5c57600080fd5b8435611b6781611896565b93506020850135611b7781611896565b93969395505050506040820135916060013590565b60008060208385031215611b9f57600080fd5b823567ffffffffffffffff80821115611bb757600080fd5b818501915085601f830112611bcb57600080fd5b813581811115611bda57600080fd5b866020828501011115611bec57600080fd5b60209290920196919550909350505050565b600060208284031215611c1057600080fd5b81516118c881611896565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7757600080fd5b815180151581146118c857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b82815260006020604081840152835180604085015260005b81811015611d3257858101830151858201606001528201611d16565b81811115611d44576000606083870101525b50601f01601f191692909201606001949350505050565b600060208284031215611d6d57600080fd5b81516001600160e01b0319811681146118c857600080fd5b60008219821115611da657634e487b7160e01b600052601160045260246000fd5b50019056fe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220780876724beab774088e8e35efef80f6a0b7048dbb38202fff587d4ab1ad266d64736f6c634300080c0033", } // ContractAVSDirectoryABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/BLSApkRegistry/binding.go b/contracts/bindings/BLSApkRegistry/binding.go index e321394752..dc2034511e 100644 --- a/contracts/bindings/BLSApkRegistry/binding.go +++ b/contracts/bindings/BLSApkRegistry/binding.go @@ -58,7 +58,7 @@ type IBLSApkRegistryPubkeyRegistrationParams struct { // ContractBLSApkRegistryMetaData contains all meta data concerning the ContractBLSApkRegistry contract. var ContractBLSApkRegistryMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"apkHistory\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"apkHash\",\"type\":\"bytes24\",\"internalType\":\"bytes24\"},{\"name\":\"updateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"currentApk\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deregisterOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getApk\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getApkHashAtBlockNumberAndIndex\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes24\",\"internalType\":\"bytes24\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getApkHistoryLength\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getApkIndicesAtBlockNumber\",\"inputs\":[{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"blockNumber\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getApkUpdateAtIndex\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIBLSApkRegistry.ApkUpdate\",\"components\":[{\"name\":\"apkHash\",\"type\":\"bytes24\",\"internalType\":\"bytes24\"},{\"name\":\"updateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorFromPubkeyHash\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorId\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRegisteredPubkey\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initializeQuorum\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"operatorToPubkey\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"operatorToPubkeyHash\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pubkeyHashToOperator\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerBLSPublicKey\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIBLSApkRegistry.PubkeyRegistrationParams\",\"components\":[{\"name\":\"pubkeyRegistrationSignature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"pubkeyG1\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"pubkeyG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]}]},{\"name\":\"pubkeyRegistrationMessageHash\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registryCoordinator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NewPubkeyRegistration\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"pubkeyG1\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"pubkeyG2\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorAddedToQuorums\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRemovedFromQuorums\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false}]", - Bin: "0x60a06040523480156200001157600080fd5b506040516200203538038062002035833981016040819052620000349162000116565b6001600160a01b038116608052806200004c62000054565b505062000148565b600054610100900460ff1615620000c15760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000114576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012957600080fd5b81516001600160a01b03811681146200014157600080fd5b9392505050565b608051611eca6200016b6000396000818161030f0152610fd60152611eca6000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118b7565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118b7565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a03660046118ea565b61045b565b005b6101ca6101b53660046118ea565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed366004611975565b610570565b61021b610200366004611a1b565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b6102826102413660046118ea565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a34565b6102a261029d366004611a4b565b6105ee565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611a75565b610681565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61034461033f366004611a4b565b61081c565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118b7565b610867565b604080518351815260209384015193810193909352820152606001610152565b6101416103b33660046118ea565b6005602052600090815260409020805460019091015482565b6101846103da366004611abd565b610934565b6103f26103ed366004611b1a565b610d48565b6040516101529190611b92565b61018461040d3660046118b7565b60016020526000908152604090205481565b61021b61042d366004611a1b565b6002602052600090815260409020546001600160a01b031681565b6101a5610456366004611975565b610f62565b610463610fcb565b60ff8116600090815260046020526040902054156104e75760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084015b60405180910390fd5b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b610578610fcb565b600061058383610867565b5090506105908282611082565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e836105d1856001600160a01b031660009081526001602052604090205490565b846040516105e193929190611bdc565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600490529190912080548390811061062b5761062b611c48565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff831660009081526004602052604081208054829190849081106106a8576106a8611c48565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b90910481169282019290925292508516101561076f5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104de565b604081015163ffffffff1615806107955750806040015163ffffffff168463ffffffff16105b6108135760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104de565b51949350505050565b6004602052816000526040600020818154811061083857600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b03821660008181526003602090815260408083208151808301835281548152600191820154818501529484529091528120549091908061092a5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104de565b9094909350915050565b600061093e610fcb565b600061096c61095536869003860160408701611c5e565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58114156109f4576040805162461bcd60e51b8152602060048201526024810191909152600080516020611e7583398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104de565b6001600160a01b03851660009081526001602052604090205415610a7e5760405162461bcd60e51b81526020600482015260476024820152600080516020611e7583398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104de565b6000818152600260205260409020546001600160a01b031615610b025760405162461bcd60e51b81526020600482015260426024820152600080516020611e7583398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104de565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610b5b918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611c90565b6040516020818303038152906040528051906020012060001c610b7e9190611cdb565b9050610c18610bb7610ba283610b9c368a90038a0160408b01611c5e565b906112cd565b610bb136899003890189611c5e565b90611364565b610bbf6113f8565b610c01610bf285610b9c604080518082018252600080825260209182015281518083019092526001825260029082015290565b610bb1368a90038a018a611c5e565b610c13368a90038a0160808b01611d4d565b6114b8565b610cb35760405162461bcd60e51b815260206004820152606c6024820152600080516020611e7583398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104de565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610d379160808a0190611daa565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610d6557610d65611905565b604051908082528060200260200182016040528015610d8e578160200160208202803683370190505b50905060005b84811015610f59576000868683818110610db057610db0611c48565b919091013560f81c6000818152600460205260409020549092509050801580610e13575060ff821660009081526004602052604081208054909190610df757610df7611c48565b600091825260209091200154600160c01b900463ffffffff1686105b15610ea05760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104de565b805b8015610f435760ff831660009081526004602052604090208790610ec7600184611df4565b81548110610ed757610ed7611c48565b600091825260209091200154600160c01b900463ffffffff1611610f3157610f00600182611df4565b858581518110610f1257610f12611c48565b602002602001019063ffffffff16908163ffffffff1681525050610f43565b80610f3b81611e0b565b915050610ea2565b5050508080610f5190611e22565b915050610d94565b50949350505050565b610f6a610fcb565b6000610f7583610867565b509050610f8a82610f8583611725565b611082565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e836105d1856001600160a01b031660009081526001602052604090205490565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110805760405162461bcd60e51b815260206004820152604e60248201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460448201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460648201526d393c9031b7b7b93234b730ba37b960911b608482015260a4016104de565b565b604080518082019091526000808252602082015260005b83518110156112c75760008482815181106110b6576110b6611c48565b0160209081015160f81c60008181526004909252604090912054909150806111465760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104de565b60ff8216600090815260056020908152604091829020825180840190935280548352600101549082015261117a9086611364565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916111c39085611df4565b815481106111d3576111d3611c48565b600091825260209091200180549091504363ffffffff908116600160c01b9092041614156112145780546001600160c01b031916604083901c1781556112b0565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050505080806112bf90611e22565b915050611099565b50505050565b60408051808201909152600080825260208201526112e96117e4565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa905080801561131c5761131e565bfe5b508061135c5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104de565b505092915050565b6040805180820190915260008082526020820152611380611802565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080801561131c57508061135c5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104de565b611400611820565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820182528581526020808201859052825180840190935285835282018390526000916114e7611845565b60005b60028110156116ac576000611500826006611e3d565b905084826002811061151457611514611c48565b60200201515183611526836000611e5c565b600c811061153657611536611c48565b602002015284826002811061154d5761154d611c48565b602002015160200151838260016115649190611e5c565b600c811061157457611574611c48565b602002015283826002811061158b5761158b611c48565b602002015151518361159e836002611e5c565b600c81106115ae576115ae611c48565b60200201528382600281106115c5576115c5611c48565b60200201515160016020020151836115de836003611e5c565b600c81106115ee576115ee611c48565b602002015283826002811061160557611605611c48565b60200201516020015160006002811061162057611620611c48565b602002015183611631836004611e5c565b600c811061164157611641611c48565b602002015283826002811061165857611658611c48565b60200201516020015160016002811061167357611673611c48565b602002015183611684836005611e5c565b600c811061169457611694611c48565b602002015250806116a481611e22565b9150506114ea565b506116b5611864565b60006020826101808560086107d05a03fa905080801561131c5750806117155760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104de565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561174a57506020820151155b15611768575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117ad9190611cdb565b6117d7907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611df4565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280611833611882565b8152602001611840611882565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b03811681146117df57600080fd5b6000602082840312156118c957600080fd5b6118d2826118a0565b9392505050565b803560ff811681146117df57600080fd5b6000602082840312156118fc57600080fd5b6118d2826118d9565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561193e5761193e611905565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561196d5761196d611905565b604052919050565b6000806040838503121561198857600080fd5b611991836118a0565b915060208084013567ffffffffffffffff808211156119af57600080fd5b818601915086601f8301126119c357600080fd5b8135818111156119d5576119d5611905565b6119e7601f8201601f19168501611944565b915080825287848285010111156119fd57600080fd5b80848401858401376000848284010152508093505050509250929050565b600060208284031215611a2d57600080fd5b5035919050565b81518152602080830151908201526040810161067b565b60008060408385031215611a5e57600080fd5b611a67836118d9565b946020939093013593505050565b600080600060608486031215611a8a57600080fd5b611a93846118d9565b9250602084013563ffffffff81168114611aac57600080fd5b929592945050506040919091013590565b6000806000838503610160811215611ad457600080fd5b611add856118a0565b9350610100601f1982011215611af257600080fd5b602085019250604061011f1982011215611b0b57600080fd5b50610120840190509250925092565b600080600060408486031215611b2f57600080fd5b833567ffffffffffffffff80821115611b4757600080fd5b818601915086601f830112611b5b57600080fd5b813581811115611b6a57600080fd5b876020828501011115611b7c57600080fd5b6020928301989097509590910135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015611bd057835163ffffffff1683529284019291840191600101611bae565b50909695505050505050565b60018060a01b038416815260006020848184015260606040840152835180606085015260005b81811015611c1e57858101830151858201608001528201611c02565b81811115611c30576000608083870101525b50601f01601f19169290920160800195945050505050565b634e487b7160e01b600052603260045260246000fd5b600060408284031215611c7057600080fd5b611c7861191b565b82358152602083013560208201528091505092915050565b8881528760208201528660408201528560608201526040856080830137600060c082016000815260408682375050610100810192909252610120820152610140019695505050505050565b600082611cf857634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611d0e57600080fd5b611d1661191b565b806040840185811115611d2857600080fd5b845b81811015611d42578035845260209384019301611d2a565b509095945050505050565b600060808284031215611d5f57600080fd5b6040516040810181811067ffffffffffffffff82111715611d8257611d82611905565b604052611d8f8484611cfd565b8152611d9e8460408501611cfd565b60208201529392505050565b823581526020808401359082015260c081016040838184013760808201600081526040808501823750600081529392505050565b634e487b7160e01b600052601160045260246000fd5b600082821015611e0657611e06611dde565b500390565b600081611e1a57611e1a611dde565b506000190190565b6000600019821415611e3657611e36611dde565b5060010190565b6000816000190483118215151615611e5757611e57611dde565b500290565b60008219821115611e6f57611e6f611dde565b50019056fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a264697066735822122046748526ebcc0971465c3eaefe6638302a5903adaab4bd65a6ab10c991dde1a564736f6c634300080c0033", + Bin: "0x60a06040523480156200001157600080fd5b506040516200203538038062002035833981016040819052620000349162000116565b6001600160a01b038116608052806200004c62000054565b505062000148565b600054610100900460ff1615620000c15760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000114576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012957600080fd5b81516001600160a01b03811681146200014157600080fd5b9392505050565b608051611eca6200016b6000396000818161030f0152610fd60152611eca6000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118b7565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118b7565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a03660046118ea565b61045b565b005b6101ca6101b53660046118ea565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed366004611975565b610570565b61021b610200366004611a1b565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b6102826102413660046118ea565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a34565b6102a261029d366004611a4b565b6105ee565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611a75565b610681565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61034461033f366004611a4b565b61081c565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118b7565b610867565b604080518351815260209384015193810193909352820152606001610152565b6101416103b33660046118ea565b6005602052600090815260409020805460019091015482565b6101846103da366004611abd565b610934565b6103f26103ed366004611b1a565b610d48565b6040516101529190611b92565b61018461040d3660046118b7565b60016020526000908152604090205481565b61021b61042d366004611a1b565b6002602052600090815260409020546001600160a01b031681565b6101a5610456366004611975565b610f62565b610463610fcb565b60ff8116600090815260046020526040902054156104e75760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084015b60405180910390fd5b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b610578610fcb565b600061058383610867565b5090506105908282611082565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e836105d1856001600160a01b031660009081526001602052604090205490565b846040516105e193929190611bdc565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600490529190912080548390811061062b5761062b611c48565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff831660009081526004602052604081208054829190849081106106a8576106a8611c48565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b90910481169282019290925292508516101561076f5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104de565b604081015163ffffffff1615806107955750806040015163ffffffff168463ffffffff16105b6108135760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104de565b51949350505050565b6004602052816000526040600020818154811061083857600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b03821660008181526003602090815260408083208151808301835281548152600191820154818501529484529091528120549091908061092a5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104de565b9094909350915050565b600061093e610fcb565b600061096c61095536869003860160408701611c5e565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58114156109f4576040805162461bcd60e51b8152602060048201526024810191909152600080516020611e7583398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104de565b6001600160a01b03851660009081526001602052604090205415610a7e5760405162461bcd60e51b81526020600482015260476024820152600080516020611e7583398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104de565b6000818152600260205260409020546001600160a01b031615610b025760405162461bcd60e51b81526020600482015260426024820152600080516020611e7583398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104de565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610b5b918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611c90565b6040516020818303038152906040528051906020012060001c610b7e9190611cdb565b9050610c18610bb7610ba283610b9c368a90038a0160408b01611c5e565b906112cd565b610bb136899003890189611c5e565b90611364565b610bbf6113f8565b610c01610bf285610b9c604080518082018252600080825260209182015281518083019092526001825260029082015290565b610bb1368a90038a018a611c5e565b610c13368a90038a0160808b01611d4d565b6114b8565b610cb35760405162461bcd60e51b815260206004820152606c6024820152600080516020611e7583398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104de565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610d379160808a0190611daa565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610d6557610d65611905565b604051908082528060200260200182016040528015610d8e578160200160208202803683370190505b50905060005b84811015610f59576000868683818110610db057610db0611c48565b919091013560f81c6000818152600460205260409020549092509050801580610e13575060ff821660009081526004602052604081208054909190610df757610df7611c48565b600091825260209091200154600160c01b900463ffffffff1686105b15610ea05760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104de565b805b8015610f435760ff831660009081526004602052604090208790610ec7600184611df4565b81548110610ed757610ed7611c48565b600091825260209091200154600160c01b900463ffffffff1611610f3157610f00600182611df4565b858581518110610f1257610f12611c48565b602002602001019063ffffffff16908163ffffffff1681525050610f43565b80610f3b81611e0b565b915050610ea2565b5050508080610f5190611e22565b915050610d94565b50949350505050565b610f6a610fcb565b6000610f7583610867565b509050610f8a82610f8583611725565b611082565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e836105d1856001600160a01b031660009081526001602052604090205490565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110805760405162461bcd60e51b815260206004820152604e60248201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460448201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460648201526d393c9031b7b7b93234b730ba37b960911b608482015260a4016104de565b565b604080518082019091526000808252602082015260005b83518110156112c75760008482815181106110b6576110b6611c48565b0160209081015160f81c60008181526004909252604090912054909150806111465760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104de565b60ff8216600090815260056020908152604091829020825180840190935280548352600101549082015261117a9086611364565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916111c39085611df4565b815481106111d3576111d3611c48565b600091825260209091200180549091504363ffffffff908116600160c01b9092041614156112145780546001600160c01b031916604083901c1781556112b0565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050505080806112bf90611e22565b915050611099565b50505050565b60408051808201909152600080825260208201526112e96117e4565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa905080801561131c5761131e565bfe5b508061135c5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104de565b505092915050565b6040805180820190915260008082526020820152611380611802565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080801561131c57508061135c5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104de565b611400611820565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820182528581526020808201859052825180840190935285835282018390526000916114e7611845565b60005b60028110156116ac576000611500826006611e3d565b905084826002811061151457611514611c48565b60200201515183611526836000611e5c565b600c811061153657611536611c48565b602002015284826002811061154d5761154d611c48565b602002015160200151838260016115649190611e5c565b600c811061157457611574611c48565b602002015283826002811061158b5761158b611c48565b602002015151518361159e836002611e5c565b600c81106115ae576115ae611c48565b60200201528382600281106115c5576115c5611c48565b60200201515160016020020151836115de836003611e5c565b600c81106115ee576115ee611c48565b602002015283826002811061160557611605611c48565b60200201516020015160006002811061162057611620611c48565b602002015183611631836004611e5c565b600c811061164157611641611c48565b602002015283826002811061165857611658611c48565b60200201516020015160016002811061167357611673611c48565b602002015183611684836005611e5c565b600c811061169457611694611c48565b602002015250806116a481611e22565b9150506114ea565b506116b5611864565b60006020826101808560086107d05a03fa905080801561131c5750806117155760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104de565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561174a57506020820151155b15611768575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117ad9190611cdb565b6117d7907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611df4565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280611833611882565b8152602001611840611882565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b03811681146117df57600080fd5b6000602082840312156118c957600080fd5b6118d2826118a0565b9392505050565b803560ff811681146117df57600080fd5b6000602082840312156118fc57600080fd5b6118d2826118d9565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561193e5761193e611905565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561196d5761196d611905565b604052919050565b6000806040838503121561198857600080fd5b611991836118a0565b915060208084013567ffffffffffffffff808211156119af57600080fd5b818601915086601f8301126119c357600080fd5b8135818111156119d5576119d5611905565b6119e7601f8201601f19168501611944565b915080825287848285010111156119fd57600080fd5b80848401858401376000848284010152508093505050509250929050565b600060208284031215611a2d57600080fd5b5035919050565b81518152602080830151908201526040810161067b565b60008060408385031215611a5e57600080fd5b611a67836118d9565b946020939093013593505050565b600080600060608486031215611a8a57600080fd5b611a93846118d9565b9250602084013563ffffffff81168114611aac57600080fd5b929592945050506040919091013590565b6000806000838503610160811215611ad457600080fd5b611add856118a0565b9350610100601f1982011215611af257600080fd5b602085019250604061011f1982011215611b0b57600080fd5b50610120840190509250925092565b600080600060408486031215611b2f57600080fd5b833567ffffffffffffffff80821115611b4757600080fd5b818601915086601f830112611b5b57600080fd5b813581811115611b6a57600080fd5b876020828501011115611b7c57600080fd5b6020928301989097509590910135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015611bd057835163ffffffff1683529284019291840191600101611bae565b50909695505050505050565b60018060a01b038416815260006020848184015260606040840152835180606085015260005b81811015611c1e57858101830151858201608001528201611c02565b81811115611c30576000608083870101525b50601f01601f19169290920160800195945050505050565b634e487b7160e01b600052603260045260246000fd5b600060408284031215611c7057600080fd5b611c7861191b565b82358152602083013560208201528091505092915050565b8881528760208201528660408201528560608201526040856080830137600060c082016000815260408682375050610100810192909252610120820152610140019695505050505050565b600082611cf857634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611d0e57600080fd5b611d1661191b565b806040840185811115611d2857600080fd5b845b81811015611d42578035845260209384019301611d2a565b509095945050505050565b600060808284031215611d5f57600080fd5b6040516040810181811067ffffffffffffffff82111715611d8257611d82611905565b604052611d8f8484611cfd565b8152611d9e8460408501611cfd565b60208201529392505050565b823581526020808401359082015260c081016040838184013760808201600081526040808501823750600081529392505050565b634e487b7160e01b600052601160045260246000fd5b600082821015611e0657611e06611dde565b500390565b600081611e1a57611e1a611dde565b506000190190565b6000600019821415611e3657611e36611dde565b5060010190565b6000816000190483118215151615611e5757611e57611dde565b500290565b60008219821115611e6f57611e6f611dde565b50019056fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a26469706673582212205f3559a26d45618b9303244a1ba50f0328e75603ce2fe905ab30e5d7b8bf9e6164736f6c634300080c0033", } // ContractBLSApkRegistryABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/BN254/binding.go b/contracts/bindings/BN254/binding.go index 18d1df7dee..83d1f6298f 100644 --- a/contracts/bindings/BN254/binding.go +++ b/contracts/bindings/BN254/binding.go @@ -32,7 +32,7 @@ var ( // ContractBN254MetaData contains all meta data concerning the ContractBN254 contract. var ContractBN254MetaData = &bind.MetaData{ ABI: "[]", - Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208a3929de15e57c88d2b27fb8e8061db2c701dd8838ecb05ee6f56b0fac8bb8e764736f6c634300080c0033", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d8e32ecdd91faecffe0e35def77376afe88a1f8652d0b73d03366bb065b22a3264736f6c634300080c0033", } // ContractBN254ABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/BitmapUtils/binding.go b/contracts/bindings/BitmapUtils/binding.go index 12a31d5bef..d8a01d71d2 100644 --- a/contracts/bindings/BitmapUtils/binding.go +++ b/contracts/bindings/BitmapUtils/binding.go @@ -32,7 +32,7 @@ var ( // ContractBitmapUtilsMetaData contains all meta data concerning the ContractBitmapUtils contract. var ContractBitmapUtilsMetaData = &bind.MetaData{ ABI: "[]", - Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f1b6331dae7e80ec746eb8c34a4a28d5ca5ff9e0835441ac2f54d8b5f8b9425064736f6c634300080c0033", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f92fdde73152a572f9b0656d02fd87c50f50841475fbb322c147e17a4e60a2b364736f6c634300080c0033", } // ContractBitmapUtilsABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/DelegationManager/binding.go b/contracts/bindings/DelegationManager/binding.go index 2d19929d1a..633f3708c3 100644 --- a/contracts/bindings/DelegationManager/binding.go +++ b/contracts/bindings/DelegationManager/binding.go @@ -63,7 +63,7 @@ type ISignatureUtilsSignatureWithExpiry struct { // ContractDelegationManagerMetaData contains all meta data concerning the ContractDelegationManager contract. var ContractDelegationManagerMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_strategyManager\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"},{\"name\":\"_slasher\",\"type\":\"address\",\"internalType\":\"contractISlasher\"},{\"name\":\"_eigenPodManager\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"DELEGATION_APPROVAL_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"DOMAIN_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAX_STAKER_OPT_OUT_WINDOW_BLOCKS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAX_WITHDRAWAL_DELAY_BLOCKS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"STAKER_DELEGATION_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"beaconChainETHStrategy\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateCurrentStakerDelegationDigestHash\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateDelegationApprovalDigestHash\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateStakerDelegationDigestHash\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_stakerNonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateWithdrawalRoot\",\"inputs\":[{\"name\":\"withdrawal\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManager.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"shares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"completeQueuedWithdrawal\",\"inputs\":[{\"name\":\"withdrawal\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManager.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"shares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"tokens\",\"type\":\"address[]\",\"internalType\":\"contractIERC20[]\"},{\"name\":\"middlewareTimesIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"receiveAsTokens\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeQueuedWithdrawals\",\"inputs\":[{\"name\":\"withdrawals\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManager.Withdrawal[]\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"shares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"tokens\",\"type\":\"address[][]\",\"internalType\":\"contractIERC20[][]\"},{\"name\":\"middlewareTimesIndexes\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"receiveAsTokens\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"cumulativeWithdrawalsQueued\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decreaseDelegatedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegateTo\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approverSignatureAndExpiry\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegateToBySignature\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"stakerSignatureAndExpiry\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"approverSignatureAndExpiry\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegatedTo\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"delegationApprover\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"delegationApproverSaltIsSpent\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"domainSeparator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenPodManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDelegatableShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorShares\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getWithdrawalDelay\",\"inputs\":[{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"increaseDelegatedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_minWithdrawalDelayBlocks\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"_withdrawalDelayBlocks\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isDelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"minWithdrawalDelayBlocks\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"modifyOperatorDetails\",\"inputs\":[{\"name\":\"newOperatorDetails\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManager.OperatorDetails\",\"components\":[{\"name\":\"__deprecated_earningsReceiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"operatorDetails\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManager.OperatorDetails\",\"components\":[{\"name\":\"__deprecated_earningsReceiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"operatorShares\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pendingWithdrawals\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"queueWithdrawals\",\"inputs\":[{\"name\":\"queuedWithdrawalParams\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManager.QueuedWithdrawalParams[]\",\"components\":[{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"shares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerAsOperator\",\"inputs\":[{\"name\":\"registeringOperatorDetails\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManager.OperatorDetails\",\"components\":[{\"name\":\"__deprecated_earningsReceiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setMinWithdrawalDelayBlocks\",\"inputs\":[{\"name\":\"newMinWithdrawalDelayBlocks\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setPauserRegistry\",\"inputs\":[{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setStrategyWithdrawalDelayBlocks\",\"inputs\":[{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"withdrawalDelayBlocks\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"slasher\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractISlasher\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"stakerNonce\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"stakerOptOutWindowBlocks\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyWithdrawalDelayBlocks\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"undelegate\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"withdrawalRoots\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateOperatorMetadataURI\",\"inputs\":[{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MinWithdrawalDelayBlocksSet\",\"inputs\":[{\"name\":\"previousValue\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"newValue\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorDetailsModified\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOperatorDetails\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIDelegationManager.OperatorDetails\",\"components\":[{\"name\":\"__deprecated_earningsReceiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorMetadataURIUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRegistered\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorDetails\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIDelegationManager.OperatorDetails\",\"components\":[{\"name\":\"__deprecated_earningsReceiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesDecreased\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesIncreased\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"PauserRegistrySet\",\"inputs\":[{\"name\":\"pauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerDelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerForceUndelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerUndelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyWithdrawalDelayBlocksSet\",\"inputs\":[{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"previousValue\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"newValue\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawalCompleted\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawalQueued\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"withdrawal\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIDelegationManager.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"shares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"anonymous\":false}]", - Bin: "0x6101006040523480156200001257600080fd5b5060405162005c4638038062005c46833981016040819052620000359162000140565b6001600160a01b0380841660805280821660c052821660a0526200005862000065565b50504660e0525062000194565b600054610100900460ff1615620000d25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000125576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013d57600080fd5b50565b6000806000606084860312156200015657600080fd5b8351620001638162000127565b6020850151909350620001768162000127565b6040850151909250620001898162000127565b809150509250925092565b60805160a05160c05160e051615a1d6200022960003960006126a00152600081816105b10152818161102e015281816113aa01528181611c23015281816129f901528181613eac0152614398015260006107620152600081816104f901528181610ffc0152818161137801528181611cb701528181612ac601528181612c4901528181613fd2015261443e0152615a1d6000f3fe608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a61035536600461484e565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a23660046148b4565b6109ce565b6103ba6103b536600461484e565b610a90565b604051610364919061490f565b6103da6103d53660046149ac565b610df9565b005b6103da6103ea3660046149ff565b610f3e565b6103da6103fd366004614a23565b610ff1565b6103da610410366004614a64565b6110a8565b6103da610423366004614a7d565b6111e7565b61035a6104363660046149ff565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f366004614a23565b6111fb565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614ae8565b611229565b6103da6104bc366004614a23565b61136d565b61035a6104cf3660046149ff565b609b6020526000908152604090205481565b6103da6104ef366004614b8f565b61141d565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610364565b61051b6105413660046149ff565b6001600160a01b039081166000908152609960205260409020600101541690565b6105756105703660046149ff565b61155a565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b61035a6213c68081565b6103da61157a565b61035a6105f3366004614e8c565b611641565b610575610606366004614ec8565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614ef9565b611671565b6103da610644366004614a64565b61170c565b61051b6106573660046149ff565b609a602052600090815260409020546001600160a01b031681565b6105756106803660046149ff565b61171d565b6103da611757565b61035a61069b366004614f88565b609860209081526000928352604080842090915290825290205481565b6103da6106c6366004615069565b61176b565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150f9565b611997565b6040516103649190615183565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da610738366004615196565b611a71565b61035a61074b3660046149ff565b609f6020526000908152604090205481565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b610575610792366004614a64565b609e6020526000908152604090205460ff1681565b6105756107b53660046151cb565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec3660046149ff565b60a16020526000908152604090205481565b61086e61080c3660046149ff565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151f7565b611b43565b61035a62034bc081565b6108d46108cf3660046149ff565b611bfc565b604051610364929190615278565b6103ba6108f03660046149ff565b611fb4565b6103da61090336600461529d565b612478565b6103da6109163660046152f5565b612595565b6103da6109293660046149ff565b612626565b61035a61269c565b6103da610944366004614a64565b6126da565b609d54600090815b838110156109c657600060a1600087878581811061097157610971615311565b905060200201602081019061098691906149ff565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b506109bf8161533d565b9050610951565b509392505050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a4c61269c565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b60665460609060019060029081161415610ac55760405162461bcd60e51b8152600401610abc90615358565b60405180910390fd5b6000836001600160401b03811115610adf57610adf614c31565b604051908082528060200260200182016040528015610b08578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610dee57868682818110610b4357610b43615311565b9050602002810190610b55919061538f565b610b639060208101906153af565b9050878783818110610b7757610b77615311565b9050602002810190610b89919061538f565b610b9390806153af565b905014610c085760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610abc565b33878783818110610c1b57610c1b615311565b9050602002810190610c2d919061538f565b610c3e9060608101906040016149ff565b6001600160a01b031614610cba5760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610abc565b610dbf3383898985818110610cd157610cd1615311565b9050602002810190610ce3919061538f565b610cf49060608101906040016149ff565b8a8a86818110610d0657610d06615311565b9050602002810190610d18919061538f565b610d2290806153af565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6857610d68615311565b9050602002810190610d7a919061538f565b610d889060208101906153af565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061283692505050565b838281518110610dd157610dd1615311565b602090810291909101015280610de68161533d565b915050610b29565b509095945050505050565b610e023361155a565b15610e885760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610abc565b610e923384612df6565b604080518082019091526060815260006020820152610eb43380836000612fe9565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610eed91906153f8565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f3092919061544a565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb59190615479565b6001600160a01b0316336001600160a01b031614610fe55760405162461bcd60e51b8152600401610abc90615496565b610fee8161327f565b50565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806110505750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b61106c5760405162461bcd60e51b8152600401610abc906154e0565b6110758361155a565b156110a3576001600160a01b038084166000908152609a6020526040902054166110a181858585613376565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611114919061553d565b6111305760405162461bcd60e51b8152600401610abc9061555a565b606654818116146111a95760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610abc565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111ef6133f1565b6110a18484848461344b565b6001600160a01b0383166000908152609b602052604081205461122085828686611b43565b95945050505050565b600054610100900460ff16158080156112495750600054600160ff909116105b806112635750303b158015611263575060005460ff166001145b6112c65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610abc565b6000805460ff1916600117905580156112e9576000805461ff0019166101001790555b6112f38888613671565b6112fb61375b565b609755611307896137f2565b61131086613844565b61131c8585858561344b565b8015611362576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806113cc5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6113e85760405162461bcd60e51b8152600401610abc906154e0565b6113f18361155a565b156110a3576001600160a01b038084166000908152609a6020526040902054166110a18185858561393e565b606654600290600490811614156114465760405162461bcd60e51b8152600401610abc90615358565b600260c95414156114995760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610abc565b600260c95560005b88811015611549576115398a8a838181106114be576114be615311565b90506020028101906114d091906155a2565b8989848181106114e2576114e2615311565b90506020028101906114f491906153af565b89898681811061150657611506615311565b9050602002013588888781811061151f5761151f615311565b905060200201602081019061153491906155b8565b6139b9565b6115428161533d565b90506114a1565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e6919061553d565b6116025760405162461bcd60e51b8152600401610abc9061555a565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000816040516020016116549190615649565b604051602081830303815290604052805190602001209050919050565b6066546002906004908116141561169a5760405162461bcd60e51b8152600401610abc90615358565b600260c95414156116ed5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610abc565b600260c9556116ff86868686866139b9565b5050600160c95550505050565b6117146133f1565b610fee81613844565b60006001600160a01b0382161580159061175157506001600160a01b038083166000818152609a6020526040902054909116145b92915050565b61175f6133f1565b61176960006137f2565b565b42836020015110156117ef5760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610abc565b6117f88561155a565b156118815760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610abc565b61188a8461171d565b6119165760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610abc565b6000609b6000876001600160a01b03166001600160a01b0316815260200190815260200160002054905060006119528783888860200151611b43565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061198290889083906141a3565b61198e87878686612fe9565b50505050505050565b6060600082516001600160401b038111156119b4576119b4614c31565b6040519080825280602002602001820160405280156119dd578160200160208202803683370190505b50905060005b83518110156109c6576001600160a01b03851660009081526098602052604081208551909190869084908110611a1b57611a1b615311565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a5657611a56615311565b6020908102919091010152611a6a8161533d565b90506119e3565b611a7a3361171d565b611afc5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610abc565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611b3792919061544a565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611bb961269c565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000000000000000000000000000000000000000000000909116906360f4062b90602401602060405180830381865afa158015611c6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c90919061565c565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f0000000000000000000000000000000000000000000000000000000000000000909116906394f649dd90602401600060405180830381865afa158015611d00573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d2891908101906156d0565b9150915060008313611d3f57909590945092505050565b606080835160001415611df9576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611db457611db4615311565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611de857611de8615311565b602002602001018181525050611fa7565b8351611e0690600161578a565b6001600160401b03811115611e1d57611e1d614c31565b604051908082528060200260200182016040528015611e46578160200160208202803683370190505b50915081516001600160401b03811115611e6257611e62614c31565b604051908082528060200260200182016040528015611e8b578160200160208202803683370190505b50905060005b8451811015611f2557848181518110611eac57611eac615311565b6020026020010151838281518110611ec657611ec6615311565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611ef857611ef8615311565b6020026020010151828281518110611f1257611f12615311565b6020908102919091010152600101611e91565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f4a91906157a2565b81518110611f5a57611f5a615311565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f8a91906157a2565b81518110611f9a57611f9a615311565b6020026020010181815250505b9097909650945050505050565b60665460609060019060029081161415611fe05760405162461bcd60e51b8152600401610abc90615358565b611fe98361155a565b6120695760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610abc565b6120728361171d565b156120e55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610abc565b6001600160a01b0383166121615760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610abc565b6001600160a01b038084166000818152609a6020526040902054909116903314806121945750336001600160a01b038216145b806121bb57506001600160a01b038181166000908152609960205260409020600101541633145b61222d5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610abc565b60008061223986611bfc565b9092509050336001600160a01b0387161461228f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040902080546001600160a01b0319169055815161231157604080516000815260208101909152945061246f565b81516001600160401b0381111561232a5761232a614c31565b604051908082528060200260200182016040528015612353578160200160208202803683370190505b50945060005b825181101561246d576040805160018082528183019092526000916020808301908036833750506040805160018082528183019092529293506000929150602080830190803683370190505090508483815181106123b9576123b9615311565b6020026020010151826000815181106123d4576123d4615311565b60200260200101906001600160a01b031690816001600160a01b03168152505083838151811061240657612406615311565b60200260200101518160008151811061242157612421615311565b60200260200101818152505061243a89878b8585612836565b88848151811061244c5761244c615311565b602002602001018181525050505080806124659061533d565b915050612359565b505b50505050919050565b6124813361155a565b156124ff5760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610abc565b6125088361171d565b6125895760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610abc565b6110a333848484612fe9565b61259e3361171d565b61261c5760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610abc565b610fee3382612df6565b61262e6133f1565b6001600160a01b0381166126935760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610abc565b610fee816137f2565b60007f00000000000000000000000000000000000000000000000000000000000000004614156126cd575060975490565b6126d561375b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561272d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127519190615479565b6001600160a01b0316336001600160a01b0316146127815760405162461bcd60e51b8152600401610abc90615496565b6066541981196066541916146127ff5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610abc565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111dc565b60006001600160a01b0386166128cd5760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610abc565b82516129575760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610abc565b60005b8351811015612d04576001600160a01b038616156129b0576129b0868886848151811061298957612989615311565b60200260200101518685815181106129a3576129a3615311565b6020026020010151613376565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b03168482815181106129e0576129e0615311565b60200260200101516001600160a01b03161415612aa9577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663beffbb8988858481518110612a3957612a39615311565b60200260200101516040518363ffffffff1660e01b8152600401612a729291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a8c57600080fd5b505af1158015612aa0573d6000803e3d6000fd5b50505050612cfc565b846001600160a01b0316876001600160a01b03161480612b7b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b4da03d858381518110612b0557612b05615311565b60200260200101516040518263ffffffff1660e01b8152600401612b3891906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b79919061553d565b155b612c475760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610abc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638c80d4e588868481518110612c8957612c89615311565b6020026020010151868581518110612ca357612ca3615311565b60200260200101516040518463ffffffff1660e01b8152600401612cc9939291906157b9565b600060405180830381600087803b158015612ce357600080fd5b505af1158015612cf7573d6000803e3d6000fd5b505050505b60010161295a565b506001600160a01b0386166000908152609f60205260408120805491829190612d2c8361533d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d9482611641565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612de290839085906157dd565b60405180910390a198975050505050505050565b6213c680612e0a60608301604084016157f6565b63ffffffff161115612ebf5760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610abc565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612efb90606084019084016157f6565b63ffffffff161015612f915760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610abc565b6001600160a01b03821660009081526099602052604090208190612fb58282615833565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611b379084906153f8565b606654600090600190811614156130125760405162461bcd60e51b8152600401610abc90615358565b6001600160a01b038085166000908152609960205260409020600101541680158015906130485750336001600160a01b03821614155b801561305d5750336001600160a01b03861614155b156131ca5742846020015110156130dc5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610abc565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff16156131765760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610abc565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff191660011790558501516131b79088908890859088906109ce565b90506131c8828287600001516141a3565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a360008061322988611bfc565b9150915060005b825181101561136257613277888a85848151811061325057613250615311565b602002602001015185858151811061326a5761326a615311565b602002602001015161393e565b600101613230565b6001600160a01b03811661330d5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610abc565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038085166000908152609860209081526040808320938616835292905290812080548392906133ad9084906157a2565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f30939291906157b9565b6033546001600160a01b031633146117695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610abc565b8281146134d35760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610abc565b8260005b818110156136695760008686838181106134f3576134f3615311565b905060200201602081019061350891906149ff565b6001600160a01b038116600090815260a1602052604081205491925086868581811061353657613536615311565b90506020020135905062034bc08111156135fa5760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610abc565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a1505050806136629061533d565b90506134d7565b505050505050565b6065546001600160a01b031615801561369257506001600160a01b03821615155b6137145760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610abc565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26137578261327f565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138fd5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610abc565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b0380851660009081526098602090815260408083209386168352929052908120805483929061397590849061578a565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f30939291906157b9565b60006139c76105f387615896565b6000818152609e602052604090205490915060ff16613a485760405162461bcd60e51b815260206004820152604360248201526000805160206159c883398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610abc565b609d544390613a5d60a0890160808a016157f6565b63ffffffff16613a6d919061578a565b1115613af55760405162461bcd60e51b815260206004820152605f60248201526000805160206159c883398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610abc565b613b0560608701604088016149ff565b6001600160a01b0316336001600160a01b031614613b925760405162461bcd60e51b815260206004820152605060248201526000805160206159c883398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610abc565b8115613c1457613ba560a08701876153af565b85149050613c145760405162461bcd60e51b815260206004820152604260248201526000805160206159c883398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610abc565b6000818152609e60205260409020805460ff191690558115613d795760005b613c4060a08801886153af565b9050811015613d73574360a16000613c5b60a08b018b6153af565b85818110613c6b57613c6b615311565b9050602002016020810190613c8091906149ff565b6001600160a01b03168152602081019190915260400160002054613caa60a08a0160808b016157f6565b63ffffffff16613cba919061578a565b1115613cd85760405162461bcd60e51b8152600401610abc906158a2565b613d6b613ce860208901896149ff565b33613cf660a08b018b6153af565b85818110613d0657613d06615311565b9050602002016020810190613d1b91906149ff565b613d2860c08c018c6153af565b86818110613d3857613d38615311565b905060200201358a8a87818110613d5157613d51615311565b9050602002016020810190613d6691906149ff565b61435d565b600101613c33565b50614168565b336000908152609a60205260408120546001600160a01b0316905b613da160a08901896153af565b9050811015614165574360a16000613dbc60a08c018c6153af565b85818110613dcc57613dcc615311565b9050602002016020810190613de191906149ff565b6001600160a01b03168152602081019190915260400160002054613e0b60a08b0160808c016157f6565b63ffffffff16613e1b919061578a565b1115613e395760405162461bcd60e51b8152600401610abc906158a2565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e5b60a08a018a6153af565b83818110613e6b57613e6b615311565b9050602002016020810190613e8091906149ff565b6001600160a01b03161415613fd0576000613e9e60208a018a6149ff565b905060006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630e81073c83613edf60c08e018e6153af565b87818110613eef57613eef615311565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613f43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f67919061565c565b6001600160a01b038084166000908152609a6020526040902054919250168015613fc857613fc88184613f9d60a08f018f6153af565b88818110613fad57613fad615311565b9050602002016020810190613fc291906149ff565b8561393e565b50505061415d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4623ea13389898581811061401257614012615311565b905060200201602081019061402791906149ff565b61403460a08d018d6153af565b8681811061404457614044615311565b905060200201602081019061405991906149ff565b61406660c08e018e6153af565b8781811061407657614076615311565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b1580156140d657600080fd5b505af11580156140ea573d6000803e3d6000fd5b505050506001600160a01b0382161561415d5761415d823361410f60a08c018c6153af565b8581811061411f5761411f615311565b905060200201602081019061413491906149ff565b61414160c08d018d6153af565b8681811061415157614151615311565b9050602002013561393e565b600101613d94565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b156142bd57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141e3908690869060040161592a565b602060405180830381865afa158015614200573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142249190615987565b6001600160e01b031916146110a35760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610abc565b826001600160a01b03166142d1838361449d565b6001600160a01b0316146110a35760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610abc565b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014156144085760405162387b1360e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063387b1300906143d1908890889087906004016157b9565b600060405180830381600087803b1580156143eb57600080fd5b505af11580156143ff573d6000803e3d6000fd5b50505050614496565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063c608c7f390608401600060405180830381600087803b15801561448257600080fd5b505af1158015611362573d6000803e3d6000fd5b5050505050565b60008060006144ac85856144b9565b915091506109c681614529565b6000808251604114156144f05760208301516040840151606085015160001a6144e4878285856146e4565b94509450505050614522565b82516040141561451a576020830151604084015161450f8683836147d1565b935093505050614522565b506000905060025b9250929050565b600081600481111561453d5761453d6159b1565b14156145465750565b600181600481111561455a5761455a6159b1565b14156145a85760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610abc565b60028160048111156145bc576145bc6159b1565b141561460a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610abc565b600381600481111561461e5761461e6159b1565b14156146775760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610abc565b600481600481111561468b5761468b6159b1565b1415610fee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610abc565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561471b57506000905060036147c8565b8460ff16601b1415801561473357508460ff16601c14155b1561474457506000905060046147c8565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614798573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166147c1576000600192509250506147c8565b9150600090505b94509492505050565b6000806001600160ff1b038316816147ee60ff86901c601b61578a565b90506147fc878288856146e4565b935093505050935093915050565b60008083601f84011261481c57600080fd5b5081356001600160401b0381111561483357600080fd5b6020830191508360208260051b850101111561452257600080fd5b6000806020838503121561486157600080fd5b82356001600160401b0381111561487757600080fd5b6148838582860161480a565b90969095509350505050565b6001600160a01b0381168114610fee57600080fd5b80356148af8161488f565b919050565b600080600080600060a086880312156148cc57600080fd5b85356148d78161488f565b945060208601356148e78161488f565b935060408601356148f78161488f565b94979396509394606081013594506080013592915050565b6020808252825182820181905260009190848201906040850190845b818110156149475783518352928401929184019160010161492b565b50909695505050505050565b60006060828403121561496557600080fd5b50919050565b60008083601f84011261497d57600080fd5b5081356001600160401b0381111561499457600080fd5b60208301915083602082850101111561452257600080fd5b6000806000608084860312156149c157600080fd5b6149cb8585614953565b925060608401356001600160401b038111156149e657600080fd5b6149f28682870161496b565b9497909650939450505050565b600060208284031215614a1157600080fd5b8135614a1c8161488f565b9392505050565b600080600060608486031215614a3857600080fd5b8335614a438161488f565b92506020840135614a538161488f565b929592945050506040919091013590565b600060208284031215614a7657600080fd5b5035919050565b60008060008060408587031215614a9357600080fd5b84356001600160401b0380821115614aaa57600080fd5b614ab68883890161480a565b90965094506020870135915080821115614acf57600080fd5b50614adc8782880161480a565b95989497509550505050565b60008060008060008060008060c0898b031215614b0457600080fd5b8835614b0f8161488f565b97506020890135614b1f8161488f565b9650604089013595506060890135945060808901356001600160401b0380821115614b4957600080fd5b614b558c838d0161480a565b909650945060a08b0135915080821115614b6e57600080fd5b50614b7b8b828c0161480a565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614bab57600080fd5b88356001600160401b0380821115614bc257600080fd5b614bce8c838d0161480a565b909a50985060208b0135915080821115614be757600080fd5b614bf38c838d0161480a565b909850965060408b0135915080821115614c0c57600080fd5b614c188c838d0161480a565b909650945060608b0135915080821115614b6e57600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c6957614c69614c31565b60405290565b604080519081016001600160401b0381118282101715614c6957614c69614c31565b604051601f8201601f191681016001600160401b0381118282101715614cb957614cb9614c31565b604052919050565b63ffffffff81168114610fee57600080fd5b80356148af81614cc1565b60006001600160401b03821115614cf757614cf7614c31565b5060051b60200190565b600082601f830112614d1257600080fd5b81356020614d27614d2283614cde565b614c91565b82815260059290921b84018101918181019086841115614d4657600080fd5b8286015b84811015614d6a578035614d5d8161488f565b8352918301918301614d4a565b509695505050505050565b600082601f830112614d8657600080fd5b81356020614d96614d2283614cde565b82815260059290921b84018101918181019086841115614db557600080fd5b8286015b84811015614d6a5780358352918301918301614db9565b600060e08284031215614de257600080fd5b614dea614c47565b9050614df5826148a4565b8152614e03602083016148a4565b6020820152614e14604083016148a4565b604082015260608201356060820152614e2f60808301614cd3565b608082015260a08201356001600160401b0380821115614e4e57600080fd5b614e5a85838601614d01565b60a084015260c0840135915080821115614e7357600080fd5b50614e8084828501614d75565b60c08301525092915050565b600060208284031215614e9e57600080fd5b81356001600160401b03811115614eb457600080fd5b614ec084828501614dd0565b949350505050565b600060208284031215614eda57600080fd5b813560ff81168114614a1c57600080fd5b8015158114610fee57600080fd5b600080600080600060808688031215614f1157600080fd5b85356001600160401b0380821115614f2857600080fd5b9087019060e0828a031215614f3c57600080fd5b90955060208701359080821115614f5257600080fd5b50614f5f8882890161480a565b909550935050604086013591506060860135614f7a81614eeb565b809150509295509295909350565b60008060408385031215614f9b57600080fd5b8235614fa68161488f565b91506020830135614fb68161488f565b809150509250929050565b600060408284031215614fd357600080fd5b614fdb614c6f565b905081356001600160401b0380821115614ff457600080fd5b818401915084601f83011261500857600080fd5b813560208282111561501c5761501c614c31565b61502e601f8301601f19168201614c91565b9250818352868183860101111561504457600080fd5b8181850182850137600081838501015282855280860135818601525050505092915050565b600080600080600060a0868803121561508157600080fd5b853561508c8161488f565b9450602086013561509c8161488f565b935060408601356001600160401b03808211156150b857600080fd5b6150c489838a01614fc1565b945060608801359150808211156150da57600080fd5b506150e788828901614fc1565b95989497509295608001359392505050565b6000806040838503121561510c57600080fd5b82356151178161488f565b915060208301356001600160401b0381111561513257600080fd5b61513e85828601614d01565b9150509250929050565b600081518084526020808501945080840160005b838110156151785781518752958201959082019060010161515c565b509495945050505050565b602081526000614a1c6020830184615148565b600080602083850312156151a957600080fd5b82356001600160401b038111156151bf57600080fd5b6148838582860161496b565b600080604083850312156151de57600080fd5b82356151e98161488f565b946020939093013593505050565b6000806000806080858703121561520d57600080fd5b84356152188161488f565b935060208501359250604085013561522f8161488f565b9396929550929360600135925050565b600081518084526020808501945080840160005b838110156151785781516001600160a01b031687529582019590820190600101615253565b60408152600061528b604083018561523f565b82810360208401526112208185615148565b6000806000606084860312156152b257600080fd5b83356152bd8161488f565b925060208401356001600160401b038111156152d857600080fd5b6152e486828701614fc1565b925050604084013590509250925092565b60006060828403121561530757600080fd5b614a1c8383614953565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561535157615351615327565b5060010190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e198336030181126153a557600080fd5b9190910192915050565b6000808335601e198436030181126153c657600080fd5b8301803591506001600160401b038211156153e057600080fd5b6020019150600581901b360382131561452257600080fd5b6060810182356154078161488f565b6001600160a01b0390811683526020840135906154238261488f565b166020830152604083013561543781614cc1565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561548b57600080fd5b8151614a1c8161488f565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b60006020828403121561554f57600080fd5b8151614a1c81614eeb565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de198336030181126153a557600080fd5b6000602082840312156155ca57600080fd5b8135614a1c81614eeb565b600060018060a01b03808351168452806020840151166020850152806040840151166040850152506060820151606084015263ffffffff608083015116608084015260a082015160e060a085015261563060e085018261523f565b905060c083015184820360c08601526112208282615148565b602081526000614a1c60208301846155d5565b60006020828403121561566e57600080fd5b5051919050565b600082601f83011261568657600080fd5b81516020615696614d2283614cde565b82815260059290921b840181019181810190868411156156b557600080fd5b8286015b84811015614d6a57805183529183019183016156b9565b600080604083850312156156e357600080fd5b82516001600160401b03808211156156fa57600080fd5b818501915085601f83011261570e57600080fd5b8151602061571e614d2283614cde565b82815260059290921b8401810191818101908984111561573d57600080fd5b948201945b838610156157645785516157558161488f565b82529482019490820190615742565b9188015191965090935050508082111561577d57600080fd5b5061513e85828601615675565b6000821982111561579d5761579d615327565b500190565b6000828210156157b4576157b4615327565b500390565b6001600160a01b039384168152919092166020820152604081019190915260600190565b828152604060208201526000614ec060408301846155d5565b60006020828403121561580857600080fd5b8135614a1c81614cc1565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561583e8161488f565b6158488183615813565b5060018101602083013561585b8161488f565b6158658183615813565b50604083013561587481614cc1565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006117513683614dd0565b6020808252606e908201526000805160206159c883398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b82815260006020604081840152835180604085015260005b8181101561595e57858101830151858201606001528201615942565b81811115615970576000606083870101525b50601f01601f191692909201606001949350505050565b60006020828403121561599957600080fd5b81516001600160e01b031981168114614a1c57600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a264697066735822122089d0db6b230cfa9880fba17de702228105464695d9ec893eef121f3fd5814b2b64736f6c634300080c0033", + Bin: "0x6101006040523480156200001257600080fd5b5060405162005c4638038062005c46833981016040819052620000359162000140565b6001600160a01b0380841660805280821660c052821660a0526200005862000065565b50504660e0525062000194565b600054610100900460ff1615620000d25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000125576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013d57600080fd5b50565b6000806000606084860312156200015657600080fd5b8351620001638162000127565b6020850151909350620001768162000127565b6040850151909250620001898162000127565b809150509250925092565b60805160a05160c05160e051615a1d6200022960003960006126a00152600081816105b10152818161102e015281816113aa01528181611c23015281816129f901528181613eac0152614398015260006107620152600081816104f901528181610ffc0152818161137801528181611cb701528181612ac601528181612c4901528181613fd2015261443e0152615a1d6000f3fe608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a61035536600461484e565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a23660046148b4565b6109ce565b6103ba6103b536600461484e565b610a90565b604051610364919061490f565b6103da6103d53660046149ac565b610df9565b005b6103da6103ea3660046149ff565b610f3e565b6103da6103fd366004614a23565b610ff1565b6103da610410366004614a64565b6110a8565b6103da610423366004614a7d565b6111e7565b61035a6104363660046149ff565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f366004614a23565b6111fb565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614ae8565b611229565b6103da6104bc366004614a23565b61136d565b61035a6104cf3660046149ff565b609b6020526000908152604090205481565b6103da6104ef366004614b8f565b61141d565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610364565b61051b6105413660046149ff565b6001600160a01b039081166000908152609960205260409020600101541690565b6105756105703660046149ff565b61155a565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b61035a6213c68081565b6103da61157a565b61035a6105f3366004614e8c565b611641565b610575610606366004614ec8565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614ef9565b611671565b6103da610644366004614a64565b61170c565b61051b6106573660046149ff565b609a602052600090815260409020546001600160a01b031681565b6105756106803660046149ff565b61171d565b6103da611757565b61035a61069b366004614f88565b609860209081526000928352604080842090915290825290205481565b6103da6106c6366004615069565b61176b565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150f9565b611997565b6040516103649190615183565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da610738366004615196565b611a71565b61035a61074b3660046149ff565b609f6020526000908152604090205481565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b610575610792366004614a64565b609e6020526000908152604090205460ff1681565b6105756107b53660046151cb565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec3660046149ff565b60a16020526000908152604090205481565b61086e61080c3660046149ff565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151f7565b611b43565b61035a62034bc081565b6108d46108cf3660046149ff565b611bfc565b604051610364929190615278565b6103ba6108f03660046149ff565b611fb4565b6103da61090336600461529d565b612478565b6103da6109163660046152f5565b612595565b6103da6109293660046149ff565b612626565b61035a61269c565b6103da610944366004614a64565b6126da565b609d54600090815b838110156109c657600060a1600087878581811061097157610971615311565b905060200201602081019061098691906149ff565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b506109bf8161533d565b9050610951565b509392505050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a4c61269c565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b60665460609060019060029081161415610ac55760405162461bcd60e51b8152600401610abc90615358565b60405180910390fd5b6000836001600160401b03811115610adf57610adf614c31565b604051908082528060200260200182016040528015610b08578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610dee57868682818110610b4357610b43615311565b9050602002810190610b55919061538f565b610b639060208101906153af565b9050878783818110610b7757610b77615311565b9050602002810190610b89919061538f565b610b9390806153af565b905014610c085760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610abc565b33878783818110610c1b57610c1b615311565b9050602002810190610c2d919061538f565b610c3e9060608101906040016149ff565b6001600160a01b031614610cba5760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610abc565b610dbf3383898985818110610cd157610cd1615311565b9050602002810190610ce3919061538f565b610cf49060608101906040016149ff565b8a8a86818110610d0657610d06615311565b9050602002810190610d18919061538f565b610d2290806153af565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6857610d68615311565b9050602002810190610d7a919061538f565b610d889060208101906153af565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061283692505050565b838281518110610dd157610dd1615311565b602090810291909101015280610de68161533d565b915050610b29565b509095945050505050565b610e023361155a565b15610e885760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610abc565b610e923384612df6565b604080518082019091526060815260006020820152610eb43380836000612fe9565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610eed91906153f8565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f3092919061544a565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb59190615479565b6001600160a01b0316336001600160a01b031614610fe55760405162461bcd60e51b8152600401610abc90615496565b610fee8161327f565b50565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806110505750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b61106c5760405162461bcd60e51b8152600401610abc906154e0565b6110758361155a565b156110a3576001600160a01b038084166000908152609a6020526040902054166110a181858585613376565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611114919061553d565b6111305760405162461bcd60e51b8152600401610abc9061555a565b606654818116146111a95760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610abc565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111ef6133f1565b6110a18484848461344b565b6001600160a01b0383166000908152609b602052604081205461122085828686611b43565b95945050505050565b600054610100900460ff16158080156112495750600054600160ff909116105b806112635750303b158015611263575060005460ff166001145b6112c65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610abc565b6000805460ff1916600117905580156112e9576000805461ff0019166101001790555b6112f38888613671565b6112fb61375b565b609755611307896137f2565b61131086613844565b61131c8585858561344b565b8015611362576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806113cc5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6113e85760405162461bcd60e51b8152600401610abc906154e0565b6113f18361155a565b156110a3576001600160a01b038084166000908152609a6020526040902054166110a18185858561393e565b606654600290600490811614156114465760405162461bcd60e51b8152600401610abc90615358565b600260c95414156114995760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610abc565b600260c95560005b88811015611549576115398a8a838181106114be576114be615311565b90506020028101906114d091906155a2565b8989848181106114e2576114e2615311565b90506020028101906114f491906153af565b89898681811061150657611506615311565b9050602002013588888781811061151f5761151f615311565b905060200201602081019061153491906155b8565b6139b9565b6115428161533d565b90506114a1565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e6919061553d565b6116025760405162461bcd60e51b8152600401610abc9061555a565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000816040516020016116549190615649565b604051602081830303815290604052805190602001209050919050565b6066546002906004908116141561169a5760405162461bcd60e51b8152600401610abc90615358565b600260c95414156116ed5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610abc565b600260c9556116ff86868686866139b9565b5050600160c95550505050565b6117146133f1565b610fee81613844565b60006001600160a01b0382161580159061175157506001600160a01b038083166000818152609a6020526040902054909116145b92915050565b61175f6133f1565b61176960006137f2565b565b42836020015110156117ef5760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610abc565b6117f88561155a565b156118815760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610abc565b61188a8461171d565b6119165760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610abc565b6000609b6000876001600160a01b03166001600160a01b0316815260200190815260200160002054905060006119528783888860200151611b43565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061198290889083906141a3565b61198e87878686612fe9565b50505050505050565b6060600082516001600160401b038111156119b4576119b4614c31565b6040519080825280602002602001820160405280156119dd578160200160208202803683370190505b50905060005b83518110156109c6576001600160a01b03851660009081526098602052604081208551909190869084908110611a1b57611a1b615311565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a5657611a56615311565b6020908102919091010152611a6a8161533d565b90506119e3565b611a7a3361171d565b611afc5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610abc565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611b3792919061544a565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611bb961269c565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000000000000000000000000000000000000000000000909116906360f4062b90602401602060405180830381865afa158015611c6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c90919061565c565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f0000000000000000000000000000000000000000000000000000000000000000909116906394f649dd90602401600060405180830381865afa158015611d00573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d2891908101906156d0565b9150915060008313611d3f57909590945092505050565b606080835160001415611df9576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611db457611db4615311565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611de857611de8615311565b602002602001018181525050611fa7565b8351611e0690600161578a565b6001600160401b03811115611e1d57611e1d614c31565b604051908082528060200260200182016040528015611e46578160200160208202803683370190505b50915081516001600160401b03811115611e6257611e62614c31565b604051908082528060200260200182016040528015611e8b578160200160208202803683370190505b50905060005b8451811015611f2557848181518110611eac57611eac615311565b6020026020010151838281518110611ec657611ec6615311565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611ef857611ef8615311565b6020026020010151828281518110611f1257611f12615311565b6020908102919091010152600101611e91565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f4a91906157a2565b81518110611f5a57611f5a615311565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f8a91906157a2565b81518110611f9a57611f9a615311565b6020026020010181815250505b9097909650945050505050565b60665460609060019060029081161415611fe05760405162461bcd60e51b8152600401610abc90615358565b611fe98361155a565b6120695760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610abc565b6120728361171d565b156120e55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610abc565b6001600160a01b0383166121615760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610abc565b6001600160a01b038084166000818152609a6020526040902054909116903314806121945750336001600160a01b038216145b806121bb57506001600160a01b038181166000908152609960205260409020600101541633145b61222d5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610abc565b60008061223986611bfc565b9092509050336001600160a01b0387161461228f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040902080546001600160a01b0319169055815161231157604080516000815260208101909152945061246f565b81516001600160401b0381111561232a5761232a614c31565b604051908082528060200260200182016040528015612353578160200160208202803683370190505b50945060005b825181101561246d576040805160018082528183019092526000916020808301908036833750506040805160018082528183019092529293506000929150602080830190803683370190505090508483815181106123b9576123b9615311565b6020026020010151826000815181106123d4576123d4615311565b60200260200101906001600160a01b031690816001600160a01b03168152505083838151811061240657612406615311565b60200260200101518160008151811061242157612421615311565b60200260200101818152505061243a89878b8585612836565b88848151811061244c5761244c615311565b602002602001018181525050505080806124659061533d565b915050612359565b505b50505050919050565b6124813361155a565b156124ff5760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610abc565b6125088361171d565b6125895760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610abc565b6110a333848484612fe9565b61259e3361171d565b61261c5760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610abc565b610fee3382612df6565b61262e6133f1565b6001600160a01b0381166126935760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610abc565b610fee816137f2565b60007f00000000000000000000000000000000000000000000000000000000000000004614156126cd575060975490565b6126d561375b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561272d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127519190615479565b6001600160a01b0316336001600160a01b0316146127815760405162461bcd60e51b8152600401610abc90615496565b6066541981196066541916146127ff5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610abc565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111dc565b60006001600160a01b0386166128cd5760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610abc565b82516129575760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610abc565b60005b8351811015612d04576001600160a01b038616156129b0576129b0868886848151811061298957612989615311565b60200260200101518685815181106129a3576129a3615311565b6020026020010151613376565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b03168482815181106129e0576129e0615311565b60200260200101516001600160a01b03161415612aa9577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663beffbb8988858481518110612a3957612a39615311565b60200260200101516040518363ffffffff1660e01b8152600401612a729291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a8c57600080fd5b505af1158015612aa0573d6000803e3d6000fd5b50505050612cfc565b846001600160a01b0316876001600160a01b03161480612b7b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b4da03d858381518110612b0557612b05615311565b60200260200101516040518263ffffffff1660e01b8152600401612b3891906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b79919061553d565b155b612c475760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610abc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638c80d4e588868481518110612c8957612c89615311565b6020026020010151868581518110612ca357612ca3615311565b60200260200101516040518463ffffffff1660e01b8152600401612cc9939291906157b9565b600060405180830381600087803b158015612ce357600080fd5b505af1158015612cf7573d6000803e3d6000fd5b505050505b60010161295a565b506001600160a01b0386166000908152609f60205260408120805491829190612d2c8361533d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d9482611641565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612de290839085906157dd565b60405180910390a198975050505050505050565b6213c680612e0a60608301604084016157f6565b63ffffffff161115612ebf5760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610abc565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612efb90606084019084016157f6565b63ffffffff161015612f915760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610abc565b6001600160a01b03821660009081526099602052604090208190612fb58282615833565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611b379084906153f8565b606654600090600190811614156130125760405162461bcd60e51b8152600401610abc90615358565b6001600160a01b038085166000908152609960205260409020600101541680158015906130485750336001600160a01b03821614155b801561305d5750336001600160a01b03861614155b156131ca5742846020015110156130dc5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610abc565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff16156131765760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610abc565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff191660011790558501516131b79088908890859088906109ce565b90506131c8828287600001516141a3565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a360008061322988611bfc565b9150915060005b825181101561136257613277888a85848151811061325057613250615311565b602002602001015185858151811061326a5761326a615311565b602002602001015161393e565b600101613230565b6001600160a01b03811661330d5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610abc565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038085166000908152609860209081526040808320938616835292905290812080548392906133ad9084906157a2565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f30939291906157b9565b6033546001600160a01b031633146117695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610abc565b8281146134d35760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610abc565b8260005b818110156136695760008686838181106134f3576134f3615311565b905060200201602081019061350891906149ff565b6001600160a01b038116600090815260a1602052604081205491925086868581811061353657613536615311565b90506020020135905062034bc08111156135fa5760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610abc565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a1505050806136629061533d565b90506134d7565b505050505050565b6065546001600160a01b031615801561369257506001600160a01b03821615155b6137145760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610abc565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26137578261327f565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138fd5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610abc565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b0380851660009081526098602090815260408083209386168352929052908120805483929061397590849061578a565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f30939291906157b9565b60006139c76105f387615896565b6000818152609e602052604090205490915060ff16613a485760405162461bcd60e51b815260206004820152604360248201526000805160206159c883398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610abc565b609d544390613a5d60a0890160808a016157f6565b63ffffffff16613a6d919061578a565b1115613af55760405162461bcd60e51b815260206004820152605f60248201526000805160206159c883398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610abc565b613b0560608701604088016149ff565b6001600160a01b0316336001600160a01b031614613b925760405162461bcd60e51b815260206004820152605060248201526000805160206159c883398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610abc565b8115613c1457613ba560a08701876153af565b85149050613c145760405162461bcd60e51b815260206004820152604260248201526000805160206159c883398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610abc565b6000818152609e60205260409020805460ff191690558115613d795760005b613c4060a08801886153af565b9050811015613d73574360a16000613c5b60a08b018b6153af565b85818110613c6b57613c6b615311565b9050602002016020810190613c8091906149ff565b6001600160a01b03168152602081019190915260400160002054613caa60a08a0160808b016157f6565b63ffffffff16613cba919061578a565b1115613cd85760405162461bcd60e51b8152600401610abc906158a2565b613d6b613ce860208901896149ff565b33613cf660a08b018b6153af565b85818110613d0657613d06615311565b9050602002016020810190613d1b91906149ff565b613d2860c08c018c6153af565b86818110613d3857613d38615311565b905060200201358a8a87818110613d5157613d51615311565b9050602002016020810190613d6691906149ff565b61435d565b600101613c33565b50614168565b336000908152609a60205260408120546001600160a01b0316905b613da160a08901896153af565b9050811015614165574360a16000613dbc60a08c018c6153af565b85818110613dcc57613dcc615311565b9050602002016020810190613de191906149ff565b6001600160a01b03168152602081019190915260400160002054613e0b60a08b0160808c016157f6565b63ffffffff16613e1b919061578a565b1115613e395760405162461bcd60e51b8152600401610abc906158a2565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e5b60a08a018a6153af565b83818110613e6b57613e6b615311565b9050602002016020810190613e8091906149ff565b6001600160a01b03161415613fd0576000613e9e60208a018a6149ff565b905060006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630e81073c83613edf60c08e018e6153af565b87818110613eef57613eef615311565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613f43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f67919061565c565b6001600160a01b038084166000908152609a6020526040902054919250168015613fc857613fc88184613f9d60a08f018f6153af565b88818110613fad57613fad615311565b9050602002016020810190613fc291906149ff565b8561393e565b50505061415d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4623ea13389898581811061401257614012615311565b905060200201602081019061402791906149ff565b61403460a08d018d6153af565b8681811061404457614044615311565b905060200201602081019061405991906149ff565b61406660c08e018e6153af565b8781811061407657614076615311565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b1580156140d657600080fd5b505af11580156140ea573d6000803e3d6000fd5b505050506001600160a01b0382161561415d5761415d823361410f60a08c018c6153af565b8581811061411f5761411f615311565b905060200201602081019061413491906149ff565b61414160c08d018d6153af565b8681811061415157614151615311565b9050602002013561393e565b600101613d94565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b156142bd57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141e3908690869060040161592a565b602060405180830381865afa158015614200573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142249190615987565b6001600160e01b031916146110a35760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610abc565b826001600160a01b03166142d1838361449d565b6001600160a01b0316146110a35760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610abc565b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014156144085760405162387b1360e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063387b1300906143d1908890889087906004016157b9565b600060405180830381600087803b1580156143eb57600080fd5b505af11580156143ff573d6000803e3d6000fd5b50505050614496565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063c608c7f390608401600060405180830381600087803b15801561448257600080fd5b505af1158015611362573d6000803e3d6000fd5b5050505050565b60008060006144ac85856144b9565b915091506109c681614529565b6000808251604114156144f05760208301516040840151606085015160001a6144e4878285856146e4565b94509450505050614522565b82516040141561451a576020830151604084015161450f8683836147d1565b935093505050614522565b506000905060025b9250929050565b600081600481111561453d5761453d6159b1565b14156145465750565b600181600481111561455a5761455a6159b1565b14156145a85760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610abc565b60028160048111156145bc576145bc6159b1565b141561460a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610abc565b600381600481111561461e5761461e6159b1565b14156146775760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610abc565b600481600481111561468b5761468b6159b1565b1415610fee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610abc565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561471b57506000905060036147c8565b8460ff16601b1415801561473357508460ff16601c14155b1561474457506000905060046147c8565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614798573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166147c1576000600192509250506147c8565b9150600090505b94509492505050565b6000806001600160ff1b038316816147ee60ff86901c601b61578a565b90506147fc878288856146e4565b935093505050935093915050565b60008083601f84011261481c57600080fd5b5081356001600160401b0381111561483357600080fd5b6020830191508360208260051b850101111561452257600080fd5b6000806020838503121561486157600080fd5b82356001600160401b0381111561487757600080fd5b6148838582860161480a565b90969095509350505050565b6001600160a01b0381168114610fee57600080fd5b80356148af8161488f565b919050565b600080600080600060a086880312156148cc57600080fd5b85356148d78161488f565b945060208601356148e78161488f565b935060408601356148f78161488f565b94979396509394606081013594506080013592915050565b6020808252825182820181905260009190848201906040850190845b818110156149475783518352928401929184019160010161492b565b50909695505050505050565b60006060828403121561496557600080fd5b50919050565b60008083601f84011261497d57600080fd5b5081356001600160401b0381111561499457600080fd5b60208301915083602082850101111561452257600080fd5b6000806000608084860312156149c157600080fd5b6149cb8585614953565b925060608401356001600160401b038111156149e657600080fd5b6149f28682870161496b565b9497909650939450505050565b600060208284031215614a1157600080fd5b8135614a1c8161488f565b9392505050565b600080600060608486031215614a3857600080fd5b8335614a438161488f565b92506020840135614a538161488f565b929592945050506040919091013590565b600060208284031215614a7657600080fd5b5035919050565b60008060008060408587031215614a9357600080fd5b84356001600160401b0380821115614aaa57600080fd5b614ab68883890161480a565b90965094506020870135915080821115614acf57600080fd5b50614adc8782880161480a565b95989497509550505050565b60008060008060008060008060c0898b031215614b0457600080fd5b8835614b0f8161488f565b97506020890135614b1f8161488f565b9650604089013595506060890135945060808901356001600160401b0380821115614b4957600080fd5b614b558c838d0161480a565b909650945060a08b0135915080821115614b6e57600080fd5b50614b7b8b828c0161480a565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614bab57600080fd5b88356001600160401b0380821115614bc257600080fd5b614bce8c838d0161480a565b909a50985060208b0135915080821115614be757600080fd5b614bf38c838d0161480a565b909850965060408b0135915080821115614c0c57600080fd5b614c188c838d0161480a565b909650945060608b0135915080821115614b6e57600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c6957614c69614c31565b60405290565b604080519081016001600160401b0381118282101715614c6957614c69614c31565b604051601f8201601f191681016001600160401b0381118282101715614cb957614cb9614c31565b604052919050565b63ffffffff81168114610fee57600080fd5b80356148af81614cc1565b60006001600160401b03821115614cf757614cf7614c31565b5060051b60200190565b600082601f830112614d1257600080fd5b81356020614d27614d2283614cde565b614c91565b82815260059290921b84018101918181019086841115614d4657600080fd5b8286015b84811015614d6a578035614d5d8161488f565b8352918301918301614d4a565b509695505050505050565b600082601f830112614d8657600080fd5b81356020614d96614d2283614cde565b82815260059290921b84018101918181019086841115614db557600080fd5b8286015b84811015614d6a5780358352918301918301614db9565b600060e08284031215614de257600080fd5b614dea614c47565b9050614df5826148a4565b8152614e03602083016148a4565b6020820152614e14604083016148a4565b604082015260608201356060820152614e2f60808301614cd3565b608082015260a08201356001600160401b0380821115614e4e57600080fd5b614e5a85838601614d01565b60a084015260c0840135915080821115614e7357600080fd5b50614e8084828501614d75565b60c08301525092915050565b600060208284031215614e9e57600080fd5b81356001600160401b03811115614eb457600080fd5b614ec084828501614dd0565b949350505050565b600060208284031215614eda57600080fd5b813560ff81168114614a1c57600080fd5b8015158114610fee57600080fd5b600080600080600060808688031215614f1157600080fd5b85356001600160401b0380821115614f2857600080fd5b9087019060e0828a031215614f3c57600080fd5b90955060208701359080821115614f5257600080fd5b50614f5f8882890161480a565b909550935050604086013591506060860135614f7a81614eeb565b809150509295509295909350565b60008060408385031215614f9b57600080fd5b8235614fa68161488f565b91506020830135614fb68161488f565b809150509250929050565b600060408284031215614fd357600080fd5b614fdb614c6f565b905081356001600160401b0380821115614ff457600080fd5b818401915084601f83011261500857600080fd5b813560208282111561501c5761501c614c31565b61502e601f8301601f19168201614c91565b9250818352868183860101111561504457600080fd5b8181850182850137600081838501015282855280860135818601525050505092915050565b600080600080600060a0868803121561508157600080fd5b853561508c8161488f565b9450602086013561509c8161488f565b935060408601356001600160401b03808211156150b857600080fd5b6150c489838a01614fc1565b945060608801359150808211156150da57600080fd5b506150e788828901614fc1565b95989497509295608001359392505050565b6000806040838503121561510c57600080fd5b82356151178161488f565b915060208301356001600160401b0381111561513257600080fd5b61513e85828601614d01565b9150509250929050565b600081518084526020808501945080840160005b838110156151785781518752958201959082019060010161515c565b509495945050505050565b602081526000614a1c6020830184615148565b600080602083850312156151a957600080fd5b82356001600160401b038111156151bf57600080fd5b6148838582860161496b565b600080604083850312156151de57600080fd5b82356151e98161488f565b946020939093013593505050565b6000806000806080858703121561520d57600080fd5b84356152188161488f565b935060208501359250604085013561522f8161488f565b9396929550929360600135925050565b600081518084526020808501945080840160005b838110156151785781516001600160a01b031687529582019590820190600101615253565b60408152600061528b604083018561523f565b82810360208401526112208185615148565b6000806000606084860312156152b257600080fd5b83356152bd8161488f565b925060208401356001600160401b038111156152d857600080fd5b6152e486828701614fc1565b925050604084013590509250925092565b60006060828403121561530757600080fd5b614a1c8383614953565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561535157615351615327565b5060010190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e198336030181126153a557600080fd5b9190910192915050565b6000808335601e198436030181126153c657600080fd5b8301803591506001600160401b038211156153e057600080fd5b6020019150600581901b360382131561452257600080fd5b6060810182356154078161488f565b6001600160a01b0390811683526020840135906154238261488f565b166020830152604083013561543781614cc1565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561548b57600080fd5b8151614a1c8161488f565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b60006020828403121561554f57600080fd5b8151614a1c81614eeb565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de198336030181126153a557600080fd5b6000602082840312156155ca57600080fd5b8135614a1c81614eeb565b600060018060a01b03808351168452806020840151166020850152806040840151166040850152506060820151606084015263ffffffff608083015116608084015260a082015160e060a085015261563060e085018261523f565b905060c083015184820360c08601526112208282615148565b602081526000614a1c60208301846155d5565b60006020828403121561566e57600080fd5b5051919050565b600082601f83011261568657600080fd5b81516020615696614d2283614cde565b82815260059290921b840181019181810190868411156156b557600080fd5b8286015b84811015614d6a57805183529183019183016156b9565b600080604083850312156156e357600080fd5b82516001600160401b03808211156156fa57600080fd5b818501915085601f83011261570e57600080fd5b8151602061571e614d2283614cde565b82815260059290921b8401810191818101908984111561573d57600080fd5b948201945b838610156157645785516157558161488f565b82529482019490820190615742565b9188015191965090935050508082111561577d57600080fd5b5061513e85828601615675565b6000821982111561579d5761579d615327565b500190565b6000828210156157b4576157b4615327565b500390565b6001600160a01b039384168152919092166020820152604081019190915260600190565b828152604060208201526000614ec060408301846155d5565b60006020828403121561580857600080fd5b8135614a1c81614cc1565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561583e8161488f565b6158488183615813565b5060018101602083013561585b8161488f565b6158658183615813565b50604083013561587481614cc1565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006117513683614dd0565b6020808252606e908201526000805160206159c883398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b82815260006020604081840152835180604085015260005b8181101561595e57858101830151858201606001528201615942565b81811115615970576000606083870101525b50601f01601f191692909201606001949350505050565b60006020828403121561599957600080fd5b81516001600160e01b031981168114614a1c57600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a26469706673582212206135bab950ddbddc922f1a8452b63a16042cbd2a0ef737518f028b20f30b3ca864736f6c634300080c0033", } // ContractDelegationManagerABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/EigenDABlobVerifier/binding.go b/contracts/bindings/EigenDABlobVerifier/binding.go index 03497d104f..a608c701ca 100644 --- a/contracts/bindings/EigenDABlobVerifier/binding.go +++ b/contracts/bindings/EigenDABlobVerifier/binding.go @@ -158,7 +158,7 @@ type VersionedBlobParams struct { // ContractEigenDABlobVerifierMetaData contains all meta data concerning the ContractEigenDABlobVerifier contract. var ContractEigenDABlobVerifierMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_eigenDAThresholdRegistry\",\"type\":\"address\",\"internalType\":\"contractIEigenDAThresholdRegistry\"},{\"name\":\"_eigenDABatchMetadataStorage\",\"type\":\"address\",\"internalType\":\"contractIEigenDABatchMetadataStorage\"},{\"name\":\"_eigenDASignatureVerifier\",\"type\":\"address\",\"internalType\":\"contractIEigenDASignatureVerifier\"},{\"name\":\"_eigenDARelayRegistry\",\"type\":\"address\",\"internalType\":\"contractIEigenDARelayRegistry\"},{\"name\":\"_operatorStateRetriever\",\"type\":\"address\",\"internalType\":\"contractOperatorStateRetriever\"},{\"name\":\"_registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"eigenDABatchMetadataStorage\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenDABatchMetadataStorage\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenDARelayRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenDARelayRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenDASignatureVerifier\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenDASignatureVerifier\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenDAThresholdRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenDAThresholdRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBlobParams\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structVersionedBlobParams\",\"components\":[{\"name\":\"maxNumOperators\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"numChunks\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"codingRate\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDefaultSecurityThresholdsV2\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getIsQuorumRequired\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getNonSignerStakesAndSignature\",\"inputs\":[{\"name\":\"signedBatch\",\"type\":\"tuple\",\"internalType\":\"structSignedBatch\",\"components\":[{\"name\":\"batchHeader\",\"type\":\"tuple\",\"internalType\":\"structBatchHeaderV2\",\"components\":[{\"name\":\"batchRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"attestation\",\"type\":\"tuple\",\"internalType\":\"structAttestation\",\"components\":[{\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApks\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"quorumNumbers\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}]}]}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structNonSignerStakesAndSignature\",\"components\":[{\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApks\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\",\"internalType\":\"uint32[][]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumAdversaryThresholdPercentage\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumConfirmationThresholdPercentage\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"operatorStateRetriever\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractOperatorStateRetriever\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumAdversaryThresholdPercentages\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumConfirmationThresholdPercentages\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumNumbersRequired\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registryCoordinator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"verifyBlobSecurityParams\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"securityThresholds\",\"type\":\"tuple\",\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"outputs\":[],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"verifyBlobSecurityParams\",\"inputs\":[{\"name\":\"blobParams\",\"type\":\"tuple\",\"internalType\":\"structVersionedBlobParams\",\"components\":[{\"name\":\"maxNumOperators\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"numChunks\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"codingRate\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"securityThresholds\",\"type\":\"tuple\",\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"outputs\":[],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"verifyBlobV1\",\"inputs\":[{\"name\":\"blobHeader\",\"type\":\"tuple\",\"internalType\":\"structBlobHeader\",\"components\":[{\"name\":\"commitment\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"dataLength\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"quorumBlobParams\",\"type\":\"tuple[]\",\"internalType\":\"structQuorumBlobParam[]\",\"components\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThresholdPercentage\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"confirmationThresholdPercentage\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"chunkLength\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}]},{\"name\":\"blobVerificationProof\",\"type\":\"tuple\",\"internalType\":\"structBlobVerificationProof\",\"components\":[{\"name\":\"batchId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"blobIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"batchMetadata\",\"type\":\"tuple\",\"internalType\":\"structBatchMetadata\",\"components\":[{\"name\":\"batchHeader\",\"type\":\"tuple\",\"internalType\":\"structBatchHeader\",\"components\":[{\"name\":\"blobHeadersRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signedStakeForQuorums\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"signatoryRecordHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"confirmationBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"inclusionProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"quorumIndices\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"verifyBlobV2\",\"inputs\":[{\"name\":\"batchHeader\",\"type\":\"tuple\",\"internalType\":\"structBatchHeaderV2\",\"components\":[{\"name\":\"batchRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"blobVerificationProof\",\"type\":\"tuple\",\"internalType\":\"structBlobVerificationProofV2\",\"components\":[{\"name\":\"blobCertificate\",\"type\":\"tuple\",\"internalType\":\"structBlobCertificate\",\"components\":[{\"name\":\"blobHeader\",\"type\":\"tuple\",\"internalType\":\"structBlobHeaderV2\",\"components\":[{\"name\":\"version\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"commitment\",\"type\":\"tuple\",\"internalType\":\"structBlobCommitment\",\"components\":[{\"name\":\"commitment\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"lengthCommitment\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"lengthProof\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"dataLength\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"paymentHeaderHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"relayKeys\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}]},{\"name\":\"blobIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"inclusionProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"nonSignerStakesAndSignature\",\"type\":\"tuple\",\"internalType\":\"structNonSignerStakesAndSignature\",\"components\":[{\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApks\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\",\"internalType\":\"uint32[][]\"}]}],\"outputs\":[],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"verifyBlobV2FromSignedBatch\",\"inputs\":[{\"name\":\"signedBatch\",\"type\":\"tuple\",\"internalType\":\"structSignedBatch\",\"components\":[{\"name\":\"batchHeader\",\"type\":\"tuple\",\"internalType\":\"structBatchHeaderV2\",\"components\":[{\"name\":\"batchRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"attestation\",\"type\":\"tuple\",\"internalType\":\"structAttestation\",\"components\":[{\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApks\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"quorumNumbers\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}]}]},{\"name\":\"blobVerificationProof\",\"type\":\"tuple\",\"internalType\":\"structBlobVerificationProofV2\",\"components\":[{\"name\":\"blobCertificate\",\"type\":\"tuple\",\"internalType\":\"structBlobCertificate\",\"components\":[{\"name\":\"blobHeader\",\"type\":\"tuple\",\"internalType\":\"structBlobHeaderV2\",\"components\":[{\"name\":\"version\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"commitment\",\"type\":\"tuple\",\"internalType\":\"structBlobCommitment\",\"components\":[{\"name\":\"commitment\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"lengthCommitment\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"lengthProof\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"dataLength\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"paymentHeaderHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"relayKeys\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}]},{\"name\":\"blobIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"inclusionProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"verifyBlobsV1\",\"inputs\":[{\"name\":\"blobHeaders\",\"type\":\"tuple[]\",\"internalType\":\"structBlobHeader[]\",\"components\":[{\"name\":\"commitment\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"dataLength\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"quorumBlobParams\",\"type\":\"tuple[]\",\"internalType\":\"structQuorumBlobParam[]\",\"components\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThresholdPercentage\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"confirmationThresholdPercentage\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"chunkLength\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}]},{\"name\":\"blobVerificationProofs\",\"type\":\"tuple[]\",\"internalType\":\"structBlobVerificationProof[]\",\"components\":[{\"name\":\"batchId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"blobIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"batchMetadata\",\"type\":\"tuple\",\"internalType\":\"structBatchMetadata\",\"components\":[{\"name\":\"batchHeader\",\"type\":\"tuple\",\"internalType\":\"structBatchHeader\",\"components\":[{\"name\":\"blobHeadersRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signedStakeForQuorums\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"signatoryRecordHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"confirmationBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"inclusionProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"quorumIndices\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"DefaultSecurityThresholdsV2Updated\",\"inputs\":[{\"name\":\"previousDefaultSecurityThresholdsV2\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"newDefaultSecurityThresholdsV2\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumAdversaryThresholdPercentagesUpdated\",\"inputs\":[{\"name\":\"previousQuorumAdversaryThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"newQuorumAdversaryThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumConfirmationThresholdPercentagesUpdated\",\"inputs\":[{\"name\":\"previousQuorumConfirmationThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"newQuorumConfirmationThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumNumbersRequiredUpdated\",\"inputs\":[{\"name\":\"previousQuorumNumbersRequired\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"newQuorumNumbersRequired\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"VersionedBlobParamsAdded\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint16\",\"indexed\":true,\"internalType\":\"uint16\"},{\"name\":\"versionedBlobParams\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structVersionedBlobParams\",\"components\":[{\"name\":\"maxNumOperators\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"numChunks\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"codingRate\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"anonymous\":false}]", - Bin: "0x6101406040523480156200001257600080fd5b50604051620043823803806200438283398101604081905262000035916200007e565b6001600160a01b0395861660805293851660a05291841660c052831660e052821661010052166101205262000112565b6001600160a01b03811681146200007b57600080fd5b50565b60008060008060008060c087890312156200009857600080fd5b8651620000a58162000065565b6020880151909650620000b88162000065565b6040880151909550620000cb8162000065565b6060880151909450620000de8162000065565b6080880151909350620000f18162000065565b60a0880151909250620001048162000065565b809150509295509295509295565b60805160a05160c05160e0516101005161012051614186620001fc6000396000818161025f015281816108720152610a2d0152600081816101f9015281816108510152610a0c0152600081816102860152818161049e015261083001526000818161035a0152818161047d015261080f015260008181610238015281816106f501526107530152600081816103a1015281816103de0152818161045c01528181610529015281816105d701528181610646015281816106d4015281816107320152818161078d015281816107ee015281816108bc01528181610933015261098001526141866000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80638d67b909116100b8578063e15234ff1161007c578063e15234ff14610311578063ee6c3bcf14610319578063ef6355291461032c578063efd4532b14610355578063f25de3f81461037c578063f8c668141461039c57600080fd5b80638d67b909146102bd57806392ce4ab2146102d0578063b60e9662146102e3578063bafa9107146102f6578063ca7fd71d146102fe57600080fd5b80634ca22c3f116100ff5780634ca22c3f146101f4578063640f65d9146102335780636d14a9871461025a57806372276443146102815780638687feae146102a857600080fd5b8063048886d21461013c5780630a4715f414610164578063127af44d146101795780631429c7c21461018c5780632ecfe72b146101b1575b600080fd5b61014f61014a3660046125cc565b6103c3565b60405190151581526020015b60405180910390f35b610177610172366004612608565b610457565b005b6101776101873660046127db565b6104f8565b61019f61019a3660046125cc565b61050e565b60405160ff909116815260200161015b565b6101c46101bf36600461280f565b61059d565b60408051825163ffffffff9081168252602080850151909116908201529181015160ff169082015260600161015b565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161015b565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b6102b0610642565b60405161015b9190612882565b6101776102cb366004612895565b6106cf565b6101776102de366004612924565b610723565b6101776102f13660046129dc565b61072d565b6102b0610789565b61017761030c366004612a47565b6107e9565b6102b06108b8565b61019f6103273660046125cc565b610918565b61033461096a565b60408051825160ff908116825260209384015116928101929092520161015b565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61038f61038a366004612aaa565b6109ff565b60405161015b9190612ccd565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b604051630244436960e11b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063048886d290602401602060405180830381865afa15801561042d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104519190612ce0565b92915050565b6104f37f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006104cc36889003880188612d30565b6104d587612f10565b6104de87613179565b6104e661096a565b6104ee6108b8565b610a5a565b505050565b61050a6105048361059d565b82610e78565b5050565b604051630a14e3e160e11b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631429c7c2906024015b602060405180830381865afa158015610579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045191906132a1565b60408051606081018252600080825260208201819052818301529051632ecfe72b60e01b815261ffff831660048201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632ecfe72b90602401606060405180830381865afa15801561061e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045191906132be565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638687feae6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156106a2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106ca919081019061332f565b905090565b61050a7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000848461071e6108b8565b611029565b61050a8282610e78565b6107837f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008686868661077e6108b8565b611562565b50505050565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bafa91076040518163ffffffff1660e01b8152600401600060405180830381865afa1580156106a2573d6000803e3d6000fd5b61050a7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061089a8861339c565b6108a388612f10565b6108ab61096a565b6108b36108b8565b611db0565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e15234ff6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156106a2573d6000803e3d6000fd5b60405163ee6c3bcf60e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ee6c3bcf9060240161055c565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ef6355296040518163ffffffff1660e01b81526004016040805180830381865afa1580156109db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ca9190613493565b610a07612511565b6104517f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610a558561339c565b611ddf565b610aac84604001518660000151610a748760000151611ff5565b604051602001610a8691815260200190565b60405160208183030381529060405280519060200120876020015163ffffffff16612035565b610b2a5760405162461bcd60e51b8152602060048201526050602482015260008051602061413183398151915260448201527f72696679426c6f625632466f7251756f72756d733a20696e636c7573696f6e2060648201526f1c1c9bdbd9881a5cc81a5b9d985b1a5960821b608482015260a4015b60405180910390fd5b600080886001600160a01b0316636efb4636610b458961204d565b885151602090810151908b01516040516001600160e01b031960e086901b168152610b77939291908b906004016134d4565b600060405180830381865afa158015610b94573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bbc9190810190613587565b91509150610bd288876000015160200151612078565b85515151604051632ecfe72b60e01b815261ffff9091166004820152610c4d906001600160a01b038c1690632ecfe72b90602401606060405180830381865afa158015610c23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4791906132be565b85610e78565b6000805b8751516020015151811015610db857856000015160ff1684602001518281518110610c7e57610c7e613623565b6020026020010151610c90919061364f565b6001600160601b0316606485600001518381518110610cb157610cb1613623565b60200260200101516001600160601b0316610ccc919061367e565b1015610d735760405162461bcd60e51b8152602060048201526076602482015260008051602061413183398151915260448201527f72696679426c6f625632466f7251756f72756d733a207369676e61746f72696560648201527f7320646f206e6f74206f776e206174206c65617374207468726573686f6c642060848201527570657263656e74616765206f6620612071756f72756d60501b60a482015260c401610b21565b875151602001518051610da491849184908110610d9257610d92613623565b0160200151600160f89190911c1b1790565b915080610db08161369d565b915050610c51565b50610dcc610dc5856121ab565b8281161490565b610e6b5760405162461bcd60e51b8152602060048201526070602482015260008051602061413183398151915260448201527f72696679426c6f625632466f7251756f72756d733a207265717569726564207160648201527f756f72756d7320617265206e6f74206120737562736574206f6620746865206360848201526f6f6e6669726d65642071756f72756d7360801b60a482015260c401610b21565b5050505050505050505050565b806020015160ff16816000015160ff1611610f2d5760405162461bcd60e51b8152602060048201526075602482015260008051602061413183398151915260448201527f72696679426c6f625365637572697479506172616d733a20636f6e6669726d6160648201527f74696f6e5468726573686f6c64206d7573742062652067726561746572207468608482015274185b8818591d995c9cd85c9e551a1c995cda1bdb19605a1b60a482015260c401610b21565b60208101518151600091610f40916136b8565b60ff1690506000836020015163ffffffff16846040015160ff1683620f4240610f6991906136f1565b610f7391906136f1565b610f7f90612710613705565b610f89919061367e565b8451909150610f9a9061271061371c565b63ffffffff168110156107835760405162461bcd60e51b8152602060048201526058602482015260008051602061413183398151915260448201527f72696679426c6f625365637572697479506172616d733a20736563757269747960648201527f20617373756d7074696f6e7320617265206e6f74206d65740000000000000000608482015260a401610b21565b6001600160a01b03841663eccbbfc9611045602085018561373f565b6040516001600160e01b031960e084901b16815263ffffffff919091166004820152602401602060405180830381865afa158015611087573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ab919061375c565b6110c96110bb6040850185613775565b6110c490613795565b612338565b146110e65760405162461bcd60e51b8152600401610b219061386c565b61119a6110f660608401846138de565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611138925050506040850185613775565b6111429080613924565b3561115461114f8761393a565b6123a9565b60405160200161116691815260200190565b6040516020818303038152906040528051906020012085602001602081019061118f919061373f565b63ffffffff16612035565b6111b65760405162461bcd60e51b8152600401610b2190613a59565b6000805b6111c76060860186613abb565b9050811015611531576111dd6060860186613abb565b828181106111ed576111ed613623565b61120392602060809092020190810191506125cc565b60ff166112136040860186613775565b61121d9080613924565b61122b9060208101906138de565b61123860808801886138de565b8581811061124857611248613623565b919091013560f81c905081811061126157611261613623565b9050013560f81c60f81b60f81c60ff161461128e5760405162461bcd60e51b8152600401610b2190613b04565b61129b6060860186613abb565b828181106112ab576112ab613623565b90506080020160200160208101906112c391906125cc565b60ff166112d36060870187613abb565b838181106112e3576112e3613623565b90506080020160400160208101906112fb91906125cc565b60ff161161131b5760405162461bcd60e51b8152600401610b2190613b67565b6001600160a01b038716631429c7c26113376060880188613abb565b8481811061134757611347613623565b61135d92602060809092020190810191506125cc565b6040516001600160e01b031960e084901b16815260ff9091166004820152602401602060405180830381865afa15801561139b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113bf91906132a1565b60ff166113cf6060870187613abb565b838181106113df576113df613623565b90506080020160400160208101906113f791906125cc565b60ff1610156114185760405162461bcd60e51b8152600401610b2190613bd8565b6114256060860186613abb565b8281811061143557611435613623565b905060800201604001602081019061144d91906125cc565b60ff1661145d6040860186613775565b6114679080613924565b6114759060408101906138de565b61148260808801886138de565b8581811061149257611492613623565b919091013560f81c90508181106114ab576114ab613623565b9050013560f81c60f81b60f81c60ff1610156114d95760405162461bcd60e51b8152600401610b2190613bd8565b61151d826114ea6060880188613abb565b848181106114fa576114fa613623565b61151092602060809092020190810191506125cc565b600160ff919091161b1790565b9150806115298161369d565b9150506111ba565b5061153e610dc5836121ab565b61155a5760405162461bcd60e51b8152600401610b2190613c49565b505050505050565b8382146115ff5760405162461bcd60e51b815260206004820152606b602482015260008051602061413183398151915260448201527f72696679426c6f6273466f7251756f72756d733a20626c6f624865616465727360648201527f20616e6420626c6f62566572696669636174696f6e50726f6f6673206c656e6760848201526a0e8d040dad2e6dac2e8c6d60ab1b60a482015260c401610b21565b6000876001600160a01b031663bafa91076040518163ffffffff1660e01b8152600401600060405180830381865afa15801561163f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611667919081019061332f565b905060005b85811015611da557876001600160a01b031663eccbbfc986868481811061169557611695613623565b90506020028101906116a79190613cd1565b6116b590602081019061373f565b6040516001600160e01b031960e084901b16815263ffffffff919091166004820152602401602060405180830381865afa1580156116f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171b919061375c565b61175086868481811061173057611730613623565b90506020028101906117429190613cd1565b6110bb906040810190613775565b1461176d5760405162461bcd60e51b8152600401610b219061386c565b6118a385858381811061178257611782613623565b90506020028101906117949190613cd1565b6117a29060608101906138de565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508992508891508590508181106117eb576117eb613623565b90506020028101906117fd9190613cd1565b61180b906040810190613775565b6118159080613924565b356118468a8a8681811061182b5761182b613623565b905060200281019061183d9190613924565b61114f9061393a565b60405160200161185891815260200190565b6040516020818303038152906040528051906020012088888681811061188057611880613623565b90506020028101906118929190613cd1565b61118f90604081019060200161373f565b6118bf5760405162461bcd60e51b8152600401610b2190613a59565b6000805b8888848181106118d5576118d5613623565b90506020028101906118e79190613924565b6118f5906060810190613abb565b9050811015611d6b5788888481811061191057611910613623565b90506020028101906119229190613924565b611930906060810190613abb565b8281811061194057611940613623565b61195692602060809092020190810191506125cc565b60ff1687878581811061196b5761196b613623565b905060200281019061197d9190613cd1565b61198b906040810190613775565b6119959080613924565b6119a39060208101906138de565b8989878181106119b5576119b5613623565b90506020028101906119c79190613cd1565b6119d59060808101906138de565b858181106119e5576119e5613623565b919091013560f81c90508181106119fe576119fe613623565b9050013560f81c60f81b60f81c60ff1614611a2b5760405162461bcd60e51b8152600401610b2190613b04565b888884818110611a3d57611a3d613623565b9050602002810190611a4f9190613924565b611a5d906060810190613abb565b82818110611a6d57611a6d613623565b9050608002016020016020810190611a8591906125cc565b60ff16898985818110611a9a57611a9a613623565b9050602002810190611aac9190613924565b611aba906060810190613abb565b83818110611aca57611aca613623565b9050608002016040016020810190611ae291906125cc565b60ff1611611b025760405162461bcd60e51b8152600401610b2190613b67565b83898985818110611b1557611b15613623565b9050602002810190611b279190613924565b611b35906060810190613abb565b83818110611b4557611b45613623565b611b5b92602060809092020190810191506125cc565b60ff1681518110611b6e57611b6e613623565b016020015160f81c898985818110611b8857611b88613623565b9050602002810190611b9a9190613924565b611ba8906060810190613abb565b83818110611bb857611bb8613623565b9050608002016040016020810190611bd091906125cc565b60ff161015611bf15760405162461bcd60e51b8152600401610b2190613bd8565b888884818110611c0357611c03613623565b9050602002810190611c159190613924565b611c23906060810190613abb565b82818110611c3357611c33613623565b9050608002016040016020810190611c4b91906125cc565b60ff16878785818110611c6057611c60613623565b9050602002810190611c729190613cd1565b611c80906040810190613775565b611c8a9080613924565b611c989060408101906138de565b898987818110611caa57611caa613623565b9050602002810190611cbc9190613cd1565b611cca9060808101906138de565b85818110611cda57611cda613623565b919091013560f81c9050818110611cf357611cf3613623565b9050013560f81c60f81b60f81c60ff161015611d215760405162461bcd60e51b8152600401610b2190613bd8565b611d57828a8a86818110611d3757611d37613623565b9050602002810190611d499190613924565b6114ea906060810190613abb565b915080611d638161369d565b9150506118c3565b50611d78610dc5856121ab565b611d945760405162461bcd60e51b8152600401610b2190613c49565b50611d9e8161369d565b905061166c565b505050505050505050565b6000611dbd878787611ddf565b9050611dd38a8a8a886000015188868989610a5a565b50505050505050505050565b611de7612511565b602082015151516000906001600160401b03811115611e0857611e086126a2565b604051908082528060200260200182016040528015611e31578160200160208202803683370190505b50905060005b60208401515151811015611eae57611e818460200151600001518281518110611e6257611e62613623565b6020026020010151805160009081526020918201519091526040902090565b828281518110611e9357611e93613623565b6020908102919091010152611ea78161369d565b9050611e37565b50606060005b84602001516080015151811015611f1b57818560200151608001518281518110611ee057611ee0613623565b6020026020010151604051602001611ef9929190613ce7565b604051602081830303815290604052915080611f149061369d565b9050611eb4565b508351602001516040516313dce7dd60e21b81526000916001600160a01b03891691634f739f7491611f56918a919087908990600401613d19565b600060405180830381865afa158015611f73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f9b9190810190613e6c565b805185526020958601805151878701528051870151604080880191909152815160609081015181890152915181015160808801529682015160a08701529581015160c0860152949094015160e08401525090949350505050565b600061200482600001516123bc565b602080840151604051612018939201613f44565b604051602081830303815290604052805190602001209050919050565b60008361204386858561240e565b1495945050505050565b60008160405160200161201891908151815260209182015163ffffffff169181019190915260400190565b60005b81518110156104f35760006001600160a01b0316836001600160a01b031663b5a872da8484815181106120b0576120b0613623565b60200260200101516040518263ffffffff1660e01b81526004016120e0919063ffffffff91909116815260200190565b602060405180830381865afa1580156120fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121219190613f5d565b6001600160a01b0316141561219b5760405162461bcd60e51b8152602060048201526046602482015260008051602061413183398151915260448201527f7269667952656c61794b6579735365743a2072656c6179206b6579206973206e6064820152651bdd081cd95d60d21b608482015260a401610b21565b6121a48161369d565b905061207b565b6000610100825111156122345760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610b21565b815161224257506000919050565b6000808360008151811061225857612258613623565b0160200151600160f89190911c81901b92505b845181101561232f5784818151811061228657612286613623565b0160200151600160f89190911c1b915082821161231b5760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610b21565b918117916123288161369d565b905061226b565b50909392505050565b600061045182600001516040516020016123529190613f86565b60408051808303601f1901815282825280516020918201208682015187840151838601929092528484015260e01b6001600160e01b0319166060840152815160448185030181526064909301909152815191012090565b6000816040516020016120189190613fe6565b60008160000151826020015183604001516040516020016123df9392919061408b565b60408051601f198184030181528282528051602091820120606080870151928501919091529183015201612018565b60006020845161241e9190614104565b156124a55760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a401610b21565b8260205b85518111612508576124bc600285614104565b6124dd578160005280860151602052604060002091506002840493506124f6565b8086015160005281602052604060002091506002840493505b612501602082614118565b90506124a9565b50949350505050565b60405180610100016040528060608152602001606081526020016060815260200161253a612577565b815260200161255c604051806040016040528060008152602001600081525090565b81526020016060815260200160608152602001606081525090565b604051806040016040528061258a61259c565b815260200161259761259c565b905290565b60405180604001604052806002906020820280368337509192915050565b60ff811681146125c957600080fd5b50565b6000602082840312156125de57600080fd5b81356125e9816125ba565b9392505050565b60006060828403121561260257600080fd5b50919050565b6000806000838503608081121561261e57600080fd5b604081121561262c57600080fd5b5083925060408401356001600160401b038082111561264a57600080fd5b612656878388016125f0565b9350606086013591508082111561266c57600080fd5b508401610180818703121561268057600080fd5b809150509250925092565b803561ffff8116811461269d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156126da576126da6126a2565b60405290565b604051606081016001600160401b03811182821017156126da576126da6126a2565b604051608081016001600160401b03811182821017156126da576126da6126a2565b60405161010081016001600160401b03811182821017156126da576126da6126a2565b60405160a081016001600160401b03811182821017156126da576126da6126a2565b604051601f8201601f191681016001600160401b0381118282101715612791576127916126a2565b604052919050565b6000604082840312156127ab57600080fd5b6127b36126b8565b905081356127c0816125ba565b815260208201356127d0816125ba565b602082015292915050565b600080606083850312156127ee57600080fd5b6127f78361268b565b91506128068460208501612799565b90509250929050565b60006020828403121561282157600080fd5b6125e98261268b565b60005b8381101561284557818101518382015260200161282d565b838111156107835750506000910152565b6000815180845261286e81602086016020860161282a565b601f01601f19169290920160200192915050565b6020815260006125e96020830184612856565b600080604083850312156128a857600080fd5b82356001600160401b03808211156128bf57600080fd5b90840190608082870312156128d357600080fd5b909250602084013590808211156128e957600080fd5b50830160a081860312156128fc57600080fd5b809150509250929050565b63ffffffff811681146125c957600080fd5b803561269d81612907565b60008082840360a081121561293857600080fd5b606081121561294657600080fd5b5061294f6126e0565b833561295a81612907565b8152602084013561296a81612907565b6020820152604084013561297d816125ba565b604082015291506128068460608501612799565b60008083601f8401126129a357600080fd5b5081356001600160401b038111156129ba57600080fd5b6020830191508360208260051b85010111156129d557600080fd5b9250929050565b600080600080604085870312156129f257600080fd5b84356001600160401b0380821115612a0957600080fd5b612a1588838901612991565b90965094506020870135915080821115612a2e57600080fd5b50612a3b87828801612991565b95989497509550505050565b60008060408385031215612a5a57600080fd5b82356001600160401b0380821115612a7157600080fd5b612a7d868387016125f0565b93506020850135915080821115612a9357600080fd5b50612aa0858286016125f0565b9150509250929050565b600060208284031215612abc57600080fd5b81356001600160401b03811115612ad257600080fd5b612ade848285016125f0565b949350505050565b600081518084526020808501945080840160005b83811015612b1c57815163ffffffff1687529582019590820190600101612afa565b509495945050505050565b600081518084526020808501945080840160005b83811015612b1c57612b5887835180518252602090810151910152565b6040969096019590820190600101612b3b565b8060005b6002811015610783578151845260209384019390910190600101612b6f565b612b99828251612b6b565b60208101516104f36040840182612b6b565b600081518084526020808501808196508360051b8101915082860160005b85811015612bf3578284038952612be1848351612ae6565b98850198935090840190600101612bc9565b5091979650505050505050565b60006101808251818552612c1682860182612ae6565b91505060208301518482036020860152612c308282612b27565b91505060408301518482036040860152612c4a8282612b27565b9150506060830151612c5f6060860182612b8e565b506080830151805160e08601526020015161010085015260a0830151848203610120860152612c8e8282612ae6565b91505060c0830151848203610140860152612ca98282612ae6565b91505060e0830151848203610160860152612cc48282612bab565b95945050505050565b6020815260006125e96020830184612c00565b600060208284031215612cf257600080fd5b815180151581146125e957600080fd5b600060408284031215612d1457600080fd5b612d1c6126b8565b90508135815260208201356127d081612907565b600060408284031215612d4257600080fd5b6125e98383612d02565b60006001600160401b03821115612d6557612d656126a2565b50601f01601f191660200190565b600082601f830112612d8457600080fd5b8135612d97612d9282612d4c565b612769565b818152846020838601011115612dac57600080fd5b816020850160208301376000918101602001919091529392505050565b600060408284031215612ddb57600080fd5b612de36126b8565b9050813581526020820135602082015292915050565b600082601f830112612e0a57600080fd5b612e126126b8565b806040840185811115612e2457600080fd5b845b81811015612e3e578035845260209384019301612e26565b509095945050505050565b600060808284031215612e5b57600080fd5b612e636126b8565b9050612e6f8383612df9565b81526127d08360408401612df9565b60006001600160401b03821115612e9757612e976126a2565b5060051b60200190565b600082601f830112612eb257600080fd5b81356020612ec2612d9283612e7e565b82815260059290921b84018101918181019086841115612ee157600080fd5b8286015b84811015612f05578035612ef881612907565b8352918301918301612ee5565b509695505050505050565b600060608236031215612f2257600080fd5b612f2a6126e0565b82356001600160401b0380821115612f4157600080fd5b81850191506040808336031215612f5757600080fd5b612f5f6126b8565b833583811115612f6e57600080fd5b8401368190036101c0811215612f8357600080fd5b612f8b612702565b612f948361268b565b815260208084013587811115612fa957600080fd5b612fb536828701612d73565b8383015250610160603f1984011215612fcd57600080fd5b612fd5612702565b9250612fe336878601612dc9565b8352612ff23660808601612e49565b81840152613004366101008601612e49565b8684015261018084013561301781612907565b8060608501525082868301526101a084013560608301528185528088013593508684111561304457600080fd5b61305036858a01612ea1565b81860152848952613062818c01612919565b90890152505050508581013592508183111561307d57600080fd5b61308936848801612d73565b9084015250909392505050565b600082601f8301126130a757600080fd5b813560206130b7612d9283612e7e565b82815260069290921b840181019181810190868411156130d657600080fd5b8286015b84811015612f05576130ec8882612dc9565b8352918301916040016130da565b600082601f83011261310b57600080fd5b8135602061311b612d9283612e7e565b82815260059290921b8401810191818101908684111561313a57600080fd5b8286015b84811015612f055780356001600160401b0381111561315d5760008081fd5b61316b8986838b0101612ea1565b84525091830191830161313e565b6000610180823603121561318c57600080fd5b613194612724565b82356001600160401b03808211156131ab57600080fd5b6131b736838701612ea1565b835260208501359150808211156131cd57600080fd5b6131d936838701613096565b602084015260408501359150808211156131f257600080fd5b6131fe36838701613096565b60408401526132103660608701612e49565b60608401526132223660e08701612dc9565b608084015261012085013591508082111561323c57600080fd5b61324836838701612ea1565b60a084015261014085013591508082111561326257600080fd5b61326e36838701612ea1565b60c084015261016085013591508082111561328857600080fd5b50613295368286016130fa565b60e08301525092915050565b6000602082840312156132b357600080fd5b81516125e9816125ba565b6000606082840312156132d057600080fd5b604051606081018181106001600160401b03821117156132f2576132f26126a2565b604052825161330081612907565b8152602083015161331081612907565b60208201526040830151613323816125ba565b60408201529392505050565b60006020828403121561334157600080fd5b81516001600160401b0381111561335757600080fd5b8201601f8101841361336857600080fd5b8051613376612d9282612d4c565b81815285602083850101111561338b57600080fd5b612cc482602083016020860161282a565b6000606082360312156133ae57600080fd5b6133b66126b8565b6133c03684612d02565b815260408301356001600160401b03808211156133dc57600080fd5b818501915061012082360312156133f257600080fd5b6133fa612747565b82358281111561340957600080fd5b61341536828601613096565b82525060208301358281111561342a57600080fd5b61343636828601613096565b6020830152506134493660408501612dc9565b604082015261345b3660808501612e49565b60608201526101008301358281111561347357600080fd5b61347f36828601612ea1565b608083015250602084015250909392505050565b6000604082840312156134a557600080fd5b6134ad6126b8565b82516134b8816125ba565b815260208301516134c8816125ba565b60208201529392505050565b8481526080602082015260006134ed6080830186612856565b63ffffffff85166040840152828103606084015261350b8185612c00565b979650505050505050565b600082601f83011261352757600080fd5b81516020613537612d9283612e7e565b82815260059290921b8401810191818101908684111561355657600080fd5b8286015b84811015612f055780516001600160601b038116811461357a5760008081fd5b835291830191830161355a565b6000806040838503121561359a57600080fd5b82516001600160401b03808211156135b157600080fd5b90840190604082870312156135c557600080fd5b6135cd6126b8565b8251828111156135dc57600080fd5b6135e888828601613516565b8252506020830151828111156135fd57600080fd5b61360988828601613516565b602083015250809450505050602083015190509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160601b038083168185168183048111821515161561367557613675613639565b02949350505050565b600081600019048311821515161561369857613698613639565b500290565b60006000198214156136b1576136b1613639565b5060010190565b600060ff821660ff8416808210156136d2576136d2613639565b90039392505050565b634e487b7160e01b600052601260045260246000fd5b600082613700576137006136db565b500490565b60008282101561371757613717613639565b500390565b600063ffffffff8083168185168183048111821515161561367557613675613639565b60006020828403121561375157600080fd5b81356125e981612907565b60006020828403121561376e57600080fd5b5051919050565b60008235605e1983360301811261378b57600080fd5b9190910192915050565b6000606082360312156137a757600080fd5b6137af6126e0565b82356001600160401b03808211156137c657600080fd5b8185019150608082360312156137db57600080fd5b6137e3612702565b823581526020830135828111156137f957600080fd5b61380536828601612d73565b60208301525060408301358281111561381d57600080fd5b61382936828601612d73565b6040830152506060830135925061383f83612907565b8260608201528084525050506020830135602082015261386160408401612919565b604082015292915050565b6020808252606090820181905260008051602061413183398151915260408301527f72696679426c6f62466f7251756f72756d733a2062617463684d657461646174908201527f6120646f6573206e6f74206d617463682073746f726564206d65746164617461608082015260a00190565b6000808335601e198436030181126138f557600080fd5b8301803591506001600160401b0382111561390f57600080fd5b6020019150368190038213156129d557600080fd5b60008235607e1983360301811261378b57600080fd5b6000608080833603121561394d57600080fd5b6139556126e0565b61395f3685612dc9565b815260408085013561397081612907565b6020818185015260609150818701356001600160401b0381111561399357600080fd5b870136601f8201126139a457600080fd5b80356139b2612d9282612e7e565b81815260079190911b820183019083810190368311156139d157600080fd5b928401925b82841015613a45578884360312156139ee5760008081fd5b6139f6612702565b8435613a01816125ba565b815284860135613a10816125ba565b8187015284880135613a21816125ba565b8189015284870135613a3281612907565b81880152825292880192908401906139d6565b958701959095525093979650505050505050565b6020808252604e9082015260008051602061413183398151915260408201527f72696679426c6f62466f7251756f72756d733a20696e636c7573696f6e20707260608201526d1bdbd9881a5cc81a5b9d985b1a5960921b608082015260a00190565b6000808335601e19843603018112613ad257600080fd5b8301803591506001600160401b03821115613aec57600080fd5b6020019150600781901b36038213156129d557600080fd5b6020808252604f9082015260008051602061413183398151915260408201527f72696679426c6f62466f7251756f72756d733a2071756f72756d4e756d62657260608201526e040c8decae640dcdee840dac2e8c6d608b1b608082015260a00190565b602080825260579082015260008051602061413183398151915260408201527f72696679426c6f62466f7251756f72756d733a207468726573686f6c6420706560608201527f7263656e746167657320617265206e6f742076616c6964000000000000000000608082015260a00190565b6020808252605e9082015260008051602061413183398151915260408201527f72696679426c6f62466f7251756f72756d733a20636f6e6669726d6174696f6e60608201527f5468726573686f6c6450657263656e74616765206973206e6f74206d65740000608082015260a00190565b6020808252606e9082015260008051602061413183398151915260408201527f72696679426c6f62466f7251756f72756d733a2072657175697265642071756f60608201527f72756d7320617265206e6f74206120737562736574206f662074686520636f6e60808201526d6669726d65642071756f72756d7360901b60a082015260c00190565b60008235609e1983360301811261378b57600080fd5b60008351613cf981846020880161282a565b60f89390931b6001600160f81b0319169190920190815260010192915050565b60018060a01b03851681526000602063ffffffff86168184015260806040840152613d476080840186612856565b838103606085015284518082528286019183019060005b81811015613d7a57835183529284019291840191600101613d5e565b50909998505050505050505050565b600082601f830112613d9a57600080fd5b81516020613daa612d9283612e7e565b82815260059290921b84018101918181019086841115613dc957600080fd5b8286015b84811015612f05578051613de081612907565b8352918301918301613dcd565b600082601f830112613dfe57600080fd5b81516020613e0e612d9283612e7e565b82815260059290921b84018101918181019086841115613e2d57600080fd5b8286015b84811015612f055780516001600160401b03811115613e505760008081fd5b613e5e8986838b0101613d89565b845250918301918301613e31565b600060208284031215613e7e57600080fd5b81516001600160401b0380821115613e9557600080fd5b9083019060808286031215613ea957600080fd5b613eb1612702565b825182811115613ec057600080fd5b613ecc87828601613d89565b825250602083015182811115613ee157600080fd5b613eed87828601613d89565b602083015250604083015182811115613f0557600080fd5b613f1187828601613d89565b604083015250606083015182811115613f2957600080fd5b613f3587828601613ded565b60608301525095945050505050565b828152604060208201526000612ade6040830184612ae6565b600060208284031215613f6f57600080fd5b81516001600160a01b03811681146125e957600080fd5b60208152815160208201526000602083015160806040840152613fac60a0840182612856565b90506040840151601f19848303016060850152613fc98282612856565b91505063ffffffff60608501511660808401528091505092915050565b60208082528251805183830152810151604083015260009060a0830181850151606063ffffffff808316828801526040925082880151608080818a015285825180885260c08b0191508884019750600093505b8084101561407c578751805160ff90811684528a82015181168b850152888201511688840152860151851686830152968801966001939093019290820190614039565b509a9950505050505050505050565b60006101a061ffff861683528060208401526140a981840186612856565b84518051604086015260200151606085015291506140c49050565b60208301516140d66080840182612b8e565b5060408301516140ea610100840182612b8e565b5063ffffffff606084015116610180830152949350505050565b600082614113576141136136db565b500690565b6000821982111561412b5761412b613639565b50019056fe456967656e4441426c6f62566572696669636174696f6e5574696c732e5f7665a2646970667358221220f2d8d8dcde88fd09e446388517640e669d1cb43d60471dc7bf149a871497319764736f6c634300080c0033", + Bin: "0x6101406040523480156200001257600080fd5b50604051620043823803806200438283398101604081905262000035916200007e565b6001600160a01b0395861660805293851660a05291841660c052831660e052821661010052166101205262000112565b6001600160a01b03811681146200007b57600080fd5b50565b60008060008060008060c087890312156200009857600080fd5b8651620000a58162000065565b6020880151909650620000b88162000065565b6040880151909550620000cb8162000065565b6060880151909450620000de8162000065565b6080880151909350620000f18162000065565b60a0880151909250620001048162000065565b809150509295509295509295565b60805160a05160c05160e0516101005161012051614186620001fc6000396000818161025f015281816108720152610a2d0152600081816101f9015281816108510152610a0c0152600081816102860152818161049e015261083001526000818161035a0152818161047d015261080f015260008181610238015281816106f501526107530152600081816103a1015281816103de0152818161045c01528181610529015281816105d701528181610646015281816106d4015281816107320152818161078d015281816107ee015281816108bc01528181610933015261098001526141866000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80638d67b909116100b8578063e15234ff1161007c578063e15234ff14610311578063ee6c3bcf14610319578063ef6355291461032c578063efd4532b14610355578063f25de3f81461037c578063f8c668141461039c57600080fd5b80638d67b909146102bd57806392ce4ab2146102d0578063b60e9662146102e3578063bafa9107146102f6578063ca7fd71d146102fe57600080fd5b80634ca22c3f116100ff5780634ca22c3f146101f4578063640f65d9146102335780636d14a9871461025a57806372276443146102815780638687feae146102a857600080fd5b8063048886d21461013c5780630a4715f414610164578063127af44d146101795780631429c7c21461018c5780632ecfe72b146101b1575b600080fd5b61014f61014a3660046125cc565b6103c3565b60405190151581526020015b60405180910390f35b610177610172366004612608565b610457565b005b6101776101873660046127db565b6104f8565b61019f61019a3660046125cc565b61050e565b60405160ff909116815260200161015b565b6101c46101bf36600461280f565b61059d565b60408051825163ffffffff9081168252602080850151909116908201529181015160ff169082015260600161015b565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161015b565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b6102b0610642565b60405161015b9190612882565b6101776102cb366004612895565b6106cf565b6101776102de366004612924565b610723565b6101776102f13660046129dc565b61072d565b6102b0610789565b61017761030c366004612a47565b6107e9565b6102b06108b8565b61019f6103273660046125cc565b610918565b61033461096a565b60408051825160ff908116825260209384015116928101929092520161015b565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61038f61038a366004612aaa565b6109ff565b60405161015b9190612ccd565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b604051630244436960e11b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063048886d290602401602060405180830381865afa15801561042d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104519190612ce0565b92915050565b6104f37f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006104cc36889003880188612d30565b6104d587612f10565b6104de87613179565b6104e661096a565b6104ee6108b8565b610a5a565b505050565b61050a6105048361059d565b82610e78565b5050565b604051630a14e3e160e11b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631429c7c2906024015b602060405180830381865afa158015610579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045191906132a1565b60408051606081018252600080825260208201819052818301529051632ecfe72b60e01b815261ffff831660048201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632ecfe72b90602401606060405180830381865afa15801561061e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045191906132be565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638687feae6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156106a2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106ca919081019061332f565b905090565b61050a7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000848461071e6108b8565b611029565b61050a8282610e78565b6107837f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008686868661077e6108b8565b611562565b50505050565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bafa91076040518163ffffffff1660e01b8152600401600060405180830381865afa1580156106a2573d6000803e3d6000fd5b61050a7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061089a8861339c565b6108a388612f10565b6108ab61096a565b6108b36108b8565b611db0565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e15234ff6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156106a2573d6000803e3d6000fd5b60405163ee6c3bcf60e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ee6c3bcf9060240161055c565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ef6355296040518163ffffffff1660e01b81526004016040805180830381865afa1580156109db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ca9190613493565b610a07612511565b6104517f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610a558561339c565b611ddf565b610aac84604001518660000151610a748760000151611ff5565b604051602001610a8691815260200190565b60405160208183030381529060405280519060200120876020015163ffffffff16612035565b610b2a5760405162461bcd60e51b8152602060048201526050602482015260008051602061413183398151915260448201527f72696679426c6f625632466f7251756f72756d733a20696e636c7573696f6e2060648201526f1c1c9bdbd9881a5cc81a5b9d985b1a5960821b608482015260a4015b60405180910390fd5b600080886001600160a01b0316636efb4636610b458961204d565b885151602090810151908b01516040516001600160e01b031960e086901b168152610b77939291908b906004016134d4565b600060405180830381865afa158015610b94573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bbc9190810190613587565b91509150610bd288876000015160200151612078565b85515151604051632ecfe72b60e01b815261ffff9091166004820152610c4d906001600160a01b038c1690632ecfe72b90602401606060405180830381865afa158015610c23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4791906132be565b85610e78565b6000805b8751516020015151811015610db857856000015160ff1684602001518281518110610c7e57610c7e613623565b6020026020010151610c90919061364f565b6001600160601b0316606485600001518381518110610cb157610cb1613623565b60200260200101516001600160601b0316610ccc919061367e565b1015610d735760405162461bcd60e51b8152602060048201526076602482015260008051602061413183398151915260448201527f72696679426c6f625632466f7251756f72756d733a207369676e61746f72696560648201527f7320646f206e6f74206f776e206174206c65617374207468726573686f6c642060848201527570657263656e74616765206f6620612071756f72756d60501b60a482015260c401610b21565b875151602001518051610da491849184908110610d9257610d92613623565b0160200151600160f89190911c1b1790565b915080610db08161369d565b915050610c51565b50610dcc610dc5856121ab565b8281161490565b610e6b5760405162461bcd60e51b8152602060048201526070602482015260008051602061413183398151915260448201527f72696679426c6f625632466f7251756f72756d733a207265717569726564207160648201527f756f72756d7320617265206e6f74206120737562736574206f6620746865206360848201526f6f6e6669726d65642071756f72756d7360801b60a482015260c401610b21565b5050505050505050505050565b806020015160ff16816000015160ff1611610f2d5760405162461bcd60e51b8152602060048201526075602482015260008051602061413183398151915260448201527f72696679426c6f625365637572697479506172616d733a20636f6e6669726d6160648201527f74696f6e5468726573686f6c64206d7573742062652067726561746572207468608482015274185b8818591d995c9cd85c9e551a1c995cda1bdb19605a1b60a482015260c401610b21565b60208101518151600091610f40916136b8565b60ff1690506000836020015163ffffffff16846040015160ff1683620f4240610f6991906136f1565b610f7391906136f1565b610f7f90612710613705565b610f89919061367e565b8451909150610f9a9061271061371c565b63ffffffff168110156107835760405162461bcd60e51b8152602060048201526058602482015260008051602061413183398151915260448201527f72696679426c6f625365637572697479506172616d733a20736563757269747960648201527f20617373756d7074696f6e7320617265206e6f74206d65740000000000000000608482015260a401610b21565b6001600160a01b03841663eccbbfc9611045602085018561373f565b6040516001600160e01b031960e084901b16815263ffffffff919091166004820152602401602060405180830381865afa158015611087573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ab919061375c565b6110c96110bb6040850185613775565b6110c490613795565b612338565b146110e65760405162461bcd60e51b8152600401610b219061386c565b61119a6110f660608401846138de565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611138925050506040850185613775565b6111429080613924565b3561115461114f8761393a565b6123a9565b60405160200161116691815260200190565b6040516020818303038152906040528051906020012085602001602081019061118f919061373f565b63ffffffff16612035565b6111b65760405162461bcd60e51b8152600401610b2190613a59565b6000805b6111c76060860186613abb565b9050811015611531576111dd6060860186613abb565b828181106111ed576111ed613623565b61120392602060809092020190810191506125cc565b60ff166112136040860186613775565b61121d9080613924565b61122b9060208101906138de565b61123860808801886138de565b8581811061124857611248613623565b919091013560f81c905081811061126157611261613623565b9050013560f81c60f81b60f81c60ff161461128e5760405162461bcd60e51b8152600401610b2190613b04565b61129b6060860186613abb565b828181106112ab576112ab613623565b90506080020160200160208101906112c391906125cc565b60ff166112d36060870187613abb565b838181106112e3576112e3613623565b90506080020160400160208101906112fb91906125cc565b60ff161161131b5760405162461bcd60e51b8152600401610b2190613b67565b6001600160a01b038716631429c7c26113376060880188613abb565b8481811061134757611347613623565b61135d92602060809092020190810191506125cc565b6040516001600160e01b031960e084901b16815260ff9091166004820152602401602060405180830381865afa15801561139b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113bf91906132a1565b60ff166113cf6060870187613abb565b838181106113df576113df613623565b90506080020160400160208101906113f791906125cc565b60ff1610156114185760405162461bcd60e51b8152600401610b2190613bd8565b6114256060860186613abb565b8281811061143557611435613623565b905060800201604001602081019061144d91906125cc565b60ff1661145d6040860186613775565b6114679080613924565b6114759060408101906138de565b61148260808801886138de565b8581811061149257611492613623565b919091013560f81c90508181106114ab576114ab613623565b9050013560f81c60f81b60f81c60ff1610156114d95760405162461bcd60e51b8152600401610b2190613bd8565b61151d826114ea6060880188613abb565b848181106114fa576114fa613623565b61151092602060809092020190810191506125cc565b600160ff919091161b1790565b9150806115298161369d565b9150506111ba565b5061153e610dc5836121ab565b61155a5760405162461bcd60e51b8152600401610b2190613c49565b505050505050565b8382146115ff5760405162461bcd60e51b815260206004820152606b602482015260008051602061413183398151915260448201527f72696679426c6f6273466f7251756f72756d733a20626c6f624865616465727360648201527f20616e6420626c6f62566572696669636174696f6e50726f6f6673206c656e6760848201526a0e8d040dad2e6dac2e8c6d60ab1b60a482015260c401610b21565b6000876001600160a01b031663bafa91076040518163ffffffff1660e01b8152600401600060405180830381865afa15801561163f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611667919081019061332f565b905060005b85811015611da557876001600160a01b031663eccbbfc986868481811061169557611695613623565b90506020028101906116a79190613cd1565b6116b590602081019061373f565b6040516001600160e01b031960e084901b16815263ffffffff919091166004820152602401602060405180830381865afa1580156116f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171b919061375c565b61175086868481811061173057611730613623565b90506020028101906117429190613cd1565b6110bb906040810190613775565b1461176d5760405162461bcd60e51b8152600401610b219061386c565b6118a385858381811061178257611782613623565b90506020028101906117949190613cd1565b6117a29060608101906138de565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508992508891508590508181106117eb576117eb613623565b90506020028101906117fd9190613cd1565b61180b906040810190613775565b6118159080613924565b356118468a8a8681811061182b5761182b613623565b905060200281019061183d9190613924565b61114f9061393a565b60405160200161185891815260200190565b6040516020818303038152906040528051906020012088888681811061188057611880613623565b90506020028101906118929190613cd1565b61118f90604081019060200161373f565b6118bf5760405162461bcd60e51b8152600401610b2190613a59565b6000805b8888848181106118d5576118d5613623565b90506020028101906118e79190613924565b6118f5906060810190613abb565b9050811015611d6b5788888481811061191057611910613623565b90506020028101906119229190613924565b611930906060810190613abb565b8281811061194057611940613623565b61195692602060809092020190810191506125cc565b60ff1687878581811061196b5761196b613623565b905060200281019061197d9190613cd1565b61198b906040810190613775565b6119959080613924565b6119a39060208101906138de565b8989878181106119b5576119b5613623565b90506020028101906119c79190613cd1565b6119d59060808101906138de565b858181106119e5576119e5613623565b919091013560f81c90508181106119fe576119fe613623565b9050013560f81c60f81b60f81c60ff1614611a2b5760405162461bcd60e51b8152600401610b2190613b04565b888884818110611a3d57611a3d613623565b9050602002810190611a4f9190613924565b611a5d906060810190613abb565b82818110611a6d57611a6d613623565b9050608002016020016020810190611a8591906125cc565b60ff16898985818110611a9a57611a9a613623565b9050602002810190611aac9190613924565b611aba906060810190613abb565b83818110611aca57611aca613623565b9050608002016040016020810190611ae291906125cc565b60ff1611611b025760405162461bcd60e51b8152600401610b2190613b67565b83898985818110611b1557611b15613623565b9050602002810190611b279190613924565b611b35906060810190613abb565b83818110611b4557611b45613623565b611b5b92602060809092020190810191506125cc565b60ff1681518110611b6e57611b6e613623565b016020015160f81c898985818110611b8857611b88613623565b9050602002810190611b9a9190613924565b611ba8906060810190613abb565b83818110611bb857611bb8613623565b9050608002016040016020810190611bd091906125cc565b60ff161015611bf15760405162461bcd60e51b8152600401610b2190613bd8565b888884818110611c0357611c03613623565b9050602002810190611c159190613924565b611c23906060810190613abb565b82818110611c3357611c33613623565b9050608002016040016020810190611c4b91906125cc565b60ff16878785818110611c6057611c60613623565b9050602002810190611c729190613cd1565b611c80906040810190613775565b611c8a9080613924565b611c989060408101906138de565b898987818110611caa57611caa613623565b9050602002810190611cbc9190613cd1565b611cca9060808101906138de565b85818110611cda57611cda613623565b919091013560f81c9050818110611cf357611cf3613623565b9050013560f81c60f81b60f81c60ff161015611d215760405162461bcd60e51b8152600401610b2190613bd8565b611d57828a8a86818110611d3757611d37613623565b9050602002810190611d499190613924565b6114ea906060810190613abb565b915080611d638161369d565b9150506118c3565b50611d78610dc5856121ab565b611d945760405162461bcd60e51b8152600401610b2190613c49565b50611d9e8161369d565b905061166c565b505050505050505050565b6000611dbd878787611ddf565b9050611dd38a8a8a886000015188868989610a5a565b50505050505050505050565b611de7612511565b602082015151516000906001600160401b03811115611e0857611e086126a2565b604051908082528060200260200182016040528015611e31578160200160208202803683370190505b50905060005b60208401515151811015611eae57611e818460200151600001518281518110611e6257611e62613623565b6020026020010151805160009081526020918201519091526040902090565b828281518110611e9357611e93613623565b6020908102919091010152611ea78161369d565b9050611e37565b50606060005b84602001516080015151811015611f1b57818560200151608001518281518110611ee057611ee0613623565b6020026020010151604051602001611ef9929190613ce7565b604051602081830303815290604052915080611f149061369d565b9050611eb4565b508351602001516040516313dce7dd60e21b81526000916001600160a01b03891691634f739f7491611f56918a919087908990600401613d19565b600060405180830381865afa158015611f73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f9b9190810190613e6c565b805185526020958601805151878701528051870151604080880191909152815160609081015181890152915181015160808801529682015160a08701529581015160c0860152949094015160e08401525090949350505050565b600061200482600001516123bc565b602080840151604051612018939201613f44565b604051602081830303815290604052805190602001209050919050565b60008361204386858561240e565b1495945050505050565b60008160405160200161201891908151815260209182015163ffffffff169181019190915260400190565b60005b81518110156104f35760006001600160a01b0316836001600160a01b031663b5a872da8484815181106120b0576120b0613623565b60200260200101516040518263ffffffff1660e01b81526004016120e0919063ffffffff91909116815260200190565b602060405180830381865afa1580156120fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121219190613f5d565b6001600160a01b0316141561219b5760405162461bcd60e51b8152602060048201526046602482015260008051602061413183398151915260448201527f7269667952656c61794b6579735365743a2072656c6179206b6579206973206e6064820152651bdd081cd95d60d21b608482015260a401610b21565b6121a48161369d565b905061207b565b6000610100825111156122345760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610b21565b815161224257506000919050565b6000808360008151811061225857612258613623565b0160200151600160f89190911c81901b92505b845181101561232f5784818151811061228657612286613623565b0160200151600160f89190911c1b915082821161231b5760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610b21565b918117916123288161369d565b905061226b565b50909392505050565b600061045182600001516040516020016123529190613f86565b60408051808303601f1901815282825280516020918201208682015187840151838601929092528484015260e01b6001600160e01b0319166060840152815160448185030181526064909301909152815191012090565b6000816040516020016120189190613fe6565b60008160000151826020015183604001516040516020016123df9392919061408b565b60408051601f198184030181528282528051602091820120606080870151928501919091529183015201612018565b60006020845161241e9190614104565b156124a55760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a401610b21565b8260205b85518111612508576124bc600285614104565b6124dd578160005280860151602052604060002091506002840493506124f6565b8086015160005281602052604060002091506002840493505b612501602082614118565b90506124a9565b50949350505050565b60405180610100016040528060608152602001606081526020016060815260200161253a612577565b815260200161255c604051806040016040528060008152602001600081525090565b81526020016060815260200160608152602001606081525090565b604051806040016040528061258a61259c565b815260200161259761259c565b905290565b60405180604001604052806002906020820280368337509192915050565b60ff811681146125c957600080fd5b50565b6000602082840312156125de57600080fd5b81356125e9816125ba565b9392505050565b60006060828403121561260257600080fd5b50919050565b6000806000838503608081121561261e57600080fd5b604081121561262c57600080fd5b5083925060408401356001600160401b038082111561264a57600080fd5b612656878388016125f0565b9350606086013591508082111561266c57600080fd5b508401610180818703121561268057600080fd5b809150509250925092565b803561ffff8116811461269d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156126da576126da6126a2565b60405290565b604051606081016001600160401b03811182821017156126da576126da6126a2565b604051608081016001600160401b03811182821017156126da576126da6126a2565b60405161010081016001600160401b03811182821017156126da576126da6126a2565b60405160a081016001600160401b03811182821017156126da576126da6126a2565b604051601f8201601f191681016001600160401b0381118282101715612791576127916126a2565b604052919050565b6000604082840312156127ab57600080fd5b6127b36126b8565b905081356127c0816125ba565b815260208201356127d0816125ba565b602082015292915050565b600080606083850312156127ee57600080fd5b6127f78361268b565b91506128068460208501612799565b90509250929050565b60006020828403121561282157600080fd5b6125e98261268b565b60005b8381101561284557818101518382015260200161282d565b838111156107835750506000910152565b6000815180845261286e81602086016020860161282a565b601f01601f19169290920160200192915050565b6020815260006125e96020830184612856565b600080604083850312156128a857600080fd5b82356001600160401b03808211156128bf57600080fd5b90840190608082870312156128d357600080fd5b909250602084013590808211156128e957600080fd5b50830160a081860312156128fc57600080fd5b809150509250929050565b63ffffffff811681146125c957600080fd5b803561269d81612907565b60008082840360a081121561293857600080fd5b606081121561294657600080fd5b5061294f6126e0565b833561295a81612907565b8152602084013561296a81612907565b6020820152604084013561297d816125ba565b604082015291506128068460608501612799565b60008083601f8401126129a357600080fd5b5081356001600160401b038111156129ba57600080fd5b6020830191508360208260051b85010111156129d557600080fd5b9250929050565b600080600080604085870312156129f257600080fd5b84356001600160401b0380821115612a0957600080fd5b612a1588838901612991565b90965094506020870135915080821115612a2e57600080fd5b50612a3b87828801612991565b95989497509550505050565b60008060408385031215612a5a57600080fd5b82356001600160401b0380821115612a7157600080fd5b612a7d868387016125f0565b93506020850135915080821115612a9357600080fd5b50612aa0858286016125f0565b9150509250929050565b600060208284031215612abc57600080fd5b81356001600160401b03811115612ad257600080fd5b612ade848285016125f0565b949350505050565b600081518084526020808501945080840160005b83811015612b1c57815163ffffffff1687529582019590820190600101612afa565b509495945050505050565b600081518084526020808501945080840160005b83811015612b1c57612b5887835180518252602090810151910152565b6040969096019590820190600101612b3b565b8060005b6002811015610783578151845260209384019390910190600101612b6f565b612b99828251612b6b565b60208101516104f36040840182612b6b565b600081518084526020808501808196508360051b8101915082860160005b85811015612bf3578284038952612be1848351612ae6565b98850198935090840190600101612bc9565b5091979650505050505050565b60006101808251818552612c1682860182612ae6565b91505060208301518482036020860152612c308282612b27565b91505060408301518482036040860152612c4a8282612b27565b9150506060830151612c5f6060860182612b8e565b506080830151805160e08601526020015161010085015260a0830151848203610120860152612c8e8282612ae6565b91505060c0830151848203610140860152612ca98282612ae6565b91505060e0830151848203610160860152612cc48282612bab565b95945050505050565b6020815260006125e96020830184612c00565b600060208284031215612cf257600080fd5b815180151581146125e957600080fd5b600060408284031215612d1457600080fd5b612d1c6126b8565b90508135815260208201356127d081612907565b600060408284031215612d4257600080fd5b6125e98383612d02565b60006001600160401b03821115612d6557612d656126a2565b50601f01601f191660200190565b600082601f830112612d8457600080fd5b8135612d97612d9282612d4c565b612769565b818152846020838601011115612dac57600080fd5b816020850160208301376000918101602001919091529392505050565b600060408284031215612ddb57600080fd5b612de36126b8565b9050813581526020820135602082015292915050565b600082601f830112612e0a57600080fd5b612e126126b8565b806040840185811115612e2457600080fd5b845b81811015612e3e578035845260209384019301612e26565b509095945050505050565b600060808284031215612e5b57600080fd5b612e636126b8565b9050612e6f8383612df9565b81526127d08360408401612df9565b60006001600160401b03821115612e9757612e976126a2565b5060051b60200190565b600082601f830112612eb257600080fd5b81356020612ec2612d9283612e7e565b82815260059290921b84018101918181019086841115612ee157600080fd5b8286015b84811015612f05578035612ef881612907565b8352918301918301612ee5565b509695505050505050565b600060608236031215612f2257600080fd5b612f2a6126e0565b82356001600160401b0380821115612f4157600080fd5b81850191506040808336031215612f5757600080fd5b612f5f6126b8565b833583811115612f6e57600080fd5b8401368190036101c0811215612f8357600080fd5b612f8b612702565b612f948361268b565b815260208084013587811115612fa957600080fd5b612fb536828701612d73565b8383015250610160603f1984011215612fcd57600080fd5b612fd5612702565b9250612fe336878601612dc9565b8352612ff23660808601612e49565b81840152613004366101008601612e49565b8684015261018084013561301781612907565b8060608501525082868301526101a084013560608301528185528088013593508684111561304457600080fd5b61305036858a01612ea1565b81860152848952613062818c01612919565b90890152505050508581013592508183111561307d57600080fd5b61308936848801612d73565b9084015250909392505050565b600082601f8301126130a757600080fd5b813560206130b7612d9283612e7e565b82815260069290921b840181019181810190868411156130d657600080fd5b8286015b84811015612f05576130ec8882612dc9565b8352918301916040016130da565b600082601f83011261310b57600080fd5b8135602061311b612d9283612e7e565b82815260059290921b8401810191818101908684111561313a57600080fd5b8286015b84811015612f055780356001600160401b0381111561315d5760008081fd5b61316b8986838b0101612ea1565b84525091830191830161313e565b6000610180823603121561318c57600080fd5b613194612724565b82356001600160401b03808211156131ab57600080fd5b6131b736838701612ea1565b835260208501359150808211156131cd57600080fd5b6131d936838701613096565b602084015260408501359150808211156131f257600080fd5b6131fe36838701613096565b60408401526132103660608701612e49565b60608401526132223660e08701612dc9565b608084015261012085013591508082111561323c57600080fd5b61324836838701612ea1565b60a084015261014085013591508082111561326257600080fd5b61326e36838701612ea1565b60c084015261016085013591508082111561328857600080fd5b50613295368286016130fa565b60e08301525092915050565b6000602082840312156132b357600080fd5b81516125e9816125ba565b6000606082840312156132d057600080fd5b604051606081018181106001600160401b03821117156132f2576132f26126a2565b604052825161330081612907565b8152602083015161331081612907565b60208201526040830151613323816125ba565b60408201529392505050565b60006020828403121561334157600080fd5b81516001600160401b0381111561335757600080fd5b8201601f8101841361336857600080fd5b8051613376612d9282612d4c565b81815285602083850101111561338b57600080fd5b612cc482602083016020860161282a565b6000606082360312156133ae57600080fd5b6133b66126b8565b6133c03684612d02565b815260408301356001600160401b03808211156133dc57600080fd5b818501915061012082360312156133f257600080fd5b6133fa612747565b82358281111561340957600080fd5b61341536828601613096565b82525060208301358281111561342a57600080fd5b61343636828601613096565b6020830152506134493660408501612dc9565b604082015261345b3660808501612e49565b60608201526101008301358281111561347357600080fd5b61347f36828601612ea1565b608083015250602084015250909392505050565b6000604082840312156134a557600080fd5b6134ad6126b8565b82516134b8816125ba565b815260208301516134c8816125ba565b60208201529392505050565b8481526080602082015260006134ed6080830186612856565b63ffffffff85166040840152828103606084015261350b8185612c00565b979650505050505050565b600082601f83011261352757600080fd5b81516020613537612d9283612e7e565b82815260059290921b8401810191818101908684111561355657600080fd5b8286015b84811015612f055780516001600160601b038116811461357a5760008081fd5b835291830191830161355a565b6000806040838503121561359a57600080fd5b82516001600160401b03808211156135b157600080fd5b90840190604082870312156135c557600080fd5b6135cd6126b8565b8251828111156135dc57600080fd5b6135e888828601613516565b8252506020830151828111156135fd57600080fd5b61360988828601613516565b602083015250809450505050602083015190509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160601b038083168185168183048111821515161561367557613675613639565b02949350505050565b600081600019048311821515161561369857613698613639565b500290565b60006000198214156136b1576136b1613639565b5060010190565b600060ff821660ff8416808210156136d2576136d2613639565b90039392505050565b634e487b7160e01b600052601260045260246000fd5b600082613700576137006136db565b500490565b60008282101561371757613717613639565b500390565b600063ffffffff8083168185168183048111821515161561367557613675613639565b60006020828403121561375157600080fd5b81356125e981612907565b60006020828403121561376e57600080fd5b5051919050565b60008235605e1983360301811261378b57600080fd5b9190910192915050565b6000606082360312156137a757600080fd5b6137af6126e0565b82356001600160401b03808211156137c657600080fd5b8185019150608082360312156137db57600080fd5b6137e3612702565b823581526020830135828111156137f957600080fd5b61380536828601612d73565b60208301525060408301358281111561381d57600080fd5b61382936828601612d73565b6040830152506060830135925061383f83612907565b8260608201528084525050506020830135602082015261386160408401612919565b604082015292915050565b6020808252606090820181905260008051602061413183398151915260408301527f72696679426c6f62466f7251756f72756d733a2062617463684d657461646174908201527f6120646f6573206e6f74206d617463682073746f726564206d65746164617461608082015260a00190565b6000808335601e198436030181126138f557600080fd5b8301803591506001600160401b0382111561390f57600080fd5b6020019150368190038213156129d557600080fd5b60008235607e1983360301811261378b57600080fd5b6000608080833603121561394d57600080fd5b6139556126e0565b61395f3685612dc9565b815260408085013561397081612907565b6020818185015260609150818701356001600160401b0381111561399357600080fd5b870136601f8201126139a457600080fd5b80356139b2612d9282612e7e565b81815260079190911b820183019083810190368311156139d157600080fd5b928401925b82841015613a45578884360312156139ee5760008081fd5b6139f6612702565b8435613a01816125ba565b815284860135613a10816125ba565b8187015284880135613a21816125ba565b8189015284870135613a3281612907565b81880152825292880192908401906139d6565b958701959095525093979650505050505050565b6020808252604e9082015260008051602061413183398151915260408201527f72696679426c6f62466f7251756f72756d733a20696e636c7573696f6e20707260608201526d1bdbd9881a5cc81a5b9d985b1a5960921b608082015260a00190565b6000808335601e19843603018112613ad257600080fd5b8301803591506001600160401b03821115613aec57600080fd5b6020019150600781901b36038213156129d557600080fd5b6020808252604f9082015260008051602061413183398151915260408201527f72696679426c6f62466f7251756f72756d733a2071756f72756d4e756d62657260608201526e040c8decae640dcdee840dac2e8c6d608b1b608082015260a00190565b602080825260579082015260008051602061413183398151915260408201527f72696679426c6f62466f7251756f72756d733a207468726573686f6c6420706560608201527f7263656e746167657320617265206e6f742076616c6964000000000000000000608082015260a00190565b6020808252605e9082015260008051602061413183398151915260408201527f72696679426c6f62466f7251756f72756d733a20636f6e6669726d6174696f6e60608201527f5468726573686f6c6450657263656e74616765206973206e6f74206d65740000608082015260a00190565b6020808252606e9082015260008051602061413183398151915260408201527f72696679426c6f62466f7251756f72756d733a2072657175697265642071756f60608201527f72756d7320617265206e6f74206120737562736574206f662074686520636f6e60808201526d6669726d65642071756f72756d7360901b60a082015260c00190565b60008235609e1983360301811261378b57600080fd5b60008351613cf981846020880161282a565b60f89390931b6001600160f81b0319169190920190815260010192915050565b60018060a01b03851681526000602063ffffffff86168184015260806040840152613d476080840186612856565b838103606085015284518082528286019183019060005b81811015613d7a57835183529284019291840191600101613d5e565b50909998505050505050505050565b600082601f830112613d9a57600080fd5b81516020613daa612d9283612e7e565b82815260059290921b84018101918181019086841115613dc957600080fd5b8286015b84811015612f05578051613de081612907565b8352918301918301613dcd565b600082601f830112613dfe57600080fd5b81516020613e0e612d9283612e7e565b82815260059290921b84018101918181019086841115613e2d57600080fd5b8286015b84811015612f055780516001600160401b03811115613e505760008081fd5b613e5e8986838b0101613d89565b845250918301918301613e31565b600060208284031215613e7e57600080fd5b81516001600160401b0380821115613e9557600080fd5b9083019060808286031215613ea957600080fd5b613eb1612702565b825182811115613ec057600080fd5b613ecc87828601613d89565b825250602083015182811115613ee157600080fd5b613eed87828601613d89565b602083015250604083015182811115613f0557600080fd5b613f1187828601613d89565b604083015250606083015182811115613f2957600080fd5b613f3587828601613ded565b60608301525095945050505050565b828152604060208201526000612ade6040830184612ae6565b600060208284031215613f6f57600080fd5b81516001600160a01b03811681146125e957600080fd5b60208152815160208201526000602083015160806040840152613fac60a0840182612856565b90506040840151601f19848303016060850152613fc98282612856565b91505063ffffffff60608501511660808401528091505092915050565b60208082528251805183830152810151604083015260009060a0830181850151606063ffffffff808316828801526040925082880151608080818a015285825180885260c08b0191508884019750600093505b8084101561407c578751805160ff90811684528a82015181168b850152888201511688840152860151851686830152968801966001939093019290820190614039565b509a9950505050505050505050565b60006101a061ffff861683528060208401526140a981840186612856565b84518051604086015260200151606085015291506140c49050565b60208301516140d66080840182612b8e565b5060408301516140ea610100840182612b8e565b5063ffffffff606084015116610180830152949350505050565b600082614113576141136136db565b500690565b6000821982111561412b5761412b613639565b50019056fe456967656e4441426c6f62566572696669636174696f6e5574696c732e5f7665a2646970667358221220833677dce814b68991726de0e56998fca3eae9b619892523603c9db195dd815864736f6c634300080c0033", } // ContractEigenDABlobVerifierABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/EigenDADisperserRegistry/binding.go b/contracts/bindings/EigenDADisperserRegistry/binding.go new file mode 100644 index 0000000000..25fa69c212 --- /dev/null +++ b/contracts/bindings/EigenDADisperserRegistry/binding.go @@ -0,0 +1,825 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package contractEigenDADisperserRegistry + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// DisperserInfo is an auto generated low-level Go binding around an user-defined struct. +type DisperserInfo struct { + DisperserAddress common.Address +} + +// ContractEigenDADisperserRegistryMetaData contains all meta data concerning the ContractEigenDADisperserRegistry contract. +var ContractEigenDADisperserRegistryMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"disperserKeyToAddress\",\"inputs\":[{\"name\":\"_key\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"disperserKeyToInfo\",\"inputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"disperserAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_initialOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setDisperserInfo\",\"inputs\":[{\"name\":\"_disperserKey\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"_disperserInfo\",\"type\":\"tuple\",\"internalType\":\"structDisperserInfo\",\"components\":[{\"name\":\"disperserAddress\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"DisperserAdded\",\"inputs\":[{\"name\":\"key\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"},{\"name\":\"disperser\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false}]", + Bin: "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b610526806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146101005780639a0f62a014610111578063c4d66de814610124578063f2fde38b1461013757600080fd5b806307d69fad146100825780631e0bf73c146100cd578063715018a6146100f6575b600080fd5b6100b161009036600461041d565b63ffffffff166000908152606560205260409020546001600160a01b031690565b6040516001600160a01b03909116815260200160405180910390f35b6100b16100db36600461041d565b6065602052600090815260409020546001600160a01b031681565b6100fe61014a565b005b6033546001600160a01b03166100b1565b6100fe61011f366004610456565b61015e565b6100fe6101323660046104d5565b6101c7565b6100fe6101453660046104d5565b6102df565b610152610358565b61015c60006103b2565b565b610166610358565b63ffffffff8216600081815260656020526040808220845181546001600160a01b0319166001600160a01b0390911690811790915590519092917f97fb4432fef273711f9ccc876095cf8e22b00f159658bbd807a8ea80a4c3c85991a35050565b600054610100900460ff16158080156101e75750600054600160ff909116105b806102015750303b158015610201575060005460ff166001145b6102695760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561028c576000805461ff0019166101001790555b610295826103b2565b80156102db576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6102e7610358565b6001600160a01b03811661034c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610260565b610355816103b2565b50565b6033546001600160a01b0316331461015c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610260565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b803563ffffffff8116811461041857600080fd5b919050565b60006020828403121561042f57600080fd5b61043882610404565b9392505050565b80356001600160a01b038116811461041857600080fd5b600080828403604081121561046a57600080fd5b61047384610404565b92506020601f198201121561048757600080fd5b506040516020810181811067ffffffffffffffff821117156104b957634e487b7160e01b600052604160045260246000fd5b6040526104c86020850161043f565b8152809150509250929050565b6000602082840312156104e757600080fd5b6104388261043f56fea2646970667358221220c4a1cfd0f93adaf1e31da8b48b0a65aa24b969e513290812ac4160cba838f2be64736f6c634300080c0033", +} + +// ContractEigenDADisperserRegistryABI is the input ABI used to generate the binding from. +// Deprecated: Use ContractEigenDADisperserRegistryMetaData.ABI instead. +var ContractEigenDADisperserRegistryABI = ContractEigenDADisperserRegistryMetaData.ABI + +// ContractEigenDADisperserRegistryBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use ContractEigenDADisperserRegistryMetaData.Bin instead. +var ContractEigenDADisperserRegistryBin = ContractEigenDADisperserRegistryMetaData.Bin + +// DeployContractEigenDADisperserRegistry deploys a new Ethereum contract, binding an instance of ContractEigenDADisperserRegistry to it. +func DeployContractEigenDADisperserRegistry(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ContractEigenDADisperserRegistry, error) { + parsed, err := ContractEigenDADisperserRegistryMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ContractEigenDADisperserRegistryBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ContractEigenDADisperserRegistry{ContractEigenDADisperserRegistryCaller: ContractEigenDADisperserRegistryCaller{contract: contract}, ContractEigenDADisperserRegistryTransactor: ContractEigenDADisperserRegistryTransactor{contract: contract}, ContractEigenDADisperserRegistryFilterer: ContractEigenDADisperserRegistryFilterer{contract: contract}}, nil +} + +// ContractEigenDADisperserRegistry is an auto generated Go binding around an Ethereum contract. +type ContractEigenDADisperserRegistry struct { + ContractEigenDADisperserRegistryCaller // Read-only binding to the contract + ContractEigenDADisperserRegistryTransactor // Write-only binding to the contract + ContractEigenDADisperserRegistryFilterer // Log filterer for contract events +} + +// ContractEigenDADisperserRegistryCaller is an auto generated read-only Go binding around an Ethereum contract. +type ContractEigenDADisperserRegistryCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ContractEigenDADisperserRegistryTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ContractEigenDADisperserRegistryTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ContractEigenDADisperserRegistryFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ContractEigenDADisperserRegistryFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ContractEigenDADisperserRegistrySession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ContractEigenDADisperserRegistrySession struct { + Contract *ContractEigenDADisperserRegistry // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ContractEigenDADisperserRegistryCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ContractEigenDADisperserRegistryCallerSession struct { + Contract *ContractEigenDADisperserRegistryCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ContractEigenDADisperserRegistryTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ContractEigenDADisperserRegistryTransactorSession struct { + Contract *ContractEigenDADisperserRegistryTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ContractEigenDADisperserRegistryRaw is an auto generated low-level Go binding around an Ethereum contract. +type ContractEigenDADisperserRegistryRaw struct { + Contract *ContractEigenDADisperserRegistry // Generic contract binding to access the raw methods on +} + +// ContractEigenDADisperserRegistryCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ContractEigenDADisperserRegistryCallerRaw struct { + Contract *ContractEigenDADisperserRegistryCaller // Generic read-only contract binding to access the raw methods on +} + +// ContractEigenDADisperserRegistryTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ContractEigenDADisperserRegistryTransactorRaw struct { + Contract *ContractEigenDADisperserRegistryTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewContractEigenDADisperserRegistry creates a new instance of ContractEigenDADisperserRegistry, bound to a specific deployed contract. +func NewContractEigenDADisperserRegistry(address common.Address, backend bind.ContractBackend) (*ContractEigenDADisperserRegistry, error) { + contract, err := bindContractEigenDADisperserRegistry(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ContractEigenDADisperserRegistry{ContractEigenDADisperserRegistryCaller: ContractEigenDADisperserRegistryCaller{contract: contract}, ContractEigenDADisperserRegistryTransactor: ContractEigenDADisperserRegistryTransactor{contract: contract}, ContractEigenDADisperserRegistryFilterer: ContractEigenDADisperserRegistryFilterer{contract: contract}}, nil +} + +// NewContractEigenDADisperserRegistryCaller creates a new read-only instance of ContractEigenDADisperserRegistry, bound to a specific deployed contract. +func NewContractEigenDADisperserRegistryCaller(address common.Address, caller bind.ContractCaller) (*ContractEigenDADisperserRegistryCaller, error) { + contract, err := bindContractEigenDADisperserRegistry(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ContractEigenDADisperserRegistryCaller{contract: contract}, nil +} + +// NewContractEigenDADisperserRegistryTransactor creates a new write-only instance of ContractEigenDADisperserRegistry, bound to a specific deployed contract. +func NewContractEigenDADisperserRegistryTransactor(address common.Address, transactor bind.ContractTransactor) (*ContractEigenDADisperserRegistryTransactor, error) { + contract, err := bindContractEigenDADisperserRegistry(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ContractEigenDADisperserRegistryTransactor{contract: contract}, nil +} + +// NewContractEigenDADisperserRegistryFilterer creates a new log filterer instance of ContractEigenDADisperserRegistry, bound to a specific deployed contract. +func NewContractEigenDADisperserRegistryFilterer(address common.Address, filterer bind.ContractFilterer) (*ContractEigenDADisperserRegistryFilterer, error) { + contract, err := bindContractEigenDADisperserRegistry(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ContractEigenDADisperserRegistryFilterer{contract: contract}, nil +} + +// bindContractEigenDADisperserRegistry binds a generic wrapper to an already deployed contract. +func bindContractEigenDADisperserRegistry(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ContractEigenDADisperserRegistryMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ContractEigenDADisperserRegistry.Contract.ContractEigenDADisperserRegistryCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ContractEigenDADisperserRegistry.Contract.ContractEigenDADisperserRegistryTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ContractEigenDADisperserRegistry.Contract.ContractEigenDADisperserRegistryTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ContractEigenDADisperserRegistry.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ContractEigenDADisperserRegistry.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ContractEigenDADisperserRegistry.Contract.contract.Transact(opts, method, params...) +} + +// DisperserKeyToAddress is a free data retrieval call binding the contract method 0x07d69fad. +// +// Solidity: function disperserKeyToAddress(uint32 _key) view returns(address) +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryCaller) DisperserKeyToAddress(opts *bind.CallOpts, _key uint32) (common.Address, error) { + var out []interface{} + err := _ContractEigenDADisperserRegistry.contract.Call(opts, &out, "disperserKeyToAddress", _key) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// DisperserKeyToAddress is a free data retrieval call binding the contract method 0x07d69fad. +// +// Solidity: function disperserKeyToAddress(uint32 _key) view returns(address) +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistrySession) DisperserKeyToAddress(_key uint32) (common.Address, error) { + return _ContractEigenDADisperserRegistry.Contract.DisperserKeyToAddress(&_ContractEigenDADisperserRegistry.CallOpts, _key) +} + +// DisperserKeyToAddress is a free data retrieval call binding the contract method 0x07d69fad. +// +// Solidity: function disperserKeyToAddress(uint32 _key) view returns(address) +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryCallerSession) DisperserKeyToAddress(_key uint32) (common.Address, error) { + return _ContractEigenDADisperserRegistry.Contract.DisperserKeyToAddress(&_ContractEigenDADisperserRegistry.CallOpts, _key) +} + +// DisperserKeyToInfo is a free data retrieval call binding the contract method 0x1e0bf73c. +// +// Solidity: function disperserKeyToInfo(uint32 ) view returns(address disperserAddress) +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryCaller) DisperserKeyToInfo(opts *bind.CallOpts, arg0 uint32) (common.Address, error) { + var out []interface{} + err := _ContractEigenDADisperserRegistry.contract.Call(opts, &out, "disperserKeyToInfo", arg0) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// DisperserKeyToInfo is a free data retrieval call binding the contract method 0x1e0bf73c. +// +// Solidity: function disperserKeyToInfo(uint32 ) view returns(address disperserAddress) +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistrySession) DisperserKeyToInfo(arg0 uint32) (common.Address, error) { + return _ContractEigenDADisperserRegistry.Contract.DisperserKeyToInfo(&_ContractEigenDADisperserRegistry.CallOpts, arg0) +} + +// DisperserKeyToInfo is a free data retrieval call binding the contract method 0x1e0bf73c. +// +// Solidity: function disperserKeyToInfo(uint32 ) view returns(address disperserAddress) +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryCallerSession) DisperserKeyToInfo(arg0 uint32) (common.Address, error) { + return _ContractEigenDADisperserRegistry.Contract.DisperserKeyToInfo(&_ContractEigenDADisperserRegistry.CallOpts, arg0) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ContractEigenDADisperserRegistry.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistrySession) Owner() (common.Address, error) { + return _ContractEigenDADisperserRegistry.Contract.Owner(&_ContractEigenDADisperserRegistry.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryCallerSession) Owner() (common.Address, error) { + return _ContractEigenDADisperserRegistry.Contract.Owner(&_ContractEigenDADisperserRegistry.CallOpts) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. +// +// Solidity: function initialize(address _initialOwner) returns() +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryTransactor) Initialize(opts *bind.TransactOpts, _initialOwner common.Address) (*types.Transaction, error) { + return _ContractEigenDADisperserRegistry.contract.Transact(opts, "initialize", _initialOwner) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. +// +// Solidity: function initialize(address _initialOwner) returns() +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistrySession) Initialize(_initialOwner common.Address) (*types.Transaction, error) { + return _ContractEigenDADisperserRegistry.Contract.Initialize(&_ContractEigenDADisperserRegistry.TransactOpts, _initialOwner) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. +// +// Solidity: function initialize(address _initialOwner) returns() +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryTransactorSession) Initialize(_initialOwner common.Address) (*types.Transaction, error) { + return _ContractEigenDADisperserRegistry.Contract.Initialize(&_ContractEigenDADisperserRegistry.TransactOpts, _initialOwner) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ContractEigenDADisperserRegistry.contract.Transact(opts, "renounceOwnership") +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistrySession) RenounceOwnership() (*types.Transaction, error) { + return _ContractEigenDADisperserRegistry.Contract.RenounceOwnership(&_ContractEigenDADisperserRegistry.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryTransactorSession) RenounceOwnership() (*types.Transaction, error) { + return _ContractEigenDADisperserRegistry.Contract.RenounceOwnership(&_ContractEigenDADisperserRegistry.TransactOpts) +} + +// SetDisperserInfo is a paid mutator transaction binding the contract method 0x9a0f62a0. +// +// Solidity: function setDisperserInfo(uint32 _disperserKey, (address) _disperserInfo) returns() +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryTransactor) SetDisperserInfo(opts *bind.TransactOpts, _disperserKey uint32, _disperserInfo DisperserInfo) (*types.Transaction, error) { + return _ContractEigenDADisperserRegistry.contract.Transact(opts, "setDisperserInfo", _disperserKey, _disperserInfo) +} + +// SetDisperserInfo is a paid mutator transaction binding the contract method 0x9a0f62a0. +// +// Solidity: function setDisperserInfo(uint32 _disperserKey, (address) _disperserInfo) returns() +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistrySession) SetDisperserInfo(_disperserKey uint32, _disperserInfo DisperserInfo) (*types.Transaction, error) { + return _ContractEigenDADisperserRegistry.Contract.SetDisperserInfo(&_ContractEigenDADisperserRegistry.TransactOpts, _disperserKey, _disperserInfo) +} + +// SetDisperserInfo is a paid mutator transaction binding the contract method 0x9a0f62a0. +// +// Solidity: function setDisperserInfo(uint32 _disperserKey, (address) _disperserInfo) returns() +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryTransactorSession) SetDisperserInfo(_disperserKey uint32, _disperserInfo DisperserInfo) (*types.Transaction, error) { + return _ContractEigenDADisperserRegistry.Contract.SetDisperserInfo(&_ContractEigenDADisperserRegistry.TransactOpts, _disperserKey, _disperserInfo) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _ContractEigenDADisperserRegistry.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistrySession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _ContractEigenDADisperserRegistry.Contract.TransferOwnership(&_ContractEigenDADisperserRegistry.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _ContractEigenDADisperserRegistry.Contract.TransferOwnership(&_ContractEigenDADisperserRegistry.TransactOpts, newOwner) +} + +// ContractEigenDADisperserRegistryDisperserAddedIterator is returned from FilterDisperserAdded and is used to iterate over the raw logs and unpacked data for DisperserAdded events raised by the ContractEigenDADisperserRegistry contract. +type ContractEigenDADisperserRegistryDisperserAddedIterator struct { + Event *ContractEigenDADisperserRegistryDisperserAdded // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ContractEigenDADisperserRegistryDisperserAddedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ContractEigenDADisperserRegistryDisperserAdded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ContractEigenDADisperserRegistryDisperserAdded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ContractEigenDADisperserRegistryDisperserAddedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ContractEigenDADisperserRegistryDisperserAddedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ContractEigenDADisperserRegistryDisperserAdded represents a DisperserAdded event raised by the ContractEigenDADisperserRegistry contract. +type ContractEigenDADisperserRegistryDisperserAdded struct { + Key uint32 + Disperser common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDisperserAdded is a free log retrieval operation binding the contract event 0x97fb4432fef273711f9ccc876095cf8e22b00f159658bbd807a8ea80a4c3c859. +// +// Solidity: event DisperserAdded(uint32 indexed key, address indexed disperser) +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryFilterer) FilterDisperserAdded(opts *bind.FilterOpts, key []uint32, disperser []common.Address) (*ContractEigenDADisperserRegistryDisperserAddedIterator, error) { + + var keyRule []interface{} + for _, keyItem := range key { + keyRule = append(keyRule, keyItem) + } + var disperserRule []interface{} + for _, disperserItem := range disperser { + disperserRule = append(disperserRule, disperserItem) + } + + logs, sub, err := _ContractEigenDADisperserRegistry.contract.FilterLogs(opts, "DisperserAdded", keyRule, disperserRule) + if err != nil { + return nil, err + } + return &ContractEigenDADisperserRegistryDisperserAddedIterator{contract: _ContractEigenDADisperserRegistry.contract, event: "DisperserAdded", logs: logs, sub: sub}, nil +} + +// WatchDisperserAdded is a free log subscription operation binding the contract event 0x97fb4432fef273711f9ccc876095cf8e22b00f159658bbd807a8ea80a4c3c859. +// +// Solidity: event DisperserAdded(uint32 indexed key, address indexed disperser) +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryFilterer) WatchDisperserAdded(opts *bind.WatchOpts, sink chan<- *ContractEigenDADisperserRegistryDisperserAdded, key []uint32, disperser []common.Address) (event.Subscription, error) { + + var keyRule []interface{} + for _, keyItem := range key { + keyRule = append(keyRule, keyItem) + } + var disperserRule []interface{} + for _, disperserItem := range disperser { + disperserRule = append(disperserRule, disperserItem) + } + + logs, sub, err := _ContractEigenDADisperserRegistry.contract.WatchLogs(opts, "DisperserAdded", keyRule, disperserRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ContractEigenDADisperserRegistryDisperserAdded) + if err := _ContractEigenDADisperserRegistry.contract.UnpackLog(event, "DisperserAdded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseDisperserAdded is a log parse operation binding the contract event 0x97fb4432fef273711f9ccc876095cf8e22b00f159658bbd807a8ea80a4c3c859. +// +// Solidity: event DisperserAdded(uint32 indexed key, address indexed disperser) +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryFilterer) ParseDisperserAdded(log types.Log) (*ContractEigenDADisperserRegistryDisperserAdded, error) { + event := new(ContractEigenDADisperserRegistryDisperserAdded) + if err := _ContractEigenDADisperserRegistry.contract.UnpackLog(event, "DisperserAdded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ContractEigenDADisperserRegistryInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the ContractEigenDADisperserRegistry contract. +type ContractEigenDADisperserRegistryInitializedIterator struct { + Event *ContractEigenDADisperserRegistryInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ContractEigenDADisperserRegistryInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ContractEigenDADisperserRegistryInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ContractEigenDADisperserRegistryInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ContractEigenDADisperserRegistryInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ContractEigenDADisperserRegistryInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ContractEigenDADisperserRegistryInitialized represents a Initialized event raised by the ContractEigenDADisperserRegistry contract. +type ContractEigenDADisperserRegistryInitialized struct { + Version uint8 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// +// Solidity: event Initialized(uint8 version) +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryFilterer) FilterInitialized(opts *bind.FilterOpts) (*ContractEigenDADisperserRegistryInitializedIterator, error) { + + logs, sub, err := _ContractEigenDADisperserRegistry.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &ContractEigenDADisperserRegistryInitializedIterator{contract: _ContractEigenDADisperserRegistry.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// +// Solidity: event Initialized(uint8 version) +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *ContractEigenDADisperserRegistryInitialized) (event.Subscription, error) { + + logs, sub, err := _ContractEigenDADisperserRegistry.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ContractEigenDADisperserRegistryInitialized) + if err := _ContractEigenDADisperserRegistry.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// +// Solidity: event Initialized(uint8 version) +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryFilterer) ParseInitialized(log types.Log) (*ContractEigenDADisperserRegistryInitialized, error) { + event := new(ContractEigenDADisperserRegistryInitialized) + if err := _ContractEigenDADisperserRegistry.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ContractEigenDADisperserRegistryOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the ContractEigenDADisperserRegistry contract. +type ContractEigenDADisperserRegistryOwnershipTransferredIterator struct { + Event *ContractEigenDADisperserRegistryOwnershipTransferred // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ContractEigenDADisperserRegistryOwnershipTransferredIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ContractEigenDADisperserRegistryOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ContractEigenDADisperserRegistryOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ContractEigenDADisperserRegistryOwnershipTransferredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ContractEigenDADisperserRegistryOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ContractEigenDADisperserRegistryOwnershipTransferred represents a OwnershipTransferred event raised by the ContractEigenDADisperserRegistry contract. +type ContractEigenDADisperserRegistryOwnershipTransferred struct { + PreviousOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*ContractEigenDADisperserRegistryOwnershipTransferredIterator, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _ContractEigenDADisperserRegistry.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &ContractEigenDADisperserRegistryOwnershipTransferredIterator{contract: _ContractEigenDADisperserRegistry.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil +} + +// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *ContractEigenDADisperserRegistryOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _ContractEigenDADisperserRegistry.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ContractEigenDADisperserRegistryOwnershipTransferred) + if err := _ContractEigenDADisperserRegistry.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_ContractEigenDADisperserRegistry *ContractEigenDADisperserRegistryFilterer) ParseOwnershipTransferred(log types.Log) (*ContractEigenDADisperserRegistryOwnershipTransferred, error) { + event := new(ContractEigenDADisperserRegistryOwnershipTransferred) + if err := _ContractEigenDADisperserRegistry.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/contracts/bindings/EigenDARelayRegistry/binding.go b/contracts/bindings/EigenDARelayRegistry/binding.go index c4b66a7aae..1f91405027 100644 --- a/contracts/bindings/EigenDARelayRegistry/binding.go +++ b/contracts/bindings/EigenDARelayRegistry/binding.go @@ -38,7 +38,7 @@ type RelayInfo struct { // ContractEigenDARelayRegistryMetaData contains all meta data concerning the ContractEigenDARelayRegistry contract. var ContractEigenDARelayRegistryMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"addRelayInfo\",\"inputs\":[{\"name\":\"relayInfo\",\"type\":\"tuple\",\"internalType\":\"structRelayInfo\",\"components\":[{\"name\":\"relayAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"relayURL\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_initialOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"nextRelayKey\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"relayKeyToAddress\",\"inputs\":[{\"name\":\"key\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"relayKeyToInfo\",\"inputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"relayAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"relayURL\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"relayKeyToUrl\",\"inputs\":[{\"name\":\"key\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RelayAdded\",\"inputs\":[{\"name\":\"relay\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"key\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"},{\"name\":\"relayURL\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false}]", - Bin: "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b610998806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063841f6a2e11610066578063841f6a2e146100ff5780638da5cb5b14610120578063b5a872da14610145578063c4d66de814610174578063f2fde38b1461018757600080fd5b806315ddaa5d146100985780632fc35013146100c2578063631eabb8146100d5578063715018a6146100f5575b600080fd5b6066546100a89063ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b6100a86100d0366004610753565b61019a565b6100e86100e3366004610821565b610287565b6040516100b9919061089b565b6100fd610333565b005b61011261010d366004610821565b610347565b6040516100b99291906108ae565b6033546001600160a01b03165b6040516001600160a01b0390911681526020016100b9565b61012d610153366004610821565b63ffffffff166000908152606560205260409020546001600160a01b031690565b6100fd6101823660046108da565b6103f6565b6100fd6101953660046108da565b61050e565b60006101a4610587565b60665463ffffffff166000908152606560209081526040909120835181546001600160a01b0319166001600160a01b0390911617815583820151805185936101f3926001850192910190610633565b50506066548351602085015160405163ffffffff90931693506001600160a01b03909116917f01c289e409d41a712a615bf286126433da55c193bbe64fc8e77af5f1ff13db99916102439161089b565b60405180910390a36066805463ffffffff16906000610261836108f5565b91906101000a81548163ffffffff021916908363ffffffff16021790555090505b919050565b63ffffffff811660009081526065602052604090206001018054606091906102ae90610927565b80601f01602080910402602001604051908101604052809291908181526020018280546102da90610927565b80156103275780601f106102fc57610100808354040283529160200191610327565b820191906000526020600020905b81548152906001019060200180831161030a57829003601f168201915b50505050509050919050565b61033b610587565b61034560006105e1565b565b606560205260009081526040902080546001820180546001600160a01b03909216929161037390610927565b80601f016020809104026020016040519081016040528092919081815260200182805461039f90610927565b80156103ec5780601f106103c1576101008083540402835291602001916103ec565b820191906000526020600020905b8154815290600101906020018083116103cf57829003601f168201915b5050505050905082565b600054610100900460ff16158080156104165750600054600160ff909116105b806104305750303b158015610430575060005460ff166001145b6104985760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156104bb576000805461ff0019166101001790555b6104c4826105e1565b801561050a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b610516610587565b6001600160a01b03811661057b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161048f565b610584816105e1565b50565b6033546001600160a01b031633146103455760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161048f565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b82805461063f90610927565b90600052602060002090601f01602090048101928261066157600085556106a7565b82601f1061067a57805160ff19168380011785556106a7565b828001600101855582156106a7579182015b828111156106a757825182559160200191906001019061068c565b506106b39291506106b7565b5090565b5b808211156106b357600081556001016106b8565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610705576107056106cc565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610734576107346106cc565b604052919050565b80356001600160a01b038116811461028257600080fd5b6000602080838503121561076657600080fd5b823567ffffffffffffffff8082111561077e57600080fd5b908401906040828703121561079257600080fd5b61079a6106e2565b6107a38361073c565b815283830135828111156107b657600080fd5b80840193505086601f8401126107cb57600080fd5b8235828111156107dd576107dd6106cc565b6107ef601f8201601f1916860161070b565b9250808352878582860101111561080557600080fd5b8085850186850137600090830185015292830152509392505050565b60006020828403121561083357600080fd5b813563ffffffff8116811461084757600080fd5b9392505050565b6000815180845260005b8181101561087457602081850181015186830182015201610858565b81811115610886576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610847602083018461084e565b6001600160a01b03831681526040602082018190526000906108d29083018461084e565b949350505050565b6000602082840312156108ec57600080fd5b6108478261073c565b600063ffffffff8083168181141561091d57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b600181811c9082168061093b57607f821691505b6020821081141561095c57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220989b58f81a8a48ad639b6c39c5f4b5b006e5fdc60a8c434666caec684f7d2b8964736f6c634300080c0033", + Bin: "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b610998806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063841f6a2e11610066578063841f6a2e146100ff5780638da5cb5b14610120578063b5a872da14610145578063c4d66de814610174578063f2fde38b1461018757600080fd5b806315ddaa5d146100985780632fc35013146100c2578063631eabb8146100d5578063715018a6146100f5575b600080fd5b6066546100a89063ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b6100a86100d0366004610753565b61019a565b6100e86100e3366004610821565b610287565b6040516100b9919061089b565b6100fd610333565b005b61011261010d366004610821565b610347565b6040516100b99291906108ae565b6033546001600160a01b03165b6040516001600160a01b0390911681526020016100b9565b61012d610153366004610821565b63ffffffff166000908152606560205260409020546001600160a01b031690565b6100fd6101823660046108da565b6103f6565b6100fd6101953660046108da565b61050e565b60006101a4610587565b60665463ffffffff166000908152606560209081526040909120835181546001600160a01b0319166001600160a01b0390911617815583820151805185936101f3926001850192910190610633565b50506066548351602085015160405163ffffffff90931693506001600160a01b03909116917f01c289e409d41a712a615bf286126433da55c193bbe64fc8e77af5f1ff13db99916102439161089b565b60405180910390a36066805463ffffffff16906000610261836108f5565b91906101000a81548163ffffffff021916908363ffffffff16021790555090505b919050565b63ffffffff811660009081526065602052604090206001018054606091906102ae90610927565b80601f01602080910402602001604051908101604052809291908181526020018280546102da90610927565b80156103275780601f106102fc57610100808354040283529160200191610327565b820191906000526020600020905b81548152906001019060200180831161030a57829003601f168201915b50505050509050919050565b61033b610587565b61034560006105e1565b565b606560205260009081526040902080546001820180546001600160a01b03909216929161037390610927565b80601f016020809104026020016040519081016040528092919081815260200182805461039f90610927565b80156103ec5780601f106103c1576101008083540402835291602001916103ec565b820191906000526020600020905b8154815290600101906020018083116103cf57829003601f168201915b5050505050905082565b600054610100900460ff16158080156104165750600054600160ff909116105b806104305750303b158015610430575060005460ff166001145b6104985760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156104bb576000805461ff0019166101001790555b6104c4826105e1565b801561050a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b610516610587565b6001600160a01b03811661057b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161048f565b610584816105e1565b50565b6033546001600160a01b031633146103455760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161048f565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b82805461063f90610927565b90600052602060002090601f01602090048101928261066157600085556106a7565b82601f1061067a57805160ff19168380011785556106a7565b828001600101855582156106a7579182015b828111156106a757825182559160200191906001019061068c565b506106b39291506106b7565b5090565b5b808211156106b357600081556001016106b8565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610705576107056106cc565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610734576107346106cc565b604052919050565b80356001600160a01b038116811461028257600080fd5b6000602080838503121561076657600080fd5b823567ffffffffffffffff8082111561077e57600080fd5b908401906040828703121561079257600080fd5b61079a6106e2565b6107a38361073c565b815283830135828111156107b657600080fd5b80840193505086601f8401126107cb57600080fd5b8235828111156107dd576107dd6106cc565b6107ef601f8201601f1916860161070b565b9250808352878582860101111561080557600080fd5b8085850186850137600090830185015292830152509392505050565b60006020828403121561083357600080fd5b813563ffffffff8116811461084757600080fd5b9392505050565b6000815180845260005b8181101561087457602081850181015186830182015201610858565b81811115610886576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610847602083018461084e565b6001600160a01b03831681526040602082018190526000906108d29083018461084e565b949350505050565b6000602082840312156108ec57600080fd5b6108478261073c565b600063ffffffff8083168181141561091d57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b600181811c9082168061093b57607f821691505b6020821081141561095c57634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212205a962fd68c1824731faa24951593722cba6da5eb6726ffe5954c447d0d79b70164736f6c634300080c0033", } // ContractEigenDARelayRegistryABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/EigenDAServiceManager/binding.go b/contracts/bindings/EigenDAServiceManager/binding.go index 73d7de782f..0b59298a17 100644 --- a/contracts/bindings/EigenDAServiceManager/binding.go +++ b/contracts/bindings/EigenDAServiceManager/binding.go @@ -67,6 +67,22 @@ type IBLSSignatureCheckerQuorumStakeTotals struct { TotalStakeForQuorum []*big.Int } +// IRewardsCoordinatorOperatorDirectedRewardsSubmission is an auto generated low-level Go binding around an user-defined struct. +type IRewardsCoordinatorOperatorDirectedRewardsSubmission struct { + StrategiesAndMultipliers []IRewardsCoordinatorStrategyAndMultiplier + Token common.Address + OperatorRewards []IRewardsCoordinatorOperatorReward + StartTimestamp uint32 + Duration uint32 + Description string +} + +// IRewardsCoordinatorOperatorReward is an auto generated low-level Go binding around an user-defined struct. +type IRewardsCoordinatorOperatorReward struct { + Operator common.Address + Amount *big.Int +} + // IRewardsCoordinatorRewardsSubmission is an auto generated low-level Go binding around an user-defined struct. type IRewardsCoordinatorRewardsSubmission struct { StrategiesAndMultipliers []IRewardsCoordinatorStrategyAndMultiplier @@ -104,8 +120,8 @@ type VersionedBlobParams struct { // ContractEigenDAServiceManagerMetaData contains all meta data concerning the ContractEigenDAServiceManager contract. var ContractEigenDAServiceManagerMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"__avsDirectory\",\"type\":\"address\",\"internalType\":\"contractIAVSDirectory\"},{\"name\":\"__rewardsCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRewardsCoordinator\"},{\"name\":\"__registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"__stakeRegistry\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"},{\"name\":\"__eigenDAThresholdRegistry\",\"type\":\"address\",\"internalType\":\"contractIEigenDAThresholdRegistry\"},{\"name\":\"__eigenDARelayRegistry\",\"type\":\"address\",\"internalType\":\"contractIEigenDARelayRegistry\"},{\"name\":\"__paymentVault\",\"type\":\"address\",\"internalType\":\"contractIPaymentVault\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"BLOCK_STALE_MEASURE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"STORE_DURATION_BLOCKS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"THRESHOLD_DENOMINATOR\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"avsDirectory\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"batchId\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"batchIdToBatchMetadataHash\",\"inputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"blsApkRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIBLSApkRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"checkSignatures\",\"inputs\":[{\"name\":\"msgHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.NonSignerStakesAndSignature\",\"components\":[{\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApks\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\",\"internalType\":\"uint32[][]\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.QuorumStakeTotals\",\"components\":[{\"name\":\"signedStakeForQuorum\",\"type\":\"uint96[]\",\"internalType\":\"uint96[]\"},{\"name\":\"totalStakeForQuorum\",\"type\":\"uint96[]\",\"internalType\":\"uint96[]\"}]},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"confirmBatch\",\"inputs\":[{\"name\":\"batchHeader\",\"type\":\"tuple\",\"internalType\":\"structBatchHeader\",\"components\":[{\"name\":\"blobHeadersRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signedStakeForQuorums\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"nonSignerStakesAndSignature\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.NonSignerStakesAndSignature\",\"components\":[{\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApks\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\",\"internalType\":\"uint32[][]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createAVSRewardsSubmission\",\"inputs\":[{\"name\":\"rewardsSubmissions\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinator.RewardsSubmission[]\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinator.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deregisterOperatorFromAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"eigenDARelayRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenDARelayRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenDAThresholdRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenDAThresholdRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBlobParams\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structVersionedBlobParams\",\"components\":[{\"name\":\"maxNumOperators\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"numChunks\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"codingRate\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDefaultSecurityThresholdsV2\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getIsQuorumRequired\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorRestakedStrategies\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumAdversaryThresholdPercentage\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumConfirmationThresholdPercentage\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRestakeableStrategies\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_batchConfirmers\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"_rewardsInitiator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isBatchConfirmer\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"latestServeUntilBlock\",\"inputs\":[{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paymentVault\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPaymentVault\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumAdversaryThresholdPercentages\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumConfirmationThresholdPercentages\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumNumbersRequired\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerOperatorToAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registryCoordinator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"rewardsInitiator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setBatchConfirmer\",\"inputs\":[{\"name\":\"_batchConfirmer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setPauserRegistry\",\"inputs\":[{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setRewardsInitiator\",\"inputs\":[{\"name\":\"newRewardsInitiator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setStaleStakesForbidden\",\"inputs\":[{\"name\":\"value\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stakeRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"staleStakesForbidden\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"taskNumber\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"trySignatureAndApkVerification\",\"inputs\":[{\"name\":\"msgHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[{\"name\":\"pairingSuccessful\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"siganatureIsValid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateAVSMetadataURI\",\"inputs\":[{\"name\":\"_metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"BatchConfirmed\",\"inputs\":[{\"name\":\"batchHeaderHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"batchId\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BatchConfirmerStatusChanged\",\"inputs\":[{\"name\":\"batchConfirmer\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"status\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DefaultSecurityThresholdsV2Updated\",\"inputs\":[{\"name\":\"previousDefaultSecurityThresholdsV2\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"newDefaultSecurityThresholdsV2\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"PauserRegistrySet\",\"inputs\":[{\"name\":\"pauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumAdversaryThresholdPercentagesUpdated\",\"inputs\":[{\"name\":\"previousQuorumAdversaryThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"newQuorumAdversaryThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumConfirmationThresholdPercentagesUpdated\",\"inputs\":[{\"name\":\"previousQuorumConfirmationThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"newQuorumConfirmationThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumNumbersRequiredUpdated\",\"inputs\":[{\"name\":\"previousQuorumNumbersRequired\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"newQuorumNumbersRequired\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RewardsInitiatorUpdated\",\"inputs\":[{\"name\":\"prevRewardsInitiator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newRewardsInitiator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StaleStakesForbiddenUpdate\",\"inputs\":[{\"name\":\"value\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"VersionedBlobParamsAdded\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint16\",\"indexed\":true,\"internalType\":\"uint16\"},{\"name\":\"versionedBlobParams\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structVersionedBlobParams\",\"components\":[{\"name\":\"maxNumOperators\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"numChunks\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"codingRate\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"anonymous\":false}]", - Bin: "0x6101e06040523480156200001257600080fd5b5060405162005fdc38038062005fdc8339810160408190526200003591620002fd565b6001600160a01b0380841660805280831660a05280821660c05280881660e052808716610100528086166101205284166101405284878782876200007862000222565b50505050806001600160a01b0316610160816001600160a01b031681525050806001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000fc9190620003a8565b6001600160a01b0316610180816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000155573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017b9190620003a8565b6001600160a01b03166101a0816001600160a01b031681525050610180516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fd9190620003a8565b6001600160a01b03166101c052506200021562000222565b50505050505050620003cf565b603254610100900460ff16156200028f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60325460ff9081161015620002e2576032805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114620002fa57600080fd5b50565b600080600080600080600060e0888a0312156200031957600080fd5b87516200032681620002e4565b60208901519097506200033981620002e4565b60408901519096506200034c81620002e4565b60608901519095506200035f81620002e4565b60808901519094506200037281620002e4565b60a08901519093506200038581620002e4565b60c08901519092506200039881620002e4565b8091505092959891949750929550565b600060208284031215620003bb57600080fd5b8151620003c881620002e4565b9392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c051615aa662000536600039600081816106430152611aac01526000818161044f0152611c8e0152600081816104a101528181611e6401526120260152600081816104ee015281816111c8015281816117770152818161190f0152611b49015260008181610ee00152818161103b015281816110d201528181612de401528181612f670152613006015260008181610d0b01528181610d9a01528181610e1a01528181612a8801528181612b4c01528181612d220152612ec2015260008181613517015281816135d301526136bf0152600081816104c501528181612adc01528181612ba80152612c27015260006106ad0152600061053e01526000818161073e015281816107b401528181610a4301528181610c7b015281816129f401528181612c6001528181612cc00152818161311c01526131690152615aa66000f3fe608060405234801561001057600080fd5b50600436106102bb5760003560e01c80637794965a11610182578063e481af9d116100e9578063ef635529116100a2578063f8c668141161007c578063f8c6681414610739578063fabc1cbc14610760578063fc299dee14610773578063fce36c7d1461078657600080fd5b8063ef635529146106ea578063f122098314610713578063f2fde38b1461072657600080fd5b8063e481af9d1461066d578063eaefd27d14610675578063eccbbfc914610688578063ed3916f7146106a8578063ee6c3bcf146106cf578063ef024458146106e257600080fd5b8063a5b7890a1161013b578063a5b7890a146105f3578063a98fb35514610616578063b98d090814610629578063bafa910714610636578063df5cf7231461063e578063e15234ff1461066557600080fd5b80637794965a146105815780638687feae14610594578063886f1195146105a95780638da5cb5b146105bc5780639926ee7d146105cd578063a364f4da146105e057600080fd5b80635c975abb116102265780636d14a987116101df5780636d14a987146104e95780636efb463614610510578063715018a614610531578063722764431461053957806372d18e8d14610560578063775bbcb51461056e57600080fd5b80635c975abb146104385780635df459461461044a5780635e033476146104895780635e8b3f2d14610493578063683048351461049c5780636b3aa72e146104c357600080fd5b806333cfb7b71161027857806333cfb7b7146103a25780633bc28c8c146103c2578063416c7e5e146103d55780634972134a146103e8578063595c6a671461040d5780635ac86ab71461041557600080fd5b8063048886d2146102c057806310d67a2f146102e8578063136439dd146102fd5780631429c7c214610310578063171f1d5b146103355780632ecfe72b1461035f575b600080fd5b6102d36102ce3660046146f6565b610799565b60405190151581526020015b60405180910390f35b6102fb6102f6366004614728565b61082d565b005b6102fb61030b366004614745565b6108e9565b61032361031e3660046146f6565b610a28565b60405160ff90911681526020016102df565b6103486103433660046148af565b610ab7565b6040805192151583529015156020830152016102df565b61037261036d366004614900565b610c41565b60408051825163ffffffff9081168252602080850151909116908201529181015160ff16908201526060016102df565b6103b56103b0366004614728565b610ce6565b6040516102df919061492f565b6102fb6103d0366004614728565b6111b5565b6102fb6103e336600461498a565b6111c6565b6000546103f89063ffffffff1681565b60405163ffffffff90911681526020016102df565b6102fb6112fd565b6102d36104233660046146f6565b60fc54600160ff9092169190911b9081161490565b60fc545b6040519081526020016102df565b6104717f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102df565b6103f8620189c081565b6103f861012c81565b6104717f000000000000000000000000000000000000000000000000000000000000000081565b7f0000000000000000000000000000000000000000000000000000000000000000610471565b6104717f000000000000000000000000000000000000000000000000000000000000000081565b61052361051e366004614c68565b6113c4565b6040516102df929190614d5b565b6102fb6122db565b6104717f000000000000000000000000000000000000000000000000000000000000000081565b60005463ffffffff166103f8565b6102fb61057c366004614da4565b6122ef565b6102fb61058f366004614e7f565b612458565b61059c6129f0565b6040516102df9190614f46565b60fb54610471906001600160a01b031681565b6065546001600160a01b0316610471565b6102fb6105db366004614fd9565b612a7d565b6102fb6105ee366004614728565b612b41565b6102d3610601366004614728565b60026020526000908152604090205460ff1681565b6102fb610624366004615084565b612c08565b60c9546102d39060ff1681565b61059c612c5c565b6104717f000000000000000000000000000000000000000000000000000000000000000081565b61059c612cbc565b6103b5612d1c565b6103f86106833660046150d4565b6130e5565b61043c6106963660046150d4565b60016020526000908152604090205481565b6104717f000000000000000000000000000000000000000000000000000000000000000081565b6103236106dd3660046146f6565b613101565b61043c606481565b6106f2613153565b60408051825160ff90811682526020938401511692810192909252016102df565b6102fb610721366004614728565b6131e8565b6102fb610734366004614728565b6131f9565b6104717f000000000000000000000000000000000000000000000000000000000000000081565b6102fb61076e366004614745565b61326f565b609754610471906001600160a01b031681565b6102fb6107943660046150f1565b6133cb565b604051630244436960e11b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063048886d290602401602060405180830381865afa158015610803573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108279190615165565b92915050565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610880573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a49190615182565b6001600160a01b0316336001600160a01b0316146108dd5760405162461bcd60e51b81526004016108d49061519f565b60405180910390fd5b6108e6816136f6565b50565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610931573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109559190615165565b6109715760405162461bcd60e51b81526004016108d4906151e9565b60fc54818116146109ea5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c697479000000000000000060648201526084016108d4565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b604051630a14e3e160e11b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631429c7c2906024015b602060405180830381865afa158015610a93573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108279190615231565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000187876000015188602001518860000151600060028110610aff57610aff61524e565b60200201518951600160200201518a60200151600060028110610b2457610b2461524e565b60200201518b60200151600160028110610b4057610b4061524e565b602090810291909101518c518d830151604051610b9d9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610bc09190615264565b9050610c33610bd9610bd288846137ed565b8690613884565b610be1613918565b610c29610c1a85610c14604080518082018252600080825260209182015281518083019092526001825260029082015290565b906137ed565b610c238c6139d8565b90613884565b886201d4c0613a68565b909890975095505050505050565b60408051606081018252600080825260208201819052818301529051632ecfe72b60e01b815261ffff831660048201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632ecfe72b90602401606060405180830381865afa158015610cc2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108279190615286565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610d52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7691906152f7565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa158015610de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e059190615310565b90506001600160c01b0381161580610e9f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9a9190615231565b60ff16155b15610ebb57505060408051600081526020810190915292915050565b6000610ecf826001600160c01b0316613c8c565b90506000805b8251811015610fa5577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610f1f57610f1f61524e565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8791906152f7565b610f91908361534f565b915080610f9d81615367565b915050610ed5565b506000816001600160401b03811115610fc057610fc061475e565b604051908082528060200260200182016040528015610fe9578160200160208202803683370190505b5090506000805b84518110156111a857600085828151811061100d5761100d61524e565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015611082573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a691906152f7565b905060005b81811015611192576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015611120573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111449190615397565b6000015186868151811061115a5761115a61524e565b6001600160a01b03909216602092830291909101909101528461117c81615367565b955050808061118a90615367565b9150506110ab565b50505080806111a090615367565b915050610ff0565b5090979650505050505050565b6111bd613d4e565b6108e681613da8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611224573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112489190615182565b6001600160a01b0316336001600160a01b0316146112f45760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a4016108d4565b6108e681613e11565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015611345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113699190615165565b6113855760405162461bcd60e51b81526004016108d4906151e9565b60001960fc81905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b604080518082019091526060808252602082015260008461143b5760405162461bcd60e51b81526020600482015260376024820152600080516020615a5183398151915260448201527f7265733a20656d7074792071756f72756d20696e70757400000000000000000060648201526084016108d4565b60408301515185148015611453575060a08301515185145b8015611463575060c08301515185145b8015611473575060e08301515185145b6114dd5760405162461bcd60e51b81526020600482015260416024820152600080516020615a5183398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a4016108d4565b825151602084015151146115555760405162461bcd60e51b815260206004820152604460248201819052600080516020615a51833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a4016108d4565b4363ffffffff168463ffffffff16106115c45760405162461bcd60e51b815260206004820152603c6024820152600080516020615a5183398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b0000000060648201526084016108d4565b6040805180820182526000808252602080830191909152825180840190935260608084529083015290866001600160401b038111156116055761160561475e565b60405190808252806020026020018201604052801561162e578160200160208202803683370190505b506020820152866001600160401b0381111561164c5761164c61475e565b604051908082528060200260200182016040528015611675578160200160208202803683370190505b50815260408051808201909152606080825260208201528560200151516001600160401b038111156116a9576116a961475e565b6040519080825280602002602001820160405280156116d2578160200160208202803683370190505b5081526020860151516001600160401b038111156116f2576116f261475e565b60405190808252806020026020018201604052801561171b578160200160208202803683370190505b50816020018190525060006117ed8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051639aa1653d60e01b815290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169350639aa1653d925060048083019260209291908290030181865afa1580156117c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e89190615231565b613e59565b905060005b876020015151811015611a8857611837886020015182815181106118185761181861524e565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061184d5761184d61524e565b6020908102919091010152801561190d57602083015161186e6001836153d8565b8151811061187e5761187e61524e565b602002602001015160001c8360200151828151811061189f5761189f61524e565b602002602001015160001c1161190d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615a5183398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f7274656460648201526084016108d4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec6351846020015183815181106119525761195261524e565b60200260200101518b8b6000015185815181106119715761197161524e565b60200260200101516040518463ffffffff1660e01b81526004016119ae9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa1580156119cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ef9190615310565b6001600160c01b031683600001518281518110611a0e57611a0e61524e565b602002602001018181525050611a74610bd2611a488486600001518581518110611a3a57611a3a61524e565b602002602001015116613eea565b8a602001518481518110611a5e57611a5e61524e565b6020026020010151613f1590919063ffffffff16565b945080611a8081615367565b9150506117f2565b5050611a9383613ff9565b60c95490935060ff16600081611aaa576000611b2c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2c91906152f7565b905060005b8a8110156121aa578215611c8c578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c428f8f86818110611b8857611b8861524e565b60405160e085901b6001600160e01b031916815292013560f81c600483015250602401602060405180830381865afa158015611bc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bec91906152f7565b611bf6919061534f565b11611c8c5760405162461bcd60e51b81526020600482015260666024820152600080516020615a5183398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c4016108d4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac8d8d84818110611ccd57611ccd61524e565b9050013560f81c60f81b60f81c8c8c60a001518581518110611cf157611cf161524e565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611d4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7191906153ef565b6001600160401b031916611d948a6040015183815181106118185761181861524e565b67ffffffffffffffff191614611e305760405162461bcd60e51b81526020600482015260616024820152600080516020615a5183398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c4016108d4565b611e6089604001518281518110611e4957611e4961524e565b60200260200101518761388490919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c568d8d84818110611ea357611ea361524e565b9050013560f81c60f81b60f81c8c8c60c001518581518110611ec757611ec761524e565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611f23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f47919061541a565b85602001518281518110611f5d57611f5d61524e565b6001600160601b03909216602092830291909101820152850151805182908110611f8957611f8961524e565b602002602001015185600001518281518110611fa757611fa761524e565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a60200151518110156121955761201f86600001518281518110611ff157611ff161524e565b60200260200101518f8f8681811061200b5761200b61524e565b600192013560f81c9290921c811614919050565b15612183577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae8f8f868181106120655761206561524e565b9050013560f81c60f81b60f81c8e896020015185815181106120895761208961524e565b60200260200101518f60e0015188815181106120a7576120a761524e565b602002602001015187815181106120c0576120c061524e565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015612124573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612148919061541a565b875180518590811061215c5761215c61524e565b602002602001018181516121709190615437565b6001600160601b03169052506001909101905b8061218d81615367565b915050611fcb565b505080806121a290615367565b915050611b31565b5050506000806121c48c868a606001518b60800151610ab7565b91509150816122355760405162461bcd60e51b81526020600482015260436024820152600080516020615a5183398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a4016108d4565b806122965760405162461bcd60e51b81526020600482015260396024820152600080516020615a5183398151915260448201527f7265733a207369676e617475726520697320696e76616c69640000000000000060648201526084016108d4565b505060008782602001516040516020016122b192919061545f565b60408051808303601f190181529190528051602090910120929b929a509198505050505050505050565b6122e3613d4e565b6122ed6000614094565b565b603254610100900460ff161580801561230f5750603254600160ff909116105b806123295750303b158015612329575060325460ff166001145b61238c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108d4565b6032805460ff1916600117905580156123af576032805461ff0019166101001790555b6123b986866140e6565b6123c284614094565b6123cb82613da8565b60005b8351811015612409576123f98482815181106123ec576123ec61524e565b60200260200101516141d0565b61240281615367565b90506123ce565b508015612450576032805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b60fc54600090600190811614156124b15760405162461bcd60e51b815260206004820152601960248201527f5061757361626c653a20696e646578206973207061757365640000000000000060448201526064016108d4565b3360009081526002602052604090205460ff166125255760405162461bcd60e51b815260206004820152602c60248201527f6f6e6c794261746368436f6e6669726d65723a206e6f742066726f6d2062617460448201526b31b41031b7b73334b936b2b960a11b60648201526084016108d4565b3233146125a25760405162461bcd60e51b81526020600482015260516024820152600080516020615a3183398151915260448201527f63683a2068656164657220616e64206e6f6e7369676e65722064617461206d75606482015270737420626520696e2063616c6c6461746160781b608482015260a4016108d4565b436125b360808501606086016150d4565b63ffffffff16106126325760405162461bcd60e51b815260206004820152604f6024820152600080516020615a3183398151915260448201527f63683a20737065636966696564207265666572656e6365426c6f636b4e756d6260648201526e657220697320696e2066757475726560881b608482015260a4016108d4565b63ffffffff431661012c61264c60808601606087016150d4565b61265691906154a7565b63ffffffff1610156126dc5760405162461bcd60e51b81526020600482015260556024820152600080516020615a3183398151915260448201527f63683a20737065636966696564207265666572656e6365426c6f636b4e756d62606482015274195c881a5cc81d1bdbc819985c881a5b881c185cdd605a1b608482015260a4016108d4565b6126e960408401846154cf565b90506126f860208501856154cf565b9050146127905760405162461bcd60e51b81526020600482015260666024820152600080516020615a3183398151915260448201527f63683a2071756f72756d4e756d6265727320616e64207369676e65645374616b60648201527f65466f7251756f72756d73206d757374206265206f66207468652073616d65206084820152650d8cadccee8d60d31b60a482015260c4016108d4565b60006127a361279e8561551c565b614233565b90506000806127cf836127b960208901896154cf565b6127c960808b0160608c016150d4565b896113c4565b9150915060005b6127e360408801886154cf565b9050811015612925576127f960408801886154cf565b828181106128095761280961524e565b9050013560f81c60f81b60f81c60ff168360200151828151811061282f5761282f61524e565b602002602001015161284191906155be565b6001600160601b03166064846000015183815181106128625761286261524e565b60200260200101516001600160601b031661287d91906155ed565b10156129135760405162461bcd60e51b815260206004820152606460248201819052600080516020615a3183398151915260448301527f63683a207369676e61746f7269657320646f206e6f74206f776e206174206c65908201527f617374207468726573686f6c642070657263656e74616765206f6620612071756084820152636f72756d60e01b60a482015260c4016108d4565b8061291d81615367565b9150506127d6565b506000805463ffffffff169061293a886142ae565b6040805160208082018490528183018790524360e01b6001600160e01b0319166060830152825160448184030181526064830180855281519183019190912063ffffffff881660008181526001909452928590205552905191925086917fc75557c4ad49697e231449688be13ef11cb6be8ed0d18819d8dde074a5a16f8a9181900360840190a26129cc8260016154a7565b6000805463ffffffff191663ffffffff929092169190911790555050505050505050565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638687feae6040518163ffffffff1660e01b8152600401600060405180830381865afa158015612a50573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a78919081019061560c565b905090565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612ac55760405162461bcd60e51b81526004016108d490615682565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d90612b1390859085906004016156fa565b600060405180830381600087803b158015612b2d57600080fd5b505af1158015612450573d6000803e3d6000fd5b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612b895760405162461bcd60e51b81526004016108d490615682565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b158015612bed57600080fd5b505af1158015612c01573d6000803e3d6000fd5b5050505050565b612c10613d4e565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb35590612bd3908490600401614f46565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bafa91076040518163ffffffff1660e01b8152600401600060405180830381865afa158015612a50573d6000803e3d6000fd5b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e15234ff6040518163ffffffff1660e01b8152600401600060405180830381865afa158015612a50573d6000803e3d6000fd5b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612da29190615231565b60ff16905080612dc057505060408051600081526020810190915290565b6000805b82811015612e7557604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612e33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e5791906152f7565b612e61908361534f565b915080612e6d81615367565b915050612dc4565b506000816001600160401b03811115612e9057612e9061475e565b604051908082528060200260200182016040528015612eb9578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f429190615231565b60ff168110156130db57604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612fb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fda91906152f7565b905060005b818110156130c6576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015613054573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130789190615397565b6000015185858151811061308e5761308e61524e565b6001600160a01b0390921660209283029190910190910152836130b081615367565b94505080806130be90615367565b915050612fdf565b505080806130d390615367565b915050612ec0565b5090949350505050565b600061012c6130f7620189c0846154a7565b61082791906154a7565b60405163ee6c3bcf60e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ee6c3bcf90602401610a76565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ef6355296040518163ffffffff1660e01b81526004016040805180830381865afa1580156131c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a789190615745565b6131f0613d4e565b6108e6816141d0565b613201613d4e565b6001600160a01b0381166132665760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108d4565b6108e681614094565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132e69190615182565b6001600160a01b0316336001600160a01b0316146133165760405162461bcd60e51b81526004016108d49061519f565b60fc5419811960fc541916146133945760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c697479000000000000000060648201526084016108d4565b60fc81905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610a1d565b6133d36142c1565b60005b818110156136a7578282828181106133f0576133f061524e565b9050602002810190613402919061577a565b613413906040810190602001614728565b6001600160a01b03166323b872dd33308686868181106134355761343561524e565b9050602002810190613447919061577a565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af115801561349e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c29190615165565b5060008383838181106134d7576134d761524e565b90506020028101906134e9919061577a565b6134fa906040810190602001614728565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa158015613568573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061358c91906152f7565b90508383838181106135a0576135a061524e565b90506020028101906135b2919061577a565b6135c3906040810190602001614728565b6001600160a01b031663095ea7b37f0000000000000000000000000000000000000000000000000000000000000000838787878181106136055761360561524e565b9050602002810190613617919061577a565b60400135613625919061534f565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015613670573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136949190615165565b5050806136a090615367565b90506133d6565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d90612b1390859085906004016157f5565b6001600160a01b0381166137845760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a4016108d4565b60fb54604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a160fb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082019091526000808252602082015261380961460d565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa905080801561383c5761383e565bfe5b508061387c5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016108d4565b505092915050565b60408051808201909152600080825260208201526138a061462b565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080801561383c57508061387c5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016108d4565b613920614649565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082019091526000808252602082015260008080613a08600080516020615a1183398151915286615264565b90505b613a1481614356565b9093509150600080516020615a11833981519152828309831415613a4e576040805180820190915290815260208101919091529392505050565b600080516020615a11833981519152600182089050613a0b565b604080518082018252868152602080820186905282518084019093528683528201849052600091829190613a9a61466e565b60005b6002811015613c5f576000613ab38260066155ed565b9050848260028110613ac757613ac761524e565b60200201515183613ad983600061534f565b600c8110613ae957613ae961524e565b6020020152848260028110613b0057613b0061524e565b60200201516020015183826001613b17919061534f565b600c8110613b2757613b2761524e565b6020020152838260028110613b3e57613b3e61524e565b6020020151515183613b5183600261534f565b600c8110613b6157613b6161524e565b6020020152838260028110613b7857613b7861524e565b6020020151516001602002015183613b9183600361534f565b600c8110613ba157613ba161524e565b6020020152838260028110613bb857613bb861524e565b602002015160200151600060028110613bd357613bd361524e565b602002015183613be483600461534f565b600c8110613bf457613bf461524e565b6020020152838260028110613c0b57613c0b61524e565b602002015160200151600160028110613c2657613c2661524e565b602002015183613c3783600561534f565b600c8110613c4757613c4761524e565b60200201525080613c5781615367565b915050613a9d565b50613c6861468d565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b6060600080613c9a84613eea565b61ffff166001600160401b03811115613cb557613cb561475e565b6040519080825280601f01601f191660200182016040528015613cdf576020820181803683370190505b5090506000805b825182108015613cf7575061010081105b156130db576001811b935085841615613d3e578060f81b838381518110613d2057613d2061524e565b60200101906001600160f81b031916908160001a9053508160010191505b613d4781615367565b9050613ce6565b6065546001600160a01b031633146122ed5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108d4565b609754604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b60c9805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc906020015b60405180910390a150565b600080613e65846143d8565b9050808360ff166001901b11613ee35760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c75650060648201526084016108d4565b9392505050565b6000805b821561082757613eff6001846153d8565b9092169180613f0d81615902565b915050613eee565b60408051808201909152600080825260208201526102008261ffff1610613f715760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b60448201526064016108d4565b8161ffff1660011415613f85575081610827565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613fee57600161ffff871660ff83161c81161415613fd157613fce8484613884565b93505b613fdb8384613884565b92506201fffe600192831b169101613fa1565b509195945050505050565b6040805180820190915260008082526020820152815115801561401e57506020820151155b1561403c575050604080518082019091526000808252602082015290565b604051806040016040528083600001518152602001600080516020615a11833981519152846020015161406f9190615264565b61408790600080516020615a118339815191526153d8565b905292915050565b919050565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60fb546001600160a01b031615801561410757506001600160a01b03821615155b6141895760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a4016108d4565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26141cc826136f6565b5050565b6001600160a01b038116600081815260026020908152604091829020805460ff8082161560ff1990921682179092558351948552161515908301527f5c3265f5fb462ef4930fe47beaa183647c97f19ba545b761f41bc8cd4621d4149101613e4e565b600061427082604080518082019091526000808252602082015250604080518082019091528151815260609091015163ffffffff16602082015290565b6040805182516020808301919091529092015163ffffffff16908201526060015b604051602081830303815290604052805190602001209050919050565b6000816040516020016142919190615992565b6097546001600160a01b031633146122ed5760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a4016108d4565b60008080600080516020615a118339815191526003600080516020615a1183398151915286600080516020615a118339815191528889090908905060006143cc827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615a11833981519152614565565b91959194509092505050565b6000610100825111156144615760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a4016108d4565b815161446f57506000919050565b600080836000815181106144855761448561524e565b0160200151600160f89190911c81901b92505b845181101561455c578481815181106144b3576144b361524e565b0160200151600160f89190911c1b91508282116145485760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a4016108d4565b9181179161455581615367565b9050614498565b50909392505050565b60008061457061468d565b6145786146ab565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa925082801561383c5750826146025760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c75726500000000000060448201526064016108d4565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061465c6146c9565b81526020016146696146c9565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b60ff811681146108e657600080fd5b60006020828403121561470857600080fd5b8135613ee3816146e7565b6001600160a01b03811681146108e657600080fd5b60006020828403121561473a57600080fd5b8135613ee381614713565b60006020828403121561475757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156147965761479661475e565b60405290565b60405161010081016001600160401b03811182821017156147965761479661475e565b604051601f8201601f191681016001600160401b03811182821017156147e7576147e761475e565b604052919050565b60006040828403121561480157600080fd5b614809614774565b9050813581526020820135602082015292915050565b600082601f83011261483057600080fd5b614838614774565b80604084018581111561484a57600080fd5b845b8181101561486457803584526020938401930161484c565b509095945050505050565b60006080828403121561488157600080fd5b614889614774565b9050614895838361481f565b81526148a4836040840161481f565b602082015292915050565b60008060008061012085870312156148c657600080fd5b843593506148d786602087016147ef565b92506148e6866060870161486f565b91506148f58660e087016147ef565b905092959194509250565b60006020828403121561491257600080fd5b813561ffff81168114613ee357600080fd5b803561408f81614713565b6020808252825182820181905260009190848201906040850190845b818110156149705783516001600160a01b03168352928401929184019160010161494b565b50909695505050505050565b80151581146108e657600080fd5b60006020828403121561499c57600080fd5b8135613ee38161497c565b63ffffffff811681146108e657600080fd5b803561408f816149a7565b60006001600160401b038211156149dd576149dd61475e565b5060051b60200190565b600082601f8301126149f857600080fd5b81356020614a0d614a08836149c4565b6147bf565b82815260059290921b84018101918181019086841115614a2c57600080fd5b8286015b84811015614a50578035614a43816149a7565b8352918301918301614a30565b509695505050505050565b600082601f830112614a6c57600080fd5b81356020614a7c614a08836149c4565b82815260069290921b84018101918181019086841115614a9b57600080fd5b8286015b84811015614a5057614ab188826147ef565b835291830191604001614a9f565b600082601f830112614ad057600080fd5b81356020614ae0614a08836149c4565b82815260059290921b84018101918181019086841115614aff57600080fd5b8286015b84811015614a505780356001600160401b03811115614b225760008081fd5b614b308986838b01016149e7565b845250918301918301614b03565b60006101808284031215614b5157600080fd5b614b5961479c565b905081356001600160401b0380821115614b7257600080fd5b614b7e858386016149e7565b83526020840135915080821115614b9457600080fd5b614ba085838601614a5b565b60208401526040840135915080821115614bb957600080fd5b614bc585838601614a5b565b6040840152614bd7856060860161486f565b6060840152614be98560e086016147ef565b6080840152610120840135915080821115614c0357600080fd5b614c0f858386016149e7565b60a0840152610140840135915080821115614c2957600080fd5b614c35858386016149e7565b60c0840152610160840135915080821115614c4f57600080fd5b50614c5c84828501614abf565b60e08301525092915050565b600080600080600060808688031215614c8057600080fd5b8535945060208601356001600160401b0380821115614c9e57600080fd5b818801915088601f830112614cb257600080fd5b813581811115614cc157600080fd5b896020828501011115614cd357600080fd5b6020830196509450614ce7604089016149b9565b93506060880135915080821115614cfd57600080fd5b50614d0a88828901614b3e565b9150509295509295909350565b600081518084526020808501945080840160005b83811015614d505781516001600160601b031687529582019590820190600101614d2b565b509495945050505050565b6040815260008351604080840152614d766080840182614d17565b90506020850151603f19848303016060850152614d938282614d17565b925050508260208301529392505050565b600080600080600060a08688031215614dbc57600080fd5b8535614dc781614713565b945060208681013594506040870135614ddf81614713565b935060608701356001600160401b03811115614dfa57600080fd5b8701601f81018913614e0b57600080fd5b8035614e19614a08826149c4565b81815260059190911b8201830190838101908b831115614e3857600080fd5b928401925b82841015614e5f578335614e5081614713565b82529284019290840190614e3d565b8096505050505050614e7360808701614924565b90509295509295909350565b60008060408385031215614e9257600080fd5b82356001600160401b0380821115614ea957600080fd5b9084019060808287031215614ebd57600080fd5b90925060208401359080821115614ed357600080fd5b50614ee085828601614b3e565b9150509250929050565b60005b83811015614f05578181015183820152602001614eed565b83811115614f14576000848401525b50505050565b60008151808452614f32816020860160208601614eea565b601f01601f19169290920160200192915050565b602081526000613ee36020830184614f1a565b60006001600160401b03821115614f7257614f7261475e565b50601f01601f191660200190565b6000614f8e614a0884614f59565b9050828152838383011115614fa257600080fd5b828260208301376000602084830101529392505050565b600082601f830112614fca57600080fd5b613ee383833560208501614f80565b60008060408385031215614fec57600080fd5b8235614ff781614713565b915060208301356001600160401b038082111561501357600080fd5b908401906060828703121561502757600080fd5b6040516060810181811083821117156150425761504261475e565b60405282358281111561505457600080fd5b61506088828601614fb9565b82525060208301356020820152604083013560408201528093505050509250929050565b60006020828403121561509657600080fd5b81356001600160401b038111156150ac57600080fd5b8201601f810184136150bd57600080fd5b6150cc84823560208401614f80565b949350505050565b6000602082840312156150e657600080fd5b8135613ee3816149a7565b6000806020838503121561510457600080fd5b82356001600160401b038082111561511b57600080fd5b818501915085601f83011261512f57600080fd5b81358181111561513e57600080fd5b8660208260051b850101111561515357600080fd5b60209290920196919550909350505050565b60006020828403121561517757600080fd5b8151613ee38161497c565b60006020828403121561519457600080fd5b8151613ee381614713565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60006020828403121561524357600080fd5b8151613ee3816146e7565b634e487b7160e01b600052603260045260246000fd5b60008261528157634e487b7160e01b600052601260045260246000fd5b500690565b60006060828403121561529857600080fd5b604051606081018181106001600160401b03821117156152ba576152ba61475e565b60405282516152c8816149a7565b815260208301516152d8816149a7565b602082015260408301516152eb816146e7565b60408201529392505050565b60006020828403121561530957600080fd5b5051919050565b60006020828403121561532257600080fd5b81516001600160c01b0381168114613ee357600080fd5b634e487b7160e01b600052601160045260246000fd5b6000821982111561536257615362615339565b500190565b600060001982141561537b5761537b615339565b5060010190565b6001600160601b03811681146108e657600080fd5b6000604082840312156153a957600080fd5b6153b1614774565b82516153bc81614713565b815260208301516153cc81615382565b60208201529392505050565b6000828210156153ea576153ea615339565b500390565b60006020828403121561540157600080fd5b815167ffffffffffffffff1981168114613ee357600080fd5b60006020828403121561542c57600080fd5b8151613ee381615382565b60006001600160601b038381169083168181101561545757615457615339565b039392505050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b8381101561549a5781518552938201939082019060010161547e565b5092979650505050505050565b600063ffffffff8083168185168083038211156154c6576154c6615339565b01949350505050565b6000808335601e198436030181126154e657600080fd5b8301803591506001600160401b0382111561550057600080fd5b60200191503681900382131561551557600080fd5b9250929050565b60006080823603121561552e57600080fd5b604051608081016001600160401b0382821081831117156155515761555161475e565b8160405284358352602085013591508082111561556d57600080fd5b61557936838701614fb9565b6020840152604085013591508082111561559257600080fd5b5061559f36828601614fb9565b60408301525060608301356155b3816149a7565b606082015292915050565b60006001600160601b03808316818516818304811182151516156155e4576155e4615339565b02949350505050565b600081600019048311821515161561560757615607615339565b500290565b60006020828403121561561e57600080fd5b81516001600160401b0381111561563457600080fd5b8201601f8101841361564557600080fd5b8051615653614a0882614f59565b81815285602083850101111561566857600080fd5b615679826020830160208601614eea565b95945050505050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b60018060a01b038316815260406020820152600082516060604084015261572460a0840182614f1a565b90506020840151606084015260408401516080840152809150509392505050565b60006040828403121561575757600080fd5b61575f614774565b825161576a816146e7565b815260208301516153cc816146e7565b60008235609e1983360301811261579057600080fd5b9190910192915050565b8183526000602080850194508260005b85811015614d505781356157bd81614713565b6001600160a01b03168752818301356157d581615382565b6001600160601b03168784015260409687019691909101906001016157aa565b60208082528181018390526000906040808401600586901b8501820187855b888110156158f457878303603f190184528135368b9003609e1901811261583a57600080fd5b8a0160a0813536839003601e1901811261585357600080fd5b820180356001600160401b0381111561586b57600080fd5b8060061b360384131561587d57600080fd5b82875261588f838801828c850161579a565b9250505061589e888301614924565b6001600160a01b031688860152818701358786015260606158c08184016149b9565b63ffffffff169086015260806158d78382016149b9565b63ffffffff16950194909452509285019290850190600101615814565b509098975050505050505050565b600061ffff8083168181141561591a5761591a615339565b6001019392505050565b6000808335601e1984360301811261593b57600080fd5b83016020810192503590506001600160401b0381111561595a57600080fd5b80360383131561551557600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081528135602082015260006159ac6020840184615924565b608060408501526159c160a085018284615969565b9150506159d16040850185615924565b848303601f190160608601526159e8838284615969565b9250505060608401356159fa816149a7565b63ffffffff16608093909301929092525091905056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47456967656e4441536572766963654d616e616765722e636f6e6669726d426174424c535369676e6174757265436865636b65722e636865636b5369676e617475a2646970667358221220815b248136bcef2a47f5676ca5a959ff750af8ee3158cf638a127d4321e9134864736f6c634300080c0033", + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"__avsDirectory\",\"type\":\"address\",\"internalType\":\"contractIAVSDirectory\"},{\"name\":\"__rewardsCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRewardsCoordinator\"},{\"name\":\"__registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"__stakeRegistry\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"},{\"name\":\"__eigenDAThresholdRegistry\",\"type\":\"address\",\"internalType\":\"contractIEigenDAThresholdRegistry\"},{\"name\":\"__eigenDARelayRegistry\",\"type\":\"address\",\"internalType\":\"contractIEigenDARelayRegistry\"},{\"name\":\"__paymentVault\",\"type\":\"address\",\"internalType\":\"contractIPaymentVault\"},{\"name\":\"__eigenDADisperserRegistry\",\"type\":\"address\",\"internalType\":\"contractIEigenDADisperserRegistry\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"BLOCK_STALE_MEASURE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"STORE_DURATION_BLOCKS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"THRESHOLD_DENOMINATOR\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"avsDirectory\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"batchId\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"batchIdToBatchMetadataHash\",\"inputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"blsApkRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIBLSApkRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"checkSignatures\",\"inputs\":[{\"name\":\"msgHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.NonSignerStakesAndSignature\",\"components\":[{\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApks\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\",\"internalType\":\"uint32[][]\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.QuorumStakeTotals\",\"components\":[{\"name\":\"signedStakeForQuorum\",\"type\":\"uint96[]\",\"internalType\":\"uint96[]\"},{\"name\":\"totalStakeForQuorum\",\"type\":\"uint96[]\",\"internalType\":\"uint96[]\"}]},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"confirmBatch\",\"inputs\":[{\"name\":\"batchHeader\",\"type\":\"tuple\",\"internalType\":\"structBatchHeader\",\"components\":[{\"name\":\"blobHeadersRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signedStakeForQuorums\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"nonSignerStakesAndSignature\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.NonSignerStakesAndSignature\",\"components\":[{\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApks\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\",\"internalType\":\"uint32[][]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createAVSRewardsSubmission\",\"inputs\":[{\"name\":\"rewardsSubmissions\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinator.RewardsSubmission[]\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinator.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createOperatorDirectedAVSRewardsSubmission\",\"inputs\":[{\"name\":\"operatorDirectedRewardsSubmissions\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinator.OperatorDirectedRewardsSubmission[]\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinator.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"operatorRewards\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinator.OperatorReward[]\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"description\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deregisterOperatorFromAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"eigenDADisperserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenDADisperserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenDARelayRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenDARelayRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenDAThresholdRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenDAThresholdRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBlobParams\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structVersionedBlobParams\",\"components\":[{\"name\":\"maxNumOperators\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"numChunks\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"codingRate\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDefaultSecurityThresholdsV2\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getIsQuorumRequired\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorRestakedStrategies\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumAdversaryThresholdPercentage\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumConfirmationThresholdPercentage\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRestakeableStrategies\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_batchConfirmers\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"_rewardsInitiator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isBatchConfirmer\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"latestServeUntilBlock\",\"inputs\":[{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paymentVault\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPaymentVault\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumAdversaryThresholdPercentages\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumConfirmationThresholdPercentages\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumNumbersRequired\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerOperatorToAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registryCoordinator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"rewardsInitiator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setBatchConfirmer\",\"inputs\":[{\"name\":\"_batchConfirmer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setClaimerFor\",\"inputs\":[{\"name\":\"claimer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setPauserRegistry\",\"inputs\":[{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setRewardsInitiator\",\"inputs\":[{\"name\":\"newRewardsInitiator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setStaleStakesForbidden\",\"inputs\":[{\"name\":\"value\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stakeRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"staleStakesForbidden\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"taskNumber\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"trySignatureAndApkVerification\",\"inputs\":[{\"name\":\"msgHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[{\"name\":\"pairingSuccessful\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"siganatureIsValid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateAVSMetadataURI\",\"inputs\":[{\"name\":\"_metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"BatchConfirmed\",\"inputs\":[{\"name\":\"batchHeaderHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"batchId\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BatchConfirmerStatusChanged\",\"inputs\":[{\"name\":\"batchConfirmer\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"status\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DefaultSecurityThresholdsV2Updated\",\"inputs\":[{\"name\":\"previousDefaultSecurityThresholdsV2\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"newDefaultSecurityThresholdsV2\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"PauserRegistrySet\",\"inputs\":[{\"name\":\"pauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumAdversaryThresholdPercentagesUpdated\",\"inputs\":[{\"name\":\"previousQuorumAdversaryThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"newQuorumAdversaryThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumConfirmationThresholdPercentagesUpdated\",\"inputs\":[{\"name\":\"previousQuorumConfirmationThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"newQuorumConfirmationThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumNumbersRequiredUpdated\",\"inputs\":[{\"name\":\"previousQuorumNumbersRequired\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"newQuorumNumbersRequired\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RewardsInitiatorUpdated\",\"inputs\":[{\"name\":\"prevRewardsInitiator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newRewardsInitiator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StaleStakesForbiddenUpdate\",\"inputs\":[{\"name\":\"value\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"VersionedBlobParamsAdded\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint16\",\"indexed\":true,\"internalType\":\"uint16\"},{\"name\":\"versionedBlobParams\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structVersionedBlobParams\",\"components\":[{\"name\":\"maxNumOperators\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"numChunks\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"codingRate\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"anonymous\":false}]", + Bin: "0x6102006040523480156200001257600080fd5b506040516200657038038062006570833981016040819052620000359162000305565b6001600160a01b0380851660805280841660a05280831660c05280821660e05280891661010052808816610120528087166101405285166101605285888882886200007f6200022a565b50505050806001600160a01b0316610180816001600160a01b031681525050806001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001039190620003c6565b6001600160a01b03166101a0816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200015c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001829190620003c6565b6001600160a01b03166101c0816001600160a01b0316815250506101a0516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002049190620003c6565b6001600160a01b03166101e052506200021c6200022a565b5050505050505050620003ed565b603254610100900460ff1615620002975760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60325460ff9081161015620002ea576032805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200030257600080fd5b50565b600080600080600080600080610100898b0312156200032357600080fd5b88516200033081620002ec565b60208a01519098506200034381620002ec565b60408a01519097506200035681620002ec565b60608a01519096506200036981620002ec565b60808a01519095506200037c81620002ec565b60a08a01519094506200038f81620002ec565b60c08a0151909350620003a281620002ec565b60e08a0151909250620003b581620002ec565b809150509295985092959890939650565b600060208284031215620003d957600080fd5b8151620003e681620002ec565b9392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051615ff56200057b600039600081816106ba0152611b4a0152600081816104a00152611d2c0152600081816104f201528181611f0201526120c401526000818161053f0152818161126601528181611815015281816119ad0152611be7015260008181610f7e015281816110d9015281816111700152818161316b015281816132ee015261338d015260008181610da901528181610e3801528181610eb801528181612a4101528181612f04015281816130a90152613249015260008181612b2101528181612d4001528181612dfc01528181612ec00152818161389e0152818161395a0152613a4601526000818161051601528181612a9501528181612f600152612fae0152600061075e015260006107240152600061058f0152600081816107dc0152818161085201528181610ae101528181610d19015281816129ad01528181612fe701528181613047015281816134a301526134f00152615ff56000f3fe608060405234801561001057600080fd5b506004361061030c5760003560e01c8063886f11951161019d578063eaefd27d116100e9578063ef635529116100a2578063f8c668141161007c578063f8c66814146107d7578063fabc1cbc146107fe578063fc299dee14610811578063fce36c7d1461082457600080fd5b8063ef63552914610788578063f1220983146107b1578063f2fde38b146107c457600080fd5b8063eaefd27d146106ec578063eccbbfc9146106ff578063ed3916f71461071f578063ee6c3bcf14610746578063eeae17f614610759578063ef0244581461078057600080fd5b8063a5b7890a11610156578063bafa910711610130578063bafa9107146106ad578063df5cf723146106b5578063e15234ff146106dc578063e481af9d146106e457600080fd5b8063a5b7890a1461066a578063a98fb3551461068d578063b98d0908146106a057600080fd5b8063886f1195146105fa5780638da5cb5b1461060d5780639926ee7d1461061e578063a0169ddd14610631578063a20b99bf14610644578063a364f4da1461065757600080fd5b80635df459461161025c5780636efb46361161021557806372d18e8d116101ef57806372d18e8d146105b1578063775bbcb5146105bf5780637794965a146105d25780638687feae146105e557600080fd5b80636efb463614610561578063715018a614610582578063722764431461058a57600080fd5b80635df459461461049b5780635e033476146104da5780635e8b3f2d146104e457806368304835146104ed5780636b3aa72e146105145780636d14a9871461053a57600080fd5b806333cfb7b7116102c95780634972134a116102a35780634972134a14610439578063595c6a671461045e5780635ac86ab7146104665780635c975abb1461048957600080fd5b806333cfb7b7146103f35780633bc28c8c14610413578063416c7e5e1461042657600080fd5b8063048886d21461031157806310d67a2f14610339578063136439dd1461034e5780631429c7c214610361578063171f1d5b146103865780632ecfe72b146103b0575b600080fd5b61032461031f366004614a7d565b610837565b60405190151581526020015b60405180910390f35b61034c610347366004614aaf565b6108cb565b005b61034c61035c366004614acc565b610987565b61037461036f366004614a7d565b610ac6565b60405160ff9091168152602001610330565b610399610394366004614c36565b610b55565b604080519215158352901515602083015201610330565b6103c36103be366004614c87565b610cdf565b60408051825163ffffffff9081168252602080850151909116908201529181015160ff1690820152606001610330565b610406610401366004614aaf565b610d84565b6040516103309190614cb6565b61034c610421366004614aaf565b611253565b61034c610434366004614d11565b611264565b6000546104499063ffffffff1681565b60405163ffffffff9091168152602001610330565b61034c61139b565b610324610474366004614a7d565b60fc54600160ff9092169190911b9081161490565b60fc545b604051908152602001610330565b6104c27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610330565b610449620189c081565b61044961012c81565b6104c27f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000006104c2565b6104c27f000000000000000000000000000000000000000000000000000000000000000081565b61057461056f366004614fef565b611462565b6040516103309291906150e2565b61034c612379565b6104c27f000000000000000000000000000000000000000000000000000000000000000081565b60005463ffffffff16610449565b61034c6105cd36600461512b565b61238d565b61034c6105e0366004615206565b6124f6565b6105ed6129a9565b60405161033091906152cd565b60fb546104c2906001600160a01b031681565b6065546001600160a01b03166104c2565b61034c61062c366004615360565b612a36565b61034c61063f366004614aaf565b612afa565b61034c610652366004615456565b612b81565b61034c610665366004614aaf565b612ef9565b610324610678366004614aaf565b60026020526000908152604090205460ff1681565b61034c61069b366004615497565b612f8f565b60c9546103249060ff1681565b6105ed612fe3565b6104c27f000000000000000000000000000000000000000000000000000000000000000081565b6105ed613043565b6104066130a3565b6104496106fa3660046154e7565b61346c565b61048d61070d3660046154e7565b60016020526000908152604090205481565b6104c27f000000000000000000000000000000000000000000000000000000000000000081565b610374610754366004614a7d565b613488565b6104c27f000000000000000000000000000000000000000000000000000000000000000081565b61048d606481565b6107906134da565b60408051825160ff9081168252602093840151169281019290925201610330565b61034c6107bf366004614aaf565b61356f565b61034c6107d2366004614aaf565b613580565b6104c27f000000000000000000000000000000000000000000000000000000000000000081565b61034c61080c366004614acc565b6135f6565b6097546104c2906001600160a01b031681565b61034c610832366004615456565b613752565b604051630244436960e11b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063048886d290602401602060405180830381865afa1580156108a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c59190615504565b92915050565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561091e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109429190615521565b6001600160a01b0316336001600160a01b03161461097b5760405162461bcd60e51b81526004016109729061553e565b60405180910390fd5b61098481613a7d565b50565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156109cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f39190615504565b610a0f5760405162461bcd60e51b815260040161097290615588565b60fc5481811614610a885760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610972565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b604051630a14e3e160e11b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631429c7c2906024015b602060405180830381865afa158015610b31573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c591906155d0565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000187876000015188602001518860000151600060028110610b9d57610b9d6155ed565b60200201518951600160200201518a60200151600060028110610bc257610bc26155ed565b60200201518b60200151600160028110610bde57610bde6155ed565b602090810291909101518c518d830151604051610c3b9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610c5e9190615603565b9050610cd1610c77610c708884613b74565b8690613c0b565b610c7f613c9f565b610cc7610cb885610cb2604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613b74565b610cc18c613d5f565b90613c0b565b886201d4c0613def565b909890975095505050505050565b60408051606081018252600080825260208201819052818301529051632ecfe72b60e01b815261ffff831660048201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632ecfe72b90602401606060405180830381865afa158015610d60573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c59190615625565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610df0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e149190615696565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa158015610e7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea391906156af565b90506001600160c01b0381161580610f3d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3891906155d0565b60ff16155b15610f5957505060408051600081526020810190915292915050565b6000610f6d826001600160c01b0316614013565b90506000805b8251811015611043577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610fbd57610fbd6155ed565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015611001573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110259190615696565b61102f90836156ee565b91508061103b81615706565b915050610f73565b506000816001600160401b0381111561105e5761105e614ae5565b604051908082528060200260200182016040528015611087578160200160208202803683370190505b5090506000805b84518110156112465760008582815181106110ab576110ab6155ed565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015611120573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111449190615696565b905060005b81811015611230576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa1580156111be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e29190615736565b600001518686815181106111f8576111f86155ed565b6001600160a01b03909216602092830291909101909101528461121a81615706565b955050808061122890615706565b915050611149565b505050808061123e90615706565b91505061108e565b5090979650505050505050565b61125b6140d5565b6109848161412f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e69190615521565b6001600160a01b0316336001600160a01b0316146113925760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610972565b61098481614198565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114079190615504565b6114235760405162461bcd60e51b815260040161097290615588565b60001960fc81905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60408051808201909152606080825260208201526000846114d95760405162461bcd60e51b81526020600482015260376024820152600080516020615fa083398151915260448201527f7265733a20656d7074792071756f72756d20696e7075740000000000000000006064820152608401610972565b604083015151851480156114f1575060a08301515185145b8015611501575060c08301515185145b8015611511575060e08301515185145b61157b5760405162461bcd60e51b81526020600482015260416024820152600080516020615fa083398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610972565b825151602084015151146115f35760405162461bcd60e51b815260206004820152604460248201819052600080516020615fa0833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610972565b4363ffffffff168463ffffffff16106116625760405162461bcd60e51b815260206004820152603c6024820152600080516020615fa083398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610972565b6040805180820182526000808252602080830191909152825180840190935260608084529083015290866001600160401b038111156116a3576116a3614ae5565b6040519080825280602002602001820160405280156116cc578160200160208202803683370190505b506020820152866001600160401b038111156116ea576116ea614ae5565b604051908082528060200260200182016040528015611713578160200160208202803683370190505b50815260408051808201909152606080825260208201528560200151516001600160401b0381111561174757611747614ae5565b604051908082528060200260200182016040528015611770578160200160208202803683370190505b5081526020860151516001600160401b0381111561179057611790614ae5565b6040519080825280602002602001820160405280156117b9578160200160208202803683370190505b508160200181905250600061188b8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051639aa1653d60e01b815290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169350639aa1653d925060048083019260209291908290030181865afa158015611862573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188691906155d0565b6141e0565b905060005b876020015151811015611b26576118d5886020015182815181106118b6576118b66155ed565b6020026020010151805160009081526020918201519091526040902090565b836020015182815181106118eb576118eb6155ed565b602090810291909101015280156119ab57602083015161190c600183615777565b8151811061191c5761191c6155ed565b602002602001015160001c8360200151828151811061193d5761193d6155ed565b602002602001015160001c116119ab576040805162461bcd60e51b8152602060048201526024810191909152600080516020615fa083398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610972565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec6351846020015183815181106119f0576119f06155ed565b60200260200101518b8b600001518581518110611a0f57611a0f6155ed565b60200260200101516040518463ffffffff1660e01b8152600401611a4c9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611a69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8d91906156af565b6001600160c01b031683600001518281518110611aac57611aac6155ed565b602002602001018181525050611b12610c70611ae68486600001518581518110611ad857611ad86155ed565b602002602001015116614271565b8a602001518481518110611afc57611afc6155ed565b602002602001015161429c90919063ffffffff16565b945080611b1e81615706565b915050611890565b5050611b3183614380565b60c95490935060ff16600081611b48576000611bca565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ba6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bca9190615696565b905060005b8a811015612248578215611d2a578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c428f8f86818110611c2657611c266155ed565b60405160e085901b6001600160e01b031916815292013560f81c600483015250602401602060405180830381865afa158015611c66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8a9190615696565b611c9491906156ee565b11611d2a5760405162461bcd60e51b81526020600482015260666024820152600080516020615fa083398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610972565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac8d8d84818110611d6b57611d6b6155ed565b9050013560f81c60f81b60f81c8c8c60a001518581518110611d8f57611d8f6155ed565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611deb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0f919061578e565b6001600160401b031916611e328a6040015183815181106118b6576118b66155ed565b67ffffffffffffffff191614611ece5760405162461bcd60e51b81526020600482015260616024820152600080516020615fa083398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610972565b611efe89604001518281518110611ee757611ee76155ed565b602002602001015187613c0b90919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c568d8d84818110611f4157611f416155ed565b9050013560f81c60f81b60f81c8c8c60c001518581518110611f6557611f656155ed565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611fc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe591906157b9565b85602001518281518110611ffb57611ffb6155ed565b6001600160601b03909216602092830291909101820152850151805182908110612027576120276155ed565b602002602001015185600001518281518110612045576120456155ed565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a6020015151811015612233576120bd8660000151828151811061208f5761208f6155ed565b60200260200101518f8f868181106120a9576120a96155ed565b600192013560f81c9290921c811614919050565b15612221577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae8f8f86818110612103576121036155ed565b9050013560f81c60f81b60f81c8e89602001518581518110612127576121276155ed565b60200260200101518f60e001518881518110612145576121456155ed565b6020026020010151878151811061215e5761215e6155ed565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa1580156121c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e691906157b9565b87518051859081106121fa576121fa6155ed565b6020026020010181815161220e91906157d6565b6001600160601b03169052506001909101905b8061222b81615706565b915050612069565b5050808061224090615706565b915050611bcf565b5050506000806122628c868a606001518b60800151610b55565b91509150816122d35760405162461bcd60e51b81526020600482015260436024820152600080516020615fa083398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610972565b806123345760405162461bcd60e51b81526020600482015260396024820152600080516020615fa083398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610972565b5050600087826020015160405160200161234f9291906157fe565b60408051808303601f190181529190528051602090910120929b929a509198505050505050505050565b6123816140d5565b61238b600061441b565b565b603254610100900460ff16158080156123ad5750603254600160ff909116105b806123c75750303b1580156123c7575060325460ff166001145b61242a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610972565b6032805460ff19166001179055801561244d576032805461ff0019166101001790555b612457868661446d565b6124608461441b565b6124698261412f565b60005b83518110156124a75761249784828151811061248a5761248a6155ed565b6020026020010151614557565b6124a081615706565b905061246c565b5080156124ee576032805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b60fc546000906001908116141561254f5760405162461bcd60e51b815260206004820152601960248201527f5061757361626c653a20696e64657820697320706175736564000000000000006044820152606401610972565b3360009081526002602052604090205460ff1661256b57600080fd5b3233146125d05760405162461bcd60e51b815260206004820152602d60248201527f68656164657220616e64206e6f6e7369676e65722064617461206d757374206260448201526c6520696e2063616c6c6461746160981b6064820152608401610972565b436125e160808501606086016154e7565b63ffffffff16106126485760405162461bcd60e51b815260206004820152602b60248201527f737065636966696564207265666572656e6365426c6f636b4e756d626572206960448201526a7320696e2066757475726560a81b6064820152608401610972565b63ffffffff431661012c61266260808601606087016154e7565b61266c9190615846565b63ffffffff1610156126da5760405162461bcd60e51b815260206004820152603160248201527f737065636966696564207265666572656e6365426c6f636b4e756d62657220696044820152701cc81d1bdbc819985c881a5b881c185cdd607a1b6064820152608401610972565b6126e7604084018461586e565b90506126f6602085018561586e565b90501461276b5760405162461bcd60e51b815260206004820152603b60248201527f71756f72756d4e756d6265727320616e64207369676e65645374616b65466f7260448201527f51756f72756d73206d7573742062652073616d65206c656e67746800000000006064820152608401610972565b600061277e612779856158b4565b6145ba565b90506000806127aa83612794602089018961586e565b6127a460808b0160608c016154e7565b89611462565b9150915060005b6127be604088018861586e565b90508110156128de576127d4604088018861586e565b828181106127e4576127e46155ed565b9050013560f81c60f81b60f81c60ff168360200151828151811061280a5761280a6155ed565b602002602001015161281c9190615956565b6001600160601b031660648460000151838151811061283d5761283d6155ed565b60200260200101516001600160601b03166128589190615985565b10156128cc5760405162461bcd60e51b815260206004820152603760248201527f7369676e61746f7269657320646f206e6f74206f776e207468726573686f6c6460448201527f2070657263656e74616765206f6620612071756f72756d0000000000000000006064820152608401610972565b806128d681615706565b9150506127b1565b506000805463ffffffff16906128f388614635565b6040805160208082018490528183018790524360e01b6001600160e01b0319166060830152825160448184030181526064830180855281519183019190912063ffffffff881660008181526001909452928590205552905191925086917fc75557c4ad49697e231449688be13ef11cb6be8ed0d18819d8dde074a5a16f8a9181900360840190a2612985826001615846565b6000805463ffffffff191663ffffffff929092169190911790555050505050505050565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638687feae6040518163ffffffff1660e01b8152600401600060405180830381865afa158015612a09573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a3191908101906159a4565b905090565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612a7e5760405162461bcd60e51b815260040161097290615a1a565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d90612acc9085908590600401615a92565b600060405180830381600087803b158015612ae657600080fd5b505af11580156124ee573d6000803e3d6000fd5b612b026140d5565b60405163a0169ddd60e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a0169ddd906024015b600060405180830381600087803b158015612b6657600080fd5b505af1158015612b7a573d6000803e3d6000fd5b5050505050565b612b89614648565b60005b81811015612ea8576000805b848484818110612baa57612baa6155ed565b9050602002810190612bbc9190615add565b612bca906040810190615afd565b9050811015612c3c57848484818110612be557612be56155ed565b9050602002810190612bf79190615add565b612c05906040810190615afd565b82818110612c1557612c156155ed565b9050604002016020013582612c2a91906156ee565b9150612c3581615706565b9050612b98565b50838383818110612c4f57612c4f6155ed565b9050602002810190612c619190615add565b612c72906040810190602001614aaf565b6040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b0391909116906323b872dd906064016020604051808303816000875af1158015612cc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ceb9190615504565b506000848484818110612d0057612d006155ed565b9050602002810190612d129190615add565b612d23906040810190602001614aaf565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa158015612d91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db59190615696565b9050848484818110612dc957612dc96155ed565b9050602002810190612ddb9190615add565b612dec906040810190602001614aaf565b6001600160a01b031663095ea7b37f0000000000000000000000000000000000000000000000000000000000000000612e2584866156ee565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015612e70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e949190615504565b50505080612ea190615706565b9050612b8c565b50604051634e5cd2fd60e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639cb9a5fa90612acc90309086908690600401615c57565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612f415760405162461bcd60e51b815260040161097290615a1a565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da90602401612b4c565b612f976140d5565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb35590612b4c9084906004016152cd565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bafa91076040518163ffffffff1660e01b8152600401600060405180830381865afa158015612a09573d6000803e3d6000fd5b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e15234ff6040518163ffffffff1660e01b8152600401600060405180830381865afa158015612a09573d6000803e3d6000fd5b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613105573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061312991906155d0565b60ff1690508061314757505060408051600081526020810190915290565b6000805b828110156131fc57604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa1580156131ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131de9190615696565b6131e890836156ee565b9150806131f481615706565b91505061314b565b506000816001600160401b0381111561321757613217614ae5565b604051908082528060200260200182016040528015613240578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132c991906155d0565b60ff1681101561346257604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa15801561333d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133619190615696565b905060005b8181101561344d576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa1580156133db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133ff9190615736565b60000151858581518110613415576134156155ed565b6001600160a01b03909216602092830291909101909101528361343781615706565b945050808061344590615706565b915050613366565b5050808061345a90615706565b915050613247565b5090949350505050565b600061012c61347e620189c084615846565b6108c59190615846565b60405163ee6c3bcf60e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ee6c3bcf90602401610b14565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ef6355296040518163ffffffff1660e01b81526004016040805180830381865afa15801561354b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a319190615db3565b6135776140d5565b61098481614557565b6135886140d5565b6001600160a01b0381166135ed5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610972565b6109848161441b565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613649573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061366d9190615521565b6001600160a01b0316336001600160a01b03161461369d5760405162461bcd60e51b81526004016109729061553e565b60fc5419811960fc5419161461371b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610972565b60fc81905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610abb565b61375a614648565b60005b81811015613a2e57828282818110613777576137776155ed565b90506020028101906137899190615de8565b61379a906040810190602001614aaf565b6001600160a01b03166323b872dd33308686868181106137bc576137bc6155ed565b90506020028101906137ce9190615de8565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af1158015613825573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138499190615504565b50600083838381811061385e5761385e6155ed565b90506020028101906138709190615de8565b613881906040810190602001614aaf565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156138ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139139190615696565b9050838383818110613927576139276155ed565b90506020028101906139399190615de8565b61394a906040810190602001614aaf565b6001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000008387878781811061398c5761398c6155ed565b905060200281019061399e9190615de8565b604001356139ac91906156ee565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156139f7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a1b9190615504565b505080613a2790615706565b905061375d565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d90612acc9085908590600401615dfe565b6001600160a01b038116613b0b5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610972565b60fb54604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a160fb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040805180820190915260008082526020820152613b90614994565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808015613bc357613bc5565bfe5b5080613c035760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610972565b505092915050565b6040805180820190915260008082526020820152613c276149b2565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa9050808015613bc3575080613c035760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610972565b613ca76149d0565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082019091526000808252602082015260008080613d8f600080516020615f8083398151915286615603565b90505b613d9b816146dd565b9093509150600080516020615f80833981519152828309831415613dd5576040805180820190915290815260208101919091529392505050565b600080516020615f80833981519152600182089050613d92565b604080518082018252868152602080820186905282518084019093528683528201849052600091829190613e216149f5565b60005b6002811015613fe6576000613e3a826006615985565b9050848260028110613e4e57613e4e6155ed565b60200201515183613e608360006156ee565b600c8110613e7057613e706155ed565b6020020152848260028110613e8757613e876155ed565b60200201516020015183826001613e9e91906156ee565b600c8110613eae57613eae6155ed565b6020020152838260028110613ec557613ec56155ed565b6020020151515183613ed88360026156ee565b600c8110613ee857613ee86155ed565b6020020152838260028110613eff57613eff6155ed565b6020020151516001602002015183613f188360036156ee565b600c8110613f2857613f286155ed565b6020020152838260028110613f3f57613f3f6155ed565b602002015160200151600060028110613f5a57613f5a6155ed565b602002015183613f6b8360046156ee565b600c8110613f7b57613f7b6155ed565b6020020152838260028110613f9257613f926155ed565b602002015160200151600160028110613fad57613fad6155ed565b602002015183613fbe8360056156ee565b600c8110613fce57613fce6155ed565b60200201525080613fde81615706565b915050613e24565b50613fef614a14565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b606060008061402184614271565b61ffff166001600160401b0381111561403c5761403c614ae5565b6040519080825280601f01601f191660200182016040528015614066576020820181803683370190505b5090506000805b82518210801561407e575061010081105b15613462576001811b9350858416156140c5578060f81b8383815181106140a7576140a76155ed565b60200101906001600160f81b031916908160001a9053508160010191505b6140ce81615706565b905061406d565b6065546001600160a01b0316331461238b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610972565b609754604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b60c9805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc906020015b60405180910390a150565b6000806141ec8461475f565b9050808360ff166001901b1161426a5760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610972565b9392505050565b6000805b82156108c557614286600184615777565b909216918061429481615edf565b915050614275565b60408051808201909152600080825260208201526102008261ffff16106142f85760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610972565b8161ffff166001141561430c5750816108c5565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff161061437557600161ffff871660ff83161c81161415614358576143558484613c0b565b93505b6143628384613c0b565b92506201fffe600192831b169101614328565b509195945050505050565b604080518082019091526000808252602082015281511580156143a557506020820151155b156143c3575050604080518082019091526000808252602082015290565b604051806040016040528083600001518152602001600080516020615f8083398151915284602001516143f69190615603565b61440e90600080516020615f80833981519152615777565b905292915050565b919050565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60fb546001600160a01b031615801561448e57506001600160a01b03821615155b6145105760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610972565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261455382613a7d565b5050565b6001600160a01b038116600081815260026020908152604091829020805460ff8082161560ff1990921682179092558351948552161515908301527f5c3265f5fb462ef4930fe47beaa183647c97f19ba545b761f41bc8cd4621d41491016141d5565b60006145f782604080518082019091526000808252602082015250604080518082019091528151815260609091015163ffffffff16602082015290565b6040805182516020808301919091529092015163ffffffff16908201526060015b604051602081830303815290604052805190602001209050919050565b6000816040516020016146189190615f01565b6097546001600160a01b0316331461238b5760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a401610972565b60008080600080516020615f808339815191526003600080516020615f8083398151915286600080516020615f80833981519152888909090890506000614753827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615f808339815191526148ec565b91959194509092505050565b6000610100825111156147e85760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610972565b81516147f657506000919050565b6000808360008151811061480c5761480c6155ed565b0160200151600160f89190911c81901b92505b84518110156148e35784818151811061483a5761483a6155ed565b0160200151600160f89190911c1b91508282116148cf5760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610972565b918117916148dc81615706565b905061481f565b50909392505050565b6000806148f7614a14565b6148ff614a32565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa9250828015613bc35750826149895760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610972565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806149e3614a50565b81526020016149f0614a50565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b60ff8116811461098457600080fd5b600060208284031215614a8f57600080fd5b813561426a81614a6e565b6001600160a01b038116811461098457600080fd5b600060208284031215614ac157600080fd5b813561426a81614a9a565b600060208284031215614ade57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614b1d57614b1d614ae5565b60405290565b60405161010081016001600160401b0381118282101715614b1d57614b1d614ae5565b604051601f8201601f191681016001600160401b0381118282101715614b6e57614b6e614ae5565b604052919050565b600060408284031215614b8857600080fd5b614b90614afb565b9050813581526020820135602082015292915050565b600082601f830112614bb757600080fd5b614bbf614afb565b806040840185811115614bd157600080fd5b845b81811015614beb578035845260209384019301614bd3565b509095945050505050565b600060808284031215614c0857600080fd5b614c10614afb565b9050614c1c8383614ba6565b8152614c2b8360408401614ba6565b602082015292915050565b6000806000806101208587031215614c4d57600080fd5b84359350614c5e8660208701614b76565b9250614c6d8660608701614bf6565b9150614c7c8660e08701614b76565b905092959194509250565b600060208284031215614c9957600080fd5b813561ffff8116811461426a57600080fd5b803561441681614a9a565b6020808252825182820181905260009190848201906040850190845b81811015614cf75783516001600160a01b031683529284019291840191600101614cd2565b50909695505050505050565b801515811461098457600080fd5b600060208284031215614d2357600080fd5b813561426a81614d03565b63ffffffff8116811461098457600080fd5b803561441681614d2e565b60006001600160401b03821115614d6457614d64614ae5565b5060051b60200190565b600082601f830112614d7f57600080fd5b81356020614d94614d8f83614d4b565b614b46565b82815260059290921b84018101918181019086841115614db357600080fd5b8286015b84811015614dd7578035614dca81614d2e565b8352918301918301614db7565b509695505050505050565b600082601f830112614df357600080fd5b81356020614e03614d8f83614d4b565b82815260069290921b84018101918181019086841115614e2257600080fd5b8286015b84811015614dd757614e388882614b76565b835291830191604001614e26565b600082601f830112614e5757600080fd5b81356020614e67614d8f83614d4b565b82815260059290921b84018101918181019086841115614e8657600080fd5b8286015b84811015614dd75780356001600160401b03811115614ea95760008081fd5b614eb78986838b0101614d6e565b845250918301918301614e8a565b60006101808284031215614ed857600080fd5b614ee0614b23565b905081356001600160401b0380821115614ef957600080fd5b614f0585838601614d6e565b83526020840135915080821115614f1b57600080fd5b614f2785838601614de2565b60208401526040840135915080821115614f4057600080fd5b614f4c85838601614de2565b6040840152614f5e8560608601614bf6565b6060840152614f708560e08601614b76565b6080840152610120840135915080821115614f8a57600080fd5b614f9685838601614d6e565b60a0840152610140840135915080821115614fb057600080fd5b614fbc85838601614d6e565b60c0840152610160840135915080821115614fd657600080fd5b50614fe384828501614e46565b60e08301525092915050565b60008060008060006080868803121561500757600080fd5b8535945060208601356001600160401b038082111561502557600080fd5b818801915088601f83011261503957600080fd5b81358181111561504857600080fd5b89602082850101111561505a57600080fd5b602083019650945061506e60408901614d40565b9350606088013591508082111561508457600080fd5b5061509188828901614ec5565b9150509295509295909350565b600081518084526020808501945080840160005b838110156150d75781516001600160601b0316875295820195908201906001016150b2565b509495945050505050565b60408152600083516040808401526150fd608084018261509e565b90506020850151603f1984830301606085015261511a828261509e565b925050508260208301529392505050565b600080600080600060a0868803121561514357600080fd5b853561514e81614a9a565b94506020868101359450604087013561516681614a9a565b935060608701356001600160401b0381111561518157600080fd5b8701601f8101891361519257600080fd5b80356151a0614d8f82614d4b565b81815260059190911b8201830190838101908b8311156151bf57600080fd5b928401925b828410156151e65783356151d781614a9a565b825292840192908401906151c4565b80965050505050506151fa60808701614cab565b90509295509295909350565b6000806040838503121561521957600080fd5b82356001600160401b038082111561523057600080fd5b908401906080828703121561524457600080fd5b9092506020840135908082111561525a57600080fd5b5061526785828601614ec5565b9150509250929050565b60005b8381101561528c578181015183820152602001615274565b8381111561529b576000848401525b50505050565b600081518084526152b9816020860160208601615271565b601f01601f19169290920160200192915050565b60208152600061426a60208301846152a1565b60006001600160401b038211156152f9576152f9614ae5565b50601f01601f191660200190565b6000615315614d8f846152e0565b905082815283838301111561532957600080fd5b828260208301376000602084830101529392505050565b600082601f83011261535157600080fd5b61426a83833560208501615307565b6000806040838503121561537357600080fd5b823561537e81614a9a565b915060208301356001600160401b038082111561539a57600080fd5b90840190606082870312156153ae57600080fd5b6040516060810181811083821117156153c9576153c9614ae5565b6040528235828111156153db57600080fd5b6153e788828601615340565b82525060208301356020820152604083013560408201528093505050509250929050565b60008083601f84011261541d57600080fd5b5081356001600160401b0381111561543457600080fd5b6020830191508360208260051b850101111561544f57600080fd5b9250929050565b6000806020838503121561546957600080fd5b82356001600160401b0381111561547f57600080fd5b61548b8582860161540b565b90969095509350505050565b6000602082840312156154a957600080fd5b81356001600160401b038111156154bf57600080fd5b8201601f810184136154d057600080fd5b6154df84823560208401615307565b949350505050565b6000602082840312156154f957600080fd5b813561426a81614d2e565b60006020828403121561551657600080fd5b815161426a81614d03565b60006020828403121561553357600080fd5b815161426a81614a9a565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000602082840312156155e257600080fd5b815161426a81614a6e565b634e487b7160e01b600052603260045260246000fd5b60008261562057634e487b7160e01b600052601260045260246000fd5b500690565b60006060828403121561563757600080fd5b604051606081018181106001600160401b038211171561565957615659614ae5565b604052825161566781614d2e565b8152602083015161567781614d2e565b6020820152604083015161568a81614a6e565b60408201529392505050565b6000602082840312156156a857600080fd5b5051919050565b6000602082840312156156c157600080fd5b81516001600160c01b038116811461426a57600080fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115615701576157016156d8565b500190565b600060001982141561571a5761571a6156d8565b5060010190565b6001600160601b038116811461098457600080fd5b60006040828403121561574857600080fd5b615750614afb565b825161575b81614a9a565b8152602083015161576b81615721565b60208201529392505050565b600082821015615789576157896156d8565b500390565b6000602082840312156157a057600080fd5b815167ffffffffffffffff198116811461426a57600080fd5b6000602082840312156157cb57600080fd5b815161426a81615721565b60006001600160601b03838116908316818110156157f6576157f66156d8565b039392505050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b838110156158395781518552938201939082019060010161581d565b5092979650505050505050565b600063ffffffff808316818516808303821115615865576158656156d8565b01949350505050565b6000808335601e1984360301811261588557600080fd5b8301803591506001600160401b0382111561589f57600080fd5b60200191503681900382131561544f57600080fd5b6000608082360312156158c657600080fd5b604051608081016001600160401b0382821081831117156158e9576158e9614ae5565b8160405284358352602085013591508082111561590557600080fd5b61591136838701615340565b6020840152604085013591508082111561592a57600080fd5b5061593736828601615340565b604083015250606083013561594b81614d2e565b606082015292915050565b60006001600160601b038083168185168183048111821515161561597c5761597c6156d8565b02949350505050565b600081600019048311821515161561599f5761599f6156d8565b500290565b6000602082840312156159b657600080fd5b81516001600160401b038111156159cc57600080fd5b8201601f810184136159dd57600080fd5b80516159eb614d8f826152e0565b818152856020838501011115615a0057600080fd5b615a11826020830160208601615271565b95945050505050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b60018060a01b0383168152604060208201526000825160606040840152615abc60a08401826152a1565b90506020840151606084015260408401516080840152809150509392505050565b6000823560be19833603018112615af357600080fd5b9190910192915050565b6000808335601e19843603018112615b1457600080fd5b8301803591506001600160401b03821115615b2e57600080fd5b6020019150600681901b360382131561544f57600080fd5b6000808335601e19843603018112615b5d57600080fd5b83016020810192503590506001600160401b03811115615b7c57600080fd5b8060061b360383131561544f57600080fd5b8183526000602080850194508260005b858110156150d7578135615bb181614a9a565b6001600160a01b0316875281830135615bc981615721565b6001600160601b0316878401526040968701969190910190600101615b9e565b6000808335601e19843603018112615c0057600080fd5b83016020810192503590506001600160401b03811115615c1f57600080fd5b80360383131561544f57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03848116825260406020808401829052838201859052600092606091828601600588901b8701840189875b8a811015615da257898303605f190184528135368d900360be19018112615caf57600080fd5b8c0160c0615cbd8280615b46565b828752615ccd8388018284615b8e565b9250505086820135615cde81614a9a565b881685880152615cf0828b0183615b46565b8683038c88015280835290916000919089015b81831015615d34578335615d1681614a9a565b8b168152838a01358a820152928c0192600192909201918c01615d03565b615d3f8c8601614d40565b63ffffffff168c89015260809350615d58858501614d40565b63ffffffff811689860152925060a09350615d7584860186615be9565b9550925087810384890152615d8b818685615c2e565b988a01989750505093870193505050600101615c89565b50909b9a5050505050505050505050565b600060408284031215615dc557600080fd5b615dcd614afb565b8251615dd881614a6e565b8152602083015161576b81614a6e565b60008235609e19833603018112615af357600080fd5b60208082528181018390526000906040808401600586901b850182018785805b89811015615ed057888403603f190185528235368c9003609e19018112615e43578283fd5b8b0160a0615e518280615b46565b828852615e618389018284615b8e565b9250505088820135615e7281614a9a565b6001600160a01b0316868a01528188013588870152606080830135615e9681614d2e565b63ffffffff808216838a015260809250828501359450615eb585614d2e565b93909316960195909552509386019391860191600101615e1e565b50919998505050505050505050565b600061ffff80831681811415615ef757615ef76156d8565b6001019392505050565b60208152813560208201526000615f1b6020840184615be9565b60806040850152615f3060a085018284615c2e565b915050615f406040850185615be9565b848303601f19016060860152615f57838284615c2e565b925050506060840135615f6981614d2e565b63ffffffff16608093909301929092525091905056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47424c535369676e6174757265436865636b65722e636865636b5369676e617475a2646970667358221220cb3eaa4df2fb24f23067f825302d8c54e108e682dc91183ee0c9a965fbe8888c64736f6c634300080c0033", } // ContractEigenDAServiceManagerABI is the input ABI used to generate the binding from. @@ -117,7 +133,7 @@ var ContractEigenDAServiceManagerABI = ContractEigenDAServiceManagerMetaData.ABI var ContractEigenDAServiceManagerBin = ContractEigenDAServiceManagerMetaData.Bin // DeployContractEigenDAServiceManager deploys a new Ethereum contract, binding an instance of ContractEigenDAServiceManager to it. -func DeployContractEigenDAServiceManager(auth *bind.TransactOpts, backend bind.ContractBackend, __avsDirectory common.Address, __rewardsCoordinator common.Address, __registryCoordinator common.Address, __stakeRegistry common.Address, __eigenDAThresholdRegistry common.Address, __eigenDARelayRegistry common.Address, __paymentVault common.Address) (common.Address, *types.Transaction, *ContractEigenDAServiceManager, error) { +func DeployContractEigenDAServiceManager(auth *bind.TransactOpts, backend bind.ContractBackend, __avsDirectory common.Address, __rewardsCoordinator common.Address, __registryCoordinator common.Address, __stakeRegistry common.Address, __eigenDAThresholdRegistry common.Address, __eigenDARelayRegistry common.Address, __paymentVault common.Address, __eigenDADisperserRegistry common.Address) (common.Address, *types.Transaction, *ContractEigenDAServiceManager, error) { parsed, err := ContractEigenDAServiceManagerMetaData.GetAbi() if err != nil { return common.Address{}, nil, nil, err @@ -126,7 +142,7 @@ func DeployContractEigenDAServiceManager(auth *bind.TransactOpts, backend bind.C return common.Address{}, nil, nil, errors.New("GetABI returned nil") } - address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ContractEigenDAServiceManagerBin), backend, __avsDirectory, __rewardsCoordinator, __registryCoordinator, __stakeRegistry, __eigenDAThresholdRegistry, __eigenDARelayRegistry, __paymentVault) + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ContractEigenDAServiceManagerBin), backend, __avsDirectory, __rewardsCoordinator, __registryCoordinator, __stakeRegistry, __eigenDAThresholdRegistry, __eigenDARelayRegistry, __paymentVault, __eigenDADisperserRegistry) if err != nil { return common.Address{}, nil, nil, err } @@ -555,6 +571,37 @@ func (_ContractEigenDAServiceManager *ContractEigenDAServiceManagerCallerSession return _ContractEigenDAServiceManager.Contract.Delegation(&_ContractEigenDAServiceManager.CallOpts) } +// EigenDADisperserRegistry is a free data retrieval call binding the contract method 0xeeae17f6. +// +// Solidity: function eigenDADisperserRegistry() view returns(address) +func (_ContractEigenDAServiceManager *ContractEigenDAServiceManagerCaller) EigenDADisperserRegistry(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ContractEigenDAServiceManager.contract.Call(opts, &out, "eigenDADisperserRegistry") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// EigenDADisperserRegistry is a free data retrieval call binding the contract method 0xeeae17f6. +// +// Solidity: function eigenDADisperserRegistry() view returns(address) +func (_ContractEigenDAServiceManager *ContractEigenDAServiceManagerSession) EigenDADisperserRegistry() (common.Address, error) { + return _ContractEigenDAServiceManager.Contract.EigenDADisperserRegistry(&_ContractEigenDAServiceManager.CallOpts) +} + +// EigenDADisperserRegistry is a free data retrieval call binding the contract method 0xeeae17f6. +// +// Solidity: function eigenDADisperserRegistry() view returns(address) +func (_ContractEigenDAServiceManager *ContractEigenDAServiceManagerCallerSession) EigenDADisperserRegistry() (common.Address, error) { + return _ContractEigenDAServiceManager.Contract.EigenDADisperserRegistry(&_ContractEigenDAServiceManager.CallOpts) +} + // EigenDARelayRegistry is a free data retrieval call binding the contract method 0x72276443. // // Solidity: function eigenDARelayRegistry() view returns(address) @@ -1386,6 +1433,27 @@ func (_ContractEigenDAServiceManager *ContractEigenDAServiceManagerTransactorSes return _ContractEigenDAServiceManager.Contract.CreateAVSRewardsSubmission(&_ContractEigenDAServiceManager.TransactOpts, rewardsSubmissions) } +// CreateOperatorDirectedAVSRewardsSubmission is a paid mutator transaction binding the contract method 0xa20b99bf. +// +// Solidity: function createOperatorDirectedAVSRewardsSubmission(((address,uint96)[],address,(address,uint256)[],uint32,uint32,string)[] operatorDirectedRewardsSubmissions) returns() +func (_ContractEigenDAServiceManager *ContractEigenDAServiceManagerTransactor) CreateOperatorDirectedAVSRewardsSubmission(opts *bind.TransactOpts, operatorDirectedRewardsSubmissions []IRewardsCoordinatorOperatorDirectedRewardsSubmission) (*types.Transaction, error) { + return _ContractEigenDAServiceManager.contract.Transact(opts, "createOperatorDirectedAVSRewardsSubmission", operatorDirectedRewardsSubmissions) +} + +// CreateOperatorDirectedAVSRewardsSubmission is a paid mutator transaction binding the contract method 0xa20b99bf. +// +// Solidity: function createOperatorDirectedAVSRewardsSubmission(((address,uint96)[],address,(address,uint256)[],uint32,uint32,string)[] operatorDirectedRewardsSubmissions) returns() +func (_ContractEigenDAServiceManager *ContractEigenDAServiceManagerSession) CreateOperatorDirectedAVSRewardsSubmission(operatorDirectedRewardsSubmissions []IRewardsCoordinatorOperatorDirectedRewardsSubmission) (*types.Transaction, error) { + return _ContractEigenDAServiceManager.Contract.CreateOperatorDirectedAVSRewardsSubmission(&_ContractEigenDAServiceManager.TransactOpts, operatorDirectedRewardsSubmissions) +} + +// CreateOperatorDirectedAVSRewardsSubmission is a paid mutator transaction binding the contract method 0xa20b99bf. +// +// Solidity: function createOperatorDirectedAVSRewardsSubmission(((address,uint96)[],address,(address,uint256)[],uint32,uint32,string)[] operatorDirectedRewardsSubmissions) returns() +func (_ContractEigenDAServiceManager *ContractEigenDAServiceManagerTransactorSession) CreateOperatorDirectedAVSRewardsSubmission(operatorDirectedRewardsSubmissions []IRewardsCoordinatorOperatorDirectedRewardsSubmission) (*types.Transaction, error) { + return _ContractEigenDAServiceManager.Contract.CreateOperatorDirectedAVSRewardsSubmission(&_ContractEigenDAServiceManager.TransactOpts, operatorDirectedRewardsSubmissions) +} + // DeregisterOperatorFromAVS is a paid mutator transaction binding the contract method 0xa364f4da. // // Solidity: function deregisterOperatorFromAVS(address operator) returns() @@ -1533,6 +1601,27 @@ func (_ContractEigenDAServiceManager *ContractEigenDAServiceManagerTransactorSes return _ContractEigenDAServiceManager.Contract.SetBatchConfirmer(&_ContractEigenDAServiceManager.TransactOpts, _batchConfirmer) } +// SetClaimerFor is a paid mutator transaction binding the contract method 0xa0169ddd. +// +// Solidity: function setClaimerFor(address claimer) returns() +func (_ContractEigenDAServiceManager *ContractEigenDAServiceManagerTransactor) SetClaimerFor(opts *bind.TransactOpts, claimer common.Address) (*types.Transaction, error) { + return _ContractEigenDAServiceManager.contract.Transact(opts, "setClaimerFor", claimer) +} + +// SetClaimerFor is a paid mutator transaction binding the contract method 0xa0169ddd. +// +// Solidity: function setClaimerFor(address claimer) returns() +func (_ContractEigenDAServiceManager *ContractEigenDAServiceManagerSession) SetClaimerFor(claimer common.Address) (*types.Transaction, error) { + return _ContractEigenDAServiceManager.Contract.SetClaimerFor(&_ContractEigenDAServiceManager.TransactOpts, claimer) +} + +// SetClaimerFor is a paid mutator transaction binding the contract method 0xa0169ddd. +// +// Solidity: function setClaimerFor(address claimer) returns() +func (_ContractEigenDAServiceManager *ContractEigenDAServiceManagerTransactorSession) SetClaimerFor(claimer common.Address) (*types.Transaction, error) { + return _ContractEigenDAServiceManager.Contract.SetClaimerFor(&_ContractEigenDAServiceManager.TransactOpts, claimer) +} + // SetPauserRegistry is a paid mutator transaction binding the contract method 0x10d67a2f. // // Solidity: function setPauserRegistry(address newPauserRegistry) returns() diff --git a/contracts/bindings/EigenDAThresholdRegistry/binding.go b/contracts/bindings/EigenDAThresholdRegistry/binding.go index 5cf59e577e..f7edd562c3 100644 --- a/contracts/bindings/EigenDAThresholdRegistry/binding.go +++ b/contracts/bindings/EigenDAThresholdRegistry/binding.go @@ -45,7 +45,7 @@ type VersionedBlobParams struct { // ContractEigenDAThresholdRegistryMetaData contains all meta data concerning the ContractEigenDAThresholdRegistry contract. var ContractEigenDAThresholdRegistryMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"addVersionedBlobParams\",\"inputs\":[{\"name\":\"_versionedBlobParams\",\"type\":\"tuple\",\"internalType\":\"structVersionedBlobParams\",\"components\":[{\"name\":\"maxNumOperators\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"numChunks\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"codingRate\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"defaultSecurityThresholdsV2\",\"inputs\":[],\"outputs\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBlobParams\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structVersionedBlobParams\",\"components\":[{\"name\":\"maxNumOperators\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"numChunks\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"codingRate\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDefaultSecurityThresholdsV2\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getIsQuorumRequired\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumAdversaryThresholdPercentage\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"adversaryThresholdPercentage\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumConfirmationThresholdPercentage\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"confirmationThresholdPercentage\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_quorumAdversaryThresholdPercentages\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"_quorumConfirmationThresholdPercentages\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"_quorumNumbersRequired\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"_versionedBlobParams\",\"type\":\"tuple[]\",\"internalType\":\"structVersionedBlobParams[]\",\"components\":[{\"name\":\"maxNumOperators\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"numChunks\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"codingRate\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"_defaultSecurityThresholdsV2\",\"type\":\"tuple\",\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"nextBlobVersion\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumAdversaryThresholdPercentages\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumConfirmationThresholdPercentages\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumNumbersRequired\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateDefaultSecurityThresholdsV2\",\"inputs\":[{\"name\":\"_defaultSecurityThresholdsV2\",\"type\":\"tuple\",\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateQuorumAdversaryThresholdPercentages\",\"inputs\":[{\"name\":\"_quorumAdversaryThresholdPercentages\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateQuorumConfirmationThresholdPercentages\",\"inputs\":[{\"name\":\"_quorumConfirmationThresholdPercentages\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateQuorumNumbersRequired\",\"inputs\":[{\"name\":\"_quorumNumbersRequired\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"versionedBlobParams\",\"inputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[{\"name\":\"maxNumOperators\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"numChunks\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"codingRate\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"DefaultSecurityThresholdsV2Updated\",\"inputs\":[{\"name\":\"previousDefaultSecurityThresholdsV2\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"newDefaultSecurityThresholdsV2\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumAdversaryThresholdPercentagesUpdated\",\"inputs\":[{\"name\":\"previousQuorumAdversaryThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"newQuorumAdversaryThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumConfirmationThresholdPercentagesUpdated\",\"inputs\":[{\"name\":\"previousQuorumConfirmationThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"newQuorumConfirmationThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumNumbersRequiredUpdated\",\"inputs\":[{\"name\":\"previousQuorumNumbersRequired\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"newQuorumNumbersRequired\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"VersionedBlobParamsAdded\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint16\",\"indexed\":true,\"internalType\":\"uint16\"},{\"name\":\"versionedBlobParams\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structVersionedBlobParams\",\"components\":[{\"name\":\"maxNumOperators\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"numChunks\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"codingRate\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"anonymous\":false}]", - Bin: "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b603254610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60325460ff90811610156100dc576032805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6113ae806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c80638a476982116100ad578063ee6c3bcf11610071578063ee6c3bcf14610317578063ef6355291461032a578063f2fde38b14610368578063f74e363c1461037b578063fb87355e146103e057600080fd5b80638a476982146102c65780638da5cb5b146102d9578063a5e9b2eb146102f4578063bafa910714610307578063e15234ff1461030f57600080fd5b806332430f14116100f457806332430f14146102625780634a96aaa014610283578063715018a6146102965780637c6ee6ab1461029e5780638687feae146102b157600080fd5b806239859914610130578063048886d2146101455780631429c7c21461016d5780631c3970fa146101925780632ecfe72b146101c2575b600080fd5b61014361013e366004610e2d565b6103f3565b005b610158610153366004610e7b565b61044c565b60405190151581526020015b60405180910390f35b61018061017b366004610e7b565b6104f6565b60405160ff9091168152602001610164565b6005546101a89060ff8082169161010090041682565b6040805160ff938416815292909116602083015201610164565b6102326101d0366004610e9d565b60408051606080820183526000808352602080840182905292840181905261ffff9490941684526004825292829020825193840183525463ffffffff808216855264010000000082041691840191909152600160401b900460ff169082015290565b60408051825163ffffffff9081168252602080850151909116908201529181015160ff1690820152606001610164565b6003546102709061ffff1681565b60405161ffff9091168152602001610164565b610143610291366004610e2d565b610564565b6101436105b9565b6101436102ac366004610f1f565b6105cd565b6102b9610639565b6040516101649190610f88565b6102706102d436600461101e565b6106c7565b6065546040516001600160a01b039091168152602001610164565b610143610302366004610e2d565b6106e0565b6102b9610735565b6102b9610742565b610180610325366004610e7b565b61074f565b6040805180820182526000808252602091820152815180830190925260055460ff80821684526101009091041690820152604051610164919061103a565b61014361037636600461106f565b61077b565b6103ba610389366004610e9d565b60046020526000908152604090205463ffffffff80821691640100000000810490911690600160401b900460ff1683565b6040805163ffffffff948516815293909216602084015260ff1690820152606001610164565b6101436103ee366004611114565b6107f9565b6103fb6109b4565b7f9f1ea99a8363f2964c53c763811648354a8437441b30b39465f9d26118d6a5a060018260405161042d92919061121d565b60405180910390a18051610448906001906020840190610cdd565b5050565b600080600160ff84161b9050806104ec60028054610469906111e2565b80601f0160208091040260200160405190810160405280929190818152602001828054610495906111e2565b80156104e25780601f106104b7576101008083540402835291602001916104e2565b820191906000526020600020905b8154815290600101906020018083116104c557829003601f168201915b5050505050610a0e565b9091161492915050565b60008160ff1660018054610509906111e2565b9050111561055f5760018260ff168154610522906111e2565b8110610530576105306112d9565b81546001161561054f5790600052602060002090602091828204019190065b9054901a600160f81b0260f81c90505b919050565b61056c6109b4565b7ff73542111561dc551cbbe9111c4dd3a040d53d7bc0339a53290f4d7f9a95c3cc60008260405161059e92919061121d565b60405180910390a18051610448906000906020840190610cdd565b6105c16109b4565b6105cb6000610b9b565b565b6105d56109b4565b7ffe03afd62c76a6aed7376ae995cc55d073ba9d83d83ac8efc5446f8da4d509976005826040516106079291906112ef565b60405180910390a180516005805460209093015160ff9081166101000261ffff19909416921691909117919091179055565b60008054610646906111e2565b80601f0160208091040260200160405190810160405280929190818152602001828054610672906111e2565b80156106bf5780601f10610694576101008083540402835291602001916106bf565b820191906000526020600020905b8154815290600101906020018083116106a257829003601f168201915b505050505081565b60006106d16109b4565b6106da82610bed565b92915050565b6106e86109b4565b7f60c0ba1da794fcbbf549d370512442cb8f3f3f774cb557205cc88c6f842cb36a60028260405161071a92919061121d565b60405180910390a18051610448906002906020840190610cdd565b60018054610646906111e2565b60028054610646906111e2565b60008160ff1660008054610762906111e2565b9050111561055f5760008260ff168154610522906111e2565b6107836109b4565b6001600160a01b0381166107ed5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6107f681610b9b565b50565b603254610100900460ff16158080156108195750603254600160ff909116105b806108335750303b158015610833575060325460ff166001145b6108965760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016107e4565b6032805460ff1916600117905580156108b9576032805461ff0019166101001790555b6108c287610b9b565b85516108d5906000906020890190610cdd565b5084516108e9906001906020880190610cdd565b5083516108fd906002906020870190610cdd565b50815160058054602085015160ff9081166101000261ffff1990921693169290921791909117905560005b835181101561096457610953848281518110610946576109466112d9565b6020026020010151610bed565b5061095d8161133b565b9050610928565b5080156109ab576032805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6065546001600160a01b031633146105cb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107e4565b600061010082511115610a975760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a4016107e4565b8151610aa557506000919050565b60008083600081518110610abb57610abb6112d9565b0160200151600160f89190911c81901b92505b8451811015610b9257848181518110610ae957610ae96112d9565b0160200151600160f89190911c1b9150828211610b7e5760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a4016107e4565b91811791610b8b8161133b565b9050610ace565b50909392505050565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6003805461ffff90811660009081526004602090815260408083208651815488850180518a8601805163ffffffff95861667ffffffffffffffff199095168517640100000000938716939093029290921768ff00000000000000001916600160401b60ff9384160217909555985485519283529051909216948101949094529051909516908201529092909116907fdbee9d337a6e5fde30966e157673aaeeb6a0134afaf774a4b6979b7c79d07da49060600160405180910390a26003805461ffff16906000610cbc83611356565b91906101000a81548161ffff021916908361ffff1602179055509050919050565b828054610ce9906111e2565b90600052602060002090601f016020900481019282610d0b5760008555610d51565b82601f10610d2457805160ff1916838001178555610d51565b82800160010185558215610d51579182015b82811115610d51578251825591602001919060010190610d36565b50610d5d929150610d61565b5090565b5b80821115610d5d5760008155600101610d62565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610db557610db5610d76565b604052919050565b600082601f830112610dce57600080fd5b813567ffffffffffffffff811115610de857610de8610d76565b610dfb601f8201601f1916602001610d8c565b818152846020838601011115610e1057600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215610e3f57600080fd5b813567ffffffffffffffff811115610e5657600080fd5b610e6284828501610dbd565b949350505050565b803560ff8116811461055f57600080fd5b600060208284031215610e8d57600080fd5b610e9682610e6a565b9392505050565b600060208284031215610eaf57600080fd5b813561ffff81168114610e9657600080fd5b600060408284031215610ed357600080fd5b6040516040810181811067ffffffffffffffff82111715610ef657610ef6610d76565b604052905080610f0583610e6a565b8152610f1360208401610e6a565b60208201525092915050565b600060408284031215610f3157600080fd5b610e968383610ec1565b6000815180845260005b81811015610f6157602081850181015186830182015201610f45565b81811115610f73576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610e966020830184610f3b565b803563ffffffff8116811461055f57600080fd5b600060608284031215610fc157600080fd5b6040516060810181811067ffffffffffffffff82111715610fe457610fe4610d76565b604052905080610ff383610f9b565b815261100160208401610f9b565b602082015261101260408401610e6a565b60408201525092915050565b60006060828403121561103057600080fd5b610e968383610faf565b604081016106da8284805160ff908116835260209182015116910152565b80356001600160a01b038116811461055f57600080fd5b60006020828403121561108157600080fd5b610e9682611058565b600082601f83011261109b57600080fd5b8135602067ffffffffffffffff8211156110b7576110b7610d76565b6110c5818360051b01610d8c565b828152606092830285018201928282019190878511156110e457600080fd5b8387015b85811015611107576110fa8982610faf565b84529284019281016110e8565b5090979650505050505050565b60008060008060008060e0878903121561112d57600080fd5b61113687611058565b9550602087013567ffffffffffffffff8082111561115357600080fd5b61115f8a838b01610dbd565b9650604089013591508082111561117557600080fd5b6111818a838b01610dbd565b9550606089013591508082111561119757600080fd5b6111a38a838b01610dbd565b945060808901359150808211156111b957600080fd5b506111c689828a0161108a565b9250506111d68860a08901610ec1565b90509295509295509295565b600181811c908216806111f657607f821691505b6020821081141561121757634e487b7160e01b600052602260045260246000fd5b50919050565b60408152600080845481600182811c91508083168061123d57607f831692505b602080841082141561125d57634e487b7160e01b86526022600452602486fd5b604088018490526060880182801561127c576001811461128d576112b8565b60ff198716825282820197506112b8565b60008c81526020902060005b878110156112b257815484820152908601908401611299565b83019850505b50508786038189015250505050506112d08185610f3b565b95945050505050565b634e487b7160e01b600052603260045260246000fd5b825460ff808216835260089190911c16602082015260808101610e966040830184805160ff908116835260209182015116910152565b634e487b7160e01b600052601160045260246000fd5b600060001982141561134f5761134f611325565b5060010190565b600061ffff8083168181141561136e5761136e611325565b600101939250505056fea26469706673582212209799db963b697f63b0238c62024a3061c6b8aad2b989a3d427bf58cd9844f44864736f6c634300080c0033", + Bin: "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b603254610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60325460ff90811610156100dc576032805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6113ae806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c80638a476982116100ad578063ee6c3bcf11610071578063ee6c3bcf14610317578063ef6355291461032a578063f2fde38b14610368578063f74e363c1461037b578063fb87355e146103e057600080fd5b80638a476982146102c65780638da5cb5b146102d9578063a5e9b2eb146102f4578063bafa910714610307578063e15234ff1461030f57600080fd5b806332430f14116100f457806332430f14146102625780634a96aaa014610283578063715018a6146102965780637c6ee6ab1461029e5780638687feae146102b157600080fd5b806239859914610130578063048886d2146101455780631429c7c21461016d5780631c3970fa146101925780632ecfe72b146101c2575b600080fd5b61014361013e366004610e2d565b6103f3565b005b610158610153366004610e7b565b61044c565b60405190151581526020015b60405180910390f35b61018061017b366004610e7b565b6104f6565b60405160ff9091168152602001610164565b6005546101a89060ff8082169161010090041682565b6040805160ff938416815292909116602083015201610164565b6102326101d0366004610e9d565b60408051606080820183526000808352602080840182905292840181905261ffff9490941684526004825292829020825193840183525463ffffffff808216855264010000000082041691840191909152600160401b900460ff169082015290565b60408051825163ffffffff9081168252602080850151909116908201529181015160ff1690820152606001610164565b6003546102709061ffff1681565b60405161ffff9091168152602001610164565b610143610291366004610e2d565b610564565b6101436105b9565b6101436102ac366004610f1f565b6105cd565b6102b9610639565b6040516101649190610f88565b6102706102d436600461101e565b6106c7565b6065546040516001600160a01b039091168152602001610164565b610143610302366004610e2d565b6106e0565b6102b9610735565b6102b9610742565b610180610325366004610e7b565b61074f565b6040805180820182526000808252602091820152815180830190925260055460ff80821684526101009091041690820152604051610164919061103a565b61014361037636600461106f565b61077b565b6103ba610389366004610e9d565b60046020526000908152604090205463ffffffff80821691640100000000810490911690600160401b900460ff1683565b6040805163ffffffff948516815293909216602084015260ff1690820152606001610164565b6101436103ee366004611114565b6107f9565b6103fb6109b4565b7f9f1ea99a8363f2964c53c763811648354a8437441b30b39465f9d26118d6a5a060018260405161042d92919061121d565b60405180910390a18051610448906001906020840190610cdd565b5050565b600080600160ff84161b9050806104ec60028054610469906111e2565b80601f0160208091040260200160405190810160405280929190818152602001828054610495906111e2565b80156104e25780601f106104b7576101008083540402835291602001916104e2565b820191906000526020600020905b8154815290600101906020018083116104c557829003601f168201915b5050505050610a0e565b9091161492915050565b60008160ff1660018054610509906111e2565b9050111561055f5760018260ff168154610522906111e2565b8110610530576105306112d9565b81546001161561054f5790600052602060002090602091828204019190065b9054901a600160f81b0260f81c90505b919050565b61056c6109b4565b7ff73542111561dc551cbbe9111c4dd3a040d53d7bc0339a53290f4d7f9a95c3cc60008260405161059e92919061121d565b60405180910390a18051610448906000906020840190610cdd565b6105c16109b4565b6105cb6000610b9b565b565b6105d56109b4565b7ffe03afd62c76a6aed7376ae995cc55d073ba9d83d83ac8efc5446f8da4d509976005826040516106079291906112ef565b60405180910390a180516005805460209093015160ff9081166101000261ffff19909416921691909117919091179055565b60008054610646906111e2565b80601f0160208091040260200160405190810160405280929190818152602001828054610672906111e2565b80156106bf5780601f10610694576101008083540402835291602001916106bf565b820191906000526020600020905b8154815290600101906020018083116106a257829003601f168201915b505050505081565b60006106d16109b4565b6106da82610bed565b92915050565b6106e86109b4565b7f60c0ba1da794fcbbf549d370512442cb8f3f3f774cb557205cc88c6f842cb36a60028260405161071a92919061121d565b60405180910390a18051610448906002906020840190610cdd565b60018054610646906111e2565b60028054610646906111e2565b60008160ff1660008054610762906111e2565b9050111561055f5760008260ff168154610522906111e2565b6107836109b4565b6001600160a01b0381166107ed5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6107f681610b9b565b50565b603254610100900460ff16158080156108195750603254600160ff909116105b806108335750303b158015610833575060325460ff166001145b6108965760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016107e4565b6032805460ff1916600117905580156108b9576032805461ff0019166101001790555b6108c287610b9b565b85516108d5906000906020890190610cdd565b5084516108e9906001906020880190610cdd565b5083516108fd906002906020870190610cdd565b50815160058054602085015160ff9081166101000261ffff1990921693169290921791909117905560005b835181101561096457610953848281518110610946576109466112d9565b6020026020010151610bed565b5061095d8161133b565b9050610928565b5080156109ab576032805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6065546001600160a01b031633146105cb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107e4565b600061010082511115610a975760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a4016107e4565b8151610aa557506000919050565b60008083600081518110610abb57610abb6112d9565b0160200151600160f89190911c81901b92505b8451811015610b9257848181518110610ae957610ae96112d9565b0160200151600160f89190911c1b9150828211610b7e5760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a4016107e4565b91811791610b8b8161133b565b9050610ace565b50909392505050565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6003805461ffff90811660009081526004602090815260408083208651815488850180518a8601805163ffffffff95861667ffffffffffffffff199095168517640100000000938716939093029290921768ff00000000000000001916600160401b60ff9384160217909555985485519283529051909216948101949094529051909516908201529092909116907fdbee9d337a6e5fde30966e157673aaeeb6a0134afaf774a4b6979b7c79d07da49060600160405180910390a26003805461ffff16906000610cbc83611356565b91906101000a81548161ffff021916908361ffff1602179055509050919050565b828054610ce9906111e2565b90600052602060002090601f016020900481019282610d0b5760008555610d51565b82601f10610d2457805160ff1916838001178555610d51565b82800160010185558215610d51579182015b82811115610d51578251825591602001919060010190610d36565b50610d5d929150610d61565b5090565b5b80821115610d5d5760008155600101610d62565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610db557610db5610d76565b604052919050565b600082601f830112610dce57600080fd5b813567ffffffffffffffff811115610de857610de8610d76565b610dfb601f8201601f1916602001610d8c565b818152846020838601011115610e1057600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215610e3f57600080fd5b813567ffffffffffffffff811115610e5657600080fd5b610e6284828501610dbd565b949350505050565b803560ff8116811461055f57600080fd5b600060208284031215610e8d57600080fd5b610e9682610e6a565b9392505050565b600060208284031215610eaf57600080fd5b813561ffff81168114610e9657600080fd5b600060408284031215610ed357600080fd5b6040516040810181811067ffffffffffffffff82111715610ef657610ef6610d76565b604052905080610f0583610e6a565b8152610f1360208401610e6a565b60208201525092915050565b600060408284031215610f3157600080fd5b610e968383610ec1565b6000815180845260005b81811015610f6157602081850181015186830182015201610f45565b81811115610f73576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610e966020830184610f3b565b803563ffffffff8116811461055f57600080fd5b600060608284031215610fc157600080fd5b6040516060810181811067ffffffffffffffff82111715610fe457610fe4610d76565b604052905080610ff383610f9b565b815261100160208401610f9b565b602082015261101260408401610e6a565b60408201525092915050565b60006060828403121561103057600080fd5b610e968383610faf565b604081016106da8284805160ff908116835260209182015116910152565b80356001600160a01b038116811461055f57600080fd5b60006020828403121561108157600080fd5b610e9682611058565b600082601f83011261109b57600080fd5b8135602067ffffffffffffffff8211156110b7576110b7610d76565b6110c5818360051b01610d8c565b828152606092830285018201928282019190878511156110e457600080fd5b8387015b85811015611107576110fa8982610faf565b84529284019281016110e8565b5090979650505050505050565b60008060008060008060e0878903121561112d57600080fd5b61113687611058565b9550602087013567ffffffffffffffff8082111561115357600080fd5b61115f8a838b01610dbd565b9650604089013591508082111561117557600080fd5b6111818a838b01610dbd565b9550606089013591508082111561119757600080fd5b6111a38a838b01610dbd565b945060808901359150808211156111b957600080fd5b506111c689828a0161108a565b9250506111d68860a08901610ec1565b90509295509295509295565b600181811c908216806111f657607f821691505b6020821081141561121757634e487b7160e01b600052602260045260246000fd5b50919050565b60408152600080845481600182811c91508083168061123d57607f831692505b602080841082141561125d57634e487b7160e01b86526022600452602486fd5b604088018490526060880182801561127c576001811461128d576112b8565b60ff198716825282820197506112b8565b60008c81526020902060005b878110156112b257815484820152908601908401611299565b83019850505b50508786038189015250505050506112d08185610f3b565b95945050505050565b634e487b7160e01b600052603260045260246000fd5b825460ff808216835260089190911c16602082015260808101610e966040830184805160ff908116835260209182015116910152565b634e487b7160e01b600052601160045260246000fd5b600060001982141561134f5761134f611325565b5060010190565b600061ffff8083168181141561136e5761136e611325565b600101939250505056fea26469706673582212208e4615301ccfefbb6997f01789117492a27a9f8b4f3611a98c8d3ecbafa3d14864736f6c634300080c0033", } // ContractEigenDAThresholdRegistryABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/EjectionManager/binding.go b/contracts/bindings/EjectionManager/binding.go index 5ab001f423..ea565b7457 100644 --- a/contracts/bindings/EjectionManager/binding.go +++ b/contracts/bindings/EjectionManager/binding.go @@ -38,7 +38,7 @@ type IEjectionManagerQuorumEjectionParams struct { // ContractEjectionManagerMetaData contains all meta data concerning the ContractEjectionManager contract. var ContractEjectionManagerMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"_stakeRegistry\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"amountEjectableForQuorum\",\"inputs\":[{\"name\":\"_quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ejectOperators\",\"inputs\":[{\"name\":\"_operatorIds\",\"type\":\"bytes32[][]\",\"internalType\":\"bytes32[][]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_ejectors\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"_quorumEjectionParams\",\"type\":\"tuple[]\",\"internalType\":\"structIEjectionManager.QuorumEjectionParams[]\",\"components\":[{\"name\":\"rateLimitWindow\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"ejectableStakePercent\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isEjector\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumEjectionParams\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"rateLimitWindow\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"ejectableStakePercent\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registryCoordinator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setEjector\",\"inputs\":[{\"name\":\"_ejector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_status\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setQuorumEjectionParams\",\"inputs\":[{\"name\":\"_quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"_quorumEjectionParams\",\"type\":\"tuple\",\"internalType\":\"structIEjectionManager.QuorumEjectionParams\",\"components\":[{\"name\":\"rateLimitWindow\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"ejectableStakePercent\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stakeEjectedForQuorum\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"timestamp\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"stakeEjected\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"stakeRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"EjectorUpdated\",\"inputs\":[{\"name\":\"ejector\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"status\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorEjected\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumEjection\",\"inputs\":[{\"name\":\"ejectedOperators\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"ratelimitHit\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumEjectionParamsSet\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"},{\"name\":\"rateLimitWindow\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"ejectableStakePercent\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"}],\"anonymous\":false}]", - Bin: "0x60c06040523480156200001157600080fd5b50604051620015a8380380620015a8833981016040819052620000349162000134565b6001600160a01b03808316608052811660a0526200005162000059565b505062000173565b600054610100900460ff1615620000c65760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000119576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013157600080fd5b50565b600080604083850312156200014857600080fd5b825162000155816200011b565b602084015190925062000168816200011b565b809150509250929050565b60805160a0516113f3620001b5600039600081816101800152818161035a0152610a0a0152600081816101f2015281816104ef015261051e01526113f36000f3fe608060405234801561001057600080fd5b50600436106100ce5760003560e01c80636d14a9871161008c5780638b88a024116100665780638b88a0241461022f5780638da5cb5b14610242578063b13f450414610253578063f2fde38b1461027457600080fd5b80636d14a987146101ed578063715018a61461021457806377d175861461021c57600080fd5b8062482569146100d35780630a0593d11461012b57806310ea4f8a146101405780633a0b0ddd14610153578063683048351461017b5780636c08a879146101ba575b600080fd5b6101076100e1366004610de1565b60676020526000908152604090205463ffffffff811690640100000000900461ffff1682565b6040805163ffffffff909316835261ffff9091166020830152015b60405180910390f35b61013e610139366004610e6e565b610287565b005b61013e61014e366004610f8f565b6107a9565b610166610161366004610fcd565b6107bb565b60408051928352602083019190915201610122565b6101a27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610122565b6101dd6101c8366004610ff7565b60656020526000908152604090205460ff1681565b6040519015158152602001610122565b6101a27f000000000000000000000000000000000000000000000000000000000000000081565b61013e6107f7565b61013e61022a366004611087565b61080b565b61013e61023d36600461112a565b61081d565b6033546001600160a01b03166101a2565b610266610261366004610de1565b6109c3565b604051908152602001610122565b61013e610282366004610ff7565b610bc5565b3360009081526065602052604090205460ff16806102af57506033546001600160a01b031633145b6103115760405162461bcd60e51b815260206004820152602860248201527f456a6563746f723a204f6e6c79206f776e6572206f7220656a6563746f722063604482015267185b88195a9958dd60c21b60648201526084015b60405180910390fd5b60005b81518110156107a557806000610329826109c3565b905060008080805b87878151811061034357610343611200565b6020026020010151518160ff1610156106e35760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635401ed278a8a8151811061039957610399611200565b60200260200101518460ff16815181106103b5576103b5611200565b6020026020010151896040518363ffffffff1660e01b81526004016103e792919091825260ff16602082015260400190565b602060405180830381865afa158015610404573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104289190611216565b336000908152606560205260409020546001600160601b0391909116915060ff16801561046c575060ff871660009081526067602052604090205463ffffffff1615155b801561048057508561047e8287611255565b115b156104d6575060ff861660009081526066602090815260408083208151808301909252428252818301888152815460018181018455928652939094209151600290930290910191825591519082015591506106e3565b6104e08186611255565b94506104eb8461126d565b93507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e3b17db7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663296bb0648c8c8151811061055d5761055d611200565b60200260200101518660ff168151811061057957610579611200565b60200260200101516040518263ffffffff1660e01b815260040161059f91815260200190565b602060405180830381865afa1580156105bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e09190611291565b6040516001600160f81b031960f88c901b1660208201526021016040516020818303038152906040526040518363ffffffff1660e01b81526004016106269291906112ae565b600060405180830381600087803b15801561064057600080fd5b505af1158015610654573d6000803e3d6000fd5b505050507f97ddb711c61a9d2d7effcba3e042a33862297f898d555655cca39ec4451f53b489898151811061068b5761068b611200565b60200260200101518360ff16815181106106a7576106a7611200565b6020026020010151886040516106ca92919091825260ff16602082015260400190565b60405180910390a1506106dc81611313565b9050610331565b508015801561070157503360009081526065602052604090205460ff165b1561074f5760ff851660009081526066602090815260408083208151808301909252428252818301878152815460018181018455928652939094209151600290930290910191825591519101555b6040805163ffffffff8416815282151560208201527f19dd87ae49ed14a795f8c2d5e8055bf2a4a9d01641a00a2f8f0a5a7bf7f70249910160405180910390a150505050508061079e90611333565b9050610314565b5050565b6107b1610c3e565b6107a58282610c98565b606660205281600052604060002081815481106107d757600080fd5b600091825260209091206002909102018054600190910154909250905082565b6107ff610c3e565b6108096000610cfc565b565b610813610c3e565b6107a58282610d4e565b600054610100900460ff161580801561083d5750600054600160ff909116105b806108575750303b158015610857575060005460ff166001145b6108ba5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610308565b6000805460ff1916600117905580156108dd576000805461ff0019166101001790555b6108e684610cfc565b60005b83518160ff16101561092e5761091c848260ff168151811061090d5761090d611200565b60200260200101516001610c98565b8061092681611313565b9150506108e9565b5060005b82518160ff1610156109765761096481848360ff168151811061095757610957611200565b6020026020010151610d4e565b8061096e81611313565b915050610932565b5080156109bd576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60ff811660009081526067602052604081205481906109e89063ffffffff164261134e565b60405163d5eccc0560e01b815260ff85166004820152909150600090612710907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d5eccc0590602401602060405180830381865afa158015610a59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7d9190611216565b60ff8616600090815260676020526040902054610aaf916001600160601b031690640100000000900461ffff16611365565b610ab99190611384565b60ff8516600090815260666020526040812054919250908190610ae0575090949350505050565b60ff8616600090815260666020526040902054610aff9060019061134e565b90505b60ff86166000908152606660205260409020805485919083908110610b2957610b29611200565b9060005260206000209060020201600001541115610b9e5760ff86166000908152606660205260409020805482908110610b6557610b65611200565b90600052602060002090600202016001015482610b829190611255565b915080610b8e57610b9e565b610b97816113a6565b9050610b02565b828210610bb15750600095945050505050565b610bbb828461134e565b9695505050505050565b610bcd610c3e565b6001600160a01b038116610c325760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610308565b610c3b81610cfc565b50565b6033546001600160a01b031633146108095760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610308565b6001600160a01b038216600081815260656020908152604091829020805460ff19168515159081179091558251938452908301527f7676686b6d22e112412bd874d70177e011ab06602c26063f19f0386c9a3cee4291015b60405180910390a15050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60ff8216600081815260676020908152604091829020845181548684015163ffffffff90921665ffffffffffff19909116811764010000000061ffff90931692830217909255835194855291840152908201527fe69c2827a1e2fdd32265ebb4eeea5ee564f0551cf5dfed4150f8e116a67209eb90606001610cf0565b803560ff81168114610ddc57600080fd5b919050565b600060208284031215610df357600080fd5b610dfc82610dcb565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610e4257610e42610e03565b604052919050565b600067ffffffffffffffff821115610e6457610e64610e03565b5060051b60200190565b60006020808385031215610e8157600080fd5b823567ffffffffffffffff80821115610e9957600080fd5b818501915085601f830112610ead57600080fd5b8135610ec0610ebb82610e4a565b610e19565b818152600591821b8401850191858201919089841115610edf57600080fd5b8686015b84811015610f6b57803586811115610efb5760008081fd5b8701603f81018c13610f0d5760008081fd5b888101356040610f1f610ebb83610e4a565b82815291851b83018101918b8101908f841115610f3c5760008081fd5b938201935b83851015610f5a5784358252938c0193908c0190610f41565b885250505093880193508701610ee3565b50909998505050505050505050565b6001600160a01b0381168114610c3b57600080fd5b60008060408385031215610fa257600080fd5b8235610fad81610f7a565b915060208301358015158114610fc257600080fd5b809150509250929050565b60008060408385031215610fe057600080fd5b610fe983610dcb565b946020939093013593505050565b60006020828403121561100957600080fd5b8135610dfc81610f7a565b60006040828403121561102657600080fd5b6040516040810181811067ffffffffffffffff8211171561104957611049610e03565b604052905080823563ffffffff8116811461106357600080fd5b8152602083013561ffff8116811461107a57600080fd5b6020919091015292915050565b6000806060838503121561109a57600080fd5b6110a383610dcb565b91506110b28460208501611014565b90509250929050565b600082601f8301126110cc57600080fd5b813560206110dc610ebb83610e4a565b82815260069290921b840181019181810190868411156110fb57600080fd5b8286015b8481101561111f576111118882611014565b8352918301916040016110ff565b509695505050505050565b60008060006060848603121561113f57600080fd5b833561114a81610f7a565b925060208481013567ffffffffffffffff8082111561116857600080fd5b818701915087601f83011261117c57600080fd5b813561118a610ebb82610e4a565b81815260059190911b8301840190848101908a8311156111a957600080fd5b938501935b828510156111d05784356111c181610f7a565b825293850193908501906111ae565b9650505060408701359250808311156111e857600080fd5b50506111f6868287016110bb565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561122857600080fd5b81516001600160601b0381168114610dfc57600080fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156112685761126861123f565b500190565b600063ffffffff808316818114156112875761128761123f565b6001019392505050565b6000602082840312156112a357600080fd5b8151610dfc81610f7a565b60018060a01b038316815260006020604081840152835180604085015260005b818110156112ea578581018301518582016060015282016112ce565b818111156112fc576000606083870101525b50601f01601f191692909201606001949350505050565b600060ff821660ff81141561132a5761132a61123f565b60010192915050565b60006000198214156113475761134761123f565b5060010190565b6000828210156113605761136061123f565b500390565b600081600019048311821515161561137f5761137f61123f565b500290565b6000826113a157634e487b7160e01b600052601260045260246000fd5b500490565b6000816113b5576113b561123f565b50600019019056fea2646970667358221220acbd8cd72aeec572935a1fe431c1a7916fb5a54ba6b3e6273dd51b7abb5334fb64736f6c634300080c0033", + Bin: "0x60c06040523480156200001157600080fd5b506040516200178d3803806200178d833981016040819052620000349162000134565b6001600160a01b03808316608052811660a0526200005162000059565b505062000173565b600054610100900460ff1615620000c65760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000119576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013157600080fd5b50565b600080604083850312156200014857600080fd5b825162000155816200011b565b602084015190925062000168816200011b565b809150509250929050565b60805160a0516115ca620001c360003960008181610180015281816103790152610be10152600081816101f2015281816104c1015281816104f0015281816106c301526106f201526115ca6000f3fe608060405234801561001057600080fd5b50600436106100ce5760003560e01c80636d14a9871161008c5780638b88a024116100665780638b88a0241461022f5780638da5cb5b14610242578063b13f450414610253578063f2fde38b1461027457600080fd5b80636d14a987146101ed578063715018a61461021457806377d175861461021c57600080fd5b8062482569146100d35780630a0593d11461012b57806310ea4f8a146101405780633a0b0ddd14610153578063683048351461017b5780636c08a879146101ba575b600080fd5b6101076100e1366004610fb8565b60676020526000908152604090205463ffffffff811690640100000000900461ffff1682565b6040805163ffffffff909316835261ffff9091166020830152015b60405180910390f35b61013e610139366004611045565b610287565b005b61013e61014e366004611166565b610980565b6101666101613660046111a4565b610992565b60408051928352602083019190915201610122565b6101a27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610122565b6101dd6101c83660046111ce565b60656020526000908152604090205460ff1681565b6040519015158152602001610122565b6101a27f000000000000000000000000000000000000000000000000000000000000000081565b61013e6109ce565b61013e61022a36600461125e565b6109e2565b61013e61023d366004611301565b6109f4565b6033546001600160a01b03166101a2565b610266610261366004610fb8565b610b9a565b604051908152602001610122565b61013e6102823660046111ce565b610d9c565b3360009081526065602052604090205460ff16806102af57506033546001600160a01b031633145b6103115760405162461bcd60e51b815260206004820152602860248201527f456a6563746f723a204f6e6c79206f776e6572206f7220656a6563746f722063604482015267185b88195a9958dd60c21b60648201526084015b60405180910390fd5b60005b815181101561097c5780600061032982610b9a565b905060008060008084118061034857506033546001600160a01b031633145b156108b95760005b878781518110610362576103626113d7565b6020026020010151518160ff1610156108b75760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635401ed278a8a815181106103b8576103b86113d7565b60200260200101518460ff16815181106103d4576103d46113d7565b6020026020010151896040518363ffffffff1660e01b815260040161040692919091825260ff16602082015260400190565b602060405180830381865afa158015610423573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044791906113ed565b336000908152606560205260409020546001600160601b0391909116915060ff16801561048b575060ff871660009081526067602052604090205463ffffffff1615155b801561049f57508561049d828761142c565b115b156106aa57600192506104b2818661142c565b94506104bd84611444565b93507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e3b17db7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663296bb0648c8c8151811061052f5761052f6113d7565b60200260200101518660ff168151811061054b5761054b6113d7565b60200260200101516040518263ffffffff1660e01b815260040161057191815260200190565b602060405180830381865afa15801561058e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b29190611468565b6040516001600160f81b031960f88c901b1660208201526021016040516020818303038152906040526040518363ffffffff1660e01b81526004016105f8929190611485565b600060405180830381600087803b15801561061257600080fd5b505af1158015610626573d6000803e3d6000fd5b505050507f97ddb711c61a9d2d7effcba3e042a33862297f898d555655cca39ec4451f53b489898151811061065d5761065d6113d7565b60200260200101518360ff1681518110610679576106796113d7565b60200260200101518860405161069c92919091825260ff16602082015260400190565b60405180910390a1506108b7565b6106b4818661142c565b94506106bf84611444565b93507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e3b17db7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663296bb0648c8c81518110610731576107316113d7565b60200260200101518660ff168151811061074d5761074d6113d7565b60200260200101516040518263ffffffff1660e01b815260040161077391815260200190565b602060405180830381865afa158015610790573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b49190611468565b6040516001600160f81b031960f88c901b1660208201526021016040516020818303038152906040526040518363ffffffff1660e01b81526004016107fa929190611485565b600060405180830381600087803b15801561081457600080fd5b505af1158015610828573d6000803e3d6000fd5b505050507f97ddb711c61a9d2d7effcba3e042a33862297f898d555655cca39ec4451f53b489898151811061085f5761085f6113d7565b60200260200101518360ff168151811061087b5761087b6113d7565b60200260200101518860405161089e92919091825260ff16602082015260400190565b60405180910390a1506108b0816114ea565b9050610350565b505b3360009081526065602052604090205460ff1680156108d85750600083115b156109265760ff851660009081526066602090815260408083208151808301909252428252818301878152815460018181018455928652939094209151600290930290910191825591519101555b6040805163ffffffff8416815282151560208201527f19dd87ae49ed14a795f8c2d5e8055bf2a4a9d01641a00a2f8f0a5a7bf7f70249910160405180910390a15050505050806109759061150a565b9050610314565b5050565b610988610e15565b61097c8282610e6f565b606660205281600052604060002081815481106109ae57600080fd5b600091825260209091206002909102018054600190910154909250905082565b6109d6610e15565b6109e06000610ed3565b565b6109ea610e15565b61097c8282610f25565b600054610100900460ff1615808015610a145750600054600160ff909116105b80610a2e5750303b158015610a2e575060005460ff166001145b610a915760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610308565b6000805460ff191660011790558015610ab4576000805461ff0019166101001790555b610abd84610ed3565b60005b83518160ff161015610b0557610af3848260ff1681518110610ae457610ae46113d7565b60200260200101516001610e6f565b80610afd816114ea565b915050610ac0565b5060005b82518160ff161015610b4d57610b3b81848360ff1681518110610b2e57610b2e6113d7565b6020026020010151610f25565b80610b45816114ea565b915050610b09565b508015610b94576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60ff81166000908152606760205260408120548190610bbf9063ffffffff1642611525565b60405163d5eccc0560e01b815260ff85166004820152909150600090612710907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d5eccc0590602401602060405180830381865afa158015610c30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5491906113ed565b60ff8616600090815260676020526040902054610c86916001600160601b031690640100000000900461ffff1661153c565b610c90919061155b565b60ff8516600090815260666020526040812054919250908190610cb7575090949350505050565b60ff8616600090815260666020526040902054610cd690600190611525565b90505b60ff86166000908152606660205260409020805485919083908110610d0057610d006113d7565b9060005260206000209060020201600001541115610d755760ff86166000908152606660205260409020805482908110610d3c57610d3c6113d7565b90600052602060002090600202016001015482610d59919061142c565b915080610d6557610d75565b610d6e8161157d565b9050610cd9565b828210610d885750600095945050505050565b610d928284611525565b9695505050505050565b610da4610e15565b6001600160a01b038116610e095760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610308565b610e1281610ed3565b50565b6033546001600160a01b031633146109e05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610308565b6001600160a01b038216600081815260656020908152604091829020805460ff19168515159081179091558251938452908301527f7676686b6d22e112412bd874d70177e011ab06602c26063f19f0386c9a3cee4291015b60405180910390a15050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60ff8216600081815260676020908152604091829020845181548684015163ffffffff90921665ffffffffffff19909116811764010000000061ffff90931692830217909255835194855291840152908201527fe69c2827a1e2fdd32265ebb4eeea5ee564f0551cf5dfed4150f8e116a67209eb90606001610ec7565b803560ff81168114610fb357600080fd5b919050565b600060208284031215610fca57600080fd5b610fd382610fa2565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561101957611019610fda565b604052919050565b600067ffffffffffffffff82111561103b5761103b610fda565b5060051b60200190565b6000602080838503121561105857600080fd5b823567ffffffffffffffff8082111561107057600080fd5b818501915085601f83011261108457600080fd5b813561109761109282611021565b610ff0565b818152600591821b84018501918582019190898411156110b657600080fd5b8686015b84811015611142578035868111156110d25760008081fd5b8701603f81018c136110e45760008081fd5b8881013560406110f661109283611021565b82815291851b83018101918b8101908f8411156111135760008081fd5b938201935b838510156111315784358252938c0193908c0190611118565b8852505050938801935087016110ba565b50909998505050505050505050565b6001600160a01b0381168114610e1257600080fd5b6000806040838503121561117957600080fd5b823561118481611151565b91506020830135801515811461119957600080fd5b809150509250929050565b600080604083850312156111b757600080fd5b6111c083610fa2565b946020939093013593505050565b6000602082840312156111e057600080fd5b8135610fd381611151565b6000604082840312156111fd57600080fd5b6040516040810181811067ffffffffffffffff8211171561122057611220610fda565b604052905080823563ffffffff8116811461123a57600080fd5b8152602083013561ffff8116811461125157600080fd5b6020919091015292915050565b6000806060838503121561127157600080fd5b61127a83610fa2565b915061128984602085016111eb565b90509250929050565b600082601f8301126112a357600080fd5b813560206112b361109283611021565b82815260069290921b840181019181810190868411156112d257600080fd5b8286015b848110156112f6576112e888826111eb565b8352918301916040016112d6565b509695505050505050565b60008060006060848603121561131657600080fd5b833561132181611151565b925060208481013567ffffffffffffffff8082111561133f57600080fd5b818701915087601f83011261135357600080fd5b813561136161109282611021565b81815260059190911b8301840190848101908a83111561138057600080fd5b938501935b828510156113a757843561139881611151565b82529385019390850190611385565b9650505060408701359250808311156113bf57600080fd5b50506113cd86828701611292565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156113ff57600080fd5b81516001600160601b0381168114610fd357600080fd5b634e487b7160e01b600052601160045260246000fd5b6000821982111561143f5761143f611416565b500190565b600063ffffffff8083168181141561145e5761145e611416565b6001019392505050565b60006020828403121561147a57600080fd5b8151610fd381611151565b60018060a01b038316815260006020604081840152835180604085015260005b818110156114c1578581018301518582016060015282016114a5565b818111156114d3576000606083870101525b50601f01601f191692909201606001949350505050565b600060ff821660ff81141561150157611501611416565b60010192915050565b600060001982141561151e5761151e611416565b5060010190565b60008282101561153757611537611416565b500390565b600081600019048311821515161561155657611556611416565b500290565b60008261157857634e487b7160e01b600052601260045260246000fd5b500490565b60008161158c5761158c611416565b50600019019056fea2646970667358221220c47d5f2ce7854d29f53646568c1ec7b91981cfd571775c7986c6c41bd8402d8364736f6c634300080c0033", } // ContractEjectionManagerABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/IEigenDAServiceManager/binding.go b/contracts/bindings/IEigenDAServiceManager/binding.go index d8c5af1484..991947fa31 100644 --- a/contracts/bindings/IEigenDAServiceManager/binding.go +++ b/contracts/bindings/IEigenDAServiceManager/binding.go @@ -61,6 +61,22 @@ type IBLSSignatureCheckerNonSignerStakesAndSignature struct { NonSignerStakeIndices [][]uint32 } +// IRewardsCoordinatorOperatorDirectedRewardsSubmission is an auto generated low-level Go binding around an user-defined struct. +type IRewardsCoordinatorOperatorDirectedRewardsSubmission struct { + StrategiesAndMultipliers []IRewardsCoordinatorStrategyAndMultiplier + Token common.Address + OperatorRewards []IRewardsCoordinatorOperatorReward + StartTimestamp uint32 + Duration uint32 + Description string +} + +// IRewardsCoordinatorOperatorReward is an auto generated low-level Go binding around an user-defined struct. +type IRewardsCoordinatorOperatorReward struct { + Operator common.Address + Amount *big.Int +} + // IRewardsCoordinatorRewardsSubmission is an auto generated low-level Go binding around an user-defined struct. type IRewardsCoordinatorRewardsSubmission struct { StrategiesAndMultipliers []IRewardsCoordinatorStrategyAndMultiplier @@ -98,7 +114,7 @@ type VersionedBlobParams struct { // ContractIEigenDAServiceManagerMetaData contains all meta data concerning the ContractIEigenDAServiceManager contract. var ContractIEigenDAServiceManagerMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"BLOCK_STALE_MEASURE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"avsDirectory\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"batchIdToBatchMetadataHash\",\"inputs\":[{\"name\":\"batchId\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"confirmBatch\",\"inputs\":[{\"name\":\"batchHeader\",\"type\":\"tuple\",\"internalType\":\"structBatchHeader\",\"components\":[{\"name\":\"blobHeadersRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signedStakeForQuorums\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"nonSignerStakesAndSignature\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.NonSignerStakesAndSignature\",\"components\":[{\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApks\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\",\"internalType\":\"uint32[][]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createAVSRewardsSubmission\",\"inputs\":[{\"name\":\"rewardsSubmissions\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinator.RewardsSubmission[]\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinator.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deregisterOperatorFromAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getBlobParams\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structVersionedBlobParams\",\"components\":[{\"name\":\"maxNumOperators\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"numChunks\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"codingRate\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDefaultSecurityThresholdsV2\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getIsQuorumRequired\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorRestakedStrategies\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumAdversaryThresholdPercentage\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumConfirmationThresholdPercentage\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRestakeableStrategies\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"latestServeUntilBlock\",\"inputs\":[{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumAdversaryThresholdPercentages\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumConfirmationThresholdPercentages\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumNumbersRequired\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerOperatorToAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"taskNumber\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"updateAVSMetadataURI\",\"inputs\":[{\"name\":\"_metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"BatchConfirmed\",\"inputs\":[{\"name\":\"batchHeaderHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"batchId\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BatchConfirmerStatusChanged\",\"inputs\":[{\"name\":\"batchConfirmer\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"status\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DefaultSecurityThresholdsV2Updated\",\"inputs\":[{\"name\":\"previousDefaultSecurityThresholdsV2\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"newDefaultSecurityThresholdsV2\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumAdversaryThresholdPercentagesUpdated\",\"inputs\":[{\"name\":\"previousQuorumAdversaryThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"newQuorumAdversaryThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumConfirmationThresholdPercentagesUpdated\",\"inputs\":[{\"name\":\"previousQuorumConfirmationThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"newQuorumConfirmationThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumNumbersRequiredUpdated\",\"inputs\":[{\"name\":\"previousQuorumNumbersRequired\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"newQuorumNumbersRequired\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RewardsInitiatorUpdated\",\"inputs\":[{\"name\":\"prevRewardsInitiator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newRewardsInitiator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"VersionedBlobParamsAdded\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint16\",\"indexed\":true,\"internalType\":\"uint16\"},{\"name\":\"versionedBlobParams\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structVersionedBlobParams\",\"components\":[{\"name\":\"maxNumOperators\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"numChunks\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"codingRate\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"anonymous\":false}]", + ABI: "[{\"type\":\"function\",\"name\":\"BLOCK_STALE_MEASURE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"avsDirectory\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"batchIdToBatchMetadataHash\",\"inputs\":[{\"name\":\"batchId\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"confirmBatch\",\"inputs\":[{\"name\":\"batchHeader\",\"type\":\"tuple\",\"internalType\":\"structBatchHeader\",\"components\":[{\"name\":\"blobHeadersRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signedStakeForQuorums\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"nonSignerStakesAndSignature\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.NonSignerStakesAndSignature\",\"components\":[{\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApks\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\",\"internalType\":\"uint32[][]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createAVSRewardsSubmission\",\"inputs\":[{\"name\":\"rewardsSubmissions\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinator.RewardsSubmission[]\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinator.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createOperatorDirectedAVSRewardsSubmission\",\"inputs\":[{\"name\":\"operatorDirectedRewardsSubmissions\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinator.OperatorDirectedRewardsSubmission[]\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinator.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"operatorRewards\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinator.OperatorReward[]\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"description\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deregisterOperatorFromAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getBlobParams\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structVersionedBlobParams\",\"components\":[{\"name\":\"maxNumOperators\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"numChunks\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"codingRate\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDefaultSecurityThresholdsV2\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getIsQuorumRequired\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorRestakedStrategies\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumAdversaryThresholdPercentage\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumConfirmationThresholdPercentage\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRestakeableStrategies\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"latestServeUntilBlock\",\"inputs\":[{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumAdversaryThresholdPercentages\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumConfirmationThresholdPercentages\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumNumbersRequired\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerOperatorToAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setClaimerFor\",\"inputs\":[{\"name\":\"claimer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"taskNumber\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"updateAVSMetadataURI\",\"inputs\":[{\"name\":\"_metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"BatchConfirmed\",\"inputs\":[{\"name\":\"batchHeaderHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"batchId\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BatchConfirmerStatusChanged\",\"inputs\":[{\"name\":\"batchConfirmer\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"status\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DefaultSecurityThresholdsV2Updated\",\"inputs\":[{\"name\":\"previousDefaultSecurityThresholdsV2\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"newDefaultSecurityThresholdsV2\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structSecurityThresholds\",\"components\":[{\"name\":\"confirmationThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThreshold\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumAdversaryThresholdPercentagesUpdated\",\"inputs\":[{\"name\":\"previousQuorumAdversaryThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"newQuorumAdversaryThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumConfirmationThresholdPercentagesUpdated\",\"inputs\":[{\"name\":\"previousQuorumConfirmationThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"newQuorumConfirmationThresholdPercentages\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumNumbersRequiredUpdated\",\"inputs\":[{\"name\":\"previousQuorumNumbersRequired\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"newQuorumNumbersRequired\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RewardsInitiatorUpdated\",\"inputs\":[{\"name\":\"prevRewardsInitiator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newRewardsInitiator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"VersionedBlobParamsAdded\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint16\",\"indexed\":true,\"internalType\":\"uint16\"},{\"name\":\"versionedBlobParams\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structVersionedBlobParams\",\"components\":[{\"name\":\"maxNumOperators\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"numChunks\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"codingRate\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}],\"anonymous\":false}]", } // ContractIEigenDAServiceManagerABI is the input ABI used to generate the binding from. @@ -754,6 +770,27 @@ func (_ContractIEigenDAServiceManager *ContractIEigenDAServiceManagerTransactorS return _ContractIEigenDAServiceManager.Contract.CreateAVSRewardsSubmission(&_ContractIEigenDAServiceManager.TransactOpts, rewardsSubmissions) } +// CreateOperatorDirectedAVSRewardsSubmission is a paid mutator transaction binding the contract method 0xa20b99bf. +// +// Solidity: function createOperatorDirectedAVSRewardsSubmission(((address,uint96)[],address,(address,uint256)[],uint32,uint32,string)[] operatorDirectedRewardsSubmissions) returns() +func (_ContractIEigenDAServiceManager *ContractIEigenDAServiceManagerTransactor) CreateOperatorDirectedAVSRewardsSubmission(opts *bind.TransactOpts, operatorDirectedRewardsSubmissions []IRewardsCoordinatorOperatorDirectedRewardsSubmission) (*types.Transaction, error) { + return _ContractIEigenDAServiceManager.contract.Transact(opts, "createOperatorDirectedAVSRewardsSubmission", operatorDirectedRewardsSubmissions) +} + +// CreateOperatorDirectedAVSRewardsSubmission is a paid mutator transaction binding the contract method 0xa20b99bf. +// +// Solidity: function createOperatorDirectedAVSRewardsSubmission(((address,uint96)[],address,(address,uint256)[],uint32,uint32,string)[] operatorDirectedRewardsSubmissions) returns() +func (_ContractIEigenDAServiceManager *ContractIEigenDAServiceManagerSession) CreateOperatorDirectedAVSRewardsSubmission(operatorDirectedRewardsSubmissions []IRewardsCoordinatorOperatorDirectedRewardsSubmission) (*types.Transaction, error) { + return _ContractIEigenDAServiceManager.Contract.CreateOperatorDirectedAVSRewardsSubmission(&_ContractIEigenDAServiceManager.TransactOpts, operatorDirectedRewardsSubmissions) +} + +// CreateOperatorDirectedAVSRewardsSubmission is a paid mutator transaction binding the contract method 0xa20b99bf. +// +// Solidity: function createOperatorDirectedAVSRewardsSubmission(((address,uint96)[],address,(address,uint256)[],uint32,uint32,string)[] operatorDirectedRewardsSubmissions) returns() +func (_ContractIEigenDAServiceManager *ContractIEigenDAServiceManagerTransactorSession) CreateOperatorDirectedAVSRewardsSubmission(operatorDirectedRewardsSubmissions []IRewardsCoordinatorOperatorDirectedRewardsSubmission) (*types.Transaction, error) { + return _ContractIEigenDAServiceManager.Contract.CreateOperatorDirectedAVSRewardsSubmission(&_ContractIEigenDAServiceManager.TransactOpts, operatorDirectedRewardsSubmissions) +} + // DeregisterOperatorFromAVS is a paid mutator transaction binding the contract method 0xa364f4da. // // Solidity: function deregisterOperatorFromAVS(address operator) returns() @@ -796,6 +833,27 @@ func (_ContractIEigenDAServiceManager *ContractIEigenDAServiceManagerTransactorS return _ContractIEigenDAServiceManager.Contract.RegisterOperatorToAVS(&_ContractIEigenDAServiceManager.TransactOpts, operator, operatorSignature) } +// SetClaimerFor is a paid mutator transaction binding the contract method 0xa0169ddd. +// +// Solidity: function setClaimerFor(address claimer) returns() +func (_ContractIEigenDAServiceManager *ContractIEigenDAServiceManagerTransactor) SetClaimerFor(opts *bind.TransactOpts, claimer common.Address) (*types.Transaction, error) { + return _ContractIEigenDAServiceManager.contract.Transact(opts, "setClaimerFor", claimer) +} + +// SetClaimerFor is a paid mutator transaction binding the contract method 0xa0169ddd. +// +// Solidity: function setClaimerFor(address claimer) returns() +func (_ContractIEigenDAServiceManager *ContractIEigenDAServiceManagerSession) SetClaimerFor(claimer common.Address) (*types.Transaction, error) { + return _ContractIEigenDAServiceManager.Contract.SetClaimerFor(&_ContractIEigenDAServiceManager.TransactOpts, claimer) +} + +// SetClaimerFor is a paid mutator transaction binding the contract method 0xa0169ddd. +// +// Solidity: function setClaimerFor(address claimer) returns() +func (_ContractIEigenDAServiceManager *ContractIEigenDAServiceManagerTransactorSession) SetClaimerFor(claimer common.Address) (*types.Transaction, error) { + return _ContractIEigenDAServiceManager.Contract.SetClaimerFor(&_ContractIEigenDAServiceManager.TransactOpts, claimer) +} + // UpdateAVSMetadataURI is a paid mutator transaction binding the contract method 0xa98fb355. // // Solidity: function updateAVSMetadataURI(string _metadataURI) returns() diff --git a/contracts/bindings/IndexRegistry/binding.go b/contracts/bindings/IndexRegistry/binding.go index 4e58aa767c..fc384324b0 100644 --- a/contracts/bindings/IndexRegistry/binding.go +++ b/contracts/bindings/IndexRegistry/binding.go @@ -44,7 +44,7 @@ type IIndexRegistryQuorumUpdate struct { // ContractIndexRegistryMetaData contains all meta data concerning the ContractIndexRegistry contract. var ContractIndexRegistryMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"OPERATOR_DOES_NOT_EXIST_ID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"currentOperatorIndex\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deregisterOperator\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getLatestOperatorUpdate\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIIndexRegistry.OperatorUpdate\",\"components\":[{\"name\":\"fromBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getLatestQuorumUpdate\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIIndexRegistry.QuorumUpdate\",\"components\":[{\"name\":\"fromBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"numOperators\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorListAtBlockNumber\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorUpdateAtIndex\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"arrayIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIIndexRegistry.OperatorUpdate\",\"components\":[{\"name\":\"fromBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumUpdateAtIndex\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"quorumIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIIndexRegistry.QuorumUpdate\",\"components\":[{\"name\":\"fromBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"numOperators\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initializeQuorum\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerOperator\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registryCoordinator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalOperatorsForQuorum\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumIndexUpdate\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"},{\"name\":\"newOperatorIndex\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false}]", - Bin: "0x60a060405234801561001057600080fd5b5060405161136138038061136183398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b60805161120361015e60003960008181610142015261085a01526112036000f3fe608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610ebd565b610268565b6040516100d89190610f39565b60405180910390f35b6100f46100ef366004610fad565b61038a565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fe0565b6103d0565b005b6100f4610138366004610ffb565b6104b4565b6101647f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fe0565b61053a565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610fad565b610581565b6040516100d8919061103e565b61018f6101e1366004610fad565b6106eb565b6101286101f4366004610ebd565b610762565b610201600081565b6040519081526020016100d8565b61024061021d366004611076565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fe0565b610830565b606061027261084f565b60008267ffffffffffffffff81111561028d5761028d6110a0565b6040519080825280602002602001820160405280156102b6578160200160208202803683370190505b50905060005b8381101561037f5760008585838181106102d8576102d86110b6565b919091013560f81c60008181526003602052604090205490925090508061031a5760405162461bcd60e51b8152600401610311906110cc565b60405180910390fd5b600061032583610905565b905061033c8984610337600185611137565b6109fe565b8085858151811061034f5761034f6110b6565b602002602001019063ffffffff16908163ffffffff168152505050505080806103779061115c565b9150506102bc565b5090505b9392505050565b60408051808201909152600080825260208201526103a88383610a88565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b6103d861084f565b60ff8116600090815260036020526040902054156104525760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b6064820152608401610311565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff80881685529252909120805490918416908110610501576105016110b6565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b604080518082019091526000808252602082015261055782610ae0565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b6060600061058f8484610b22565b905060008163ffffffff1667ffffffffffffffff8111156105b2576105b26110a0565b6040519080825280602002602001820160405280156105db578160200160208202803683370190505b50905060005b8263ffffffff168110156106e2576105fa868287610c57565b82828151811061060c5761060c6110b6565b6020026020010181815250506000801b82828151811061062e5761062e6110b6565b602002602001015114156106d05760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a401610311565b806106da8161115c565b9150506105e1565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff8416908110610729576107296110b6565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b61076a61084f565b60005b8181101561082a576000838383818110610789576107896110b6565b919091013560f81c6000818152600360205260409020549092509050806107c25760405162461bcd60e51b8152600401610311906110cc565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff16906107f084610d2e565b905060006107fe8583610d68565b9050808914610812576108128186856109fe565b505050505080806108229061115c565b91505061076d565b50505050565b600061083b82610ae0565b54600160201b900463ffffffff1692915050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109035760405162461bcd60e51b815260206004820152604d60248201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960448201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260648201526c3c9031b7b7b93234b730ba37b960991b608482015260a401610311565b565b60008061091183610ae0565b805490915060009061093190600160201b900463ffffffff166001611177565b905061093e848383610d92565b60ff841660009081526002602052604081209061095c600184611137565b63ffffffff1681526020810191909152604001600020546103835760ff8416600090815260026020526040812090610995600184611137565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b6000610a0a8383610a88565b9050610a1883838387610e32565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610ab960018361119f565b81548110610ac957610ac96110b6565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610b0060018361119f565b81548110610b1057610b106110b6565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bca5760ff85166000908152600360205260408120610b5a60018461119f565b81548110610b6a57610b6a6110b6565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610bb7576020015192506103ca915050565b5080610bc2816111b6565b915050610b37565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a401610311565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d225760ff8616600090815260026020908152604080832063ffffffff891684529091528120610cb160018461119f565b81548110610cc157610cc16110b6565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d0f57602001519250610383915050565b5080610d1a816111b6565b915050610c7d565b50600095945050505050565b600080610d3a83610ae0565b8054909150600090610d5b90600190600160201b900463ffffffff16611137565b9050610383848383610d92565b600080610d758484610a88565b6001810154909150610d8a8585846000610e32565b949350505050565b81544363ffffffff90811691161415610dc957815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b81544363ffffffff90811691161415610e51576001820181905561082a565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ed257600080fd5b83359250602084013567ffffffffffffffff80821115610ef157600080fd5b818601915086601f830112610f0557600080fd5b813581811115610f1457600080fd5b876020828501011115610f2657600080fd5b6020830194508093505050509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f7757835163ffffffff1683529284019291840191600101610f55565b50909695505050505050565b803560ff81168114610f9457600080fd5b919050565b803563ffffffff81168114610f9457600080fd5b60008060408385031215610fc057600080fd5b610fc983610f83565b9150610fd760208401610f99565b90509250929050565b600060208284031215610ff257600080fd5b61038382610f83565b60008060006060848603121561101057600080fd5b61101984610f83565b925061102760208501610f99565b915061103560408501610f99565b90509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f775783518352928401929184019160010161105a565b6000806040838503121561108957600080fd5b61109283610f83565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff8381169083168181101561115457611154611121565b039392505050565b600060001982141561117057611170611121565b5060010190565b600063ffffffff80831681851680830382111561119657611196611121565b01949350505050565b6000828210156111b1576111b1611121565b500390565b6000816111c5576111c5611121565b50600019019056fea26469706673582212204f380fcb20a2d819801fbb516cb7bf45a1608830fad95469b0c3a6fe035abbd064736f6c634300080c0033", + Bin: "0x60a060405234801561001057600080fd5b5060405161136138038061136183398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b60805161120361015e60003960008181610142015261085a01526112036000f3fe608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610ebd565b610268565b6040516100d89190610f39565b60405180910390f35b6100f46100ef366004610fad565b61038a565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fe0565b6103d0565b005b6100f4610138366004610ffb565b6104b4565b6101647f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fe0565b61053a565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610fad565b610581565b6040516100d8919061103e565b61018f6101e1366004610fad565b6106eb565b6101286101f4366004610ebd565b610762565b610201600081565b6040519081526020016100d8565b61024061021d366004611076565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fe0565b610830565b606061027261084f565b60008267ffffffffffffffff81111561028d5761028d6110a0565b6040519080825280602002602001820160405280156102b6578160200160208202803683370190505b50905060005b8381101561037f5760008585838181106102d8576102d86110b6565b919091013560f81c60008181526003602052604090205490925090508061031a5760405162461bcd60e51b8152600401610311906110cc565b60405180910390fd5b600061032583610905565b905061033c8984610337600185611137565b6109fe565b8085858151811061034f5761034f6110b6565b602002602001019063ffffffff16908163ffffffff168152505050505080806103779061115c565b9150506102bc565b5090505b9392505050565b60408051808201909152600080825260208201526103a88383610a88565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b6103d861084f565b60ff8116600090815260036020526040902054156104525760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b6064820152608401610311565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff80881685529252909120805490918416908110610501576105016110b6565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b604080518082019091526000808252602082015261055782610ae0565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b6060600061058f8484610b22565b905060008163ffffffff1667ffffffffffffffff8111156105b2576105b26110a0565b6040519080825280602002602001820160405280156105db578160200160208202803683370190505b50905060005b8263ffffffff168110156106e2576105fa868287610c57565b82828151811061060c5761060c6110b6565b6020026020010181815250506000801b82828151811061062e5761062e6110b6565b602002602001015114156106d05760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a401610311565b806106da8161115c565b9150506105e1565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff8416908110610729576107296110b6565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b61076a61084f565b60005b8181101561082a576000838383818110610789576107896110b6565b919091013560f81c6000818152600360205260409020549092509050806107c25760405162461bcd60e51b8152600401610311906110cc565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff16906107f084610d2e565b905060006107fe8583610d68565b9050808914610812576108128186856109fe565b505050505080806108229061115c565b91505061076d565b50505050565b600061083b82610ae0565b54600160201b900463ffffffff1692915050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109035760405162461bcd60e51b815260206004820152604d60248201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960448201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260648201526c3c9031b7b7b93234b730ba37b960991b608482015260a401610311565b565b60008061091183610ae0565b805490915060009061093190600160201b900463ffffffff166001611177565b905061093e848383610d92565b60ff841660009081526002602052604081209061095c600184611137565b63ffffffff1681526020810191909152604001600020546103835760ff8416600090815260026020526040812090610995600184611137565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b6000610a0a8383610a88565b9050610a1883838387610e32565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610ab960018361119f565b81548110610ac957610ac96110b6565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610b0060018361119f565b81548110610b1057610b106110b6565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bca5760ff85166000908152600360205260408120610b5a60018461119f565b81548110610b6a57610b6a6110b6565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610bb7576020015192506103ca915050565b5080610bc2816111b6565b915050610b37565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a401610311565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d225760ff8616600090815260026020908152604080832063ffffffff891684529091528120610cb160018461119f565b81548110610cc157610cc16110b6565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d0f57602001519250610383915050565b5080610d1a816111b6565b915050610c7d565b50600095945050505050565b600080610d3a83610ae0565b8054909150600090610d5b90600190600160201b900463ffffffff16611137565b9050610383848383610d92565b600080610d758484610a88565b6001810154909150610d8a8585846000610e32565b949350505050565b81544363ffffffff90811691161415610dc957815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b81544363ffffffff90811691161415610e51576001820181905561082a565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ed257600080fd5b83359250602084013567ffffffffffffffff80821115610ef157600080fd5b818601915086601f830112610f0557600080fd5b813581811115610f1457600080fd5b876020828501011115610f2657600080fd5b6020830194508093505050509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f7757835163ffffffff1683529284019291840191600101610f55565b50909695505050505050565b803560ff81168114610f9457600080fd5b919050565b803563ffffffff81168114610f9457600080fd5b60008060408385031215610fc057600080fd5b610fc983610f83565b9150610fd760208401610f99565b90509250929050565b600060208284031215610ff257600080fd5b61038382610f83565b60008060006060848603121561101057600080fd5b61101984610f83565b925061102760208501610f99565b915061103560408501610f99565b90509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f775783518352928401929184019160010161105a565b6000806040838503121561108957600080fd5b61109283610f83565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff8381169083168181101561115457611154611121565b039392505050565b600060001982141561117057611170611121565b5060010190565b600063ffffffff80831681851680830382111561119657611196611121565b01949350505050565b6000828210156111b1576111b1611121565b500390565b6000816111c5576111c5611121565b50600019019056fea2646970667358221220e24aa60e6467c21062da253131c643b2edab69a4097bc96bdc82ecaa55f77c0964736f6c634300080c0033", } // ContractIndexRegistryABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/MockRollup/binding.go b/contracts/bindings/MockRollup/binding.go index 3fcae11f6a..15b80c770f 100644 --- a/contracts/bindings/MockRollup/binding.go +++ b/contracts/bindings/MockRollup/binding.go @@ -83,7 +83,7 @@ type QuorumBlobParam struct { // ContractMockRollupMetaData contains all meta data concerning the ContractMockRollup contract. var ContractMockRollupMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_eigenDAServiceManager\",\"type\":\"address\",\"internalType\":\"contractIEigenDAServiceManager\"},{\"name\":\"_tau\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"challengeCommitment\",\"inputs\":[{\"name\":\"timestamp\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"point\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"proof\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"challengeValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"commitments\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"confirmer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"dataLength\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"polynomialCommitment\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenDAServiceManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenDAServiceManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"postCommitment\",\"inputs\":[{\"name\":\"blobHeader\",\"type\":\"tuple\",\"internalType\":\"structBlobHeader\",\"components\":[{\"name\":\"commitment\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"dataLength\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"quorumBlobParams\",\"type\":\"tuple[]\",\"internalType\":\"structQuorumBlobParam[]\",\"components\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThresholdPercentage\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"confirmationThresholdPercentage\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"chunkLength\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}]},{\"name\":\"blobVerificationProof\",\"type\":\"tuple\",\"internalType\":\"structBlobVerificationProof\",\"components\":[{\"name\":\"batchId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"blobIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"batchMetadata\",\"type\":\"tuple\",\"internalType\":\"structBatchMetadata\",\"components\":[{\"name\":\"batchHeader\",\"type\":\"tuple\",\"internalType\":\"structBatchHeader\",\"components\":[{\"name\":\"blobHeadersRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signedStakeForQuorums\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"signatoryRecordHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"confirmationBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"inclusionProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"quorumIndices\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"tau\",\"inputs\":[],\"outputs\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"}]", - Bin: "0x60806040523480156200001157600080fd5b5060405162001ecc38038062001ecc833981016040819052620000349162000067565b600080546001600160a01b0319166001600160a01b039390931692909217909155805160015560200151600255620000f9565b60008082840360608112156200007c57600080fd5b83516001600160a01b03811681146200009457600080fd5b92506040601f1982011215620000a957600080fd5b50604080519081016001600160401b0381118282101715620000db57634e487b7160e01b600052604160045260246000fd5b60409081526020858101518352940151938101939093525092909150565b611dc380620001096000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806349ce89971461005c578063b5144c73146100cf578063cfc4af55146100e4578063d2d16eb214610107578063fc30cad01461012a575b600080fd5b6100b761006a36600461154e565b6003602090815260009182526040918290208054835180850190945260018201548452600290910154918301919091526001600160a01b03811691600160a01b90910463ffffffff169083565b6040516100c693929190611567565b60405180910390f35b6100e26100dd36600461189e565b610155565b005b6001546002546100f2919082565b604080519283526020830191909152016100c6565b61011a610115366004611a7b565b610270565b60405190151581526020016100c6565b60005461013d906001600160a01b031681565b6040516001600160a01b0390911681526020016100c6565b426000908152600360205260409020546001600160a01b0316156101dd5760405162461bcd60e51b815260206004820152603460248201527f4d6f636b526f6c6c75702e706f7374436f6d6d69746d656e743a20436f6d6d696044820152731d1b595b9d08185b1c9958591e481c1bdcdd195960621b60648201526084015b60405180910390fd5b6000546101f59083906001600160a01b0316836103f8565b506040805160608101825233815260208381015163ffffffff90811682840190815294518385019081524260009081526003845294909420925183549551909116600160a01b026001600160c01b03199095166001600160a01b03919091161793909317815590518051600183015590910151600290910155565b6000848152600360209081526040808320815160608101835281546001600160a01b038082168352600160a01b90910463ffffffff16828601528351808501855260018401548152600290930154948301949094529182015280519091166103385760405162461bcd60e51b815260206004820152603560248201527f4d6f636b526f6c6c75702e6368616c6c656e6765436f6d6d69746d656e743a2060448201527410dbdb5b5a5d1b595b9d081b9bdd081c1bdcdd1959605a1b60648201526084016101d4565b806020015163ffffffff1685106103c35760405162461bcd60e51b815260206004820152604360248201527f4d6f636b526f6c6c75702e6368616c6c656e6765436f6d6d69746d656e743a2060448201527f506f696e74206d757374206265206c657373207468616e2064617461206c656e6064820152620cee8d60eb1b608482015260a4016101d4565b60408051808201825260015481526002546020820152908201516103ec91879186919088610ab8565b9150505b949350505050565b805160405163eccbbfc960e01b815263ffffffff90911660048201526001600160a01b0383169063eccbbfc990602401602060405180830381865afa158015610445573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104699190611ae9565b6104768260400151610b35565b146104fd5760405162461bcd60e51b815260206004820152604b60248201527f456967656e4441526f6c6c75705574696c732e766572696679426c6f623a206260448201527f617463684d6574616461746120646f6573206e6f74206d617463682073746f7260648201526a6564206d6574616461746160a81b608482015260a4016101d4565b60608101516040820151515161054f919061051786610bac565b60405160200161052991815260200190565b60405160208183030381529060405280519060200120846020015163ffffffff16610bdc565b6105c15760405162461bcd60e51b815260206004820152603960248201527f456967656e4441526f6c6c75705574696c732e766572696679426c6f623a206960448201527f6e636c7573696f6e2070726f6f6620697320696e76616c69640000000000000060648201526084016101d4565b6000805b8460400151518110156109a157846040015181815181106105e8576105e8611b02565b60200260200101516000015160ff16836040015160000151602001518460800151838151811061061a5761061a611b02565b0160200151815160f89190911c90811061063657610636611b02565b016020015160f81c146106b15760405162461bcd60e51b815260206004820152603a60248201527f456967656e4441526f6c6c75705574696c732e766572696679426c6f623a207160448201527f756f72756d4e756d62657220646f6573206e6f74206d6174636800000000000060648201526084016101d4565b846040015181815181106106c7576106c7611b02565b60200260200101516040015160ff16856040015182815181106106ec576106ec611b02565b60200260200101516020015160ff161061077f5760405162461bcd60e51b815260206004820152604860248201527f456967656e4441526f6c6c75705574696c732e766572696679426c6f623a206160448201527f64766572736172795468726573686f6c6450657263656e74616765206973206e6064820152671bdd081d985b1a5960c21b608482015260a4016101d4565b60006107af858760400151848151811061079b5761079b611b02565b60200260200101516000015160ff16610bf4565b905060ff811615610866578060ff16866040015183815181106107d4576107d4611b02565b60200260200101516020015160ff1610156108665760405162461bcd60e51b815260206004820152604660248201527f456967656e4441526f6c6c75705574696c732e766572696679426c6f623a206160448201527f64766572736172795468726573686f6c6450657263656e74616765206973206e6064820152651bdd081b595d60d21b608482015260a4016101d4565b8560400151828151811061087c5761087c611b02565b60200260200101516040015160ff1684604001516000015160400151856080015184815181106108ae576108ae611b02565b0160200151815160f89190911c9081106108ca576108ca611b02565b016020015160f81c10156109585760405162461bcd60e51b815260206004820152604960248201527f456967656e4441526f6c6c75705574696c732e766572696679426c6f623a206360448201527f6f6e6669726d6174696f6e5468726573686f6c6450657263656e7461676520696064820152681cc81b9bdd081b595d60ba1b608482015260a4016101d4565b61098b838760400151848151811061097257610972611b02565b602002602001015160000151600160ff919091161b1790565b925050808061099990611b2e565b9150506105c5565b50610a1a610a13846001600160a01b031663e15234ff6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156109e6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a0e9190810190611b75565b610ceb565b8281161490565b610ab25760405162461bcd60e51b815260206004820152605960248201527f456967656e4441526f6c6c75705574696c732e766572696679426c6f623a207260448201527f657175697265642071756f72756d7320617265206e6f7420612073756273657460648201527f206f662074686520636f6e6669726d65642071756f72756d7300000000000000608482015260a4016101d4565b50505050565b600080610aef610aea604080518082018252600080825260209182015281518083019092526001825260029082015290565b610e78565b9050610b2a610b08610b01838a610f37565b8790610fce565b84610b1d610b16858b610f37565b8890610fce565b610b25611062565b611122565b979650505050505050565b6000610ba68260000151604051602001610b4f9190611c18565b60408051808303601f1901815282825280516020918201208682015187840151838601929092528484015260e01b6001600160e01b0319166060840152815160448185030181526064909301909152815191012090565b92915050565b600081604051602001610bbf9190611c78565b604051602081830303815290604052805190602001209050919050565b600083610bea86858561138f565b1495945050505050565b600081836001600160a01b0316638687feae6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610c35573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c5d9190810190611b75565b511115610ba657826001600160a01b0316638687feae6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610ca2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cca9190810190611b75565b8281518110610cdb57610cdb611b02565b016020015160f81c905092915050565b600061010082511115610d745760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a4016101d4565b8151610d8257506000919050565b60008083600081518110610d9857610d98611b02565b0160200151600160f89190911c81901b92505b8451811015610e6f57848181518110610dc657610dc6611b02565b0160200151600160f89190911c1b9150828211610e5b5760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a4016101d4565b91811791610e6881611b2e565b9050610dab565b50909392505050565b60408051808201909152600080825260208201528151158015610e9d57506020820151155b15610ebb575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd478460200151610f009190611d1d565b610f2a907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611d3f565b905292915050565b919050565b6040805180820190915260008082526020820152610f53611492565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808015610f8657610f88565bfe5b5080610fc65760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016101d4565b505092915050565b6040805180820190915260008082526020820152610fea6114b0565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa9050808015610f86575080610fc65760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016101d4565b61106a6114ce565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820182528581526020808201859052825180840190935285835282018390526000916111516114f3565b60005b600281101561131657600061116a826006611d56565b905084826002811061117e5761117e611b02565b60200201515183611190836000611d75565b600c81106111a0576111a0611b02565b60200201528482600281106111b7576111b7611b02565b602002015160200151838260016111ce9190611d75565b600c81106111de576111de611b02565b60200201528382600281106111f5576111f5611b02565b6020020151515183611208836002611d75565b600c811061121857611218611b02565b602002015283826002811061122f5761122f611b02565b6020020151516001602002015183611248836003611d75565b600c811061125857611258611b02565b602002015283826002811061126f5761126f611b02565b60200201516020015160006002811061128a5761128a611b02565b60200201518361129b836004611d75565b600c81106112ab576112ab611b02565b60200201528382600281106112c2576112c2611b02565b6020020151602001516001600281106112dd576112dd611b02565b6020020151836112ee836005611d75565b600c81106112fe576112fe611b02565b6020020152508061130e81611b2e565b915050611154565b5061131f611512565b60006020826101808560086107d05a03fa9050808015610f8657508061137f5760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016101d4565b5051151598975050505050505050565b60006020845161139f9190611d1d565b156114265760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a4016101d4565b8260205b855181116114895761143d600285611d1d565b61145e57816000528086015160205260406000209150600284049350611477565b8086015160005281602052604060002091506002840493505b611482602082611d75565b905061142a565b50949350505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806114e1611530565b81526020016114ee611530565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b60006020828403121561156057600080fd5b5035919050565b6001600160a01b038416815263ffffffff83166020820152608081016103f0604083018480518252602090810151910152565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156115d3576115d361159a565b60405290565b6040516080810167ffffffffffffffff811182821017156115d3576115d361159a565b60405160a0810167ffffffffffffffff811182821017156115d3576115d361159a565b6040805190810167ffffffffffffffff811182821017156115d3576115d361159a565b604051601f8201601f1916810167ffffffffffffffff8111828210171561166b5761166b61159a565b604052919050565b803563ffffffff81168114610f3257600080fd5b803560ff81168114610f3257600080fd5b600067ffffffffffffffff8211156116b2576116b261159a565b50601f01601f191660200190565b600082601f8301126116d157600080fd5b81356116e46116df82611698565b611642565b8181528460208386010111156116f957600080fd5b816020850160208301376000918101602001919091529392505050565b60006060828403121561172857600080fd5b6117306115b0565b9050813567ffffffffffffffff8082111561174a57600080fd5b908301906080828603121561175e57600080fd5b6117666115d9565b8235815260208301358281111561177c57600080fd5b611788878286016116c0565b6020830152506040830135828111156117a057600080fd5b6117ac878286016116c0565b6040830152506117be60608401611673565b606082015283525050602082810135908201526117dd60408301611673565b604082015292915050565b600060a082840312156117fa57600080fd5b6118026115fc565b905061180d82611673565b815261181b60208301611673565b6020820152604082013567ffffffffffffffff8082111561183b57600080fd5b61184785838601611716565b6040840152606084013591508082111561186057600080fd5b61186c858386016116c0565b6060840152608084013591508082111561188557600080fd5b50611892848285016116c0565b60808301525092915050565b60008060408084860312156118b257600080fd5b833567ffffffffffffffff808211156118ca57600080fd5b908501908187036080808212156118e057600080fd5b6118e86115b0565b858312156118f557600080fd5b6118fd61161f565b9250843583526020808601358185015283825261191b878701611673565b8183015260609350838601358581111561193457600080fd5b8087019650508a601f87011261194957600080fd5b85358581111561195b5761195b61159a565b611969828260051b01611642565b81815260079190911b8701820190828101908d83111561198857600080fd5b978301975b828910156119f45785898f0312156119a55760008081fd5b6119ad6115d9565b6119b68a611687565b81526119c3858b01611687565b858201526119d28b8b01611687565b8b8201526119e1888b01611673565b818901528252978501979083019061198d565b98840198909852509097508801359450505080831115611a1357600080fd5b5050611a21858286016117e8565b9150509250929050565b600082601f830112611a3c57600080fd5b611a4461161f565b806040840185811115611a5657600080fd5b845b81811015611a70578035845260209384019301611a58565b509095945050505050565b60008060008084860360e0811215611a9257600080fd5b85359450602086013593506080603f1982011215611aaf57600080fd5b50611ab861161f565b611ac58760408801611a2b565b8152611ad48760808801611a2b565b60208201529396929550929360c00135925050565b600060208284031215611afb57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611b4257611b42611b18565b5060010190565b60005b83811015611b64578181015183820152602001611b4c565b83811115610ab25750506000910152565b600060208284031215611b8757600080fd5b815167ffffffffffffffff811115611b9e57600080fd5b8201601f81018413611baf57600080fd5b8051611bbd6116df82611698565b818152856020838501011115611bd257600080fd5b611be3826020830160208601611b49565b95945050505050565b60008151808452611c04816020860160208601611b49565b601f01601f19169290920160200192915050565b60208152815160208201526000602083015160806040840152611c3e60a0840182611bec565b90506040840151601f19848303016060850152611c5b8282611bec565b91505063ffffffff60608501511660808401528091505092915050565b60208082528251805183830152810151604083015260009060a0830181850151606063ffffffff808316828801526040925082880151608080818a015285825180885260c08b0191508884019750600093505b80841015611d0e578751805160ff90811684528a82015181168b850152888201511688840152860151851686830152968801966001939093019290820190611ccb565b509a9950505050505050505050565b600082611d3a57634e487b7160e01b600052601260045260246000fd5b500690565b600082821015611d5157611d51611b18565b500390565b6000816000190483118215151615611d7057611d70611b18565b500290565b60008219821115611d8857611d88611b18565b50019056fea2646970667358221220cf61920973a4ac6dfef521df13f29cd9fc97f33522d285e967cf834706c3bc9e64736f6c634300080c0033", + Bin: "0x60806040523480156200001157600080fd5b5060405162001e4938038062001e49833981016040819052620000349162000067565b600080546001600160a01b0319166001600160a01b039390931692909217909155805160015560200151600255620000f9565b60008082840360608112156200007c57600080fd5b83516001600160a01b03811681146200009457600080fd5b92506040601f1982011215620000a957600080fd5b50604080519081016001600160401b0381118282101715620000db57634e487b7160e01b600052604160045260246000fd5b60409081526020858101518352940151938101939093525092909150565b611d4080620001096000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806349ce89971461005c578063b5144c73146100cf578063cfc4af55146100e4578063d2d16eb214610107578063fc30cad01461012a575b600080fd5b6100b761006a3660046114cb565b6003602090815260009182526040918290208054835180850190945260018201548452600290910154918301919091526001600160a01b03811691600160a01b90910463ffffffff169083565b6040516100c6939291906114e4565b60405180910390f35b6100e26100dd36600461181b565b610155565b005b6001546002546100f2919082565b604080519283526020830191909152016100c6565b61011a6101153660046119f8565b6101e8565b60405190151581526020016100c6565b60005461013d906001600160a01b031681565b6040516001600160a01b0390911681526020016100c6565b60005461016d9083906001600160a01b031683610375565b506040805160608101825233815260208381015163ffffffff90811682840190815294518385019081524260009081526003845294909420925183549551909116600160a01b026001600160c01b03199095166001600160a01b03919091161793909317815590518051600183015590910151600290910155565b6000848152600360209081526040808320815160608101835281546001600160a01b038082168352600160a01b90910463ffffffff16828601528351808501855260018401548152600290930154948301949094529182015280519091166102b55760405162461bcd60e51b815260206004820152603560248201527f4d6f636b526f6c6c75702e6368616c6c656e6765436f6d6d69746d656e743a2060448201527410dbdb5b5a5d1b595b9d081b9bdd081c1bdcdd1959605a1b60648201526084015b60405180910390fd5b806020015163ffffffff1685106103405760405162461bcd60e51b815260206004820152604360248201527f4d6f636b526f6c6c75702e6368616c6c656e6765436f6d6d69746d656e743a2060448201527f506f696e74206d757374206265206c657373207468616e2064617461206c656e6064820152620cee8d60eb1b608482015260a4016102ac565b604080518082018252600154815260025460208201529082015161036991879186919088610a35565b9150505b949350505050565b805160405163eccbbfc960e01b815263ffffffff90911660048201526001600160a01b0383169063eccbbfc990602401602060405180830381865afa1580156103c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e69190611a66565b6103f38260400151610ab2565b1461047a5760405162461bcd60e51b815260206004820152604b60248201527f456967656e4441526f6c6c75705574696c732e766572696679426c6f623a206260448201527f617463684d6574616461746120646f6573206e6f74206d617463682073746f7260648201526a6564206d6574616461746160a81b608482015260a4016102ac565b6060810151604082015151516104cc919061049486610b29565b6040516020016104a691815260200190565b60405160208183030381529060405280519060200120846020015163ffffffff16610b59565b61053e5760405162461bcd60e51b815260206004820152603960248201527f456967656e4441526f6c6c75705574696c732e766572696679426c6f623a206960448201527f6e636c7573696f6e2070726f6f6620697320696e76616c69640000000000000060648201526084016102ac565b6000805b84604001515181101561091e578460400151818151811061056557610565611a7f565b60200260200101516000015160ff16836040015160000151602001518460800151838151811061059757610597611a7f565b0160200151815160f89190911c9081106105b3576105b3611a7f565b016020015160f81c1461062e5760405162461bcd60e51b815260206004820152603a60248201527f456967656e4441526f6c6c75705574696c732e766572696679426c6f623a207160448201527f756f72756d4e756d62657220646f6573206e6f74206d6174636800000000000060648201526084016102ac565b8460400151818151811061064457610644611a7f565b60200260200101516040015160ff168560400151828151811061066957610669611a7f565b60200260200101516020015160ff16106106fc5760405162461bcd60e51b815260206004820152604860248201527f456967656e4441526f6c6c75705574696c732e766572696679426c6f623a206160448201527f64766572736172795468726573686f6c6450657263656e74616765206973206e6064820152671bdd081d985b1a5960c21b608482015260a4016102ac565b600061072c858760400151848151811061071857610718611a7f565b60200260200101516000015160ff16610b71565b905060ff8116156107e3578060ff168660400151838151811061075157610751611a7f565b60200260200101516020015160ff1610156107e35760405162461bcd60e51b815260206004820152604660248201527f456967656e4441526f6c6c75705574696c732e766572696679426c6f623a206160448201527f64766572736172795468726573686f6c6450657263656e74616765206973206e6064820152651bdd081b595d60d21b608482015260a4016102ac565b856040015182815181106107f9576107f9611a7f565b60200260200101516040015160ff16846040015160000151604001518560800151848151811061082b5761082b611a7f565b0160200151815160f89190911c90811061084757610847611a7f565b016020015160f81c10156108d55760405162461bcd60e51b815260206004820152604960248201527f456967656e4441526f6c6c75705574696c732e766572696679426c6f623a206360448201527f6f6e6669726d6174696f6e5468726573686f6c6450657263656e7461676520696064820152681cc81b9bdd081b595d60ba1b608482015260a4016102ac565b61090883876040015184815181106108ef576108ef611a7f565b602002602001015160000151600160ff919091161b1790565b925050808061091690611aab565b915050610542565b50610997610990846001600160a01b031663e15234ff6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610963573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261098b9190810190611af2565b610c68565b8281161490565b610a2f5760405162461bcd60e51b815260206004820152605960248201527f456967656e4441526f6c6c75705574696c732e766572696679426c6f623a207260448201527f657175697265642071756f72756d7320617265206e6f7420612073756273657460648201527f206f662074686520636f6e6669726d65642071756f72756d7300000000000000608482015260a4016102ac565b50505050565b600080610a6c610a67604080518082018252600080825260209182015281518083019092526001825260029082015290565b610df5565b9050610aa7610a85610a7e838a610eb4565b8790610f4b565b84610a9a610a93858b610eb4565b8890610f4b565b610aa2610fdf565b61109f565b979650505050505050565b6000610b238260000151604051602001610acc9190611b95565b60408051808303601f1901815282825280516020918201208682015187840151838601929092528484015260e01b6001600160e01b0319166060840152815160448185030181526064909301909152815191012090565b92915050565b600081604051602001610b3c9190611bf5565b604051602081830303815290604052805190602001209050919050565b600083610b6786858561130c565b1495945050505050565b600081836001600160a01b0316638687feae6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610bb2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bda9190810190611af2565b511115610b2357826001600160a01b0316638687feae6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610c1f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c479190810190611af2565b8281518110610c5857610c58611a7f565b016020015160f81c905092915050565b600061010082511115610cf15760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a4016102ac565b8151610cff57506000919050565b60008083600081518110610d1557610d15611a7f565b0160200151600160f89190911c81901b92505b8451811015610dec57848181518110610d4357610d43611a7f565b0160200151600160f89190911c1b9150828211610dd85760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a4016102ac565b91811791610de581611aab565b9050610d28565b50909392505050565b60408051808201909152600080825260208201528151158015610e1a57506020820151155b15610e38575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd478460200151610e7d9190611c9a565b610ea7907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611cbc565b905292915050565b919050565b6040805180820190915260008082526020820152610ed061140f565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808015610f0357610f05565bfe5b5080610f435760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016102ac565b505092915050565b6040805180820190915260008082526020820152610f6761142d565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa9050808015610f03575080610f435760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016102ac565b610fe761144b565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820182528581526020808201859052825180840190935285835282018390526000916110ce611470565b60005b60028110156112935760006110e7826006611cd3565b90508482600281106110fb576110fb611a7f565b6020020151518361110d836000611cf2565b600c811061111d5761111d611a7f565b602002015284826002811061113457611134611a7f565b6020020151602001518382600161114b9190611cf2565b600c811061115b5761115b611a7f565b602002015283826002811061117257611172611a7f565b6020020151515183611185836002611cf2565b600c811061119557611195611a7f565b60200201528382600281106111ac576111ac611a7f565b60200201515160016020020151836111c5836003611cf2565b600c81106111d5576111d5611a7f565b60200201528382600281106111ec576111ec611a7f565b60200201516020015160006002811061120757611207611a7f565b602002015183611218836004611cf2565b600c811061122857611228611a7f565b602002015283826002811061123f5761123f611a7f565b60200201516020015160016002811061125a5761125a611a7f565b60200201518361126b836005611cf2565b600c811061127b5761127b611a7f565b6020020152508061128b81611aab565b9150506110d1565b5061129c61148f565b60006020826101808560086107d05a03fa9050808015610f035750806112fc5760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016102ac565b5051151598975050505050505050565b60006020845161131c9190611c9a565b156113a35760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a4016102ac565b8260205b85518111611406576113ba600285611c9a565b6113db578160005280860151602052604060002091506002840493506113f4565b8086015160005281602052604060002091506002840493505b6113ff602082611cf2565b90506113a7565b50949350505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061145e6114ad565b815260200161146b6114ad565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b6000602082840312156114dd57600080fd5b5035919050565b6001600160a01b038416815263ffffffff831660208201526080810161036d604083018480518252602090810151910152565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561155057611550611517565b60405290565b6040516080810167ffffffffffffffff8111828210171561155057611550611517565b60405160a0810167ffffffffffffffff8111828210171561155057611550611517565b6040805190810167ffffffffffffffff8111828210171561155057611550611517565b604051601f8201601f1916810167ffffffffffffffff811182821017156115e8576115e8611517565b604052919050565b803563ffffffff81168114610eaf57600080fd5b803560ff81168114610eaf57600080fd5b600067ffffffffffffffff82111561162f5761162f611517565b50601f01601f191660200190565b600082601f83011261164e57600080fd5b813561166161165c82611615565b6115bf565b81815284602083860101111561167657600080fd5b816020850160208301376000918101602001919091529392505050565b6000606082840312156116a557600080fd5b6116ad61152d565b9050813567ffffffffffffffff808211156116c757600080fd5b90830190608082860312156116db57600080fd5b6116e3611556565b823581526020830135828111156116f957600080fd5b6117058782860161163d565b60208301525060408301358281111561171d57600080fd5b6117298782860161163d565b60408301525061173b606084016115f0565b6060820152835250506020828101359082015261175a604083016115f0565b604082015292915050565b600060a0828403121561177757600080fd5b61177f611579565b905061178a826115f0565b8152611798602083016115f0565b6020820152604082013567ffffffffffffffff808211156117b857600080fd5b6117c485838601611693565b604084015260608401359150808211156117dd57600080fd5b6117e98583860161163d565b6060840152608084013591508082111561180257600080fd5b5061180f8482850161163d565b60808301525092915050565b600080604080848603121561182f57600080fd5b833567ffffffffffffffff8082111561184757600080fd5b9085019081870360808082121561185d57600080fd5b61186561152d565b8583121561187257600080fd5b61187a61159c565b925084358352602080860135818501528382526118988787016115f0565b818301526060935083860135858111156118b157600080fd5b8087019650508a601f8701126118c657600080fd5b8535858111156118d8576118d8611517565b6118e6828260051b016115bf565b81815260079190911b8701820190828101908d83111561190557600080fd5b978301975b828910156119715785898f0312156119225760008081fd5b61192a611556565b6119338a611604565b8152611940858b01611604565b8582015261194f8b8b01611604565b8b82015261195e888b016115f0565b818901528252978501979083019061190a565b9884019890985250909750880135945050508083111561199057600080fd5b505061199e85828601611765565b9150509250929050565b600082601f8301126119b957600080fd5b6119c161159c565b8060408401858111156119d357600080fd5b845b818110156119ed5780358452602093840193016119d5565b509095945050505050565b60008060008084860360e0811215611a0f57600080fd5b85359450602086013593506080603f1982011215611a2c57600080fd5b50611a3561159c565b611a4287604088016119a8565b8152611a5187608088016119a8565b60208201529396929550929360c00135925050565b600060208284031215611a7857600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611abf57611abf611a95565b5060010190565b60005b83811015611ae1578181015183820152602001611ac9565b83811115610a2f5750506000910152565b600060208284031215611b0457600080fd5b815167ffffffffffffffff811115611b1b57600080fd5b8201601f81018413611b2c57600080fd5b8051611b3a61165c82611615565b818152856020838501011115611b4f57600080fd5b611b60826020830160208601611ac6565b95945050505050565b60008151808452611b81816020860160208601611ac6565b601f01601f19169290920160200192915050565b60208152815160208201526000602083015160806040840152611bbb60a0840182611b69565b90506040840151601f19848303016060850152611bd88282611b69565b91505063ffffffff60608501511660808401528091505092915050565b60208082528251805183830152810151604083015260009060a0830181850151606063ffffffff808316828801526040925082880151608080818a015285825180885260c08b0191508884019750600093505b80841015611c8b578751805160ff90811684528a82015181168b850152888201511688840152860151851686830152968801966001939093019290820190611c48565b509a9950505050505050505050565b600082611cb757634e487b7160e01b600052601260045260246000fd5b500690565b600082821015611cce57611cce611a95565b500390565b6000816000190483118215151615611ced57611ced611a95565b500290565b60008219821115611d0557611d05611a95565b50019056fea26469706673582212200aeeed4f9b021817e07eb202ba618f7ffb4b9e2c5bc60727a154f432c8fc54d564736f6c634300080c0033", } // ContractMockRollupABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/OperatorStateRetriever/binding.go b/contracts/bindings/OperatorStateRetriever/binding.go index 239f23957e..087c84c4aa 100644 --- a/contracts/bindings/OperatorStateRetriever/binding.go +++ b/contracts/bindings/OperatorStateRetriever/binding.go @@ -47,7 +47,7 @@ type OperatorStateRetrieverOperator struct { // ContractOperatorStateRetrieverMetaData contains all meta data concerning the ContractOperatorStateRetriever contract. var ContractOperatorStateRetrieverMetaData = &bind.MetaData{ ABI: "[{\"type\":\"function\",\"name\":\"getBatchOperatorFromId\",\"inputs\":[{\"name\":\"registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"operatorIds\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBatchOperatorId\",\"inputs\":[{\"name\":\"registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[{\"name\":\"operatorIds\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCheckSignaturesIndices\",\"inputs\":[{\"name\":\"registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"nonSignerOperatorIds\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structOperatorStateRetriever.CheckSignaturesIndices\",\"components\":[{\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\",\"internalType\":\"uint32[][]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorState\",\"inputs\":[{\"name\":\"registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[][]\",\"internalType\":\"structOperatorStateRetriever.Operator[][]\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"stake\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorState\",\"inputs\":[{\"name\":\"registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"tuple[][]\",\"internalType\":\"structOperatorStateRetriever.Operator[][]\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"stake\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumBitmapsAtBlockNumber\",\"inputs\":[{\"name\":\"registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"operatorIds\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"}]", - Bin: "0x608060405234801561001057600080fd5b50611e03806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113fa565b610131565b60405161008791906114e8565b60405180910390f35b6100a361009e366004611524565b61024d565b604051610087919061167f565b6100c36100be3660046116f8565b6106e3565b6040516100879190611747565b6100e36100de3660046117df565b6107f8565b60405161008791906118d7565b6101036100fe366004611992565b610f22565b60405161008791906119f5565b61012361011e366004611a2d565b6110ea565b604051610087929190611a64565b606081516001600160401b0381111561014c5761014c611391565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561024657836001600160a01b03166313542a4e8483815181106101a5576101a5611a85565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a9b565b82828151811061022b5761022b611a85565b602090810291909101015261023f81611aca565b905061017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561028f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b39190611ae5565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103199190611ae5565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa15801561035b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037f9190611ae5565b9050600086516001600160401b0381111561039c5761039c611391565b6040519080825280602002602001820160405280156103cf57816020015b60608152602001906001900390816103ba5790505b50905060005b87518110156106d75760008882815181106103f2576103f2611a85565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa158015610453573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261047b9190810190611b02565b905080516001600160401b0381111561049657610496611391565b6040519080825280602002602001820160405280156104e157816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104b45790505b508484815181106104f4576104f4611a85565b602002602001018190525060005b81518110156106c1576040518060600160405280876001600160a01b03166347b314e885858151811061053757610537611a85565b60200260200101516040518263ffffffff1660e01b815260040161055d91815260200190565b602060405180830381865afa15801561057a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059e9190611ae5565b6001600160a01b031681526020018383815181106105be576105be611a85565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105ec576105ec611a85565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610648573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066c9190611b92565b6001600160601b031681525085858151811061068a5761068a611a85565b602002602001015182815181106106a3576106a3611a85565b602002602001018190525080806106b990611aca565b915050610502565b50505080806106cf90611aca565b9150506103d5565b50979650505050505050565b606081516001600160401b038111156106fe576106fe611391565b604051908082528060200260200182016040528015610727578160200160208202803683370190505b50905060005b825181101561024657836001600160a01b031663296bb06484838151811061075757610757611a85565b60200260200101516040518263ffffffff1660e01b815260040161077d91815260200190565b602060405180830381865afa15801561079a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107be9190611ae5565b8282815181106107d0576107d0611a85565b6001600160a01b03909216602092830291909101909101526107f181611aca565b905061072d565b6108236040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610863573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108879190611ae5565b90506108b46040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108e4908b9089908990600401611bbb565b600060405180830381865afa158015610901573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109299190810190611c05565b81526040516340e03a8160e11b81526001600160a01b038316906381c075029061095b908b908b908b90600401611cbc565b600060405180830381865afa158015610978573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109a09190810190611c05565b6040820152856001600160401b038111156109bd576109bd611391565b6040519080825280602002602001820160405280156109f057816020015b60608152602001906001900390816109db5790505b50606082015260005b60ff8116871115610e33576000856001600160401b03811115610a1e57610a1e611391565b604051908082528060200260200182016040528015610a47578160200160208202803683370190505b5083606001518360ff1681518110610a6157610a61611a85565b602002602001018190525060005b86811015610d335760008c6001600160a01b03166304ec63518a8a85818110610a9a57610a9a611a85565b905060200201358e88600001518681518110610ab857610ab8611a85565b60200260200101516040518463ffffffff1660e01b8152600401610af59392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610b12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b369190611ce5565b90506001600160c01b038116610bde5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bf357610bf3611a85565b6001600160c01b03841692013560f81c9190911c600190811614159050610d2057856001600160a01b031663dd9846b98a8a85818110610c3557610c35611a85565b905060200201358d8d8860ff16818110610c5157610c51611a85565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccb9190611d0e565b85606001518560ff1681518110610ce457610ce4611a85565b60200260200101518481518110610cfd57610cfd611a85565b63ffffffff9092166020928302919091019091015282610d1c81611aca565b9350505b5080610d2b81611aca565b915050610a6f565b506000816001600160401b03811115610d4e57610d4e611391565b604051908082528060200260200182016040528015610d77578160200160208202803683370190505b50905060005b82811015610df85784606001518460ff1681518110610d9e57610d9e611a85565b60200260200101518181518110610db757610db7611a85565b6020026020010151828281518110610dd157610dd1611a85565b63ffffffff9092166020928302919091019091015280610df081611aca565b915050610d7d565b508084606001518460ff1681518110610e1357610e13611a85565b602002602001018190525050508080610e2b90611d2b565b9150506109f9565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e989190611ae5565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610ecb908b908b908e90600401611d4b565b600060405180830381865afa158015610ee8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f109190810190611c05565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f54929190611d75565b600060405180830381865afa158015610f71573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f999190810190611c05565b9050600084516001600160401b03811115610fb657610fb6611391565b604051908082528060200260200182016040528015610fdf578160200160208202803683370190505b50905060005b85518110156110e057866001600160a01b03166304ec635187838151811061100f5761100f611a85565b60200260200101518786858151811061102a5761102a611a85565b60200260200101516040518463ffffffff1660e01b81526004016110679392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611084573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a89190611ce5565b6001600160c01b03168282815181106110c3576110c3611a85565b6020908102919091010152806110d881611aca565b915050610fe5565b5095945050505050565b604080516001808252818301909252600091606091839160208083019080368337019050509050848160008151811061112557611125611a85565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e906111619088908690600401611d75565b600060405180830381865afa15801561117e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111a69190810190611c05565b6000815181106111b8576111b8611a85565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa158015611224573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112489190611ce5565b6001600160c01b03169050600061125e8261127c565b90508161126c8a838a61024d565b9550955050505050935093915050565b606060008061128a84611348565b61ffff166001600160401b038111156112a5576112a5611391565b6040519080825280601f01601f1916602001820160405280156112cf576020820181803683370190505b5090506000805b8251821080156112e7575061010081105b1561133e576001811b93508584161561132e578060f81b83838151811061131057611310611a85565b60200101906001600160f81b031916908160001a9053508160010191505b61133781611aca565b90506112d6565b5090949350505050565b6000805b82156113735761135d600184611d94565b909216918061136b81611dab565b91505061134c565b92915050565b6001600160a01b038116811461138e57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156113cf576113cf611391565b604052919050565b60006001600160401b038211156113f0576113f0611391565b5060051b60200190565b6000806040838503121561140d57600080fd5b823561141881611379565b91506020838101356001600160401b0381111561143457600080fd5b8401601f8101861361144557600080fd5b8035611458611453826113d7565b6113a7565b81815260059190911b8201830190838101908883111561147757600080fd5b928401925b8284101561149e57833561148f81611379565b8252928401929084019061147c565b80955050505050509250929050565b600081518084526020808501945080840160005b838110156114dd578151875295820195908201906001016114c1565b509495945050505050565b6020815260006114fb60208301846114ad565b9392505050565b63ffffffff8116811461138e57600080fd5b803561151f81611502565b919050565b60008060006060848603121561153957600080fd5b833561154481611379565b92506020848101356001600160401b038082111561156157600080fd5b818701915087601f83011261157557600080fd5b81358181111561158757611587611391565b611599601f8201601f191685016113a7565b915080825288848285010111156115af57600080fd5b80848401858401376000848284010152508094505050506115d260408501611514565b90509250925092565b600081518084526020808501808196508360051b810191508286016000805b86811015611671578385038a52825180518087529087019087870190845b8181101561165c57835180516001600160a01b031684528a8101518b8501526040908101516001600160601b03169084015292890192606090920191600101611618565b50509a87019a955050918501916001016115fa565b509298975050505050505050565b6020815260006114fb60208301846115db565b600082601f8301126116a357600080fd5b813560206116b3611453836113d7565b82815260059290921b840181019181810190868411156116d257600080fd5b8286015b848110156116ed57803583529183019183016116d6565b509695505050505050565b6000806040838503121561170b57600080fd5b823561171681611379565b915060208301356001600160401b0381111561173157600080fd5b61173d85828601611692565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156117885783516001600160a01b031683529284019291840191600101611763565b50909695505050505050565b60008083601f8401126117a657600080fd5b5081356001600160401b038111156117bd57600080fd5b6020830191508360208260051b85010111156117d857600080fd5b9250929050565b600080600080600080608087890312156117f857600080fd5b863561180381611379565b9550602087013561181381611502565b945060408701356001600160401b038082111561182f57600080fd5b818901915089601f83011261184357600080fd5b81358181111561185257600080fd5b8a602082850101111561186457600080fd5b60208301965080955050606089013591508082111561188257600080fd5b5061188f89828a01611794565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b838110156114dd57815163ffffffff16875295820195908201906001016118b5565b6000602080835283516080828501526118f360a08501826118a1565b905081850151601f198086840301604087015261191083836118a1565b9250604087015191508086840301606087015261192d83836118a1565b60608801518782038301608089015280518083529194508501925084840190600581901b8501860160005b8281101561198457848783030184526119728287516118a1565b95880195938801939150600101611958565b509998505050505050505050565b6000806000606084860312156119a757600080fd5b83356119b281611379565b925060208401356001600160401b038111156119cd57600080fd5b6119d986828701611692565b92505060408401356119ea81611502565b809150509250925092565b6020808252825182820181905260009190848201906040850190845b8181101561178857835183529284019291840191600101611a11565b600080600060608486031215611a4257600080fd5b8335611a4d81611379565b92506020840135915060408401356119ea81611502565b828152604060208201526000611a7d60408301846115db565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611aad57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000600019821415611ade57611ade611ab4565b5060010190565b600060208284031215611af757600080fd5b81516114fb81611379565b60006020808385031215611b1557600080fd5b82516001600160401b03811115611b2b57600080fd5b8301601f81018513611b3c57600080fd5b8051611b4a611453826113d7565b81815260059190911b82018301908381019087831115611b6957600080fd5b928401925b82841015611b8757835182529284019290840190611b6e565b979650505050505050565b600060208284031215611ba457600080fd5b81516001600160601b03811681146114fb57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611be857600080fd5b8260051b8085606085013760009201606001918252509392505050565b60006020808385031215611c1857600080fd5b82516001600160401b03811115611c2e57600080fd5b8301601f81018513611c3f57600080fd5b8051611c4d611453826113d7565b81815260059190911b82018301908381019087831115611c6c57600080fd5b928401925b82841015611b87578351611c8481611502565b82529284019290840190611c71565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611cdc604083018486611c93565b95945050505050565b600060208284031215611cf757600080fd5b81516001600160c01b03811681146114fb57600080fd5b600060208284031215611d2057600080fd5b81516114fb81611502565b600060ff821660ff811415611d4257611d42611ab4565b60010192915050565b604081526000611d5f604083018587611c93565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a7d60408301846114ad565b600082821015611da657611da6611ab4565b500390565b600061ffff80831681811415611dc357611dc3611ab4565b600101939250505056fea2646970667358221220b60f9c63dd6e254991b8775fd03325d59528eb1e3a3b531ca875ed05687e09a564736f6c634300080c0033", + Bin: "0x608060405234801561001057600080fd5b50611e03806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113fa565b610131565b60405161008791906114e8565b60405180910390f35b6100a361009e366004611524565b61024d565b604051610087919061167f565b6100c36100be3660046116f8565b6106e3565b6040516100879190611747565b6100e36100de3660046117df565b6107f8565b60405161008791906118d7565b6101036100fe366004611992565b610f22565b60405161008791906119f5565b61012361011e366004611a2d565b6110ea565b604051610087929190611a64565b606081516001600160401b0381111561014c5761014c611391565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561024657836001600160a01b03166313542a4e8483815181106101a5576101a5611a85565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a9b565b82828151811061022b5761022b611a85565b602090810291909101015261023f81611aca565b905061017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561028f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b39190611ae5565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103199190611ae5565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa15801561035b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037f9190611ae5565b9050600086516001600160401b0381111561039c5761039c611391565b6040519080825280602002602001820160405280156103cf57816020015b60608152602001906001900390816103ba5790505b50905060005b87518110156106d75760008882815181106103f2576103f2611a85565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa158015610453573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261047b9190810190611b02565b905080516001600160401b0381111561049657610496611391565b6040519080825280602002602001820160405280156104e157816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104b45790505b508484815181106104f4576104f4611a85565b602002602001018190525060005b81518110156106c1576040518060600160405280876001600160a01b03166347b314e885858151811061053757610537611a85565b60200260200101516040518263ffffffff1660e01b815260040161055d91815260200190565b602060405180830381865afa15801561057a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059e9190611ae5565b6001600160a01b031681526020018383815181106105be576105be611a85565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105ec576105ec611a85565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610648573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066c9190611b92565b6001600160601b031681525085858151811061068a5761068a611a85565b602002602001015182815181106106a3576106a3611a85565b602002602001018190525080806106b990611aca565b915050610502565b50505080806106cf90611aca565b9150506103d5565b50979650505050505050565b606081516001600160401b038111156106fe576106fe611391565b604051908082528060200260200182016040528015610727578160200160208202803683370190505b50905060005b825181101561024657836001600160a01b031663296bb06484838151811061075757610757611a85565b60200260200101516040518263ffffffff1660e01b815260040161077d91815260200190565b602060405180830381865afa15801561079a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107be9190611ae5565b8282815181106107d0576107d0611a85565b6001600160a01b03909216602092830291909101909101526107f181611aca565b905061072d565b6108236040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610863573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108879190611ae5565b90506108b46040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108e4908b9089908990600401611bbb565b600060405180830381865afa158015610901573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109299190810190611c05565b81526040516340e03a8160e11b81526001600160a01b038316906381c075029061095b908b908b908b90600401611cbc565b600060405180830381865afa158015610978573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109a09190810190611c05565b6040820152856001600160401b038111156109bd576109bd611391565b6040519080825280602002602001820160405280156109f057816020015b60608152602001906001900390816109db5790505b50606082015260005b60ff8116871115610e33576000856001600160401b03811115610a1e57610a1e611391565b604051908082528060200260200182016040528015610a47578160200160208202803683370190505b5083606001518360ff1681518110610a6157610a61611a85565b602002602001018190525060005b86811015610d335760008c6001600160a01b03166304ec63518a8a85818110610a9a57610a9a611a85565b905060200201358e88600001518681518110610ab857610ab8611a85565b60200260200101516040518463ffffffff1660e01b8152600401610af59392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610b12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b369190611ce5565b90506001600160c01b038116610bde5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bf357610bf3611a85565b6001600160c01b03841692013560f81c9190911c600190811614159050610d2057856001600160a01b031663dd9846b98a8a85818110610c3557610c35611a85565b905060200201358d8d8860ff16818110610c5157610c51611a85565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccb9190611d0e565b85606001518560ff1681518110610ce457610ce4611a85565b60200260200101518481518110610cfd57610cfd611a85565b63ffffffff9092166020928302919091019091015282610d1c81611aca565b9350505b5080610d2b81611aca565b915050610a6f565b506000816001600160401b03811115610d4e57610d4e611391565b604051908082528060200260200182016040528015610d77578160200160208202803683370190505b50905060005b82811015610df85784606001518460ff1681518110610d9e57610d9e611a85565b60200260200101518181518110610db757610db7611a85565b6020026020010151828281518110610dd157610dd1611a85565b63ffffffff9092166020928302919091019091015280610df081611aca565b915050610d7d565b508084606001518460ff1681518110610e1357610e13611a85565b602002602001018190525050508080610e2b90611d2b565b9150506109f9565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e989190611ae5565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610ecb908b908b908e90600401611d4b565b600060405180830381865afa158015610ee8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f109190810190611c05565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f54929190611d75565b600060405180830381865afa158015610f71573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f999190810190611c05565b9050600084516001600160401b03811115610fb657610fb6611391565b604051908082528060200260200182016040528015610fdf578160200160208202803683370190505b50905060005b85518110156110e057866001600160a01b03166304ec635187838151811061100f5761100f611a85565b60200260200101518786858151811061102a5761102a611a85565b60200260200101516040518463ffffffff1660e01b81526004016110679392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611084573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a89190611ce5565b6001600160c01b03168282815181106110c3576110c3611a85565b6020908102919091010152806110d881611aca565b915050610fe5565b5095945050505050565b604080516001808252818301909252600091606091839160208083019080368337019050509050848160008151811061112557611125611a85565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e906111619088908690600401611d75565b600060405180830381865afa15801561117e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111a69190810190611c05565b6000815181106111b8576111b8611a85565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa158015611224573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112489190611ce5565b6001600160c01b03169050600061125e8261127c565b90508161126c8a838a61024d565b9550955050505050935093915050565b606060008061128a84611348565b61ffff166001600160401b038111156112a5576112a5611391565b6040519080825280601f01601f1916602001820160405280156112cf576020820181803683370190505b5090506000805b8251821080156112e7575061010081105b1561133e576001811b93508584161561132e578060f81b83838151811061131057611310611a85565b60200101906001600160f81b031916908160001a9053508160010191505b61133781611aca565b90506112d6565b5090949350505050565b6000805b82156113735761135d600184611d94565b909216918061136b81611dab565b91505061134c565b92915050565b6001600160a01b038116811461138e57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156113cf576113cf611391565b604052919050565b60006001600160401b038211156113f0576113f0611391565b5060051b60200190565b6000806040838503121561140d57600080fd5b823561141881611379565b91506020838101356001600160401b0381111561143457600080fd5b8401601f8101861361144557600080fd5b8035611458611453826113d7565b6113a7565b81815260059190911b8201830190838101908883111561147757600080fd5b928401925b8284101561149e57833561148f81611379565b8252928401929084019061147c565b80955050505050509250929050565b600081518084526020808501945080840160005b838110156114dd578151875295820195908201906001016114c1565b509495945050505050565b6020815260006114fb60208301846114ad565b9392505050565b63ffffffff8116811461138e57600080fd5b803561151f81611502565b919050565b60008060006060848603121561153957600080fd5b833561154481611379565b92506020848101356001600160401b038082111561156157600080fd5b818701915087601f83011261157557600080fd5b81358181111561158757611587611391565b611599601f8201601f191685016113a7565b915080825288848285010111156115af57600080fd5b80848401858401376000848284010152508094505050506115d260408501611514565b90509250925092565b600081518084526020808501808196508360051b810191508286016000805b86811015611671578385038a52825180518087529087019087870190845b8181101561165c57835180516001600160a01b031684528a8101518b8501526040908101516001600160601b03169084015292890192606090920191600101611618565b50509a87019a955050918501916001016115fa565b509298975050505050505050565b6020815260006114fb60208301846115db565b600082601f8301126116a357600080fd5b813560206116b3611453836113d7565b82815260059290921b840181019181810190868411156116d257600080fd5b8286015b848110156116ed57803583529183019183016116d6565b509695505050505050565b6000806040838503121561170b57600080fd5b823561171681611379565b915060208301356001600160401b0381111561173157600080fd5b61173d85828601611692565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156117885783516001600160a01b031683529284019291840191600101611763565b50909695505050505050565b60008083601f8401126117a657600080fd5b5081356001600160401b038111156117bd57600080fd5b6020830191508360208260051b85010111156117d857600080fd5b9250929050565b600080600080600080608087890312156117f857600080fd5b863561180381611379565b9550602087013561181381611502565b945060408701356001600160401b038082111561182f57600080fd5b818901915089601f83011261184357600080fd5b81358181111561185257600080fd5b8a602082850101111561186457600080fd5b60208301965080955050606089013591508082111561188257600080fd5b5061188f89828a01611794565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b838110156114dd57815163ffffffff16875295820195908201906001016118b5565b6000602080835283516080828501526118f360a08501826118a1565b905081850151601f198086840301604087015261191083836118a1565b9250604087015191508086840301606087015261192d83836118a1565b60608801518782038301608089015280518083529194508501925084840190600581901b8501860160005b8281101561198457848783030184526119728287516118a1565b95880195938801939150600101611958565b509998505050505050505050565b6000806000606084860312156119a757600080fd5b83356119b281611379565b925060208401356001600160401b038111156119cd57600080fd5b6119d986828701611692565b92505060408401356119ea81611502565b809150509250925092565b6020808252825182820181905260009190848201906040850190845b8181101561178857835183529284019291840191600101611a11565b600080600060608486031215611a4257600080fd5b8335611a4d81611379565b92506020840135915060408401356119ea81611502565b828152604060208201526000611a7d60408301846115db565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611aad57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000600019821415611ade57611ade611ab4565b5060010190565b600060208284031215611af757600080fd5b81516114fb81611379565b60006020808385031215611b1557600080fd5b82516001600160401b03811115611b2b57600080fd5b8301601f81018513611b3c57600080fd5b8051611b4a611453826113d7565b81815260059190911b82018301908381019087831115611b6957600080fd5b928401925b82841015611b8757835182529284019290840190611b6e565b979650505050505050565b600060208284031215611ba457600080fd5b81516001600160601b03811681146114fb57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611be857600080fd5b8260051b8085606085013760009201606001918252509392505050565b60006020808385031215611c1857600080fd5b82516001600160401b03811115611c2e57600080fd5b8301601f81018513611c3f57600080fd5b8051611c4d611453826113d7565b81815260059190911b82018301908381019087831115611c6c57600080fd5b928401925b82841015611b87578351611c8481611502565b82529284019290840190611c71565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611cdc604083018486611c93565b95945050505050565b600060208284031215611cf757600080fd5b81516001600160c01b03811681146114fb57600080fd5b600060208284031215611d2057600080fd5b81516114fb81611502565b600060ff821660ff811415611d4257611d42611ab4565b60010192915050565b604081526000611d5f604083018587611c93565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a7d60408301846114ad565b600082821015611da657611da6611ab4565b500390565b600061ffff80831681811415611dc357611dc3611ab4565b600101939250505056fea2646970667358221220680e7c8bf7e6f5f625229353d58a9fa93fb8fa2012cecb6bfc872b43399e85e564736f6c634300080c0033", } // ContractOperatorStateRetrieverABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/PaymentVault/binding.go b/contracts/bindings/PaymentVault/binding.go index 7349771b7e..c468661561 100644 --- a/contracts/bindings/PaymentVault/binding.go +++ b/contracts/bindings/PaymentVault/binding.go @@ -41,7 +41,7 @@ type IPaymentVaultReservation struct { // ContractPaymentVaultMetaData contains all meta data concerning the ContractPaymentVault contract. var ContractPaymentVaultMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"fallback\",\"stateMutability\":\"payable\"},{\"type\":\"receive\",\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"depositOnDemand\",\"inputs\":[{\"name\":\"_account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"getOnDemandTotalDeposit\",\"inputs\":[{\"name\":\"_account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint80\",\"internalType\":\"uint80\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOnDemandTotalDeposits\",\"inputs\":[{\"name\":\"_accounts\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[{\"name\":\"_payments\",\"type\":\"uint80[]\",\"internalType\":\"uint80[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getReservation\",\"inputs\":[{\"name\":\"_account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIPaymentVault.Reservation\",\"components\":[{\"name\":\"symbolsPerSecond\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"startTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"endTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"quorumSplits\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getReservations\",\"inputs\":[{\"name\":\"_accounts\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[{\"name\":\"_reservations\",\"type\":\"tuple[]\",\"internalType\":\"structIPaymentVault.Reservation[]\",\"components\":[{\"name\":\"symbolsPerSecond\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"startTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"endTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"quorumSplits\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"globalRatePeriodInterval\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"globalSymbolsPerPeriod\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_minNumSymbols\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"_pricePerSymbol\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"_priceUpdateCooldown\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"_globalSymbolsPerPeriod\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"_reservationPeriodInterval\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"_globalRatePeriodInterval\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"lastPriceUpdateTime\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"minNumSymbols\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"onDemandPayments\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"totalDeposit\",\"type\":\"uint80\",\"internalType\":\"uint80\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pricePerSymbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"priceUpdateCooldown\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"reservationPeriodInterval\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"reservations\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"symbolsPerSecond\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"startTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"endTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"quorumSplits\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setGlobalRatePeriodInterval\",\"inputs\":[{\"name\":\"_globalRatePeriodInterval\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setGlobalSymbolsPerPeriod\",\"inputs\":[{\"name\":\"_globalSymbolsPerPeriod\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setPriceParams\",\"inputs\":[{\"name\":\"_minNumSymbols\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"_pricePerSymbol\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"_priceUpdateCooldown\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setReservation\",\"inputs\":[{\"name\":\"_account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_reservation\",\"type\":\"tuple\",\"internalType\":\"structIPaymentVault.Reservation\",\"components\":[{\"name\":\"symbolsPerSecond\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"startTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"endTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"quorumSplits\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setReservationPeriodInterval\",\"inputs\":[{\"name\":\"_reservationPeriodInterval\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"_amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawERC20\",\"inputs\":[{\"name\":\"_token\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"GlobalRatePeriodIntervalUpdated\",\"inputs\":[{\"name\":\"previousValue\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"newValue\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"GlobalSymbolsPerPeriodUpdated\",\"inputs\":[{\"name\":\"previousValue\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"newValue\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OnDemandPaymentUpdated\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"onDemandPayment\",\"type\":\"uint80\",\"indexed\":false,\"internalType\":\"uint80\"},{\"name\":\"totalDeposit\",\"type\":\"uint80\",\"indexed\":false,\"internalType\":\"uint80\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"PriceParamsUpdated\",\"inputs\":[{\"name\":\"previousMinNumSymbols\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"newMinNumSymbols\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"previousPricePerSymbol\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"newPricePerSymbol\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"previousPriceUpdateCooldown\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"newPriceUpdateCooldown\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReservationPeriodIntervalUpdated\",\"inputs\":[{\"name\":\"previousValue\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"newValue\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReservationUpdated\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"reservation\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIPaymentVault.Reservation\",\"components\":[{\"name\":\"symbolsPerSecond\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"startTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"endTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"quorumSplits\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"anonymous\":false}]", - Bin: "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611e08806100ed6000396000f3fe60806040526004361061016a5760003560e01c80639aec8640116100d1578063c98d97dd1161008a578063f2fde38b11610064578063f2fde38b146104c2578063f323726a146104e2578063fba2b1d114610509578063fd3dc53a146105295761017b565b8063c98d97dd14610415578063d1c1fdcd14610435578063d996dc991461048c5761017b565b80639aec864014610341578063a16cf88414610361578063a1db978214610381578063aa788bd7146103a1578063b2066f80146103c1578063bff8a3d4146103ee5761017b565b806372228ab21161012357806372228ab21461027f578063761dab89146102a6578063897218fc146102c65780638bec7d02146102e65780638da5cb5b146102f95780639a1bbf37146103215761017b565b8063039f091c14610185578063109f8fe5146101c95780632e1a7d4d146101f65780634184a6741461021657806349b9a7af14610243578063715018a61461026a5761017b565b3661017b57610179333461055a565b005b610179333461055a565b34801561019157600080fd5b506065546101ac90600160801b90046001600160401b031681565b6040516001600160401b0390911681526020015b60405180910390f35b3480156101d557600080fd5b506101e96101e43660046117b8565b610679565b6040516101c09190611915565b34801561020257600080fd5b50610179610211366004611977565b6108cc565b34801561022257600080fd5b506102366102313660046117b8565b610949565b6040516101c09190611990565b34801561024f57600080fd5b506065546101ac90600160c01b90046001600160401b031681565b34801561027657600080fd5b50610179610a2b565b34801561028b57600080fd5b506066546101ac90600160401b90046001600160401b031681565b3480156102b257600080fd5b506065546101ac906001600160401b031681565b3480156102d257600080fd5b506101796102e13660046119f4565b610a3f565b6101796102f4366004611a16565b610ac7565b34801561030557600080fd5b506033546040516001600160a01b0390911681526020016101c0565b34801561032d57600080fd5b5061017961033c366004611a31565b610ad4565b34801561034d57600080fd5b5061017961035c366004611b26565b610cfe565b34801561036d57600080fd5b5061017961037c3660046119f4565b610e84565b34801561038d57600080fd5b5061017961039c366004611bfc565b610ef6565b3480156103ad57600080fd5b506101796103bc3660046119f4565b610f95565b3480156103cd57600080fd5b506103e16103dc366004611a16565b611018565b6040516101c09190611c26565b3480156103fa57600080fd5b506066546101ac90600160801b90046001600160401b031681565b34801561042157600080fd5b506066546101ac906001600160401b031681565b34801561044157600080fd5b50610474610450366004611a16565b6001600160a01b03166000908152606860205260409020546001600160501b031690565b6040516001600160501b0390911681526020016101c0565b34801561049857600080fd5b506104746104a7366004611a16565b6068602052600090815260409020546001600160501b031681565b3480156104ce57600080fd5b506101796104dd366004611a16565b6111c2565b3480156104ee57600080fd5b506065546101ac90600160401b90046001600160401b031681565b34801561051557600080fd5b50610179610524366004611c39565b611238565b34801561053557600080fd5b50610549610544366004611a16565b6113ae565b6040516101c0959493929190611c7c565b6001600160501b038111156105cb5760405162461bcd60e51b815260206004820152602c60248201527f616d6f756e74206d757374206265206c657373207468616e206f72206571756160448201526b6c20746f203830206269747360a01b60648201526084015b60405180910390fd5b6001600160a01b038216600090815260686020526040812080548392906105fc9084906001600160501b0316611cd8565b82546101009290920a6001600160501b038181021990931691831602179091556001600160a01b03841660008181526068602090815260409182902054825187861681529416908401529092507f6fbb447a2c09b8901d70b0d5b9fbce159ee8fda4460e5af2570cab3fe0adf26891015b60405180910390a25050565b606081516001600160401b038111156106945761069461172e565b6040519080825280602002602001820160405280156106ec57816020015b6040805160a08101825260008082526020808301829052928201526060808201819052608082015282526000199092019101816106b25790505b50905060005b82518110156108c6576067600084838151811061071157610711611d03565b6020908102919091018101516001600160a01b03168252818101929092526040908101600020815160a08101835281546001600160401b038082168352600160401b8204811695830195909552600160801b90049093169183019190915260018101805460608401919061078490611d19565b80601f01602080910402602001604051908101604052809291908181526020018280546107b090611d19565b80156107fd5780601f106107d2576101008083540402835291602001916107fd565b820191906000526020600020905b8154815290600101906020018083116107e057829003601f168201915b5050505050815260200160028201805461081690611d19565b80601f016020809104026020016040519081016040528092919081815260200182805461084290611d19565b801561088f5780601f106108645761010080835404028352916020019161088f565b820191906000526020600020905b81548152906001019060200180831161087257829003601f168201915b5050505050815250508282815181106108aa576108aa611d03565b6020026020010181905250806108bf90611d4e565b90506106f2565b50919050565b6108d4611501565b60006108e86033546001600160a01b031690565b6001600160a01b03168260405160006040518083038185875af1925050503d8060008114610932576040519150601f19603f3d011682016040523d82523d6000602084013e610937565b606091505b505090508061094557600080fd5b5050565b606081516001600160401b038111156109645761096461172e565b60405190808252806020026020018201604052801561098d578160200160208202803683370190505b50905060005b82518110156108c657606860008483815181106109b2576109b2611d03565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000160009054906101000a90046001600160501b0316828281518110610a0357610a03611d03565b6001600160501b0390921660209283029190910190910152610a2481611d4e565b9050610993565b610a33611501565b610a3d600061155b565b565b610a47611501565b606654604080516001600160401b03600160401b9093048316815291831660208301527f1ef4a1ce7d8e50959d15578b346bb20a5b049e5ee1978014a4ba66476265c957910160405180910390a1606680546001600160401b03909216600160401b026fffffffffffffffff000000000000000019909216919091179055565b610ad1813461055a565b50565b600054610100900460ff1615808015610af45750600054600160ff909116105b80610b0e5750303b158015610b0e575060005460ff166001145b610b715760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105c2565b6000805460ff191660011790558015610b94576000805461ff0019166101001790555b610b9d8861155b565b86606560006101000a8154816001600160401b0302191690836001600160401b0316021790555085606560086101000a8154816001600160401b0302191690836001600160401b0316021790555084606560106101000a8154816001600160401b0302191690836001600160401b0316021790555042606560186101000a8154816001600160401b0302191690836001600160401b0316021790555083606660006101000a8154816001600160401b0302191690836001600160401b0316021790555082606660086101000a8154816001600160401b0302191690836001600160401b0316021790555081606660106101000a8154816001600160401b0302191690836001600160401b031602179055508015610cf4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b610d06611501565b610d18816060015182608001516115ad565b80602001516001600160401b031681604001516001600160401b031611610d9c5760405162461bcd60e51b815260206004820152603260248201527f656e642074696d657374616d70206d75737420626520677265617465722074686044820152710616e2073746172742074696d657374616d760741b60648201526084016105c2565b6001600160a01b0382166000908152606760209081526040918290208351815483860151948601516001600160401b03908116600160801b0267ffffffffffffffff60801b19968216600160401b026fffffffffffffffffffffffffffffffff199093169190931617179390931692909217825560608301518051849392610e2b926001850192910190611695565b5060808201518051610e47916002840191602090910190611695565b50905050816001600160a01b03167fff3054d138559c39b4c0826c43e94b2b2c6bc9a33ea1d0b74f16c916c7b73ec18260405161066d9190611c26565b610e8c611501565b606654604080516001600160401b03928316815291831660208301527f3edf3b79e74d9e583ff51df95fbabefe15f504d33475b2cc77cffba292268aae910160405180910390a16066805467ffffffffffffffff19166001600160401b0392909216919091179055565b610efe611501565b816001600160a01b031663a9059cbb610f1f6033546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610f6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f909190611d69565b505050565b610f9d611501565b606654604080516001600160401b03600160801b9093048316815291831660208301527f833819c38214ef9f462f88b5c27a21bf201f394572a14da3e63c77ee15f0e93a910160405180910390a1606680546001600160401b03909216600160801b0267ffffffffffffffff60801b19909216919091179055565b6040805160a08082018352600080835260208084018290528385018290526060808501819052608085018190526001600160a01b038716835260678252918590208551938401865280546001600160401b038082168652600160401b8204811693860193909352600160801b90049091169483019490945260018401805493949293918401916110a790611d19565b80601f01602080910402602001604051908101604052809291908181526020018280546110d390611d19565b80156111205780601f106110f557610100808354040283529160200191611120565b820191906000526020600020905b81548152906001019060200180831161110357829003601f168201915b5050505050815260200160028201805461113990611d19565b80601f016020809104026020016040519081016040528092919081815260200182805461116590611d19565b80156111b25780601f10611187576101008083540402835291602001916111b2565b820191906000526020600020905b81548152906001019060200180831161119557829003601f168201915b5050505050815250509050919050565b6111ca611501565b6001600160a01b03811661122f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105c2565b610ad18161155b565b611240611501565b606554611266906001600160401b03600160801b8204811691600160c01b900416611d8b565b6001600160401b03164210156112ca5760405162461bcd60e51b815260206004820152602360248201527f70726963652075706461746520636f6f6c646f776e206e6f74207375727061736044820152621cd95960ea1b60648201526084016105c2565b606554604080516001600160401b0380841682528681166020830152600160401b84048116828401528581166060830152600160801b9093048316608082015291831660a0830152517f9b97ed982ea5820e21bfc9578505e78068a5333487583460ad56ff72defef77a9181900360c00190a160658054426001600160401b03908116600160c01b026001600160c01b03948216600160801b0277ffffffffffffffff0000000000000000ffffffffffffffff19968316600160401b02969096166001600160c01b0319909316929092179516949094179290921716919091179055565b606760205260009081526040902080546001820180546001600160401b0380841694600160401b8504821694600160801b90049091169290916113f090611d19565b80601f016020809104026020016040519081016040528092919081815260200182805461141c90611d19565b80156114695780601f1061143e57610100808354040283529160200191611469565b820191906000526020600020905b81548152906001019060200180831161144c57829003601f168201915b50505050509080600201805461147e90611d19565b80601f01602080910402602001604051908101604052809291908181526020018280546114aa90611d19565b80156114f75780601f106114cc576101008083540402835291602001916114f7565b820191906000526020600020905b8154815290600101906020018083116114da57829003601f168201915b5050505050905085565b6033546001600160a01b03163314610a3d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80518251146115fe5760405162461bcd60e51b815260206004820181905260248201527f617272617973206d7573742068617665207468652073616d65206c656e67746860448201526064016105c2565b6000805b82518110156116415782818151811061161d5761161d611d03565b016020015161162f9060f81c83611dad565b915061163a81611d4e565b9050611602565b508060ff16606414610f905760405162461bcd60e51b815260206004820152601f60248201527f73756d206f662071756f72756d53706c697473206d757374206265203130300060448201526064016105c2565b8280546116a190611d19565b90600052602060002090601f0160209004810192826116c35760008555611709565b82601f106116dc57805160ff1916838001178555611709565b82800160010185558215611709579182015b828111156117095782518255916020019190600101906116ee565b50611715929150611719565b5090565b5b80821115611715576000815560010161171a565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b03811182821017156117665761176661172e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156117945761179461172e565b604052919050565b80356001600160a01b03811681146117b357600080fd5b919050565b600060208083850312156117cb57600080fd5b82356001600160401b03808211156117e257600080fd5b818501915085601f8301126117f657600080fd5b8135818111156118085761180861172e565b8060051b915061181984830161176c565b818152918301840191848101908884111561183357600080fd5b938501935b83851015611858576118498561179c565b82529385019390850190611838565b98975050505050505050565b6000815180845260005b8181101561188a5760208185018101518683018201520161186e565b8181111561189c576000602083870101525b50601f01601f19169290920160200192915050565b60006001600160401b0380835116845280602084015116602085015280604084015116604085015250606082015160a060608501526118f360a0850182611864565b90506080830151848203608086015261190c8282611864565b95945050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561196a57603f198886030184526119588583516118b1565b9450928501929085019060010161193c565b5092979650505050505050565b60006020828403121561198957600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b818110156119d15783516001600160501b0316835292840192918401916001016119ac565b50909695505050505050565b80356001600160401b03811681146117b357600080fd5b600060208284031215611a0657600080fd5b611a0f826119dd565b9392505050565b600060208284031215611a2857600080fd5b611a0f8261179c565b600080600080600080600060e0888a031215611a4c57600080fd5b611a558861179c565b9650611a63602089016119dd565b9550611a71604089016119dd565b9450611a7f606089016119dd565b9350611a8d608089016119dd565b9250611a9b60a089016119dd565b9150611aa960c089016119dd565b905092959891949750929550565b600082601f830112611ac857600080fd5b81356001600160401b03811115611ae157611ae161172e565b611af4601f8201601f191660200161176c565b818152846020838601011115611b0957600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215611b3957600080fd5b611b428361179c565b915060208301356001600160401b0380821115611b5e57600080fd5b9084019060a08287031215611b7257600080fd5b611b7a611744565b611b83836119dd565b8152611b91602084016119dd565b6020820152611ba2604084016119dd565b6040820152606083013582811115611bb957600080fd5b611bc588828601611ab7565b606083015250608083013582811115611bdd57600080fd5b611be988828601611ab7565b6080830152508093505050509250929050565b60008060408385031215611c0f57600080fd5b611c188361179c565b946020939093013593505050565b602081526000611a0f60208301846118b1565b600080600060608486031215611c4e57600080fd5b611c57846119dd565b9250611c65602085016119dd565b9150611c73604085016119dd565b90509250925092565b60006001600160401b038088168352808716602084015280861660408401525060a06060830152611cb060a0830185611864565b82810360808401526118588185611864565b634e487b7160e01b600052601160045260246000fd5b60006001600160501b03808316818516808303821115611cfa57611cfa611cc2565b01949350505050565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680611d2d57607f821691505b602082108114156108c657634e487b7160e01b600052602260045260246000fd5b6000600019821415611d6257611d62611cc2565b5060010190565b600060208284031215611d7b57600080fd5b81518015158114611a0f57600080fd5b60006001600160401b03808316818516808303821115611cfa57611cfa611cc2565b600060ff821660ff84168060ff03821115611dca57611dca611cc2565b01939250505056fea2646970667358221220b5830c07e4ce314832ae15e4654d85f0f15f9c2f3eee1fd2923348676809ca7464736f6c634300080c0033", + Bin: "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611e08806100ed6000396000f3fe60806040526004361061016a5760003560e01c80639aec8640116100d1578063c98d97dd1161008a578063f2fde38b11610064578063f2fde38b146104c2578063f323726a146104e2578063fba2b1d114610509578063fd3dc53a146105295761017b565b8063c98d97dd14610415578063d1c1fdcd14610435578063d996dc991461048c5761017b565b80639aec864014610341578063a16cf88414610361578063a1db978214610381578063aa788bd7146103a1578063b2066f80146103c1578063bff8a3d4146103ee5761017b565b806372228ab21161012357806372228ab21461027f578063761dab89146102a6578063897218fc146102c65780638bec7d02146102e65780638da5cb5b146102f95780639a1bbf37146103215761017b565b8063039f091c14610185578063109f8fe5146101c95780632e1a7d4d146101f65780634184a6741461021657806349b9a7af14610243578063715018a61461026a5761017b565b3661017b57610179333461055a565b005b610179333461055a565b34801561019157600080fd5b506065546101ac90600160801b90046001600160401b031681565b6040516001600160401b0390911681526020015b60405180910390f35b3480156101d557600080fd5b506101e96101e43660046117b8565b610679565b6040516101c09190611915565b34801561020257600080fd5b50610179610211366004611977565b6108cc565b34801561022257600080fd5b506102366102313660046117b8565b610949565b6040516101c09190611990565b34801561024f57600080fd5b506065546101ac90600160c01b90046001600160401b031681565b34801561027657600080fd5b50610179610a2b565b34801561028b57600080fd5b506066546101ac90600160401b90046001600160401b031681565b3480156102b257600080fd5b506065546101ac906001600160401b031681565b3480156102d257600080fd5b506101796102e13660046119f4565b610a3f565b6101796102f4366004611a16565b610ac7565b34801561030557600080fd5b506033546040516001600160a01b0390911681526020016101c0565b34801561032d57600080fd5b5061017961033c366004611a31565b610ad4565b34801561034d57600080fd5b5061017961035c366004611b26565b610cfe565b34801561036d57600080fd5b5061017961037c3660046119f4565b610e84565b34801561038d57600080fd5b5061017961039c366004611bfc565b610ef6565b3480156103ad57600080fd5b506101796103bc3660046119f4565b610f95565b3480156103cd57600080fd5b506103e16103dc366004611a16565b611018565b6040516101c09190611c26565b3480156103fa57600080fd5b506066546101ac90600160801b90046001600160401b031681565b34801561042157600080fd5b506066546101ac906001600160401b031681565b34801561044157600080fd5b50610474610450366004611a16565b6001600160a01b03166000908152606860205260409020546001600160501b031690565b6040516001600160501b0390911681526020016101c0565b34801561049857600080fd5b506104746104a7366004611a16565b6068602052600090815260409020546001600160501b031681565b3480156104ce57600080fd5b506101796104dd366004611a16565b6111c2565b3480156104ee57600080fd5b506065546101ac90600160401b90046001600160401b031681565b34801561051557600080fd5b50610179610524366004611c39565b611238565b34801561053557600080fd5b50610549610544366004611a16565b6113ae565b6040516101c0959493929190611c7c565b6001600160501b038111156105cb5760405162461bcd60e51b815260206004820152602c60248201527f616d6f756e74206d757374206265206c657373207468616e206f72206571756160448201526b6c20746f203830206269747360a01b60648201526084015b60405180910390fd5b6001600160a01b038216600090815260686020526040812080548392906105fc9084906001600160501b0316611cd8565b82546101009290920a6001600160501b038181021990931691831602179091556001600160a01b03841660008181526068602090815260409182902054825187861681529416908401529092507f6fbb447a2c09b8901d70b0d5b9fbce159ee8fda4460e5af2570cab3fe0adf26891015b60405180910390a25050565b606081516001600160401b038111156106945761069461172e565b6040519080825280602002602001820160405280156106ec57816020015b6040805160a08101825260008082526020808301829052928201526060808201819052608082015282526000199092019101816106b25790505b50905060005b82518110156108c6576067600084838151811061071157610711611d03565b6020908102919091018101516001600160a01b03168252818101929092526040908101600020815160a08101835281546001600160401b038082168352600160401b8204811695830195909552600160801b90049093169183019190915260018101805460608401919061078490611d19565b80601f01602080910402602001604051908101604052809291908181526020018280546107b090611d19565b80156107fd5780601f106107d2576101008083540402835291602001916107fd565b820191906000526020600020905b8154815290600101906020018083116107e057829003601f168201915b5050505050815260200160028201805461081690611d19565b80601f016020809104026020016040519081016040528092919081815260200182805461084290611d19565b801561088f5780601f106108645761010080835404028352916020019161088f565b820191906000526020600020905b81548152906001019060200180831161087257829003601f168201915b5050505050815250508282815181106108aa576108aa611d03565b6020026020010181905250806108bf90611d4e565b90506106f2565b50919050565b6108d4611501565b60006108e86033546001600160a01b031690565b6001600160a01b03168260405160006040518083038185875af1925050503d8060008114610932576040519150601f19603f3d011682016040523d82523d6000602084013e610937565b606091505b505090508061094557600080fd5b5050565b606081516001600160401b038111156109645761096461172e565b60405190808252806020026020018201604052801561098d578160200160208202803683370190505b50905060005b82518110156108c657606860008483815181106109b2576109b2611d03565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000160009054906101000a90046001600160501b0316828281518110610a0357610a03611d03565b6001600160501b0390921660209283029190910190910152610a2481611d4e565b9050610993565b610a33611501565b610a3d600061155b565b565b610a47611501565b606654604080516001600160401b03600160401b9093048316815291831660208301527f1ef4a1ce7d8e50959d15578b346bb20a5b049e5ee1978014a4ba66476265c957910160405180910390a1606680546001600160401b03909216600160401b026fffffffffffffffff000000000000000019909216919091179055565b610ad1813461055a565b50565b600054610100900460ff1615808015610af45750600054600160ff909116105b80610b0e5750303b158015610b0e575060005460ff166001145b610b715760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105c2565b6000805460ff191660011790558015610b94576000805461ff0019166101001790555b610b9d8861155b565b86606560006101000a8154816001600160401b0302191690836001600160401b0316021790555085606560086101000a8154816001600160401b0302191690836001600160401b0316021790555084606560106101000a8154816001600160401b0302191690836001600160401b0316021790555042606560186101000a8154816001600160401b0302191690836001600160401b0316021790555083606660006101000a8154816001600160401b0302191690836001600160401b0316021790555082606660086101000a8154816001600160401b0302191690836001600160401b0316021790555081606660106101000a8154816001600160401b0302191690836001600160401b031602179055508015610cf4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b610d06611501565b610d18816060015182608001516115ad565b80602001516001600160401b031681604001516001600160401b031611610d9c5760405162461bcd60e51b815260206004820152603260248201527f656e642074696d657374616d70206d75737420626520677265617465722074686044820152710616e2073746172742074696d657374616d760741b60648201526084016105c2565b6001600160a01b0382166000908152606760209081526040918290208351815483860151948601516001600160401b03908116600160801b0267ffffffffffffffff60801b19968216600160401b026fffffffffffffffffffffffffffffffff199093169190931617179390931692909217825560608301518051849392610e2b926001850192910190611695565b5060808201518051610e47916002840191602090910190611695565b50905050816001600160a01b03167fff3054d138559c39b4c0826c43e94b2b2c6bc9a33ea1d0b74f16c916c7b73ec18260405161066d9190611c26565b610e8c611501565b606654604080516001600160401b03928316815291831660208301527f3edf3b79e74d9e583ff51df95fbabefe15f504d33475b2cc77cffba292268aae910160405180910390a16066805467ffffffffffffffff19166001600160401b0392909216919091179055565b610efe611501565b816001600160a01b031663a9059cbb610f1f6033546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610f6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f909190611d69565b505050565b610f9d611501565b606654604080516001600160401b03600160801b9093048316815291831660208301527f833819c38214ef9f462f88b5c27a21bf201f394572a14da3e63c77ee15f0e93a910160405180910390a1606680546001600160401b03909216600160801b0267ffffffffffffffff60801b19909216919091179055565b6040805160a08082018352600080835260208084018290528385018290526060808501819052608085018190526001600160a01b038716835260678252918590208551938401865280546001600160401b038082168652600160401b8204811693860193909352600160801b90049091169483019490945260018401805493949293918401916110a790611d19565b80601f01602080910402602001604051908101604052809291908181526020018280546110d390611d19565b80156111205780601f106110f557610100808354040283529160200191611120565b820191906000526020600020905b81548152906001019060200180831161110357829003601f168201915b5050505050815260200160028201805461113990611d19565b80601f016020809104026020016040519081016040528092919081815260200182805461116590611d19565b80156111b25780601f10611187576101008083540402835291602001916111b2565b820191906000526020600020905b81548152906001019060200180831161119557829003601f168201915b5050505050815250509050919050565b6111ca611501565b6001600160a01b03811661122f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105c2565b610ad18161155b565b611240611501565b606554611266906001600160401b03600160801b8204811691600160c01b900416611d8b565b6001600160401b03164210156112ca5760405162461bcd60e51b815260206004820152602360248201527f70726963652075706461746520636f6f6c646f776e206e6f74207375727061736044820152621cd95960ea1b60648201526084016105c2565b606554604080516001600160401b0380841682528681166020830152600160401b84048116828401528581166060830152600160801b9093048316608082015291831660a0830152517f9b97ed982ea5820e21bfc9578505e78068a5333487583460ad56ff72defef77a9181900360c00190a160658054426001600160401b03908116600160c01b026001600160c01b03948216600160801b0277ffffffffffffffff0000000000000000ffffffffffffffff19968316600160401b02969096166001600160c01b0319909316929092179516949094179290921716919091179055565b606760205260009081526040902080546001820180546001600160401b0380841694600160401b8504821694600160801b90049091169290916113f090611d19565b80601f016020809104026020016040519081016040528092919081815260200182805461141c90611d19565b80156114695780601f1061143e57610100808354040283529160200191611469565b820191906000526020600020905b81548152906001019060200180831161144c57829003601f168201915b50505050509080600201805461147e90611d19565b80601f01602080910402602001604051908101604052809291908181526020018280546114aa90611d19565b80156114f75780601f106114cc576101008083540402835291602001916114f7565b820191906000526020600020905b8154815290600101906020018083116114da57829003601f168201915b5050505050905085565b6033546001600160a01b03163314610a3d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c2565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80518251146115fe5760405162461bcd60e51b815260206004820181905260248201527f617272617973206d7573742068617665207468652073616d65206c656e67746860448201526064016105c2565b6000805b82518110156116415782818151811061161d5761161d611d03565b016020015161162f9060f81c83611dad565b915061163a81611d4e565b9050611602565b508060ff16606414610f905760405162461bcd60e51b815260206004820152601f60248201527f73756d206f662071756f72756d53706c697473206d757374206265203130300060448201526064016105c2565b8280546116a190611d19565b90600052602060002090601f0160209004810192826116c35760008555611709565b82601f106116dc57805160ff1916838001178555611709565b82800160010185558215611709579182015b828111156117095782518255916020019190600101906116ee565b50611715929150611719565b5090565b5b80821115611715576000815560010161171a565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b03811182821017156117665761176661172e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156117945761179461172e565b604052919050565b80356001600160a01b03811681146117b357600080fd5b919050565b600060208083850312156117cb57600080fd5b82356001600160401b03808211156117e257600080fd5b818501915085601f8301126117f657600080fd5b8135818111156118085761180861172e565b8060051b915061181984830161176c565b818152918301840191848101908884111561183357600080fd5b938501935b83851015611858576118498561179c565b82529385019390850190611838565b98975050505050505050565b6000815180845260005b8181101561188a5760208185018101518683018201520161186e565b8181111561189c576000602083870101525b50601f01601f19169290920160200192915050565b60006001600160401b0380835116845280602084015116602085015280604084015116604085015250606082015160a060608501526118f360a0850182611864565b90506080830151848203608086015261190c8282611864565b95945050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561196a57603f198886030184526119588583516118b1565b9450928501929085019060010161193c565b5092979650505050505050565b60006020828403121561198957600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b818110156119d15783516001600160501b0316835292840192918401916001016119ac565b50909695505050505050565b80356001600160401b03811681146117b357600080fd5b600060208284031215611a0657600080fd5b611a0f826119dd565b9392505050565b600060208284031215611a2857600080fd5b611a0f8261179c565b600080600080600080600060e0888a031215611a4c57600080fd5b611a558861179c565b9650611a63602089016119dd565b9550611a71604089016119dd565b9450611a7f606089016119dd565b9350611a8d608089016119dd565b9250611a9b60a089016119dd565b9150611aa960c089016119dd565b905092959891949750929550565b600082601f830112611ac857600080fd5b81356001600160401b03811115611ae157611ae161172e565b611af4601f8201601f191660200161176c565b818152846020838601011115611b0957600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215611b3957600080fd5b611b428361179c565b915060208301356001600160401b0380821115611b5e57600080fd5b9084019060a08287031215611b7257600080fd5b611b7a611744565b611b83836119dd565b8152611b91602084016119dd565b6020820152611ba2604084016119dd565b6040820152606083013582811115611bb957600080fd5b611bc588828601611ab7565b606083015250608083013582811115611bdd57600080fd5b611be988828601611ab7565b6080830152508093505050509250929050565b60008060408385031215611c0f57600080fd5b611c188361179c565b946020939093013593505050565b602081526000611a0f60208301846118b1565b600080600060608486031215611c4e57600080fd5b611c57846119dd565b9250611c65602085016119dd565b9150611c73604085016119dd565b90509250925092565b60006001600160401b038088168352808716602084015280861660408401525060a06060830152611cb060a0830185611864565b82810360808401526118588185611864565b634e487b7160e01b600052601160045260246000fd5b60006001600160501b03808316818516808303821115611cfa57611cfa611cc2565b01949350505050565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680611d2d57607f821691505b602082108114156108c657634e487b7160e01b600052602260045260246000fd5b6000600019821415611d6257611d62611cc2565b5060010190565b600060208284031215611d7b57600080fd5b81518015158114611a0f57600080fd5b60006001600160401b03808316818516808303821115611cfa57611cfa611cc2565b600060ff821660ff84168060ff03821115611dca57611dca611cc2565b01939250505056fea2646970667358221220bf54aa3bf7c7e22eba135628944495414f1d13862e145a046854f3f77b6736dc64736f6c634300080c0033", } // ContractPaymentVaultABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/RegistryCoordinator/binding.go b/contracts/bindings/RegistryCoordinator/binding.go index 015252d94b..11576d3cfc 100644 --- a/contracts/bindings/RegistryCoordinator/binding.go +++ b/contracts/bindings/RegistryCoordinator/binding.go @@ -90,7 +90,7 @@ type IStakeRegistryStrategyParams struct { // ContractRegistryCoordinatorMetaData contains all meta data concerning the ContractRegistryCoordinator contract. var ContractRegistryCoordinatorMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_serviceManager\",\"type\":\"address\",\"internalType\":\"contractIServiceManager\"},{\"name\":\"_stakeRegistry\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"},{\"name\":\"_blsApkRegistry\",\"type\":\"address\",\"internalType\":\"contractIBLSApkRegistry\"},{\"name\":\"_indexRegistry\",\"type\":\"address\",\"internalType\":\"contractIIndexRegistry\"},{\"name\":\"_socketRegistry\",\"type\":\"address\",\"internalType\":\"contractISocketRegistry\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"OPERATOR_CHURN_APPROVAL_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"PUBKEY_REGISTRATION_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"blsApkRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIBLSApkRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateOperatorChurnApprovalDigestHash\",\"inputs\":[{\"name\":\"registeringOperator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"registeringOperatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"operatorKickParams\",\"type\":\"tuple[]\",\"internalType\":\"structIRegistryCoordinator.OperatorKickParam[]\",\"components\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"churnApprover\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"createQuorum\",\"inputs\":[{\"name\":\"operatorSetParams\",\"type\":\"tuple\",\"internalType\":\"structIRegistryCoordinator.OperatorSetParam\",\"components\":[{\"name\":\"maxOperatorCount\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]},{\"name\":\"minimumStake\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"strategyParams\",\"type\":\"tuple[]\",\"internalType\":\"structIStakeRegistry.StrategyParams[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deregisterOperator\",\"inputs\":[{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ejectOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ejectionCooldown\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ejector\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCurrentQuorumBitmap\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint192\",\"internalType\":\"uint192\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIRegistryCoordinator.OperatorInfo\",\"components\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumIRegistryCoordinator.OperatorStatus\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorFromId\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorId\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetParams\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIRegistryCoordinator.OperatorSetParam\",\"components\":[{\"name\":\"maxOperatorCount\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorStatus\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIRegistryCoordinator.OperatorStatus\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumBitmapAtBlockNumberByIndex\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint192\",\"internalType\":\"uint192\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumBitmapHistoryLength\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumBitmapIndicesAtBlockNumber\",\"inputs\":[{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorIds\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumBitmapUpdateByIndex\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIRegistryCoordinator.QuorumBitmapUpdate\",\"components\":[{\"name\":\"updateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"quorumBitmap\",\"type\":\"uint192\",\"internalType\":\"uint192\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"indexRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIIndexRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_churnApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_ejector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_operatorSetParams\",\"type\":\"tuple[]\",\"internalType\":\"structIRegistryCoordinator.OperatorSetParam[]\",\"components\":[{\"name\":\"maxOperatorCount\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]},{\"name\":\"_minimumStakes\",\"type\":\"uint96[]\",\"internalType\":\"uint96[]\"},{\"name\":\"_strategyParams\",\"type\":\"tuple[][]\",\"internalType\":\"structIStakeRegistry.StrategyParams[][]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isChurnApproverSaltUsed\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"lastEjectionTimestamp\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"numRegistries\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pubkeyRegistrationMessageHash\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumCount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumUpdateBlockNumber\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerOperator\",\"inputs\":[{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"socket\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIBLSApkRegistry.PubkeyRegistrationParams\",\"components\":[{\"name\":\"pubkeyRegistrationSignature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"pubkeyG1\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"pubkeyG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]}]},{\"name\":\"operatorSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerOperatorWithChurn\",\"inputs\":[{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"socket\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIBLSApkRegistry.PubkeyRegistrationParams\",\"components\":[{\"name\":\"pubkeyRegistrationSignature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"pubkeyG1\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"pubkeyG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]}]},{\"name\":\"operatorKickParams\",\"type\":\"tuple[]\",\"internalType\":\"structIRegistryCoordinator.OperatorKickParam[]\",\"components\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"churnApproverSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"operatorSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registries\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serviceManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIServiceManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setChurnApprover\",\"inputs\":[{\"name\":\"_churnApprover\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setEjectionCooldown\",\"inputs\":[{\"name\":\"_ejectionCooldown\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setEjector\",\"inputs\":[{\"name\":\"_ejector\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setOperatorSetParams\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"operatorSetParams\",\"type\":\"tuple\",\"internalType\":\"structIRegistryCoordinator.OperatorSetParam\",\"components\":[{\"name\":\"maxOperatorCount\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setPauserRegistry\",\"inputs\":[{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"socketRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractISocketRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"stakeRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateOperators\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateOperatorsForQuorum\",\"inputs\":[{\"name\":\"operatorsPerQuorum\",\"type\":\"address[][]\",\"internalType\":\"address[][]\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateSocket\",\"inputs\":[{\"name\":\"socket\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"ChurnApproverUpdated\",\"inputs\":[{\"name\":\"prevChurnApprover\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newChurnApprover\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"EjectorUpdated\",\"inputs\":[{\"name\":\"prevEjector\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newEjector\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorDeregistered\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRegistered\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSetParamsUpdated\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"uint8\"},{\"name\":\"operatorSetParams\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIRegistryCoordinator.OperatorSetParam\",\"components\":[{\"name\":\"maxOperatorCount\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSocketUpdate\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"socket\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"PauserRegistrySet\",\"inputs\":[{\"name\":\"pauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumBlockNumberUpdated\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"uint8\"},{\"name\":\"blocknumber\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", - Bin: "0x6101e06040523480156200001257600080fd5b50604051620062ef380380620062ef833981016040819052620000359162000240565b604080518082018252601681527f4156535265676973747279436f6f7264696e61746f7200000000000000000000602080830191825283518085018552600681526576302e302e3160d01b908201529151902060e08190527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a996101008190524660a081815285517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818701819052818801959095526060810193909352608080840192909252308382018190528651808503909201825260c09384019096528051940193909320909252919052610120526001600160a01b038086166101405280851661018052808416610160528083166101a05281166101c0526200015a62000165565b5050505050620002c0565b600054610100900460ff1615620001d25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000225576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200023d57600080fd5b50565b600080600080600060a086880312156200025957600080fd5b8551620002668162000227565b6020870151909550620002798162000227565b60408701519094506200028c8162000227565b60608701519093506200029f8162000227565b6080870151909250620002b28162000227565b809150509295509295909350565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c051615f15620003da6000396000818161085b015261250a0152600081816106c60152818161117c0152818161201101528181612ea6015281816136d60152613ca401526000818161060b01528181611f9c0152818161244401528181612e260152818161362d0152818161388c0152613c230152600081816105d101528181610f2301528181611fda01528181612da801528181612f8e01528181613004015281816135ad0152613d2001526000818161051501528181612cfe01526134eb01526000613f2701526000613f7601526000613f5101526000613eaa01526000613ed401526000613efe0152615f156000f3fe608060405234801561001057600080fd5b50600436106102f05760003560e01c80635df459461161019d578063a50857bf116100e9578063d75b4c88116100a2578063ea32afae1161007c578063ea32afae14610856578063f2fde38b1461087d578063fabc1cbc14610890578063fd39105a146108a357600080fd5b8063d75b4c881461078d578063dd8283f3146107a0578063e65797ad146107b357600080fd5b8063a50857bf1461070f578063a96f783e14610722578063c391425e1461072b578063ca0de8821461074b578063ca4f2d9714610772578063d72d8dd61461078557600080fd5b8063871ef049116101565780639aa1653d116101305780639aa1653d1461068f5780639b5d177b146106ae5780639e9923c2146106c15780639feab859146106e857600080fd5b8063871ef0491461065b578063886f11951461066e5780638da5cb5b1461068757600080fd5b80635df45946146105cc5780636347c900146105f357806368304835146106065780636e3b17db1461062d578063715018a61461064057806384ca52131461064857600080fd5b8063249a0c421161025c5780633c2a7f4c11610215578063595c6a67116101ef578063595c6a671461058a5780635ac86ab7146105925780635b0b829f146105b15780635c975abb146105c457600080fd5b80633c2a7f4c146105375780635140a548146105575780635865c60c1461056a57600080fd5b8063249a0c42146104a457806328f61b31146104c4578063296bb064146104d757806329d1e0c3146104ea5780632cdd1e86146104fd5780633998fdd31461051057600080fd5b806310d67a2f116102ae57806310d67a2f146103b9578063125e0584146103cc57806313542a4e146103ec578063136439dd146104155780631478851f146104285780631eb812da1461045b57600080fd5b8062cf2ab5146102f557806303fd34921461030a57806304ec63511461033d578063054310e6146103685780630cf4b767146103935780630d3f2134146103a6575b600080fd5b610308610303366004614a27565b6108df565b005b61032a610318366004614a68565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61035061034b366004614a93565b6109f5565b6040516001600160c01b039091168152602001610334565b609d5461037b906001600160a01b031681565b6040516001600160a01b039091168152602001610334565b6103086103a1366004614bb2565b610bce565b6103086103b4366004614a68565b610c78565b6103086103c7366004614c27565b610c85565b61032a6103da366004614c27565b609f6020526000908152604090205481565b61032a6103fa366004614c27565b6001600160a01b031660009081526099602052604090205490565b610308610423366004614a68565b610d35565b61044b610436366004614a68565b609a6020526000908152604090205460ff1681565b6040519015158152602001610334565b61046e610469366004614c44565b610e79565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b031690820152606001610334565b61032a6104b2366004614c77565b609b6020526000908152604090205481565b609e5461037b906001600160a01b031681565b61037b6104e5366004614a68565b610f0a565b6103086104f8366004614c27565b610f96565b61030861050b366004614c27565b610fa7565b61037b7f000000000000000000000000000000000000000000000000000000000000000081565b61054a610545366004614c27565b610fb8565b6040516103349190614c92565b610308610565366004614cea565b611037565b61057d610578366004614c27565b611510565b6040516103349190614d8d565b610308611584565b61044b6105a0366004614c77565b6001805460ff9092161b9081161490565b6103086105bf366004614e12565b611650565b60015461032a565b61037b7f000000000000000000000000000000000000000000000000000000000000000081565b61037b610601366004614a68565b611671565b61037b7f000000000000000000000000000000000000000000000000000000000000000081565b61030861063b366004614e46565b61169b565b6103086117b1565b61032a610656366004614efd565b6117c5565b610350610669366004614a68565b61180f565b60005461037b906201000090046001600160a01b031681565b61037b61181a565b60965461069c9060ff1681565b60405160ff9091168152602001610334565b6103086106bc366004615096565b611833565b61037b7f000000000000000000000000000000000000000000000000000000000000000081565b61032a7f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61030861071d36600461518f565b611b5d565b61032a60a05481565b61073e610739366004615237565b611cd3565b60405161033491906152dc565b61032a7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b610308610780366004615326565b611d8c565b609c5461032a565b61030861079b36600461540c565b611df3565b6103086107ae3660046155bf565b611e06565b6108226107c1366004614c77565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff908116918301919091529282015190921690820152606001610334565b61037b7f000000000000000000000000000000000000000000000000000000000000000081565b61030861088b366004614c27565b6120ff565b61030861089e366004614a68565b612175565b6108d26108b1366004614c27565b6001600160a01b031660009081526099602052604090206001015460ff1690565b6040516103349190615693565b600154600290600490811614156109115760405162461bcd60e51b8152600401610908906156a1565b60405180910390fd5b60005b828110156109ef576000848483818110610930576109306156d8565b90506020020160208101906109459190614c27565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff16600281111561099057610990614d55565b60028111156109a1576109a1614d55565b905250805190915060006109b4826122d1565b905060006109ca826001600160c01b031661233a565b90506109d7858583612406565b505050505080806109e790615704565b915050610914565b50505050565b6000838152609860205260408120805482919084908110610a1857610a186156d8565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610b045760405162461bcd60e51b815260206004820152605a60248201527f526567436f6f72642e67657451756f72756d4269746d61704174426c6f636b4e60448201527f756d6265724279496e6465783a2071756f72756d4269746d617055706461746560648201527f2069732066726f6d20616674657220626c6f636b4e756d626572000000000000608482015260a401610908565b602081015163ffffffff161580610b2a5750806020015163ffffffff168463ffffffff16105b610bc25760405162461bcd60e51b815260206004820152605b60248201527f526567436f6f72642e67657451756f72756d4269746d61704174426c6f636b4e60448201527f756d6265724279496e6465783a2071756f72756d4269746d617055706461746560648201527f2069732066726f6d206265666f726520626c6f636b4e756d6265720000000000608482015260a401610908565b60400151949350505050565b60013360009081526099602052604090206001015460ff166002811115610bf757610bf7614d55565b14610c5b5760405162461bcd60e51b815260206004820152602e60248201527f526567436f6f72642e757064617465536f636b65743a206f70657261746f722060448201526d1b9bdd081c9959da5cdd195c995960921b6064820152608401610908565b33600090815260996020526040902054610c7590826124f3565b50565b610c806125af565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfc919061571f565b6001600160a01b0316336001600160a01b031614610d2c5760405162461bcd60e51b81526004016109089061573c565b610c758161260e565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da69190615786565b610dc25760405162461bcd60e51b8152600401610908906157a8565b60015481811614610e3b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610908565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610eb657610eb66156d8565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b6040516308f6629d60e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906347b314e890602401602060405180830381865afa158015610f72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f04919061571f565b610f9e6125af565b610c7581612713565b610faf6125af565b610c758161277c565b6040805180820190915260008082526020820152610f046110327f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de6846040516020016110179291909182526001600160a01b0316602082015260400190565b604051602081830303815290604052805190602001206127e5565b612833565b600154600290600490811614156110605760405162461bcd60e51b8152600401610908906156a1565b60006110a884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506128c39050565b905084831461110d5760405162461bcd60e51b81526020600482015260386024820152600080516020615ec083398151915260448201527f6d3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610908565b60005b8381101561150757600085858381811061112c5761112c6156d8565b919091013560f81c9150369050600089898581811061114d5761114d6156d8565b905060200281019061115f91906157f0565b6040516379a0849160e11b815260ff8616600482015291935091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f341092290602401602060405180830381865afa1580156111cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ef9190615839565b63ffffffff16811461127d5760405162461bcd60e51b815260206004820152605a6024820152600080516020615ec083398151915260448201527f6d3a206e756d626572206f662075706461746564206f70657261746f7273206460648201527f6f6573206e6f74206d617463682071756f72756d20746f74616c000000000000608482015260a401610908565b6000805b828110156114a657600084848381811061129d5761129d6156d8565b90506020020160208101906112b29190614c27565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156112fd576112fd614d55565b600281111561130e5761130e614d55565b90525080519091506000611321826122d1565b905060016001600160c01b03821660ff8b161c8116146113975760405162461bcd60e51b81526020600482015260396024820152600080516020615ec083398151915260448201527f6d3a206f70657261746f72206e6f7420696e2071756f72756d000000000000006064820152608401610908565b856001600160a01b0316846001600160a01b0316116114325760405162461bcd60e51b815260206004820152605c6024820152600080516020615ec083398151915260448201527f6d3a206f70657261746f7273206172726179206d75737420626520736f72746560648201527f6420696e20617363656e64696e672061646472657373206f7264657200000000608482015260a401610908565b5061149083838f8f8d908e60016114499190615856565b926114569392919061586e565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061240692505050565b5090925061149f905081615704565b9050611281565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a2505050508061150090615704565b9050611110565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561156a5761156a614d55565b600281111561157b5761157b614d55565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156115d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f59190615786565b6116115760405162461bcd60e51b8152600401610908906157a8565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6116586125af565b8161166281612954565b61166c83836129c1565b505050565b609c818154811061168157600080fd5b6000918252602090912001546001600160a01b0316905081565b6116a3612a67565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916117109187908790819084018382808284376000920191909152505060965460ff1691506128c39050565b9050600061171d836122d1565b905060018085015460ff16600281111561173957611739614d55565b14801561174e57506001600160c01b03821615155b801561176c575061176c6001600160c01b0383811690831681161490565b15611507576115078787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ad992505050565b6117b96125af565b6117c36000612f1a565b565b60006118057f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a878787878760405160200161101796959493929190615898565b9695505050505050565b6000610f04826122d1565b600061182e6064546001600160a01b031690565b905090565b60018054600091908116141561185b5760405162461bcd60e51b8152600401610908906156a1565b8389146118d05760405162461bcd60e51b815260206004820152603960248201527f526567436f6f72642e72656769737465724f70657261746f725769746843687560448201527f726e3a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610908565b60006118dc3388612f6c565b905061193c33828888808060200260200160405190810160405280939291908181526020016000905b82821015611931576119226040830286013681900381019061591d565b81526020019060010190611905565b50505050508761309d565b600061198333838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250613214915050565b905060005b8b811015611b4e576000609760008f8f858181106119a8576119a86156d8565b919091013560f81c82525060208082019290925260409081016000208151606081018352905463ffffffff811680835261ffff600160201b8304811695840195909552600160301b90910490931691810191909152845180519193509084908110611a1557611a156156d8565b602002602001015163ffffffff161115611b3b57611ab68e8e84818110611a3e57611a3e6156d8565b9050013560f81c60f81b60f81c84604001518481518110611a6157611a616156d8565b60200260200101513386602001518681518110611a8057611a806156d8565b60200260200101518d8d88818110611a9a57611a9a6156d8565b905060400201803603810190611ab0919061591d565b86613764565b611b3b898984818110611acb57611acb6156d8565b9050604002016020016020810190611ae39190614c27565b8f8f8590866001611af49190615856565b92611b019392919061586e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ad992505050565b5080611b4681615704565b915050611988565b50505050505050505050505050565b600180546000919081161415611b855760405162461bcd60e51b8152600401610908906156a1565b6000611b913385612f6c565b90506000611bda33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250613214915050565b51905060005b88811015611cc75760008a8a83818110611bfc57611bfc6156d8565b919091013560f81c600081815260976020526040902054855191935063ffffffff169150849084908110611c3257611c326156d8565b602002602001015163ffffffff161115611cb45760405162461bcd60e51b815260206004820152603960248201527f526567436f6f72642e72656769737465724f70657261746f723a206f7065726160448201527f746f7220636f756e742065786365656473206d6178696d756d000000000000006064820152608401610908565b5080611cbf81615704565b915050611be0565b50505050505050505050565b6060600082516001600160401b03811115611cf057611cf0614acb565b604051908082528060200260200182016040528015611d19578160200160208202803683370190505b50905060005b8351811015611d8457611d4b85858381518110611d3e57611d3e6156d8565b6020026020010151613a4f565b828281518110611d5d57611d5d6156d8565b63ffffffff9092166020928302919091019091015280611d7c81615704565b915050611d1f565b509392505050565b6001805460029081161415611db35760405162461bcd60e51b8152600401610908906156a1565b61166c3384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ad992505050565b611dfb6125af565b61166c838383613b76565b600054610100900460ff1615808015611e265750600054600160ff909116105b80611e405750303b158015611e40575060005460ff166001145b611ea35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610908565b6000805460ff191660011790558015611ec6576000805461ff0019166101001790555b82518451148015611ed8575081518351145b611f375760405162461bcd60e51b815260206004820152602a60248201527f526567436f6f72642e696e697469616c697a653a20696e707574206c656e67746044820152690d040dad2e6dac2e8c6d60b31b6064820152608401610908565b611f4089612f1a565b611f4a8686613d82565b611f5388612713565b611f5c8761277c565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166001600160a01b03199283161790925585548085018755850180547f0000000000000000000000000000000000000000000000000000000000000000841690831617905585549384019095559190920180547f000000000000000000000000000000000000000000000000000000000000000090921691909316179091555b84518110156120ad5761209b85828151811061205a5761205a6156d8565b6020026020010151858381518110612074576120746156d8565b602002602001015185848151811061208e5761208e6156d8565b6020026020010151613b76565b806120a581615704565b91505061203c565b5080156120f4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b6121076125af565b6001600160a01b03811661216c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610908565b610c7581612f1a565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ec919061571f565b6001600160a01b0316336001600160a01b03161461221c5760405162461bcd60e51b81526004016109089061573c565b60015419811960015419161461229a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610908565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610e6e565b600081815260986020526040812054806122ee5750600092915050565b6000838152609860205260409020612307600183615939565b81548110612317576123176156d8565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061234884613e72565b61ffff166001600160401b0381111561236357612363614acb565b6040519080825280601f01601f19166020018201604052801561238d576020820181803683370190505b5090506000805b8251821080156123a5575061010081105b156123fc576001811b9350858416156123ec578060f81b8383815181106123ce576123ce6156d8565b60200101906001600160f81b031916908160001a9053508160010191505b6123f581615704565b9050612394565b5090949350505050565b60018260200151600281111561241e5761241e614d55565b1461242857505050565b81516040516333567f7f60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906366acfefe9061247d9088908690889060040161599d565b6020604051808303816000875af115801561249c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c091906159cd565b90506001600160c01b038116156124ec576124ec856124e7836001600160c01b031661233a565b612ad9565b5050505050565b6040516378219b3f60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f043367e9061254190859085906004016159f6565b600060405180830381600087803b15801561255b57600080fd5b505af115801561256f573d6000803e3d6000fd5b50505050817fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa826040516125a39190615a0f565b60405180910390a25050565b336125b861181a565b6001600160a01b0316146117c35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610908565b6001600160a01b03811661269c5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610908565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610f046127f2613e9d565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b604080518082019091526000808252602082015260008080612863600080516020615ea083398151915286615a38565b90505b61286f81613fc4565b9093509150600080516020615ea08339815191528283098314156128a9576040805180820190915290815260208101919091529392505050565b600080516020615ea0833981519152600182089050612866565b6000806128cf84614046565b9050808360ff166001901b1161294d5760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610908565b9392505050565b60965460ff90811690821610610c755760405162461bcd60e51b815260206004820152602c60248201527f526567436f6f72642e71756f72756d4578697374733a2071756f72756d20646f60448201526b195cc81b9bdd08195e1a5cdd60a21b6064820152608401610908565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac906060016125a3565b609e546001600160a01b031633146117c35760405162461bcd60e51b815260206004820152602f60248201527f526567436f6f72642e6f6e6c79456a6563746f723a2063616c6c65722069732060448201526e3737ba103a34329032b532b1ba37b960891b6064820152608401610908565b6001600160a01b0382166000908152609960205260409020805460018083015460ff166002811115612b0d57612b0d614d55565b14612b805760405162461bcd60e51b815260206004820152603860248201527f526567436f6f72642e5f646572656769737465724f70657261746f723a206f7060448201527f657261746f72206973206e6f74207265676973746572656400000000000000006064820152608401610908565b609654600090612b9490859060ff166128c3565b90506000612ba1836122d1565b90506001600160c01b038216612c125760405162461bcd60e51b815260206004820152603060248201527f526567436f6f72642e5f646572656769737465724f70657261746f723a20626960448201526f0746d61702063616e6e6f7420626520360841b6064820152608401610908565b612c296001600160c01b0383811690831681161490565b612ca95760405162461bcd60e51b8152602060048201526044602482018190527f526567436f6f72642e5f646572656769737465724f70657261746f723a206f70908201527f657261746f72206973206e6f74207265676973746572656420666f722071756f60648201526372756d7360e01b608482015260a401610908565b6001600160c01b0382811619821616612cc284826141d3565b6001600160c01b038116612d915760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da90602401600060405180830381600087803b158015612d4257600080fd5b505af1158015612d56573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f4e24fe590612ddf908a908a90600401615a4c565b600060405180830381600087803b158015612df957600080fd5b505af1158015612e0d573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612e5f9087908a906004016159f6565b600060405180830381600087803b158015612e7957600080fd5b505af1158015612e8d573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612edf9087908a906004016159f6565b600060405180830381600087803b158015612ef957600080fd5b505af1158015612f0d573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906313542a4e90602401602060405180830381865afa158015612fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ffb9190615a70565b905080610f04577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf79ce58848461303c87610fb8565b6040518463ffffffff1660e01b815260040161305a93929190615a89565b6020604051808303816000875af1158015613079573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294d9190615a70565b6020808201516000908152609a909152604090205460ff16156131385760405162461bcd60e51b815260206004820152604760248201527f526567436f6f72642e5f766572696679436875726e417070726f76657253696760448201527f6e61747572653a20636875726e417070726f7665722073616c7420616c726561606482015266191e481d5cd95960ca1b608482015260a401610908565b42816040015110156131c25760405162461bcd60e51b815260206004820152604760248201527f526567436f6f72642e5f766572696679436875726e417070726f76657253696760448201527f6e61747572653a20636875726e417070726f766572207369676e617475726520606482015266195e1c1a5c995960ca1b608482015260a401610908565b602080820180516000908152609a909252604091829020805460ff19166001179055609d549051918301516109ef926001600160a01b039092169161320d91889188918891906117c5565b8351614393565b61323860405180606001604052806060815260200160608152602001606081525090565b600061328086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506128c39050565b9050600061328d886122d1565b90506001600160c01b0382166132fc5760405162461bcd60e51b815260206004820152602e60248201527f526567436f6f72642e5f72656769737465724f70657261746f723a206269746d60448201526d061702063616e6e6f7420626520360941b6064820152608401610908565b8082166001600160c01b03161561338c5760405162461bcd60e51b815260206004820152604860248201527f526567436f6f72642e5f72656769737465724f70657261746f723a206f70657260448201527f61746f7220616c7265616479207265676973746572656420666f7220736f6d656064820152672071756f72756d7360c01b608482015260a401610908565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b03838116908516179142916133c49190615856565b106134375760405162461bcd60e51b815260206004820152603a60248201527f526567436f6f72642e5f72656769737465724f70657261746f723a206f70657260448201527f61746f722063616e6e6f742072657265676973746572207965740000000000006064820152608401610908565b61344189826141d3565b60016001600160a01b038b1660009081526099602052604090206001015460ff16600281111561347357613473614d55565b14613596576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff1916908360028111156134ce576134ce614d55565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169150639926ee7d90613523908d908990600401615b08565b600060405180830381600087803b15801561353d57600080fd5b505af1158015613551573d6000803e3d6000fd5b5050505061355f89876124f3565b60405189906001600160a01b038c16907fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633fb27952906135e6908d908c908c90600401615b7c565b600060405180830381600087803b15801561360057600080fd5b505af1158015613614573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506325504777915061366a908d908d908d908d90600401615ba1565b6000604051808303816000875af1158015613689573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526136b19190810190615c2d565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169062bff04d9061370e908c908c908c90600401615c90565b6000604051808303816000875af115801561372d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526137559190810190615caa565b84525050509695505050505050565b6020808301516001600160a01b0380821660008181526099909452604090932054919290871614156137eb5760405162461bcd60e51b815260206004820152602a60248201527f526567436f6f72642e5f76616c6964617465436875726e3a2063616e6e6f742060448201526931b43ab9371039b2b63360b11b6064820152608401610908565b8760ff16846000015160ff161461386a5760405162461bcd60e51b815260206004820152603c60248201527f526567436f6f72642e5f76616c6964617465436875726e3a2071756f72756d4e60448201527f756d626572206e6f74207468652073616d65206173207369676e6564000000006064820152608401610908565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635401ed2790604401602060405180830381865afa1580156138db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138ff9190615d43565b905061390b818561454d565b6001600160601b0316866001600160601b0316116139a55760405162461bcd60e51b815260206004820152604b60248201527f526567436f6f72642e5f76616c6964617465436875726e3a20696e636f6d696e60448201527f67206f70657261746f722068617320696e73756666696369656e74207374616b60648201526a32903337b91031b43ab93760a91b608482015260a401610908565b6139af8885614571565b6001600160601b0316816001600160601b0316106120f45760405162461bcd60e51b815260206004820152605160248201527f526567436f6f72642e5f76616c6964617465436875726e3a2063616e6e6f742060448201527f6b69636b206f70657261746f722077697468206d6f7265207468616e206b69636064820152706b424950734f66546f74616c5374616b6560781b608482015260a401610908565b600081815260986020526040812054815b81811015613ae1576001613a748284615939565b613a7e9190615939565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff1681548110613ab157613ab16156d8565b60009182526020909120015463ffffffff1611613acf575050610f04565b80613ad981615704565b915050613a60565b5060405162461bcd60e51b815260206004820152605e60248201527f526567436f6f72642e67657451756f72756d4269746d6170496e64657841744260448201527f6c6f636b4e756d6265723a206e6f206269746d61702075706461746520666f7560648201527f6e6420666f72206f70657261746f7220617420626c6f636b4e756d6265720000608482015260a401610908565b60965460ff1660c08110613bdf5760405162461bcd60e51b815260206004820152602a60248201527f526567436f6f72642e63726561746551756f72756d3a206d61782071756f72756044820152691b5cc81c995858da195960b21b6064820152608401610908565b613bea816001615d60565b6096805460ff191660ff9290921691909117905580613c0981866129c1565b60405160016296b58960e01b031981526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ff694a7790613c5c90849088908890600401615d85565b600060405180830381600087803b158015613c7657600080fd5b505af1158015613c8a573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b158015613cf257600080fd5b505af1158015613d06573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b158015613d6e57600080fd5b505af11580156120f4573d6000803e3d6000fd5b6000546201000090046001600160a01b0316158015613da957506001600160a01b03821615155b613e2b5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610908565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2613e6e8261260e565b5050565b6000805b8215610f0457613e87600184615939565b9092169180613e9581615dfe565b915050613e76565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015613ef657507f000000000000000000000000000000000000000000000000000000000000000046145b15613f2057507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615ea08339815191526003600080516020615ea083398151915286600080516020615ea083398151915288890909089050600061403a827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615ea083398151915261458b565b91959194509092505050565b6000610100825111156140cf5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610908565b81516140dd57506000919050565b600080836000815181106140f3576140f36156d8565b0160200151600160f89190911c81901b92505b84518110156141ca57848181518110614121576141216156d8565b0160200151600160f89190911c1b91508282116141b65760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610908565b918117916141c381615704565b9050614106565b50909392505050565b60008281526098602052604090205480614278576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120614291600184615939565b815481106142a1576142a16156d8565b600091825260209091200180549091504363ffffffff908116911614156142e55780546001600160401b0316600160401b6001600160c01b038516021781556109ef565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b156144ad57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906143d390869086906004016159f6565b602060405180830381865afa1580156143f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144149190615e20565b6001600160e01b0319161461166c5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610908565b826001600160a01b03166144c1838361463a565b6001600160a01b03161461166c5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610908565b6020810151600090612710906145679061ffff1685615e4a565b61294d9190615e79565b6040810151600090612710906145679061ffff1685615e4a565b6000806145966149a7565b61459e6149c5565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280156145df576145e1565bfe5b508261462f5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610908565b505195945050505050565b60008060006146498585614656565b91509150611d84816146c6565b60008082516041141561468d5760208301516040840151606085015160001a61468187828585614881565b945094505050506146bf565b8251604014156146b757602083015160408401516146ac86838361496e565b9350935050506146bf565b506000905060025b9250929050565b60008160048111156146da576146da614d55565b14156146e35750565b60018160048111156146f7576146f7614d55565b14156147455760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610908565b600281600481111561475957614759614d55565b14156147a75760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610908565b60038160048111156147bb576147bb614d55565b14156148145760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610908565b600481600481111561482857614828614d55565b1415610c755760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610908565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156148b85750600090506003614965565b8460ff16601b141580156148d057508460ff16601c14155b156148e15750600090506004614965565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614935573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661495e57600060019250925050614965565b9150600090505b94509492505050565b6000806001600160ff1b0383168161498b60ff86901c601b615856565b905061499987828885614881565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f8401126149f557600080fd5b5081356001600160401b03811115614a0c57600080fd5b6020830191508360208260051b85010111156146bf57600080fd5b60008060208385031215614a3a57600080fd5b82356001600160401b03811115614a5057600080fd5b614a5c858286016149e3565b90969095509350505050565b600060208284031215614a7a57600080fd5b5035919050565b63ffffffff81168114610c7557600080fd5b600080600060608486031215614aa857600080fd5b833592506020840135614aba81614a81565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715614b0357614b03614acb565b60405290565b604080519081016001600160401b0381118282101715614b0357614b03614acb565b604051601f8201601f191681016001600160401b0381118282101715614b5357614b53614acb565b604052919050565b60006001600160401b03831115614b7457614b74614acb565b614b87601f8401601f1916602001614b2b565b9050828152838383011115614b9b57600080fd5b828260208301376000602084830101529392505050565b600060208284031215614bc457600080fd5b81356001600160401b03811115614bda57600080fd5b8201601f81018413614beb57600080fd5b614bfa84823560208401614b5b565b949350505050565b6001600160a01b0381168114610c7557600080fd5b8035614c2281614c02565b919050565b600060208284031215614c3957600080fd5b813561294d81614c02565b60008060408385031215614c5757600080fd5b50508035926020909101359150565b803560ff81168114614c2257600080fd5b600060208284031215614c8957600080fd5b61294d82614c66565b815181526020808301519082015260408101610f04565b60008083601f840112614cbb57600080fd5b5081356001600160401b03811115614cd257600080fd5b6020830191508360208285010111156146bf57600080fd5b60008060008060408587031215614d0057600080fd5b84356001600160401b0380821115614d1757600080fd5b614d23888389016149e3565b90965094506020870135915080821115614d3c57600080fd5b50614d4987828801614ca9565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b60038110614d8957634e487b7160e01b600052602160045260246000fd5b9052565b815181526020808301516040830191614da890840182614d6b565b5092915050565b803561ffff81168114614c2257600080fd5b600060608284031215614dd357600080fd5b614ddb614ae1565b90508135614de881614a81565b8152614df660208301614daf565b6020820152614e0760408301614daf565b604082015292915050565b60008060808385031215614e2557600080fd5b614e2e83614c66565b9150614e3d8460208501614dc1565b90509250929050565b600080600060408486031215614e5b57600080fd5b8335614e6681614c02565b925060208401356001600160401b03811115614e8157600080fd5b614e8d86828701614ca9565b9497909650939450505050565b60006001600160401b03821115614eb357614eb3614acb565b5060051b60200190565b600060408284031215614ecf57600080fd5b614ed7614b09565b9050614ee282614c66565b81526020820135614ef281614c02565b602082015292915050565b600080600080600060a08688031215614f1557600080fd5b8535614f2081614c02565b945060208681013594506040808801356001600160401b03811115614f4457600080fd5b8801601f81018a13614f5557600080fd5b8035614f68614f6382614e9a565b614b2b565b81815260069190911b8201840190848101908c831115614f8757600080fd5b928501925b82841015614fad57614f9e8d85614ebd565b82529284019290850190614f8c565b999c989b5098996060810135995060800135979650505050505050565b60006101008284031215614fdd57600080fd5b50919050565b60008083601f840112614ff557600080fd5b5081356001600160401b0381111561500c57600080fd5b6020830191508360208260061b85010111156146bf57600080fd5b60006060828403121561503957600080fd5b615041614ae1565b905081356001600160401b0381111561505957600080fd5b8201601f8101841361506a57600080fd5b61507984823560208401614b5b565b825250602082013560208201526040820135604082015292915050565b60008060008060008060008060006101a08a8c0312156150b557600080fd5b89356001600160401b03808211156150cc57600080fd5b6150d88d838e01614ca9565b909b50995060208c01359150808211156150f157600080fd5b6150fd8d838e01614ca9565b90995097508791506151128d60408e01614fca565b96506101408c013591508082111561512957600080fd5b6151358d838e01614fe3565b90965094506101608c013591508082111561514f57600080fd5b61515b8d838e01615027565b93506101808c013591508082111561517257600080fd5b5061517f8c828d01615027565b9150509295985092959850929598565b60008060008060008061016087890312156151a957600080fd5b86356001600160401b03808211156151c057600080fd5b6151cc8a838b01614ca9565b909850965060208901359150808211156151e557600080fd5b6151f18a838b01614ca9565b90965094508491506152068a60408b01614fca565b935061014089013591508082111561521d57600080fd5b5061522a89828a01615027565b9150509295509295509295565b6000806040838503121561524a57600080fd5b823561525581614a81565b91506020838101356001600160401b0381111561527157600080fd5b8401601f8101861361528257600080fd5b8035615290614f6382614e9a565b81815260059190911b820183019083810190888311156152af57600080fd5b928401925b828410156152cd578335825292840192908401906152b4565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561531a57835163ffffffff16835292840192918401916001016152f8565b50909695505050505050565b6000806020838503121561533957600080fd5b82356001600160401b0381111561534f57600080fd5b614a5c85828601614ca9565b6001600160601b0381168114610c7557600080fd5b600082601f83011261538157600080fd5b81356020615391614f6383614e9a565b82815260069290921b840181019181810190868411156153b057600080fd5b8286015b8481101561540157604081890312156153cd5760008081fd5b6153d5614b09565b81356153e081614c02565b8152818501356153ef8161535b565b818601528352918301916040016153b4565b509695505050505050565b600080600060a0848603121561542157600080fd5b61542b8585614dc1565b9250606084013561543b8161535b565b915060808401356001600160401b0381111561545657600080fd5b61546286828701615370565b9150509250925092565b600082601f83011261547d57600080fd5b8135602061548d614f6383614e9a565b828152606092830285018201928282019190878511156154ac57600080fd5b8387015b858110156154cf576154c28982614dc1565b84529284019281016154b0565b5090979650505050505050565b600082601f8301126154ed57600080fd5b813560206154fd614f6383614e9a565b82815260059290921b8401810191818101908684111561551c57600080fd5b8286015b848110156154015780356155338161535b565b8352918301918301615520565b600082601f83011261555157600080fd5b81356020615561614f6383614e9a565b82815260059290921b8401810191818101908684111561558057600080fd5b8286015b848110156154015780356001600160401b038111156155a35760008081fd5b6155b18986838b0101615370565b845250918301918301615584565b600080600080600080600080610100898b0312156155dc57600080fd5b6155e589614c17565b97506155f360208a01614c17565b965061560160408a01614c17565b955061560f60608a01614c17565b94506080890135935060a08901356001600160401b038082111561563257600080fd5b61563e8c838d0161546c565b945060c08b013591508082111561565457600080fd5b6156608c838d016154dc565b935060e08b013591508082111561567657600080fd5b506156838b828c01615540565b9150509295985092959890939650565b60208101610f048284614d6b565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415615718576157186156ee565b5060010190565b60006020828403121561573157600080fd5b815161294d81614c02565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561579857600080fd5b8151801515811461294d57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e1984360301811261580757600080fd5b8301803591506001600160401b0382111561582157600080fd5b6020019150600581901b36038213156146bf57600080fd5b60006020828403121561584b57600080fd5b815161294d81614a81565b60008219821115615869576158696156ee565b500190565b6000808585111561587e57600080fd5b8386111561588b57600080fd5b5050820193919092039150565b600060c08201888352602060018060a01b03808a16828601526040898187015260c0606087015283895180865260e088019150848b01955060005b818110156158fd578651805160ff16845286015185168684015295850195918301916001016158d3565b505060808701989098525050505060a09091019190915250949350505050565b60006040828403121561592f57600080fd5b61294d8383614ebd565b60008282101561594b5761594b6156ee565b500390565b6000815180845260005b818110156159765760208185018101518683018201520161595a565b81811115615988576000602083870101525b50601f01601f19169290920160200192915050565b60018060a01b03841681528260208201526060604082015260006159c46060830184615950565b95945050505050565b6000602082840312156159df57600080fd5b81516001600160c01b038116811461294d57600080fd5b828152604060208201526000614bfa6040830184615950565b60208152600061294d6020830184615950565b634e487b7160e01b600052601260045260246000fd5b600082615a4757615a47615a22565b500690565b6001600160a01b0383168152604060208201819052600090614bfa90830184615950565b600060208284031215615a8257600080fd5b5051919050565b6001600160a01b03841681526101608101615ab1602083018580358252602090810135910152565b615acb606083016040860180358252602090810135910152565b60406080850160a084013760e0820160008152604060c0860182375060006101208301908152835190526020909201516101409091015292915050565b60018060a01b0383168152604060208201526000825160606040840152615b3260a0840182615950565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906159c49083018486615b53565b60018060a01b0385168152836020820152606060408201526000611805606083018486615b53565b600082601f830112615bda57600080fd5b81516020615bea614f6383614e9a565b82815260059290921b84018101918181019086841115615c0957600080fd5b8286015b84811015615401578051615c208161535b565b8352918301918301615c0d565b60008060408385031215615c4057600080fd5b82516001600160401b0380821115615c5757600080fd5b615c6386838701615bc9565b93506020850151915080821115615c7957600080fd5b50615c8685828601615bc9565b9150509250929050565b8381526040602082015260006159c4604083018486615b53565b60006020808385031215615cbd57600080fd5b82516001600160401b03811115615cd357600080fd5b8301601f81018513615ce457600080fd5b8051615cf2614f6382614e9a565b81815260059190911b82018301908381019087831115615d1157600080fd5b928401925b82841015615d38578351615d2981614a81565b82529284019290840190615d16565b979650505050505050565b600060208284031215615d5557600080fd5b815161294d8161535b565b600060ff821660ff84168060ff03821115615d7d57615d7d6156ee565b019392505050565b60006060820160ff8616835260206001600160601b03808716828601526040606081870152838751808652608088019150848901955060005b81811015615dee57865180516001600160a01b031684528601518516868401529585019591830191600101615dbe565b50909a9950505050505050505050565b600061ffff80831681811415615e1657615e166156ee565b6001019392505050565b600060208284031215615e3257600080fd5b81516001600160e01b03198116811461294d57600080fd5b60006001600160601b0380831681851681830481118215151615615e7057615e706156ee565b02949350505050565b60006001600160601b0380841680615e9357615e93615a22565b9216919091049291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47526567436f6f72642e7570646174654f70657261746f7273466f7251756f7275a26469706673582212204ce786acbcf112b5c520669b9476cb1cee962f76224df598e1d1473bcbf521a764736f6c634300080c0033", + Bin: "0x6101e06040523480156200001257600080fd5b50604051620062ef380380620062ef833981016040819052620000359162000240565b604080518082018252601681527f4156535265676973747279436f6f7264696e61746f7200000000000000000000602080830191825283518085018552600681526576302e302e3160d01b908201529151902060e08190527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a996101008190524660a081815285517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818701819052818801959095526060810193909352608080840192909252308382018190528651808503909201825260c09384019096528051940193909320909252919052610120526001600160a01b038086166101405280851661018052808416610160528083166101a05281166101c0526200015a62000165565b5050505050620002c0565b600054610100900460ff1615620001d25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000225576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200023d57600080fd5b50565b600080600080600060a086880312156200025957600080fd5b8551620002668162000227565b6020870151909550620002798162000227565b60408701519094506200028c8162000227565b60608701519093506200029f8162000227565b6080870151909250620002b28162000227565b809150509295509295909350565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c051615f15620003da6000396000818161085b015261250a0152600081816106c60152818161117c0152818161201101528181612ea6015281816136d60152613ca401526000818161060b01528181611f9c0152818161244401528181612e260152818161362d0152818161388c0152613c230152600081816105d101528181610f2301528181611fda01528181612da801528181612f8e01528181613004015281816135ad0152613d2001526000818161051501528181612cfe01526134eb01526000613f2701526000613f7601526000613f5101526000613eaa01526000613ed401526000613efe0152615f156000f3fe608060405234801561001057600080fd5b50600436106102f05760003560e01c80635df459461161019d578063a50857bf116100e9578063d75b4c88116100a2578063ea32afae1161007c578063ea32afae14610856578063f2fde38b1461087d578063fabc1cbc14610890578063fd39105a146108a357600080fd5b8063d75b4c881461078d578063dd8283f3146107a0578063e65797ad146107b357600080fd5b8063a50857bf1461070f578063a96f783e14610722578063c391425e1461072b578063ca0de8821461074b578063ca4f2d9714610772578063d72d8dd61461078557600080fd5b8063871ef049116101565780639aa1653d116101305780639aa1653d1461068f5780639b5d177b146106ae5780639e9923c2146106c15780639feab859146106e857600080fd5b8063871ef0491461065b578063886f11951461066e5780638da5cb5b1461068757600080fd5b80635df45946146105cc5780636347c900146105f357806368304835146106065780636e3b17db1461062d578063715018a61461064057806384ca52131461064857600080fd5b8063249a0c421161025c5780633c2a7f4c11610215578063595c6a67116101ef578063595c6a671461058a5780635ac86ab7146105925780635b0b829f146105b15780635c975abb146105c457600080fd5b80633c2a7f4c146105375780635140a548146105575780635865c60c1461056a57600080fd5b8063249a0c42146104a457806328f61b31146104c4578063296bb064146104d757806329d1e0c3146104ea5780632cdd1e86146104fd5780633998fdd31461051057600080fd5b806310d67a2f116102ae57806310d67a2f146103b9578063125e0584146103cc57806313542a4e146103ec578063136439dd146104155780631478851f146104285780631eb812da1461045b57600080fd5b8062cf2ab5146102f557806303fd34921461030a57806304ec63511461033d578063054310e6146103685780630cf4b767146103935780630d3f2134146103a6575b600080fd5b610308610303366004614a27565b6108df565b005b61032a610318366004614a68565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61035061034b366004614a93565b6109f5565b6040516001600160c01b039091168152602001610334565b609d5461037b906001600160a01b031681565b6040516001600160a01b039091168152602001610334565b6103086103a1366004614bb2565b610bce565b6103086103b4366004614a68565b610c78565b6103086103c7366004614c27565b610c85565b61032a6103da366004614c27565b609f6020526000908152604090205481565b61032a6103fa366004614c27565b6001600160a01b031660009081526099602052604090205490565b610308610423366004614a68565b610d35565b61044b610436366004614a68565b609a6020526000908152604090205460ff1681565b6040519015158152602001610334565b61046e610469366004614c44565b610e79565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b031690820152606001610334565b61032a6104b2366004614c77565b609b6020526000908152604090205481565b609e5461037b906001600160a01b031681565b61037b6104e5366004614a68565b610f0a565b6103086104f8366004614c27565b610f96565b61030861050b366004614c27565b610fa7565b61037b7f000000000000000000000000000000000000000000000000000000000000000081565b61054a610545366004614c27565b610fb8565b6040516103349190614c92565b610308610565366004614cea565b611037565b61057d610578366004614c27565b611510565b6040516103349190614d8d565b610308611584565b61044b6105a0366004614c77565b6001805460ff9092161b9081161490565b6103086105bf366004614e12565b611650565b60015461032a565b61037b7f000000000000000000000000000000000000000000000000000000000000000081565b61037b610601366004614a68565b611671565b61037b7f000000000000000000000000000000000000000000000000000000000000000081565b61030861063b366004614e46565b61169b565b6103086117b1565b61032a610656366004614efd565b6117c5565b610350610669366004614a68565b61180f565b60005461037b906201000090046001600160a01b031681565b61037b61181a565b60965461069c9060ff1681565b60405160ff9091168152602001610334565b6103086106bc366004615096565b611833565b61037b7f000000000000000000000000000000000000000000000000000000000000000081565b61032a7f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61030861071d36600461518f565b611b5d565b61032a60a05481565b61073e610739366004615237565b611cd3565b60405161033491906152dc565b61032a7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b610308610780366004615326565b611d8c565b609c5461032a565b61030861079b36600461540c565b611df3565b6103086107ae3660046155bf565b611e06565b6108226107c1366004614c77565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff908116918301919091529282015190921690820152606001610334565b61037b7f000000000000000000000000000000000000000000000000000000000000000081565b61030861088b366004614c27565b6120ff565b61030861089e366004614a68565b612175565b6108d26108b1366004614c27565b6001600160a01b031660009081526099602052604090206001015460ff1690565b6040516103349190615693565b600154600290600490811614156109115760405162461bcd60e51b8152600401610908906156a1565b60405180910390fd5b60005b828110156109ef576000848483818110610930576109306156d8565b90506020020160208101906109459190614c27565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff16600281111561099057610990614d55565b60028111156109a1576109a1614d55565b905250805190915060006109b4826122d1565b905060006109ca826001600160c01b031661233a565b90506109d7858583612406565b505050505080806109e790615704565b915050610914565b50505050565b6000838152609860205260408120805482919084908110610a1857610a186156d8565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610b045760405162461bcd60e51b815260206004820152605a60248201527f526567436f6f72642e67657451756f72756d4269746d61704174426c6f636b4e60448201527f756d6265724279496e6465783a2071756f72756d4269746d617055706461746560648201527f2069732066726f6d20616674657220626c6f636b4e756d626572000000000000608482015260a401610908565b602081015163ffffffff161580610b2a5750806020015163ffffffff168463ffffffff16105b610bc25760405162461bcd60e51b815260206004820152605b60248201527f526567436f6f72642e67657451756f72756d4269746d61704174426c6f636b4e60448201527f756d6265724279496e6465783a2071756f72756d4269746d617055706461746560648201527f2069732066726f6d206265666f726520626c6f636b4e756d6265720000000000608482015260a401610908565b60400151949350505050565b60013360009081526099602052604090206001015460ff166002811115610bf757610bf7614d55565b14610c5b5760405162461bcd60e51b815260206004820152602e60248201527f526567436f6f72642e757064617465536f636b65743a206f70657261746f722060448201526d1b9bdd081c9959da5cdd195c995960921b6064820152608401610908565b33600090815260996020526040902054610c7590826124f3565b50565b610c806125af565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfc919061571f565b6001600160a01b0316336001600160a01b031614610d2c5760405162461bcd60e51b81526004016109089061573c565b610c758161260e565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da69190615786565b610dc25760405162461bcd60e51b8152600401610908906157a8565b60015481811614610e3b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610908565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610eb657610eb66156d8565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b6040516308f6629d60e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906347b314e890602401602060405180830381865afa158015610f72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f04919061571f565b610f9e6125af565b610c7581612713565b610faf6125af565b610c758161277c565b6040805180820190915260008082526020820152610f046110327f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de6846040516020016110179291909182526001600160a01b0316602082015260400190565b604051602081830303815290604052805190602001206127e5565b612833565b600154600290600490811614156110605760405162461bcd60e51b8152600401610908906156a1565b60006110a884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506128c39050565b905084831461110d5760405162461bcd60e51b81526020600482015260386024820152600080516020615ec083398151915260448201527f6d3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610908565b60005b8381101561150757600085858381811061112c5761112c6156d8565b919091013560f81c9150369050600089898581811061114d5761114d6156d8565b905060200281019061115f91906157f0565b6040516379a0849160e11b815260ff8616600482015291935091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f341092290602401602060405180830381865afa1580156111cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ef9190615839565b63ffffffff16811461127d5760405162461bcd60e51b815260206004820152605a6024820152600080516020615ec083398151915260448201527f6d3a206e756d626572206f662075706461746564206f70657261746f7273206460648201527f6f6573206e6f74206d617463682071756f72756d20746f74616c000000000000608482015260a401610908565b6000805b828110156114a657600084848381811061129d5761129d6156d8565b90506020020160208101906112b29190614c27565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156112fd576112fd614d55565b600281111561130e5761130e614d55565b90525080519091506000611321826122d1565b905060016001600160c01b03821660ff8b161c8116146113975760405162461bcd60e51b81526020600482015260396024820152600080516020615ec083398151915260448201527f6d3a206f70657261746f72206e6f7420696e2071756f72756d000000000000006064820152608401610908565b856001600160a01b0316846001600160a01b0316116114325760405162461bcd60e51b815260206004820152605c6024820152600080516020615ec083398151915260448201527f6d3a206f70657261746f7273206172726179206d75737420626520736f72746560648201527f6420696e20617363656e64696e672061646472657373206f7264657200000000608482015260a401610908565b5061149083838f8f8d908e60016114499190615856565b926114569392919061586e565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061240692505050565b5090925061149f905081615704565b9050611281565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a2505050508061150090615704565b9050611110565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561156a5761156a614d55565b600281111561157b5761157b614d55565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156115d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f59190615786565b6116115760405162461bcd60e51b8152600401610908906157a8565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6116586125af565b8161166281612954565b61166c83836129c1565b505050565b609c818154811061168157600080fd5b6000918252602090912001546001600160a01b0316905081565b6116a3612a67565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916117109187908790819084018382808284376000920191909152505060965460ff1691506128c39050565b9050600061171d836122d1565b905060018085015460ff16600281111561173957611739614d55565b14801561174e57506001600160c01b03821615155b801561176c575061176c6001600160c01b0383811690831681161490565b15611507576115078787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ad992505050565b6117b96125af565b6117c36000612f1a565b565b60006118057f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a878787878760405160200161101796959493929190615898565b9695505050505050565b6000610f04826122d1565b600061182e6064546001600160a01b031690565b905090565b60018054600091908116141561185b5760405162461bcd60e51b8152600401610908906156a1565b8389146118d05760405162461bcd60e51b815260206004820152603960248201527f526567436f6f72642e72656769737465724f70657261746f725769746843687560448201527f726e3a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610908565b60006118dc3388612f6c565b905061193c33828888808060200260200160405190810160405280939291908181526020016000905b82821015611931576119226040830286013681900381019061591d565b81526020019060010190611905565b50505050508761309d565b600061198333838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250613214915050565b905060005b8b811015611b4e576000609760008f8f858181106119a8576119a86156d8565b919091013560f81c82525060208082019290925260409081016000208151606081018352905463ffffffff811680835261ffff600160201b8304811695840195909552600160301b90910490931691810191909152845180519193509084908110611a1557611a156156d8565b602002602001015163ffffffff161115611b3b57611ab68e8e84818110611a3e57611a3e6156d8565b9050013560f81c60f81b60f81c84604001518481518110611a6157611a616156d8565b60200260200101513386602001518681518110611a8057611a806156d8565b60200260200101518d8d88818110611a9a57611a9a6156d8565b905060400201803603810190611ab0919061591d565b86613764565b611b3b898984818110611acb57611acb6156d8565b9050604002016020016020810190611ae39190614c27565b8f8f8590866001611af49190615856565b92611b019392919061586e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ad992505050565b5080611b4681615704565b915050611988565b50505050505050505050505050565b600180546000919081161415611b855760405162461bcd60e51b8152600401610908906156a1565b6000611b913385612f6c565b90506000611bda33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250613214915050565b51905060005b88811015611cc75760008a8a83818110611bfc57611bfc6156d8565b919091013560f81c600081815260976020526040902054855191935063ffffffff169150849084908110611c3257611c326156d8565b602002602001015163ffffffff161115611cb45760405162461bcd60e51b815260206004820152603960248201527f526567436f6f72642e72656769737465724f70657261746f723a206f7065726160448201527f746f7220636f756e742065786365656473206d6178696d756d000000000000006064820152608401610908565b5080611cbf81615704565b915050611be0565b50505050505050505050565b6060600082516001600160401b03811115611cf057611cf0614acb565b604051908082528060200260200182016040528015611d19578160200160208202803683370190505b50905060005b8351811015611d8457611d4b85858381518110611d3e57611d3e6156d8565b6020026020010151613a4f565b828281518110611d5d57611d5d6156d8565b63ffffffff9092166020928302919091019091015280611d7c81615704565b915050611d1f565b509392505050565b6001805460029081161415611db35760405162461bcd60e51b8152600401610908906156a1565b61166c3384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ad992505050565b611dfb6125af565b61166c838383613b76565b600054610100900460ff1615808015611e265750600054600160ff909116105b80611e405750303b158015611e40575060005460ff166001145b611ea35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610908565b6000805460ff191660011790558015611ec6576000805461ff0019166101001790555b82518451148015611ed8575081518351145b611f375760405162461bcd60e51b815260206004820152602a60248201527f526567436f6f72642e696e697469616c697a653a20696e707574206c656e67746044820152690d040dad2e6dac2e8c6d60b31b6064820152608401610908565b611f4089612f1a565b611f4a8686613d82565b611f5388612713565b611f5c8761277c565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166001600160a01b03199283161790925585548085018755850180547f0000000000000000000000000000000000000000000000000000000000000000841690831617905585549384019095559190920180547f000000000000000000000000000000000000000000000000000000000000000090921691909316179091555b84518110156120ad5761209b85828151811061205a5761205a6156d8565b6020026020010151858381518110612074576120746156d8565b602002602001015185848151811061208e5761208e6156d8565b6020026020010151613b76565b806120a581615704565b91505061203c565b5080156120f4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b6121076125af565b6001600160a01b03811661216c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610908565b610c7581612f1a565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ec919061571f565b6001600160a01b0316336001600160a01b03161461221c5760405162461bcd60e51b81526004016109089061573c565b60015419811960015419161461229a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610908565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610e6e565b600081815260986020526040812054806122ee5750600092915050565b6000838152609860205260409020612307600183615939565b81548110612317576123176156d8565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061234884613e72565b61ffff166001600160401b0381111561236357612363614acb565b6040519080825280601f01601f19166020018201604052801561238d576020820181803683370190505b5090506000805b8251821080156123a5575061010081105b156123fc576001811b9350858416156123ec578060f81b8383815181106123ce576123ce6156d8565b60200101906001600160f81b031916908160001a9053508160010191505b6123f581615704565b9050612394565b5090949350505050565b60018260200151600281111561241e5761241e614d55565b1461242857505050565b81516040516333567f7f60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906366acfefe9061247d9088908690889060040161599d565b6020604051808303816000875af115801561249c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c091906159cd565b90506001600160c01b038116156124ec576124ec856124e7836001600160c01b031661233a565b612ad9565b5050505050565b6040516378219b3f60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f043367e9061254190859085906004016159f6565b600060405180830381600087803b15801561255b57600080fd5b505af115801561256f573d6000803e3d6000fd5b50505050817fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa826040516125a39190615a0f565b60405180910390a25050565b336125b861181a565b6001600160a01b0316146117c35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610908565b6001600160a01b03811661269c5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610908565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610f046127f2613e9d565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b604080518082019091526000808252602082015260008080612863600080516020615ea083398151915286615a38565b90505b61286f81613fc4565b9093509150600080516020615ea08339815191528283098314156128a9576040805180820190915290815260208101919091529392505050565b600080516020615ea0833981519152600182089050612866565b6000806128cf84614046565b9050808360ff166001901b1161294d5760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610908565b9392505050565b60965460ff90811690821610610c755760405162461bcd60e51b815260206004820152602c60248201527f526567436f6f72642e71756f72756d4578697374733a2071756f72756d20646f60448201526b195cc81b9bdd08195e1a5cdd60a21b6064820152608401610908565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac906060016125a3565b609e546001600160a01b031633146117c35760405162461bcd60e51b815260206004820152602f60248201527f526567436f6f72642e6f6e6c79456a6563746f723a2063616c6c65722069732060448201526e3737ba103a34329032b532b1ba37b960891b6064820152608401610908565b6001600160a01b0382166000908152609960205260409020805460018083015460ff166002811115612b0d57612b0d614d55565b14612b805760405162461bcd60e51b815260206004820152603860248201527f526567436f6f72642e5f646572656769737465724f70657261746f723a206f7060448201527f657261746f72206973206e6f74207265676973746572656400000000000000006064820152608401610908565b609654600090612b9490859060ff166128c3565b90506000612ba1836122d1565b90506001600160c01b038216612c125760405162461bcd60e51b815260206004820152603060248201527f526567436f6f72642e5f646572656769737465724f70657261746f723a20626960448201526f0746d61702063616e6e6f7420626520360841b6064820152608401610908565b612c296001600160c01b0383811690831681161490565b612ca95760405162461bcd60e51b8152602060048201526044602482018190527f526567436f6f72642e5f646572656769737465724f70657261746f723a206f70908201527f657261746f72206973206e6f74207265676973746572656420666f722071756f60648201526372756d7360e01b608482015260a401610908565b6001600160c01b0382811619821616612cc284826141d3565b6001600160c01b038116612d915760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da90602401600060405180830381600087803b158015612d4257600080fd5b505af1158015612d56573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f4e24fe590612ddf908a908a90600401615a4c565b600060405180830381600087803b158015612df957600080fd5b505af1158015612e0d573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612e5f9087908a906004016159f6565b600060405180830381600087803b158015612e7957600080fd5b505af1158015612e8d573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612edf9087908a906004016159f6565b600060405180830381600087803b158015612ef957600080fd5b505af1158015612f0d573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906313542a4e90602401602060405180830381865afa158015612fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ffb9190615a70565b905080610f04577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf79ce58848461303c87610fb8565b6040518463ffffffff1660e01b815260040161305a93929190615a89565b6020604051808303816000875af1158015613079573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294d9190615a70565b6020808201516000908152609a909152604090205460ff16156131385760405162461bcd60e51b815260206004820152604760248201527f526567436f6f72642e5f766572696679436875726e417070726f76657253696760448201527f6e61747572653a20636875726e417070726f7665722073616c7420616c726561606482015266191e481d5cd95960ca1b608482015260a401610908565b42816040015110156131c25760405162461bcd60e51b815260206004820152604760248201527f526567436f6f72642e5f766572696679436875726e417070726f76657253696760448201527f6e61747572653a20636875726e417070726f766572207369676e617475726520606482015266195e1c1a5c995960ca1b608482015260a401610908565b602080820180516000908152609a909252604091829020805460ff19166001179055609d549051918301516109ef926001600160a01b039092169161320d91889188918891906117c5565b8351614393565b61323860405180606001604052806060815260200160608152602001606081525090565b600061328086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506128c39050565b9050600061328d886122d1565b90506001600160c01b0382166132fc5760405162461bcd60e51b815260206004820152602e60248201527f526567436f6f72642e5f72656769737465724f70657261746f723a206269746d60448201526d061702063616e6e6f7420626520360941b6064820152608401610908565b8082166001600160c01b03161561338c5760405162461bcd60e51b815260206004820152604860248201527f526567436f6f72642e5f72656769737465724f70657261746f723a206f70657260448201527f61746f7220616c7265616479207265676973746572656420666f7220736f6d656064820152672071756f72756d7360c01b608482015260a401610908565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b03838116908516179142916133c49190615856565b106134375760405162461bcd60e51b815260206004820152603a60248201527f526567436f6f72642e5f72656769737465724f70657261746f723a206f70657260448201527f61746f722063616e6e6f742072657265676973746572207965740000000000006064820152608401610908565b61344189826141d3565b60016001600160a01b038b1660009081526099602052604090206001015460ff16600281111561347357613473614d55565b14613596576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff1916908360028111156134ce576134ce614d55565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169150639926ee7d90613523908d908990600401615b08565b600060405180830381600087803b15801561353d57600080fd5b505af1158015613551573d6000803e3d6000fd5b5050505061355f89876124f3565b60405189906001600160a01b038c16907fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633fb27952906135e6908d908c908c90600401615b7c565b600060405180830381600087803b15801561360057600080fd5b505af1158015613614573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506325504777915061366a908d908d908d908d90600401615ba1565b6000604051808303816000875af1158015613689573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526136b19190810190615c2d565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169062bff04d9061370e908c908c908c90600401615c90565b6000604051808303816000875af115801561372d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526137559190810190615caa565b84525050509695505050505050565b6020808301516001600160a01b0380821660008181526099909452604090932054919290871614156137eb5760405162461bcd60e51b815260206004820152602a60248201527f526567436f6f72642e5f76616c6964617465436875726e3a2063616e6e6f742060448201526931b43ab9371039b2b63360b11b6064820152608401610908565b8760ff16846000015160ff161461386a5760405162461bcd60e51b815260206004820152603c60248201527f526567436f6f72642e5f76616c6964617465436875726e3a2071756f72756d4e60448201527f756d626572206e6f74207468652073616d65206173207369676e6564000000006064820152608401610908565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635401ed2790604401602060405180830381865afa1580156138db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138ff9190615d43565b905061390b818561454d565b6001600160601b0316866001600160601b0316116139a55760405162461bcd60e51b815260206004820152604b60248201527f526567436f6f72642e5f76616c6964617465436875726e3a20696e636f6d696e60448201527f67206f70657261746f722068617320696e73756666696369656e74207374616b60648201526a32903337b91031b43ab93760a91b608482015260a401610908565b6139af8885614571565b6001600160601b0316816001600160601b0316106120f45760405162461bcd60e51b815260206004820152605160248201527f526567436f6f72642e5f76616c6964617465436875726e3a2063616e6e6f742060448201527f6b69636b206f70657261746f722077697468206d6f7265207468616e206b69636064820152706b424950734f66546f74616c5374616b6560781b608482015260a401610908565b600081815260986020526040812054815b81811015613ae1576001613a748284615939565b613a7e9190615939565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff1681548110613ab157613ab16156d8565b60009182526020909120015463ffffffff1611613acf575050610f04565b80613ad981615704565b915050613a60565b5060405162461bcd60e51b815260206004820152605e60248201527f526567436f6f72642e67657451756f72756d4269746d6170496e64657841744260448201527f6c6f636b4e756d6265723a206e6f206269746d61702075706461746520666f7560648201527f6e6420666f72206f70657261746f7220617420626c6f636b4e756d6265720000608482015260a401610908565b60965460ff1660c08110613bdf5760405162461bcd60e51b815260206004820152602a60248201527f526567436f6f72642e63726561746551756f72756d3a206d61782071756f72756044820152691b5cc81c995858da195960b21b6064820152608401610908565b613bea816001615d60565b6096805460ff191660ff9290921691909117905580613c0981866129c1565b60405160016296b58960e01b031981526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ff694a7790613c5c90849088908890600401615d85565b600060405180830381600087803b158015613c7657600080fd5b505af1158015613c8a573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b158015613cf257600080fd5b505af1158015613d06573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b158015613d6e57600080fd5b505af11580156120f4573d6000803e3d6000fd5b6000546201000090046001600160a01b0316158015613da957506001600160a01b03821615155b613e2b5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610908565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2613e6e8261260e565b5050565b6000805b8215610f0457613e87600184615939565b9092169180613e9581615dfe565b915050613e76565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015613ef657507f000000000000000000000000000000000000000000000000000000000000000046145b15613f2057507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615ea08339815191526003600080516020615ea083398151915286600080516020615ea083398151915288890909089050600061403a827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615ea083398151915261458b565b91959194509092505050565b6000610100825111156140cf5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610908565b81516140dd57506000919050565b600080836000815181106140f3576140f36156d8565b0160200151600160f89190911c81901b92505b84518110156141ca57848181518110614121576141216156d8565b0160200151600160f89190911c1b91508282116141b65760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610908565b918117916141c381615704565b9050614106565b50909392505050565b60008281526098602052604090205480614278576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120614291600184615939565b815481106142a1576142a16156d8565b600091825260209091200180549091504363ffffffff908116911614156142e55780546001600160401b0316600160401b6001600160c01b038516021781556109ef565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b156144ad57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906143d390869086906004016159f6565b602060405180830381865afa1580156143f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144149190615e20565b6001600160e01b0319161461166c5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610908565b826001600160a01b03166144c1838361463a565b6001600160a01b03161461166c5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610908565b6020810151600090612710906145679061ffff1685615e4a565b61294d9190615e79565b6040810151600090612710906145679061ffff1685615e4a565b6000806145966149a7565b61459e6149c5565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280156145df576145e1565bfe5b508261462f5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610908565b505195945050505050565b60008060006146498585614656565b91509150611d84816146c6565b60008082516041141561468d5760208301516040840151606085015160001a61468187828585614881565b945094505050506146bf565b8251604014156146b757602083015160408401516146ac86838361496e565b9350935050506146bf565b506000905060025b9250929050565b60008160048111156146da576146da614d55565b14156146e35750565b60018160048111156146f7576146f7614d55565b14156147455760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610908565b600281600481111561475957614759614d55565b14156147a75760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610908565b60038160048111156147bb576147bb614d55565b14156148145760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610908565b600481600481111561482857614828614d55565b1415610c755760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610908565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156148b85750600090506003614965565b8460ff16601b141580156148d057508460ff16601c14155b156148e15750600090506004614965565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614935573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661495e57600060019250925050614965565b9150600090505b94509492505050565b6000806001600160ff1b0383168161498b60ff86901c601b615856565b905061499987828885614881565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f8401126149f557600080fd5b5081356001600160401b03811115614a0c57600080fd5b6020830191508360208260051b85010111156146bf57600080fd5b60008060208385031215614a3a57600080fd5b82356001600160401b03811115614a5057600080fd5b614a5c858286016149e3565b90969095509350505050565b600060208284031215614a7a57600080fd5b5035919050565b63ffffffff81168114610c7557600080fd5b600080600060608486031215614aa857600080fd5b833592506020840135614aba81614a81565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715614b0357614b03614acb565b60405290565b604080519081016001600160401b0381118282101715614b0357614b03614acb565b604051601f8201601f191681016001600160401b0381118282101715614b5357614b53614acb565b604052919050565b60006001600160401b03831115614b7457614b74614acb565b614b87601f8401601f1916602001614b2b565b9050828152838383011115614b9b57600080fd5b828260208301376000602084830101529392505050565b600060208284031215614bc457600080fd5b81356001600160401b03811115614bda57600080fd5b8201601f81018413614beb57600080fd5b614bfa84823560208401614b5b565b949350505050565b6001600160a01b0381168114610c7557600080fd5b8035614c2281614c02565b919050565b600060208284031215614c3957600080fd5b813561294d81614c02565b60008060408385031215614c5757600080fd5b50508035926020909101359150565b803560ff81168114614c2257600080fd5b600060208284031215614c8957600080fd5b61294d82614c66565b815181526020808301519082015260408101610f04565b60008083601f840112614cbb57600080fd5b5081356001600160401b03811115614cd257600080fd5b6020830191508360208285010111156146bf57600080fd5b60008060008060408587031215614d0057600080fd5b84356001600160401b0380821115614d1757600080fd5b614d23888389016149e3565b90965094506020870135915080821115614d3c57600080fd5b50614d4987828801614ca9565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b60038110614d8957634e487b7160e01b600052602160045260246000fd5b9052565b815181526020808301516040830191614da890840182614d6b565b5092915050565b803561ffff81168114614c2257600080fd5b600060608284031215614dd357600080fd5b614ddb614ae1565b90508135614de881614a81565b8152614df660208301614daf565b6020820152614e0760408301614daf565b604082015292915050565b60008060808385031215614e2557600080fd5b614e2e83614c66565b9150614e3d8460208501614dc1565b90509250929050565b600080600060408486031215614e5b57600080fd5b8335614e6681614c02565b925060208401356001600160401b03811115614e8157600080fd5b614e8d86828701614ca9565b9497909650939450505050565b60006001600160401b03821115614eb357614eb3614acb565b5060051b60200190565b600060408284031215614ecf57600080fd5b614ed7614b09565b9050614ee282614c66565b81526020820135614ef281614c02565b602082015292915050565b600080600080600060a08688031215614f1557600080fd5b8535614f2081614c02565b945060208681013594506040808801356001600160401b03811115614f4457600080fd5b8801601f81018a13614f5557600080fd5b8035614f68614f6382614e9a565b614b2b565b81815260069190911b8201840190848101908c831115614f8757600080fd5b928501925b82841015614fad57614f9e8d85614ebd565b82529284019290850190614f8c565b999c989b5098996060810135995060800135979650505050505050565b60006101008284031215614fdd57600080fd5b50919050565b60008083601f840112614ff557600080fd5b5081356001600160401b0381111561500c57600080fd5b6020830191508360208260061b85010111156146bf57600080fd5b60006060828403121561503957600080fd5b615041614ae1565b905081356001600160401b0381111561505957600080fd5b8201601f8101841361506a57600080fd5b61507984823560208401614b5b565b825250602082013560208201526040820135604082015292915050565b60008060008060008060008060006101a08a8c0312156150b557600080fd5b89356001600160401b03808211156150cc57600080fd5b6150d88d838e01614ca9565b909b50995060208c01359150808211156150f157600080fd5b6150fd8d838e01614ca9565b90995097508791506151128d60408e01614fca565b96506101408c013591508082111561512957600080fd5b6151358d838e01614fe3565b90965094506101608c013591508082111561514f57600080fd5b61515b8d838e01615027565b93506101808c013591508082111561517257600080fd5b5061517f8c828d01615027565b9150509295985092959850929598565b60008060008060008061016087890312156151a957600080fd5b86356001600160401b03808211156151c057600080fd5b6151cc8a838b01614ca9565b909850965060208901359150808211156151e557600080fd5b6151f18a838b01614ca9565b90965094508491506152068a60408b01614fca565b935061014089013591508082111561521d57600080fd5b5061522a89828a01615027565b9150509295509295509295565b6000806040838503121561524a57600080fd5b823561525581614a81565b91506020838101356001600160401b0381111561527157600080fd5b8401601f8101861361528257600080fd5b8035615290614f6382614e9a565b81815260059190911b820183019083810190888311156152af57600080fd5b928401925b828410156152cd578335825292840192908401906152b4565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561531a57835163ffffffff16835292840192918401916001016152f8565b50909695505050505050565b6000806020838503121561533957600080fd5b82356001600160401b0381111561534f57600080fd5b614a5c85828601614ca9565b6001600160601b0381168114610c7557600080fd5b600082601f83011261538157600080fd5b81356020615391614f6383614e9a565b82815260069290921b840181019181810190868411156153b057600080fd5b8286015b8481101561540157604081890312156153cd5760008081fd5b6153d5614b09565b81356153e081614c02565b8152818501356153ef8161535b565b818601528352918301916040016153b4565b509695505050505050565b600080600060a0848603121561542157600080fd5b61542b8585614dc1565b9250606084013561543b8161535b565b915060808401356001600160401b0381111561545657600080fd5b61546286828701615370565b9150509250925092565b600082601f83011261547d57600080fd5b8135602061548d614f6383614e9a565b828152606092830285018201928282019190878511156154ac57600080fd5b8387015b858110156154cf576154c28982614dc1565b84529284019281016154b0565b5090979650505050505050565b600082601f8301126154ed57600080fd5b813560206154fd614f6383614e9a565b82815260059290921b8401810191818101908684111561551c57600080fd5b8286015b848110156154015780356155338161535b565b8352918301918301615520565b600082601f83011261555157600080fd5b81356020615561614f6383614e9a565b82815260059290921b8401810191818101908684111561558057600080fd5b8286015b848110156154015780356001600160401b038111156155a35760008081fd5b6155b18986838b0101615370565b845250918301918301615584565b600080600080600080600080610100898b0312156155dc57600080fd5b6155e589614c17565b97506155f360208a01614c17565b965061560160408a01614c17565b955061560f60608a01614c17565b94506080890135935060a08901356001600160401b038082111561563257600080fd5b61563e8c838d0161546c565b945060c08b013591508082111561565457600080fd5b6156608c838d016154dc565b935060e08b013591508082111561567657600080fd5b506156838b828c01615540565b9150509295985092959890939650565b60208101610f048284614d6b565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415615718576157186156ee565b5060010190565b60006020828403121561573157600080fd5b815161294d81614c02565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561579857600080fd5b8151801515811461294d57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e1984360301811261580757600080fd5b8301803591506001600160401b0382111561582157600080fd5b6020019150600581901b36038213156146bf57600080fd5b60006020828403121561584b57600080fd5b815161294d81614a81565b60008219821115615869576158696156ee565b500190565b6000808585111561587e57600080fd5b8386111561588b57600080fd5b5050820193919092039150565b600060c08201888352602060018060a01b03808a16828601526040898187015260c0606087015283895180865260e088019150848b01955060005b818110156158fd578651805160ff16845286015185168684015295850195918301916001016158d3565b505060808701989098525050505060a09091019190915250949350505050565b60006040828403121561592f57600080fd5b61294d8383614ebd565b60008282101561594b5761594b6156ee565b500390565b6000815180845260005b818110156159765760208185018101518683018201520161595a565b81811115615988576000602083870101525b50601f01601f19169290920160200192915050565b60018060a01b03841681528260208201526060604082015260006159c46060830184615950565b95945050505050565b6000602082840312156159df57600080fd5b81516001600160c01b038116811461294d57600080fd5b828152604060208201526000614bfa6040830184615950565b60208152600061294d6020830184615950565b634e487b7160e01b600052601260045260246000fd5b600082615a4757615a47615a22565b500690565b6001600160a01b0383168152604060208201819052600090614bfa90830184615950565b600060208284031215615a8257600080fd5b5051919050565b6001600160a01b03841681526101608101615ab1602083018580358252602090810135910152565b615acb606083016040860180358252602090810135910152565b60406080850160a084013760e0820160008152604060c0860182375060006101208301908152835190526020909201516101409091015292915050565b60018060a01b0383168152604060208201526000825160606040840152615b3260a0840182615950565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906159c49083018486615b53565b60018060a01b0385168152836020820152606060408201526000611805606083018486615b53565b600082601f830112615bda57600080fd5b81516020615bea614f6383614e9a565b82815260059290921b84018101918181019086841115615c0957600080fd5b8286015b84811015615401578051615c208161535b565b8352918301918301615c0d565b60008060408385031215615c4057600080fd5b82516001600160401b0380821115615c5757600080fd5b615c6386838701615bc9565b93506020850151915080821115615c7957600080fd5b50615c8685828601615bc9565b9150509250929050565b8381526040602082015260006159c4604083018486615b53565b60006020808385031215615cbd57600080fd5b82516001600160401b03811115615cd357600080fd5b8301601f81018513615ce457600080fd5b8051615cf2614f6382614e9a565b81815260059190911b82018301908381019087831115615d1157600080fd5b928401925b82841015615d38578351615d2981614a81565b82529284019290840190615d16565b979650505050505050565b600060208284031215615d5557600080fd5b815161294d8161535b565b600060ff821660ff84168060ff03821115615d7d57615d7d6156ee565b019392505050565b60006060820160ff8616835260206001600160601b03808716828601526040606081870152838751808652608088019150848901955060005b81811015615dee57865180516001600160a01b031684528601518516868401529585019591830191600101615dbe565b50909a9950505050505050505050565b600061ffff80831681811415615e1657615e166156ee565b6001019392505050565b600060208284031215615e3257600080fd5b81516001600160e01b03198116811461294d57600080fd5b60006001600160601b0380831681851681830481118215151615615e7057615e706156ee565b02949350505050565b60006001600160601b0380841680615e9357615e93615a22565b9216919091049291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47526567436f6f72642e7570646174654f70657261746f7273466f7251756f7275a2646970667358221220efd09c4d667a6aa04549c06520972908d8afa21e9a1ed8d6c1c03a0c947434fb64736f6c634300080c0033", } // ContractRegistryCoordinatorABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/SocketRegistry/binding.go b/contracts/bindings/SocketRegistry/binding.go index 0183c41d95..2dbe3fab9d 100644 --- a/contracts/bindings/SocketRegistry/binding.go +++ b/contracts/bindings/SocketRegistry/binding.go @@ -32,7 +32,7 @@ var ( // ContractSocketRegistryMetaData contains all meta data concerning the ContractSocketRegistry contract. var ContractSocketRegistryMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getOperatorSocket\",\"inputs\":[{\"name\":\"_operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"migrateOperatorSockets\",\"inputs\":[{\"name\":\"_operatorIds\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"_sockets\",\"type\":\"string[]\",\"internalType\":\"string[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"operatorIdToSocket\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registryCoordinator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setOperatorSocket\",\"inputs\":[{\"name\":\"_operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"_socket\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"}]", - Bin: "0x60a060405234801561001057600080fd5b5060405161099738038061099783398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516108ff61009860003960008181609f015281816101a301526103f501526108ff6000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806310bea0d71461005c578063639b9957146100855780636d14a9871461009a578063af65fdfc146100d9578063f043367e146100ec575b600080fd5b61006f61006a366004610550565b6100ff565b60405161007c9190610569565b60405180910390f35b610098610093366004610729565b6101a1565b005b6100c17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161007c565b61006f6100e7366004610550565b610350565b6100986100fa3660046107e2565b6103ea565b600081815260208190526040902080546060919061011c9061081f565b80601f01602080910402602001604051908101604052809291908181526020018280546101489061081f565b80156101955780601f1061016a57610100808354040283529160200191610195565b820191906000526020600020905b81548152906001019060200180831161017857829003601f168201915b50505050509050919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610223919061085a565b6001600160a01b0316336001600160a01b0316146102d45760405162461bcd60e51b815260206004820152605760248201527f536f636b657452656769737472792e6f6e6c79436f6f7264696e61746f724f7760448201527f6e65723a2063616c6c6572206973206e6f7420746865206f776e6572206f662060648201527f746865207265676973747279436f6f7264696e61746f72000000000000000000608482015260a4015b60405180910390fd5b60005b825181101561034b578181815181106102f2576102f261088a565b602002602001015160008085848151811061030f5761030f61088a565b6020026020010151815260200190815260200160002090805190602001906103389291906104b7565b5080610343816108a0565b9150506102d7565b505050565b600060208190529081526040902080546103699061081f565b80601f01602080910402602001604051908101604052809291908181526020018280546103959061081f565b80156103e25780601f106103b7576101008083540402835291602001916103e2565b820191906000526020600020905b8154815290600101906020018083116103c557829003601f168201915b505050505081565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461049e5760405162461bcd60e51b815260206004820152604d60248201527f536f636b657452656769737472792e6f6e6c795265676973747279436f6f726460448201527f696e61746f723a2063616c6c6572206973206e6f74207468652052656769737460648201526c393ca1b7b7b93234b730ba37b960991b608482015260a4016102cb565b600082815260208181526040909120825161034b928401905b8280546104c39061081f565b90600052602060002090601f0160209004810192826104e5576000855561052b565b82601f106104fe57805160ff191683800117855561052b565b8280016001018555821561052b579182015b8281111561052b578251825591602001919060010190610510565b5061053792915061053b565b5090565b5b80821115610537576000815560010161053c565b60006020828403121561056257600080fd5b5035919050565b600060208083528351808285015260005b818110156105965785810183015185820160400152820161057a565b818111156105a8576000604083870101525b50601f01601f1916929092016040019392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156105fd576105fd6105be565b604052919050565b600067ffffffffffffffff82111561061f5761061f6105be565b5060051b60200190565b600082601f83011261063a57600080fd5b813567ffffffffffffffff811115610654576106546105be565b610667601f8201601f19166020016105d4565b81815284602083860101111561067c57600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f8301126106aa57600080fd5b813560206106bf6106ba83610605565b6105d4565b82815260059290921b840181019181810190868411156106de57600080fd5b8286015b8481101561071e57803567ffffffffffffffff8111156107025760008081fd5b6107108986838b0101610629565b8452509183019183016106e2565b509695505050505050565b6000806040838503121561073c57600080fd5b823567ffffffffffffffff8082111561075457600080fd5b818501915085601f83011261076857600080fd5b813560206107786106ba83610605565b82815260059290921b8401810191818101908984111561079757600080fd5b948201945b838610156107b55785358252948201949082019061079c565b965050860135925050808211156107cb57600080fd5b506107d885828601610699565b9150509250929050565b600080604083850312156107f557600080fd5b82359150602083013567ffffffffffffffff81111561081357600080fd5b6107d885828601610629565b600181811c9082168061083357607f821691505b6020821081141561085457634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561086c57600080fd5b81516001600160a01b038116811461088357600080fd5b9392505050565b634e487b7160e01b600052603260045260246000fd5b60006000198214156108c257634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220e893cad91c4a5486104415b7ee09c65fdf8b97a68219a30bf01d9d8c9ca5d9c964736f6c634300080c0033", + Bin: "0x60a060405234801561001057600080fd5b5060405161099738038061099783398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516108ff61009860003960008181609f015281816101a301526103f501526108ff6000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806310bea0d71461005c578063639b9957146100855780636d14a9871461009a578063af65fdfc146100d9578063f043367e146100ec575b600080fd5b61006f61006a366004610550565b6100ff565b60405161007c9190610569565b60405180910390f35b610098610093366004610729565b6101a1565b005b6100c17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161007c565b61006f6100e7366004610550565b610350565b6100986100fa3660046107e2565b6103ea565b600081815260208190526040902080546060919061011c9061081f565b80601f01602080910402602001604051908101604052809291908181526020018280546101489061081f565b80156101955780601f1061016a57610100808354040283529160200191610195565b820191906000526020600020905b81548152906001019060200180831161017857829003601f168201915b50505050509050919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610223919061085a565b6001600160a01b0316336001600160a01b0316146102d45760405162461bcd60e51b815260206004820152605760248201527f536f636b657452656769737472792e6f6e6c79436f6f7264696e61746f724f7760448201527f6e65723a2063616c6c6572206973206e6f7420746865206f776e6572206f662060648201527f746865207265676973747279436f6f7264696e61746f72000000000000000000608482015260a4015b60405180910390fd5b60005b825181101561034b578181815181106102f2576102f261088a565b602002602001015160008085848151811061030f5761030f61088a565b6020026020010151815260200190815260200160002090805190602001906103389291906104b7565b5080610343816108a0565b9150506102d7565b505050565b600060208190529081526040902080546103699061081f565b80601f01602080910402602001604051908101604052809291908181526020018280546103959061081f565b80156103e25780601f106103b7576101008083540402835291602001916103e2565b820191906000526020600020905b8154815290600101906020018083116103c557829003601f168201915b505050505081565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461049e5760405162461bcd60e51b815260206004820152604d60248201527f536f636b657452656769737472792e6f6e6c795265676973747279436f6f726460448201527f696e61746f723a2063616c6c6572206973206e6f74207468652052656769737460648201526c393ca1b7b7b93234b730ba37b960991b608482015260a4016102cb565b600082815260208181526040909120825161034b928401905b8280546104c39061081f565b90600052602060002090601f0160209004810192826104e5576000855561052b565b82601f106104fe57805160ff191683800117855561052b565b8280016001018555821561052b579182015b8281111561052b578251825591602001919060010190610510565b5061053792915061053b565b5090565b5b80821115610537576000815560010161053c565b60006020828403121561056257600080fd5b5035919050565b600060208083528351808285015260005b818110156105965785810183015185820160400152820161057a565b818111156105a8576000604083870101525b50601f01601f1916929092016040019392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156105fd576105fd6105be565b604052919050565b600067ffffffffffffffff82111561061f5761061f6105be565b5060051b60200190565b600082601f83011261063a57600080fd5b813567ffffffffffffffff811115610654576106546105be565b610667601f8201601f19166020016105d4565b81815284602083860101111561067c57600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f8301126106aa57600080fd5b813560206106bf6106ba83610605565b6105d4565b82815260059290921b840181019181810190868411156106de57600080fd5b8286015b8481101561071e57803567ffffffffffffffff8111156107025760008081fd5b6107108986838b0101610629565b8452509183019183016106e2565b509695505050505050565b6000806040838503121561073c57600080fd5b823567ffffffffffffffff8082111561075457600080fd5b818501915085601f83011261076857600080fd5b813560206107786106ba83610605565b82815260059290921b8401810191818101908984111561079757600080fd5b948201945b838610156107b55785358252948201949082019061079c565b965050860135925050808211156107cb57600080fd5b506107d885828601610699565b9150509250929050565b600080604083850312156107f557600080fd5b82359150602083013567ffffffffffffffff81111561081357600080fd5b6107d885828601610629565b600181811c9082168061083357607f821691505b6020821081141561085457634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561086c57600080fd5b81516001600160a01b038116811461088357600080fd5b9392505050565b634e487b7160e01b600052603260045260246000fd5b60006000198214156108c257634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212204c1c3ba1781cac10da84e0df5c6394a91d0222be46f86ff7a7f88fdf1a0d9ae064736f6c634300080c0033", } // ContractSocketRegistryABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/StakeRegistry/binding.go b/contracts/bindings/StakeRegistry/binding.go index 0b6c7470a6..eb5c5a28db 100644 --- a/contracts/bindings/StakeRegistry/binding.go +++ b/contracts/bindings/StakeRegistry/binding.go @@ -45,7 +45,7 @@ type IStakeRegistryStrategyParams struct { // ContractStakeRegistryMetaData contains all meta data concerning the ContractStakeRegistry contract. var ContractStakeRegistryMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"_delegationManager\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"MAX_WEIGHING_FUNCTION_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"WEIGHTING_DIVISOR\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"addStrategies\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"_strategyParams\",\"type\":\"tuple[]\",\"internalType\":\"structIStakeRegistry.StrategyParams[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deregisterOperator\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getCurrentStake\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCurrentTotalStake\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getLatestStakeUpdate\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIStakeRegistry.StakeUpdate\",\"components\":[{\"name\":\"updateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"stake\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStakeAtBlockNumber\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStakeAtBlockNumberAndIndex\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStakeHistory\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIStakeRegistry.StakeUpdate[]\",\"components\":[{\"name\":\"updateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"stake\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStakeHistoryLength\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStakeUpdateAtIndex\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIStakeRegistry.StakeUpdate\",\"components\":[{\"name\":\"updateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"stake\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStakeUpdateIndexAtBlockNumber\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTotalStakeAtBlockNumberFromIndex\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTotalStakeHistoryLength\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTotalStakeIndicesAtBlockNumber\",\"inputs\":[{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTotalStakeUpdateAtIndex\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIStakeRegistry.StakeUpdate\",\"components\":[{\"name\":\"updateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"stake\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initializeQuorum\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"minimumStake\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"_strategyParams\",\"type\":\"tuple[]\",\"internalType\":\"structIStakeRegistry.StrategyParams[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"minimumStakeForQuorum\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"modifyStrategyParams\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"strategyIndices\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"newMultipliers\",\"type\":\"uint96[]\",\"internalType\":\"uint96[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint96[]\",\"internalType\":\"uint96[]\"},{\"name\":\"\",\"type\":\"uint96[]\",\"internalType\":\"uint96[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registryCoordinator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"removeStrategies\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"indicesToRemove\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setMinimumStakeForQuorum\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"minimumStake\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"strategiesPerQuorum\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyParams\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyParamsByIndex\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIStakeRegistry.StrategyParams\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyParamsLength\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"updateOperatorStake\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint192\",\"internalType\":\"uint192\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"weightOfOperatorForQuorum\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"MinimumStakeForQuorumUpdated\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"uint8\"},{\"name\":\"minimumStake\",\"type\":\"uint96\",\"indexed\":false,\"internalType\":\"uint96\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorStakeUpdate\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"},{\"name\":\"stake\",\"type\":\"uint96\",\"indexed\":false,\"internalType\":\"uint96\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumCreated\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyAddedToQuorum\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"uint8\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyMultiplierUpdated\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"uint8\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyRemovedFromQuorum\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"uint8\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false}]", - Bin: "0x60c06040523480156200001157600080fd5b50604051620033c8380380620033c8833981016040819052620000349162000065565b6001600160a01b0391821660a05216608052620000a4565b6001600160a01b03811681146200006257600080fd5b50565b600080604083850312156200007957600080fd5b825162000086816200004c565b602084015190925062000099816200004c565b809150509250929050565b60805160a0516132e9620000df6000396000818161037a01528181611a470152611b7901526000818161052901526118a801526132e96000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612803565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e36600461281e565b610597565b604051610217929190612848565b61025461024f36600461287f565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a3660046128fa565b610602565b005b61029461028f3660046129bb565b610860565b604051610217929190612a5a565b6102b56102b0366004612a7f565b610a78565b6040516102179190612aab565b61020d6102d0366004612803565b60ff1660009081526003602052604090205490565b61020d6102f3366004612a7f565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612a7f565b610b17565b61020d670de0b6b3a764000081565b61027f610345366004612bb4565b610b30565b61035d6103583660046129bb565b610e78565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc366004612c70565b610f17565b6040516102179190612cc2565b61039c6103fc36600461281e565b611157565b61041461040f366004612d00565b61118f565b6040516102179190612d33565b61043461042f36600461281e565b611227565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f36600461281e565b6112a1565b61027f610482366004612d7f565b611330565b61027f610495366004612da9565b611351565b6102546104a8366004612803565b6000602081905290815260409020546001600160601b031681565b61027f6104d1366004612e75565b6113c3565b6102546104e4366004612ec2565b6113df565b6102546104f7366004612803565b61145d565b61050f61050a366004612efe565b6114b0565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b610254610559366004612f3a565b6114c5565b61041461056c366004612a7f565b61155a565b61025461057f366004612efe565b61163f565b61027f610592366004612f7c565b6116a0565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b6000826105ec816117cb565b60006105f88585611847565b5095945050505050565b61060a611a45565b84610614816117cb565b838061068f576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f766964656460648201526084015b60405180910390fd5b8281146107045760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610686565b60ff87166000908152600360205260408120905b828110156108555785858281811061073257610732612fd9565b90506020020160208101906107479190612fef565b8289898481811061075a5761075a612fd9565b905060200201358154811061077157610771612fd9565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106107da576107da612fd9565b90506020020135815481106107f1576107f1612fd9565b6000918252602090912001546001600160a01b031688888581811061081857610818612fd9565b905060200201602081019061082d9190612fef565b60405161083b929190612848565b60405180910390a28061084d81613020565b915050610718565b505050505050505050565b60608061086b611b6e565b6000836001600160401b0381111561088557610885612b23565b6040519080825280602002602001820160405280156108ae578160200160208202803683370190505b5090506000846001600160401b038111156108cb576108cb612b23565b6040519080825280602002602001820160405280156108f4578160200160208202803683370190505b50905060005b85811015610a6a57600087878381811061091657610916612fd9565b919091013560f81c915061092b9050816117cb565b600080610938838d611847565b91509150806109d55760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610686565b60006109e28c8585611c21565b9050828786815181106109f7576109f7612fd9565b60200260200101906001600160601b031690816001600160601b031681525050610a218482611ea1565b868681518110610a3357610a33612fd9565b60200260200101906001600160601b031690816001600160601b031681525050505050508080610a6290613020565b9150506108fa565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610b0a576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610ab1565b5050505090505b92915050565b600080610b24848461155a565b60400151949350505050565b610b38611a45565b81610b42816117cb565b815180610bb75760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610686565b60ff841660009081526003602090815260408083206004909252822090915b83811015610e6f578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610c1657610c16612fd9565b602002602001015181548110610c2e57610c2e612fd9565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610c8c57610c8c612fd9565b602002602001015181548110610ca457610ca4612fd9565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610ce49060019061303b565b81548110610cf457610cf4612fd9565b9060005260206000200183878381518110610d1157610d11612fd9565b602002602001015181548110610d2957610d29612fd9565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610d7c57610d7c613052565b60008281526020812082016000199081019190915501905581548290610da49060019061303b565b81548110610db457610db4612fd9565b9060005260206000200160009054906101000a90046001600160a01b031682878381518110610de557610de5612fd9565b602002602001015181548110610dfd57610dfd612fd9565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480610e3b57610e3b613052565b600082815260209020810160001990810180546001600160a01b031916905501905580610e6781613020565b915050610bd6565b50505050505050565b6000610e82611b6e565b6000805b838110156105f8576000858583818110610ea257610ea2612fd9565b919091013560f81c9150610eb79050816117cb565b600080610ec4838b611847565b9150915080610ee65760009150600160ff84161b6001600160c01b0386161794505b6000610ef38a8585611c21565b9050610eff8482611ea1565b50505050508080610f0f90613020565b915050610e86565b60606000826001600160401b03811115610f3357610f33612b23565b604051908082528060200260200182016040528015610f5c578160200160208202803683370190505b50905060005b8381101561114c576000858583818110610f7e57610f7e612fd9565b919091013560f81c9150610f939050816117cb565b60ff81166000908152600160205260408120805463ffffffff8a169290610fbc57610fbc612fd9565b60009182526020909120015463ffffffff1611156110685760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610686565b60ff8116600090815260016020526040812054905b818110156111365760ff8316600090815260016020819052604090912063ffffffff8b16916110ac848661303b565b6110b6919061303b565b815481106110c6576110c6612fd9565b60009182526020909120015463ffffffff16116111245760016110e9828461303b565b6110f3919061303b565b85858151811061110557611105612fd9565b602002602001019063ffffffff16908163ffffffff1681525050611136565b8061112e81613020565b91505061107d565b505050808061114490613020565b915050610f62565b5090505b9392505050565b6004602052816000526040600020818154811061117357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106111d4576111d4612fd9565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff8316600090815260036020526040902080548390811061125f5761125f612fd9565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260019052919091208054839081106112de576112de612fd9565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b611338611a45565b81611342816117cb565b61134c838361201b565b505050565b611359611b6e565b60005b818110156113bd57600083838381811061137857611378612fd9565b919091013560f81c915061138d9050816117cb565b600061139b86836000611c21565b90506113a78282611ea1565b50505080806113b590613020565b91505061135c565b50505050565b6113cb611a45565b816113d5816117cb565b61134c8383612084565b60ff8316600090815260016020526040812080548291908490811061140657611406612fd9565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610b2481856124c7565b60ff8116600090815260016020819052604082208054909161147e9161303b565b8154811061148e5761148e612fd9565b600091825260209091200154600160401b90046001600160601b031692915050565b60006114bd848484612641565b949350505050565b600082815260026020908152604080832060ff8816845290915281208054829190849081106114f6576114f6612fd9565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b9093049290921690820152905061154d81866124c7565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff871683528152848220548551938401865282845290830182905293820152909190816115b3579150610b119050565b600085815260026020908152604080832060ff8816845290915290206115da60018461303b565b815481106115ea576115ea612fd9565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610b11915050565b600083815260026020908152604080832060ff861684529091528120611666858585612641565b63ffffffff168154811061167c5761167c612fd9565b600091825260209091200154600160401b90046001600160601b0316949350505050565b6116a8611b6e565b60ff8316600090815260016020526040902054156117265760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610686565b6117308382612084565b61173a838361201b565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b60ff81166000908152600160205260409020546118445760405162461bcd60e51b815260206004820152603160248201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726044820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b6064820152608401610686565b50565b6000806000806118668660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926390041347926118db928c9201613068565b600060405180830381865afa1580156118f8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261192091908101906130c7565b905060005b83811015611a115760ff8916600090815260036020526040902080548290811061195157611951612fd9565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b031690820152835190945083908390811061199f5761199f612fd9565b602002602001015111156119ff57670de0b6b3a764000083602001516001600160601b03168383815181106119d6576119d6612fd9565b60200260200101516119e89190613157565b6119f29190613176565b6119fc9086613198565b94505b80611a0981613020565b915050611925565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac791906131c3565b6001600160a01b0316336001600160a01b031614611b6c5760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60448201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746064820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608482015260a401610686565b565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611b6c5760405162461bcd60e51b815260206004820152604c60248201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960448201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260648201526b3ca1b7b7b93234b730ba37b960a11b608482015260a401610686565b600083815260026020908152604080832060ff86168452909152812054819080611ce557600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055611e47565b600086815260026020908152604080832060ff891684529091528120611d0c60018461303b565b81548110611d1c57611d1c612fd9565b600091825260209091200180546001600160601b03600160401b909104811694509091508516831415611d555760009350505050611150565b80544363ffffffff90811691161415611d8f578054600160401b600160a01b031916600160401b6001600160601b03871602178155611e45565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a2611e9782856127a7565b9695505050505050565b60ff821660009081526001602081905260408220805491839190611ec5908461303b565b81548110611ed557611ed5612fd9565b9060005260206000200190508360001415611f045754600160401b90046001600160601b03169150610b119050565b8054600090611f2390600160401b90046001600160601b0316866127bf565b82549091504363ffffffff90811691161415611f60578154600160401b600160a01b031916600160401b6001600160601b03831602178255612012565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116120e95760405162461bcd60e51b8152602060048201526038602482015260008051602061329483398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610686565b805160ff83166000908152600360209081526040909120549061210c83836131e0565b111561217c5760405162461bcd60e51b8152602060048201526045602482015260008051602061329483398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610686565b60005b828110156124c05760005b61219482846131e0565b811015612275578482815181106121ad576121ad612fd9565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106121ec576121ec612fd9565b6000918252602090912001546001600160a01b031614156122635760405162461bcd60e51b815260206004820152603d602482015260008051602061329483398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610686565b8061226d81613020565b91505061218a565b50600084828151811061228a5761228a612fd9565b6020026020010151602001516001600160601b03161161230f5760405162461bcd60e51b8152602060048201526046602482015260008051602061329483398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610686565b60ff85166000908152600360205260409020845185908390811061233557612335612fd9565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061239a5761239a612fd9565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f54049086908490811061241157612411612fd9565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061246e5761246e612fd9565b60200260200101516000015186848151811061248c5761248c612fd9565b6020026020010151602001516040516124a6929190612848565b60405180910390a2806124b881613020565b91505061217f565b5050505050565b816000015163ffffffff168163ffffffff16101561256c5760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610686565b602082015163ffffffff1615806125925750816020015163ffffffff168163ffffffff16105b61263d5760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610686565b5050565b600083815260026020908152604080832060ff86168452909152812054805b80156126e257600086815260026020908152604080832060ff89168452909152902063ffffffff85169061269560018461303b565b815481106126a5576126a5612fd9565b60009182526020909120015463ffffffff16116126d0576126c760018261303b565b92505050611150565b806126da816131f8565b915050612660565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610686565b60006111506001600160601b0380851690841661320f565b6000808212156127e3576127d28261324e565b6127dc908461326b565b9050610b11565b6127dc8284613198565b803560ff811681146127fe57600080fd5b919050565b60006020828403121561281557600080fd5b611150826127ed565b6000806040838503121561283157600080fd5b61283a836127ed565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b038116811461184457600080fd5b6000806040838503121561289257600080fd5b61289b836127ed565b915060208301356128ab8161286a565b809150509250929050565b60008083601f8401126128c857600080fd5b5081356001600160401b038111156128df57600080fd5b6020830191508360208260051b8501011115611a3e57600080fd5b60008060008060006060868803121561291257600080fd5b61291b866127ed565b945060208601356001600160401b038082111561293757600080fd5b61294389838a016128b6565b9096509450604088013591508082111561295c57600080fd5b50612969888289016128b6565b969995985093965092949392505050565b60008083601f84011261298c57600080fd5b5081356001600160401b038111156129a357600080fd5b602083019150836020828501011115611a3e57600080fd5b600080600080606085870312156129d157600080fd5b84356129dc8161286a565b93506020850135925060408501356001600160401b038111156129fe57600080fd5b612a0a8782880161297a565b95989497509550505050565b600081518084526020808501945080840160005b83811015612a4f5781516001600160601b031687529582019590820190600101612a2a565b509495945050505050565b604081526000612a6d6040830185612a16565b82810360208401526120128185612a16565b60008060408385031215612a9257600080fd5b82359150612aa2602084016127ed565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612b1757612b0483855163ffffffff808251168352806020830151166020840152506001600160601b0360408201511660408301525050565b9284019260609290920191600101612ac7565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612b5b57612b5b612b23565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612b8957612b89612b23565b604052919050565b60006001600160401b03821115612baa57612baa612b23565b5060051b60200190565b60008060408385031215612bc757600080fd5b612bd0836127ed565b91506020808401356001600160401b03811115612bec57600080fd5b8401601f81018613612bfd57600080fd5b8035612c10612c0b82612b91565b612b61565b81815260059190911b82018301908381019088831115612c2f57600080fd5b928401925b82841015612c4d57833582529284019290840190612c34565b80955050505050509250929050565b803563ffffffff811681146127fe57600080fd5b600080600060408486031215612c8557600080fd5b612c8e84612c5c565b925060208401356001600160401b03811115612ca957600080fd5b612cb58682870161297a565b9497909650939450505050565b6020808252825182820181905260009190848201906040850190845b81811015612b1757835163ffffffff1683529284019291840191600101612cde565b600080600060608486031215612d1557600080fd5b612d1e846127ed565b95602085013595506040909401359392505050565b815163ffffffff9081168252602080840151909116908201526040808301516001600160601b03169082015260608101610b11565b80356001600160601b03811681146127fe57600080fd5b60008060408385031215612d9257600080fd5b612d9b836127ed565b9150612aa260208401612d68565b600080600060408486031215612dbe57600080fd5b8335925060208401356001600160401b03811115612ca957600080fd5b600082601f830112612dec57600080fd5b81356020612dfc612c0b83612b91565b82815260069290921b84018101918181019086841115612e1b57600080fd5b8286015b84811015612e6a5760408189031215612e385760008081fd5b612e40612b39565b8135612e4b8161286a565b8152612e58828601612d68565b81860152835291830191604001612e1f565b509695505050505050565b60008060408385031215612e8857600080fd5b612e91836127ed565b915060208301356001600160401b03811115612eac57600080fd5b612eb885828601612ddb565b9150509250929050565b600080600060608486031215612ed757600080fd5b612ee0846127ed565b9250612eee60208501612c5c565b9150604084013590509250925092565b600080600060608486031215612f1357600080fd5b83359250612f23602085016127ed565b9150612f3160408501612c5c565b90509250925092565b60008060008060808587031215612f5057600080fd5b612f59856127ed565b9350612f6760208601612c5c565b93969395505050506040820135916060013590565b600080600060608486031215612f9157600080fd5b612f9a846127ed565b9250612fa860208501612d68565b915060408401356001600160401b03811115612fc357600080fd5b612fcf86828701612ddb565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561300157600080fd5b61115082612d68565b634e487b7160e01b600052601160045260246000fd5b60006000198214156130345761303461300a565b5060010190565b60008282101561304d5761304d61300a565b500390565b634e487b7160e01b600052603160045260246000fd5b60006040820160018060a01b03808616845260206040818601528286548085526060870191508760005282600020945060005b818110156130b957855485168352600195860195928401920161309b565b509098975050505050505050565b600060208083850312156130da57600080fd5b82516001600160401b038111156130f057600080fd5b8301601f8101851361310157600080fd5b805161310f612c0b82612b91565b81815260059190911b8201830190838101908783111561312e57600080fd5b928401925b8284101561314c57835182529284019290840190613133565b979650505050505050565b60008160001904831182151516156131715761317161300a565b500290565b60008261319357634e487b7160e01b600052601260045260246000fd5b500490565b60006001600160601b038083168185168083038211156131ba576131ba61300a565b01949350505050565b6000602082840312156131d557600080fd5b81516111508161286a565b600082198211156131f3576131f361300a565b500190565b6000816132075761320761300a565b506000190190565b60008083128015600160ff1b85018412161561322d5761322d61300a565b6001600160ff1b03840183138116156132485761324861300a565b50500390565b6000600160ff1b8214156132645761326461300a565b5060000390565b60006001600160601b038381169083168181101561328b5761328b61300a565b03939250505056fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a26469706673582212205521765a2bc9d91cff579da80487eb7d86b051f8ca32322c79a04626193603b864736f6c634300080c0033", + Bin: "0x60c06040523480156200001157600080fd5b50604051620033c8380380620033c8833981016040819052620000349162000065565b6001600160a01b0391821660a05216608052620000a4565b6001600160a01b03811681146200006257600080fd5b50565b600080604083850312156200007957600080fd5b825162000086816200004c565b602084015190925062000099816200004c565b809150509250929050565b60805160a0516132e9620000df6000396000818161037a01528181611a470152611b7901526000818161052901526118a801526132e96000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612803565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e36600461281e565b610597565b604051610217929190612848565b61025461024f36600461287f565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a3660046128fa565b610602565b005b61029461028f3660046129bb565b610860565b604051610217929190612a5a565b6102b56102b0366004612a7f565b610a78565b6040516102179190612aab565b61020d6102d0366004612803565b60ff1660009081526003602052604090205490565b61020d6102f3366004612a7f565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612a7f565b610b17565b61020d670de0b6b3a764000081565b61027f610345366004612bb4565b610b30565b61035d6103583660046129bb565b610e78565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc366004612c70565b610f17565b6040516102179190612cc2565b61039c6103fc36600461281e565b611157565b61041461040f366004612d00565b61118f565b6040516102179190612d33565b61043461042f36600461281e565b611227565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f36600461281e565b6112a1565b61027f610482366004612d7f565b611330565b61027f610495366004612da9565b611351565b6102546104a8366004612803565b6000602081905290815260409020546001600160601b031681565b61027f6104d1366004612e75565b6113c3565b6102546104e4366004612ec2565b6113df565b6102546104f7366004612803565b61145d565b61050f61050a366004612efe565b6114b0565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b610254610559366004612f3a565b6114c5565b61041461056c366004612a7f565b61155a565b61025461057f366004612efe565b61163f565b61027f610592366004612f7c565b6116a0565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b6000826105ec816117cb565b60006105f88585611847565b5095945050505050565b61060a611a45565b84610614816117cb565b838061068f576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f766964656460648201526084015b60405180910390fd5b8281146107045760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610686565b60ff87166000908152600360205260408120905b828110156108555785858281811061073257610732612fd9565b90506020020160208101906107479190612fef565b8289898481811061075a5761075a612fd9565b905060200201358154811061077157610771612fd9565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106107da576107da612fd9565b90506020020135815481106107f1576107f1612fd9565b6000918252602090912001546001600160a01b031688888581811061081857610818612fd9565b905060200201602081019061082d9190612fef565b60405161083b929190612848565b60405180910390a28061084d81613020565b915050610718565b505050505050505050565b60608061086b611b6e565b6000836001600160401b0381111561088557610885612b23565b6040519080825280602002602001820160405280156108ae578160200160208202803683370190505b5090506000846001600160401b038111156108cb576108cb612b23565b6040519080825280602002602001820160405280156108f4578160200160208202803683370190505b50905060005b85811015610a6a57600087878381811061091657610916612fd9565b919091013560f81c915061092b9050816117cb565b600080610938838d611847565b91509150806109d55760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610686565b60006109e28c8585611c21565b9050828786815181106109f7576109f7612fd9565b60200260200101906001600160601b031690816001600160601b031681525050610a218482611ea1565b868681518110610a3357610a33612fd9565b60200260200101906001600160601b031690816001600160601b031681525050505050508080610a6290613020565b9150506108fa565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610b0a576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610ab1565b5050505090505b92915050565b600080610b24848461155a565b60400151949350505050565b610b38611a45565b81610b42816117cb565b815180610bb75760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610686565b60ff841660009081526003602090815260408083206004909252822090915b83811015610e6f578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610c1657610c16612fd9565b602002602001015181548110610c2e57610c2e612fd9565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610c8c57610c8c612fd9565b602002602001015181548110610ca457610ca4612fd9565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610ce49060019061303b565b81548110610cf457610cf4612fd9565b9060005260206000200183878381518110610d1157610d11612fd9565b602002602001015181548110610d2957610d29612fd9565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610d7c57610d7c613052565b60008281526020812082016000199081019190915501905581548290610da49060019061303b565b81548110610db457610db4612fd9565b9060005260206000200160009054906101000a90046001600160a01b031682878381518110610de557610de5612fd9565b602002602001015181548110610dfd57610dfd612fd9565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480610e3b57610e3b613052565b600082815260209020810160001990810180546001600160a01b031916905501905580610e6781613020565b915050610bd6565b50505050505050565b6000610e82611b6e565b6000805b838110156105f8576000858583818110610ea257610ea2612fd9565b919091013560f81c9150610eb79050816117cb565b600080610ec4838b611847565b9150915080610ee65760009150600160ff84161b6001600160c01b0386161794505b6000610ef38a8585611c21565b9050610eff8482611ea1565b50505050508080610f0f90613020565b915050610e86565b60606000826001600160401b03811115610f3357610f33612b23565b604051908082528060200260200182016040528015610f5c578160200160208202803683370190505b50905060005b8381101561114c576000858583818110610f7e57610f7e612fd9565b919091013560f81c9150610f939050816117cb565b60ff81166000908152600160205260408120805463ffffffff8a169290610fbc57610fbc612fd9565b60009182526020909120015463ffffffff1611156110685760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610686565b60ff8116600090815260016020526040812054905b818110156111365760ff8316600090815260016020819052604090912063ffffffff8b16916110ac848661303b565b6110b6919061303b565b815481106110c6576110c6612fd9565b60009182526020909120015463ffffffff16116111245760016110e9828461303b565b6110f3919061303b565b85858151811061110557611105612fd9565b602002602001019063ffffffff16908163ffffffff1681525050611136565b8061112e81613020565b91505061107d565b505050808061114490613020565b915050610f62565b5090505b9392505050565b6004602052816000526040600020818154811061117357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106111d4576111d4612fd9565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff8316600090815260036020526040902080548390811061125f5761125f612fd9565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260019052919091208054839081106112de576112de612fd9565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b611338611a45565b81611342816117cb565b61134c838361201b565b505050565b611359611b6e565b60005b818110156113bd57600083838381811061137857611378612fd9565b919091013560f81c915061138d9050816117cb565b600061139b86836000611c21565b90506113a78282611ea1565b50505080806113b590613020565b91505061135c565b50505050565b6113cb611a45565b816113d5816117cb565b61134c8383612084565b60ff8316600090815260016020526040812080548291908490811061140657611406612fd9565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610b2481856124c7565b60ff8116600090815260016020819052604082208054909161147e9161303b565b8154811061148e5761148e612fd9565b600091825260209091200154600160401b90046001600160601b031692915050565b60006114bd848484612641565b949350505050565b600082815260026020908152604080832060ff8816845290915281208054829190849081106114f6576114f6612fd9565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b9093049290921690820152905061154d81866124c7565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff871683528152848220548551938401865282845290830182905293820152909190816115b3579150610b119050565b600085815260026020908152604080832060ff8816845290915290206115da60018461303b565b815481106115ea576115ea612fd9565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610b11915050565b600083815260026020908152604080832060ff861684529091528120611666858585612641565b63ffffffff168154811061167c5761167c612fd9565b600091825260209091200154600160401b90046001600160601b0316949350505050565b6116a8611b6e565b60ff8316600090815260016020526040902054156117265760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610686565b6117308382612084565b61173a838361201b565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b60ff81166000908152600160205260409020546118445760405162461bcd60e51b815260206004820152603160248201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726044820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b6064820152608401610686565b50565b6000806000806118668660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926390041347926118db928c9201613068565b600060405180830381865afa1580156118f8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261192091908101906130c7565b905060005b83811015611a115760ff8916600090815260036020526040902080548290811061195157611951612fd9565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b031690820152835190945083908390811061199f5761199f612fd9565b602002602001015111156119ff57670de0b6b3a764000083602001516001600160601b03168383815181106119d6576119d6612fd9565b60200260200101516119e89190613157565b6119f29190613176565b6119fc9086613198565b94505b80611a0981613020565b915050611925565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac791906131c3565b6001600160a01b0316336001600160a01b031614611b6c5760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60448201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746064820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608482015260a401610686565b565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611b6c5760405162461bcd60e51b815260206004820152604c60248201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960448201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260648201526b3ca1b7b7b93234b730ba37b960a11b608482015260a401610686565b600083815260026020908152604080832060ff86168452909152812054819080611ce557600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055611e47565b600086815260026020908152604080832060ff891684529091528120611d0c60018461303b565b81548110611d1c57611d1c612fd9565b600091825260209091200180546001600160601b03600160401b909104811694509091508516831415611d555760009350505050611150565b80544363ffffffff90811691161415611d8f578054600160401b600160a01b031916600160401b6001600160601b03871602178155611e45565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a2611e9782856127a7565b9695505050505050565b60ff821660009081526001602081905260408220805491839190611ec5908461303b565b81548110611ed557611ed5612fd9565b9060005260206000200190508360001415611f045754600160401b90046001600160601b03169150610b119050565b8054600090611f2390600160401b90046001600160601b0316866127bf565b82549091504363ffffffff90811691161415611f60578154600160401b600160a01b031916600160401b6001600160601b03831602178255612012565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116120e95760405162461bcd60e51b8152602060048201526038602482015260008051602061329483398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610686565b805160ff83166000908152600360209081526040909120549061210c83836131e0565b111561217c5760405162461bcd60e51b8152602060048201526045602482015260008051602061329483398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610686565b60005b828110156124c05760005b61219482846131e0565b811015612275578482815181106121ad576121ad612fd9565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106121ec576121ec612fd9565b6000918252602090912001546001600160a01b031614156122635760405162461bcd60e51b815260206004820152603d602482015260008051602061329483398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610686565b8061226d81613020565b91505061218a565b50600084828151811061228a5761228a612fd9565b6020026020010151602001516001600160601b03161161230f5760405162461bcd60e51b8152602060048201526046602482015260008051602061329483398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610686565b60ff85166000908152600360205260409020845185908390811061233557612335612fd9565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061239a5761239a612fd9565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f54049086908490811061241157612411612fd9565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061246e5761246e612fd9565b60200260200101516000015186848151811061248c5761248c612fd9565b6020026020010151602001516040516124a6929190612848565b60405180910390a2806124b881613020565b91505061217f565b5050505050565b816000015163ffffffff168163ffffffff16101561256c5760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610686565b602082015163ffffffff1615806125925750816020015163ffffffff168163ffffffff16105b61263d5760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610686565b5050565b600083815260026020908152604080832060ff86168452909152812054805b80156126e257600086815260026020908152604080832060ff89168452909152902063ffffffff85169061269560018461303b565b815481106126a5576126a5612fd9565b60009182526020909120015463ffffffff16116126d0576126c760018261303b565b92505050611150565b806126da816131f8565b915050612660565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610686565b60006111506001600160601b0380851690841661320f565b6000808212156127e3576127d28261324e565b6127dc908461326b565b9050610b11565b6127dc8284613198565b803560ff811681146127fe57600080fd5b919050565b60006020828403121561281557600080fd5b611150826127ed565b6000806040838503121561283157600080fd5b61283a836127ed565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b038116811461184457600080fd5b6000806040838503121561289257600080fd5b61289b836127ed565b915060208301356128ab8161286a565b809150509250929050565b60008083601f8401126128c857600080fd5b5081356001600160401b038111156128df57600080fd5b6020830191508360208260051b8501011115611a3e57600080fd5b60008060008060006060868803121561291257600080fd5b61291b866127ed565b945060208601356001600160401b038082111561293757600080fd5b61294389838a016128b6565b9096509450604088013591508082111561295c57600080fd5b50612969888289016128b6565b969995985093965092949392505050565b60008083601f84011261298c57600080fd5b5081356001600160401b038111156129a357600080fd5b602083019150836020828501011115611a3e57600080fd5b600080600080606085870312156129d157600080fd5b84356129dc8161286a565b93506020850135925060408501356001600160401b038111156129fe57600080fd5b612a0a8782880161297a565b95989497509550505050565b600081518084526020808501945080840160005b83811015612a4f5781516001600160601b031687529582019590820190600101612a2a565b509495945050505050565b604081526000612a6d6040830185612a16565b82810360208401526120128185612a16565b60008060408385031215612a9257600080fd5b82359150612aa2602084016127ed565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612b1757612b0483855163ffffffff808251168352806020830151166020840152506001600160601b0360408201511660408301525050565b9284019260609290920191600101612ac7565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612b5b57612b5b612b23565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612b8957612b89612b23565b604052919050565b60006001600160401b03821115612baa57612baa612b23565b5060051b60200190565b60008060408385031215612bc757600080fd5b612bd0836127ed565b91506020808401356001600160401b03811115612bec57600080fd5b8401601f81018613612bfd57600080fd5b8035612c10612c0b82612b91565b612b61565b81815260059190911b82018301908381019088831115612c2f57600080fd5b928401925b82841015612c4d57833582529284019290840190612c34565b80955050505050509250929050565b803563ffffffff811681146127fe57600080fd5b600080600060408486031215612c8557600080fd5b612c8e84612c5c565b925060208401356001600160401b03811115612ca957600080fd5b612cb58682870161297a565b9497909650939450505050565b6020808252825182820181905260009190848201906040850190845b81811015612b1757835163ffffffff1683529284019291840191600101612cde565b600080600060608486031215612d1557600080fd5b612d1e846127ed565b95602085013595506040909401359392505050565b815163ffffffff9081168252602080840151909116908201526040808301516001600160601b03169082015260608101610b11565b80356001600160601b03811681146127fe57600080fd5b60008060408385031215612d9257600080fd5b612d9b836127ed565b9150612aa260208401612d68565b600080600060408486031215612dbe57600080fd5b8335925060208401356001600160401b03811115612ca957600080fd5b600082601f830112612dec57600080fd5b81356020612dfc612c0b83612b91565b82815260069290921b84018101918181019086841115612e1b57600080fd5b8286015b84811015612e6a5760408189031215612e385760008081fd5b612e40612b39565b8135612e4b8161286a565b8152612e58828601612d68565b81860152835291830191604001612e1f565b509695505050505050565b60008060408385031215612e8857600080fd5b612e91836127ed565b915060208301356001600160401b03811115612eac57600080fd5b612eb885828601612ddb565b9150509250929050565b600080600060608486031215612ed757600080fd5b612ee0846127ed565b9250612eee60208501612c5c565b9150604084013590509250925092565b600080600060608486031215612f1357600080fd5b83359250612f23602085016127ed565b9150612f3160408501612c5c565b90509250925092565b60008060008060808587031215612f5057600080fd5b612f59856127ed565b9350612f6760208601612c5c565b93969395505050506040820135916060013590565b600080600060608486031215612f9157600080fd5b612f9a846127ed565b9250612fa860208501612d68565b915060408401356001600160401b03811115612fc357600080fd5b612fcf86828701612ddb565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561300157600080fd5b61115082612d68565b634e487b7160e01b600052601160045260246000fd5b60006000198214156130345761303461300a565b5060010190565b60008282101561304d5761304d61300a565b500390565b634e487b7160e01b600052603160045260246000fd5b60006040820160018060a01b03808616845260206040818601528286548085526060870191508760005282600020945060005b818110156130b957855485168352600195860195928401920161309b565b509098975050505050505050565b600060208083850312156130da57600080fd5b82516001600160401b038111156130f057600080fd5b8301601f8101851361310157600080fd5b805161310f612c0b82612b91565b81815260059190911b8201830190838101908783111561312e57600080fd5b928401925b8284101561314c57835182529284019290840190613133565b979650505050505050565b60008160001904831182151516156131715761317161300a565b500290565b60008261319357634e487b7160e01b600052601260045260246000fd5b500490565b60006001600160601b038083168185168083038211156131ba576131ba61300a565b01949350505050565b6000602082840312156131d557600080fd5b81516111508161286a565b600082198211156131f3576131f361300a565b500190565b6000816132075761320761300a565b506000190190565b60008083128015600160ff1b85018412161561322d5761322d61300a565b6001600160ff1b03840183138116156132485761324861300a565b50500390565b6000600160ff1b8214156132645761326461300a565b5060000390565b60006001600160601b038381169083168181101561328b5761328b61300a565b03939250505056fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a26469706673582212207c42944bb8a5261b544798f2555a3ec343311eede2769073dc6e513f0dc1a66664736f6c634300080c0033", } // ContractStakeRegistryABI is the input ABI used to generate the binding from. diff --git a/contracts/compile.sh b/contracts/compile.sh index f6db2e0b0e..30abedcd49 100755 --- a/contracts/compile.sh +++ b/contracts/compile.sh @@ -21,7 +21,26 @@ function create_binding { forge clean forge build -contracts="PaymentVault SocketRegistry AVSDirectory DelegationManager BitmapUtils OperatorStateRetriever RegistryCoordinator BLSApkRegistry IndexRegistry StakeRegistry BN254 EigenDAServiceManager IEigenDAServiceManager MockRollup EjectionManager EigenDABlobVerifier EigenDAThresholdRegistry EigenDARelayRegistry" +contracts="PaymentVault \ + SocketRegistry \ + AVSDirectory \ + DelegationManager \ + BitmapUtils \ + OperatorStateRetriever \ + RegistryCoordinator \ + BLSApkRegistry \ + IndexRegistry \ + StakeRegistry \ + BN254 \ + EigenDAServiceManager \ + IEigenDAServiceManager \ + MockRollup \ + EjectionManager \ + EigenDABlobVerifier \ + EigenDAThresholdRegistry \ + EigenDARelayRegistry \ + EigenDADisperserRegistry" + for contract in $contracts; do create_binding ./ $contract ./bindings done