{"abi":[{"type":"constructor","inputs":[{"name":"_registryCoordinator","type":"address","internalType":"contract IRegistryCoordinator"}],"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":"struct BN254.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":"struct IBLSApkRegistry.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":"struct BN254.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":"struct IBLSApkRegistry.PubkeyRegistrationParams","components":[{"name":"pubkeyRegistrationSignature","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"pubkeyG1","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"pubkeyG2","type":"tuple","internalType":"struct BN254.G2Point","components":[{"name":"X","type":"uint256[2]","internalType":"uint256[2]"},{"name":"Y","type":"uint256[2]","internalType":"uint256[2]"}]}]},{"name":"pubkeyRegistrationMessageHash","type":"tuple","internalType":"struct BN254.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":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"pubkeyG2","type":"tuple","indexed":false,"internalType":"struct BN254.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}],"bytecode":{"object":"0x60a06040523480156200001157600080fd5b506040516200210b3803806200210b833981016040819052620000349162000116565b6001600160a01b038116608052806200004c62000054565b505062000148565b600054610100900460ff1615620000c15760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000114576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012957600080fd5b81516001600160a01b03811681146200014157600080fd5b9392505050565b608051611f8b620001806000396000818161030f01528181610466015281816105bf015281816109c501526110310152611f8b6000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b610141610128366004611904565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b610184610169366004611904565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611937565b61045b565b005b6101ca6101b5366004611937565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119c2565b6105b4565b61021b610200366004611a68565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611937565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a81565b6102a261029d366004611a98565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611ac2565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61034461033f366004611a98565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b610385610380366004611904565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611937565b6005602052600090815260409020805460019091015482565b6101846103da366004611b0a565b6109b8565b6103f26103ed366004611b67565b610e0c565b6040516101529190611bdf565b61018461040d366004611904565b60016020526000908152604090205481565b61021b61042d366004611a68565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119c2565b611026565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104ac5760405162461bcd60e51b81526004016104a390611c29565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105fc5760405162461bcd60e51b81526004016104a390611c29565b6000610607836108eb565b50905061061482826110cf565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c9d565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611d09565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611d09565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a025760405162461bcd60e51b81526004016104a390611c29565b6000610a30610a1936869003860160408701611d1f565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5811415610ab8576040805162461bcd60e51b8152602060048201526024810191909152600080516020611f3683398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b425760405162461bcd60e51b81526020600482015260476024820152600080516020611f3683398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc65760405162461bcd60e51b81526020600482015260426024820152600080516020611f3683398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1f918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d51565b6040516020818303038152906040528051906020012060001c610c429190611d9c565b9050610cdc610c7b610c6683610c60368a90038a0160408b01611d1f565b9061131a565b610c7536899003890189611d1f565b906113b1565b610c83611445565b610cc5610cb685610c60604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c75368a90038a018a611d1f565b610cd7368a90038a0160808b01611e0e565b611505565b610d775760405162461bcd60e51b815260206004820152606c6024820152600080516020611f3683398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfb9160808a0190611e6b565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2957610e29611952565b604051908082528060200260200182016040528015610e52578160200160208202803683370190505b50905060005b8481101561101d576000868683818110610e7457610e74611d09565b919091013560f81c6000818152600460205260409020549092509050801580610ed7575060ff821660009081526004602052604081208054909190610ebb57610ebb611d09565b600091825260209091200154600160c01b900463ffffffff1686105b15610f645760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110075760ff831660009081526004602052604090208790610f8b600184611eb5565b81548110610f9b57610f9b611d09565b600091825260209091200154600160c01b900463ffffffff1611610ff557610fc4600182611eb5565b858581518110610fd657610fd6611d09565b602002602001019063ffffffff16908163ffffffff1681525050611007565b80610fff81611ecc565b915050610f66565b505050808061101590611ee3565b915050610e58565b50949350505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461106e5760405162461bcd60e51b81526004016104a390611c29565b6000611079836108eb565b50905061108e8261108983611772565b6110cf565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b835181101561131457600084828151811061110357611103611d09565b0160209081015160f81c60008181526004909252604090912054909150806111935760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111c790866113b1565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112109085611eb5565b8154811061122057611220611d09565b600091825260209091200180549091504363ffffffff908116600160c01b9092041614156112615780546001600160c01b031916604083901c1781556112fd565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b50505050808061130c90611ee3565b9150506110e6565b50505050565b6040805180820190915260008082526020820152611336611831565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080156113695761136b565bfe5b50806113a95760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113cd61184f565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080156113695750806113a95760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61144d61186d565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082018252858152602080820185905282518084019093528583528201839052600091611534611892565b60005b60028110156116f957600061154d826006611efe565b905084826002811061156157611561611d09565b60200201515183611573836000611f1d565b600c811061158357611583611d09565b602002015284826002811061159a5761159a611d09565b602002015160200151838260016115b19190611f1d565b600c81106115c1576115c1611d09565b60200201528382600281106115d8576115d8611d09565b60200201515151836115eb836002611f1d565b600c81106115fb576115fb611d09565b602002015283826002811061161257611612611d09565b602002015151600160200201518361162b836003611f1d565b600c811061163b5761163b611d09565b602002015283826002811061165257611652611d09565b60200201516020015160006002811061166d5761166d611d09565b60200201518361167e836004611f1d565b600c811061168e5761168e611d09565b60200201528382600281106116a5576116a5611d09565b6020020151602001516001600281106116c0576116c0611d09565b6020020151836116d1836005611f1d565b600c81106116e1576116e1611d09565b602002015250806116f181611ee3565b915050611537565b506117026118b1565b60006020826101808560086107d05a03fa90508080156113695750806117625760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561179757506020820151155b156117b5575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117fa9190611d9c565b611824907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611eb5565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806118806118cf565b815260200161188d6118cf565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461182c57600080fd5b60006020828403121561191657600080fd5b61191f826118ed565b9392505050565b803560ff8116811461182c57600080fd5b60006020828403121561194957600080fd5b61191f82611926565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561198b5761198b611952565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156119ba576119ba611952565b604052919050565b600080604083850312156119d557600080fd5b6119de836118ed565b915060208084013567ffffffffffffffff808211156119fc57600080fd5b818601915086601f830112611a1057600080fd5b813581811115611a2257611a22611952565b611a34601f8201601f19168501611991565b91508082528784828501011115611a4a57600080fd5b80848401858401376000848284010152508093505050509250929050565b600060208284031215611a7a57600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611aab57600080fd5b611ab483611926565b946020939093013593505050565b600080600060608486031215611ad757600080fd5b611ae084611926565b9250602084013563ffffffff81168114611af957600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b2157600080fd5b611b2a856118ed565b9350610100601f1982011215611b3f57600080fd5b602085019250604061011f1982011215611b5857600080fd5b50610120840190509250925092565b600080600060408486031215611b7c57600080fd5b833567ffffffffffffffff80821115611b9457600080fd5b818601915086601f830112611ba857600080fd5b813581811115611bb757600080fd5b876020828501011115611bc957600080fd5b6020928301989097509590910135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015611c1d57835163ffffffff1683529284019291840191600101611bfb565b50909695505050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b038416815260006020848184015260606040840152835180606085015260005b81811015611cdf57858101830151858201608001528201611cc3565b81811115611cf1576000608083870101525b50601f01601f19169290920160800195945050505050565b634e487b7160e01b600052603260045260246000fd5b600060408284031215611d3157600080fd5b611d39611968565b82358152602083013560208201528091505092915050565b8881528760208201528660408201528560608201526040856080830137600060c082016000815260408682375050610100810192909252610120820152610140019695505050505050565b600082611db957634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611dcf57600080fd5b611dd7611968565b806040840185811115611de957600080fd5b845b81811015611e03578035845260209384019301611deb565b509095945050505050565b600060808284031215611e2057600080fd5b6040516040810181811067ffffffffffffffff82111715611e4357611e43611952565b604052611e508484611dbe565b8152611e5f8460408501611dbe565b60208201529392505050565b823581526020808401359082015260c081016040838184013760808201600081526040808501823750600081529392505050565b634e487b7160e01b600052601160045260246000fd5b600082821015611ec757611ec7611e9f565b500390565b600081611edb57611edb611e9f565b506000190190565b6000600019821415611ef757611ef7611e9f565b5060010190565b6000816000190483118215151615611f1857611f18611e9f565b500290565b60008219821115611f3057611f30611e9f565b50019056fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a26469706673582212203958d31cb2d0c343bedfede670efc918de34237404e56400effb76f299879b5764736f6c634300080c0033","sourceMap":"254:12653:95:-:0;;;739:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1455:51:96;;;;830:20:95;1606:22:96;:20;:22::i;:::-;1390:245;739:115:95;254:12653;;5388:279:59;5456:13;;;;;;;5455:14;5447:66;;;;-1:-1:-1;;;5447:66:59;;541:2:178;5447:66:59;;;523:21:178;580:2;560:18;;;553:30;619:34;599:18;;;592:62;-1:-1:-1;;;670:18:178;;;663:37;717:19;;5447:66:59;;;;;;;;5527:12;;5542:15;5527:12;;;:30;5523:138;;;5573:12;:30;;-1:-1:-1;;5573:30:59;5588:15;5573:30;;;;;;5622:28;;889:36:178;;;5622:28:59;;877:2:178;862:18;5622:28:59;;;;;;;5523:138;5388:279::o;14:320:178:-;114:6;167:2;155:9;146:7;142:23;138:32;135:52;;;183:1;180;173:12;135:52;209:16;;-1:-1:-1;;;;;254:31:178;;244:42;;234:70;;300:1;297;290:12;234:70;323:5;14:320;-1:-1:-1;;;14:320:178:o;747:184::-;254:12653:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b610141610128366004611904565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b610184610169366004611904565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611937565b61045b565b005b6101ca6101b5366004611937565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119c2565b6105b4565b61021b610200366004611a68565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611937565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a81565b6102a261029d366004611a98565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611ac2565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61034461033f366004611a98565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b610385610380366004611904565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611937565b6005602052600090815260409020805460019091015482565b6101846103da366004611b0a565b6109b8565b6103f26103ed366004611b67565b610e0c565b6040516101529190611bdf565b61018461040d366004611904565b60016020526000908152604090205481565b61021b61042d366004611a68565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119c2565b611026565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104ac5760405162461bcd60e51b81526004016104a390611c29565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105fc5760405162461bcd60e51b81526004016104a390611c29565b6000610607836108eb565b50905061061482826110cf565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c9d565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611d09565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611d09565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a025760405162461bcd60e51b81526004016104a390611c29565b6000610a30610a1936869003860160408701611d1f565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5811415610ab8576040805162461bcd60e51b8152602060048201526024810191909152600080516020611f3683398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b425760405162461bcd60e51b81526020600482015260476024820152600080516020611f3683398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc65760405162461bcd60e51b81526020600482015260426024820152600080516020611f3683398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1f918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d51565b6040516020818303038152906040528051906020012060001c610c429190611d9c565b9050610cdc610c7b610c6683610c60368a90038a0160408b01611d1f565b9061131a565b610c7536899003890189611d1f565b906113b1565b610c83611445565b610cc5610cb685610c60604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c75368a90038a018a611d1f565b610cd7368a90038a0160808b01611e0e565b611505565b610d775760405162461bcd60e51b815260206004820152606c6024820152600080516020611f3683398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfb9160808a0190611e6b565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2957610e29611952565b604051908082528060200260200182016040528015610e52578160200160208202803683370190505b50905060005b8481101561101d576000868683818110610e7457610e74611d09565b919091013560f81c6000818152600460205260409020549092509050801580610ed7575060ff821660009081526004602052604081208054909190610ebb57610ebb611d09565b600091825260209091200154600160c01b900463ffffffff1686105b15610f645760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110075760ff831660009081526004602052604090208790610f8b600184611eb5565b81548110610f9b57610f9b611d09565b600091825260209091200154600160c01b900463ffffffff1611610ff557610fc4600182611eb5565b858581518110610fd657610fd6611d09565b602002602001019063ffffffff16908163ffffffff1681525050611007565b80610fff81611ecc565b915050610f66565b505050808061101590611ee3565b915050610e58565b50949350505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461106e5760405162461bcd60e51b81526004016104a390611c29565b6000611079836108eb565b50905061108e8261108983611772565b6110cf565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b835181101561131457600084828151811061110357611103611d09565b0160209081015160f81c60008181526004909252604090912054909150806111935760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111c790866113b1565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112109085611eb5565b8154811061122057611220611d09565b600091825260209091200180549091504363ffffffff908116600160c01b9092041614156112615780546001600160c01b031916604083901c1781556112fd565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b50505050808061130c90611ee3565b9150506110e6565b50505050565b6040805180820190915260008082526020820152611336611831565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080156113695761136b565bfe5b50806113a95760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113cd61184f565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080156113695750806113a95760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61144d61186d565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082018252858152602080820185905282518084019093528583528201839052600091611534611892565b60005b60028110156116f957600061154d826006611efe565b905084826002811061156157611561611d09565b60200201515183611573836000611f1d565b600c811061158357611583611d09565b602002015284826002811061159a5761159a611d09565b602002015160200151838260016115b19190611f1d565b600c81106115c1576115c1611d09565b60200201528382600281106115d8576115d8611d09565b60200201515151836115eb836002611f1d565b600c81106115fb576115fb611d09565b602002015283826002811061161257611612611d09565b602002015151600160200201518361162b836003611f1d565b600c811061163b5761163b611d09565b602002015283826002811061165257611652611d09565b60200201516020015160006002811061166d5761166d611d09565b60200201518361167e836004611f1d565b600c811061168e5761168e611d09565b60200201528382600281106116a5576116a5611d09565b6020020151602001516001600281106116c0576116c0611d09565b6020020151836116d1836005611f1d565b600c81106116e1576116e1611d09565b602002015250806116f181611ee3565b915050611537565b506117026118b1565b60006020826101808560086107d05a03fa90508080156113695750806117625760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561179757506020820151155b156117b5575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117fa9190611d9c565b611824907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611eb5565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806118806118cf565b815260200161188d6118cf565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461182c57600080fd5b60006020828403121561191657600080fd5b61191f826118ed565b9392505050565b803560ff8116811461182c57600080fd5b60006020828403121561194957600080fd5b61191f82611926565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561198b5761198b611952565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156119ba576119ba611952565b604052919050565b600080604083850312156119d557600080fd5b6119de836118ed565b915060208084013567ffffffffffffffff808211156119fc57600080fd5b818601915086601f830112611a1057600080fd5b813581811115611a2257611a22611952565b611a34601f8201601f19168501611991565b91508082528784828501011115611a4a57600080fd5b80848401858401376000848284010152508093505050509250929050565b600060208284031215611a7a57600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611aab57600080fd5b611ab483611926565b946020939093013593505050565b600080600060608486031215611ad757600080fd5b611ae084611926565b9250602084013563ffffffff81168114611af957600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b2157600080fd5b611b2a856118ed565b9350610100601f1982011215611b3f57600080fd5b602085019250604061011f1982011215611b5857600080fd5b50610120840190509250925092565b600080600060408486031215611b7c57600080fd5b833567ffffffffffffffff80821115611b9457600080fd5b818601915086601f830112611ba857600080fd5b813581811115611bb757600080fd5b876020828501011115611bc957600080fd5b6020928301989097509590910135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015611c1d57835163ffffffff1683529284019291840191600101611bfb565b50909695505050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b038416815260006020848184015260606040840152835180606085015260005b81811015611cdf57858101830151858201608001528201611cc3565b81811115611cf1576000608083870101525b50601f01601f19169290920160800195945050505050565b634e487b7160e01b600052603260045260246000fd5b600060408284031215611d3157600080fd5b611d39611968565b82358152602083013560208201528091505092915050565b8881528760208201528660408201528560608201526040856080830137600060c082016000815260408682375050610100810192909252610120820152610140019695505050505050565b600082611db957634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611dcf57600080fd5b611dd7611968565b806040840185811115611de957600080fd5b845b81811015611e03578035845260209384019301611deb565b509095945050505050565b600060808284031215611e2057600080fd5b6040516040810181811067ffffffffffffffff82111715611e4357611e43611952565b604052611e508484611dbe565b8152611e5f8460408501611dbe565b60208201529392505050565b823581526020808401359082015260c081016040838184013760808201600081526040808501823750600081529392505050565b634e487b7160e01b600052601160045260246000fd5b600082821015611ec757611ec7611e9f565b500390565b600081611edb57611edb611e9f565b506000190190565b6000600019821415611ef757611ef7611e9f565b5060010190565b6000816000190483118215151615611f1857611f18611e9f565b500290565b60008219821115611f3057611f30611e9f565b50019056fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a26469706673582212203958d31cb2d0c343bedfede670efc918de34237404e56400effb76f299879b5764736f6c634300080c0033","sourceMap":"254:12653:95:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1028:57:96;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;557:25:178;;;613:2;598:18;;591:34;;;;530:18;1028:57:96;;;;;;;;12780:125:95;;;;;;:::i;:::-;-1:-1:-1;;;;;12868:30:95;12842:7;12868:30;;;:20;:30;;;;;;;12780:125;;;;782:25:178;;;770:2;755:18;12780:125:95;636:177:178;3722:392:95;;;;;;:::i;:::-;;:::i;:::-;;12241:143;;;;;;:::i;:::-;12345:24;;12313:6;12345:24;;;:10;:24;;;;;:31;;12241:143;;;;1340:10:178;1328:23;;;1310:42;;1298:2;1283:18;12241:143:95;1166:192:178;1744:560:95;;;;;;:::i;:::-;;:::i;12462:141::-;;;;;;:::i;:::-;12538:7;12564:32;;;:20;:32;;;;;;-1:-1:-1;;;;;12564:32:95;;12462:141;;;;-1:-1:-1;;;;;3222:32:178;;;3204:51;;3192:2;3177:18;12462:141:95;3058:203:178;10357:129:95;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;10455:24:95;;;;;;:10;:24;;;;;;;;;10448:31;;;;;;;;;;;;;;;;;;;;10357:129;;;;;;;;:::i;10600:160::-;;;;;;:::i;:::-;;:::i;:::-;;;;4151:13:178;;-1:-1:-1;;4147:43:178;4129:62;;4238:4;4226:17;;;4220:24;4263:10;4311:21;;;4289:20;;;4282:51;;;;4381:17;;;4375:24;4371:33;;;4349:20;;;4342:63;4117:2;4102:18;10600:160:95;3927:484:178;11227:927:95;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;4999:36:178;;;4981:55;;4969:2;4954:18;11227:927:95;4835:207:178;661:44:96;;;;;1209:47;;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;5263:36:178;;;5245:55;;5319:10;5365:15;;;5360:2;5345:18;;5338:43;5417:15;;5397:18;;;5390:43;5233:2;5218:18;1209:47:96;5047:392:178;8577:423:95;;;;;;:::i;:::-;;:::i;:::-;;;;3339:12:178;;3327:25;;3401:4;3390:16;;;3384:23;3368:14;;;3361:47;;;;5730:18;;5723:34;5658:2;5643:18;8577:423:95;5444:319:178;1334:49:96;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;4532:1981:95;;;;;;:::i;:::-;;:::i;9204:1074::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;803:55:96:-;;;;;;:::i;:::-;;;;;;;;;;;;;;917;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;917:55:96;;;3071:501:95;;;;;;:::i;:::-;;:::i;3722:392::-;502:10;-1:-1:-1;;;;;524:19:95;502:42;;481:167;;;;-1:-1:-1;;;481:167:95;;;;;;;:::i;:::-;;;;;;;;;3825:24:::1;::::0;::::1;;::::0;;;:10:::1;:24;::::0;;;;:31;:36;3817:103:::1;;;::::0;-1:-1:-1;;;3817:103:95;;8284:2:178;3817:103:95::1;::::0;::::1;8266:21:178::0;8323:2;8303:18;;;8296:30;8362:34;8342:18;;;8335:62;-1:-1:-1;;;8413:18:178;;;8406:52;8475:19;;3817:103:95::1;8082:418:178::0;3817:103:95::1;3931:24;;;::::0;;;:10:::1;:24;::::0;;;;;;;3961:145;;::::1;::::0;::::1;::::0;;;;;::::1;4044:12;3961:145:::0;::::1;::::0;;::::1;::::0;;;;;;;;;3931:176;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;::::1;::::0;;;;;;;::::1;-1:-1:-1::0;;;3931:176:95::1;-1:-1:-1::0;;;;;3931:176:95;;;::::1;-1:-1:-1::0;;;3931:176:95::1;-1:-1:-1::0;;;;;;3931:176:95;;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;3722:392::o;1744:560::-;502:10;-1:-1:-1;;;;;524:19:95;502:42;;481:167;;;;-1:-1:-1;;;481:167:95;;;;;;;:::i;:::-;1968:27:::1;2001:29;2021:8;2001:19;:29::i;:::-;1967:63;;;2090:46;2114:13;2129:6;2090:23;:46::i;:::-;2225:72;2248:8;2258:23;2272:8;-1:-1:-1::0;;;;;12868:30:95;12842:7;12868:30;;;:20;:30;;;;;;;12780:125;2258:23:::1;2283:13;2225:72;;;;;;;;:::i;:::-;;;;;;;;1877:427;1744:560:::0;;:::o;10600:160::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;10722:24:95;;;;;:10;:24;;;;;;:31;;10747:5;;10722:31;;;;;;:::i;:::-;;;;;;;;;;10715:38;;;;;;;;10722:31;;;;10715:38;-1:-1:-1;;10715:38:95;;;;;;;-1:-1:-1;;;10715:38:95;;;;;;;;;;;-1:-1:-1;;;10715:38:95;;;;;;;;;;-1:-1:-1;10600:160:95;;;;;:::o;11227:927::-;11430:24;;;11376:7;11430:24;;;:10;:24;;;;;:31;;11376:7;;11430:24;11455:5;;11430:31;;;;;;:::i;:::-;;;;;;;;;;11395:66;;;;;;;;11430:31;;;;11395:66;-1:-1:-1;;11395:66:95;;;;;;;-1:-1:-1;;;11395:66:95;;;;;;;;;;-1:-1:-1;;;11395:66:95;;;;;;;;;;;;;-1:-1:-1;11749:48:95;;;;11728:157;;;;-1:-1:-1;;;11728:157:95;;9610:2:178;11728:157:95;;;9592:21:178;9649:2;9629:18;;;9622:30;9688:34;9668:18;;;9661:62;9759:32;9739:18;;;9732:60;9809:19;;11728:157:95;9408:426:178;11728:157:95;11916:37;;;;:42;;;;:97;;;11976:15;:37;;;11962:51;;:11;:51;;;11916:97;11895:211;;;;-1:-1:-1;;;11895:211:95;;10041:2:178;11895:211:95;;;10023:21:178;10080:2;10060:18;;;10053:30;10119:34;10099:18;;;10092:62;10190:34;10170:18;;;10163:62;-1:-1:-1;;;10241:19:178;;;10234:34;10285:19;;11895:211:95;9839:471:178;11895:211:95;12124:23;;11227:927;-1:-1:-1;;;;11227:927:95:o;1209:47:96:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1209:47:96;-1:-1:-1;;;1209:47:96;;;;;-1:-1:-1;;;;1209:47:96;;;;;:::o;8577:423:95:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;8716:26:95;;8667:7;8716:26;;;:16;:26;;;;;;;;8686:56;;;;;;;;;;;;;;;;;;;;8773:30;;;;;;;;;8667:7;;8686:56;8835:24;8814:133;;;;-1:-1:-1;;;8814:133:95;;10517:2:178;8814:133:95;;;10499:21:178;10556:2;10536:18;;;10529:30;10595:34;10575:18;;;10568:62;10666:32;10646:18;;;10639:60;10716:19;;8814:133:95;10315:426:178;8814:133:95;8974:6;;8982:10;;-1:-1:-1;8577:423:95;-1:-1:-1;;8577:423:95:o;4532:1981::-;4748:18;502:10;-1:-1:-1;;;;;524:19:95;502:42;;481:167;;;;-1:-1:-1;;;481:167:95;;;;;;;:::i;:::-;4778:18:::1;4799:34;;;::::0;;;;;4817:15:::1;::::0;::::1;4799:34;:::i;:::-;10534:9:116::0;;10473:16;10524:20;;;10580:4;10576:13;;;10570:20;10557:34;;;10629:4;10616:18;;;10404:246;4799:34:95::1;4778:55;;4878:12;4864:10;:26;;4843:125;;;::::0;;-1:-1:-1;;;4843:125:95;;11297:2:178;4843:125:95::1;::::0;::::1;11279:21:178::0;11316:18;;;11309:30;;;;-1:-1:-1;;;;;;;;;;;11355:18:178;;;11348:62;11446:34;11426:18;;;11419:62;11498:19;;4843:125:95::1;11095:428:178::0;4843:125:95::1;-1:-1:-1::0;;;;;4999:30:95;::::1;5041:1;4999:30:::0;;;:20:::1;:30;::::0;;;;;:44;4978:162:::1;;;::::0;-1:-1:-1;;;4978:162:95;;11730:2:178;4978:162:95::1;::::0;::::1;11712:21:178::0;11769:2;11749:18;;;11742:30;-1:-1:-1;;;;;;;;;;;11788:18:178;;;11781:62;11879:34;11859:18;;;11852:62;-1:-1:-1;;;11930:19:178;;;11923:38;11978:19;;4978:162:95::1;11528:475:178::0;4978:162:95::1;5215:1;5171:32:::0;;;:20:::1;:32;::::0;;;;;-1:-1:-1;;;;;5171:32:95::1;:46:::0;5150:159:::1;;;::::0;-1:-1:-1;;;5150:159:95;;12210:2:178;5150:159:95::1;::::0;::::1;12192:21:178::0;12249:2;12229:18;;;12222:30;-1:-1:-1;;;;;;;;;;;12268:18:178;;;12261:62;12359:34;12339:18;;;12332:62;-1:-1:-1;;;12410:19:178;;;12403:33;12453:19;;5150:159:95::1;12008:470:178::0;5150:159:95::1;5527:15;5395:347:::0;;5361:13:::1;::::0;2037:77:116::1;::::0;5395:347:95::1;::::0;5425:36;::::1;::::0;5476::::1;::::0;;::::1;;::::0;5527:15;::::1;:17;::::0;5559;;;::::1;::::0;5591:15:::1;::::0;::::1;::::0;5623:17;;;;5655:31;::::1;::::0;5701;;::::1;;::::0;5395:347:::1;;:::i;:::-;;;;;;;;;;;;;5385:358;;;;;;5377:367;;:386;;;;:::i;:::-;5361:402:::0;-1:-1:-1;5861:263:95::1;5888:74;5928:33;5361:402:::0;5928:26:::1;;::::0;;;;;:15:::1;::::0;::::1;:26;:::i;:::-;::::0;::::1;:33::i;:::-;5888:39;;::::0;;::::1;::::0;::::1;:6:::0;:39:::1;:::i;:::-;::::0;::::1;:74::i;:::-;5976:22;:20;:22::i;:::-;6012:73;6047:37;6078:5;6047:19;-1:-1:-1::0;;;;;;;;;;;;;;;;;2392:13:116;;;;;;;;2400:1;2392:13;;2403:1;2392:13;;;;;2313:99;6047:37:95::1;6012:34;;::::0;;::::1;::::0;::::1;:29:::0;:34:::1;:::i;:73::-;5861:263;;::::0;;;;;6099:15:::1;::::0;::::1;5861:263;:::i;:::-;:13;:263::i;:::-;5853:384;;;::::0;-1:-1:-1;;;5853:384:95;;14800:2:178;5853:384:95::1;::::0;::::1;14782:21:178::0;14839:3;14819:18;;;14812:31;-1:-1:-1;;;;;;;;;;;14859:18:178;;;14852:62;14950:34;14930:18;;;14923:62;15022:34;15001:19;;;14994:63;-1:-1:-1;;;15073:19:178;;;15066:43;15126:19;;5853:384:95::1;14598:553:178::0;5853:384:95::1;-1:-1:-1::0;;;;;6248:26:95;::::1;;::::0;;;:16:::1;:26;::::0;;;6277:15:::1;6248:26:::0;;;6277:15;;::::1;15308:19:178::0;;15295:33;;15371:14;;;15358:28;15354:1;15344:12;;;15337:50;6302:30:95;;;;;;:43;;;6355:32;;;:20:::1;:32:::0;;;;;;;:43;;-1:-1:-1;;;;;;6355:43:95::1;::::0;::::1;::::0;;6414:65;;::::1;::::0;::::1;::::0;6463:15:::1;::::0;::::1;::::0;6414:65:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;6496:10:95;4532:1981;-1:-1:-1;;;;4532:1981:95:o;9204:1074::-;9336:15;9363:23;9402:13;9389:34;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9389:34:95;;9363:60;;9447:9;9442:806;9462:24;;;9442:806;;;9507:18;9534:13;;9548:1;9534:16;;;;;;;:::i;:::-;;;;;;;;9578:30;9611:24;;;:10;:24;;;;;:31;9534:16;;-1:-1:-1;9611:31:95;-1:-1:-1;9660:27:95;;;:90;;-1:-1:-1;9705:24:95;;;;;;;:10;:24;;;;;:27;;:24;;;:27;;;;:::i;:::-;;;;;;;;;;:45;-1:-1:-1;;;9705:45:95;;;;9691:59;;9660:90;9656:220;;;9770:91;;-1:-1:-1;;;9770:91:95;;16186:2:178;9770:91:95;;;16168:21:178;16225:2;16205:18;;;16198:30;16264:34;16244:18;;;16237:62;16335:34;16315:18;;;16308:62;-1:-1:-1;;;16386:19:178;;;16379:48;16444:19;;9770:91:95;15984:485:178;9656:220:95;10006:22;9989:249;10030:5;;9989:249;;10064:24;;;;;;;:10;:24;;;;;10117:11;;10089:5;10093:1;10089;:5;:::i;:::-;10064:31;;;;;;;;:::i;:::-;;;;;;;;;;:49;-1:-1:-1;;;10064:49:95;;;;:64;10060:164;;10172:5;10176:1;10172;:5;:::i;:::-;10152:7;10160:1;10152:10;;;;;;;;:::i;:::-;;;;;;:26;;;;;;;;;;;10200:5;;10060:164;10037:3;;;;:::i;:::-;;;;9989:249;;;;9493:755;;9488:3;;;;;:::i;:::-;;;;9442:806;;;-1:-1:-1;10264:7:95;9204:1074;-1:-1:-1;;;;9204:1074:95:o;3071:501::-;502:10;-1:-1:-1;;;;;524:19:95;502:42;;481:167;;;;-1:-1:-1;;;481:167:95;;;;;;;:::i;:::-;3297:27:::1;3330:29;3350:8;3330:19;:29::i;:::-;3296:63;;;3419:55;3443:13;3458:15;:6;:13;:15::i;:::-;3419:23;:55::i;:::-;3489:76;3516:8;3526:23;3540:8;-1:-1:-1::0;;;;;12868:30:95;12842:7;12868:30;;;:20;:30;;;;;;;12780:125;6737:1470;-1:-1:-1;;;;;;;;;;;;;;;;;6888:9:95;6883:1318;6907:13;:20;6903:1;:24;6883:1318;;;7009:18;7036:13;7050:1;7036:16;;;;;;;;:::i;:::-;;;;;;;;;7067:21;7091:24;;;:10;:24;;;;;;;:31;7036:16;;-1:-1:-1;7144:18:95;7136:92;;;;-1:-1:-1;;;7136:92:95;;17219:2:178;7136:92:95;;;17201:21:178;17258:2;17238:18;;;17231:30;17297:34;17277:18;;;17270:62;17368:31;17348:18;;;17341:59;17417:19;;7136:92:95;17017:425:178;7136:92:95;7311:24;;;;;;;:10;:24;;;;;;;;;:29;;;;;;;;;;;;;;;;;;;:36;;7341:5;7311:29;:36::i;:::-;7361:24;;;;;;;:10;:24;;;;;;;;:33;;;;;;;;;;;;;;;10524:20:116;;;10570;10557:34;;10616:18;;;7692:24:95;;;:10;:24;;;;;7361:33;;-1:-1:-1;10616:18:116;;7361:24:95;;7717:17;;:13;:17;:::i;:::-;7692:43;;;;;;;;:::i;:::-;;;;;;;;;;7753:28;;7692:43;;-1:-1:-1;7792:12:95;7753:52;;;;-1:-1:-1;;;7753:28:95;;;;:52;7749:442;;;7825:31;;-1:-1:-1;;;;;;7825:31:95;;;;;;;;7749:442;;;7895:55;;;7937:12;7895:55;;-1:-1:-1;;;7895:55:95;;;-1:-1:-1;;;;;7895:55:95;;;;;;7968:24;;;7895:32;7968:24;;;:10;:24;;;;;;;;7998:177;;;;;;;-1:-1:-1;;7998:177:95;;;;;;;;;;;;;;;;7968:208;;-1:-1:-1;7968:208:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7968:208:95;-1:-1:-1;;;;;;7968:208:95;;;;;;;;;;;;;;;;;;;7749:442;6934:1267;;;;6929:3;;;;;:::i;:::-;;;;6883:1318;;;;6835:1372;6737:1470;;:::o;7084:580:116:-;-1:-1:-1;;;;;;;;;;;;;;;;;7184:23:116;;:::i;:::-;7228:3;;7217:14;;:8;7252:3;;;;7241:8;;;:14;7265:8;;;;:12;;;-1:-1:-1;;7452:1:116;7446:4;7217:14;7436:1;7429:4;7422:5;7418:16;7407:53;7396:64;-1:-1:-1;7396:64:116;7557:48;;;;7530:75;;7557:48;7582:9;7530:75;;7632:7;7624:33;;;;-1:-1:-1;;;7624:33:116;;17649:2:178;7624:33:116;;;17631:21:178;17688:2;17668:18;;;17661:30;-1:-1:-1;;;17707:18:178;;;17700:43;17760:18;;7624:33:116;17447:337:178;7624:33:116;7174:490;;7084:580;;;;:::o;4823:615::-;-1:-1:-1;;;;;;;;;;;;;;;;;4926:23:116;;:::i;:::-;4970:4;;4959:15;;:8;4995:4;;;;4984:8;;;:15;5020:4;;5009:8;;;;:15;;;;5045:4;;;;5034:8;;;:15;-1:-1:-1;;5225:1:116;5219:4;4959:15;5209:1;5202:4;5195:5;5191:16;5180:53;5169:64;-1:-1:-1;5169:64:116;5330:48;;;;5303:75;5406:7;5398:33;;;;-1:-1:-1;;;5398:33:116;;17991:2:178;5398:33:116;;;17973:21:178;18030:2;18010:18;;;18003:30;-1:-1:-1;;;18049:18:178;;;18042:43;18102:18;;5398:33:116;17789:337:178;4070:128:116;4119:14;;:::i;:::-;-1:-1:-1;4152:39:116;;;;;;;;3635:77;4152:39;;;;;;3752:77;4152:39;;;;;;;;;;;;;;3869:77;4152:39;;3986:77;4152:39;;;;;;;;;;;;;;;4070:128::o;7914:1058::-;8084:31;;;;;;;;;;;;;;;;;;8125;;;;;;;;;;;;;;;;8068:4;;8167:24;;:::i;:::-;8207:9;8202:302;8226:1;8222;:5;8202:302;;;8248:9;8260:5;:1;8264;8260:5;:::i;:::-;8248:17;;8294:2;8297:1;8294:5;;;;;;;:::i;:::-;;;;;:7;8279:5;8285;:1;8294:7;8285:5;:::i;:::-;8279:12;;;;;;;:::i;:::-;;;;:22;8330:2;8333:1;8330:5;;;;;;;:::i;:::-;;;;;:7;;;8315:5;8321:1;8325;8321:5;;;;:::i;:::-;8315:12;;;;;;;:::i;:::-;;;;:22;8366:2;8369:1;8366:5;;;;;;;:::i;:::-;;;;;:7;:10;8351:5;8357;:1;8361;8357:5;:::i;:::-;8351:12;;;;;;;:::i;:::-;;;;:25;8405:2;8408:1;8405:5;;;;;;;:::i;:::-;;;;;:7;8413:1;8405:10;;;;8390:5;8396;:1;8400;8396:5;:::i;:::-;8390:12;;;;;;;:::i;:::-;;;;:25;8444:2;8447:1;8444:5;;;;;;;:::i;:::-;;;;;:7;;;8452:1;8444:10;;;;;;;:::i;:::-;;;;;8429:5;8435;:1;8439;8435:5;:::i;:::-;8429:12;;;;;;;:::i;:::-;;;;:25;8483:2;8486:1;8483:5;;;;;;;:::i;:::-;;;;;:7;;;8491:1;8483:10;;;;;;;:::i;:::-;;;;;8468:5;8474;:1;8478;8474:5;:::i;:::-;8468:12;;;;;;;:::i;:::-;;;;:25;-1:-1:-1;8229:3:116;;;;:::i;:::-;;;;8202:302;;;;8514:21;;:::i;:::-;8545:12;8725:4;8720:3;8705:13;8698:5;8695:1;8688:4;8681:5;8677:16;8666:64;8655:75;-1:-1:-1;8655:75:116;8827:48;;;;8800:75;8903:7;8895:41;;;;-1:-1:-1;;;8895:41:116;;18639:2:178;8895:41:116;;;18621:21:178;18678:2;18658:18;;;18651:30;-1:-1:-1;;;18697:18:178;;;18690:51;18758:18;;8895:41:116;18437:345:178;8895:41:116;-1:-1:-1;8954:6:116;:11;;;;-1:-1:-1;;;;;;;;7914:1058:116:o;4461:295::-;-1:-1:-1;;;;;;;;;;;;;;;;;4600:3:116;;:8;:20;;;;-1:-1:-1;4612:3:116;;;;:8;4600:20;4596:154;;;-1:-1:-1;;4643:13:116;;;;;;;;;-1:-1:-1;4643:13:116;;;;;;;;4461:295::o;4596:154::-;4694:45;;;;;;;;4702:1;:3;;;4694:45;;;;1841:77;4721:1;:3;;;:16;;;;:::i;:::-;4707:31;;1841:77;4707:31;:::i;:::-;4694:45;;4687:52;4461:295;-1:-1:-1;;4461:295:116:o;4596:154::-;4461:295;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:173:178:-;82:20;;-1:-1:-1;;;;;131:31:178;;121:42;;111:70;;177:1;174;167:12;192:186;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:178:o;818:156::-;884:20;;944:4;933:16;;923:27;;913:55;;964:1;961;954:12;979:182;1036:6;1089:2;1077:9;1068:7;1064:23;1060:32;1057:52;;;1105:1;1102;1095:12;1057:52;1128:27;1145:9;1128:27;:::i;1363:127::-;1424:10;1419:3;1415:20;1412:1;1405:31;1455:4;1452:1;1445:15;1479:4;1476:1;1469:15;1495:251;1567:2;1561:9;;;1597:15;;1642:18;1627:34;;1663:22;;;1624:62;1621:88;;;1689:18;;:::i;:::-;1725:2;1718:22;1495:251;:::o;1751:275::-;1822:2;1816:9;1887:2;1868:13;;-1:-1:-1;;1864:27:178;1852:40;;1922:18;1907:34;;1943:22;;;1904:62;1901:88;;;1969:18;;:::i;:::-;2005:2;1998:22;1751:275;;-1:-1:-1;1751:275:178:o;2031:837::-;2108:6;2116;2169:2;2157:9;2148:7;2144:23;2140:32;2137:52;;;2185:1;2182;2175:12;2137:52;2208:29;2227:9;2208:29;:::i;:::-;2198:39;;2256:2;2309;2298:9;2294:18;2281:32;2332:18;2373:2;2365:6;2362:14;2359:34;;;2389:1;2386;2379:12;2359:34;2427:6;2416:9;2412:22;2402:32;;2472:7;2465:4;2461:2;2457:13;2453:27;2443:55;;2494:1;2491;2484:12;2443:55;2530:2;2517:16;2552:2;2548;2545:10;2542:36;;;2558:18;;:::i;:::-;2600:53;2643:2;2624:13;;-1:-1:-1;;2620:27:178;2616:36;;2600:53;:::i;:::-;2587:66;;2676:2;2669:5;2662:17;2716:7;2711:2;2706;2702;2698:11;2694:20;2691:33;2688:53;;;2737:1;2734;2727:12;2688:53;2792:2;2787;2783;2779:11;2774:2;2767:5;2763:14;2750:45;2836:1;2831:2;2826;2819:5;2815:14;2811:23;2804:34;;2857:5;2847:15;;;;;2031:837;;;;;:::o;2873:180::-;2932:6;2985:2;2973:9;2964:7;2960:23;2956:32;2953:52;;;3001:1;2998;2991:12;2953:52;-1:-1:-1;3024:23:178;;2873:180;-1:-1:-1;2873:180:178:o;3419:248::-;3339:12;;3327:25;;3401:4;3390:16;;;3384:23;3368:14;;;3361:47;3605:2;3590:18;;3617:44;3266:148;3672:250;3738:6;3746;3799:2;3787:9;3778:7;3774:23;3770:32;3767:52;;;3815:1;3812;3805:12;3767:52;3838:27;3855:9;3838:27;:::i;:::-;3828:37;3912:2;3897:18;;;;3884:32;;-1:-1:-1;;;3672:250:178:o;4416:414::-;4490:6;4498;4506;4559:2;4547:9;4538:7;4534:23;4530:32;4527:52;;;4575:1;4572;4565:12;4527:52;4598:27;4615:9;4598:27;:::i;:::-;4588:37;;4675:2;4664:9;4660:18;4647:32;4719:10;4712:5;4708:22;4701:5;4698:33;4688:61;;4745:1;4742;4735:12;4688:61;4416:414;;4768:5;;-1:-1:-1;;;4820:2:178;4805:18;;;;4792:32;;4416:414::o;5768:500::-;5918:6;5926;5934;5978:9;5969:7;5965:23;6008:3;6004:2;6000:12;5997:32;;;6025:1;6022;6015:12;5997:32;6048:29;6067:9;6048:29;:::i;:::-;6038:39;-1:-1:-1;6111:3:178;-1:-1:-1;;6093:16:178;;6089:26;6086:46;;;6128:1;6125;6118:12;6086:46;6166:2;6151:18;;;-1:-1:-1;6204:2:178;-1:-1:-1;;6185:17:178;;6181:26;6178:46;;;6220:1;6217;6210:12;6178:46;;6258:3;6247:9;6243:19;6233:29;;5768:500;;;;;:::o;6273:665::-;6352:6;6360;6368;6421:2;6409:9;6400:7;6396:23;6392:32;6389:52;;;6437:1;6434;6427:12;6389:52;6477:9;6464:23;6506:18;6547:2;6539:6;6536:14;6533:34;;;6563:1;6560;6553:12;6533:34;6601:6;6590:9;6586:22;6576:32;;6646:7;6639:4;6635:2;6631:13;6627:27;6617:55;;6668:1;6665;6658:12;6617:55;6708:2;6695:16;6734:2;6726:6;6723:14;6720:34;;;6750:1;6747;6740:12;6720:34;6797:7;6790:4;6781:6;6777:2;6773:15;6769:26;6766:39;6763:59;;;6818:1;6815;6808:12;6763:59;6849:4;6841:13;;;;6873:6;;-1:-1:-1;6911:20:178;;;;6898:34;;6273:665;-1:-1:-1;;;;6273:665:178:o;6943:647::-;7112:2;7164:21;;;7234:13;;7137:18;;;7256:22;;;7083:4;;7112:2;7335:15;;;;7309:2;7294:18;;;7083:4;7378:186;7392:6;7389:1;7386:13;7378:186;;;7457:13;;7472:10;7453:30;7441:43;;7539:15;;;;7504:12;;;;7414:1;7407:9;7378:186;;;-1:-1:-1;7581:3:178;;6943:647;-1:-1:-1;;;;;;6943:647:178:o;7595:482::-;7797:2;7779:21;;;7836:2;7816:18;;;7809:30;7875:34;7870:2;7855:18;;7848:62;7946:34;7941:2;7926:18;;7919:62;-1:-1:-1;;;8012:3:178;7997:19;;7990:45;8067:3;8052:19;;7595:482::o;8505:766::-;8737:1;8733;8728:3;8724:11;8720:19;8712:6;8708:32;8697:9;8690:51;8671:4;8760:2;8798:6;8793:2;8782:9;8778:18;8771:34;8841:2;8836;8825:9;8821:18;8814:30;8873:6;8867:13;8916:6;8911:2;8900:9;8896:18;8889:34;8941:1;8951:141;8965:6;8962:1;8959:13;8951:141;;;9061:14;;;9057:23;;9051:30;9026:17;;;9045:3;9022:27;9015:67;8980:10;;8951:141;;;9110:6;9107:1;9104:13;9101:92;;;9181:1;9175:3;9166:6;9155:9;9151:22;9147:32;9140:43;9101:92;-1:-1:-1;9254:2:178;9233:15;-1:-1:-1;;9229:29:178;9214:45;;;;9261:3;9210:55;;8505:766;-1:-1:-1;;;;;8505:766:178:o;9276:127::-;9337:10;9332:3;9328:20;9325:1;9318:31;9368:4;9365:1;9358:15;9392:4;9389:1;9382:15;10746:344;10831:6;10884:2;10872:9;10863:7;10859:23;10855:32;10852:52;;;10900:1;10897;10890:12;10852:52;10926:22;;:::i;:::-;10984:9;10971:23;10964:5;10957:38;11055:2;11044:9;11040:18;11027:32;11022:2;11015:5;11011:14;11004:56;11079:5;11069:15;;;10746:344;;;;:::o;12483:844::-;12916:6;12911:3;12904:19;12953:6;12948:2;12943:3;12939:12;12932:28;12990:6;12985:2;12980:3;12976:12;12969:28;13027:6;13022:2;13017:3;13013:12;13006:28;13079:2;13071:6;13065:3;13060;13056:13;13043:39;12886:3;13110;13105;13101:13;13134:1;13130:2;13123:13;13170:2;13162:6;13158:2;13145:28;-1:-1:-1;;13201:3:178;13192:13;;13236:18;;;;13279:3;13270:13;;13263:29;13317:3;13308:13;;12483:844;-1:-1:-1;;;;;;12483:844:178:o;13332:209::-;13364:1;13390;13380:132;;13434:10;13429:3;13425:20;13422:1;13415:31;13469:4;13466:1;13459:15;13497:4;13494:1;13487:15;13380:132;-1:-1:-1;13526:9:178;;13332:209::o;13546:484::-;13596:5;13649:3;13642:4;13634:6;13630:17;13626:27;13616:55;;13667:1;13664;13657:12;13616:55;13691:22;;:::i;:::-;13735:3;13773:2;13765:6;13761:15;13799:3;13791:6;13788:15;13785:35;;;13816:1;13813;13806:12;13785:35;13840:6;13855:146;13871:6;13866:3;13863:15;13855:146;;;13939:17;;13927:30;;13986:4;13977:14;;;;13888;13855:146;;;-1:-1:-1;14019:5:178;;13546:484;-1:-1:-1;;;;;13546:484:178:o;14035:558::-;14120:6;14173:3;14161:9;14152:7;14148:23;14144:33;14141:53;;;14190:1;14187;14180:12;14141:53;14223:4;14217:11;14267:4;14259:6;14255:17;14338:6;14326:10;14323:22;14302:18;14290:10;14287:34;14284:62;14281:88;;;14349:18;;:::i;:::-;14385:4;14378:24;14426:44;14462:7;14451:9;14426:44;:::i;:::-;14418:6;14411:60;14506:55;14553:7;14546:4;14535:9;14531:20;14506:55;:::i;:::-;14499:4;14487:17;;14480:82;14491:6;14035:558;-1:-1:-1;;;14035:558:178:o;15398:581::-;15699:20;;15681:39;;15783:4;15771:17;;;15758:31;15736:20;;;15729:61;15668:3;15653:19;;15840:2;15832:6;15812:18;;;15799:44;15877:3;15866:9;15862:19;15901:1;15897:2;15890:13;15946:2;15941;15933:6;15929:15;15925:2;15912:37;;15971:1;15965:4;15958:15;15398:581;;;;;:::o;16474:127::-;16535:10;16530:3;16526:20;16523:1;16516:31;16566:4;16563:1;16556:15;16590:4;16587:1;16580:15;16606:125;16646:4;16674:1;16671;16668:8;16665:34;;;16679:18;;:::i;:::-;-1:-1:-1;16716:9:178;;16606:125::o;16736:136::-;16775:3;16803:5;16793:39;;16812:18;;:::i;:::-;-1:-1:-1;;;16848:18:178;;16736:136::o;16877:135::-;16916:3;-1:-1:-1;;16937:17:178;;16934:43;;;16957:18;;:::i;:::-;-1:-1:-1;17004:1:178;16993:13;;16877:135::o;18131:168::-;18171:7;18237:1;18233;18229:6;18225:14;18222:1;18219:21;18214:1;18207:9;18200:17;18196:45;18193:71;;;18244:18;;:::i;:::-;-1:-1:-1;18284:9:178;;18131:168::o;18304:128::-;18344:3;18375:1;18371:6;18368:1;18365:13;18362:39;;;18381:18;;:::i;:::-;-1:-1:-1;18417:9:178;;18304:128::o","linkReferences":{},"immutableReferences":{"64395":[{"start":783,"length":32},{"start":1126,"length":32},{"start":1471,"length":32},{"start":2501,"length":32},{"start":4145,"length":32}]}},"methodIdentifiers":{"apkHistory(uint8,uint256)":"7916cea6","currentApk(uint8)":"a3db80e2","deregisterOperator(address,bytes)":"f4e24fe5","getApk(uint8)":"5f61a884","getApkHashAtBlockNumberAndIndex(uint8,uint32,uint256)":"68bccaac","getApkHistoryLength(uint8)":"377ed99d","getApkIndicesAtBlockNumber(bytes,uint256)":"d5254a8c","getApkUpdateAtIndex(uint8,uint256)":"605747d5","getOperatorFromPubkeyHash(bytes32)":"47b314e8","getOperatorId(address)":"13542a4e","getRegisteredPubkey(address)":"7ff81a87","initializeQuorum(uint8)":"26d941f2","operatorToPubkey(address)":"00a1f4cb","operatorToPubkeyHash(address)":"de29fac0","pubkeyHashToOperator(bytes32)":"e8bb9ae6","registerBLSPublicKey(address,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(uint256,uint256))":"bf79ce58","registerOperator(address,bytes)":"3fb27952","registryCoordinator()":"6d14a987"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IRegistryCoordinator\",\"name\":\"_registryCoordinator\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct BN254.G1Point\",\"name\":\"pubkeyG1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"indexed\":false,\"internalType\":\"struct BN254.G2Point\",\"name\":\"pubkeyG2\",\"type\":\"tuple\"}],\"name\":\"NewPubkeyRegistration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"OperatorAddedToQuorums\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"OperatorRemovedFromQuorums\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"apkHistory\",\"outputs\":[{\"internalType\":\"bytes24\",\"name\":\"apkHash\",\"type\":\"bytes24\"},{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"currentApk\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"deregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getApk\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getApkHashAtBlockNumberAndIndex\",\"outputs\":[{\"internalType\":\"bytes24\",\"name\":\"\",\"type\":\"bytes24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getApkHistoryLength\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getApkIndicesAtBlockNumber\",\"outputs\":[{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getApkUpdateAtIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes24\",\"name\":\"apkHash\",\"type\":\"bytes24\"},{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"}],\"internalType\":\"struct IBLSApkRegistry.ApkUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubkeyHash\",\"type\":\"bytes32\"}],\"name\":\"getOperatorFromPubkeyHash\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getRegisteredPubkey\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"initializeQuorum\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"operatorToPubkey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"operatorToPubkeyHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"pubkeyHashToOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"pubkeyRegistrationSignature\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"pubkeyG1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"internalType\":\"struct BN254.G2Point\",\"name\":\"pubkeyG2\",\"type\":\"tuple\"}],\"internalType\":\"struct IBLSApkRegistry.PubkeyRegistrationParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"pubkeyRegistrationMessageHash\",\"type\":\"tuple\"}],\"name\":\"registerBLSPublicKey\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registryCoordinator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"deregisterOperator(address,bytes)\":{\"details\":\"access restricted to the RegistryCoordinatorPreconditions (these are assumed, not validated in this contract): 1) `quorumNumbers` has no duplicates 2) `quorumNumbers.length` != 0 3) `quorumNumbers` is ordered in ascending order 4) the operator is not already deregistered 5) `quorumNumbers` is a subset of the quorumNumbers that the operator is registered for\",\"params\":{\"operator\":\"The address of the operator to deregister.\",\"quorumNumbers\":\"The quorum numbers the operator is deregistering from, where each byte is an 8 bit integer quorumNumber.\"}},\"getApkHashAtBlockNumberAndIndex(uint8,uint32,uint256)\":{\"params\":{\"blockNumber\":\"is the number of the block for which the latest ApkHash will be retrieved\",\"index\":\"is the index of the apkUpdate being retrieved from the list of quorum apkUpdates in storage\",\"quorumNumber\":\"is the quorum whose ApkHash is being retrieved\"}},\"getApkIndicesAtBlockNumber(bytes,uint256)\":{\"details\":\"Returns the current indices if `blockNumber >= block.number`\"},\"getOperatorId(address)\":{\"details\":\"Returns zero in the event that the `operator` has never registered for the AVS\"},\"getRegisteredPubkey(address)\":{\"details\":\"Reverts if the operator has not registered a valid pubkey\"},\"initializeQuorum(uint8)\":{\"params\":{\"quorumNumber\":\"The number of the new quorum\"}},\"registerBLSPublicKey(address,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(uint256,uint256))\":{\"params\":{\"operator\":\"is the operator for whom the key is being registered\",\"params\":\"contains the G1 & G2 public keys of the operator, and a signature proving their ownership\",\"pubkeyRegistrationMessageHash\":\"is a hash that the operator must sign to prove key ownership\"}},\"registerOperator(address,bytes)\":{\"details\":\"access restricted to the RegistryCoordinatorPreconditions (these are assumed, not validated in this contract): 1) `quorumNumbers` has no duplicates 2) `quorumNumbers.length` != 0 3) `quorumNumbers` is ordered in ascending order 4) the operator is not already registered\",\"params\":{\"operator\":\"The address of the operator to register.\",\"quorumNumbers\":\"The quorum numbers the operator is registering for, where each byte is an 8 bit integer quorumNumber.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"NewPubkeyRegistration(address,(uint256,uint256),(uint256[2],uint256[2]))\":{\"notice\":\"Emitted when `operator` registers with the public keys `pubkeyG1` and `pubkeyG2`.\"}},\"kind\":\"user\",\"methods\":{\"apkHistory(uint8,uint256)\":{\"notice\":\"maps quorumNumber => historical aggregate pubkey updates\"},\"constructor\":{\"notice\":\"Sets the (immutable) `registryCoordinator` address\"},\"currentApk(uint8)\":{\"notice\":\"maps quorumNumber => current aggregate pubkey of quorum\"},\"deregisterOperator(address,bytes)\":{\"notice\":\"Deregisters the `operator`'s pubkey for the specified `quorumNumbers`.\"},\"getApk(uint8)\":{\"notice\":\"Returns the current APK for the provided `quorumNumber `\"},\"getApkHashAtBlockNumberAndIndex(uint8,uint32,uint256)\":{\"notice\":\"get hash of the apk of `quorumNumber` at `blockNumber` using the provided `index`; called by checkSignatures in BLSSignatureChecker.sol.\"},\"getApkHistoryLength(uint8)\":{\"notice\":\"Returns the length of ApkUpdates for the provided `quorumNumber`\"},\"getApkIndicesAtBlockNumber(bytes,uint256)\":{\"notice\":\"Returns the indices of the quorumApks index at `blockNumber` for the provided `quorumNumbers`\"},\"getApkUpdateAtIndex(uint8,uint256)\":{\"notice\":\"Returns the `ApkUpdate` struct at `index` in the list of APK updates for the `quorumNumber`\"},\"getOperatorFromPubkeyHash(bytes32)\":{\"notice\":\"Returns the operator address for the given `pubkeyHash`\"},\"getOperatorId(address)\":{\"notice\":\"returns the ID used to identify the `operator` within this AVS\"},\"getRegisteredPubkey(address)\":{\"notice\":\"Returns the pubkey and pubkey hash of an operator\"},\"initializeQuorum(uint8)\":{\"notice\":\"Initializes a new quorum by pushing its first apk update\"},\"operatorToPubkey(address)\":{\"notice\":\"maps operator address to pubkeyG1\"},\"operatorToPubkeyHash(address)\":{\"notice\":\"maps operator address to pubkey hash\"},\"pubkeyHashToOperator(bytes32)\":{\"notice\":\"maps pubkey hash to operator address\"},\"registerBLSPublicKey(address,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(uint256,uint256))\":{\"notice\":\"Called by the RegistryCoordinator register an operator as the owner of a BLS public key.\"},\"registerOperator(address,bytes)\":{\"notice\":\"Registers the `operator`'s pubkey for the specified `quorumNumbers`.\"},\"registryCoordinator()\":{\"notice\":\"the registry coordinator contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/BLSApkRegistry.sol\":\"BLSApkRegistry\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":ds-test/=lib/ds-test/src/\",\":eigenlayer-contracts/=lib/eigenlayer-contracts/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0x9906828f285cc76bbbe077f908d87c4bffd0a3bff9394f7a4b60a9d9a2672c1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4c0f43e14e50ac322685b5cd301459118e2770bdfb053f8f3ded08ee9fbf5bf9\",\"dweb:/ipfs/QmPQtY6KEUCbrKwweu8BvA7YjnXXxkkuZPyLSRGV5EoPTe\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0x1f8e17b0f952042132ca64e202022d83783b7f42ec364cd0cad1950ecb95a13d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a2be4c476902f25fb058f779e3d4e5b1182d9dc9fbdec518acbe9544c0d3c141\",\"dweb:/ipfs/QmdgZq6JrCD36Xry2vD8QSeGguGQ9TGWY2CMvKrhR9NQ6u\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0x22b7a17d53696412f80645f1fa65274ae89040bdc706262e3b6cc577dbafcaa4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b15002346892a48fd7cf9a8a4cf121e17ba133d21e4822e71fbffac85117d6b2\",\"dweb:/ipfs/QmRBPJUcRQ6uKmSvCYhhtVWcKCAWkQFSVZZwZR7HR42kiz\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x33a935182f77cfd508fc57ec8e45afc8dc3748e1e9b764d36bf90ae6466f257b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d3981b5bbf435cda04e2ed2f348f886ebf1500c18dd4bbf67b1f1bc0272e2d3f\",\"dweb:/ipfs/QmYHDzQx29ataM2ejRCXFcPxaPdxWqX8v7uwUAYoG9572w\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0xffafae142d5337a5c204519e8f82fe3a5fae137286ebf597fa50699cf12c2474\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b577a12f7788095b230fd069b36ba9b3cdb376a0b7c3d8ae71588e5bf0c2f574\",\"dweb:/ipfs/QmXd1cDzYpxecyFEwowLiBKKjzRHgV8cs1qvLwypdEbVYy\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x3b62ea6ee304cbab976ff206bcf55268f18a3291708021557f93f899f99862e4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b59a96fbf9940a7795d9a5fcb9e03939a87216317fb67872b7017285bf7eb49b\",\"dweb:/ipfs/QmdiH5AfYBvuTpzxTqfhorLG25t2dhSTKWh1cvBbYxGDJH\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x3d9eeecf96bd8d6427445db76b9a73f9861c6c3601001226bed2f7fb81e252e6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c836719a65892c5cffdba9de4e009e5f8a4e49aea9c5f46d57b15660c6c2d07d\",\"dweb:/ipfs/QmWuzNq2HdEH1hsRg8Jc95k1DZdNjXFb5ehkz9iLNNSqhT\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0xaeee2ac5cfcc3388b63bef2668fa435c65a4b433b52ce9f5013822c6ec875fa3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://86eb6d3da5b45f7509995ffa170eaaadffbdd6d43e50f0902d421bb93a7dfda6\",\"dweb:/ipfs/QmWaYcgtnaVpcekSP7LyY6AGrE3hRE3kZE4H4EKhsSysDG\"]},\"lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x633b5fb10209891f696a9c8db4d7327ed7f560a2e9710489e38a67daeda59a96\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c8381baaec3afa6b200420c093706974776dfd14f6887abe7457eb867351a068\",\"dweb:/ipfs/QmP9H9ttS1sJ6FrvMEefJhU6B4z1wMCjcYYZqVfsLXagJE\"]},\"lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0x1c5895f913e95682b0c371595cb1fa0d9c34ea921a0fbb5c32201b4315e80a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c470e449a3144fbaaa17b44823ba9cba901f063b04355c800bf62cabdd081cd4\",\"dweb:/ipfs/QmSJ8gaAF4WA1aXGmLesnnRo8fDZNEFnqZSGNkJnXLRM9R\"]},\"lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0xcf8422dfa6ccc393de19417570c6239e0fde54de9433ea258cbeb6937ff7f316\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://328e582c05b7311ad4107c46f554f15b5572b89a4ab6d067c73425b7418d946c\",\"dweb:/ipfs/QmdM81GQY5nok5oCTP8Cc6M8s1UC9f6ZbSWybaUxrZNrmY\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x1e4597b288e792b4530cbc7e97e28754e8457969e61a86d9e6e3a2857eb8a68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41fb94e2f5df15c1d070865db82373dc85e52bc3a2f85e3aa338488f8616532c\",\"dweb:/ipfs/QmeKTieHBEur42JbTkn2JChdGx3GT9YZbVCP7wj2ejQvMj\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x00c839ff53d07d19db2e7cfa1e5133f9ee90a8d64b0e2e57f50446a2d1a3a0e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dac621d015a68a5251b1e5d41dda0faf252699bf6e8bcf46a958b29964d9dd1\",\"dweb:/ipfs/QmP9axjgZv4cezAhALoTemM62sdLtMDJ9MGTxECnNwHgSJ\"]},\"src/BLSApkRegistry.sol\":{\"keccak256\":\"0xdd88bbc550a146eef8c694dd855db4e305594a4507967eeb31f2d26c47246e1d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b0bd9b34c723c85b51edda8ae3dd4b796ea96afb5d98facf91738fd5c689e0b1\",\"dweb:/ipfs/Qma8kTBq2SjSSNXxAf3e4ddkT3AkBZHHgxMFL4mjfZJv9B\"]},\"src/BLSApkRegistryStorage.sol\":{\"keccak256\":\"0xf61107c6cf909dc5745f6718b0e93ce2c4bdd947112bb3a18246d350b46edef3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b15007adf4937aeb7540d79fb566086d7510f36545a6d9d57c46fdd4f0625122\",\"dweb:/ipfs/QmVQa9GbCVcVCa9DHaQrNZpnVe1G6wznhctuPgTQLTTcVA\"]},\"src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IRegistryCoordinator","name":"_registryCoordinator","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"struct BN254.G1Point","name":"pubkeyG1","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}],"indexed":false},{"internalType":"struct BN254.G2Point","name":"pubkeyG2","type":"tuple","components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}],"indexed":false}],"type":"event","name":"NewPubkeyRegistration","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":false},{"internalType":"bytes32","name":"operatorId","type":"bytes32","indexed":false},{"internalType":"bytes","name":"quorumNumbers","type":"bytes","indexed":false}],"type":"event","name":"OperatorAddedToQuorums","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":false},{"internalType":"bytes32","name":"operatorId","type":"bytes32","indexed":false},{"internalType":"bytes","name":"quorumNumbers","type":"bytes","indexed":false}],"type":"event","name":"OperatorRemovedFromQuorums","anonymous":false},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"apkHistory","outputs":[{"internalType":"bytes24","name":"apkHash","type":"bytes24"},{"internalType":"uint32","name":"updateBlockNumber","type":"uint32"},{"internalType":"uint32","name":"nextUpdateBlockNumber","type":"uint32"}]},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function","name":"currentApk","outputs":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bytes","name":"quorumNumbers","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"deregisterOperator"},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"}],"stateMutability":"view","type":"function","name":"getApk","outputs":[{"internalType":"struct BN254.G1Point","name":"","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]}]},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"},{"internalType":"uint32","name":"blockNumber","type":"uint32"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApkHashAtBlockNumberAndIndex","outputs":[{"internalType":"bytes24","name":"","type":"bytes24"}]},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"}],"stateMutability":"view","type":"function","name":"getApkHistoryLength","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"bytes","name":"quorumNumbers","type":"bytes"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApkIndicesAtBlockNumber","outputs":[{"internalType":"uint32[]","name":"","type":"uint32[]"}]},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApkUpdateAtIndex","outputs":[{"internalType":"struct IBLSApkRegistry.ApkUpdate","name":"","type":"tuple","components":[{"internalType":"bytes24","name":"apkHash","type":"bytes24"},{"internalType":"uint32","name":"updateBlockNumber","type":"uint32"},{"internalType":"uint32","name":"nextUpdateBlockNumber","type":"uint32"}]}]},{"inputs":[{"internalType":"bytes32","name":"pubkeyHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getOperatorFromPubkeyHash","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getRegisteredPubkey","outputs":[{"internalType":"struct BN254.G1Point","name":"","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"initializeQuorum"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"operatorToPubkey","outputs":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"operatorToPubkeyHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"pubkeyHashToOperator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"struct IBLSApkRegistry.PubkeyRegistrationParams","name":"params","type":"tuple","components":[{"internalType":"struct BN254.G1Point","name":"pubkeyRegistrationSignature","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G1Point","name":"pubkeyG1","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G2Point","name":"pubkeyG2","type":"tuple","components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}]}]},{"internalType":"struct BN254.G1Point","name":"pubkeyRegistrationMessageHash","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"registerBLSPublicKey","outputs":[{"internalType":"bytes32","name":"operatorId","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bytes","name":"quorumNumbers","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[],"stateMutability":"view","type":"function","name":"registryCoordinator","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"deregisterOperator(address,bytes)":{"details":"access restricted to the RegistryCoordinatorPreconditions (these are assumed, not validated in this contract): 1) `quorumNumbers` has no duplicates 2) `quorumNumbers.length` != 0 3) `quorumNumbers` is ordered in ascending order 4) the operator is not already deregistered 5) `quorumNumbers` is a subset of the quorumNumbers that the operator is registered for","params":{"operator":"The address of the operator to deregister.","quorumNumbers":"The quorum numbers the operator is deregistering from, where each byte is an 8 bit integer quorumNumber."}},"getApkHashAtBlockNumberAndIndex(uint8,uint32,uint256)":{"params":{"blockNumber":"is the number of the block for which the latest ApkHash will be retrieved","index":"is the index of the apkUpdate being retrieved from the list of quorum apkUpdates in storage","quorumNumber":"is the quorum whose ApkHash is being retrieved"}},"getApkIndicesAtBlockNumber(bytes,uint256)":{"details":"Returns the current indices if `blockNumber >= block.number`"},"getOperatorId(address)":{"details":"Returns zero in the event that the `operator` has never registered for the AVS"},"getRegisteredPubkey(address)":{"details":"Reverts if the operator has not registered a valid pubkey"},"initializeQuorum(uint8)":{"params":{"quorumNumber":"The number of the new quorum"}},"registerBLSPublicKey(address,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(uint256,uint256))":{"params":{"operator":"is the operator for whom the key is being registered","params":"contains the G1 & G2 public keys of the operator, and a signature proving their ownership","pubkeyRegistrationMessageHash":"is a hash that the operator must sign to prove key ownership"}},"registerOperator(address,bytes)":{"details":"access restricted to the RegistryCoordinatorPreconditions (these are assumed, not validated in this contract): 1) `quorumNumbers` has no duplicates 2) `quorumNumbers.length` != 0 3) `quorumNumbers` is ordered in ascending order 4) the operator is not already registered","params":{"operator":"The address of the operator to register.","quorumNumbers":"The quorum numbers the operator is registering for, where each byte is an 8 bit integer quorumNumber."}}},"version":1},"userdoc":{"kind":"user","methods":{"apkHistory(uint8,uint256)":{"notice":"maps quorumNumber => historical aggregate pubkey updates"},"constructor":{"notice":"Sets the (immutable) `registryCoordinator` address"},"currentApk(uint8)":{"notice":"maps quorumNumber => current aggregate pubkey of quorum"},"deregisterOperator(address,bytes)":{"notice":"Deregisters the `operator`'s pubkey for the specified `quorumNumbers`."},"getApk(uint8)":{"notice":"Returns the current APK for the provided `quorumNumber `"},"getApkHashAtBlockNumberAndIndex(uint8,uint32,uint256)":{"notice":"get hash of the apk of `quorumNumber` at `blockNumber` using the provided `index`; called by checkSignatures in BLSSignatureChecker.sol."},"getApkHistoryLength(uint8)":{"notice":"Returns the length of ApkUpdates for the provided `quorumNumber`"},"getApkIndicesAtBlockNumber(bytes,uint256)":{"notice":"Returns the indices of the quorumApks index at `blockNumber` for the provided `quorumNumbers`"},"getApkUpdateAtIndex(uint8,uint256)":{"notice":"Returns the `ApkUpdate` struct at `index` in the list of APK updates for the `quorumNumber`"},"getOperatorFromPubkeyHash(bytes32)":{"notice":"Returns the operator address for the given `pubkeyHash`"},"getOperatorId(address)":{"notice":"returns the ID used to identify the `operator` within this AVS"},"getRegisteredPubkey(address)":{"notice":"Returns the pubkey and pubkey hash of an operator"},"initializeQuorum(uint8)":{"notice":"Initializes a new quorum by pushing its first apk update"},"operatorToPubkey(address)":{"notice":"maps operator address to pubkeyG1"},"operatorToPubkeyHash(address)":{"notice":"maps operator address to pubkey hash"},"pubkeyHashToOperator(bytes32)":{"notice":"maps pubkey hash to operator address"},"registerBLSPublicKey(address,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(uint256,uint256))":{"notice":"Called by the RegistryCoordinator register an operator as the owner of a BLS public key."},"registerOperator(address,bytes)":{"notice":"Registers the `operator`'s pubkey for the specified `quorumNumbers`."},"registryCoordinator()":{"notice":"the registry coordinator contract"}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/openzeppelin-contracts/","ds-test/=lib/ds-test/src/","eigenlayer-contracts/=lib/eigenlayer-contracts/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/BLSApkRegistry.sol":"BLSApkRegistry"},"evmVersion":"london","libraries":{}},"sources":{"lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0x9906828f285cc76bbbe077f908d87c4bffd0a3bff9394f7a4b60a9d9a2672c1e","urls":["bzz-raw://4c0f43e14e50ac322685b5cd301459118e2770bdfb053f8f3ded08ee9fbf5bf9","dweb:/ipfs/QmPQtY6KEUCbrKwweu8BvA7YjnXXxkkuZPyLSRGV5EoPTe"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0x1f8e17b0f952042132ca64e202022d83783b7f42ec364cd0cad1950ecb95a13d","urls":["bzz-raw://a2be4c476902f25fb058f779e3d4e5b1182d9dc9fbdec518acbe9544c0d3c141","dweb:/ipfs/QmdgZq6JrCD36Xry2vD8QSeGguGQ9TGWY2CMvKrhR9NQ6u"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0x22b7a17d53696412f80645f1fa65274ae89040bdc706262e3b6cc577dbafcaa4","urls":["bzz-raw://b15002346892a48fd7cf9a8a4cf121e17ba133d21e4822e71fbffac85117d6b2","dweb:/ipfs/QmRBPJUcRQ6uKmSvCYhhtVWcKCAWkQFSVZZwZR7HR42kiz"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x33a935182f77cfd508fc57ec8e45afc8dc3748e1e9b764d36bf90ae6466f257b","urls":["bzz-raw://d3981b5bbf435cda04e2ed2f348f886ebf1500c18dd4bbf67b1f1bc0272e2d3f","dweb:/ipfs/QmYHDzQx29ataM2ejRCXFcPxaPdxWqX8v7uwUAYoG9572w"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0xffafae142d5337a5c204519e8f82fe3a5fae137286ebf597fa50699cf12c2474","urls":["bzz-raw://b577a12f7788095b230fd069b36ba9b3cdb376a0b7c3d8ae71588e5bf0c2f574","dweb:/ipfs/QmXd1cDzYpxecyFEwowLiBKKjzRHgV8cs1qvLwypdEbVYy"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x3b62ea6ee304cbab976ff206bcf55268f18a3291708021557f93f899f99862e4","urls":["bzz-raw://b59a96fbf9940a7795d9a5fcb9e03939a87216317fb67872b7017285bf7eb49b","dweb:/ipfs/QmdiH5AfYBvuTpzxTqfhorLG25t2dhSTKWh1cvBbYxGDJH"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x3d9eeecf96bd8d6427445db76b9a73f9861c6c3601001226bed2f7fb81e252e6","urls":["bzz-raw://c836719a65892c5cffdba9de4e009e5f8a4e49aea9c5f46d57b15660c6c2d07d","dweb:/ipfs/QmWuzNq2HdEH1hsRg8Jc95k1DZdNjXFb5ehkz9iLNNSqhT"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0xaeee2ac5cfcc3388b63bef2668fa435c65a4b433b52ce9f5013822c6ec875fa3","urls":["bzz-raw://86eb6d3da5b45f7509995ffa170eaaadffbdd6d43e50f0902d421bb93a7dfda6","dweb:/ipfs/QmWaYcgtnaVpcekSP7LyY6AGrE3hRE3kZE4H4EKhsSysDG"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x633b5fb10209891f696a9c8db4d7327ed7f560a2e9710489e38a67daeda59a96","urls":["bzz-raw://c8381baaec3afa6b200420c093706974776dfd14f6887abe7457eb867351a068","dweb:/ipfs/QmP9H9ttS1sJ6FrvMEefJhU6B4z1wMCjcYYZqVfsLXagJE"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0x1c5895f913e95682b0c371595cb1fa0d9c34ea921a0fbb5c32201b4315e80a56","urls":["bzz-raw://c470e449a3144fbaaa17b44823ba9cba901f063b04355c800bf62cabdd081cd4","dweb:/ipfs/QmSJ8gaAF4WA1aXGmLesnnRo8fDZNEFnqZSGNkJnXLRM9R"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0xcf8422dfa6ccc393de19417570c6239e0fde54de9433ea258cbeb6937ff7f316","urls":["bzz-raw://328e582c05b7311ad4107c46f554f15b5572b89a4ab6d067c73425b7418d946c","dweb:/ipfs/QmdM81GQY5nok5oCTP8Cc6M8s1UC9f6ZbSWybaUxrZNrmY"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x1e4597b288e792b4530cbc7e97e28754e8457969e61a86d9e6e3a2857eb8a68f","urls":["bzz-raw://41fb94e2f5df15c1d070865db82373dc85e52bc3a2f85e3aa338488f8616532c","dweb:/ipfs/QmeKTieHBEur42JbTkn2JChdGx3GT9YZbVCP7wj2ejQvMj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x00c839ff53d07d19db2e7cfa1e5133f9ee90a8d64b0e2e57f50446a2d1a3a0e0","urls":["bzz-raw://3dac621d015a68a5251b1e5d41dda0faf252699bf6e8bcf46a958b29964d9dd1","dweb:/ipfs/QmP9axjgZv4cezAhALoTemM62sdLtMDJ9MGTxECnNwHgSJ"],"license":"MIT"},"src/BLSApkRegistry.sol":{"keccak256":"0xdd88bbc550a146eef8c694dd855db4e305594a4507967eeb31f2d26c47246e1d","urls":["bzz-raw://b0bd9b34c723c85b51edda8ae3dd4b796ea96afb5d98facf91738fd5c689e0b1","dweb:/ipfs/Qma8kTBq2SjSSNXxAf3e4ddkT3AkBZHHgxMFL4mjfZJv9B"],"license":"BUSL-1.1"},"src/BLSApkRegistryStorage.sol":{"keccak256":"0xf61107c6cf909dc5745f6718b0e93ce2c4bdd947112bb3a18246d350b46edef3","urls":["bzz-raw://b15007adf4937aeb7540d79fb566086d7510f36545a6d9d57c46fdd4f0625122","dweb:/ipfs/QmVQa9GbCVcVCa9DHaQrNZpnVe1G6wznhctuPgTQLTTcVA"],"license":"BUSL-1.1"},"src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"}},"version":1},"id":95}