{"abi":[{"type":"constructor","inputs":[{"name":"_registryCoordinator","type":"address","internalType":"contract IRegistryCoordinator"}],"stateMutability":"nonpayable"},{"type":"function","name":"blsApkRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IBLSApkRegistry"}],"stateMutability":"view"},{"type":"function","name":"checkSignatures","inputs":[{"name":"msgHash","type":"bytes32","internalType":"bytes32"},{"name":"quorumNumbers","type":"bytes","internalType":"bytes"},{"name":"referenceBlockNumber","type":"uint32","internalType":"uint32"},{"name":"params","type":"tuple","internalType":"struct IBLSSignatureChecker.NonSignerStakesAndSignature","components":[{"name":"nonSignerQuorumBitmapIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"nonSignerPubkeys","type":"tuple[]","internalType":"struct BN254.G1Point[]","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"quorumApks","type":"tuple[]","internalType":"struct BN254.G1Point[]","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"apkG2","type":"tuple","internalType":"struct BN254.G2Point","components":[{"name":"X","type":"uint256[2]","internalType":"uint256[2]"},{"name":"Y","type":"uint256[2]","internalType":"uint256[2]"}]},{"name":"sigma","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"quorumApkIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"totalStakeIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"nonSignerStakeIndices","type":"uint32[][]","internalType":"uint32[][]"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct IBLSSignatureChecker.QuorumStakeTotals","components":[{"name":"signedStakeForQuorum","type":"uint96[]","internalType":"uint96[]"},{"name":"totalStakeForQuorum","type":"uint96[]","internalType":"uint96[]"}]},{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"delegation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IDelegationManager"}],"stateMutability":"view"},{"type":"function","name":"registryCoordinator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRegistryCoordinator"}],"stateMutability":"view"},{"type":"function","name":"setStaleStakesForbidden","inputs":[{"name":"value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stakeRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IStakeRegistry"}],"stateMutability":"view"},{"type":"function","name":"staleStakesForbidden","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"trySignatureAndApkVerification","inputs":[{"name":"msgHash","type":"bytes32","internalType":"bytes32"},{"name":"apk","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"apkG2","type":"tuple","internalType":"struct BN254.G2Point","components":[{"name":"X","type":"uint256[2]","internalType":"uint256[2]"},{"name":"Y","type":"uint256[2]","internalType":"uint256[2]"}]},{"name":"sigma","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"pairingSuccessful","type":"bool","internalType":"bool"},{"name":"siganatureIsValid","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"StaleStakesForbiddenUpdate","inputs":[{"name":"value","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false}],"bytecode":{"object":"0x6101006040523480156200001257600080fd5b506040516200292c3803806200292c8339810160408190526200003591620001d0565b6001600160a01b038116608081905260408051636830483560e01b815290516368304835916004808201926020929091908290030181865afa15801562000080573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000a69190620001d0565b6001600160a01b031660a0816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001249190620001d0565b6001600160a01b031660c0816001600160a01b03168152505060a0516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200017e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a49190620001d0565b6001600160a01b031660e05250620001f7565b6001600160a01b0381168114620001cd57600080fd5b50565b600060208284031215620001e357600080fd5b8151620001f081620001b7565b9392505050565b60805160a05160c05160e0516126c462000268600039600081816101a10152610b7601526000818160d60152610d5801526000818161011501528181610f2e01526110f001526000818161013c0152818161034f0152818161083f015281816109d70152610c1301526126c46000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80636d14a9871161005b5780636d14a987146101375780636efb46361461015e578063b98d09081461017f578063df5cf7231461019c57600080fd5b8063171f1d5b1461008d578063416c7e5e146100bc5780635df45946146100d15780636830483514610110575b600080fd5b6100a061009b366004611fbe565b6101c3565b6040805192151583529015156020830152015b60405180910390f35b6100cf6100ca36600461200f565b61034d565b005b6100f87f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100b3565b6100f87f000000000000000000000000000000000000000000000000000000000000000081565b6100f87f000000000000000000000000000000000000000000000000000000000000000081565b61017161016c3660046122e7565b61048c565b6040516100b39291906123da565b60005461018c9060ff1681565b60405190151581526020016100b3565b6100f87f000000000000000000000000000000000000000000000000000000000000000081565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018787600001518860200151886000015160006002811061020b5761020b612423565b60200201518951600160200201518a6020015160006002811061023057610230612423565b60200201518b6020015160016002811061024c5761024c612423565b602090810291909101518c518d8301516040516102a99a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c6102cc9190612439565b905061033f6102e56102de88846113a5565b869061143c565b6102ed6114d0565b61033561032685610320604080518082018252600080825260209182015281518083019092526001825260029082015290565b906113a5565b61032f8c611590565b9061143c565b886201d4c0611620565b909890975095505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cf919061245b565b6001600160a01b0316336001600160a01b0316146104805760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a4015b60405180910390fd5b61048981611844565b50565b60408051808201909152606080825260208201526000846105035760405162461bcd60e51b8152602060048201526037602482015260008051602061266f83398151915260448201527f7265733a20656d7074792071756f72756d20696e7075740000000000000000006064820152608401610477565b6040830151518514801561051b575060a08301515185145b801561052b575060c08301515185145b801561053b575060e08301515185145b6105a55760405162461bcd60e51b8152602060048201526041602482015260008051602061266f83398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610477565b8251516020840151511461061d5760405162461bcd60e51b81526020600482015260446024820181905260008051602061266f833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610477565b4363ffffffff168463ffffffff161061068c5760405162461bcd60e51b815260206004820152603c602482015260008051602061266f83398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610477565b6040805180820182526000808252602080830191909152825180840190935260608084529083015290866001600160401b038111156106cd576106cd611e59565b6040519080825280602002602001820160405280156106f6578160200160208202803683370190505b506020820152866001600160401b0381111561071457610714611e59565b60405190808252806020026020018201604052801561073d578160200160208202803683370190505b50815260408051808201909152606080825260208201528560200151516001600160401b0381111561077157610771611e59565b60405190808252806020026020018201604052801561079a578160200160208202803683370190505b5081526020860151516001600160401b038111156107ba576107ba611e59565b6040519080825280602002602001820160405280156107e3578160200160208202803683370190505b50816020018190525060006108b58a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051639aa1653d60e01b815290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169350639aa1653d925060048083019260209291908290030181865afa15801561088c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b09190612484565b61188b565b905060005b876020015151811015610b50576108ff886020015182815181106108e0576108e0612423565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061091557610915612423565b602090810291909101015280156109d55760208301516109366001836124bd565b8151811061094657610946612423565b602002602001015160001c8360200151828151811061096757610967612423565b602002602001015160001c116109d5576040805162461bcd60e51b815260206004820152602481019190915260008051602061266f83398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610477565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec635184602001518381518110610a1a57610a1a612423565b60200260200101518b8b600001518581518110610a3957610a39612423565b60200260200101516040518463ffffffff1660e01b8152600401610a769392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab791906124d4565b6001600160c01b031683600001518281518110610ad657610ad6612423565b602002602001018181525050610b3c6102de610b108486600001518581518110610b0257610b02612423565b60200260200101511661191e565b8a602001518481518110610b2657610b26612423565b602002602001015161194990919063ffffffff16565b945080610b48816124fd565b9150506108ba565b5050610b5b83611a2d565b6000805491945060ff9091169081610b74576000610bf6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf69190612518565b905060005b8a811015611274578215610d56578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c428f8f86818110610c5257610c52612423565b60405160e085901b6001600160e01b031916815292013560f81c600483015250602401602060405180830381865afa158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb69190612518565b610cc09190612531565b11610d565760405162461bcd60e51b8152602060048201526066602482015260008051602061266f83398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610477565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac8d8d84818110610d9757610d97612423565b9050013560f81c60f81b60f81c8c8c60a001518581518110610dbb57610dbb612423565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015610e17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3b9190612549565b6001600160401b031916610e5e8a6040015183815181106108e0576108e0612423565b67ffffffffffffffff191614610efa5760405162461bcd60e51b8152602060048201526061602482015260008051602061266f83398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610477565b610f2a89604001518281518110610f1357610f13612423565b60200260200101518761143c90919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c568d8d84818110610f6d57610f6d612423565b9050013560f81c60f81b60f81c8c8c60c001518581518110610f9157610f91612423565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015610fed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110119190612574565b8560200151828151811061102757611027612423565b6001600160601b0390921660209283029190910182015285015180518290811061105357611053612423565b60200260200101518560000151828151811061107157611071612423565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a602001515181101561125f576110e9866000015182815181106110bb576110bb612423565b60200260200101518f8f868181106110d5576110d5612423565b600192013560f81c9290921c811614919050565b1561124d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae8f8f8681811061112f5761112f612423565b9050013560f81c60f81b60f81c8e8960200151858151811061115357611153612423565b60200260200101518f60e00151888151811061117157611171612423565b6020026020010151878151811061118a5761118a612423565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa1580156111ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112129190612574565b875180518590811061122657611226612423565b6020026020010181815161123a919061259d565b6001600160601b03169052506001909101905b80611257816124fd565b915050611095565b5050808061126c906124fd565b915050610bfb565b50505060008061128e8c868a606001518b608001516101c3565b91509150816112ff5760405162461bcd60e51b8152602060048201526043602482015260008051602061266f83398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610477565b806113605760405162461bcd60e51b8152602060048201526039602482015260008051602061266f83398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610477565b5050600087826020015160405160200161137b9291906125c5565b60408051808303601f190181529190528051602090910120929b929a509198505050505050505050565b60408051808201909152600080825260208201526113c1611d7f565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080156113f4576113f6565bfe5b50806114345760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610477565b505092915050565b6040805180820190915260008082526020820152611458611d9d565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080156113f45750806114345760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610477565b6114d8611dbb565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820190915260008082526020820152600080806115c060008051602061264f83398151915286612439565b90505b6115cc81611ac8565b909350915060008051602061264f833981519152828309831415611606576040805180820190915290815260208101919091529392505050565b60008051602061264f8339815191526001820890506115c3565b604080518082018252868152602080820186905282518084019093528683528201849052600091829190611652611de0565b60005b600281101561181757600061166b82600661260d565b905084826002811061167f5761167f612423565b60200201515183611691836000612531565b600c81106116a1576116a1612423565b60200201528482600281106116b8576116b8612423565b602002015160200151838260016116cf9190612531565b600c81106116df576116df612423565b60200201528382600281106116f6576116f6612423565b6020020151515183611709836002612531565b600c811061171957611719612423565b602002015283826002811061173057611730612423565b6020020151516001602002015183611749836003612531565b600c811061175957611759612423565b602002015283826002811061177057611770612423565b60200201516020015160006002811061178b5761178b612423565b60200201518361179c836004612531565b600c81106117ac576117ac612423565b60200201528382600281106117c3576117c3612423565b6020020151602001516001600281106117de576117de612423565b6020020151836117ef836005612531565b600c81106117ff576117ff612423565b6020020152508061180f816124fd565b915050611655565b50611820611dff565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b6000805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b60008061189784611b4a565b9050808360ff166001901b116119155760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610477565b90505b92915050565b6000805b8215611918576119336001846124bd565b90921691806119418161262c565b915050611922565b60408051808201909152600080825260208201526102008261ffff16106119a55760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610477565b8161ffff16600114156119b9575081611918565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610611a2257600161ffff871660ff83161c81161415611a0557611a02848461143c565b93505b611a0f838461143c565b92506201fffe600192831b1691016119d5565b509195945050505050565b60408051808201909152600080825260208201528151158015611a5257506020820151155b15611a70575050604080518082019091526000808252602082015290565b60405180604001604052808360000151815260200160008051602061264f8339815191528460200151611aa39190612439565b611abb9060008051602061264f8339815191526124bd565b905292915050565b919050565b6000808060008051602061264f833981519152600360008051602061264f8339815191528660008051602061264f833981519152888909090890506000611b3e827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f5260008051602061264f833981519152611cd7565b91959194509092505050565b600061010082511115611bd35760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610477565b8151611be157506000919050565b60008083600081518110611bf757611bf7612423565b0160200151600160f89190911c81901b92505b8451811015611cce57848181518110611c2557611c25612423565b0160200151600160f89190911c1b9150828211611cba5760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610477565b91811791611cc7816124fd565b9050611c0a565b50909392505050565b600080611ce2611dff565b611cea611e1d565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280156113f4575082611d745760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610477565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280611dce611e3b565b8152602001611ddb611e3b565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715611e9157611e91611e59565b60405290565b60405161010081016001600160401b0381118282101715611e9157611e91611e59565b604051601f8201601f191681016001600160401b0381118282101715611ee257611ee2611e59565b604052919050565b600060408284031215611efc57600080fd5b611f04611e6f565b9050813581526020820135602082015292915050565b600082601f830112611f2b57600080fd5b604051604081018181106001600160401b0382111715611f4d57611f4d611e59565b8060405250806040840185811115611f6457600080fd5b845b81811015611a22578035835260209283019201611f66565b600060808284031215611f9057600080fd5b611f98611e6f565b9050611fa48383611f1a565b8152611fb38360408401611f1a565b602082015292915050565b6000806000806101208587031215611fd557600080fd5b84359350611fe68660208701611eea565b9250611ff58660608701611f7e565b91506120048660e08701611eea565b905092959194509250565b60006020828403121561202157600080fd5b8135801515811461191557600080fd5b803563ffffffff81168114611ac357600080fd5b60006001600160401b0382111561205e5761205e611e59565b5060051b60200190565b600082601f83011261207957600080fd5b8135602061208e61208983612045565b611eba565b82815260059290921b840181019181810190868411156120ad57600080fd5b8286015b848110156120cf576120c281612031565b83529183019183016120b1565b509695505050505050565b600082601f8301126120eb57600080fd5b813560206120fb61208983612045565b82815260069290921b8401810191818101908684111561211a57600080fd5b8286015b848110156120cf576121308882611eea565b83529183019160400161211e565b600082601f83011261214f57600080fd5b8135602061215f61208983612045565b82815260059290921b8401810191818101908684111561217e57600080fd5b8286015b848110156120cf5780356001600160401b038111156121a15760008081fd5b6121af8986838b0101612068565b845250918301918301612182565b600061018082840312156121d057600080fd5b6121d8611e97565b905081356001600160401b03808211156121f157600080fd5b6121fd85838601612068565b8352602084013591508082111561221357600080fd5b61221f858386016120da565b6020840152604084013591508082111561223857600080fd5b612244858386016120da565b60408401526122568560608601611f7e565b60608401526122688560e08601611eea565b608084015261012084013591508082111561228257600080fd5b61228e85838601612068565b60a08401526101408401359150808211156122a857600080fd5b6122b485838601612068565b60c08401526101608401359150808211156122ce57600080fd5b506122db8482850161213e565b60e08301525092915050565b6000806000806000608086880312156122ff57600080fd5b8535945060208601356001600160401b038082111561231d57600080fd5b818801915088601f83011261233157600080fd5b81358181111561234057600080fd5b89602082850101111561235257600080fd5b602083019650945061236660408901612031565b9350606088013591508082111561237c57600080fd5b50612389888289016121bd565b9150509295509295909350565b600081518084526020808501945080840160005b838110156123cf5781516001600160601b0316875295820195908201906001016123aa565b509495945050505050565b60408152600083516040808401526123f56080840182612396565b90506020850151603f198483030160608501526124128282612396565b925050508260208301529392505050565b634e487b7160e01b600052603260045260246000fd5b60008261245657634e487b7160e01b600052601260045260246000fd5b500690565b60006020828403121561246d57600080fd5b81516001600160a01b038116811461191557600080fd5b60006020828403121561249657600080fd5b815160ff8116811461191557600080fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156124cf576124cf6124a7565b500390565b6000602082840312156124e657600080fd5b81516001600160c01b038116811461191557600080fd5b6000600019821415612511576125116124a7565b5060010190565b60006020828403121561252a57600080fd5b5051919050565b60008219821115612544576125446124a7565b500190565b60006020828403121561255b57600080fd5b815167ffffffffffffffff198116811461191557600080fd5b60006020828403121561258657600080fd5b81516001600160601b038116811461191557600080fd5b60006001600160601b03838116908316818110156125bd576125bd6124a7565b039392505050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b83811015612600578151855293820193908201906001016125e4565b5092979650505050505050565b6000816000190483118215151615612627576126276124a7565b500290565b600061ffff80831681811415612644576126446124a7565b600101939250505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47424c535369676e6174757265436865636b65722e636865636b5369676e617475a26469706673582212201274bad1b8b6b559f6e45669103493f6cfbf0881b6c16a5cda6fcaeb673e49c964736f6c634300080c0033","sourceMap":"771:15234:110:-:0;;;1645:289;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1710:42:110;;;;;;1778:36;;;-1:-1:-1;;;1778:36:110;;;;:34;;:36;;;;;;;;;;;;;;;1710:42;1778:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1762:52:110;;;-1:-1:-1;;;;;1762:52:110;;;;;1841:20;-1:-1:-1;;;;;1841:35:110;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1824:54:110;;;-1:-1:-1;;;;;1824:54:110;;;;;1901:13;;-1:-1:-1;;;;;1901:24:110;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1888:39:110;;;-1:-1:-1;771:15234:110;;14:153:169;-1:-1:-1;;;;;111:31:169;;101:42;;91:70;;157:1;154;147:12;91:70;14:153;:::o;172:303::-;272:6;325:2;313:9;304:7;300:23;296:32;293:52;;;341:1;338;331:12;293:52;373:9;367:16;392:53;439:5;392:53;:::i;:::-;464:5;172:303;-1:-1:-1;;;172:303:169:o;1085:300::-;771:15234:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c80636d14a9871161005b5780636d14a987146101375780636efb46361461015e578063b98d09081461017f578063df5cf7231461019c57600080fd5b8063171f1d5b1461008d578063416c7e5e146100bc5780635df45946146100d15780636830483514610110575b600080fd5b6100a061009b366004611fbe565b6101c3565b6040805192151583529015156020830152015b60405180910390f35b6100cf6100ca36600461200f565b61034d565b005b6100f87f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100b3565b6100f87f000000000000000000000000000000000000000000000000000000000000000081565b6100f87f000000000000000000000000000000000000000000000000000000000000000081565b61017161016c3660046122e7565b61048c565b6040516100b39291906123da565b60005461018c9060ff1681565b60405190151581526020016100b3565b6100f87f000000000000000000000000000000000000000000000000000000000000000081565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018787600001518860200151886000015160006002811061020b5761020b612423565b60200201518951600160200201518a6020015160006002811061023057610230612423565b60200201518b6020015160016002811061024c5761024c612423565b602090810291909101518c518d8301516040516102a99a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c6102cc9190612439565b905061033f6102e56102de88846113a5565b869061143c565b6102ed6114d0565b61033561032685610320604080518082018252600080825260209182015281518083019092526001825260029082015290565b906113a5565b61032f8c611590565b9061143c565b886201d4c0611620565b909890975095505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cf919061245b565b6001600160a01b0316336001600160a01b0316146104805760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a4015b60405180910390fd5b61048981611844565b50565b60408051808201909152606080825260208201526000846105035760405162461bcd60e51b8152602060048201526037602482015260008051602061266f83398151915260448201527f7265733a20656d7074792071756f72756d20696e7075740000000000000000006064820152608401610477565b6040830151518514801561051b575060a08301515185145b801561052b575060c08301515185145b801561053b575060e08301515185145b6105a55760405162461bcd60e51b8152602060048201526041602482015260008051602061266f83398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610477565b8251516020840151511461061d5760405162461bcd60e51b81526020600482015260446024820181905260008051602061266f833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610477565b4363ffffffff168463ffffffff161061068c5760405162461bcd60e51b815260206004820152603c602482015260008051602061266f83398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610477565b6040805180820182526000808252602080830191909152825180840190935260608084529083015290866001600160401b038111156106cd576106cd611e59565b6040519080825280602002602001820160405280156106f6578160200160208202803683370190505b506020820152866001600160401b0381111561071457610714611e59565b60405190808252806020026020018201604052801561073d578160200160208202803683370190505b50815260408051808201909152606080825260208201528560200151516001600160401b0381111561077157610771611e59565b60405190808252806020026020018201604052801561079a578160200160208202803683370190505b5081526020860151516001600160401b038111156107ba576107ba611e59565b6040519080825280602002602001820160405280156107e3578160200160208202803683370190505b50816020018190525060006108b58a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051639aa1653d60e01b815290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169350639aa1653d925060048083019260209291908290030181865afa15801561088c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b09190612484565b61188b565b905060005b876020015151811015610b50576108ff886020015182815181106108e0576108e0612423565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061091557610915612423565b602090810291909101015280156109d55760208301516109366001836124bd565b8151811061094657610946612423565b602002602001015160001c8360200151828151811061096757610967612423565b602002602001015160001c116109d5576040805162461bcd60e51b815260206004820152602481019190915260008051602061266f83398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610477565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec635184602001518381518110610a1a57610a1a612423565b60200260200101518b8b600001518581518110610a3957610a39612423565b60200260200101516040518463ffffffff1660e01b8152600401610a769392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab791906124d4565b6001600160c01b031683600001518281518110610ad657610ad6612423565b602002602001018181525050610b3c6102de610b108486600001518581518110610b0257610b02612423565b60200260200101511661191e565b8a602001518481518110610b2657610b26612423565b602002602001015161194990919063ffffffff16565b945080610b48816124fd565b9150506108ba565b5050610b5b83611a2d565b6000805491945060ff9091169081610b74576000610bf6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf69190612518565b905060005b8a811015611274578215610d56578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c428f8f86818110610c5257610c52612423565b60405160e085901b6001600160e01b031916815292013560f81c600483015250602401602060405180830381865afa158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb69190612518565b610cc09190612531565b11610d565760405162461bcd60e51b8152602060048201526066602482015260008051602061266f83398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610477565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac8d8d84818110610d9757610d97612423565b9050013560f81c60f81b60f81c8c8c60a001518581518110610dbb57610dbb612423565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015610e17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3b9190612549565b6001600160401b031916610e5e8a6040015183815181106108e0576108e0612423565b67ffffffffffffffff191614610efa5760405162461bcd60e51b8152602060048201526061602482015260008051602061266f83398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610477565b610f2a89604001518281518110610f1357610f13612423565b60200260200101518761143c90919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c568d8d84818110610f6d57610f6d612423565b9050013560f81c60f81b60f81c8c8c60c001518581518110610f9157610f91612423565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015610fed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110119190612574565b8560200151828151811061102757611027612423565b6001600160601b0390921660209283029190910182015285015180518290811061105357611053612423565b60200260200101518560000151828151811061107157611071612423565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a602001515181101561125f576110e9866000015182815181106110bb576110bb612423565b60200260200101518f8f868181106110d5576110d5612423565b600192013560f81c9290921c811614919050565b1561124d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae8f8f8681811061112f5761112f612423565b9050013560f81c60f81b60f81c8e8960200151858151811061115357611153612423565b60200260200101518f60e00151888151811061117157611171612423565b6020026020010151878151811061118a5761118a612423565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa1580156111ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112129190612574565b875180518590811061122657611226612423565b6020026020010181815161123a919061259d565b6001600160601b03169052506001909101905b80611257816124fd565b915050611095565b5050808061126c906124fd565b915050610bfb565b50505060008061128e8c868a606001518b608001516101c3565b91509150816112ff5760405162461bcd60e51b8152602060048201526043602482015260008051602061266f83398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610477565b806113605760405162461bcd60e51b8152602060048201526039602482015260008051602061266f83398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610477565b5050600087826020015160405160200161137b9291906125c5565b60408051808303601f190181529190528051602090910120929b929a509198505050505050505050565b60408051808201909152600080825260208201526113c1611d7f565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080156113f4576113f6565bfe5b50806114345760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610477565b505092915050565b6040805180820190915260008082526020820152611458611d9d565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080156113f45750806114345760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610477565b6114d8611dbb565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820190915260008082526020820152600080806115c060008051602061264f83398151915286612439565b90505b6115cc81611ac8565b909350915060008051602061264f833981519152828309831415611606576040805180820190915290815260208101919091529392505050565b60008051602061264f8339815191526001820890506115c3565b604080518082018252868152602080820186905282518084019093528683528201849052600091829190611652611de0565b60005b600281101561181757600061166b82600661260d565b905084826002811061167f5761167f612423565b60200201515183611691836000612531565b600c81106116a1576116a1612423565b60200201528482600281106116b8576116b8612423565b602002015160200151838260016116cf9190612531565b600c81106116df576116df612423565b60200201528382600281106116f6576116f6612423565b6020020151515183611709836002612531565b600c811061171957611719612423565b602002015283826002811061173057611730612423565b6020020151516001602002015183611749836003612531565b600c811061175957611759612423565b602002015283826002811061177057611770612423565b60200201516020015160006002811061178b5761178b612423565b60200201518361179c836004612531565b600c81106117ac576117ac612423565b60200201528382600281106117c3576117c3612423565b6020020151602001516001600281106117de576117de612423565b6020020151836117ef836005612531565b600c81106117ff576117ff612423565b6020020152508061180f816124fd565b915050611655565b50611820611dff565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b6000805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b60008061189784611b4a565b9050808360ff166001901b116119155760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610477565b90505b92915050565b6000805b8215611918576119336001846124bd565b90921691806119418161262c565b915050611922565b60408051808201909152600080825260208201526102008261ffff16106119a55760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610477565b8161ffff16600114156119b9575081611918565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610611a2257600161ffff871660ff83161c81161415611a0557611a02848461143c565b93505b611a0f838461143c565b92506201fffe600192831b1691016119d5565b509195945050505050565b60408051808201909152600080825260208201528151158015611a5257506020820151155b15611a70575050604080518082019091526000808252602082015290565b60405180604001604052808360000151815260200160008051602061264f8339815191528460200151611aa39190612439565b611abb9060008051602061264f8339815191526124bd565b905292915050565b919050565b6000808060008051602061264f833981519152600360008051602061264f8339815191528660008051602061264f833981519152888909090890506000611b3e827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f5260008051602061264f833981519152611cd7565b91959194509092505050565b600061010082511115611bd35760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610477565b8151611be157506000919050565b60008083600081518110611bf757611bf7612423565b0160200151600160f89190911c81901b92505b8451811015611cce57848181518110611c2557611c25612423565b0160200151600160f89190911c1b9150828211611cba5760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610477565b91811791611cc7816124fd565b9050611c0a565b50909392505050565b600080611ce2611dff565b611cea611e1d565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280156113f4575082611d745760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610477565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280611dce611e3b565b8152602001611ddb611e3b565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715611e9157611e91611e59565b60405290565b60405161010081016001600160401b0381118282101715611e9157611e91611e59565b604051601f8201601f191681016001600160401b0381118282101715611ee257611ee2611e59565b604052919050565b600060408284031215611efc57600080fd5b611f04611e6f565b9050813581526020820135602082015292915050565b600082601f830112611f2b57600080fd5b604051604081018181106001600160401b0382111715611f4d57611f4d611e59565b8060405250806040840185811115611f6457600080fd5b845b81811015611a22578035835260209283019201611f66565b600060808284031215611f9057600080fd5b611f98611e6f565b9050611fa48383611f1a565b8152611fb38360408401611f1a565b602082015292915050565b6000806000806101208587031215611fd557600080fd5b84359350611fe68660208701611eea565b9250611ff58660608701611f7e565b91506120048660e08701611eea565b905092959194509250565b60006020828403121561202157600080fd5b8135801515811461191557600080fd5b803563ffffffff81168114611ac357600080fd5b60006001600160401b0382111561205e5761205e611e59565b5060051b60200190565b600082601f83011261207957600080fd5b8135602061208e61208983612045565b611eba565b82815260059290921b840181019181810190868411156120ad57600080fd5b8286015b848110156120cf576120c281612031565b83529183019183016120b1565b509695505050505050565b600082601f8301126120eb57600080fd5b813560206120fb61208983612045565b82815260069290921b8401810191818101908684111561211a57600080fd5b8286015b848110156120cf576121308882611eea565b83529183019160400161211e565b600082601f83011261214f57600080fd5b8135602061215f61208983612045565b82815260059290921b8401810191818101908684111561217e57600080fd5b8286015b848110156120cf5780356001600160401b038111156121a15760008081fd5b6121af8986838b0101612068565b845250918301918301612182565b600061018082840312156121d057600080fd5b6121d8611e97565b905081356001600160401b03808211156121f157600080fd5b6121fd85838601612068565b8352602084013591508082111561221357600080fd5b61221f858386016120da565b6020840152604084013591508082111561223857600080fd5b612244858386016120da565b60408401526122568560608601611f7e565b60608401526122688560e08601611eea565b608084015261012084013591508082111561228257600080fd5b61228e85838601612068565b60a08401526101408401359150808211156122a857600080fd5b6122b485838601612068565b60c08401526101608401359150808211156122ce57600080fd5b506122db8482850161213e565b60e08301525092915050565b6000806000806000608086880312156122ff57600080fd5b8535945060208601356001600160401b038082111561231d57600080fd5b818801915088601f83011261233157600080fd5b81358181111561234057600080fd5b89602082850101111561235257600080fd5b602083019650945061236660408901612031565b9350606088013591508082111561237c57600080fd5b50612389888289016121bd565b9150509295509295909350565b600081518084526020808501945080840160005b838110156123cf5781516001600160601b0316875295820195908201906001016123aa565b509495945050505050565b60408152600083516040808401526123f56080840182612396565b90506020850151603f198483030160608501526124128282612396565b925050508260208301529392505050565b634e487b7160e01b600052603260045260246000fd5b60008261245657634e487b7160e01b600052601260045260246000fd5b500690565b60006020828403121561246d57600080fd5b81516001600160a01b038116811461191557600080fd5b60006020828403121561249657600080fd5b815160ff8116811461191557600080fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156124cf576124cf6124a7565b500390565b6000602082840312156124e657600080fd5b81516001600160c01b038116811461191557600080fd5b6000600019821415612511576125116124a7565b5060010190565b60006020828403121561252a57600080fd5b5051919050565b60008219821115612544576125446124a7565b500190565b60006020828403121561255b57600080fd5b815167ffffffffffffffff198116811461191557600080fd5b60006020828403121561258657600080fd5b81516001600160601b038116811461191557600080fd5b60006001600160601b03838116908316818110156125bd576125bd6124a7565b039392505050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b83811015612600578151855293820193908201906001016125e4565b5092979650505050505050565b6000816000190483118215151615612627576126276124a7565b500290565b600061ffff80831681811415612644576126446124a7565b600101939250505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47424c535369676e6174757265436865636b65722e636865636b5369676e617475a26469706673582212201274bad1b8b6b559f6e45669103493f6cfbf0881b6c16a5cda6fcaeb673e49c964736f6c634300080c0033","sourceMap":"771:15234:110:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14649:1081;;;;;;:::i;:::-;;:::i;:::-;;;;2933:14:169;;2926:22;2908:41;;2992:14;;2985:22;2980:2;2965:18;;2958:50;2881:18;14649:1081:110;;;;;;;;2171:123;;;;;;:::i;:::-;;:::i;:::-;;1122:47;;;;;;;;-1:-1:-1;;;;;3486:32:169;;;3468:51;;3456:2;3441:18;1122:47:110;3297:228:169;1071:45:110;;;;;1008:57;;;;;4417:9750;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1360:32::-;;;;;;;;;;;;10489:14:169;;10482:22;10464:41;;10452:2;10437:18;1360:32:110;10324:187:169;1175:46:110;;;;;14649:1081;14847:22;14871;14980:13;2037:77:129;15082:7:110;15111:3;:5;;;15138:3;:5;;;15165;:7;;;15173:1;15165:10;;;;;;;:::i;:::-;;;;;15197:7;;15205:1;15197:10;;;;15229:5;:7;;;15237:1;15229:10;;;;;;;:::i;:::-;;;;;15261:5;:7;;;15269:1;15261:10;;;;;;;:::i;:::-;;;;;;;;;;15293:7;;15322;;;;15044:303;;;;;;;;;;;11236:19:169;;;11280:2;11271:12;;11264:28;;;;11317:2;11308:12;;11301:28;;;;11354:2;11345:12;;11338:28;;;;11391:3;11382:13;;11375:29;;;;11429:3;11420:13;;11413:29;11467:3;11458:13;;11451:29;11505:3;11496:13;;11489:29;11543:3;11534:13;;11527:29;11581:3;11572:13;;10883:708;15044:303:110;;;;;;;;;;;;;15017:344;;;;;;14996:375;;:394;;;;:::i;:::-;14980:410;-1:-1:-1;15473:250:110;15504:33;15515:21;:3;14980:410;15515:14;:21::i;:::-;15504:5;;:10;:33::i;:::-;15551:22;:20;:22::i;:::-;15587:67;15616:37;15647:5;15616:19;-1:-1:-1;;;;;;;;;;;;;;;;;2392:13:129;;;;;;;;2400:1;2392:13;;2403:1;2392:13;;;;;2313:99;15616:19:110;:30;;:37::i;:::-;15587:23;15602:7;15587:14;:23::i;:::-;:28;;:67::i;:::-;15668:5;994:7;15473:17;:250::i;:::-;15432:291;;;;-1:-1:-1;14649:1081:110;-1:-1:-1;;;;;;14649:1081:110:o;2171:123::-;1476:19;-1:-1:-1;;;;;1476:25:110;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1462:41:110;:10;-1:-1:-1;;;;;1462:41:110;;1441:180;;;;-1:-1:-1;;;1441:180:110;;12439:2:169;1441:180:110;;;12421:21:169;12478:2;12458:18;;;12451:30;12517:34;12497:18;;;12490:62;12588:34;12568:18;;;12561:62;12660:30;12639:19;;;12632:59;12708:19;;1441:180:110;;;;;;;;;2256:31:::1;2281:5;2256:24;:31::i;:::-;2171:123:::0;:::o;4417:9750::-;-1:-1:-1;;;;;;;;;;;;;;;;;4646:7:110;4686:25;4665:127;;;;-1:-1:-1;;;4665:127:110;;12940:2:169;4665:127:110;;;12922:21:169;12979:2;12959:18;;;12952:30;-1:-1:-1;;;;;;;;;;;12998:18:169;;;12991:62;13089:25;13069:18;;;13062:53;13132:19;;4665:127:110;12738:419:169;4665:127:110;4849:17;;;;:24;4825:48;;4824:126;;;;-1:-1:-1;4919:23:110;;;;:30;4895:54;;4824:126;:203;;;;-1:-1:-1;4995:24:110;;;;:31;4971:55;;4824:203;:284;;;;-1:-1:-1;5072:28:110;;;;:35;5048:59;;4824:284;4803:396;;;;-1:-1:-1;;;4803:396:110;;13364:2:169;4803:396:110;;;13346:21:169;13403:2;13383:18;;;13376:30;-1:-1:-1;;;;;;;;;;;13422:18:169;;;13415:62;13513:34;13493:18;;;13486:62;-1:-1:-1;;;13564:19:169;;;13557:32;13606:19;;4803:396:110;13162:469:169;4803:396:110;5281:35;;:42;5231:23;;;;:30;:92;5210:207;;;;-1:-1:-1;;;5210:207:110;;13838:2:169;5210:207:110;;;13820:21:169;13877:2;13857:18;;;13850:30;;;-1:-1:-1;;;;;;;;;;;13896:18:169;;;13889:62;13987:34;13967:18;;;13960:62;-1:-1:-1;;;14038:19:169;;;14031:35;14083:19;;5210:207:110;13636:472:169;5210:207:110;5479:12;5449:43;;:20;:43;;;5428:150;;;;-1:-1:-1;;;5428:150:110;;14315:2:169;5428:150:110;;;14297:21:169;14354:2;14334:18;;;14327:30;-1:-1:-1;;;;;;;;;;;14373:18:169;;;14366:62;14464:30;14444:18;;;14437:58;14512:19;;5428:150:110;14113:424:169;5428:150:110;6095:19;;;;;;;;6068:24;6095:19;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;6095:19:110;6451:13;-1:-1:-1;;;;;6438:34:110;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6438:34:110;-1:-1:-1;6404:31:110;;;:68;6530:13;-1:-1:-1;;;;;6517:34:110;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6517:34:110;-1:-1:-1;6482:69:110;;-1:-1:-1;;;;;;;;;;;;;;;;;6657:6:110;:23;;;:30;-1:-1:-1;;;;;6630:67:110;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6630:67:110;-1:-1:-1;6603:94:110;;6747:23;;;;:30;-1:-1:-1;;;;;6733:45:110;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6733:45:110;;6707:10;:23;;:71;;;;6957:27;6987:133;7042:13;;6987:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7073:33:110;;;-1:-1:-1;;;7073:33:110;;;;-1:-1:-1;;;;;7073:19:110;:31;;-1:-1:-1;7073:31:110;;-1:-1:-1;7073:33:110;;;;;;;;;;;;;;:31;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6987:37;:133::i;:::-;6957:163;;7140:9;7135:1728;7159:6;:23;;;:30;7155:1;:34;7135:1728;;;7451:82;:6;:44;;;7496:1;7451:47;;;;;;;;:::i;:::-;;;;;;;10534:9:129;;10473:16;10524:20;;;10580:4;10576:13;;;10570:20;10557:34;;;10629:4;10616:18;;;10404:246;7451:82:110;7422:10;:23;;;7446:1;7422:26;;;;;;;;:::i;:::-;;;;;;;;;;:111;7555:6;;7551:305;;7692:23;;;;7716:5;7720:1;7716;:5;:::i;:::-;7692:30;;;;;;;;:::i;:::-;;;;;;;7684:39;;7626:10;:23;;;7650:1;7626:26;;;;;;;;:::i;:::-;;;;;;;7618:35;;:105;7585:252;;;;;-1:-1:-1;;;7585:252:110;;15284:2:169;7585:252:110;;;15266:21:169;15303:18;;;15296:30;;;;-1:-1:-1;;;;;;;;;;;15342:18:169;;;15335:62;15433:34;15413:18;;;15406:62;15485:19;;7585:252:110;15082:428:169;7585:252:110;7996:19;-1:-1:-1;;;;;7996:76:110;;8111:10;:23;;;8135:1;8111:26;;;;;;;;:::i;:::-;;;;;;;8176:20;8229:6;:35;;;8265:1;8229:38;;;;;;;;:::i;:::-;;;;;;;7996:294;;;;;;;;;;;;;;;;15714:25:169;;;15758:10;15804:15;;;15799:2;15784:18;;15777:43;15856:15;15851:2;15836:18;;15829:43;15702:2;15687:18;;15515:363;7996:294:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7966:324:110;:10;:24;;;7991:1;7966:27;;;;;;;;:::i;:::-;;;;;;:324;;;;;8581:267;8611:219;8679:129;8763:19;8733:10;:24;;;8758:1;8733:27;;;;;;;;:::i;:::-;;;;;;;:49;8679:24;:129::i;:::-;8611:6;:23;;;8635:1;8611:26;;;;;;;;:::i;:::-;;;;;;;:42;;:219;;;;:::i;8581:267::-;8575:273;-1:-1:-1;7191:3:110;;;;:::i;:::-;;;;7135:1728;;;;6789:2084;9146:12;:3;:10;:12::i;:::-;9461:26;9490:20;;9140:18;;-1:-1:-1;9490:20:110;;;;;;9556:97;;9652:1;9556:97;;;9596:10;-1:-1:-1;;;;;9596:35:110;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9524:129;;9673:9;9668:3451;9688:24;;;9668:3451;;;9896:21;9892:478;;;10179:20;9974:225;;10127:21;9974:19;-1:-1:-1;;;;;9974:43:110;;10053:13;;10067:1;10053:16;;;;;;;:::i;:::-;9974:122;;;;;;-1:-1:-1;;;;;;9974:122:110;;;10053:16;;;;;9974:122;;;16649:36:169;-1:-1:-1;16622:18:169;;9974:122:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:174;;;;:::i;:::-;:225;9941:410;;;;-1:-1:-1;;;9941:410:110;;17031:2:169;9941:410:110;;;17013:21:169;17070:3;17050:18;;;17043:31;-1:-1:-1;;;;;;;;;;;17090:18:169;;;17083:62;17181:34;17161:18;;;17154:62;17253:34;17232:19;;;17225:63;-1:-1:-1;;;17304:19:169;;;17297:37;17351:19;;9941:410:110;16829:547:169;9941:410:110;10638:14;-1:-1:-1;;;;;10638:46:110;;10735:13;;10749:1;10735:16;;;;;;;:::i;:::-;;;;;;;;;10729:23;;10795:20;10852:6;:23;;;10876:1;10852:26;;;;;;;;:::i;:::-;;;;;;;;;;;10638:267;;-1:-1:-1;;;;;;10638:267:110;;;;;;;17606:4:169;17594:17;;;10638:267:110;;;17576:36:169;10638:267:110;17677:15:169;;;17657:18;;;17650:43;17729:15;17709:18;;;17702:43;17549:18;;10638:267:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10567:338:110;;10575:34;:6;:17;;;10593:1;10575:20;;;;;;;;:::i;:34::-;-1:-1:-1;;10567:338:110;;10538:506;;;;-1:-1:-1;;;10538:506:110;;18257:2:169;10538:506:110;;;18239:21:169;18296:2;18276:18;;;18269:30;-1:-1:-1;;;;;;;;;;;18315:18:169;;;18308:62;18406:34;18386:18;;;18379:62;18478:34;18457:19;;;18450:63;-1:-1:-1;;;18529:19:169;;;18522:32;18571:19;;10538:506:110;18055:541:169;10538:506:110;11068:30;11077:6;:17;;;11095:1;11077:20;;;;;;;;:::i;:::-;;;;;;;11068:3;:8;;:30;;;;:::i;:::-;11062:36;;11252:13;-1:-1:-1;;;;;11252:70:110;;11369:13;;11383:1;11369:16;;;;;;;:::i;:::-;;;;;;;;;11363:23;;11425:20;11478:6;:24;;;11503:1;11478:27;;;;;;;;:::i;:::-;;;;;;;;;;;11252:276;;-1:-1:-1;;;;;;11252:276:110;;;;;;;17606:4:169;17594:17;;;11252:276:110;;;17576:36:169;11252:276:110;17677:15:169;;;17657:18;;;17650:43;17729:15;17709:18;;;17702:43;17549:18;;11252:276:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11215:11;:31;;;11247:1;11215:34;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11215:313:110;;;:34;;;;;;;;;;:313;11584:52;;;:55;;11637:1;;11584:55;;;;;;:::i;:::-;;;;;;;11546:11;:32;;;11579:1;11546:35;;;;;;;;:::i;:::-;;;;;;:93;-1:-1:-1;;;;;11546:93:110;;;-1:-1:-1;;;;;11546:93:110;;;;;11726:31;12009:9;12004:1101;12028:6;:23;;;:30;12024:1;:34;12004:1101;;;12225:153;12272:10;:24;;;12297:1;12272:27;;;;;;;;:::i;:::-;;;;;;;12335:13;;12349:1;12335:16;;;;;;;:::i;:::-;7404:1:130;12335:16:110;;;;;7387:13:130;;;;7386:19;;7380:26;;;-1:-1:-1;7292:121:130;12225:153:110;12196:891;;;12466:13;-1:-1:-1;;;;;12466:72:110;;12593:13;;12607:1;12593:16;;;;;;;:::i;:::-;;;;;;;;;12587:23;;12657:20;12723:10;:23;;;12747:1;12723:26;;;;;;;;:::i;:::-;;;;;;;12790:6;:28;;;12819:1;12790:31;;;;;;;;:::i;:::-;;;;;;;12859:23;12790:126;;;;;;;;:::i;:::-;;;;;;;;;;;12466:481;;-1:-1:-1;;;;;;12466:481:110;;;;;;;19156:4:169;19144:17;;;12466:481:110;;;19126:36:169;12466:481:110;19227:15:169;;;19207:18;;;19200:43;19259:18;;;19252:34;;;;19322:15;19302:18;;;19295:43;19098:19;;12466:481:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12427:32;;:35;;12460:1;;12427:35;;;;;;:::i;:::-;;;;;;:520;;;;;;;:::i;:::-;-1:-1:-1;;;;;12427:520:110;;;-1:-1:-1;13013:25:110;;;;;12196:891;12060:3;;;;:::i;:::-;;;;12004:1101;;;;9719:3400;9714:3;;;;;:::i;:::-;;;;9668:3451;;;;9447:3682;;13206:22;13246:21;13284:170;13336:7;13365:3;13390:6;:12;;;13424:6;:12;;;13284:30;:170::i;:::-;13188:266;;;;13493:17;13468:143;;;;-1:-1:-1;;;13468:143:110;;19793:2:169;13468:143:110;;;19775:21:169;19832:2;19812:18;;;19805:30;-1:-1:-1;;;;;;;;;;;19851:18:169;;;19844:62;19942:34;19922:18;;;19915:62;-1:-1:-1;;;19993:19:169;;;19986:34;20037:19;;13468:143:110;19591:471:169;13468:143:110;13650:16;13625:132;;;;-1:-1:-1;;;13625:132:110;;20269:2:169;13625:132:110;;;20251:21:169;20308:2;20288:18;;;20281:30;-1:-1:-1;;;;;;;;;;;20327:18:169;;;20320:62;20418:27;20398:18;;;20391:55;20463:19;;13625:132:110;20067:421:169;13625:132:110;13138:630;;13842:27;13912:20;13934:10;:23;;;13895:63;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;13895:63:110;;;;;;13872:96;;13895:63;13872:96;;;;14127:11;;13872:96;;-1:-1:-1;4417:9750:110;;-1:-1:-1;;;;;;;;;4417:9750:110:o;7084:580:129:-;-1:-1:-1;;;;;;;;;;;;;;;;;7184:23:129;;:::i;:::-;7228:3;;7217:14;;:8;7252:3;;;;7241:8;;;:14;7265:8;;;;:12;;;-1:-1:-1;;7452:1:129;7446:4;7217:14;7436:1;7429:4;7422:5;7418:16;7407:53;7396:64;-1:-1:-1;7396:64:129;7557:48;;;;7530:75;;7557:48;7582:9;7530:75;;7632:7;7624:33;;;;-1:-1:-1;;;7624:33:129;;21344:2:169;7624:33:129;;;21326:21:169;21383:2;21363:18;;;21356:30;-1:-1:-1;;;21402:18:169;;;21395:43;21455:18;;7624:33:129;21142:337:169;7624:33:129;7174:490;;7084:580;;;;:::o;4823:615::-;-1:-1:-1;;;;;;;;;;;;;;;;;4926:23:129;;:::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:129;5219:4;4959:15;5209:1;5202:4;5195:5;5191:16;5180:53;5169:64;-1:-1:-1;5169:64:129;5330:48;;;;5303:75;5406:7;5398:33;;;;-1:-1:-1;;;5398:33:129;;21686:2:169;5398:33:129;;;21668:21:169;21725:2;21705:18;;;21698:30;-1:-1:-1;;;21744:18:169;;;21737:43;21797:18;;5398:33:129;21484:337:169;4070:128:129;4119:14;;:::i;:::-;-1:-1:-1;4152:39:129;;;;;;;;3635:77;4152:39;;;;;;3752:77;4152:39;;;;;;;;;;;;;;3869:77;4152:39;;3986:77;4152:39;;;;;;;;;;;;;;;4070:128::o;11044:451::-;-1:-1:-1;;;;;;;;;;;;;;;;;11123:12:129;;;11185:24;-1:-1:-1;;;;;;;;;;;11193:2:129;11185:24;:::i;:::-;11173:36;;11220:239;11259:13;11270:1;11259:10;:13::i;:::-;11247:25;;-1:-1:-1;11247:25:129;-1:-1:-1;;;;;;;;;;;;11336:1:129;11333;11326:24;11318:4;:32;11314:92;;;11378:13;;;;;;;;;;;;;;;;;;;;11044:451;-1:-1:-1;;;11044:451:129:o;11314:92::-;-1:-1:-1;;;;;;;;;;;11434:1:129;11431;11424:24;11420:28;;11220:239;;9189:1112;9397:31;;;;;;;;;;;;;;;;;;9438;;;;;;;;;;;;;;;;9375:4;;;;9397:31;9480:24;;:::i;:::-;9520:9;9515:302;9539:1;9535;:5;9515:302;;;9561:9;9573:5;:1;9577;9573:5;:::i;:::-;9561:17;;9607:2;9610:1;9607:5;;;;;;;:::i;:::-;;;;;:7;9592:5;9598;:1;9607:7;9598:5;:::i;:::-;9592:12;;;;;;;:::i;:::-;;;;:22;9643:2;9646:1;9643:5;;;;;;;:::i;:::-;;;;;:7;;;9628:5;9634:1;9638;9634:5;;;;:::i;:::-;9628:12;;;;;;;:::i;:::-;;;;:22;9679:2;9682:1;9679:5;;;;;;;:::i;:::-;;;;;:7;:10;9664:5;9670;:1;9674;9670:5;:::i;:::-;9664:12;;;;;;;:::i;:::-;;;;:25;9718:2;9721:1;9718:5;;;;;;;:::i;:::-;;;;;:7;9726:1;9718:10;;;;9703:5;9709;:1;9713;9709:5;:::i;:::-;9703:12;;;;;;;:::i;:::-;;;;:25;9757:2;9760:1;9757:5;;;;;;;:::i;:::-;;;;;:7;;;9765:1;9757:10;;;;;;;:::i;:::-;;;;;9742:5;9748;:1;9752;9748:5;:::i;:::-;9742:12;;;;;;;:::i;:::-;;;;:25;9796:2;9799:1;9796:5;;;;;;;:::i;:::-;;;;;:7;;;9804:1;9796:10;;;;;;;:::i;:::-;;;;;9781:5;9787;:1;9791;9787:5;:::i;:::-;9781:12;;;;;;;:::i;:::-;;;;:25;-1:-1:-1;9542:3:129;;;;:::i;:::-;;;;9515:302;;;;9827:21;;:::i;:::-;9858:12;10032:4;10027:3;10012:13;10005:5;10002:1;9990:10;9979:58;10282:6;;9968:69;;10282:11;;;;-1:-1:-1;10265:29:129;;-1:-1:-1;;;;;;;;;;9189:1112:129:o;15736:148:110:-;15801:20;:28;;-1:-1:-1;;15801:28:110;;;;;;;;;;15844:33;;10464:41:169;;;15844:33:110;;10452:2:169;10437:18;15844:33:110;;;;;;;15736:148;:::o;3308:360:130:-;3419:7;3438:14;3455:44;3481:17;3455:25;:44::i;:::-;3438:61;;3541:6;3524:13;3519:18;;:1;:18;;3518:29;3510:127;;;;-1:-1:-1;;;3510:127:130;;22201:2:169;3510:127:130;;;22183:21:169;22240:2;22220:18;;;22213:30;22279:34;22259:18;;;22252:62;22350:33;22330:18;;;22323:61;22401:19;;3510:127:130;21999:427:169;3510:127:130;3655:6;-1:-1:-1;3308:360:130;;;;;:::o;6797:406::-;6853:6;;6897:209;6904:5;;6897:209;;6931:5;6935:1;6931;:5;:::i;:::-;6925:12;;;;7020:7;;;;:::i;:::-;;;;6897:209;;5698:1197:129;-1:-1:-1;;;;;;;;;;;;;;;;;5824:4:129;5820:1;:8;;;5812:37;;;;-1:-1:-1;;;5812:37:129;;22835:2:169;5812:37:129;;;22817:21:169;22874:2;22854:18;;;22847:30;-1:-1:-1;;;22893:18:169;;;22886:46;22949:18;;5812:37:129;22633:340:169;5812:37:129;5893:1;:6;;5898:1;5893:6;5890:44;;;-1:-1:-1;5922:1:129;5915:8;;5890:44;6016:19;;;;;;;;;5989:24;6016:19;;;;;;;;;6145:1;;6208;;6337:481;6348:1;6343:6;;:1;:6;;;6337:481;;6493:1;6483:6;;;;;;;6482:12;;:17;6478:84;;;6529:14;6534:3;6539;6529:4;:14::i;:::-;6523:20;;6478:84;6644:14;6649:3;6654;6644:4;:14::i;:::-;6638:20;-1:-1:-1;6765:7:129;6771:1;6765:7;;;;;6790:3;6337:481;;;-1:-1:-1;6885:3:129;;5698:1197;-1:-1:-1;;;;;5698:1197:129:o;4461:295::-;-1:-1:-1;;;;;;;;;;;;;;;;;4600:3:129;;:8;:20;;;;-1:-1:-1;4612:3:129;;;;:8;4600:20;4596:154;;;-1:-1:-1;;4643:13:129;;;;;;;;;-1:-1:-1;4643:13:129;;;;;;;;4461:295::o;4596:154::-;4694:45;;;;;;;;4702:1;:3;;;4694:45;;;;-1:-1:-1;;;;;;;;;;;4721:1:129;:3;;;:16;;;;:::i;:::-;4707:31;;-1:-1:-1;;;;;;;;;;;4707:31:129;:::i;:::-;4694:45;;4687:52;4461:295;-1:-1:-1;;4461:295:129:o;4596:154::-;4461:295;;;:::o;11616:433::-;11670:7;;;-1:-1:-1;;;;;;;;;;;11801:1:129;-1:-1:-1;;;;;;;;;;;11785:1:129;-1:-1:-1;;;;;;;;;;;11769:1:129;11766;11759:24;11752:47;11745:70;11730:85;;11912:9;11924:91;11931:4;11937:65;-1:-1:-1;;;;;;;;;;;11924:6:129;:91::i;:::-;12034:4;;11912:103;;-1:-1:-1;11616:433:129;;-1:-1:-1;;;11616:433:129:o;1188:1693:130:-;1278:7;571:3;1409:17;:24;:49;;1401:142;;;;-1:-1:-1;;;1401:142:130;;23180:2:169;1401:142:130;;;23162:21:169;23219:2;23199:18;;;23192:30;;;23258:34;23238:18;;;23231:62;23329:34;23309:18;;;23302:62;-1:-1:-1;;;23380:19:169;;;23373:35;23425:19;;1401:142:130;22978:472:169;1401:142:130;1619:24;;1615:77;;-1:-1:-1;1679:1:130;;1188:1693;-1:-1:-1;1188:1693:130:o;1615:77::-;1770:14;1873:15;2180:17;2198:1;2180:20;;;;;;;;:::i;:::-;;;;;2169:1;2180:20;;;;;2169:32;;;;-1:-1:-1;2284:568:130;2308:17;:24;2304:1;:28;2284:568;;;2480:17;2498:1;2480:20;;;;;;;;:::i;:::-;;;;;2469:1;2480:20;;;;;2469:32;;-1:-1:-1;2665:16:130;;;2657:100;;;;-1:-1:-1;;;2657:100:130;;23657:2:169;2657:100:130;;;23639:21:169;23696:2;23676:18;;;23669:30;23735:34;23715:18;;;23708:62;23806:34;23786:18;;;23779:62;-1:-1:-1;;;23857:19:169;;;23850:38;23905:19;;2657:100:130;23455:475:169;2657:100:130;2824:16;;;;2334:3;;;:::i;:::-;;;2284:568;;;-1:-1:-1;2868:6:130;;1188:1693;-1:-1:-1;;;1188:1693:130:o;12055:874:129:-;12146:14;12172:12;12194:24;;:::i;:::-;12228:20;;:::i;:::-;12269:4;12258:15;;;12341:8;;;:15;;;12425:8;;;:15;;;12509:8;;;:16;;;12535:8;;;:20;;;12565:8;;;:19;;;12673:6;12667:4;12258:15;12571:1;12650:4;12643:5;12639:16;12628:58;12617:69;-1:-1:-1;12617:69:129;12783:48;;;;12756:75;12858:7;12850:46;;;;-1:-1:-1;;;12850:46:129;;24137:2:169;12850:46:129;;;24119:21:169;24176:2;24156:18;;;24149:30;24215:28;24195:18;;;24188:56;24261:18;;12850:46:129;23935:350:169;12850:46:129;-1:-1:-1;12913:9:129;;;-1:-1:-1;;;;;12055:874:129:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:127:169:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:169;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:255::-;480:2;474:9;522:6;510:19;;-1:-1:-1;;;;;544:34:169;;580:22;;;541:62;538:88;;;606:18;;:::i;668:275::-;739:2;733:9;804:2;785:13;;-1:-1:-1;;781:27:169;769:40;;-1:-1:-1;;;;;824:34:169;;860:22;;;821:62;818:88;;;886:18;;:::i;:::-;922:2;915:22;668:275;;-1:-1:-1;668:275:169:o;948:282::-;1002:5;1050:4;1038:9;1033:3;1029:19;1025:30;1022:50;;;1068:1;1065;1058:12;1022:50;1090:22;;:::i;:::-;1081:31;;1148:9;1135:23;1128:5;1121:38;1219:2;1208:9;1204:18;1191:32;1186:2;1179:5;1175:14;1168:56;948:282;;;;:::o;1235:646::-;1285:5;1338:3;1331:4;1323:6;1319:17;1315:27;1305:55;;1356:1;1353;1346:12;1305:55;1389:2;1383:9;1431:2;1423:6;1419:15;1500:6;1488:10;1485:22;-1:-1:-1;;;;;1452:10:169;1449:34;1446:62;1443:88;;;1511:18;;:::i;:::-;1551:10;1547:2;1540:22;;1582:6;1623:2;1615:6;1611:15;1649:3;1641:6;1638:15;1635:35;;;1666:1;1663;1656:12;1635:35;1690:6;1705:146;1721:6;1716:3;1713:15;1705:146;;;1789:17;;1777:30;;1836:4;1827:14;;;;1738;1705:146;;1886:320;1940:5;1988:4;1976:9;1971:3;1967:19;1963:30;1960:50;;;2006:1;2003;1996:12;1960:50;2028:22;;:::i;:::-;2019:31;;2073:40;2109:3;2098:9;2073:40;:::i;:::-;2066:5;2059:55;2148:51;2195:3;2188:4;2177:9;2173:20;2148:51;:::i;:::-;2141:4;2134:5;2130:16;2123:77;1886:320;;;;:::o;2211:530::-;2375:6;2383;2391;2399;2452:3;2440:9;2431:7;2427:23;2423:33;2420:53;;;2469:1;2466;2459:12;2420:53;2505:9;2492:23;2482:33;;2534:54;2580:7;2575:2;2564:9;2560:18;2534:54;:::i;:::-;2524:64;;2607:54;2653:7;2648:2;2637:9;2633:18;2607:54;:::i;:::-;2597:64;;2680:55;2727:7;2721:3;2710:9;2706:19;2680:55;:::i;:::-;2670:65;;2211:530;;;;;;;:::o;3019:273::-;3075:6;3128:2;3116:9;3107:7;3103:23;3099:32;3096:52;;;3144:1;3141;3134:12;3096:52;3183:9;3170:23;3236:5;3229:13;3222:21;3215:5;3212:32;3202:60;;3258:1;3255;3248:12;4000:163;4067:20;;4127:10;4116:22;;4106:33;;4096:61;;4153:1;4150;4143:12;4168:182;4227:4;-1:-1:-1;;;;;4252:6:169;4249:30;4246:56;;;4282:18;;:::i;:::-;-1:-1:-1;4327:1:169;4323:14;4339:4;4319:25;;4168:182::o;4355:665::-;4408:5;4461:3;4454:4;4446:6;4442:17;4438:27;4428:55;;4479:1;4476;4469:12;4428:55;4515:6;4502:20;4541:4;4565:59;4581:42;4620:2;4581:42;:::i;:::-;4565:59;:::i;:::-;4658:15;;;4744:1;4740:10;;;;4728:23;;4724:32;;;4689:12;;;;4768:15;;;4765:35;;;4796:1;4793;4786:12;4765:35;4832:2;4824:6;4820:15;4844:147;4860:6;4855:3;4852:15;4844:147;;;4926:22;4944:3;4926:22;:::i;:::-;4914:35;;4969:12;;;;4877;;4844:147;;;-1:-1:-1;5009:5:169;4355:665;-1:-1:-1;;;;;;4355:665:169:o;5025:688::-;5086:5;5139:3;5132:4;5124:6;5120:17;5116:27;5106:55;;5157:1;5154;5147:12;5106:55;5193:6;5180:20;5219:4;5243:59;5259:42;5298:2;5259:42;:::i;5243:59::-;5336:15;;;5422:1;5418:10;;;;5406:23;;5402:32;;;5367:12;;;;5446:15;;;5443:35;;;5474:1;5471;5464:12;5443:35;5510:2;5502:6;5498:15;5522:162;5538:6;5533:3;5530:15;5522:162;;;5606:35;5637:3;5632;5606:35;:::i;:::-;5594:48;;5662:12;;;;5564:4;5555:14;5522:162;;5718:907;5781:5;5834:3;5827:4;5819:6;5815:17;5811:27;5801:55;;5852:1;5849;5842:12;5801:55;5888:6;5875:20;5914:4;5938:59;5954:42;5993:2;5954:42;:::i;5938:59::-;6031:15;;;6117:1;6113:10;;;;6101:23;;6097:32;;;6062:12;;;;6141:15;;;6138:35;;;6169:1;6166;6159:12;6138:35;6205:2;6197:6;6193:15;6217:379;6233:6;6228:3;6225:15;6217:379;;;6319:3;6306:17;-1:-1:-1;;;;;6342:11:169;6339:35;6336:125;;;6415:1;6444:2;6440;6433:14;6336:125;6486:67;6549:3;6544:2;6530:11;6522:6;6518:24;6514:33;6486:67;:::i;:::-;6474:80;;-1:-1:-1;6574:12:169;;;;6250;;6217:379;;6630:1566;6704:5;6752:6;6740:9;6735:3;6731:19;6727:32;6724:52;;;6772:1;6769;6762:12;6724:52;6794:22;;:::i;:::-;6785:31;;6852:9;6839:23;-1:-1:-1;;;;;6922:2:169;6914:6;6911:14;6908:34;;;6938:1;6935;6928:12;6908:34;6965:56;7017:3;7008:6;6997:9;6993:22;6965:56;:::i;:::-;6958:5;6951:71;7075:2;7064:9;7060:18;7047:32;7031:48;;7104:2;7094:8;7091:16;7088:36;;;7120:1;7117;7110:12;7088:36;7156:66;7218:3;7207:8;7196:9;7192:24;7156:66;:::i;:::-;7151:2;7144:5;7140:14;7133:90;7276:2;7265:9;7261:18;7248:32;7232:48;;7305:2;7295:8;7292:16;7289:36;;;7321:1;7318;7311:12;7289:36;7357:66;7419:3;7408:8;7397:9;7393:24;7357:66;:::i;:::-;7352:2;7345:5;7341:14;7334:90;7456:50;7502:3;7497:2;7486:9;7482:18;7456:50;:::i;:::-;7451:2;7444:5;7440:14;7433:74;7541:51;7588:3;7582;7571:9;7567:19;7541:51;:::i;:::-;7534:4;7527:5;7523:16;7516:77;7646:3;7635:9;7631:19;7618:33;7602:49;;7676:2;7666:8;7663:16;7660:36;;;7692:1;7689;7682:12;7660:36;7730:58;7784:3;7773:8;7762:9;7758:24;7730:58;:::i;:::-;7723:4;7716:5;7712:16;7705:84;7842:3;7831:9;7827:19;7814:33;7798:49;;7872:2;7862:8;7859:16;7856:36;;;7888:1;7885;7878:12;7856:36;7926:58;7980:3;7969:8;7958:9;7954:24;7926:58;:::i;:::-;7919:4;7912:5;7908:16;7901:84;8038:3;8027:9;8023:19;8010:33;7994:49;;8068:2;8058:8;8055:16;8052:36;;;8084:1;8081;8074:12;8052:36;;8121:68;8185:3;8174:8;8163:9;8159:24;8121:68;:::i;:::-;8115:3;8108:5;8104:15;8097:93;;6630:1566;;;;:::o;8201:996::-;8343:6;8351;8359;8367;8375;8428:3;8416:9;8407:7;8403:23;8399:33;8396:53;;;8445:1;8442;8435:12;8396:53;8481:9;8468:23;8458:33;;8542:2;8531:9;8527:18;8514:32;-1:-1:-1;;;;;8606:2:169;8598:6;8595:14;8592:34;;;8622:1;8619;8612:12;8592:34;8660:6;8649:9;8645:22;8635:32;;8705:7;8698:4;8694:2;8690:13;8686:27;8676:55;;8727:1;8724;8717:12;8676:55;8767:2;8754:16;8793:2;8785:6;8782:14;8779:34;;;8809:1;8806;8799:12;8779:34;8854:7;8849:2;8840:6;8836:2;8832:15;8828:24;8825:37;8822:57;;;8875:1;8872;8865:12;8822:57;8906:2;8898:11;;;-1:-1:-1;8928:6:169;-1:-1:-1;8953:37:169;8986:2;8971:18;;8953:37;:::i;:::-;8943:47;;9043:2;9032:9;9028:18;9015:32;8999:48;;9072:2;9062:8;9059:16;9056:36;;;9088:1;9085;9078:12;9056:36;;9111:80;9183:7;9172:8;9161:9;9157:24;9111:80;:::i;:::-;9101:90;;;8201:996;;;;;;;;:::o;9202:467::-;9254:3;9292:5;9286:12;9319:6;9314:3;9307:19;9345:4;9374:2;9369:3;9365:12;9358:19;;9411:2;9404:5;9400:14;9432:1;9442:202;9456:6;9453:1;9450:13;9442:202;;;9521:13;;-1:-1:-1;;;;;9517:46:169;9505:59;;9584:12;;;;9619:15;;;;9478:1;9471:9;9442:202;;;-1:-1:-1;9660:3:169;;9202:467;-1:-1:-1;;;;;9202:467:169:o;9674:645::-;9903:2;9892:9;9885:21;9866:4;9941:6;9935:13;9984:2;9979;9968:9;9964:18;9957:30;10010:62;10067:3;10056:9;10052:19;10038:12;10010:62;:::i;:::-;9996:76;;10121:4;10113:6;10109:17;10103:24;10195:2;10191:7;10179:9;10171:6;10167:22;10163:36;10158:2;10147:9;10143:18;10136:64;10217:51;10261:6;10245:14;10217:51;:::i;:::-;10209:59;;;;10306:6;10299:4;10288:9;10284:20;10277:36;9674:645;;;;;:::o;10751:127::-;10812:10;10807:3;10803:20;10800:1;10793:31;10843:4;10840:1;10833:15;10867:4;10864:1;10857:15;11728:209;11760:1;11786;11776:132;;11830:10;11825:3;11821:20;11818:1;11811:31;11865:4;11862:1;11855:15;11893:4;11890:1;11883:15;11776:132;-1:-1:-1;11922:9:169;;11728:209::o;11942:290::-;12012:6;12065:2;12053:9;12044:7;12040:23;12036:32;12033:52;;;12081:1;12078;12071:12;12033:52;12107:16;;-1:-1:-1;;;;;12152:31:169;;12142:42;;12132:70;;12198:1;12195;12188:12;14542:273;14610:6;14663:2;14651:9;14642:7;14638:23;14634:32;14631:52;;;14679:1;14676;14669:12;14631:52;14711:9;14705:16;14761:4;14754:5;14750:16;14743:5;14740:27;14730:55;;14781:1;14778;14771:12;14820:127;14881:10;14876:3;14872:20;14869:1;14862:31;14912:4;14909:1;14902:15;14936:4;14933:1;14926:15;14952:125;14992:4;15020:1;15017;15014:8;15011:34;;;15025:18;;:::i;:::-;-1:-1:-1;15062:9:169;;14952:125::o;15883:290::-;15953:6;16006:2;15994:9;15985:7;15981:23;15977:32;15974:52;;;16022:1;16019;16012:12;15974:52;16048:16;;-1:-1:-1;;;;;16093:31:169;;16083:42;;16073:70;;16139:1;16136;16129:12;16178:135;16217:3;-1:-1:-1;;16238:17:169;;16235:43;;;16258:18;;:::i;:::-;-1:-1:-1;16305:1:169;16294:13;;16178:135::o;16318:184::-;16388:6;16441:2;16429:9;16420:7;16416:23;16412:32;16409:52;;;16457:1;16454;16447:12;16409:52;-1:-1:-1;16480:16:169;;16318:184;-1:-1:-1;16318:184:169:o;16696:128::-;16736:3;16767:1;16763:6;16760:1;16757:13;16754:39;;;16773:18;;:::i;:::-;-1:-1:-1;16809:9:169;;16696:128::o;17756:294::-;17826:6;17879:2;17867:9;17858:7;17854:23;17850:32;17847:52;;;17895:1;17892;17885:12;17847:52;17921:16;;-1:-1:-1;;17966:35:169;;17956:46;;17946:74;;18016:1;18013;18006:12;18601:296;18670:6;18723:2;18711:9;18702:7;18698:23;18694:32;18691:52;;;18739:1;18736;18729:12;18691:52;18771:9;18765:16;-1:-1:-1;;;;;18814:5:169;18810:38;18803:5;18800:49;18790:77;;18863:1;18860;18853:12;19349:237;19388:4;-1:-1:-1;;;;;19493:10:169;;;;19463;;19515:12;;;19512:38;;;19530:18;;:::i;:::-;19567:13;;19349:237;-1:-1:-1;;;19349:237:169:o;20493:644::-;20741:10;20736:3;20732:20;20723:6;20718:3;20714:16;20710:43;20705:3;20698:56;20680:3;20785:1;20780:3;20776:11;20816:6;20810:13;20865:4;20904:2;20896:6;20892:15;20925:1;20935:175;20949:6;20946:1;20943:13;20935:175;;;21012:13;;20998:28;;21048:14;;;;21085:15;;;;20971:1;20964:9;20935:175;;;-1:-1:-1;21126:5:169;;20493:644;-1:-1:-1;;;;;;;20493:644:169:o;21826:168::-;21866:7;21932:1;21928;21924:6;21920:14;21917:1;21914:21;21909:1;21902:9;21895:17;21891:45;21888:71;;;21939:18;;:::i;:::-;-1:-1:-1;21979:9:169;;21826:168::o;22431:197::-;22469:3;22497:6;22538:2;22531:5;22527:14;22565:2;22556:7;22553:15;22550:41;;;22571:18;;:::i;:::-;22620:1;22607:15;;22431:197;-1:-1:-1;;;22431:197:169:o","linkReferences":{},"immutableReferences":{"32802":[{"start":316,"length":32},{"start":847,"length":32},{"start":2111,"length":32},{"start":2519,"length":32},{"start":3091,"length":32}],"32805":[{"start":277,"length":32},{"start":3886,"length":32},{"start":4336,"length":32}],"32808":[{"start":214,"length":32},{"start":3416,"length":32}],"32811":[{"start":417,"length":32},{"start":2934,"length":32}]}},"methodIdentifiers":{"blsApkRegistry()":"5df45946","checkSignatures(bytes32,bytes,uint32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))":"6efb4636","delegation()":"df5cf723","registryCoordinator()":"6d14a987","setStaleStakesForbidden(bool)":"416c7e5e","stakeRegistry()":"68304835","staleStakesForbidden()":"b98d0908","trySignatureAndApkVerification(bytes32,(uint256,uint256),(uint256[2],uint256[2]),(uint256,uint256))":"171f1d5b"},"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\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"StaleStakesForbiddenUpdate\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"blsApkRegistry\",\"outputs\":[{\"internalType\":\"contract IBLSApkRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"internalType\":\"uint32\",\"name\":\"referenceBlockNumber\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint32[]\",\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point[]\",\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point[]\",\"name\":\"quorumApks\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"internalType\":\"struct BN254.G2Point\",\"name\":\"apkG2\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"sigma\",\"type\":\"tuple\"},{\"internalType\":\"uint32[]\",\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[][]\",\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\"}],\"internalType\":\"struct IBLSSignatureChecker.NonSignerStakesAndSignature\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"checkSignatures\",\"outputs\":[{\"components\":[{\"internalType\":\"uint96[]\",\"name\":\"signedStakeForQuorum\",\"type\":\"uint96[]\"},{\"internalType\":\"uint96[]\",\"name\":\"totalStakeForQuorum\",\"type\":\"uint96[]\"}],\"internalType\":\"struct IBLSSignatureChecker.QuorumStakeTotals\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegation\",\"outputs\":[{\"internalType\":\"contract IDelegationManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registryCoordinator\",\"outputs\":[{\"internalType\":\"contract IRegistryCoordinator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"setStaleStakesForbidden\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeRegistry\",\"outputs\":[{\"internalType\":\"contract IStakeRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"staleStakesForbidden\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"apk\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"internalType\":\"struct BN254.G2Point\",\"name\":\"apkG2\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"sigma\",\"type\":\"tuple\"}],\"name\":\"trySignatureAndApkVerification\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"pairingSuccessful\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"siganatureIsValid\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Layr Labs, Inc.\",\"kind\":\"dev\",\"methods\":{\"checkSignatures(bytes32,bytes,uint32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))\":{\"details\":\"Before signature verification, the function verifies operator stake information. This includes ensuring that the provided `referenceBlockNumber` is correct, i.e., ensure that the stake returned from the specified block number is recent enough and that the stake is either the most recent update for the total stake (of the operator) or latest before the referenceBlockNumber.NOTE: Be careful to ensure `msgHash` is collision-resistant! This method does not hash `msgHash` in any way, so if an attacker is able to pass in an arbitrary value, they may be able to tamper with signature verification.\",\"params\":{\"msgHash\":\"is the hash being signed\",\"params\":\"is the struct containing information on nonsigners, stakes, quorum apks, and the aggregate signature\",\"quorumNumbers\":\"is the bytes array of quorum numbers that are being signed for\",\"referenceBlockNumber\":\"is the block number at which the stake information is being verified\"},\"returns\":{\"_0\":\"quorumStakeTotals is the struct containing the total and signed stake for each quorum\",\"_1\":\"signatoryRecordHash is the hash of the signatory record, which is used for fraud proofs\"}},\"setStaleStakesForbidden(bool)\":{\"params\":{\"value\":\"to toggle staleStakesForbidden\"}},\"trySignatureAndApkVerification(bytes32,(uint256,uint256),(uint256[2],uint256[2]),(uint256,uint256))\":{\"params\":{\"apk\":\"is the claimed G1 public key\",\"apkG2\":\"is provided G2 public key\",\"msgHash\":\"is the hash being signed\",\"sigma\":\"is the G1 point signature\"},\"returns\":{\"pairingSuccessful\":\"is true if the pairing precompile call was successful\",\"siganatureIsValid\":\"is true if the signature is valid\"}}},\"title\":\"Used for checking BLS aggregate signatures from the operators of a `BLSRegistry`.\",\"version\":1},\"userdoc\":{\"events\":{\"StaleStakesForbiddenUpdate(bool)\":{\"notice\":\"Emitted when `staleStakesForbiddenUpdate` is set\"}},\"kind\":\"user\",\"methods\":{\"checkSignatures(bytes32,bytes,uint32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))\":{\"notice\":\"This function is called by disperser when it has aggregated all the signatures of the operators that are part of the quorum for a particular taskNumber and is asserting them into onchain. The function checks that the claim for aggregated signatures are valid. The thesis of this procedure entails: - getting the aggregated pubkey of all registered nodes at the time of pre-commit by the disperser (represented by apk in the parameters), - subtracting the pubkeys of all the signers not in the quorum (nonSignerPubkeys) and storing the output in apk to get aggregated pubkey of all operators that are part of quorum. - use this aggregated pubkey to verify the aggregated signature under BLS scheme.\"},\"setStaleStakesForbidden(bool)\":{\"notice\":\"/** RegistryCoordinator owner can either enforce or not that operator stakes are staler than the delegation.minWithdrawalDelayBlocks() window.\"},\"staleStakesForbidden()\":{\"notice\":\"If true, check the staleness of the operator stakes and that its within the delegation withdrawalDelayBlocks window.\"},\"trySignatureAndApkVerification(bytes32,(uint256,uint256),(uint256[2],uint256[2]),(uint256,uint256))\":{\"notice\":\"trySignatureAndApkVerification verifies a BLS aggregate signature and the veracity of a calculated G1 Public key\"}},\"notice\":\"Terms of Service: https://docs.eigenlayer.xyz/overview/terms-of-serviceThis is the contract for checking the validity of aggregate operator signatures.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":\"BLSSignatureChecker\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@credible-squaring/=src/\",\":@eigenlayer-middleware/=lib/eigenlayer-middleware/\",\":@eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":@eigenlayer/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":@openzeppelin-upgrades/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin-v4.9.0/=lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":@openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/eigenlayer-contracts/\",\":eigenlayer-middleware/=lib/eigenlayer-middleware/\",\":erc4626-tests/=lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/eigenlayer-contracts/lib/openzeppelin-contracts/\",\":openzeppelin/=lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/contracts/\"]},\"sources\":{\"lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0x5a7dd74fb8a9334aa50c497a58875159aec17e905a7daaf3c276936d5b691bd1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a25b8d80233016a4634b9217a0899f43f18bfb21abb046bee4403e9408296009\",\"dweb:/ipfs/QmUA3bTzddiHnPxBqYtovxvcVvCkNrAxPJ7xcskocxEq5P\"]},\"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/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x0a2b3c95fb4de28406dcb0bab74538bce57606224aab18a30dd338747628b6bd\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://82fbb6423fb54d8ca7f4099ccb15b77e23cb009b31605b5113dd6851a960d803\",\"dweb:/ipfs/QmcEsEcFyNCwArMZGiyDcBeuLxAMswhnhNY2zGX5Zh7xdJ\"]},\"lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0x91c233280d6707404c65b7989c3fec6997c40cb3ab7d6c2e3f021102a0e2750d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f2033dbb94acab37f3505734d8aad1481fbceedaa4742871f07506243a195aeb\",\"dweb:/ipfs/QmXWJNkhUxfMhGfuFWw4UAU6nvw9qP9aswisQJLnZUUCzs\"]},\"lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]}},\"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":"bool","name":"value","type":"bool","indexed":false}],"type":"event","name":"StaleStakesForbiddenUpdate","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"blsApkRegistry","outputs":[{"internalType":"contract IBLSApkRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32"},{"internalType":"bytes","name":"quorumNumbers","type":"bytes"},{"internalType":"uint32","name":"referenceBlockNumber","type":"uint32"},{"internalType":"struct IBLSSignatureChecker.NonSignerStakesAndSignature","name":"params","type":"tuple","components":[{"internalType":"uint32[]","name":"nonSignerQuorumBitmapIndices","type":"uint32[]"},{"internalType":"struct BN254.G1Point[]","name":"nonSignerPubkeys","type":"tuple[]","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G1Point[]","name":"quorumApks","type":"tuple[]","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G2Point","name":"apkG2","type":"tuple","components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}]},{"internalType":"struct BN254.G1Point","name":"sigma","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"uint32[]","name":"quorumApkIndices","type":"uint32[]"},{"internalType":"uint32[]","name":"totalStakeIndices","type":"uint32[]"},{"internalType":"uint32[][]","name":"nonSignerStakeIndices","type":"uint32[][]"}]}],"stateMutability":"view","type":"function","name":"checkSignatures","outputs":[{"internalType":"struct IBLSSignatureChecker.QuorumStakeTotals","name":"","type":"tuple","components":[{"internalType":"uint96[]","name":"signedStakeForQuorum","type":"uint96[]"},{"internalType":"uint96[]","name":"totalStakeForQuorum","type":"uint96[]"}]},{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegation","outputs":[{"internalType":"contract IDelegationManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registryCoordinator","outputs":[{"internalType":"contract IRegistryCoordinator","name":"","type":"address"}]},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setStaleStakesForbidden"},{"inputs":[],"stateMutability":"view","type":"function","name":"stakeRegistry","outputs":[{"internalType":"contract IStakeRegistry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"staleStakesForbidden","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32"},{"internalType":"struct BN254.G1Point","name":"apk","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G2Point","name":"apkG2","type":"tuple","components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}]},{"internalType":"struct BN254.G1Point","name":"sigma","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]}],"stateMutability":"view","type":"function","name":"trySignatureAndApkVerification","outputs":[{"internalType":"bool","name":"pairingSuccessful","type":"bool"},{"internalType":"bool","name":"siganatureIsValid","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"checkSignatures(bytes32,bytes,uint32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))":{"details":"Before signature verification, the function verifies operator stake information. This includes ensuring that the provided `referenceBlockNumber` is correct, i.e., ensure that the stake returned from the specified block number is recent enough and that the stake is either the most recent update for the total stake (of the operator) or latest before the referenceBlockNumber.NOTE: Be careful to ensure `msgHash` is collision-resistant! This method does not hash `msgHash` in any way, so if an attacker is able to pass in an arbitrary value, they may be able to tamper with signature verification.","params":{"msgHash":"is the hash being signed","params":"is the struct containing information on nonsigners, stakes, quorum apks, and the aggregate signature","quorumNumbers":"is the bytes array of quorum numbers that are being signed for","referenceBlockNumber":"is the block number at which the stake information is being verified"},"returns":{"_0":"quorumStakeTotals is the struct containing the total and signed stake for each quorum","_1":"signatoryRecordHash is the hash of the signatory record, which is used for fraud proofs"}},"setStaleStakesForbidden(bool)":{"params":{"value":"to toggle staleStakesForbidden"}},"trySignatureAndApkVerification(bytes32,(uint256,uint256),(uint256[2],uint256[2]),(uint256,uint256))":{"params":{"apk":"is the claimed G1 public key","apkG2":"is provided G2 public key","msgHash":"is the hash being signed","sigma":"is the G1 point signature"},"returns":{"pairingSuccessful":"is true if the pairing precompile call was successful","siganatureIsValid":"is true if the signature is valid"}}},"version":1},"userdoc":{"kind":"user","methods":{"checkSignatures(bytes32,bytes,uint32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))":{"notice":"This function is called by disperser when it has aggregated all the signatures of the operators that are part of the quorum for a particular taskNumber and is asserting them into onchain. The function checks that the claim for aggregated signatures are valid. The thesis of this procedure entails: - getting the aggregated pubkey of all registered nodes at the time of pre-commit by the disperser (represented by apk in the parameters), - subtracting the pubkeys of all the signers not in the quorum (nonSignerPubkeys) and storing the output in apk to get aggregated pubkey of all operators that are part of quorum. - use this aggregated pubkey to verify the aggregated signature under BLS scheme."},"setStaleStakesForbidden(bool)":{"notice":"/** RegistryCoordinator owner can either enforce or not that operator stakes are staler than the delegation.minWithdrawalDelayBlocks() window."},"staleStakesForbidden()":{"notice":"If true, check the staleness of the operator stakes and that its within the delegation withdrawalDelayBlocks window."},"trySignatureAndApkVerification(bytes32,(uint256,uint256),(uint256[2],uint256[2]),(uint256,uint256))":{"notice":"trySignatureAndApkVerification verifies a BLS aggregate signature and the veracity of a calculated G1 Public key"}},"version":1}},"settings":{"remappings":["@credible-squaring/=src/","@eigenlayer-middleware/=lib/eigenlayer-middleware/","@eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","@eigenlayer/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","@openzeppelin-upgrades/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/","@openzeppelin-v4.9.0/=lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","@openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","eigenlayer-contracts/=lib/eigenlayer-contracts/","eigenlayer-middleware/=lib/eigenlayer-middleware/","erc4626-tests/=lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/eigenlayer-contracts/lib/openzeppelin-contracts/","openzeppelin/=lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":"BLSSignatureChecker"},"evmVersion":"london","libraries":{}},"sources":{"lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0x5a7dd74fb8a9334aa50c497a58875159aec17e905a7daaf3c276936d5b691bd1","urls":["bzz-raw://a25b8d80233016a4634b9217a0899f43f18bfb21abb046bee4403e9408296009","dweb:/ipfs/QmUA3bTzddiHnPxBqYtovxvcVvCkNrAxPJ7xcskocxEq5P"],"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/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x0a2b3c95fb4de28406dcb0bab74538bce57606224aab18a30dd338747628b6bd","urls":["bzz-raw://82fbb6423fb54d8ca7f4099ccb15b77e23cb009b31605b5113dd6851a960d803","dweb:/ipfs/QmcEsEcFyNCwArMZGiyDcBeuLxAMswhnhNY2zGX5Zh7xdJ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0x91c233280d6707404c65b7989c3fec6997c40cb3ab7d6c2e3f021102a0e2750d","urls":["bzz-raw://f2033dbb94acab37f3505734d8aad1481fbceedaa4742871f07506243a195aeb","dweb:/ipfs/QmXWJNkhUxfMhGfuFWw4UAU6nvw9qP9aswisQJLnZUUCzs"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"}},"version":1},"id":110}