@aztec-foundation/l1-artifacts 6.0.0-rc.2 → 6.0.0-rc.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) hide show
  1. package/dest/AttesterExitExtLibAbi.d.ts +12 -48
  2. package/dest/AttesterExitExtLibAbi.d.ts.map +1 -1
  3. package/dest/AttesterExitExtLibAbi.js +16 -64
  4. package/dest/AttesterExitExtLibAbi.js.map +1 -1
  5. package/dest/AttesterExitExtLibBytecode.d.ts +1 -1
  6. package/dest/AttesterExitExtLibBytecode.js +1 -1
  7. package/dest/CoinIssuerAbi.d.ts +12 -48
  8. package/dest/CoinIssuerAbi.d.ts.map +1 -1
  9. package/dest/CoinIssuerAbi.js +16 -64
  10. package/dest/CoinIssuerAbi.js.map +1 -1
  11. package/dest/DateGatedRelayerAbi.d.ts +12 -48
  12. package/dest/DateGatedRelayerAbi.d.ts.map +1 -1
  13. package/dest/DateGatedRelayerAbi.js +16 -64
  14. package/dest/DateGatedRelayerAbi.js.map +1 -1
  15. package/dest/EmpireBaseAbi.d.ts +12 -48
  16. package/dest/EmpireBaseAbi.d.ts.map +1 -1
  17. package/dest/EmpireBaseAbi.js +16 -64
  18. package/dest/EmpireBaseAbi.js.map +1 -1
  19. package/dest/EpochProofExtLibAbi.d.ts +12 -48
  20. package/dest/EpochProofExtLibAbi.d.ts.map +1 -1
  21. package/dest/EpochProofExtLibAbi.js +16 -64
  22. package/dest/EpochProofExtLibAbi.js.map +1 -1
  23. package/dest/EpochProofExtLibBytecode.d.ts +1 -1
  24. package/dest/EpochProofExtLibBytecode.d.ts.map +1 -1
  25. package/dest/EpochProofExtLibBytecode.js +1 -1
  26. package/dest/EpochProofExtLibBytecode.js.map +1 -1
  27. package/dest/ErrorsAbi.d.ts +12 -48
  28. package/dest/ErrorsAbi.d.ts.map +1 -1
  29. package/dest/ErrorsAbi.js +16 -64
  30. package/dest/ErrorsAbi.js.map +1 -1
  31. package/dest/EscapeHatchAbi.d.ts +12 -48
  32. package/dest/EscapeHatchAbi.d.ts.map +1 -1
  33. package/dest/EscapeHatchAbi.js +16 -64
  34. package/dest/EscapeHatchAbi.js.map +1 -1
  35. package/dest/EscapeHatchBytecode.d.ts +1 -1
  36. package/dest/EscapeHatchBytecode.js +1 -1
  37. package/dest/EscapeHatchStorage.d.ts +2 -2
  38. package/dest/EscapeHatchStorage.js +2 -2
  39. package/dest/FeeAssetHandlerAbi.d.ts +12 -48
  40. package/dest/FeeAssetHandlerAbi.d.ts.map +1 -1
  41. package/dest/FeeAssetHandlerAbi.js +16 -64
  42. package/dest/FeeAssetHandlerAbi.js.map +1 -1
  43. package/dest/FeeJuicePortalAbi.d.ts +12 -48
  44. package/dest/FeeJuicePortalAbi.d.ts.map +1 -1
  45. package/dest/FeeJuicePortalAbi.js +16 -64
  46. package/dest/FeeJuicePortalAbi.js.map +1 -1
  47. package/dest/FeeJuicePortalBytecode.d.ts +1 -1
  48. package/dest/FeeJuicePortalBytecode.js +1 -1
  49. package/dest/GSEAbi.d.ts +12 -48
  50. package/dest/GSEAbi.d.ts.map +1 -1
  51. package/dest/GSEAbi.js +16 -64
  52. package/dest/GSEAbi.js.map +1 -1
  53. package/dest/GovernanceAbi.d.ts +12 -48
  54. package/dest/GovernanceAbi.d.ts.map +1 -1
  55. package/dest/GovernanceAbi.js +16 -64
  56. package/dest/GovernanceAbi.js.map +1 -1
  57. package/dest/GovernanceProposerAbi.d.ts +12 -48
  58. package/dest/GovernanceProposerAbi.d.ts.map +1 -1
  59. package/dest/GovernanceProposerAbi.js +16 -64
  60. package/dest/GovernanceProposerAbi.js.map +1 -1
  61. package/dest/HonkVerifierAbi.d.ts +12 -48
  62. package/dest/HonkVerifierAbi.d.ts.map +1 -1
  63. package/dest/HonkVerifierAbi.js +16 -64
  64. package/dest/HonkVerifierAbi.js.map +1 -1
  65. package/dest/IERC20Abi.d.ts +12 -48
  66. package/dest/IERC20Abi.d.ts.map +1 -1
  67. package/dest/IERC20Abi.js +16 -64
  68. package/dest/IERC20Abi.js.map +1 -1
  69. package/dest/ISequencerRewardCalculatorAbi.d.ts +2607 -0
  70. package/dest/ISequencerRewardCalculatorAbi.d.ts.map +1 -0
  71. package/dest/ISequencerRewardCalculatorAbi.js +3473 -0
  72. package/dest/ISequencerRewardCalculatorAbi.js.map +1 -0
  73. package/dest/ISequencerRewardCalculatorBytecode.d.ts +9 -0
  74. package/dest/ISequencerRewardCalculatorBytecode.d.ts.map +1 -0
  75. package/dest/ISequencerRewardCalculatorBytecode.js +9 -0
  76. package/dest/ISequencerRewardCalculatorBytecode.js.map +1 -0
  77. package/dest/IVerifierAbi.d.ts +12 -48
  78. package/dest/IVerifierAbi.d.ts.map +1 -1
  79. package/dest/IVerifierAbi.js +16 -64
  80. package/dest/IVerifierAbi.js.map +1 -1
  81. package/dest/InboxAbi.d.ts +12 -48
  82. package/dest/InboxAbi.d.ts.map +1 -1
  83. package/dest/InboxAbi.js +16 -64
  84. package/dest/InboxAbi.js.map +1 -1
  85. package/dest/InboxBytecode.d.ts +1 -1
  86. package/dest/InboxBytecode.js +1 -1
  87. package/dest/MockVerifierAbi.d.ts +12 -48
  88. package/dest/MockVerifierAbi.d.ts.map +1 -1
  89. package/dest/MockVerifierAbi.js +16 -64
  90. package/dest/MockVerifierAbi.js.map +1 -1
  91. package/dest/MockZKPassportVerifierAbi.d.ts +12 -48
  92. package/dest/MockZKPassportVerifierAbi.d.ts.map +1 -1
  93. package/dest/MockZKPassportVerifierAbi.js +16 -64
  94. package/dest/MockZKPassportVerifierAbi.js.map +1 -1
  95. package/dest/MultiAdderAbi.d.ts +12 -48
  96. package/dest/MultiAdderAbi.d.ts.map +1 -1
  97. package/dest/MultiAdderAbi.js +16 -64
  98. package/dest/MultiAdderAbi.js.map +1 -1
  99. package/dest/MultiAdderBytecode.d.ts +1 -1
  100. package/dest/MultiAdderBytecode.js +1 -1
  101. package/dest/NewGovernanceProposerPayloadAbi.d.ts +12 -48
  102. package/dest/NewGovernanceProposerPayloadAbi.d.ts.map +1 -1
  103. package/dest/NewGovernanceProposerPayloadAbi.js +16 -64
  104. package/dest/NewGovernanceProposerPayloadAbi.js.map +1 -1
  105. package/dest/OutboxAbi.d.ts +12 -48
  106. package/dest/OutboxAbi.d.ts.map +1 -1
  107. package/dest/OutboxAbi.js +16 -64
  108. package/dest/OutboxAbi.js.map +1 -1
  109. package/dest/OutboxBytecode.d.ts +1 -1
  110. package/dest/OutboxBytecode.js +1 -1
  111. package/dest/RegisterNewRollupVersionPayloadAbi.d.ts +12 -48
  112. package/dest/RegisterNewRollupVersionPayloadAbi.d.ts.map +1 -1
  113. package/dest/RegisterNewRollupVersionPayloadAbi.js +16 -64
  114. package/dest/RegisterNewRollupVersionPayloadAbi.js.map +1 -1
  115. package/dest/RegisterNewRollupVersionPayloadBytecode.d.ts +1 -1
  116. package/dest/RegisterNewRollupVersionPayloadBytecode.js +1 -1
  117. package/dest/RegistryAbi.d.ts +12 -48
  118. package/dest/RegistryAbi.d.ts.map +1 -1
  119. package/dest/RegistryAbi.js +16 -64
  120. package/dest/RegistryAbi.js.map +1 -1
  121. package/dest/RewardDistributorAbi.d.ts +12 -48
  122. package/dest/RewardDistributorAbi.d.ts.map +1 -1
  123. package/dest/RewardDistributorAbi.js +16 -64
  124. package/dest/RewardDistributorAbi.js.map +1 -1
  125. package/dest/RewardExtLibAbi.d.ts +59 -48
  126. package/dest/RewardExtLibAbi.d.ts.map +1 -1
  127. package/dest/RewardExtLibAbi.js +77 -64
  128. package/dest/RewardExtLibAbi.js.map +1 -1
  129. package/dest/RewardExtLibBytecode.d.ts +1 -1
  130. package/dest/RewardExtLibBytecode.d.ts.map +1 -1
  131. package/dest/RewardExtLibBytecode.js +1 -1
  132. package/dest/RewardExtLibBytecode.js.map +1 -1
  133. package/dest/RollupAbi.d.ts +72 -79
  134. package/dest/RollupAbi.d.ts.map +1 -1
  135. package/dest/RollupAbi.js +93 -104
  136. package/dest/RollupAbi.js.map +1 -1
  137. package/dest/RollupBytecode.d.ts +91 -82
  138. package/dest/RollupBytecode.d.ts.map +1 -1
  139. package/dest/RollupBytecode.js +94 -82
  140. package/dest/RollupBytecode.js.map +1 -1
  141. package/dest/RollupOperationsExtLibAbi.d.ts +12 -48
  142. package/dest/RollupOperationsExtLibAbi.d.ts.map +1 -1
  143. package/dest/RollupOperationsExtLibAbi.js +16 -64
  144. package/dest/RollupOperationsExtLibAbi.js.map +1 -1
  145. package/dest/RollupOperationsExtLibBytecode.d.ts +1 -1
  146. package/dest/RollupOperationsExtLibBytecode.d.ts.map +1 -1
  147. package/dest/RollupOperationsExtLibBytecode.js +1 -1
  148. package/dest/RollupOperationsExtLibBytecode.js.map +1 -1
  149. package/dest/RollupStorage.d.ts +2 -2
  150. package/dest/RollupStorage.js +2 -2
  151. package/dest/SlasherAbi.d.ts +12 -48
  152. package/dest/SlasherAbi.d.ts.map +1 -1
  153. package/dest/SlasherAbi.js +16 -64
  154. package/dest/SlasherAbi.js.map +1 -1
  155. package/dest/SlasherDeploymentExtLibAbi.d.ts +12 -48
  156. package/dest/SlasherDeploymentExtLibAbi.d.ts.map +1 -1
  157. package/dest/SlasherDeploymentExtLibAbi.js +16 -64
  158. package/dest/SlasherDeploymentExtLibAbi.js.map +1 -1
  159. package/dest/SlasherDeploymentExtLibBytecode.d.ts +1 -1
  160. package/dest/SlasherDeploymentExtLibBytecode.d.ts.map +1 -1
  161. package/dest/SlasherDeploymentExtLibBytecode.js +1 -1
  162. package/dest/SlasherDeploymentExtLibBytecode.js.map +1 -1
  163. package/dest/SlashingProposerAbi.d.ts +12 -48
  164. package/dest/SlashingProposerAbi.d.ts.map +1 -1
  165. package/dest/SlashingProposerAbi.js +16 -64
  166. package/dest/SlashingProposerAbi.js.map +1 -1
  167. package/dest/SlashingProposerBytecode.d.ts +1 -1
  168. package/dest/SlashingProposerBytecode.js +1 -1
  169. package/dest/StakingAssetHandlerAbi.d.ts +12 -48
  170. package/dest/StakingAssetHandlerAbi.d.ts.map +1 -1
  171. package/dest/StakingAssetHandlerAbi.js +16 -64
  172. package/dest/StakingAssetHandlerAbi.js.map +1 -1
  173. package/dest/TestERC20Abi.d.ts +12 -48
  174. package/dest/TestERC20Abi.d.ts.map +1 -1
  175. package/dest/TestERC20Abi.js +16 -64
  176. package/dest/TestERC20Abi.js.map +1 -1
  177. package/dest/TokenPortalAbi.d.ts +12 -48
  178. package/dest/TokenPortalAbi.d.ts.map +1 -1
  179. package/dest/TokenPortalAbi.js +16 -64
  180. package/dest/TokenPortalAbi.js.map +1 -1
  181. package/dest/TokenPortalBytecode.d.ts +1 -1
  182. package/dest/TokenPortalBytecode.js +1 -1
  183. package/dest/UniswapPortalAbi.d.ts +12 -48
  184. package/dest/UniswapPortalAbi.d.ts.map +1 -1
  185. package/dest/UniswapPortalAbi.js +16 -64
  186. package/dest/UniswapPortalAbi.js.map +1 -1
  187. package/dest/UniswapPortalBytecode.d.ts +1 -1
  188. package/dest/UniswapPortalBytecode.js +1 -1
  189. package/dest/ValidatorOperationsExtLibAbi.d.ts +12 -48
  190. package/dest/ValidatorOperationsExtLibAbi.d.ts.map +1 -1
  191. package/dest/ValidatorOperationsExtLibAbi.js +16 -64
  192. package/dest/ValidatorOperationsExtLibAbi.js.map +1 -1
  193. package/dest/ValidatorOperationsExtLibBytecode.d.ts +1 -1
  194. package/dest/ValidatorOperationsExtLibBytecode.d.ts.map +1 -1
  195. package/dest/ValidatorOperationsExtLibBytecode.js +1 -1
  196. package/dest/ValidatorOperationsExtLibBytecode.js.map +1 -1
  197. package/dest/ValidatorSelectionLibAbi.d.ts +12 -48
  198. package/dest/ValidatorSelectionLibAbi.d.ts.map +1 -1
  199. package/dest/ValidatorSelectionLibAbi.js +16 -64
  200. package/dest/ValidatorSelectionLibAbi.js.map +1 -1
  201. package/dest/ValidatorSelectionLibBytecode.d.ts +1 -1
  202. package/dest/ValidatorSelectionLibBytecode.js +1 -1
  203. package/dest/checksum.d.ts +1 -1
  204. package/dest/checksum.js +1 -1
  205. package/dest/index.d.ts +2 -0
  206. package/dest/index.d.ts.map +1 -1
  207. package/dest/index.js +2 -0
  208. package/dest/index.js.map +1 -1
  209. package/l1-contracts/cache/solidity-files-cache.json +1 -1
  210. package/l1-contracts/foundry.toml +1 -1
  211. package/l1-contracts/out/AddressSnapshotLib.sol/AddressSnapshotLib.json +1 -1
  212. package/l1-contracts/out/AttestationLib.sol/AttestationLib.json +1 -1
  213. package/l1-contracts/out/AttesterExitExtLib.sol/AttesterExitExtLib.json +1 -1
  214. package/l1-contracts/out/BN254Lib.sol/BN254Lib.json +1 -1
  215. package/l1-contracts/out/Ballot.sol/BallotLib.json +1 -1
  216. package/l1-contracts/out/BlobLib.sol/BlobLib.json +1 -1
  217. package/l1-contracts/out/Bn254LibWrapper.sol/Bn254LibWrapper.json +1 -1
  218. package/l1-contracts/out/CheckpointLog.sol/CompressedTempCheckpointLogLib.json +1 -1
  219. package/l1-contracts/out/CheckpointedUintLib.sol/CheckpointedUintLib.json +1 -1
  220. package/l1-contracts/out/CoinIssuer.sol/CoinIssuer.json +1 -1
  221. package/l1-contracts/out/CompressedTimeMath.sol/CompressedTimeMath.json +1 -1
  222. package/l1-contracts/out/Configuration.sol/CompressedConfigurationLib.json +1 -1
  223. package/l1-contracts/out/ConfigurationLib.sol/ConfigurationLib.json +1 -1
  224. package/l1-contracts/out/ConstantsGen.sol/Constants.json +1 -1
  225. package/l1-contracts/out/CoordinationSignatureLib.sol/CoordinationSignatureLib.json +1 -1
  226. package/l1-contracts/out/DataStructures.sol/DataStructures.json +1 -1
  227. package/l1-contracts/out/DateGatedRelayer.sol/DateGatedRelayer.json +1 -1
  228. package/l1-contracts/out/DeployAztecL1Contracts.s.sol/DeployAztecL1Contracts.json +1 -1
  229. package/l1-contracts/out/DeployRollupForUpgrade.s.sol/DeployRollupForUpgrade.json +1 -1
  230. package/l1-contracts/out/DeployRollupLib.sol/DeployRollupLib.json +1 -1
  231. package/l1-contracts/out/DeploymentConfiguration.sol/DeploymentConfiguration.json +1 -1
  232. package/l1-contracts/out/DeploymentConfiguration.sol/IDeploymentConfiguration.json +1 -1
  233. package/l1-contracts/out/DepositDelegationLib.sol/DepositDelegationLib.json +1 -1
  234. package/l1-contracts/out/EmpireBase.sol/EmpireBase.json +1 -1
  235. package/l1-contracts/out/EpochProofExtLib.sol/EpochProofExtLib.json +1 -1
  236. package/l1-contracts/out/EpochProofLib.sol/EpochProofLib.json +1 -1
  237. package/l1-contracts/out/Errors.sol/Errors.json +1 -1
  238. package/l1-contracts/out/EscapeHatch.sol/EscapeHatch.json +1 -1
  239. package/l1-contracts/out/FeeAssetHandler.sol/FeeAssetHandler.json +1 -1
  240. package/l1-contracts/out/FeeAssetHandler.sol/IFeeAssetHandler.json +1 -1
  241. package/l1-contracts/out/FeeConfig.sol/FeeConfigLib.json +1 -1
  242. package/l1-contracts/out/FeeConfig.sol/PriceLib.json +1 -1
  243. package/l1-contracts/out/FeeJuicePortal.sol/FeeJuicePortal.json +1 -1
  244. package/l1-contracts/out/FeeLib.sol/FeeLib.json +1 -1
  245. package/l1-contracts/out/FeeStructs.sol/FeeHeaderLib.json +1 -1
  246. package/l1-contracts/out/FeeStructs.sol/FeeStructsLib.json +1 -1
  247. package/l1-contracts/out/FieldLib.sol/FieldLib.json +1 -1
  248. package/l1-contracts/out/FlushRewarder.sol/FlushRewarder.json +1 -1
  249. package/l1-contracts/out/GSE.sol/GSE.json +1 -1
  250. package/l1-contracts/out/GSE.sol/GSECore.json +1 -1
  251. package/l1-contracts/out/GSE.sol/IGSE.json +1 -1
  252. package/l1-contracts/out/GSE.sol/IGSECore.json +1 -1
  253. package/l1-contracts/out/GSEPayload.sol/GSEPayload.json +1 -1
  254. package/l1-contracts/out/Governance.sol/Governance.json +1 -1
  255. package/l1-contracts/out/GovernanceProposer.sol/GovernanceProposer.json +1 -1
  256. package/l1-contracts/out/Hash.sol/Hash.json +1 -1
  257. package/l1-contracts/out/HonkVerifier.sol/HonkVerifier.json +1 -1
  258. package/l1-contracts/out/IBn254LibWrapper.sol/IBn254LibWrapper.json +1 -1
  259. package/l1-contracts/out/ICoinIssuer.sol/ICoinIssuer.json +1 -1
  260. package/l1-contracts/out/IDateGatedRelayer.sol/IDateGatedRelayer.json +1 -1
  261. package/l1-contracts/out/IEmpire.sol/IEmperor.json +1 -1
  262. package/l1-contracts/out/IEmpire.sol/IEmpire.json +1 -1
  263. package/l1-contracts/out/IFeeJuicePortal.sol/IFeeJuicePortal.json +1 -1
  264. package/l1-contracts/out/IFlushRewarder.sol/IFlushRewarder.json +1 -1
  265. package/l1-contracts/out/IGovernance.sol/IGovernance.json +1 -1
  266. package/l1-contracts/out/IGovernanceProposer.sol/IGovernanceProposer.json +1 -1
  267. package/l1-contracts/out/IInbox.sol/IInbox.json +1 -1
  268. package/l1-contracts/out/IInstance.sol/IInstance.json +1 -1
  269. package/l1-contracts/out/IMintableERC20.sol/IMintableERC20.json +1 -1
  270. package/l1-contracts/out/IOutbox.sol/IOutbox.json +1 -1
  271. package/l1-contracts/out/IPayload.sol/IPayload.json +1 -1
  272. package/l1-contracts/out/IProposerPayload.sol/IProposerPayload.json +1 -1
  273. package/l1-contracts/out/IRegistry.sol/IHaveVersion.json +1 -1
  274. package/l1-contracts/out/IRegistry.sol/IRegistry.json +1 -1
  275. package/l1-contracts/out/IRewardDistributor.sol/IRewardDistributor.json +1 -1
  276. package/l1-contracts/out/IRollup.sol/IRollup.json +1 -1
  277. package/l1-contracts/out/IRollup.sol/IRollupCore.json +1 -1
  278. package/l1-contracts/out/IRootRegistry.sol/IRootRegistry.json +1 -1
  279. package/l1-contracts/out/ISequencerRewardCalculator.sol/ISequencerRewardCalculator.json +1 -0
  280. package/l1-contracts/out/ISlasher.sol/ISlasher.json +1 -1
  281. package/l1-contracts/out/IStaking.sol/IStaking.json +1 -1
  282. package/l1-contracts/out/IStaking.sol/IStakingCore.json +1 -1
  283. package/l1-contracts/out/IValidatorSelection.sol/IValidatorSelection.json +1 -1
  284. package/l1-contracts/out/IValidatorSelection.sol/IValidatorSelectionCore.json +1 -1
  285. package/l1-contracts/out/IVerifier.sol/IVerifier.json +1 -1
  286. package/l1-contracts/out/Inbox.sol/Inbox.json +1 -1
  287. package/l1-contracts/out/InputsExtractor.sol/InputsExtractor.json +1 -1
  288. package/l1-contracts/out/InvalidateLib.sol/InvalidateLib.json +1 -1
  289. package/l1-contracts/out/MerkleLib.sol/MerkleLib.json +1 -1
  290. package/l1-contracts/out/MockERC20.sol/MockERC20.json +1 -1
  291. package/l1-contracts/out/MockERC721.sol/MockERC721.json +1 -1
  292. package/l1-contracts/out/MockFeeJuicePortal.sol/MockFeeJuicePortal.json +1 -1
  293. package/l1-contracts/out/MockVerifier.sol/MockVerifier.json +1 -1
  294. package/l1-contracts/out/MockZKPassportVerifier.sol/IZKPassportVerifier.json +1 -1
  295. package/l1-contracts/out/MockZKPassportVerifier.sol/MockZKPassportVerifier.json +1 -1
  296. package/l1-contracts/out/MultiAdder.sol/IMultiAdder.json +1 -1
  297. package/l1-contracts/out/MultiAdder.sol/MultiAdder.json +1 -1
  298. package/l1-contracts/out/Outbox.sol/Outbox.json +1 -1
  299. package/l1-contracts/out/OuterCount8.sol/HonkVerifier.json +1 -1
  300. package/l1-contracts/out/Proposal.sol/CompressedProposalLib.json +1 -1
  301. package/l1-contracts/out/ProposalLib.sol/ProposalLib.json +1 -1
  302. package/l1-contracts/out/ProposeLib.sol/ProposeLib.json +1 -1
  303. package/l1-contracts/out/ProposedHeaderLib.sol/ProposedHeaderLib.json +1 -1
  304. package/l1-contracts/out/RegisterNewRollupVersionPayload.sol/RegisterNewRollupVersionPayload.json +1 -1
  305. package/l1-contracts/out/Registry.sol/Registry.json +1 -1
  306. package/l1-contracts/out/RewardBooster.sol/IBooster.json +1 -1
  307. package/l1-contracts/out/RewardBooster.sol/IBoosterCore.json +1 -1
  308. package/l1-contracts/out/RewardBooster.sol/RewardBooster.json +1 -1
  309. package/l1-contracts/out/RewardDistributor.sol/RewardDistributor.json +1 -1
  310. package/l1-contracts/out/RewardExtLib.sol/RewardExtLib.json +1 -1
  311. package/l1-contracts/out/RewardLib.sol/BpsLib.json +1 -1
  312. package/l1-contracts/out/RewardLib.sol/RewardLib.json +1 -1
  313. package/l1-contracts/out/Rollup.sol/Rollup.json +1 -1
  314. package/l1-contracts/out/RollupConfiguration.sol/IRollupConfiguration.json +1 -1
  315. package/l1-contracts/out/RollupConfiguration.sol/RollupConfiguration.json +1 -1
  316. package/l1-contracts/out/RollupCore.sol/RollupCore.json +1 -1
  317. package/l1-contracts/out/RollupOperationsExtLib.sol/RollupOperationsExtLib.json +1 -1
  318. package/l1-contracts/out/STFLib.sol/STFLib.json +1 -1
  319. package/l1-contracts/out/SampleLib.sol/SampleLib.json +1 -1
  320. package/l1-contracts/out/SequencerRewardCalculatorLib.sol/SequencerRewardCalculatorLib.json +1 -0
  321. package/l1-contracts/out/SignatureLib.sol/SignatureLib.json +1 -1
  322. package/l1-contracts/out/SlashPayload.sol/SlashPayload.json +1 -1
  323. package/l1-contracts/out/SlashPayloadCloneable.sol/SlashPayloadCloneable.json +1 -1
  324. package/l1-contracts/out/SlashPayloadLib.sol/SlashPayloadLib.json +1 -1
  325. package/l1-contracts/out/SlashRoundLib.sol/CompressedSlashRoundMath.json +1 -1
  326. package/l1-contracts/out/Slasher.sol/Slasher.json +1 -1
  327. package/l1-contracts/out/SlasherDeploymentExtLib.sol/SlasherDeploymentExtLib.json +1 -1
  328. package/l1-contracts/out/SlashingProposer.sol/SlashingProposer.json +1 -1
  329. package/l1-contracts/out/StakingAssetHandler.sol/IStakingAssetHandler.json +1 -1
  330. package/l1-contracts/out/StakingAssetHandler.sol/StakingAssetHandler.json +1 -1
  331. package/l1-contracts/out/StakingLib.sol/StakingLib.json +1 -1
  332. package/l1-contracts/out/StakingQueue.sol/StakingQueueLib.json +1 -1
  333. package/l1-contracts/out/StakingQueueConfig.sol/StakingQueueConfigLib.json +1 -1
  334. package/l1-contracts/out/StdError.sol/stdError.json +1 -1
  335. package/l1-contracts/out/TestERC20.sol/TestERC20.json +1 -1
  336. package/l1-contracts/out/TestPayloads.sol/CallAssetPayload.json +1 -1
  337. package/l1-contracts/out/TestPayloads.sol/CallRevertingPayload.json +1 -1
  338. package/l1-contracts/out/TestPayloads.sol/EmptyPayload.json +1 -1
  339. package/l1-contracts/out/TestPayloads.sol/FakeRollup.json +1 -1
  340. package/l1-contracts/out/TestPayloads.sol/RevertingCall.json +1 -1
  341. package/l1-contracts/out/TestPayloads.sol/UpgradePayload.json +1 -1
  342. package/l1-contracts/out/TimeLib.sol/TimeLib.json +1 -1
  343. package/l1-contracts/out/Tips.sol/ChainTipsLib.json +1 -1
  344. package/l1-contracts/out/ValidatorOperationsExtLib.sol/ValidatorOperationsExtLib.json +1 -1
  345. package/l1-contracts/out/ValidatorSelectionLib.sol/ValidatorSelectionLib.json +1 -1
  346. package/l1-contracts/out/ZKPassportHelper.sol/ZKPassportHelper.json +1 -1
  347. package/l1-contracts/out/ZKPassportRootVerifier.sol/ZKPassportRootVerifier.json +1 -1
  348. package/l1-contracts/out/ZKPassportSubVerifier.sol/ZKPassportSubVerifier.json +1 -1
  349. package/l1-contracts/out/build-info/4cb7b5442b848dcc.json +1 -0
  350. package/l1-contracts/out/generated/HonkVerifier.sol/HonkVerifier.json +1 -1
  351. package/l1-contracts/out/libraries/Errors.sol/Errors.json +1 -1
  352. package/l1-contracts/out/rollup/BlobLib.sol/BlobLib.json +1 -1
  353. package/l1-contracts/out/src/ZKPassportHelper.sol/ZKPassportHelper.json +1 -1
  354. package/l1-contracts/out/src/ZKPassportRootVerifier.sol/ZKPassportRootVerifier.json +1 -1
  355. package/l1-contracts/out/src/ZKPassportSubVerifier.sol/ZKPassportSubVerifier.json +1 -1
  356. package/l1-contracts/script/deploy/RollupConfiguration.sol +5 -19
  357. package/l1-contracts/scripts/network-defaults.json +1 -2
  358. package/l1-contracts/src/core/Rollup.sol +18 -12
  359. package/l1-contracts/src/core/RollupCore.sol +14 -27
  360. package/l1-contracts/src/core/interfaces/IRollup.sol +7 -11
  361. package/l1-contracts/src/core/interfaces/ISequencerRewardCalculator.sol +39 -0
  362. package/l1-contracts/src/core/interfaces/IValidatorSelection.sol +0 -2
  363. package/l1-contracts/src/core/libraries/Errors.sol +3 -6
  364. package/l1-contracts/src/core/libraries/rollup/BlobLib.sol +16 -6
  365. package/l1-contracts/src/core/libraries/rollup/EpochProofExtLib.sol +2 -7
  366. package/l1-contracts/src/core/libraries/rollup/EpochProofLib.sol +4 -12
  367. package/l1-contracts/src/core/libraries/rollup/RewardExtLib.sol +30 -12
  368. package/l1-contracts/src/core/libraries/rollup/RewardLib.sol +187 -250
  369. package/l1-contracts/src/core/libraries/rollup/SequencerRewardCalculatorLib.sol +110 -0
  370. package/l1-contracts/src/core/libraries/rollup/ValidatorSelectionLib.sol +2 -4
  371. package/package.json +1 -1
  372. package/l1-contracts/out/RewardLib.sol/IATP.json +0 -1
  373. package/l1-contracts/out/RewardLib.sol/IATPStaker.json +0 -1
  374. package/l1-contracts/out/build-info/f88e638ee47a1ead.json +0 -1
@@ -1 +1 @@
1
- {"abi":[{"type":"constructor","inputs":[{"name":"_instance","type":"address","internalType":"address"},{"name":"_slasher","type":"address","internalType":"contract ISlasher"},{"name":"_quorum","type":"uint256","internalType":"uint256"},{"name":"_roundSize","type":"uint256","internalType":"uint256"},{"name":"_lifetimeInRounds","type":"uint256","internalType":"uint256"},{"name":"_executionDelayInRounds","type":"uint256","internalType":"uint256"},{"name":"_slashAmounts","type":"uint256[3]","internalType":"uint256[3]"},{"name":"_committeeSize","type":"uint256","internalType":"uint256"},{"name":"_epochDuration","type":"uint256","internalType":"uint256"},{"name":"_slashOffsetInRounds","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"COMMITTEE_SIZE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"EXECUTION_DELAY_IN_ROUNDS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"INSTANCE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"LIFETIME_IN_ROUNDS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MAX_ROUND_SIZE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"QUORUM","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ROUNDABOUT_SIZE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ROUND_SIZE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ROUND_SIZE_IN_EPOCHS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"SLASHER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ISlasher"}],"stateMutability":"view"},{"type":"function","name":"SLASH_AMOUNT_LARGE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"SLASH_AMOUNT_MEDIUM","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"SLASH_AMOUNT_SMALL","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"SLASH_OFFSET_IN_ROUNDS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"SLASH_PAYLOAD_IMPLEMENTATION","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VOTE_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"executeRound","inputs":[{"name":"_round","type":"uint256","internalType":"SlashRound"},{"name":"_committees","type":"address[][]","internalType":"address[][]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCurrentRound","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"SlashRound"}],"stateMutability":"view"},{"type":"function","name":"getPayloadAddress","inputs":[{"name":"_round","type":"uint256","internalType":"SlashRound"},{"name":"_actions","type":"tuple[]","internalType":"struct SlashingProposer.SlashAction[]","components":[{"name":"validator","type":"address","internalType":"address"},{"name":"slashAmount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getRound","inputs":[{"name":"_round","type":"uint256","internalType":"SlashRound"}],"outputs":[{"name":"isExecuted","type":"bool","internalType":"bool"},{"name":"voteCount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSlashTargetCommittees","inputs":[{"name":"_round","type":"uint256","internalType":"SlashRound"}],"outputs":[{"name":"committees","type":"address[][]","internalType":"address[][]"}],"stateMutability":"nonpayable"},{"type":"function","name":"getSlashTargetEpoch","inputs":[{"name":"_round","type":"uint256","internalType":"SlashRound"},{"name":"_epochIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"epochNumber","type":"uint256","internalType":"Epoch"}],"stateMutability":"view"},{"type":"function","name":"getTally","inputs":[{"name":"_round","type":"uint256","internalType":"SlashRound"},{"name":"_committees","type":"address[][]","internalType":"address[][]"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct SlashingProposer.SlashAction[]","components":[{"name":"validator","type":"address","internalType":"address"},{"name":"slashAmount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getVoteSignatureDigest","inputs":[{"name":"_votes","type":"bytes","internalType":"bytes"},{"name":"_slot","type":"uint256","internalType":"Slot"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getVotes","inputs":[{"name":"_round","type":"uint256","internalType":"SlashRound"},{"name":"_index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"isRoundReadyToExecute","inputs":[{"name":"_round","type":"uint256","internalType":"SlashRound"},{"name":"_slot","type":"uint256","internalType":"Slot"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vote","inputs":[{"name":"_votes","type":"bytes","internalType":"bytes"},{"name":"_sig","type":"tuple","internalType":"struct Signature","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"RoundExecuted","inputs":[{"name":"round","type":"uint256","indexed":true,"internalType":"SlashRound"},{"name":"slashCount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"VoteCast","inputs":[{"name":"round","type":"uint256","indexed":true,"internalType":"SlashRound"},{"name":"slot","type":"uint256","indexed":true,"internalType":"Slot"},{"name":"proposer","type":"address","indexed":true,"internalType":"address"},{"name":"voteIndex","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"CloneArgumentsTooLong","inputs":[]},{"type":"error","name":"Create2EmptyBytecode","inputs":[]},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"FailedDeployment","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SignatureLib__InvalidSignature","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}]},{"type":"error","name":"SlashPayload_ArraySizeMismatch","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__CommitteeSizeMustBeGreaterThanZero","inputs":[{"name":"committeeSize","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__InvalidCommitteeCommitment","inputs":[]},{"type":"error","name":"SlashingProposer__InvalidEpochIndex","inputs":[{"name":"epochIndex","type":"uint256","internalType":"uint256"},{"name":"roundSizeInEpochs","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__InvalidNumberOfCommittees","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__InvalidQuorumAndRoundSize","inputs":[{"name":"quorum","type":"uint256","internalType":"uint256"},{"name":"roundSize","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__InvalidSignature","inputs":[]},{"type":"error","name":"SlashingProposer__InvalidSlashAmounts","inputs":[{"name":"slashAmounts","type":"uint256[3]","internalType":"uint256[3]"}]},{"type":"error","name":"SlashingProposer__InvalidVoteLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__LifetimeMustBeGreaterThanExecutionDelay","inputs":[{"name":"lifetime","type":"uint256","internalType":"uint256"},{"name":"executionDelay","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__LifetimeMustBeLessThanRoundabout","inputs":[{"name":"lifetime","type":"uint256","internalType":"uint256"},{"name":"roundabout","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__QuorumMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"SlashingProposer__RoundAlreadyExecuted","inputs":[{"name":"round","type":"uint256","internalType":"SlashRound"}]},{"type":"error","name":"SlashingProposer__RoundNotComplete","inputs":[{"name":"round","type":"uint256","internalType":"SlashRound"}]},{"type":"error","name":"SlashingProposer__RoundOutOfRange","inputs":[{"name":"round","type":"uint256","internalType":"SlashRound"},{"name":"currentRound","type":"uint256","internalType":"SlashRound"}]},{"type":"error","name":"SlashingProposer__RoundSizeInEpochsMustBeGreaterThanZero","inputs":[{"name":"roundSizeInEpochs","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__RoundSizeMustBeMultipleOfEpochDuration","inputs":[{"name":"roundSize","type":"uint256","internalType":"uint256"},{"name":"epochDuration","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__RoundSizeTooLarge","inputs":[{"name":"roundSize","type":"uint256","internalType":"uint256"},{"name":"maxRoundSize","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__SlashAmountMustBeGtZero","inputs":[{"name":"info","type":"string","internalType":"string"}]},{"type":"error","name":"SlashingProposer__SlashAmountTooLarge","inputs":[]},{"type":"error","name":"SlashingProposer__SlashOffsetMustBeGreaterThanZero","inputs":[{"name":"slashOffset","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__VoteAlreadyCastInCurrentSlot","inputs":[{"name":"slot","type":"uint256","internalType":"Slot"}]},{"type":"error","name":"SlashingProposer__VoteSizeTooBig","inputs":[{"name":"voteSize","type":"uint256","internalType":"uint256"},{"name":"maxSize","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__VotesMustBeMultipleOf4","inputs":[{"name":"votes","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__VotingNotOpen","inputs":[{"name":"currentRound","type":"uint256","internalType":"SlashRound"}]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x610300604052348015610010575f5ffd5b5060405161422b38038061422b83398101604081905261002f9161064d565b604080518082018252601081526f29b630b9b434b733a83937b837b9b2b960811b602080830191909152825180840190935260018352603160f81b9083015290610079825f6105a6565b610120526100888160016105a6565b61014052815160208084019190912060e052815190820120610100524660a05261011460e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526001600160a01b038a81166101605289166101805283516101c05260208401516101e0526040840151610200526102208890526102408790526101608288610746565b610280526102608390526102a08690526102c08590526102e08190526040516001600160601b03193060601b169061019790610615565b8190604051809103905ff59050801580156101b4573d5f5f3e3d5ffd5b506001600160a01b03166101a0526102e051806101f057604051631281ef1360e21b81526004016101e791815260200190565b60405180910390fd5b506102405182610280516102049190610759565b14610240518390916102325760405163349ccded60e01b8152600481019290925260248201526044016101e7565b50505f610220511161025757604051636003d05b60e01b815260040160405180910390fd5b6102405161022051906001811161028a5760405163bb76322b60e01b8152600481019290925260248201526044016101e7565b505060026102405161029c9190610746565b6102205161024051909182116102ce5760405163bb76322b60e01b8152600481019290925260248201526044016101e7565b5050610240516102205190808211156103035760405163bb76322b60e01b8152600481019290925260248201526044016101e7565b5050602084015184518591101561032e576040516346bfe3d760e01b81526004016101e7919061077c565b50604084015160208501518591101561035b576040516346bfe3d760e01b81526004016101e7919061077c565b506102c0516102a0519080821161038e5760405163b122072b60e01b8152600481019290925260248201526044016101e7565b50506102a05160808082106103bf57604051630af11b0b60e01b8152600481019290925260248201526044016101e7565b505061028051806103e657604051631f96196f60e11b81526004016101e791815260200190565b5061024051610400808211156104185760405163e979a82960e01b8152600481019290925260248201526044016101e7565b5050610260518061043f576040516326df6e1f60e11b81526004016101e791815260200190565b505f600461028051610260516104559190610759565b61045f9190610746565b90508060808082111561048e57604051636a5170ed60e11b8152600481019290925260248201526044016101e7565b5050600461028051610260516104a49190610759565b6104ae91906107ac565b5f1461028051610260516104c29190610759565b906104e357604051631f1d959560e11b81526004016101e791815260200190565b505f6101c0511161051f57604051631c3167f360e21b81526020600482015260056024820152641cdb585b1b60da1b60448201526064016101e7565b5f6101e0511161055b57604051631c3167f360e21b81526020600482015260066024820152656d656469756d60d01b60448201526064016101e7565b5f610200511161059657604051631c3167f360e21b81526020600482015260056024820152646c6172676560d81b60448201526064016101e7565b5050505050505050505050610955565b5f6020835110156105c1576105ba836105d8565b90506105d2565b816105cc8482610843565b5060ff90505b92915050565b5f5f829050601f81511115610602578260405163305a27a960e01b81526004016101e791906108fd565b805161060d82610932565b179392505050565b61044680613de583390190565b6001600160a01b0381168114610636575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f5f5f5f5f5f5f6101808b8d031215610667575f5ffd5b8a5161067281610622565b60208c0151909a5061068381610622565b60408c015160608d015160808e015160a08f0151939c50919a5098509650945060df8b018c136106b1575f5ffd5b604051606081016001600160401b03811182821017156106d3576106d3610639565b604052806101208d018e8111156106e8575f5ffd5b60c08e015b818110156107055780518352602092830192016106ed565b50516101408e0151610160909e01519c9f9b9e50999c989b979a9699919891979196919550909350505050565b634e487b7160e01b5f52601260045260245ffd5b5f8261075457610754610732565b500490565b80820281158282048414176105d257634e487b7160e01b5f52601160045260245ffd5b6060810181835f5b60038110156107a3578151835260209283019290910190600101610784565b50505092915050565b5f826107ba576107ba610732565b500690565b600181811c908216806107d357607f821691505b6020821081036107f157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561083e57805f5260205f20601f840160051c8101602085101561081c5750805b601f840160051c820191505b8181101561083b575f8155600101610828565b50505b505050565b81516001600160401b0381111561085c5761085c610639565b6108708161086a84546107bf565b846107f7565b6020601f8211600181146108a2575f831561088b5750848201515b5f19600385901b1c1916600184901b17845561083b565b5f84815260208120601f198516915b828110156108d157878501518255602094850194600190920191016108b1565b50848210156108ee57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156107f1575f1960209190910360031b1b16919050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161329e610b475f395f818161033b01528181610519015281816105de01526109c301525f818161042c015261102901525f81816103b7015261105c01525f81816103de0152818161056c015281816105ba015281816108ae01528181610a6301528181610cee01528181610d7f01528181611090015281816111260152818161119601528181611a2f01528181611c3101528181611c970152611e7001525f8181610453015281816108cf01528181610a84015281816111b701528181611a5001528181611edf015261206201525f818161025801528181610c27015261162b01525f818161021c0152611f8201525f8181610188015261201101525f81816103750152611fe201525f81816104050152611fb301525f81816101c20152818161146a01526119c501525f818161027f015261078501525f818161048d01528181610b9e01528181610d5c015281816112a40152818161143c0152818161159e01528181611654015281816119980152611ceb01525f6114d501525f6114a401525f61245101525f61242901525f61238401525f6123ae01525f6123d8015261329e5ff3fe608060405234801561000f575f5ffd5b506004361061017f575f3560e01c80639e63f61e116100d5578063bf2ba55211610084578063bf2ba55214610427578063c5234a7e1461044e578063cf6731e314610475578063d15db8b414610488578063d6c4f440146104af578063f17a2a25146104cf578063f3f9c756146104f2575f5ffd5b80639e63f61e1461035d5780639f90f3d514610370578063a32bf59714610397578063a8a356951461039f578063a97f36a8146103b2578063b34adb6c146103d9578063b394f1dd14610400575f5ffd5b80635db93dfa116101315780635db93dfa1461027a57806384b0196e146102a157806386522973146102bc578063865ef513146102e35780638f1327c0146102ec57806391f366331461031657806395134b2b14610336575f5ffd5b80632028cc7b1461018357806320427492146101bd57806321017e1d146101fc5780632e69de56146102045780632e80d9b61461021757806337bab5d01461023e5780635413330714610253575b5f5ffd5b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6101e47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101b4565b6101aa608081565b6101aa610212366004612957565b610512565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b61025161024c366004612977565b610620565b005b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101e47f000000000000000000000000000000000000000000000000000000000000000081565b6102a9610838565b6040516101b49796959493929190612a1d565b6101aa7f18b6b90f234e6d028d4c9800043cedef34624eedddd14e60eba01934728014fe81565b6101aa61040081565b6102ff6102fa366004612ab3565b61087a565b6040805192151583526020830191909152016101b4565b610329610324366004612957565b6108a4565b6040516101b49190612aca565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b61025161036b366004612b20565b6109a6565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa610b9a565b6101e46103ad366004612c1e565b610c53565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa610483366004612ced565b610c6e565b6101e47f000000000000000000000000000000000000000000000000000000000000000081565b6104c26104bd366004612ab3565b610cea565b6040516101b49190612d34565b6104e26104dd366004612957565b610e7e565b60405190151581526020016101b4565b610505610500366004612977565b610e9d565b6040516101b49190612dc9565b5f61053d837f0000000000000000000000000000000000000000000000000000000000000000111590565b83906105685760405163012144e760e61b815260040161055f91815260200190565b60405180910390fd5b50817f00000000000000000000000000000000000000000000000000000000000000008082106105b457604051633d77873160e11b81526004810192909252602482015260440161055f565b508290507f00000000000000000000000000000000000000000000000000000000000000006106037f000000000000000000000000000000000000000000000000000000000000000086612e34565b61060d9190612e47565b6106179190612e5e565b90505b92915050565b5f610629610b9a565b90505f6106368583610ec5565b90508060600151158590610660576040516373e05c9160e01b815260040161055f91815260200190565b5061066b8583611023565b859061068d576040516353a6fd6760e01b815260040161055f91815260200190565b505f5f61069b83878761108b565b805191935091505f5b8181101561073a578281815181106106be576106be612e71565b602002602001015115610732575f6106f88989848181106106e1576106e1612e71565b90506020028101906106f39190612e85565b61125a565b90505f6107058b84610512565b90506107108161128c565b821461072f576040516309f366fb60e21b815260040160405180910390fd5b50505b6001016106a4565b505061075187846040015185602001516001611322565b8151156107f4575f6107638884611402565b60405163c96be4cb60e01b81526001600160a01b0380831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063c96be4cb906024016020604051808303815f875af11580156107cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f19190612ede565b50505b867ff5b0598f6b87cd92cc8a5cdc26c424169e1d2084571d5ebff9efc8e417eb87ea835160405161082791815260200190565b60405180910390a250505050505050565b5f6060805f5f5f606061084961149d565b6108516114ce565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f5f5f61088e84610889610b9a565b610ec5565b9050806060015181602001519250925050915091565b60605f60046108f37f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612e47565b6108fd9190612f0b565b90505f610908610b9a565b90505f6109158683610ec5565b90508060200151851061096f57826001600160401b0381111561093a5761093a612b79565b6040519080825280601f01601f191660200182016040528015610964576020820181803683370190505b50935050505061061a565b5f610979876114fb565b86610400811061098b5761098b612e71565b60040201905061099b8185611524565b979650505050505050565b5f6109af61159a565b90505f6109bb82611625565b90506109e7817f0000000000000000000000000000000000000000000000000000000000000000111590565b8190610a095760405163012144e760e61b815260040161055f91815260200190565b505f610a13611650565b90505f610a21878786610c6e565b9050610a3e8282610a3736899003890189612f1e565b91906116d6565b610a5b57604051634d8d01f560e11b815260040160405180910390fd5b5f6004610aa87f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612e47565b610ab29190612f0b565b90508087808214610adf576040516394be250760e01b81526004810192909252602482015260440161055f565b50505f610aec8586610ec5565b9050610afb8160400151871190565b8690610b1d5760405163b4b54a8760e01b815260040161055f91815260200190565b506020810151610b2f86828c8c61173f565b610b498688610b3f846001612e5e565b8560600151611322565b846001600160a01b031687877ff6ed5a0362706e33942c258dd867d1664e91a7653843a7c3459a857db97287ae84604051610b8691815260200190565b60405180910390a450505050505050505050565b5f5f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663d8e3784c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bfc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c209190612f84565b9050610c4c7f000000000000000000000000000000000000000000000000000000000000000082612f0b565b9250505090565b5f81515f03610c6357505f61061a565b5f61099b84846117e2565b5f610ce07f18b6b90f234e6d028d4c9800043cedef34624eedddd14e60eba01934728014fe8585604051610ca3929190612f9b565b60408051918290038220602083019390935281019190915260608101849052608001604051602081830303815290604052805190602001206119f9565b90505b9392505050565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160401b03811115610d2457610d24612b79565b604051908082528060200260200182016040528015610d5757816020015b6060815260200190600190039081610d425790505b5090507f00000000000000000000000000000000000000000000000000000000000000005f5b7f0000000000000000000000000000000000000000000000000000000000000000811015610e77575f610db08583610512565b6040516369457a6f60e01b8152600481018290529091506001600160a01b038416906369457a6f906024015f604051808303815f875af1925050508015610e1857506040513d5f823e601f3d908101601f19168201604052610e159190810190612faa565b60015b610e4e57604080515f8152602081019091528451859084908110610e3e57610e3e612e71565b6020026020010181905250610e6e565b80858481518110610e6157610e61612e71565b6020026020010181905250505b50600101610d7d565b5050919050565b5f5f610e8983611625565b9050610e958482611023565b949350505050565b60605f610eac85610889610b9a565b90505f610eba82868661108b565b509695505050505050565b610eee60405180608001604052805f81526020015f81526020015f81526020015f151581525090565b81831180610f06575081610f03608085612e5e565b11155b15610f2e5760405163118fd01760e31b8152600481018490526024810183905260440161055f565b5f6002610f3c608086613039565b60808110610f4c57610f4c612e71565b60408051608081018252919092015463ffffffff80821680845264010000000083049091166020840152600160401b820461ffff1693830193909352600160501b900460ff16151560608201529150610fa59085141590565b15610fd55760405180608001604052808581526020015f81526020015f81526020015f151581525091505061061a565b6040518060800160405280858152602001826040015161ffff16815260200161100b836020015163ffffffff1663ffffffff1690565b81526020018260600151151581525091505092915050565b5f61104e7f000000000000000000000000000000000000000000000000000000000000000084612e5e565b8211801561061757506110817f000000000000000000000000000000000000000000000000000000000000000084612e5e565b9091111592915050565b6060807f0000000000000000000000000000000000000000000000000000000000000000838082146110d95760405163e8fb90f560e01b81526004810192909252602482015260440161055f565b505060208501515f81900361119057604080515f8082526020820190925290611123565b604080518082019091525f80825260208201528152602001906001900390816110fd5790505b507f00000000000000000000000000000000000000000000000000000000000000006001600160401b0381111561115c5761115c612b79565b604051908082528060200260200182016040528015611185578160200160208202803683370190505b509250925050611252565b5f6111db7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612e47565b90505f816001600160401b038111156111f6576111f6612b79565b60405190808252806020026020018201604052801561121f578160200160208202803683370190505b50905061122d888285611a25565b5f61123a895f0151611c2d565b90506112498289898685611e0b565b95509550505050505b935093915050565b5f828260405160200161126e92919061304c565b60405160208183030381529060405280519060200120905092915050565b6040516374e0a89d60e01b8152600481018290525f907f00000000000000000000000000000000000000000000000000000000000000009082906001600160a01b038316906374e0a89d9060240160408051808303815f875af11580156112f5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113199190613098565b50949350505050565b604051806080016040528061133686612139565b63ffffffff16815260200161134a85612139565b63ffffffff16815260200161135e84612143565b61ffff168152821515602090910152600261137a608087613039565b6080811061138a5761138a612e71565b825191018054602084015160408501516060909501511515600160501b0260ff60501b1961ffff909616600160401b029590951662ffffff60401b1963ffffffff9283166401000000000267ffffffffffffffff19909416929095169190911791909117929092169190911791909117905550505050565b5f5f5f5f5f61141187876117e2565b93509350935093505f816001600160a01b03163b111561143657935061061a92505050565b5f6114627f00000000000000000000000000000000000000000000000000000000000000008686612175565b90505f6114907f0000000000000000000000000000000000000000000000000000000000000000838661226c565b9998505050505050505050565b60606114c97f00000000000000000000000000000000000000000000000000000000000000005f612279565b905090565b60606114c97f00000000000000000000000000000000000000000000000000000000000000006001612279565b5f6082611509608084613039565b6080811061151957611519612e71565b611000020192915050565b60408051608080825260a0820190925260609160208201818036833701905050905060208101821561155557835481525b602083111561156957600184015460208201525b604083111561157d57600284015460408201525b606083111561159157600384015460608201525b50908152919050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000009050806001600160a01b031663d8e3784c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161f9190612f84565b91505090565b5f61061a7f000000000000000000000000000000000000000000000000000000000000000083612f0b565b5f5f7f00000000000000000000000000000000000000000000000000000000000000009050806001600160a01b0316633b10244b6040518163ffffffff1660e01b81526004016020604051808303815f875af11580156116b2573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161f91906130ba565b5f5f6116ef83865f015187602001518860400151612322565b905083816001600160a01b038281169082161461173257604051633672eb9b60e21b81526001600160a01b0392831660048201529116602482015260440161055f565b5060019695505050505050565b5f611749856114fb565b84610400811061175b5761175b612e71565b600402019050818060808082111561178f57604051636a5170ed60e11b81526004810192909252602482015260440161055f565b505083811561179d57803583555b60208211156117b157602081013560018401555b60408211156117c557604081013560028401555b60608211156117d957606081013560038401555b50505050505050565b6060805f5f5f85519050806001600160401b0381111561180457611804612b79565b60405190808252806020026020018201604052801561182d578160200160208202803683370190505b509450806001600160401b0381111561184857611848612b79565b604051908082528060200260200182016040528015611871578160200160208202803683370190505b5093505f5b818110156119645786818151811061189057611890612e71565b60200260200101515f01518682815181106118ad576118ad612e71565b60200260200101906001600160a01b031690816001600160a01b0316815250506001600160601b0380168782815181106118e9576118e9612e71565b6020026020010151602001511115611914576040516308ea253560e31b815260040160405180910390fd5b86818151811061192657611926612e71565b60200260200101516020015185828151811061194457611944612e71565b6001600160601b0390921660209283029190910190910152600101611876565b5086858560405160200161197a939291906130d5565b6040516020818303038152906040528051906020012092505f6119be7f00000000000000000000000000000000000000000000000000000000000000008787612175565b90506119ec7f000000000000000000000000000000000000000000000000000000000000000082863061234e565b9250505092959194509250565b5f61061a611a05612378565b8360405161190160f01b8152600281019290925260228201526042902090565b82515f6004611a747f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612e47565b611a7e9190612f0b565b90505f611a8a836114fb565b90505f5b848110156117d9575f611ab783836104008110611aad57611aad612e71565b6004020185611524565b90505f5b8481601f011015611ad957611ad18883836124a1565b602001611abb565b84811015611c235781810160200151600282901b905f90811a90819003611b01575050611c1b565b600381168015611b40578a51600160c05f19840160061b161b908c9085908110611b2d57611b2d612e71565b6020026020010181815101915081815250505b6003600283901c168015611b885760066001820360ff16901b60ff166001901b8c8560010181518110611b7557611b75612e71565b6020026020010181815101915081815250505b6003600484901c168015611bce578c51600160c05f19840160061b161b908e9060028801908110611bbb57611bbb612e71565b6020026020010181815101915081815250505b6003600685901c168015611c14578d51600160c05f19840160061b161b908f9060038901908110611c0157611c01612e71565b6020026020010181815101915081815250505b5050505050505b600101611ad9565b5050600101611a8e565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160401b03811115611c6757611c67612b79565b604051908082528060200260200182016040528015611c90578160200160208202803683370190505b5090505f5b7f0000000000000000000000000000000000000000000000000000000000000000811015611e05575f611cc88483610512565b6040516315d3bc7b60e01b8152600481018290529091505f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906315d3bc7b90602401602060405180830381865afa158015611d30573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d5491906130ba565b90506001600160a01b038116611d6b575050611dfd565b604051631d18577f60e11b8152600481018390525f906001600160a01b03831690633a30aefe906024016040805180830381865afa158015611daf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dd3919061314d565b50905080858581518110611de957611de9612e71565b911515602092830291909101909101525050505b600101611c95565b50919050565b606080836001600160401b03811115611e2657611e26612b79565b604051908082528060200260200182016040528015611e6a57816020015b604080518082019091525f8082526020820152815260200190600190039081611e445790505b5091505f7f00000000000000000000000000000000000000000000000000000000000000006001600160401b03811115611ea657611ea6612b79565b604051908082528060200260200182016040528015611ecf578160200160208202803683370190505b5091505f5b8581101561212c575f7f00000000000000000000000000000000000000000000000000000000000000008281611f0c57611f0c612ef7565b049050858181518110611f2157611f21612e71565b602002602001015115611f345750612124565b5f8a8381518110611f4757611f47612e71565b60200260200101519050805f03611f5f575050612124565b5f60035b801561211f576001600160401b035f19820160061b84901c16918201917f00000000000000000000000000000000000000000000000000000000000000008310612116575f82600103611fd757507f0000000000000000000000000000000000000000000000000000000000000000612031565b8260020361200657507f0000000000000000000000000000000000000000000000000000000000000000612031565b8260030361203157507f00000000000000000000000000000000000000000000000000000000000000005b60405180604001604052808f8f8981811061204e5761204e612e71565b90506020028101906120609190612e85565b7f00000000000000000000000000000000000000000000000000000000000000008b8161208f5761208f612ef7565b0681811061209f5761209f612e71565b90506020020160208101906120b49190613182565b6001600160a01b03168152602001828152508a89815181106120d8576120d8612e71565b602002602001018190525087600101975060018987815181106120fd576120fd612e71565b602002602001019015159081151581525050505061211f565b505f1901611f63565b505050505b600101611ed4565b5082529550959350505050565b5f61061a8261260c565b5f61ffff821115612171576040516306dfcc6560e41b8152601060048201526024810183905260440161055f565b5090565b805182516060918181146121a557604051632cd378e160e21b81526004810192909252602482015260440161055f565b50505f835160206121b69190612e47565b6121c1906034612e5e565b90505f816001600160401b038111156121dc576121dc612b79565b6040519080825280601f01601f191660200182016040528015612206576020820181803683370190505b509050602081018660601b815260148101905085518152602081019050855160208701602087015f5b8381101561225d5760208181028481015160601b875283015160a01b6014870152949094019360010161222f565b50939998505050505050505050565b5f610ce08484845f61263c565b606060ff83146122935761228c83612655565b905061061a565b81805461229f9061319d565b80601f01602080910402602001604051908101604052809291908181526020018280546122cb9061319d565b80156123165780601f106122ed57610100808354040283529160200191612316565b820191905f5260205f20905b8154815290600101906020018083116122f957829003601f168201915b5050505050905061061a565b5f5f5f5f61233288888888612692565b9250925092506123428282612750565b50909695505050505050565b5f5f61235a868661280c565b905061236e8482805190602001208561286a565b9695505050505050565b5f306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156123d057507f000000000000000000000000000000000000000000000000000000000000000046145b156123fa57507f000000000000000000000000000000000000000000000000000000000000000090565b6114c9604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b818101602001515f8190036124b65750505050565b600282901b5f5b602081101561260457821561260457600883901b9260f81c80156125fb57600282901b8301600382168015612521578851600160c05f19840160061b161b908a908490811061250e5761250e612e71565b6020026020010181815101915081815250505b6003600284901c1680156125695760066001820360ff16901b60ff166001901b8a846001018151811061255657612556612e71565b6020026020010181815101915081815250505b6003600485901c1680156125af578a51600160c05f19840160061b161b908c906002870190811061259c5761259c612e71565b6020026020010181815101915081815250505b6003600686901c1680156125f5578b51600160c05f19840160061b161b908d90600388019081106125e2576125e2612e71565b6020026020010181815101915081815250505b50505050505b506001016124bd565b505050505050565b5f63ffffffff821115612171576040516306dfcc6560e41b8152602060048201526024810183905260440161055f565b5f5f612648868661280c565b905061236e83858361289c565b60605f61266183612930565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f80806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411156126c157505f91506003905082612746565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612712573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b03811661273d57505f925060019150829050612746565b92505f91508190505b9450945094915050565b5f826003811115612763576127636131cf565b0361276c575050565b6001826003811115612780576127806131cf565b0361279e5760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156127b2576127b26131cf565b036127d35760405163fce698f760e01b81526004810182905260240161055f565b60038260038111156127e7576127e76131cf565b03612808576040516335e2f38360e21b81526004810182905260240161055f565b5050565b6060615fd3825111156128325760405163250a241560e21b815260040160405180910390fd5b815161283f90602d612e5e565b8383604051602001612853939291906131e3565b604051602081830303815290604052905092915050565b5f604051836040820152846020820152828152600b8101905060ff8153605590206001600160a01b0316949350505050565b5f834710156128c75760405163cf47918160e01b81524760048201526024810185905260440161055f565b81515f036128e857604051631328927760e21b815260040160405180910390fd5b8282516020840186f590503d151981151615612909576040513d5f823e3d81fd5b6001600160a01b038116610ce35760405163b06ebf3d60e01b815260040160405180910390fd5b5f60ff8216601f81111561061a57604051632cd44ac360e21b815260040160405180910390fd5b5f5f60408385031215612968575f5ffd5b50508035926020909101359150565b5f5f5f60408486031215612989575f5ffd5b8335925060208401356001600160401b038111156129a5575f5ffd5b8401601f810186136129b5575f5ffd5b80356001600160401b038111156129ca575f5ffd5b8660208260051b84010111156129de575f5ffd5b939660209190910195509293505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b60ff60f81b8816815260e060208201525f612a3b60e08301896129ef565b8281036040840152612a4d81896129ef565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015612aa2578351835260209384019390920191600101612a84565b50909b9a5050505050505050505050565b5f60208284031215612ac3575f5ffd5b5035919050565b602081525f61061760208301846129ef565b5f5f83601f840112612aec575f5ffd5b5081356001600160401b03811115612b02575f5ffd5b602083019150836020828501011115612b19575f5ffd5b9250929050565b5f5f5f8385036080811215612b33575f5ffd5b84356001600160401b03811115612b48575f5ffd5b612b5487828801612adc565b9095509350506060601f1982011215612b6b575f5ffd5b506020840190509250925092565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715612baf57612baf612b79565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612bdd57612bdd612b79565b604052919050565b5f6001600160401b03821115612bfd57612bfd612b79565b5060051b60200190565b6001600160a01b0381168114612c1b575f5ffd5b50565b5f5f60408385031215612c2f575f5ffd5b8235915060208301356001600160401b03811115612c4b575f5ffd5b8301601f81018513612c5b575f5ffd5b8035612c6e612c6982612be5565b612bb5565b8082825260208201915060208360061b850101925087831115612c8f575f5ffd5b6020840193505b82841015612cdf5760408489031215612cad575f5ffd5b612cb5612b8d565b8435612cc081612c07565b8152602085810135818301529083526040909401939190910190612c96565b809450505050509250929050565b5f5f5f60408486031215612cff575f5ffd5b83356001600160401b03811115612d14575f5ffd5b612d2086828701612adc565b909790965060209590950135949350505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612dbd57868503603f19018452815180518087526020918201918701905f5b81811015612da45783516001600160a01b0316835260209384019390920191600101612d7d565b5090965050506020938401939190910190600101612d5a565b50929695505050505050565b602080825282518282018190525f918401906040840190835b81811015612e1557835180516001600160a01b031684526020908101518185015290930192604090920191600101612de2565b509095945050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561061a5761061a612e20565b808202811582820484141761061a5761061a612e20565b8082018082111561061a5761061a612e20565b634e487b7160e01b5f52603260045260245ffd5b5f5f8335601e19843603018112612e9a575f5ffd5b8301803591506001600160401b03821115612eb3575f5ffd5b6020019150600581901b3603821315612b19575f5ffd5b80518015158114612ed9575f5ffd5b919050565b5f60208284031215612eee575f5ffd5b61061782612eca565b634e487b7160e01b5f52601260045260245ffd5b5f82612f1957612f19612ef7565b500490565b5f6060828403128015612f2f575f5ffd5b50604051606081016001600160401b0381118282101715612f5257612f52612b79565b604052823560ff81168114612f65575f5ffd5b8152602083810135908201526040928301359281019290925250919050565b5f60208284031215612f94575f5ffd5b5051919050565b818382375f9101908152919050565b5f60208284031215612fba575f5ffd5b81516001600160401b03811115612fcf575f5ffd5b8201601f81018413612fdf575f5ffd5b8051612fed612c6982612be5565b8082825260208201915060208360051b85010192508683111561300e575f5ffd5b6020840193505b8284101561236e57835161302881612c07565b825260209384019390910190613015565b5f8261304757613047612ef7565b500690565b602080825281018290525f8360408301825b8581101561308e57823561307181612c07565b6001600160a01b031682526020928301929091019060010161305e565b5095945050505050565b5f5f604083850312156130a9575f5ffd5b505080516020909101519092909150565b5f602082840312156130ca575f5ffd5b8151610ce381612c07565b8381525f602082018451602086015f5b8281101561310c5781516001600160a01b03168452602093840193909101906001016130e5565b50508451602086019291505f5b818110156131405783516001600160601b0316835260209384019390920191600101613119565b5090979650505050505050565b5f5f6040838503121561315e575f5ffd5b61316783612eca565b9150602083015161317781612c07565b809150509250929050565b5f60208284031215613192575f5ffd5b8135610ce381612c07565b600181811c908216806131b157607f821691505b602082108103611e0557634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b606160f81b815260f084901b6001600160f01b0319166001820152703d81600a3d39f3363d3d373d3d3d363d7360781b6003820152606083901b6bffffffffffffffffffffffff191660148201526e5af43d82803e903d91602b57fd5bf360881b602882015281515f908060208501603785015e5f920160370191825250939250505056fea2646970667358221220e80f4534c7eca3f86637768127cd6e6c38cd07610715716d94dcaad7eb8a0b8764736f6c634300081e00336080604052348015600e575f5ffd5b5061042a8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c8063504d080b146100385780637754305c14610056575b5f5ffd5b610040610084565b60405161004d919061030b565b60405180910390f35b604080518082018252600c81526b14db185cda14185e5b1bd85960a21b6020820152905161004d919061038e565b60605f5f5f6100916101e8565b925092509250815167ffffffffffffffff8111156100b1576100b16103a7565b6040519080825280602002602001820160405280156100f657816020015b604080518082019091525f8152606060208201528152602001906001900390816100cf5790505b5093505f5b82518110156101e1576040518060400160405280856001600160a01b031681526020016302fb4d8560e01b858481518110610138576101386103bb565b6020026020010151858581518110610152576101526103bb565b60209081029190910101516040516001600160a01b0390921660248301526bffffffffffffffffffffffff16604482015260640160408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905285518690839081106101ce576101ce6103bb565b60209081029190910101526001016100fb565b5050505090565b5f6060805f6101f630610270565b9050602081015160601c93506034810151604051935080845260208401602082028101935081845260208401602083028101604052605484015f5b8481101561026557815160601c602082810286810192909252601484015160a01c9185019190915290910190600101610231565b505050505050909192565b60605f610288602d6001600160a01b0385163b6103cf565b67ffffffffffffffff8111156102a0576102a06103a7565b6040519080825280601f01601f1916602001820160405280156102ca576020820181803683370190505b5090508051602d60208301853c92915050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561038257868503603f19018452815180516001600160a01b0316865260209081015160409187018290529061036c908701826102dd565b9550506020938401939190910190600101610331565b50929695505050505050565b602081525f6103a060208301846102dd565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b818103818111156103ee57634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220315c78f93383d2c15a495d46a95fdea9653ab1a3b5994d96f820001c97a7472664736f6c634300081e0033","sourceMap":"5491:50752:125:-:0;;;14702:3831;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3328:431:58;;;;;;;;;;;-1:-1:-1;;;3328:431:58;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3328:431:58;;;;;3401:45;3328:431;-1:-1:-1;3401:30:58;:45::i;:::-;3393:53;;3467:51;:7;3501:16;3467:33;:51::i;:::-;3456:62;;3542:22;;;;;;;;;;3528:36;;3591:25;;;;;;3574:42;;3644:13;3627:30;;3692:23;4226:11;;4239:14;;4204:80;;;2079:95;4204:80;;;7888:25:182;7929:18;;;7922:34;;;;7972:18;;;7965:34;4255:13:58;8015:18:182;;;8008:34;4278:4:58;8058:19:182;;;8051:61;4168:7:58;;7860:19:182;;4204:80:58;;;;;;;;;;;;4194:91;;;;;;4187:98;;4113:179;;3692:23;3667:48;;-1:-1:-1;;3747:4:58;3725:27;;-1:-1:-1;;;;;15042:20:125;;::::1;;::::0;15068:18;::::1;;::::0;15113:16;;15092:37:::1;::::0;15113:16:::1;15157::::0;::::1;::::0;15135:38:::1;::::0;15200:16;;::::1;::::0;15179:37:::1;::::0;15222:16:::1;::::0;;;15244:23:::1;::::0;;;15296:27:::1;15309:14:::0;15244:23;15296:27:::1;:::i;:::-;15273:50;::::0;15329:31:::1;::::0;;;15366:38:::1;::::0;;;15410:51:::1;::::0;;;15467:45:::1;::::0;;;15627:75:::1;::::0;-1:-1:-1;;;;;;15691:4:125::1;15667:31;;15659:40;::::0;15627:75:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;15588:115:125::1;;::::0;15725:22:::1;::::0;:26;15710:130:::1;;;;-1:-1:-1::0;;;15710:130:125::1;;;;;;2705:25:182::0;;2693:2;2678:18;;2559:177;15710:130:125::1;;;;;;;;;;15902:10;;15884:14;15861:20;;:37;;;;:::i;:::-;:51;15984:10;;15996:14;15846:171;;;;;::::0;-1:-1:-1;;;15846:171:125;;::::1;::::0;::::1;3185:25:182::0;;;;3226:18;;;3219:34;3158:18;;15846:171:125::1;3011:248:182::0;15846:171:125::1;;;16040:1;16031:6;;:10;16023:75;;;;-1:-1:-1::0;;;16023:75:125::1;;;;;;;;;;;;16112:10;::::0;16179:6:::1;::::0;;16125:1:::1;16112:14:::0;::::1;16104:95;;;::::0;-1:-1:-1;;;16104:95:125;;::::1;::::0;::::1;3185:25:182::0;;;;3226:18;;;3219:34;3158:18;;16104:95:125::1;3011:248:182::0;16104:95:125::1;;;16235:1;16222:10;;:14;;;;:::i;:::-;16213:6;::::0;16297:10:::1;::::0;16213:6;;:23;::::1;16205:104;;;::::0;-1:-1:-1;;;16205:104:125;;::::1;::::0;::::1;3185:25:182::0;;;;3226:18;;;3219:34;3158:18;;16205:104:125::1;3011:248:182::0;16205:104:125::1;-1:-1:-1::0;;16333:10:125::1;::::0;16323:6:::1;::::0;;:20;;::::1;;16315:101;;;::::0;-1:-1:-1;;;16315:101:125;;::::1;::::0;::::1;3185:25:182::0;;;;3226:18;;;3219:34;3158:18;;16315:101:125::1;3011:248:182::0;16315:101:125::1;-1:-1:-1::0;;16450:16:125::1;::::0;::::1;::::0;16430;;16450:13;;-1:-1:-1;16430:36:125::1;16422:106;;;;-1:-1:-1::0;;;16422:106:125::1;;;;;;;;:::i;:::-;-1:-1:-1::0;16562:16:125;;::::1;::::0;::::1;16542::::0;::::1;::::0;16562:13;;-1:-1:-1;16542:36:125::1;16534:106;;;;-1:-1:-1::0;;;16534:106:125::1;;;;;;;;:::i;:::-;-1:-1:-1::0;16682:25:125::1;::::0;16661:18:::1;::::0;;:46;;::::1;16646:186;;;::::0;-1:-1:-1;;;16646:186:125;;::::1;::::0;::::1;3185:25:182::0;;;;3226:18;;;3219:34;3158:18;;16646:186:125::1;3011:248:182::0;16646:186:125::1;-1:-1:-1::0;;16853:18:125::1;::::0;8943:3:::1;16853:36:::0;;::::1;16838:159;;;::::0;-1:-1:-1;;;16838:159:125;;::::1;::::0;::::1;3185:25:182::0;;;;3226:18;;;3219:34;3158:18;;16838:159:125::1;3011:248:182::0;16838:159:125::1;-1:-1:-1::0;;17018:20:125::1;::::0;:24;17003:132:::1;;;;-1:-1:-1::0;;;17003:132:125::1;;;;;;2705:25:182::0;;2693:2;2678:18;;2559:177;17003:132:125::1;-1:-1:-1::0;17149:10:125::1;::::0;9218:4:::1;17149:28:::0;;::::1;;17141:109;;;::::0;-1:-1:-1;;;17141:109:125;;::::1;::::0;::::1;3185:25:182::0;;;;3226:18;;;3219:34;3158:18;;17141:109:125::1;3011:248:182::0;17141:109:125::1;-1:-1:-1::0;;17264:14:125::1;::::0;:18;17256:104:::1;;;;-1:-1:-1::0;;;17256:104:125::1;;;;;;2705:25:182::0;;2693:2;2678:18;;2559:177;17256:104:125::1;;17579:16;17638:1;17615:20;;17598:14;;:37;;;;:::i;:::-;:41;;;;:::i;:::-;17579:60:::0;-1:-1:-1;17579:60:125;17665:3:::1;17653:15:::0;;::::1;;17645:80;;;::::0;-1:-1:-1;;;17645:80:125;;::::1;::::0;::::1;3185:25:182::0;;;;3226:18;;;3219:34;3158:18;;17645:80:125::1;3011:248:182::0;17645:80:125::1;;;17787:1;17764:20;;17747:14;;:37;;;;:::i;:::-;:41;;;;:::i;:::-;17792:1;17747:46;17866:20;;17849:14;;:37;;;;:::i;:::-;17732:161;;;;;-1:-1:-1::0;;;17732:161:125::1;;;;;;2705:25:182::0;;2693:2;2678:18;;2559:177;17732:161:125::1;;18273:1;18252:18;;:22;18244:90;;;::::0;-1:-1:-1;;;18244:90:125;;4322:2:182;18244:90:125::1;::::0;::::1;4304:21:182::0;4361:1;4341:18;;;4334:29;-1:-1:-1;;;4379:18:182;;;4372:35;4424:18;;18244:90:125::1;4120:328:182::0;18244:90:125::1;18370:1;18348:19;;:23;18340:92;;;::::0;-1:-1:-1;;;18340:92:125;;4655:2:182;18340:92:125::1;::::0;::::1;4637:21:182::0;4694:1;4674:18;;;4667:29;-1:-1:-1;;;4712:18:182;;;4705:36;4758:18;;18340:92:125::1;4453:329:182::0;18340:92:125::1;18467:1;18446:18;;:22;18438:90;;;::::0;-1:-1:-1;;;18438:90:125;;4989:2:182;18438:90:125::1;::::0;::::1;4971:21:182::0;5028:1;5008:18;;;5001:29;-1:-1:-1;;;5046:18:182;;;5039:35;5091:18;;18438:90:125::1;4787:328:182::0;18438:90:125::1;15036:3497;14702:3831:::0;;;;;;;;;;5491:50752;;2887:340:52;2983:11;3032:2;3016:5;3010:19;:24;3006:215;;;3057:20;3071:5;3057:13;:20::i;:::-;3050:27;;;;3006:215;3134:5;3108:46;3149:5;3134;3108:46;:::i;:::-;-1:-1:-1;1390:66:52;;-1:-1:-1;3006:215:52;2887:340;;;;:::o;1708:286::-;1773:11;1796:17;1822:3;1796:30;;1854:2;1840:4;:11;:16;1836:72;;;1893:3;1879:18;;-1:-1:-1;;;1879:18:52;;;;;;;;:::i;1836:72::-;1974:11;;1957:13;1974:4;1957:13;:::i;:::-;1949:36;;1708:286;-1:-1:-1;;;1708:286:52:o;5491:50752:125:-;;;;;;;;:::o;14:131:182:-;-1:-1:-1;;;;;89:31:182;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:127::-;211:10;206:3;202:20;199:1;192:31;242:4;239:1;232:15;266:4;263:1;256:15;282:1883;474:6;482;490;498;506;514;522;530;538;546;599:3;587:9;578:7;574:23;570:33;567:53;;;616:1;613;606:12;567:53;648:9;642:16;667:31;692:5;667:31;:::i;:::-;767:2;752:18;;746:25;717:5;;-1:-1:-1;780:33:182;746:25;780:33;:::i;:::-;905:2;890:18;;884:25;1001:2;986:18;;980:25;1097:3;1082:19;;1076:26;1194:3;1179:19;;1173:26;832:7;;-1:-1:-1;884:25:182;;-1:-1:-1;980:25:182;-1:-1:-1;1076:26:182;-1:-1:-1;1173:26:182;-1:-1:-1;1263:3:182;1248:19;;1244:33;-1:-1:-1;1234:61:182;;1291:1;1288;1281:12;1234:61;1324:2;1318:9;1366:2;1354:15;;-1:-1:-1;;;;;1384:34:182;;1420:22;;;1381:62;1378:88;;;1446:18;;:::i;:::-;1482:2;1475:22;1517:6;1561:3;1546:19;;1577;;;1574:39;;;1609:1;1606;1599:12;1574:39;1648:3;1637:9;1633:19;1661:195;1677:6;1672:3;1669:15;1661:195;;;1771:10;;1794:20;;1843:2;1834:12;;;;1694;1661:195;;;-1:-1:-1;1926:13:182;2031:3;2016:19;;2010:26;2128:3;2113:19;;;2107:26;282:1883;;;;-1:-1:-1;282:1883:182;;;;;;;;1875:6;;1926:13;;2010:26;;2107;;-1:-1:-1;282:1883:182;;-1:-1:-1;;;;282:1883:182:o;2302:127::-;2363:10;2358:3;2354:20;2351:1;2344:31;2394:4;2391:1;2384:15;2418:4;2415:1;2408:15;2434:120;2474:1;2500;2490:35;;2505:18;;:::i;:::-;-1:-1:-1;2539:9:182;;2434:120::o;2741:265::-;2814:9;;;2845;;2862:15;;;2856:22;;2842:37;2832:168;;2922:10;2917:3;2913:20;2910:1;2903:31;2957:4;2954:1;2947:15;2985:4;2982:1;2975:15;3264:471;3444:2;3429:18;;3433:9;3524:6;3402:4;3558:171;3572:4;3569:1;3566:11;3558:171;;;3631:13;;3619:26;;3674:4;3665:14;;;;3702:17;;;;3592:1;3585:9;3558:171;;;3562:3;;;3264:471;;;;:::o;4003:112::-;4035:1;4061;4051:35;;4066:18;;:::i;:::-;-1:-1:-1;4100:9:182;;4003:112::o;5120:380::-;5199:1;5195:12;;;;5242;;;5263:61;;5317:4;5309:6;5305:17;5295:27;;5263:61;5370:2;5362:6;5359:14;5339:18;5336:38;5333:161;;5416:10;5411:3;5407:20;5404:1;5397:31;5451:4;5448:1;5441:15;5479:4;5476:1;5469:15;5333:161;;5120:380;;;:::o;5631:518::-;5733:2;5728:3;5725:11;5722:421;;;5769:5;5766:1;5759:16;5813:4;5810:1;5800:18;5883:2;5871:10;5867:19;5864:1;5860:27;5854:4;5850:38;5919:4;5907:10;5904:20;5901:47;;;-1:-1:-1;5942:4:182;5901:47;5997:2;5992:3;5988:12;5985:1;5981:20;5975:4;5971:31;5961:41;;6052:81;6070:2;6063:5;6060:13;6052:81;;;6129:1;6115:16;;6096:1;6085:13;6052:81;;;6056:3;;5722:421;5631:518;;;:::o;6325:1299::-;6445:10;;-1:-1:-1;;;;;6467:30:182;;6464:56;;;6500:18;;:::i;:::-;6529:97;6619:6;6579:38;6611:4;6605:11;6579:38;:::i;:::-;6573:4;6529:97;:::i;:::-;6675:4;6706:2;6695:14;;6723:1;6718:649;;;;7411:1;7428:6;7425:89;;;-1:-1:-1;7480:19:182;;;7474:26;7425:89;-1:-1:-1;;6282:1:182;6278:11;;;6274:24;6270:29;6260:40;6306:1;6302:11;;;6257:57;7527:81;;6688:930;;6718:649;5578:1;5571:14;;;5615:4;5602:18;;-1:-1:-1;;6754:20:182;;;6872:222;6886:7;6883:1;6880:14;6872:222;;;6968:19;;;6962:26;6947:42;;7075:4;7060:20;;;;7028:1;7016:14;;;;6902:12;6872:222;;;6876:3;7122:6;7113:7;7110:19;7107:201;;;7183:19;;;7177:26;-1:-1:-1;;7266:1:182;7262:14;;;7278:3;7258:24;7254:37;7250:42;7235:58;7220:74;;7107:201;-1:-1:-1;;;;7354:1:182;7338:14;;;7334:22;7321:36;;-1:-1:-1;6325:1299:182:o;8123:418::-;8272:2;8261:9;8254:21;8235:4;8304:6;8298:13;8347:6;8342:2;8331:9;8327:18;8320:34;8406:6;8401:2;8393:6;8389:15;8384:2;8373:9;8369:18;8363:50;8462:1;8457:2;8448:6;8437:9;8433:22;8429:31;8422:42;8532:2;8525;8521:7;8516:2;8508:6;8504:15;8500:29;8489:9;8485:45;8481:54;8473:62;;;8123:418;;;;:::o;8546:297::-;8664:12;;8711:4;8700:16;;;8694:23;;8664:12;8729:16;;8726:111;;;-1:-1:-1;;8803:4:182;8799:17;;;;8796:1;8792:25;8788:38;8777:50;;8546:297;-1:-1:-1;8546:297:182:o;:::-;5491:50752:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061017f575f3560e01c80639e63f61e116100d5578063bf2ba55211610084578063bf2ba55214610427578063c5234a7e1461044e578063cf6731e314610475578063d15db8b414610488578063d6c4f440146104af578063f17a2a25146104cf578063f3f9c756146104f2575f5ffd5b80639e63f61e1461035d5780639f90f3d514610370578063a32bf59714610397578063a8a356951461039f578063a97f36a8146103b2578063b34adb6c146103d9578063b394f1dd14610400575f5ffd5b80635db93dfa116101315780635db93dfa1461027a57806384b0196e146102a157806386522973146102bc578063865ef513146102e35780638f1327c0146102ec57806391f366331461031657806395134b2b14610336575f5ffd5b80632028cc7b1461018357806320427492146101bd57806321017e1d146101fc5780632e69de56146102045780632e80d9b61461021757806337bab5d01461023e5780635413330714610253575b5f5ffd5b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6101e47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101b4565b6101aa608081565b6101aa610212366004612957565b610512565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b61025161024c366004612977565b610620565b005b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101e47f000000000000000000000000000000000000000000000000000000000000000081565b6102a9610838565b6040516101b49796959493929190612a1d565b6101aa7f18b6b90f234e6d028d4c9800043cedef34624eedddd14e60eba01934728014fe81565b6101aa61040081565b6102ff6102fa366004612ab3565b61087a565b6040805192151583526020830191909152016101b4565b610329610324366004612957565b6108a4565b6040516101b49190612aca565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b61025161036b366004612b20565b6109a6565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa610b9a565b6101e46103ad366004612c1e565b610c53565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa610483366004612ced565b610c6e565b6101e47f000000000000000000000000000000000000000000000000000000000000000081565b6104c26104bd366004612ab3565b610cea565b6040516101b49190612d34565b6104e26104dd366004612957565b610e7e565b60405190151581526020016101b4565b610505610500366004612977565b610e9d565b6040516101b49190612dc9565b5f61053d837f0000000000000000000000000000000000000000000000000000000000000000111590565b83906105685760405163012144e760e61b815260040161055f91815260200190565b60405180910390fd5b50817f00000000000000000000000000000000000000000000000000000000000000008082106105b457604051633d77873160e11b81526004810192909252602482015260440161055f565b508290507f00000000000000000000000000000000000000000000000000000000000000006106037f000000000000000000000000000000000000000000000000000000000000000086612e34565b61060d9190612e47565b6106179190612e5e565b90505b92915050565b5f610629610b9a565b90505f6106368583610ec5565b90508060600151158590610660576040516373e05c9160e01b815260040161055f91815260200190565b5061066b8583611023565b859061068d576040516353a6fd6760e01b815260040161055f91815260200190565b505f5f61069b83878761108b565b805191935091505f5b8181101561073a578281815181106106be576106be612e71565b602002602001015115610732575f6106f88989848181106106e1576106e1612e71565b90506020028101906106f39190612e85565b61125a565b90505f6107058b84610512565b90506107108161128c565b821461072f576040516309f366fb60e21b815260040160405180910390fd5b50505b6001016106a4565b505061075187846040015185602001516001611322565b8151156107f4575f6107638884611402565b60405163c96be4cb60e01b81526001600160a01b0380831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063c96be4cb906024016020604051808303815f875af11580156107cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f19190612ede565b50505b867ff5b0598f6b87cd92cc8a5cdc26c424169e1d2084571d5ebff9efc8e417eb87ea835160405161082791815260200190565b60405180910390a250505050505050565b5f6060805f5f5f606061084961149d565b6108516114ce565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f5f5f61088e84610889610b9a565b610ec5565b9050806060015181602001519250925050915091565b60605f60046108f37f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612e47565b6108fd9190612f0b565b90505f610908610b9a565b90505f6109158683610ec5565b90508060200151851061096f57826001600160401b0381111561093a5761093a612b79565b6040519080825280601f01601f191660200182016040528015610964576020820181803683370190505b50935050505061061a565b5f610979876114fb565b86610400811061098b5761098b612e71565b60040201905061099b8185611524565b979650505050505050565b5f6109af61159a565b90505f6109bb82611625565b90506109e7817f0000000000000000000000000000000000000000000000000000000000000000111590565b8190610a095760405163012144e760e61b815260040161055f91815260200190565b505f610a13611650565b90505f610a21878786610c6e565b9050610a3e8282610a3736899003890189612f1e565b91906116d6565b610a5b57604051634d8d01f560e11b815260040160405180910390fd5b5f6004610aa87f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612e47565b610ab29190612f0b565b90508087808214610adf576040516394be250760e01b81526004810192909252602482015260440161055f565b50505f610aec8586610ec5565b9050610afb8160400151871190565b8690610b1d5760405163b4b54a8760e01b815260040161055f91815260200190565b506020810151610b2f86828c8c61173f565b610b498688610b3f846001612e5e565b8560600151611322565b846001600160a01b031687877ff6ed5a0362706e33942c258dd867d1664e91a7653843a7c3459a857db97287ae84604051610b8691815260200190565b60405180910390a450505050505050505050565b5f5f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663d8e3784c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bfc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c209190612f84565b9050610c4c7f000000000000000000000000000000000000000000000000000000000000000082612f0b565b9250505090565b5f81515f03610c6357505f61061a565b5f61099b84846117e2565b5f610ce07f18b6b90f234e6d028d4c9800043cedef34624eedddd14e60eba01934728014fe8585604051610ca3929190612f9b565b60408051918290038220602083019390935281019190915260608101849052608001604051602081830303815290604052805190602001206119f9565b90505b9392505050565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160401b03811115610d2457610d24612b79565b604051908082528060200260200182016040528015610d5757816020015b6060815260200190600190039081610d425790505b5090507f00000000000000000000000000000000000000000000000000000000000000005f5b7f0000000000000000000000000000000000000000000000000000000000000000811015610e77575f610db08583610512565b6040516369457a6f60e01b8152600481018290529091506001600160a01b038416906369457a6f906024015f604051808303815f875af1925050508015610e1857506040513d5f823e601f3d908101601f19168201604052610e159190810190612faa565b60015b610e4e57604080515f8152602081019091528451859084908110610e3e57610e3e612e71565b6020026020010181905250610e6e565b80858481518110610e6157610e61612e71565b6020026020010181905250505b50600101610d7d565b5050919050565b5f5f610e8983611625565b9050610e958482611023565b949350505050565b60605f610eac85610889610b9a565b90505f610eba82868661108b565b509695505050505050565b610eee60405180608001604052805f81526020015f81526020015f81526020015f151581525090565b81831180610f06575081610f03608085612e5e565b11155b15610f2e5760405163118fd01760e31b8152600481018490526024810183905260440161055f565b5f6002610f3c608086613039565b60808110610f4c57610f4c612e71565b60408051608081018252919092015463ffffffff80821680845264010000000083049091166020840152600160401b820461ffff1693830193909352600160501b900460ff16151560608201529150610fa59085141590565b15610fd55760405180608001604052808581526020015f81526020015f81526020015f151581525091505061061a565b6040518060800160405280858152602001826040015161ffff16815260200161100b836020015163ffffffff1663ffffffff1690565b81526020018260600151151581525091505092915050565b5f61104e7f000000000000000000000000000000000000000000000000000000000000000084612e5e565b8211801561061757506110817f000000000000000000000000000000000000000000000000000000000000000084612e5e565b9091111592915050565b6060807f0000000000000000000000000000000000000000000000000000000000000000838082146110d95760405163e8fb90f560e01b81526004810192909252602482015260440161055f565b505060208501515f81900361119057604080515f8082526020820190925290611123565b604080518082019091525f80825260208201528152602001906001900390816110fd5790505b507f00000000000000000000000000000000000000000000000000000000000000006001600160401b0381111561115c5761115c612b79565b604051908082528060200260200182016040528015611185578160200160208202803683370190505b509250925050611252565b5f6111db7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612e47565b90505f816001600160401b038111156111f6576111f6612b79565b60405190808252806020026020018201604052801561121f578160200160208202803683370190505b50905061122d888285611a25565b5f61123a895f0151611c2d565b90506112498289898685611e0b565b95509550505050505b935093915050565b5f828260405160200161126e92919061304c565b60405160208183030381529060405280519060200120905092915050565b6040516374e0a89d60e01b8152600481018290525f907f00000000000000000000000000000000000000000000000000000000000000009082906001600160a01b038316906374e0a89d9060240160408051808303815f875af11580156112f5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113199190613098565b50949350505050565b604051806080016040528061133686612139565b63ffffffff16815260200161134a85612139565b63ffffffff16815260200161135e84612143565b61ffff168152821515602090910152600261137a608087613039565b6080811061138a5761138a612e71565b825191018054602084015160408501516060909501511515600160501b0260ff60501b1961ffff909616600160401b029590951662ffffff60401b1963ffffffff9283166401000000000267ffffffffffffffff19909416929095169190911791909117929092169190911791909117905550505050565b5f5f5f5f5f61141187876117e2565b93509350935093505f816001600160a01b03163b111561143657935061061a92505050565b5f6114627f00000000000000000000000000000000000000000000000000000000000000008686612175565b90505f6114907f0000000000000000000000000000000000000000000000000000000000000000838661226c565b9998505050505050505050565b60606114c97f00000000000000000000000000000000000000000000000000000000000000005f612279565b905090565b60606114c97f00000000000000000000000000000000000000000000000000000000000000006001612279565b5f6082611509608084613039565b6080811061151957611519612e71565b611000020192915050565b60408051608080825260a0820190925260609160208201818036833701905050905060208101821561155557835481525b602083111561156957600184015460208201525b604083111561157d57600284015460408201525b606083111561159157600384015460608201525b50908152919050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000009050806001600160a01b031663d8e3784c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161f9190612f84565b91505090565b5f61061a7f000000000000000000000000000000000000000000000000000000000000000083612f0b565b5f5f7f00000000000000000000000000000000000000000000000000000000000000009050806001600160a01b0316633b10244b6040518163ffffffff1660e01b81526004016020604051808303815f875af11580156116b2573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161f91906130ba565b5f5f6116ef83865f015187602001518860400151612322565b905083816001600160a01b038281169082161461173257604051633672eb9b60e21b81526001600160a01b0392831660048201529116602482015260440161055f565b5060019695505050505050565b5f611749856114fb565b84610400811061175b5761175b612e71565b600402019050818060808082111561178f57604051636a5170ed60e11b81526004810192909252602482015260440161055f565b505083811561179d57803583555b60208211156117b157602081013560018401555b60408211156117c557604081013560028401555b60608211156117d957606081013560038401555b50505050505050565b6060805f5f5f85519050806001600160401b0381111561180457611804612b79565b60405190808252806020026020018201604052801561182d578160200160208202803683370190505b509450806001600160401b0381111561184857611848612b79565b604051908082528060200260200182016040528015611871578160200160208202803683370190505b5093505f5b818110156119645786818151811061189057611890612e71565b60200260200101515f01518682815181106118ad576118ad612e71565b60200260200101906001600160a01b031690816001600160a01b0316815250506001600160601b0380168782815181106118e9576118e9612e71565b6020026020010151602001511115611914576040516308ea253560e31b815260040160405180910390fd5b86818151811061192657611926612e71565b60200260200101516020015185828151811061194457611944612e71565b6001600160601b0390921660209283029190910190910152600101611876565b5086858560405160200161197a939291906130d5565b6040516020818303038152906040528051906020012092505f6119be7f00000000000000000000000000000000000000000000000000000000000000008787612175565b90506119ec7f000000000000000000000000000000000000000000000000000000000000000082863061234e565b9250505092959194509250565b5f61061a611a05612378565b8360405161190160f01b8152600281019290925260228201526042902090565b82515f6004611a747f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612e47565b611a7e9190612f0b565b90505f611a8a836114fb565b90505f5b848110156117d9575f611ab783836104008110611aad57611aad612e71565b6004020185611524565b90505f5b8481601f011015611ad957611ad18883836124a1565b602001611abb565b84811015611c235781810160200151600282901b905f90811a90819003611b01575050611c1b565b600381168015611b40578a51600160c05f19840160061b161b908c9085908110611b2d57611b2d612e71565b6020026020010181815101915081815250505b6003600283901c168015611b885760066001820360ff16901b60ff166001901b8c8560010181518110611b7557611b75612e71565b6020026020010181815101915081815250505b6003600484901c168015611bce578c51600160c05f19840160061b161b908e9060028801908110611bbb57611bbb612e71565b6020026020010181815101915081815250505b6003600685901c168015611c14578d51600160c05f19840160061b161b908f9060038901908110611c0157611c01612e71565b6020026020010181815101915081815250505b5050505050505b600101611ad9565b5050600101611a8e565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160401b03811115611c6757611c67612b79565b604051908082528060200260200182016040528015611c90578160200160208202803683370190505b5090505f5b7f0000000000000000000000000000000000000000000000000000000000000000811015611e05575f611cc88483610512565b6040516315d3bc7b60e01b8152600481018290529091505f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906315d3bc7b90602401602060405180830381865afa158015611d30573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d5491906130ba565b90506001600160a01b038116611d6b575050611dfd565b604051631d18577f60e11b8152600481018390525f906001600160a01b03831690633a30aefe906024016040805180830381865afa158015611daf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dd3919061314d565b50905080858581518110611de957611de9612e71565b911515602092830291909101909101525050505b600101611c95565b50919050565b606080836001600160401b03811115611e2657611e26612b79565b604051908082528060200260200182016040528015611e6a57816020015b604080518082019091525f8082526020820152815260200190600190039081611e445790505b5091505f7f00000000000000000000000000000000000000000000000000000000000000006001600160401b03811115611ea657611ea6612b79565b604051908082528060200260200182016040528015611ecf578160200160208202803683370190505b5091505f5b8581101561212c575f7f00000000000000000000000000000000000000000000000000000000000000008281611f0c57611f0c612ef7565b049050858181518110611f2157611f21612e71565b602002602001015115611f345750612124565b5f8a8381518110611f4757611f47612e71565b60200260200101519050805f03611f5f575050612124565b5f60035b801561211f576001600160401b035f19820160061b84901c16918201917f00000000000000000000000000000000000000000000000000000000000000008310612116575f82600103611fd757507f0000000000000000000000000000000000000000000000000000000000000000612031565b8260020361200657507f0000000000000000000000000000000000000000000000000000000000000000612031565b8260030361203157507f00000000000000000000000000000000000000000000000000000000000000005b60405180604001604052808f8f8981811061204e5761204e612e71565b90506020028101906120609190612e85565b7f00000000000000000000000000000000000000000000000000000000000000008b8161208f5761208f612ef7565b0681811061209f5761209f612e71565b90506020020160208101906120b49190613182565b6001600160a01b03168152602001828152508a89815181106120d8576120d8612e71565b602002602001018190525087600101975060018987815181106120fd576120fd612e71565b602002602001019015159081151581525050505061211f565b505f1901611f63565b505050505b600101611ed4565b5082529550959350505050565b5f61061a8261260c565b5f61ffff821115612171576040516306dfcc6560e41b8152601060048201526024810183905260440161055f565b5090565b805182516060918181146121a557604051632cd378e160e21b81526004810192909252602482015260440161055f565b50505f835160206121b69190612e47565b6121c1906034612e5e565b90505f816001600160401b038111156121dc576121dc612b79565b6040519080825280601f01601f191660200182016040528015612206576020820181803683370190505b509050602081018660601b815260148101905085518152602081019050855160208701602087015f5b8381101561225d5760208181028481015160601b875283015160a01b6014870152949094019360010161222f565b50939998505050505050505050565b5f610ce08484845f61263c565b606060ff83146122935761228c83612655565b905061061a565b81805461229f9061319d565b80601f01602080910402602001604051908101604052809291908181526020018280546122cb9061319d565b80156123165780601f106122ed57610100808354040283529160200191612316565b820191905f5260205f20905b8154815290600101906020018083116122f957829003601f168201915b5050505050905061061a565b5f5f5f5f61233288888888612692565b9250925092506123428282612750565b50909695505050505050565b5f5f61235a868661280c565b905061236e8482805190602001208561286a565b9695505050505050565b5f306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156123d057507f000000000000000000000000000000000000000000000000000000000000000046145b156123fa57507f000000000000000000000000000000000000000000000000000000000000000090565b6114c9604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b818101602001515f8190036124b65750505050565b600282901b5f5b602081101561260457821561260457600883901b9260f81c80156125fb57600282901b8301600382168015612521578851600160c05f19840160061b161b908a908490811061250e5761250e612e71565b6020026020010181815101915081815250505b6003600284901c1680156125695760066001820360ff16901b60ff166001901b8a846001018151811061255657612556612e71565b6020026020010181815101915081815250505b6003600485901c1680156125af578a51600160c05f19840160061b161b908c906002870190811061259c5761259c612e71565b6020026020010181815101915081815250505b6003600686901c1680156125f5578b51600160c05f19840160061b161b908d90600388019081106125e2576125e2612e71565b6020026020010181815101915081815250505b50505050505b506001016124bd565b505050505050565b5f63ffffffff821115612171576040516306dfcc6560e41b8152602060048201526024810183905260440161055f565b5f5f612648868661280c565b905061236e83858361289c565b60605f61266183612930565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f80806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411156126c157505f91506003905082612746565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612712573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b03811661273d57505f925060019150829050612746565b92505f91508190505b9450945094915050565b5f826003811115612763576127636131cf565b0361276c575050565b6001826003811115612780576127806131cf565b0361279e5760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156127b2576127b26131cf565b036127d35760405163fce698f760e01b81526004810182905260240161055f565b60038260038111156127e7576127e76131cf565b03612808576040516335e2f38360e21b81526004810182905260240161055f565b5050565b6060615fd3825111156128325760405163250a241560e21b815260040160405180910390fd5b815161283f90602d612e5e565b8383604051602001612853939291906131e3565b604051602081830303815290604052905092915050565b5f604051836040820152846020820152828152600b8101905060ff8153605590206001600160a01b0316949350505050565b5f834710156128c75760405163cf47918160e01b81524760048201526024810185905260440161055f565b81515f036128e857604051631328927760e21b815260040160405180910390fd5b8282516020840186f590503d151981151615612909576040513d5f823e3d81fd5b6001600160a01b038116610ce35760405163b06ebf3d60e01b815260040160405180910390fd5b5f60ff8216601f81111561061a57604051632cd44ac360e21b815260040160405180910390fd5b5f5f60408385031215612968575f5ffd5b50508035926020909101359150565b5f5f5f60408486031215612989575f5ffd5b8335925060208401356001600160401b038111156129a5575f5ffd5b8401601f810186136129b5575f5ffd5b80356001600160401b038111156129ca575f5ffd5b8660208260051b84010111156129de575f5ffd5b939660209190910195509293505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b60ff60f81b8816815260e060208201525f612a3b60e08301896129ef565b8281036040840152612a4d81896129ef565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015612aa2578351835260209384019390920191600101612a84565b50909b9a5050505050505050505050565b5f60208284031215612ac3575f5ffd5b5035919050565b602081525f61061760208301846129ef565b5f5f83601f840112612aec575f5ffd5b5081356001600160401b03811115612b02575f5ffd5b602083019150836020828501011115612b19575f5ffd5b9250929050565b5f5f5f8385036080811215612b33575f5ffd5b84356001600160401b03811115612b48575f5ffd5b612b5487828801612adc565b9095509350506060601f1982011215612b6b575f5ffd5b506020840190509250925092565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715612baf57612baf612b79565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612bdd57612bdd612b79565b604052919050565b5f6001600160401b03821115612bfd57612bfd612b79565b5060051b60200190565b6001600160a01b0381168114612c1b575f5ffd5b50565b5f5f60408385031215612c2f575f5ffd5b8235915060208301356001600160401b03811115612c4b575f5ffd5b8301601f81018513612c5b575f5ffd5b8035612c6e612c6982612be5565b612bb5565b8082825260208201915060208360061b850101925087831115612c8f575f5ffd5b6020840193505b82841015612cdf5760408489031215612cad575f5ffd5b612cb5612b8d565b8435612cc081612c07565b8152602085810135818301529083526040909401939190910190612c96565b809450505050509250929050565b5f5f5f60408486031215612cff575f5ffd5b83356001600160401b03811115612d14575f5ffd5b612d2086828701612adc565b909790965060209590950135949350505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612dbd57868503603f19018452815180518087526020918201918701905f5b81811015612da45783516001600160a01b0316835260209384019390920191600101612d7d565b5090965050506020938401939190910190600101612d5a565b50929695505050505050565b602080825282518282018190525f918401906040840190835b81811015612e1557835180516001600160a01b031684526020908101518185015290930192604090920191600101612de2565b509095945050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561061a5761061a612e20565b808202811582820484141761061a5761061a612e20565b8082018082111561061a5761061a612e20565b634e487b7160e01b5f52603260045260245ffd5b5f5f8335601e19843603018112612e9a575f5ffd5b8301803591506001600160401b03821115612eb3575f5ffd5b6020019150600581901b3603821315612b19575f5ffd5b80518015158114612ed9575f5ffd5b919050565b5f60208284031215612eee575f5ffd5b61061782612eca565b634e487b7160e01b5f52601260045260245ffd5b5f82612f1957612f19612ef7565b500490565b5f6060828403128015612f2f575f5ffd5b50604051606081016001600160401b0381118282101715612f5257612f52612b79565b604052823560ff81168114612f65575f5ffd5b8152602083810135908201526040928301359281019290925250919050565b5f60208284031215612f94575f5ffd5b5051919050565b818382375f9101908152919050565b5f60208284031215612fba575f5ffd5b81516001600160401b03811115612fcf575f5ffd5b8201601f81018413612fdf575f5ffd5b8051612fed612c6982612be5565b8082825260208201915060208360051b85010192508683111561300e575f5ffd5b6020840193505b8284101561236e57835161302881612c07565b825260209384019390910190613015565b5f8261304757613047612ef7565b500690565b602080825281018290525f8360408301825b8581101561308e57823561307181612c07565b6001600160a01b031682526020928301929091019060010161305e565b5095945050505050565b5f5f604083850312156130a9575f5ffd5b505080516020909101519092909150565b5f602082840312156130ca575f5ffd5b8151610ce381612c07565b8381525f602082018451602086015f5b8281101561310c5781516001600160a01b03168452602093840193909101906001016130e5565b50508451602086019291505f5b818110156131405783516001600160601b0316835260209384019390920191600101613119565b5090979650505050505050565b5f5f6040838503121561315e575f5ffd5b61316783612eca565b9150602083015161317781612c07565b809150509250929050565b5f60208284031215613192575f5ffd5b8135610ce381612c07565b600181811c908216806131b157607f821691505b602082108103611e0557634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b606160f81b815260f084901b6001600160f01b0319166001820152703d81600a3d39f3363d3d373d3d3d363d7360781b6003820152606083901b6bffffffffffffffffffffffff191660148201526e5af43d82803e903d91602b57fd5bf360881b602882015281515f908060208501603785015e5f920160370191825250939250505056fea2646970667358221220e80f4534c7eca3f86637768127cd6e6c38cd07610715716d94dcaad7eb8a0b8764736f6c634300081e0033","sourceMap":"5491:50752:125:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10364:43;;;;;;;;160:25:182;;;148:2;133:18;10364:43:125;;;;;;;;9835:53;;;;;;;;-1:-1:-1;;;;;360:32:182;;;342:51;;330:2;315:18;9835:53:125;196:203:182;8901:45:125;;8943:3;8901:45;;31850:480;;;;;;:::i;:::-;;:::i;10564:31::-;;;;;22999:1883;;;;;;:::i;:::-;;:::i;:::-;;10753:35;;;;;9630:33;;;;;5144:557:58;;;:::i;:::-;;;;;;;;;;;;;:::i;8511:83:125:-;;8551:43;8511:83;;9177:45;;9218:4;9177:45;;28584:279;;;;;;:::i;:::-;;:::i;:::-;;;;4186:14:182;;4179:22;4161:41;;4233:2;4218:18;;4211:34;;;;4134:18;28584:279:125;3993:258:182;29525:920:125;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12231:47::-;;;;;19883:1684;;;;;;:::i;:::-;;:::i;10245:44::-;;;;;30744:346;;;:::i;27895:333::-;;;;;;:::i;:::-;;:::i;11353:43::-;;;;;11137:45;;;;;10126:43;;;;;11579:50;;;;;10925:39;;;;;32962:208;;;;;;:::i;:::-;;:::i;9412:33::-;;;;;25415:637;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;29088:205::-;;;;;;:::i;:::-;;:::i;:::-;;;10458:14:182;;10451:22;10433:41;;10421:2;10406:18;29088:205:125;10293:187:182;26840:381:125;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;31850:480::-;31940:17;31973:49;:6;31999:22;-1:-1:-1;1248:46:90;;1164:133;31973:49:125;32063:6;31965:106;;;;;-1:-1:-1;;;31965:106:125;;;;;;160:25:182;;148:2;133:18;;14:177;31965:106:125;;;;;;;;;-1:-1:-1;32092:11:125;32106:20;32092:34;;;32077:134;;;;-1:-1:-1;;;32077:134:125;;;;;11446:25:182;;;;11487:18;;;11480:34;11419:18;;32077:134:125;11272:248:182;32077:134:125;-1:-1:-1;32313:11:125;;-1:-1:-1;32290:20:125;32236:50;32264:22;32254:6;32236:50;:::i;:::-;32235:75;;;;:::i;:::-;:89;;;;:::i;:::-;32217:108;;31850:480;;;;;:::o;22999:1883::-;23140:23;23166:17;:15;:17::i;:::-;23140:43;;23189:26;23218:35;23232:6;23240:12;23218:13;:35::i;:::-;23189:64;;23268:9;:18;;;23267:19;23334:6;23259:83;;;;;-1:-1:-1;;;23259:83:125;;;;;;160:25:182;;148:2;133:18;;14:177;23259:83:125;;23440:44;23463:6;23471:12;23440:22;:44::i;:::-;23528:6;23432:104;;;;;-1:-1:-1;;;23432:104:125;;;;;;160:25:182;;148:2;133:18;;14:177;23432:104:125;;23625:28;23655:35;23694:30;23701:9;23712:11;;23694:6;:30::i;:::-;23825:28;;23624:100;;-1:-1:-1;23624:100:125;-1:-1:-1;23808:14:125;23861:463;23881:6;23877:1;:10;23861:463;;;23909:21;23931:1;23909:24;;;;;;;;:::i;:::-;;;;;;;23904:62;23947:8;23904:62;24047:18;24068:43;24096:11;;24108:1;24096:14;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;24068:27;:43::i;:::-;24047:64;;24121:17;24141:30;24161:6;24169:1;24141:19;:30::i;:::-;24121:50;;24214:36;24238:11;24214:23;:36::i;:::-;24200:10;:50;24181:134;;;;-1:-1:-1;;;24181:134:125;;;;;;;;;;;;23894:430;;23861:463;23889:3;;23861:463;;;;23790:540;24467:122;24488:6;24502:9;:22;;;24532:9;:19;;;24579:4;24467:13;:122::i;:::-;24646:14;;:18;24642:187;;24727:21;24751:36;24771:6;24779:7;24751:19;:36::i;:::-;24795:27;;-1:-1:-1;;;24795:27:125;;-1:-1:-1;;;;;360:32:182;;;24795:27:125;;;342:51:182;24727:60:125;;-1:-1:-1;24795:7:125;:13;;;;;;315:18:182;;24795:27:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24666:163;24642:187;24854:6;24840:37;24862:7;:14;24840:37;;;;160:25:182;;148:2;133:18;;14:177;24840:37:125;;;;;;;;23083:1799;;;;22999:1883;;;:::o;5144:557:58:-;5242:13;5269:18;5301:21;5336:15;5365:25;5404:12;5430:27;5533:13;:11;:13::i;:::-;5560:16;:14;:16::i;:::-;5668;;;5652:1;5668:16;;;;;;;;;-1:-1:-1;;;5482:212:58;;;-1:-1:-1;5482:212:58;;-1:-1:-1;5590:13:58;;-1:-1:-1;5625:4:58;;-1:-1:-1;5652:1:58;-1:-1:-1;5668:16:58;-1:-1:-1;5482:212:58;-1:-1:-1;5144:557:58:o;28584:279:125:-;28644:15;28661:17;28735:26;28764:40;28778:6;28786:17;:15;:17::i;:::-;28764:13;:40::i;:::-;28735:69;;28818:9;:18;;;28838:9;:19;;;28810:48;;;;;28584:279;;;:::o;29525:920::-;29601:12;29621:22;29686:1;29646:37;29663:20;29646:14;:37;:::i;:::-;:41;;;;:::i;:::-;29621:66;;29881:23;29907:17;:15;:17::i;:::-;29881:43;;29930:26;29959:35;29973:6;29981:12;29959:13;:35::i;:::-;29930:64;;30235:9;:19;;;30225:6;:29;30221:82;;30281:14;-1:-1:-1;;;;;30271:25:125;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30271:25:125;;30264:32;;;;;;;30221:82;30309:28;30340:22;30355:6;30340:14;:22::i;:::-;30369:6;30340:36;;;;;;;:::i;:::-;;;;30309:67;;30389:51;30414:9;30425:14;30389:24;:51::i;:::-;30382:58;29525:920;-1:-1:-1;;;;;;;29525:920:125:o;19883:1684::-;19960:9;19972:17;:15;:17::i;:::-;19960:29;;19995:16;20014:19;20028:4;20014:13;:19::i;:::-;19995:38;;20188:48;:5;20213:22;-1:-1:-1;1248:46:90;;1164:133;20188:48:125;20277:5;20180:104;;;;;-1:-1:-1;;;20180:104:125;;;;;;160:25:182;;148:2;133:18;;14:177;20180:104:125;;20368:16;20387:21;:19;:21::i;:::-;20368:40;;20495:14;20512:36;20535:6;;20543:4;20512:22;:36::i;:::-;20495:53;-1:-1:-1;20562:29:125;20574:8;20495:53;20562:11;;;;;;;:4;:11;:::i;:::-;;:29;:11;:29::i;:::-;20554:83;;;;-1:-1:-1;;;20554:83:125;;;;;;;;;;;;20759:22;20824:1;20784:37;20801:20;20784:14;:37;:::i;:::-;:41;;;;:::i;:::-;20759:66;-1:-1:-1;20759:66:125;20839:6;:31;;;20831:115;;;;-1:-1:-1;;;20831:115:125;;;;;11446:25:182;;;;11487:18;;;11480:34;11419:18;;20831:115:125;11272:248:182;20831:115:125;;;21001:26;21030:27;21044:5;21051;21030:13;:27::i;:::-;21001:56;;21137:29;:9;:22;;;21162:4;-1:-1:-1;1759:33:180;1694:101;21137:29:125;21222:4;21129:99;;;;;-1:-1:-1;;;21129:99:125;;;;;;160:25:182;;148:2;133:18;;14:177;21129:99:125;-1:-1:-1;21292:19:125;;;;21317:40;21332:5;21292:19;21350:6;;21317:14;:40::i;:::-;21447:61;21461:5;21468:4;21474:13;:9;21486:1;21474:13;:::i;:::-;21489:9;:18;;;21447:13;:61::i;:::-;21542:8;-1:-1:-1;;;;;21520:42:125;21536:4;21529:5;21520:42;21552:9;21520:42;;;;160:25:182;;148:2;133:18;;14:177;21520:42:125;;;;;;;;19954:1613;;;;;;;19883:1684;;;:::o;30744:346::-;30792:10;30859:26;30908:8;30859:58;;30923:16;30942:6;-1:-1:-1;;;;;30942:21:125;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30923:42;-1:-1:-1;31047:37:125;31074:10;30923:42;31047:37;:::i;:::-;31024:61;;;;30744:346;:::o;27895:333::-;27995:7;28055:8;:15;28074:1;28055:20;28051:58;;-1:-1:-1;28100:1:125;28085:17;;28051:58;28119:24;28147:47;28177:6;28185:8;28147:29;:47::i;32962:208::-;33050:7;33072:93;8551:43;33135:6;;33125:17;;;;;;;:::i;:::-;;;;;;;;;;33099:64;;;15414:25:182;;;;15455:18;;15448:34;;;;15498:18;;;15491:34;;;15387:18;;33099:64:125;;;;;;;;;;;;33089:75;;;;;;33072:16;:93::i;:::-;33065:100;;32962:208;;;;;;:::o;25415:637::-;25486:29;25552:20;-1:-1:-1;;;;;25536:37:125;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25523:50:125;-1:-1:-1;25629:8:125;25580:26;25662:356;25700:20;25687:10;:33;25662:356;;;25746:11;25760:39;25780:6;25788:10;25760:19;:39::i;:::-;25813:31;;-1:-1:-1;;;25813:31:125;;;;;160:25:182;;;25746:53:125;;-1:-1:-1;;;;;;25813:24:125;;;;;133:18:182;;25813:31:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;25813:31:125;;;;;;;;;;;;:::i;:::-;;;25809:201;;25983:16;;;25997:1;25983:16;;;;;;;;25958:22;;:10;;25969;;25958:22;;;;;;:::i;:::-;;;;;;:41;;;;25809:201;;;25919:9;25894:10;25905;25894:22;;;;;;;;:::i;:::-;;;;;;:34;;;;25845:94;25809:201;-1:-1:-1;25722:12:125;;25662:356;;;;26030:17;25415:637;;;:::o;29088:205::-;29173:4;29185:23;29211:20;29225:5;29211:13;:20::i;:::-;29185:46;;29244:44;29267:6;29275:12;29244:22;:44::i;:::-;29237:51;29088:205;-1:-1:-1;;;;29088:205:125:o;26840:381::-;26934:20;27012:26;27041:40;27055:6;27063:17;:15;:17::i;27041:40::-;27012:69;;27133:28;27166:30;27173:9;27184:11;;27166:6;:30::i;:::-;-1:-1:-1;27132:64:125;26840:381;-1:-1:-1;;;;;;26840:381:125:o;52427:1107::-;52518:16;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;52518:16:125;52672:13;52644:6;52626:60;:151;;;-1:-1:-1;52763:13:125;52698:43;8943:3;52716:6;52698:43;:::i;:::-;:79;;52626:151;52615:258;;;52799:67;;-1:-1:-1;;;52799:67:125;;;;;11446:25:182;;;11487:18;;;11480:34;;;11419:18;;52799:67:125;11272:248:182;52615:258:125;52958:36;52997:10;53008:43;8943:3;53026:6;53008:43;:::i;:::-;52997:55;;;;;;;:::i;:::-;52958:94;;;;;;;;52997:55;;;;52958:94;;;;;;;;;;;;;;;;;;-1:-1:-1;;;52958:94:125;;;;;;;;;;;-1:-1:-1;;;52958:94:125;;;;;;;;;;;-1:-1:-1;53182:44:125;;53220:6;712:46:90;;;628:133;53182:44:125;53178:163;;;53243:91;;;;;;;;53267:6;53243:91;;;;53314:1;53243:91;;;;53299:1;53243:91;;;;53327:5;53243:91;;;;;53236:98;;;;;53178:163;53354:175;;;;;;;;53385:6;53354:175;;;;53467:9;:19;;;53354:175;;;;;;53413:35;:9;:22;;;:33;;1872:44:90;;;1759:163;53413:35:125;53354:175;;;;53504:9;:18;;;53354:175;;;;;53347:182;;;52427:1107;;;;:::o;48815:457::-;48915:4;49122:53;49150:25;49140:6;49122:53;:::i;:::-;49105:13;49087:88;:180;;;;-1:-1:-1;49221:46:125;49249:18;49239:6;49221:46;:::i;:::-;49185:82;;;;;48815:457;-1:-1:-1;;48815:457:125:o;38288:1687::-;38402:33;;38573:20;38551:11;:42;;;38536:163;;;;-1:-1:-1;;;38536:163:125;;;;;11446:25:182;;;;11487:18;;;11480:34;11419:18;;38536:163:125;11272:248:182;38536:163:125;-1:-1:-1;;38726:20:125;;;;38706:17;38798:14;;;38794:98;;38830:20;;;38848:1;38830:20;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;38830:20:125;;;;;;;;;;;;;;;;38863;-1:-1:-1;;;;;38852:32:125;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;38852:32:125;;38822:63;;;;;;;38794:98;38966:23;38992:37;39009:20;38992:14;:37;:::i;:::-;38966:63;;39478:28;39523:15;-1:-1:-1;;;;;39509:30:125;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;39509:30:125;;39478:61;;39623:49;39637:10;39649:11;39662:9;39623:13;:49::i;:::-;39790:31;39824:49;39850:10;:22;;;39824:25;:49::i;:::-;39790:83;;39886:84;39909:11;39922;;39935:15;39952:17;39886:22;:84::i;:::-;39879:91;;;;;;;;38288:1687;;;;;;;:::o;55965:276::-;56056:7;56224:10;;56213:22;;;;;;;;;:::i;:::-;;;;;;;;;;;;;56203:33;;;;;;56196:40;;55965:276;;;;:::o;33878:238::-;34046:42;;-1:-1:-1;;;34046:42:125;;;;;160:25:182;;;33943:7:125;;34007:8;;33943:7;;-1:-1:-1;;;;;34046:34:125;;;;;133:18:182;;34046:42:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;34022:66:125;33878:238;-1:-1:-1;;;;33878:238:125:o;37467:406::-;37645:223;;;;;;;;37686:22;:11;:20;:22::i;:::-;37645:223;;;;;;37730:23;:12;:21;:23::i;:::-;37645:223;;;;;;37772:28;37790:9;37772:17;:28::i;:::-;37645:223;;;;;;;;;;;;37582:10;37593:48;8943:3;37611:11;37593:48;:::i;:::-;37582:60;;;;;;;:::i;:::-;:286;;:60;;:286;;;;;;;;;;;;;;;;;-1:-1:-1;;;37582:286:125;-1:-1:-1;;;;37582:286:125;;;;-1:-1:-1;;;37582:286:125;;;;;-1:-1:-1;;;;37582:286:125;;;;;;-1:-1:-1;;37582:286:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;37467:406:125:o;34411:930::-;34508:8;34610:27;34639:23;34664:12;34678:24;34712:47;34742:6;34750:8;34712:29;:47::i;:::-;34609:150;;;;;;;;34851:1;34820:16;-1:-1:-1;;;;;34820:28:125;;:32;34816:86;;;34878:16;-1:-1:-1;34862:33:125;;-1:-1:-1;;;34862:33:125;34816:86;35045:26;35074:66;35110:8;35120:10;35132:7;35074:35;:66::i;:::-;35045:95;;35198:13;35214:93;35257:28;35287:13;35302:4;35214:42;:93::i;:::-;35198:109;34411:930;-1:-1:-1;;;;;;;;;34411:930:125:o;6021:126:58:-;6067:13;6099:41;:5;6126:13;6099:26;:41::i;:::-;6092:48;;6021:126;:::o;6473:135::-;6522:13;6554:47;:8;6584:16;6554:29;:47::i;51688:298:125:-;51754:18;51926:10;51937:43;8943:3;51955:6;51937:43;:::i;:::-;51926:55;;;;;;;:::i;:::-;;;;;51688:298;-1:-1:-1;;51688:298:125:o;45688:1313::-;45955:17;;;45965:6;45955:17;;;;;;;;;45811:21;;45955:17;;;;;;;;;;-1:-1:-1;45955:17:125;45944:28;;46087:4;46077:8;46073:19;46137:14;46134:107;;;46177:21;;46209:22;;46134:107;46306:2;46290:14;46287:22;46284:132;;;46361:1;46341:22;;46335:29;46395:2;46382:16;;46375:31;46284:132;46481:2;46465:14;46462:22;46459:132;;;46536:1;46516:22;;46510:29;46570:2;46557:16;;46550:31;46459:132;46657:2;46641:14;46638:22;46635:132;;;46712:1;46692:22;;46686:29;46746:2;46733:16;;46726:31;46635:132;-1:-1:-1;46951:32:125;;;46958:8;45688:1313;-1:-1:-1;45688:1313:125:o;47223:161::-;47273:4;47285:26;47334:8;47285:58;;47356:6;-1:-1:-1;;;;;47356:21:125;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;47349:30;;;47223:161;:::o;53680:136::-;53738:10;53779:31;53800:10;53791:5;53779:31;:::i;33526:241::-;33575:7;33664:26;33713:8;33664:58;;33735:6;-1:-1:-1;;;;;33735:25:125;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;559:307:179:-;661:4;673:17;693:64;707:7;716:10;:12;;;730:10;:12;;;744:10;:12;;;693:13;:64::i;:::-;673:84;-1:-1:-1;771:7:179;673:84;-1:-1:-1;;;;;771:20:179;;;;;;;763:81;;;;-1:-1:-1;;;763:81:179;;-1:-1:-1;;;;;18370:32:182;;;763:81:179;;;18352:51:182;18439:32;;18419:18;;;18412:60;18325:18;;763:81:179;18178:300:182;763:81:179;-1:-1:-1;857:4:179;;559:307;-1:-1:-1;;;;;;559:307:179:o;35568:1314:125:-;35675:28;35706:27;35721:11;35706:14;:27::i;:::-;35740:9;35706:44;;;;;;;:::i;:::-;;;;;-1:-1:-1;35777:8:125;;35864:3;35850:17;;;;35842:84;;;;-1:-1:-1;;;35842:84:125;;;;;11446:25:182;;;;11487:18;;;11480:34;11419:18;;35842:84:125;11272:248:182;35842:84:125;;;35984:15;36050:10;36047:267;;;36086:20;;36275:29;;36047:267;36381:2;36369:10;36366:18;36363:134;;;36435:2;36423:15;;36410:29;36477:1;36457:22;;36450:37;36363:134;36564:2;36552:10;36549:18;36546:134;;;36618:2;36606:15;;36593:29;36660:1;36640:22;;36633:37;36546:134;36748:2;36736:10;36733:18;36730:134;;;36802:2;36790:15;;36777:29;36844:1;36824:22;;36817:37;36730:134;;35669:1213;;35568:1314;;;;:::o;49738:1302::-;49862:27;49891:23;49916:12;49930:24;49964:19;49986:8;:15;49964:37;;50034:11;-1:-1:-1;;;;;50020:26:125;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;50020:26:125;;50007:39;;50075:11;-1:-1:-1;;;;;50062:25:125;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;50062:25:125;;50052:35;;50168:9;50163:318;50183:11;50179:1;:15;50163:318;;;50227:8;50236:1;50227:11;;;;;;;;:::i;:::-;;;;;;;:21;;;50211:10;50222:1;50211:13;;;;;;;;:::i;:::-;;;;;;:37;-1:-1:-1;;;;;50211:37:125;;;-1:-1:-1;;;;;50211:37:125;;;;;-1:-1:-1;;;;;50326:43:125;;:8;50335:1;50326:11;;;;;;;;:::i;:::-;;;;;;;:23;;;:43;;50318:100;;;;-1:-1:-1;;;50318:100:125;;;;;;;;;;;;50448:8;50457:1;50448:11;;;;;;;;:::i;:::-;;;;;;;:23;;;50428:7;50436:1;50428:10;;;;;;;;:::i;:::-;-1:-1:-1;;;;;50428:44:125;;;:10;;;;;;;;;;;:44;50196:3;;50163:318;;;;50612:6;50621:10;50633:7;50577:64;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;50567:75;;;;;;50560:82;;50727:26;50756:66;50792:8;50802:10;50814:7;50756:35;:66::i;:::-;50727:95;;50847:129;50906:28;50936:13;50951:4;50965;50847:51;:129::i;:::-;50828:148;;50983:52;;49738:1302;;;;;;;:::o;4917:176:58:-;4994:7;5020:66;5053:20;:18;:20::i;:::-;5075:10;3501:4:59;3495:11;-1:-1:-1;;;3519:23:59;;3571:4;3562:14;;3555:39;;;;3623:4;3614:14;;3607:34;3679:4;3664:20;;;3326:374;40052:2707:125;40198:22;;40173;40287:1;40247:37;40264:20;40247:14;:37;:::i;:::-;:41;;;;:::i;:::-;40226:62;;40365:35;40403:27;40418:11;40403:14;:27::i;:::-;40365:65;;40460:9;40455:2294;40475:9;40471:1;:13;40455:2294;;;40573:24;40600:63;40625:16;40648:1;40625:25;;;;;;;:::i;:::-;;;;40652:10;40600:24;:63::i;:::-;40573:90;;40718:9;40737:164;40753:10;40744:1;40748:2;40744:6;:19;40737:164;;;40841:49;40862:11;40875;40888:1;40841:20;:49::i;:::-;40770:2;40765:7;40737:164;;;40981:10;40977:1;:14;40970:1771;;;41155:30;;;41176:4;41155:30;41149:37;41035:1;41030:6;;;;41010:17;41141:46;;;;41259:16;;;41255:30;;41277:8;;;;41255:30;41550:4;41536:18;;41570:20;;41566:316;;41801:22;;41861:1;41827:42;-1:-1:-1;;41843:19:125;;41867:1;41842:26;41827:42;;;41801:11;;41813:9;;41801:22;;;;;;:::i;:::-;;;;;;:68;;;;;;;;;;;41566:316;42024:4;42019:1;42004:16;;;42003:25;42044:20;;42040:125;;42150:1;42144;42126:15;:19;42125:26;;;;42110:42;;42118:1;42110:42;;42080:11;42092:9;42104:1;42092:13;42080:26;;;;;;;;:::i;:::-;;;;;;:72;;;;;;;;;;;42040:125;42307:4;42302:1;42287:16;;;42286:25;42327:20;;42323:125;;42363:26;;42427:1;42393:42;-1:-1:-1;;42409:19:125;;42433:1;42408:26;42393:42;;;42363:11;;42387:1;42375:13;;;42363:26;;;;;;:::i;:::-;;;;;;:72;;;;;;;;;;;42323:125;42578:16;42593:1;42578:16;;;;42610:20;;42606:125;;42646:26;;42710:1;42676:42;-1:-1:-1;;42692:19:125;;42716:1;42691:26;42676:42;;;42646:11;;42670:1;42658:13;;;42646:26;;;;;;:::i;:::-;;;;;;:72;;;;;;;;;;;42606:125;40998:1743;;;;;;40970:1771;40993:3;;40970:1771;;;-1:-1:-1;;40486:3:125;;40455:2294;;47625:590;47702:31;47772:20;-1:-1:-1;;;;;47761:32:125;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;47761:32:125;;47741:52;;47805:18;47800:411;47838:20;47825:10;:33;47800:411;;;47882:11;47896:39;47916:6;47924:10;47896:19;:39::i;:::-;47970:59;;-1:-1:-1;;;47970:59:125;;;;;160:25:182;;;47882:53:125;;-1:-1:-1;47943:24:125;;-1:-1:-1;;;;;47990:8:125;47970:52;;;;133:18:182;;47970:59:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;47943:86;-1:-1:-1;;;;;;48041:34:125;;48037:67;;48087:8;;;;48037:67;48128:30;;-1:-1:-1;;;48128:30:125;;;;;160:25:182;;;48112:11:125;;-1:-1:-1;;;;;48128:23:125;;;;;133:18:182;;48128:30:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;48111:47;;;48198:6;48166:17;48184:10;48166:29;;;;;;;;:::i;:::-;:38;;;:29;;;;;;;;;;;:38;-1:-1:-1;;;47800:411:125;47860:12;;47800:411;;;;47625:590;;;:::o;42852:2553::-;43049:28;43079:35;43150:15;-1:-1:-1;;;;;43132:34:125;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;43132:34:125;;;;;;;;;;;;;;;;43122:44;;43172:19;43232:20;-1:-1:-1;;;;;43221:32:125;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;43221:32:125;;43197:56;;43283:9;43278:1939;43298:15;43294:1;:19;43278:1939;;;43330:18;43355:14;43351:1;:18;;;;;:::i;:::-;;43330:39;;43446:17;43464:10;43446:29;;;;;;;;:::i;:::-;;;;;;;43442:66;;;43489:8;;;43442:66;43517:19;43539:11;43551:1;43539:14;;;;;;;;:::i;:::-;;;;;;;43517:36;;43615:11;43630:1;43615:16;43611:30;;43633:8;;;;43611:30;43652:29;43860:1;43843:1366;43863:5;;43843:1366;;-1:-1:-1;;;;;;;44185:5:125;;44195:1;44184:12;44168:29;;;44167:52;44231:39;;;;44371:6;44346:31;;44342:841;;44445:19;44482:1;44487;44482:6;44478:238;;-1:-1:-1;44520:18:125;44478:238;;;44563:1;44568;44563:6;44559:157;;-1:-1:-1;44601:19:125;44559:157;;;44645:1;44650;44645:6;44641:75;;-1:-1:-1;44683:18:125;44641:75;44809:95;;;;;;;;44833:11;;44845:10;44833:23;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;44861:14;44857:1;:18;;;;;:::i;:::-;;44833:43;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;44809:95:125;;;;;44891:11;44809:95;;;44772:7;44780:11;44772:20;;;;;;;;:::i;:::-;;;;;;:132;;;;44918:13;;;;;45058:4;45022:21;45044:10;45022:33;;;;;;;;:::i;:::-;;;;;;:40;;;;;;;;;;;45165:5;;;;44342:841;-1:-1:-1;;;45195:3:125;43843:1366;;;;43320:1897;;;43278:1939;43315:3;;43278:1939;;;-1:-1:-1;45321:28:125;;42852:2553;;;;;;;;:::o;1584:171:90:-;1644:20;1705:44;1741:6;1705:17;:44::i;16296:213:62:-;16352:6;16382:16;16374:24;;16370:103;;;16421:41;;-1:-1:-1;;;16421:41:62;;16452:2;16421:41;;;20866:36:182;20918:18;;;20911:34;;;20839:18;;16421:41:62;20685:266:182;16370:103:62;-1:-1:-1;16496:5:62;16296:213::o;1137:1680:89:-;1345:15;;1323:18;;1286:12;;1323:37;;;1308:134;;;;-1:-1:-1;;;1308:134:89;;;;;11446:25:182;;;;11487:18;;;11480:34;11419:18;;1308:134:89;11272:248:182;1308:134:89;;;1538:16;1567:11;:18;1562:2;:23;;;;:::i;:::-;1557:28;;:2;:28;:::i;:::-;1538:47;;1591:17;1621:8;-1:-1:-1;;;;;1611:19:89;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1611:19:89;;1591:39;;1675:4;1669;1665:15;1845:19;1841:2;1837:28;1832:3;1825:41;1889:4;1884:3;1880:14;1873:21;;1984:11;1978:18;1973:3;1966:31;2020:4;2015:3;2011:14;2004:21;;2113:11;2107:18;2170:4;2157:11;2153:22;2214:4;2204:8;2200:19;2242:1;2227:562;2252:3;2249:1;2246:10;2227:562;;;2458:4;2451:12;;;2432:32;;;2426:39;2422:2;2418:48;2406:61;;2694:29;;2688:36;2683:3;2679:46;2492:4;2483:14;;2667:59;2742:14;;;;;2271:1;2264:9;2227:562;;;-1:-1:-1;2808:4:89;;1137:1680;-1:-1:-1;;;;;;;;;1137:1680:89:o;7759:258:42:-;7909:16;7944:66;7980:14;7996:4;8002;8008:1;7944:35;:66::i;3358:267:52:-;3452:13;1390:66;3481:46;;3477:142;;3550:15;3559:5;3550:8;:15::i;:::-;3543:22;;;;3477:142;3603:5;3596:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6887:260:57;6972:7;6992:17;7011:18;7031:16;7051:25;7062:4;7068:1;7071;7074;7051:10;:25::i;:::-;6991:85;;;;;;7086:28;7098:5;7105:8;7086:11;:28::i;:::-;-1:-1:-1;7131:9:57;;6887:260;-1:-1:-1;;;;;;6887:260:57:o;8945:375:42:-;9135:17;9164:21;9188:49;9216:14;9232:4;9188:27;:49::i;:::-;9164:73;;9254:59;9277:4;9293:8;9283:19;;;;;;9304:8;9254:22;:59::i;:::-;9247:66;8945:375;-1:-1:-1;;;;;;8945:375:42:o;3845:262:58:-;3898:7;3929:4;-1:-1:-1;;;;;3938:11:58;3921:28;;:63;;;;;3970:14;3953:13;:31;3921:63;3917:184;;;-1:-1:-1;4007:22:58;;3845:262::o;3917:184::-;4067:23;4204:80;;;2079:95;4204:80;;;23413:25:182;4226:11:58;23454:18:182;;;23447:34;;;;4239:14:58;23497:18:182;;;23490:34;4255:13:58;23540:18:182;;;23533:34;4278:4:58;23583:19:182;;;23576:61;4168:7:58;;23385:19:182;;4204:80:58;;;;;;;;;;;;4194:91;;;;;;4187:98;;4113:179;;53969:1919:125;54202:35;;;54223:4;54202:35;54196:42;54149:12;54312:9;;;54308:22;;54323:7;53969:1919;;;:::o;54308:22::-;54445:1;54435:11;;;54415:17;54508:1370;54528:2;54524:1;:6;54508:1370;;;54595:20;;54610:5;54595:20;54903:1;54894:10;;;;54798:3;54790:11;54919:16;;54915:955;;54981:1;54976:6;;;54963:20;;55159:4;55145:18;;55179:7;;55175:62;;55188:16;;55229:1;55208:29;-1:-1:-1;;55224:6:125;;55235:1;55223:13;55208:29;;;55188:11;;55200:3;;55188:16;;;;;;:::i;:::-;;;;;;:49;;;;;;;;;;;55175:62;55367:4;55362:1;55347:16;;;55346:25;55387:7;;55383:66;;55447:1;55441;55436:2;:6;55435:13;;;;55420:29;;55428:1;55420:29;;55396:11;55408:3;55414:1;55408:7;55396:20;;;;;;;;:::i;:::-;;;;;;:53;;;;;;;;;;;55383:66;55579:4;55574:1;55559:16;;;55558:25;55599:7;;55595:66;;55608:20;;55653:1;55632:29;-1:-1:-1;;55648:6:125;;55659:1;55647:13;55632:29;;;55608:11;;55626:1;55620:7;;;55608:20;;;;;;:::i;:::-;;;;;;:53;;;;;;;;;;;55595:66;55765:16;55780:1;55765:16;;;;55797:7;;55793:66;;55806:20;;55851:1;55830:29;-1:-1:-1;;55846:6:125;;55857:1;55845:13;55830:29;;;55806:11;;55824:1;55818:7;;;55806:20;;;;;;:::i;:::-;;;;;;:53;;;;;;;;;;;55793:66;54937:933;;;;;54915:955;-1:-1:-1;54532:3:125;;54508:1370;;;;54091:1793;;53969:1919;;;:::o;15296:213:62:-;15352:6;15382:16;15374:24;;15370:103;;;15421:41;;-1:-1:-1;;;15421:41:62;;15452:2;15421:41;;;20866:36:182;20918:18;;;20911:34;;;20839:18;;15421:41:62;20685:266:182;8483:335:42;8656:16;8684:21;8708:49;8736:14;8752:4;8708:27;:49::i;:::-;8684:73;;8774:37;8789:5;8796:4;8802:8;8774:14;:37::i;2078:378:52:-;2137:13;2162:11;2176:16;2187:4;2176:10;:16::i;:::-;2300:14;;;2311:2;2300:14;;;;;;;;;2162:30;;-1:-1:-1;2280:17:52;;2300:14;;;;;;;;;-1:-1:-1;;;2363:16:52;;;-1:-1:-1;2408:4:52;2399:14;;2392:28;;;;-1:-1:-1;2363:16:52;2078:378::o;5203:1551:57:-;5329:17;;;-1:-1:-1;;;;;6270:79:57;;6266:164;;;-1:-1:-1;6381:1:57;;-1:-1:-1;6385:30:57;;-1:-1:-1;6417:1:57;6365:54;;6266:164;6541:24;;;6524:14;6541:24;;;;;;;;;21839:25:182;;;21912:4;21900:17;;21880:18;;;21873:45;;;;21934:18;;;21927:34;;;21977:18;;;21970:34;;;6541:24:57;;21811:19:182;;6541:24:57;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6541:24:57;;-1:-1:-1;;6541:24:57;;;-1:-1:-1;;;;;;;6579:20:57;;6575:113;;-1:-1:-1;6631:1:57;;-1:-1:-1;6635:29:57;;-1:-1:-1;6631:1:57;;-1:-1:-1;6615:62:57;;6575:113;6706:6;-1:-1:-1;6714:20:57;;-1:-1:-1;6714:20:57;;-1:-1:-1;5203:1551:57;;;;;;;;;:::o;7280:532::-;7375:20;7366:5;:29;;;;;;;;:::i;:::-;;7362:444;;7280:532;;:::o;7362:444::-;7471:29;7462:5;:38;;;;;;;;:::i;:::-;;7458:348;;7523:23;;-1:-1:-1;;;7523:23:57;;;;;;;;;;;7458:348;7576:35;7567:5;:44;;;;;;;;:::i;:::-;;7563:243;;7634:46;;-1:-1:-1;;;7634:46:57;;;;;160:25:182;;;133:18;;7634:46:57;14:177:182;7563:243:57;7710:30;7701:5;:39;;;;;;;;:::i;:::-;;7697:109;;7763:32;;-1:-1:-1;;;7763:32:57;;;;;160:25:182;;;133:18;;7763:32:57;14:177:182;7697:109:57;7280:532;;:::o;11337:503:42:-;11461:12;11503:6;11489:4;:11;:20;11485:56;;;11518:23;;-1:-1:-1;;;11518:23:42;;;;;;;;;;;11485:56;11636:11;;:18;;11650:4;11636:18;:::i;:::-;11730:14;11815:4;11570:263;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11551:282;;11337:503;;;;:::o;2669:1794:49:-;2770:12;2850:4;2844:11;4069:12;4062:4;4057:3;4053:14;4046:36;4118:4;4111;4106:3;4102:14;4095:28;4148:8;4143:3;4136:21;4241:4;4236:3;4232:14;4219:27;;4352:4;4345:5;4337:20;4399:2;4382:20;;-1:-1:-1;;;;;4378:69:49;;2669:1794;-1:-1:-1;;;;2669:1794:49:o;1210:847::-;1297:12;1349:6;1325:21;:30;1321:125;;;1378:57;;-1:-1:-1;;;1378:57:49;;1405:21;1378:57;;;11446:25:182;11487:18;;;11480:34;;;11419:18;;1378:57:49;11272:248:182;1321:125:49;1459:8;:15;1478:1;1459:20;1455:80;;1502:22;;-1:-1:-1;;;1502:22:49;;;;;;;;;;;1455:80;1645:4;1634:8;1628:15;1621:4;1611:8;1607:19;1599:6;1591:59;1583:67;;1780:16;1773:24;1769:29;1762:4;1755:12;1751:48;1748:203;;;1833:4;1827:11;1876:16;1873:1;1870;1855:38;1920:16;1917:1;1910:27;1748:203;-1:-1:-1;;;;;1974:18:49;;1970:81;;2015:25;;-1:-1:-1;;;2015:25:49;;;;;;;;;;;2528:245:52;2589:7;2661:4;2625:40;;2688:2;2679:11;;2675:69;;;2713:20;;-1:-1:-1;;;2713:20:52;;;;;;;;;;;404:378:182;504:6;512;565:2;553:9;544:7;540:23;536:32;533:52;;;581:1;578;571:12;533:52;-1:-1:-1;;626:23:182;;;746:2;731:18;;;718:32;;-1:-1:-1;404:378:182:o;997:783::-;1151:6;1159;1167;1220:2;1208:9;1199:7;1195:23;1191:32;1188:52;;;1236:1;1233;1226:12;1188:52;1281:23;;;-1:-1:-1;1379:2:182;1364:18;;1351:32;-1:-1:-1;;;;;1395:30:182;;1392:50;;;1438:1;1435;1428:12;1392:50;1461:22;;1514:4;1506:13;;1502:27;-1:-1:-1;1492:55:182;;1543:1;1540;1533:12;1492:55;1583:2;1570:16;-1:-1:-1;;;;;1601:6:182;1598:30;1595:50;;;1641:1;1638;1631:12;1595:50;1694:7;1689:2;1679:6;1676:1;1672:14;1668:2;1664:23;1660:32;1657:45;1654:65;;;1715:1;1712;1705:12;1654:65;997:783;;1746:2;1738:11;;;;;-1:-1:-1;1768:6:182;;-1:-1:-1;;;997:783:182:o;2011:289::-;2053:3;2091:5;2085:12;2118:6;2113:3;2106:19;2174:6;2167:4;2160:5;2156:16;2149:4;2144:3;2140:14;2134:47;2226:1;2219:4;2210:6;2205:3;2201:16;2197:27;2190:38;2289:4;2282:2;2278:7;2273:2;2265:6;2261:15;2257:29;2252:3;2248:39;2244:50;2237:57;;;2011:289;;;;:::o;2305:1238::-;2711:3;2706;2702:13;2694:6;2690:26;2679:9;2672:45;2753:3;2748:2;2737:9;2733:18;2726:31;2653:4;2780:46;2821:3;2810:9;2806:19;2798:6;2780:46;:::i;:::-;2874:9;2866:6;2862:22;2857:2;2846:9;2842:18;2835:50;2908:33;2934:6;2926;2908:33;:::i;:::-;2972:2;2957:18;;2950:34;;;-1:-1:-1;;;;;3021:32:182;;3015:3;3000:19;;2993:61;3041:3;3070:19;;3063:35;;;3135:22;;;3129:3;3114:19;;3107:51;3207:13;;3229:22;;;3279:2;3305:15;;;;-1:-1:-1;3267:15:182;;;;-1:-1:-1;3348:169:182;3362:6;3359:1;3356:13;3348:169;;;3423:13;;3411:26;;3466:2;3492:15;;;;3457:12;;;;3384:1;3377:9;3348:169;;;-1:-1:-1;3534:3:182;;2305:1238;-1:-1:-1;;;;;;;;;;;2305:1238:182:o;3730:258::-;3821:6;3874:2;3862:9;3853:7;3849:23;3845:32;3842:52;;;3890:1;3887;3880:12;3842:52;-1:-1:-1;3935:23:182;;3730:258;-1:-1:-1;3730:258:182:o;4256:218::-;4403:2;4392:9;4385:21;4366:4;4423:45;4464:2;4453:9;4449:18;4441:6;4423:45;:::i;4479:347::-;4530:8;4540:6;4594:3;4587:4;4579:6;4575:17;4571:27;4561:55;;4612:1;4609;4602:12;4561:55;-1:-1:-1;4635:20:182;;-1:-1:-1;;;;;4667:30:182;;4664:50;;;4710:1;4707;4700:12;4664:50;4747:4;4739:6;4735:17;4723:29;;4799:3;4792:4;4783:6;4775;4771:19;4767:30;4764:39;4761:59;;;4816:1;4813;4806:12;4761:59;4479:347;;;;;:::o;4831:570::-;4941:6;4949;4957;5001:9;4992:7;4988:23;5031:3;5027:2;5023:12;5020:32;;;5048:1;5045;5038:12;5020:32;5088:9;5075:23;-1:-1:-1;;;;;5113:6:182;5110:30;5107:50;;;5153:1;5150;5143:12;5107:50;5192:58;5242:7;5233:6;5222:9;5218:22;5192:58;:::i;:::-;5269:8;;-1:-1:-1;5166:84:182;-1:-1:-1;;5338:2:182;-1:-1:-1;;5320:16:182;;5316:25;5313:45;;;5354:1;5351;5344:12;5313:45;;5392:2;5381:9;5377:18;5367:28;;4831:570;;;;;:::o;5620:127::-;5681:10;5676:3;5672:20;5669:1;5662:31;5712:4;5709:1;5702:15;5736:4;5733:1;5726:15;5752:251;5824:2;5818:9;;;5854:15;;-1:-1:-1;;;;;5884:34:182;;5920:22;;;5881:62;5878:88;;;5946:18;;:::i;:::-;5982:2;5975:22;5752:251;:::o;6008:275::-;6079:2;6073:9;6144:2;6125:13;;-1:-1:-1;;6121:27:182;6109:40;;-1:-1:-1;;;;;6164:34:182;;6200:22;;;6161:62;6158:88;;;6226:18;;:::i;:::-;6262:2;6255:22;6008:275;;-1:-1:-1;6008:275:182:o;6288:194::-;6359:4;-1:-1:-1;;;;;6384:6:182;6381:30;6378:56;;;6414:18;;:::i;:::-;-1:-1:-1;6459:1:182;6455:14;6471:4;6451:25;;6288:194::o;6487:131::-;-1:-1:-1;;;;;6562:31:182;;6552:42;;6542:70;;6608:1;6605;6598:12;6542:70;6487:131;:::o;6623:1425::-;6778:6;6786;6839:2;6827:9;6818:7;6814:23;6810:32;6807:52;;;6855:1;6852;6845:12;6807:52;6900:23;;;-1:-1:-1;6998:2:182;6983:18;;6970:32;-1:-1:-1;;;;;7014:30:182;;7011:50;;;7057:1;7054;7047:12;7011:50;7080:22;;7133:4;7125:13;;7121:27;-1:-1:-1;7111:55:182;;7162:1;7159;7152:12;7111:55;7202:2;7189:16;7225:75;7241:58;7292:6;7241:58;:::i;:::-;7225:75;:::i;:::-;7322:3;7346:6;7341:3;7334:19;7378:2;7373:3;7369:12;7362:19;;7433:2;7423:6;7420:1;7416:14;7412:2;7408:23;7404:32;7390:46;;7459:7;7451:6;7448:19;7445:39;;;7480:1;7477;7470:12;7445:39;7512:2;7508;7504:11;7493:22;;7524:494;7540:6;7535:3;7532:15;7524:494;;;7620:2;7614:3;7605:7;7601:17;7597:26;7594:46;;;7636:1;7633;7626:12;7594:46;7668:22;;:::i;:::-;7731:3;7718:17;7748:33;7773:7;7748:33;:::i;:::-;7794:24;;7893:2;7884:12;;;7871:26;7917:16;;;7910:33;7956:20;;;7566:2;7557:12;;;;7996;;;;;7524:494;;;8037:5;8027:15;;;;;;6623:1425;;;;;:::o;8053:550::-;8159:6;8167;8175;8228:2;8216:9;8207:7;8203:23;8199:32;8196:52;;;8244:1;8241;8234:12;8196:52;8284:9;8271:23;-1:-1:-1;;;;;8309:6:182;8306:30;8303:50;;;8349:1;8346;8339:12;8303:50;8388:58;8438:7;8429:6;8418:9;8414:22;8388:58;:::i;:::-;8465:8;;8362:84;;-1:-1:-1;8569:2:182;8554:18;;;;8541:32;;8053:550;-1:-1:-1;;;;8053:550:182:o;8608:1270::-;8800:4;8848:2;8837:9;8833:18;8878:2;8867:9;8860:21;8901:6;8936;8930:13;8967:6;8959;8952:22;9005:2;8994:9;8990:18;8983:25;;9067:2;9057:6;9054:1;9050:14;9039:9;9035:30;9031:39;9017:53;;9105:2;9097:6;9093:15;9126:1;9136:713;9150:6;9147:1;9144:13;9136:713;;;9215:22;;;-1:-1:-1;;9211:36:182;9199:49;;9271:13;;9345:9;;9367:24;;;9425:2;9457:11;;;;9413:15;;;9492:1;9506:235;9522:8;9517:3;9514:17;9506:235;;;9603:15;;-1:-1:-1;;;;;9599:41:182;9585:56;;9678:2;9710:17;;;;9667:14;;;;9637:1;9541:11;9506:235;;;-1:-1:-1;9764:5:182;;-1:-1:-1;;;9804:2:182;9827:12;;;;9792:15;;;;;9172:1;9165:9;9136:713;;;-1:-1:-1;9866:6:182;;8608:1270;-1:-1:-1;;;;;;8608:1270:182:o;10485:782::-;10735:2;10747:21;;;10817:13;;10720:18;;;10839:22;;;10687:4;;10918:15;;;10892:2;10877:18;;;10687:4;10961:280;10975:6;10972:1;10969:13;10961:280;;;11034:13;;11076:9;;-1:-1:-1;;;;;11072:35:182;11060:48;;11156:2;11148:11;;;11142:18;11128:12;;;11121:40;11216:15;;;;11190:2;11181:12;;;;11104:1;10990:9;10961:280;;;-1:-1:-1;11258:3:182;;10485:782;-1:-1:-1;;;;;10485:782:182:o;11525:127::-;11586:10;11581:3;11577:20;11574:1;11567:31;11617:4;11614:1;11607:15;11641:4;11638:1;11631:15;11657:128;11724:9;;;11745:11;;;11742:37;;;11759:18;;:::i;11790:168::-;11863:9;;;11894;;11911:15;;;11905:22;;11891:37;11881:71;;11932:18;;:::i;11963:125::-;12028:9;;;12049:10;;;12046:36;;;12062:18;;:::i;12093:127::-;12154:10;12149:3;12145:20;12142:1;12135:31;12185:4;12182:1;12175:15;12209:4;12206:1;12199:15;12225:545;12318:4;12324:6;12384:11;12371:25;12478:2;12474:7;12463:8;12447:14;12443:29;12439:43;12419:18;12415:68;12405:96;;12497:1;12494;12487:12;12405:96;12524:33;;12576:20;;;-1:-1:-1;;;;;;12608:30:182;;12605:50;;;12651:1;12648;12641:12;12605:50;12684:4;12672:17;;-1:-1:-1;12735:1:182;12731:14;;;12715;12711:35;12701:46;;12698:66;;;12760:1;12757;12750:12;13001:164;13077:13;;13126;;13119:21;13109:32;;13099:60;;13155:1;13152;13145:12;13099:60;13001:164;;;:::o;13170:202::-;13237:6;13290:2;13278:9;13269:7;13265:23;13261:32;13258:52;;;13306:1;13303;13296:12;13258:52;13329:37;13356:9;13329:37;:::i;13377:127::-;13438:10;13433:3;13429:20;13426:1;13419:31;13469:4;13466:1;13459:15;13493:4;13490:1;13483:15;13509:120;13549:1;13575;13565:35;;13580:18;;:::i;:::-;-1:-1:-1;13614:9:182;;13509:120::o;13634:826::-;13722:6;13782:2;13770:9;13761:7;13757:23;13753:32;13797:2;13794:22;;;13812:1;13809;13802:12;13794:22;-1:-1:-1;13881:2:182;13875:9;13923:2;13911:15;;-1:-1:-1;;;;;13941:34:182;;13977:22;;;13938:62;13935:88;;;14003:18;;:::i;:::-;14039:2;14032:22;14076:23;;14139:4;14128:16;;14118:27;;14108:55;;14159:1;14156;14149:12;14108:55;14172:21;;14266:2;14251:18;;;14238:32;14286:15;;;14279:32;14384:2;14369:18;;;14356:32;14404:15;;;14397:32;;;;-1:-1:-1;14179:6:182;13634:826;-1:-1:-1;13634:826:182:o;14674:257::-;14771:6;14824:2;14812:9;14803:7;14799:23;14795:32;14792:52;;;14840:1;14837;14830:12;14792:52;-1:-1:-1;14885:16:182;;14674:257;-1:-1:-1;14674:257:182:o;14936:271::-;15119:6;15111;15106:3;15093:33;15075:3;15145:16;;15170:13;;;15145:16;14936:271;-1:-1:-1;14936:271:182:o;15536:962::-;15631:6;15684:2;15672:9;15663:7;15659:23;15655:32;15652:52;;;15700:1;15697;15690:12;15652:52;15733:9;15727:16;-1:-1:-1;;;;;15758:6:182;15755:30;15752:50;;;15798:1;15795;15788:12;15752:50;15821:22;;15874:4;15866:13;;15862:27;-1:-1:-1;15852:55:182;;15903:1;15900;15893:12;15852:55;15936:2;15930:9;15959:75;15975:58;16026:6;15975:58;:::i;15959:75::-;16056:3;16080:6;16075:3;16068:19;16112:2;16107:3;16103:12;16096:19;;16167:2;16157:6;16154:1;16150:14;16146:2;16142:23;16138:32;16124:46;;16193:7;16185:6;16182:19;16179:39;;;16214:1;16211;16204:12;16179:39;16246:2;16242;16238:11;16227:22;;16258:210;16274:6;16269:3;16266:15;16258:210;;;16347:3;16341:10;16364:31;16389:5;16364:31;:::i;:::-;16408:18;;16455:2;16291:12;;;;16446;;;;16258:210;;16820:112;16852:1;16878;16868:35;;16883:18;;:::i;:::-;-1:-1:-1;16917:9:182;;16820:112::o;16937:684::-;17137:2;17149:21;;;17122:18;;17205:22;;;17089:4;17284:6;17258:2;17243:18;;17089:4;17318:277;17332:6;17329:1;17326:13;17318:277;;;17407:6;17394:20;17427:31;17452:5;17427:31;:::i;:::-;-1:-1:-1;;;;;17483:31:182;17471:44;;17544:2;17570:15;;;;17535:12;;;;17511:1;17347:9;17318:277;;;-1:-1:-1;17612:3:182;16937:684;-1:-1:-1;;;;;16937:684:182:o;17626:291::-;17705:6;17713;17766:2;17754:9;17745:7;17741:23;17737:32;17734:52;;;17782:1;17779;17772:12;17734:52;-1:-1:-1;;17805:16:182;;17883:2;17868:18;;;17862:25;17805:16;;17862:25;;-1:-1:-1;17626:291:182:o;17922:251::-;17992:6;18045:2;18033:9;18024:7;18020:23;18016:32;18013:52;;;18061:1;18058;18051:12;18013:52;18093:9;18087:16;18112:31;18137:5;18112:31;:::i;18746:1069::-;19041:6;19036:3;19029:19;19011:3;19079:2;19074:3;19070:12;19111:6;19105:13;19176:2;19168:6;19164:15;19197:1;19207:201;19221:6;19218:1;19215:13;19207:201;;;19288:13;;-1:-1:-1;;;;;19284:39:182;19270:54;;19357:2;19346:14;;;;19383:15;;;;19320:1;19236:9;19207:201;;;-1:-1:-1;;19460:13:182;;19533:2;19521:15;;;19430:5;-1:-1:-1;19556:1:182;19566:222;19582:8;19577:3;19574:17;19566:222;;;19655:15;;-1:-1:-1;;;;;19651:48:182;19637:63;;19733:2;19761:17;;;;19722:14;;;;19610:1;19601:11;19566:222;;;-1:-1:-1;19804:5:182;;18746:1069;-1:-1:-1;;;;;;;18746:1069:182:o;20098:330::-;20174:6;20182;20235:2;20223:9;20214:7;20210:23;20206:32;20203:52;;;20251:1;20248;20241:12;20203:52;20274:37;20301:9;20274:37;:::i;:::-;20264:47;;20354:2;20343:9;20339:18;20333:25;20367:31;20392:5;20367:31;:::i;:::-;20417:5;20407:15;;;20098:330;;;;;:::o;20433:247::-;20492:6;20545:2;20533:9;20524:7;20520:23;20516:32;20513:52;;;20561:1;20558;20551:12;20513:52;20600:9;20587:23;20619:31;20644:5;20619:31;:::i;20956:380::-;21035:1;21031:12;;;;21078;;;21099:61;;21153:4;21145:6;21141:17;21131:27;;21099:61;21206:2;21198:6;21195:14;21175:18;21172:38;21169:161;;21252:10;21247:3;21243:20;21240:1;21233:31;21287:4;21284:1;21277:15;21315:4;21312:1;21305:15;22015:127;22076:10;22071:3;22067:20;22064:1;22057:31;22107:4;22104:1;22097:15;22131:4;22128:1;22121:15;22147:1002;-1:-1:-1;;;22651:16:182;;22722:3;22700:16;;;-1:-1:-1;;;;;;22696:38:182;22692:1;22683:11;;22676:59;-1:-1:-1;;;22760:1:182;22751:11;;22744:67;22849:2;22845:15;;;-1:-1:-1;;22841:53:182;22836:2;22827:12;;22820:75;-1:-1:-1;;;22920:2:182;22911:12;;22904:64;22991:13;;-1:-1:-1;;22991:13:182;23045:4;23033:17;;23028:2;23019:12;;23013:46;23123:1;23082:16;;23100:2;23078:25;23112:13;;;-1:-1:-1;23078:25:182;22147:1002;-1:-1:-1;;;22147:1002:182:o","linkReferences":{},"immutableReferences":{"53354":[{"start":9176,"length":32}],"53356":[{"start":9134,"length":32}],"53358":[{"start":9092,"length":32}],"53360":[{"start":9257,"length":32}],"53362":[{"start":9297,"length":32}],"53365":[{"start":5284,"length":32}],"53368":[{"start":5333,"length":32}],"90212":[{"start":1165,"length":32},{"start":2974,"length":32},{"start":3420,"length":32},{"start":4772,"length":32},{"start":5180,"length":32},{"start":5534,"length":32},{"start":5716,"length":32},{"start":6552,"length":32},{"start":7403,"length":32}],"90216":[{"start":639,"length":32},{"start":1925,"length":32}],"90219":[{"start":450,"length":32},{"start":5226,"length":32},{"start":6597,"length":32}],"90222":[{"start":1029,"length":32},{"start":8115,"length":32}],"90225":[{"start":885,"length":32},{"start":8162,"length":32}],"90228":[{"start":392,"length":32},{"start":8209,"length":32}],"90231":[{"start":540,"length":32},{"start":8066,"length":32}],"90234":[{"start":600,"length":32},{"start":3111,"length":32},{"start":5675,"length":32}],"90237":[{"start":1107,"length":32},{"start":2255,"length":32},{"start":2692,"length":32},{"start":4535,"length":32},{"start":6736,"length":32},{"start":7903,"length":32},{"start":8290,"length":32}],"90240":[{"start":990,"length":32},{"start":1388,"length":32},{"start":1466,"length":32},{"start":2222,"length":32},{"start":2659,"length":32},{"start":3310,"length":32},{"start":3455,"length":32},{"start":4240,"length":32},{"start":4390,"length":32},{"start":4502,"length":32},{"start":6703,"length":32},{"start":7217,"length":32},{"start":7319,"length":32},{"start":7792,"length":32}],"90243":[{"start":951,"length":32},{"start":4188,"length":32}],"90246":[{"start":1068,"length":32},{"start":4137,"length":32}],"90249":[{"start":827,"length":32},{"start":1305,"length":32},{"start":1502,"length":32},{"start":2499,"length":32}]}},"methodIdentifiers":{"COMMITTEE_SIZE()":"c5234a7e","EXECUTION_DELAY_IN_ROUNDS()":"bf2ba552","INSTANCE()":"d15db8b4","LIFETIME_IN_ROUNDS()":"a97f36a8","MAX_ROUND_SIZE()":"865ef513","QUORUM()":"2e80d9b6","ROUNDABOUT_SIZE()":"21017e1d","ROUND_SIZE()":"54133307","ROUND_SIZE_IN_EPOCHS()":"b34adb6c","SLASHER()":"5db93dfa","SLASH_AMOUNT_LARGE()":"2028cc7b","SLASH_AMOUNT_MEDIUM()":"9f90f3d5","SLASH_AMOUNT_SMALL()":"b394f1dd","SLASH_OFFSET_IN_ROUNDS()":"95134b2b","SLASH_PAYLOAD_IMPLEMENTATION()":"20427492","VOTE_TYPEHASH()":"86522973","eip712Domain()":"84b0196e","executeRound(uint256,address[][])":"37bab5d0","getCurrentRound()":"a32bf597","getPayloadAddress(uint256,(address,uint256)[])":"a8a35695","getRound(uint256)":"8f1327c0","getSlashTargetCommittees(uint256)":"d6c4f440","getSlashTargetEpoch(uint256,uint256)":"2e69de56","getTally(uint256,address[][])":"f3f9c756","getVoteSignatureDigest(bytes,uint256)":"cf6731e3","getVotes(uint256,uint256)":"91f36633","isRoundReadyToExecute(uint256,uint256)":"f17a2a25","vote(bytes,(uint8,bytes32,bytes32))":"9e63f61e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"contract ISlasher\",\"name\":\"_slasher\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_quorum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_roundSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lifetimeInRounds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_executionDelayInRounds\",\"type\":\"uint256\"},{\"internalType\":\"uint256[3]\",\"name\":\"_slashAmounts\",\"type\":\"uint256[3]\"},{\"internalType\":\"uint256\",\"name\":\"_committeeSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_epochDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_slashOffsetInRounds\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CloneArgumentsTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Create2EmptyBytecode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"SignatureLib__InvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"SlashPayload_ArraySizeMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"committeeSize\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__CommitteeSizeMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashingProposer__InvalidCommitteeCommitment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epochIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"roundSizeInEpochs\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__InvalidEpochIndex\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__InvalidNumberOfCommittees\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"quorum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"roundSize\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__InvalidQuorumAndRoundSize\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashingProposer__InvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256[3]\",\"name\":\"slashAmounts\",\"type\":\"uint256[3]\"}],\"name\":\"SlashingProposer__InvalidSlashAmounts\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__InvalidVoteLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lifetime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"executionDelay\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__LifetimeMustBeGreaterThanExecutionDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lifetime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"roundabout\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__LifetimeMustBeLessThanRoundabout\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashingProposer__QuorumMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"round\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__RoundAlreadyExecuted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"round\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__RoundNotComplete\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"round\",\"type\":\"uint256\"},{\"internalType\":\"SlashRound\",\"name\":\"currentRound\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__RoundOutOfRange\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundSizeInEpochs\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__RoundSizeInEpochsMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"epochDuration\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__RoundSizeMustBeMultipleOfEpochDuration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxRoundSize\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__RoundSizeTooLarge\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"info\",\"type\":\"string\"}],\"name\":\"SlashingProposer__SlashAmountMustBeGtZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashingProposer__SlashAmountTooLarge\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashOffset\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__SlashOffsetMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"Slot\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__VoteAlreadyCastInCurrentSlot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"voteSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSize\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__VoteSizeTooBig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"votes\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__VotesMustBeMultipleOf4\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"currentRound\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__VotingNotOpen\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"SlashRound\",\"name\":\"round\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashCount\",\"type\":\"uint256\"}],\"name\":\"RoundExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"SlashRound\",\"name\":\"round\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"Slot\",\"name\":\"slot\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"voteIndex\",\"type\":\"uint256\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"COMMITTEE_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXECUTION_DELAY_IN_ROUNDS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INSTANCE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LIFETIME_IN_ROUNDS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_ROUND_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"QUORUM\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROUNDABOUT_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROUND_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROUND_SIZE_IN_EPOCHS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER\",\"outputs\":[{\"internalType\":\"contract ISlasher\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASH_AMOUNT_LARGE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASH_AMOUNT_MEDIUM\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASH_AMOUNT_SMALL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASH_OFFSET_IN_ROUNDS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASH_PAYLOAD_IMPLEMENTATION\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VOTE_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"_round\",\"type\":\"uint256\"},{\"internalType\":\"address[][]\",\"name\":\"_committees\",\"type\":\"address[][]\"}],\"name\":\"executeRound\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentRound\",\"outputs\":[{\"internalType\":\"SlashRound\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"_round\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"slashAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct SlashingProposer.SlashAction[]\",\"name\":\"_actions\",\"type\":\"tuple[]\"}],\"name\":\"getPayloadAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"_round\",\"type\":\"uint256\"}],\"name\":\"getRound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isExecuted\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"voteCount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"_round\",\"type\":\"uint256\"}],\"name\":\"getSlashTargetCommittees\",\"outputs\":[{\"internalType\":\"address[][]\",\"name\":\"committees\",\"type\":\"address[][]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"_round\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_epochIndex\",\"type\":\"uint256\"}],\"name\":\"getSlashTargetEpoch\",\"outputs\":[{\"internalType\":\"Epoch\",\"name\":\"epochNumber\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"_round\",\"type\":\"uint256\"},{\"internalType\":\"address[][]\",\"name\":\"_committees\",\"type\":\"address[][]\"}],\"name\":\"getTally\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"slashAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct SlashingProposer.SlashAction[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_votes\",\"type\":\"bytes\"},{\"internalType\":\"Slot\",\"name\":\"_slot\",\"type\":\"uint256\"}],\"name\":\"getVoteSignatureDigest\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"_round\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"_round\",\"type\":\"uint256\"},{\"internalType\":\"Slot\",\"name\":\"_slot\",\"type\":\"uint256\"}],\"name\":\"isRoundReadyToExecute\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_votes\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"struct Signature\",\"name\":\"_sig\",\"type\":\"tuple\"}],\"name\":\"vote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Aztec Labs\",\"details\":\"This contract implements a voting-based slashing mechanism where checkpoint proposers signal their intent to slash validators from past epochs. The system operates in rounds, with each round corresponding to a time period where votes are collected from proposers to determine which validators should be slashed. Key concepts: - Rounds: Time periods during which votes are collected (measured in slots, multiple of epochs) - Voting: Checkpoint proposers submit encoded votes indicating which validators to slash and by how much - Quorum: Minimum number of votes required in a round to trigger slashing of a specific validator - Execution Delay: Time that must pass after a round ends before its slashing can be executed (allows vetoing) - Slash Offset: How many rounds in the past to look when determining which validators to slash How the system works: 1. Time is divided into rounds (ROUND_SIZE slots each). 2. During each round, checkpoint proposers can submit votes indicating which validators from the epochs that span SLASH_OFFSET_IN_ROUNDS rounds ago should be slashed. 3. Votes are encoded as bytes where each 2-bit pair represents the slash amount (0-3 slash units) for the corresponding validator slashed in the round. 4. After a round ends, there is an execution delay period for review so the VETOER in the Slasher can veto the expected payload address if needed. 5. Once the delay passes, anyone can call executeRound() to tally votes and execute slashing. 6. Validators that reach the quorum threshold are slashed by the specified amount. We consider a vote for slashing N units as also a vote for slashing N-1, N-2, ..., 1 units. We slash for the largest amount that reaches quorum. About SLASH_OFFSET_IN_ROUNDS: - This offset gives us time to detect an offense and then vote on it in a later round. For instance, a `DATA_WITHHOLDING` offense for slot S is only triggered after `DATA_WITHHOLDING_TOLERANCE_SLOTS` slots. Consider: - Slot S publishes a checkpoint - At slot S + tolerance, observers find missing data and want to slash the attesters - Voting on that slash needs to happen in a round that starts after detection - In terms of voting, this parameter means that in round R we are voting for the committee of epochs starting from (R - SLASH_OFFSET_IN_ROUNDS) * ROUND_SIZE_IN_EPOCHS. - For example, with SLASH_OFFSET_IN_ROUNDS=2, ROUND_SIZE=10, and EPOCH_DURATION=2 - In round 4, we are voting for the committee of epochs starting from (4 - 2) * 10 = 20 (i.e., epochs 20-29) Considerations: - Only the designated proposer for each slot can submit votes - Votes are signed using EIP-712 - Votes include slot numbers to prevent replay attacks - Committee commitments are verified against onchain data - Rounds have a lifetime limit - Uses circular storage to limit memory usage while maintaining recent round data Integration with Aztec system: - Connects to the main Rollup contract (INSTANCE) to get proposer information and committee data - Uses the Slasher contract to execute actual slashing operations - Coordinates with validator selection of the Rollup instance to identify which validators should be slashed - Supports the Rollup's security model by enabling punishment of misbehaving validators Parameters and configuration: - QUORUM: Minimum votes needed to slash a validator - ROUND_SIZE: Number of slots per voting round - EXECUTION_DELAY_IN_ROUNDS: Rounds to wait before allowing execution - LIFETIME_IN_ROUNDS: Maximum age of rounds that can still be executed - SLASH_OFFSET_IN_ROUNDS: How far back to look for validators to slash - SLASH_AMOUNT_SMALL/MEDIUM/LARGE: Specific amounts for each slash unit level - COMMITTEE_SIZE: Number of validators per committee\",\"errors\":{\"Create2EmptyBytecode()\":[{\"details\":\"There's no code to deploy.\"}],\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"RoundExecuted(uint256,uint256)\":{\"params\":{\"round\":\"The round number that was executed\",\"slashCount\":\"The number of validators that were slashed in this round\"}},\"VoteCast(uint256,uint256,address,uint256)\":{\"params\":{\"proposer\":\"The address of the proposer who cast the vote\",\"round\":\"The round number in which the vote was cast\",\"slot\":\"The slot in which the vote was cast\",\"voteIndex\":\"The position of the vote within the round, from 0 to the round's vote count (exclusive), as accepted by getVotes\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Sets up all the voting and slashing parameters and validates their correctness. The constructor enforces several important invariants to ensure the system operates correctly.\",\"params\":{\"_committeeSize\":\"The number of validators in each committee (must be > 0)\",\"_epochDuration\":\"The number of slots in each epoch (used to calculate ROUND_SIZE_IN_EPOCHS)\",\"_executionDelayInRounds\":\"The number of rounds to wait after a round ends before it can be executed (provides time for review)\",\"_instance\":\"The address of the rollup contract that this slashing proposer will interact with\",\"_lifetimeInRounds\":\"The maximum age in rounds for which a round can still be executed (must be > _executionDelayInRounds and < ROUNDABOUT_SIZE)\",\"_quorum\":\"The minimum number of votes required to slash a validator (must be > ROUND_SIZE/2 and <= ROUND_SIZE)\",\"_roundSize\":\"The number of slots in each voting round (must be > 1 and < MAX_ROUND_SIZE)\",\"_slashAmounts\":\"Array of 3 slash amounts [small, medium, large] for 1, 2, 3 unit votes (all must be > 0)\",\"_slashOffsetInRounds\":\"How many rounds in the past to look when determining which validators to slash (must be > 0)\",\"_slasher\":\"The slasher contract that will execute the actual slashing operations\"}},\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"executeRound(uint256,address[][])\":{\"details\":\"Can be called by anyone once a round has passed its execution delay but is still within its lifetime. The function tallies all votes cast during the round, identifies validators that reached the quorum threshold, and executes slashing by deploying a SlashPayload contract and calling the Slasher.\",\"params\":{\"_committees\":\"Array of validator committees slashed for each epoch in the round being executed. Must contain exactly ROUND_SIZE_IN_EPOCHS committees. Only committees with slashed validators will have their commitments verified against onchain data. Emits: - RoundExecuted: When the round execution completes, regardless of whether any slashing occurred Reverts with: - SlashingProposer__RoundAlreadyExecuted: If the round has already been executed - SlashingProposer__RoundNotComplete: If the round is not yet ready for execution or has expired - SlashingProposer__InvalidCommitteeCommitment: If any committee commitment doesn't match onchain data - SlashingProposer__InvalidNumberOfCommittees: If the number of committees doesn't match ROUND_SIZE_IN_EPOCHS\",\"_round\":\"The round number to execute (must be ready for execution based on timing constraints)\"}},\"getCurrentRound()\":{\"details\":\"Calculates the current round by dividing the current slot number by ROUND_SIZE. This determines which voting round is currently active.\",\"returns\":{\"_0\":\"The current SlashRound number\"}},\"getPayloadAddress(uint256,(address,uint256)[])\":{\"details\":\"Uses CREATE2 to predict the deployment address based on the round number and slash actions. Returns zero address if no actions are provided. The address is deterministic and will be the same across multiple calls with identical parameters.\",\"params\":{\"_actions\":\"Array of SlashAction structs containing validator addresses and slash amounts\",\"_round\":\"The round number that will be mixed into the CREATE2 salt\"},\"returns\":{\"_0\":\"The predicted deployment address of the SlashPayload contract, or zero address if no actions\"}},\"getRound(uint256)\":{\"params\":{\"_round\":\"The round number to retrieve information for\"},\"returns\":{\"isExecuted\":\"True if the round has already been executed and slashing has occurred\",\"voteCount\":\"The total number of votes that have been cast in this round by proposers\"}},\"getSlashTargetCommittees(uint256)\":{\"details\":\"This is an expensive call. It is not marked as view since `getEpochCommittee` may modify rollup state. If `getEpochCommittee` throws (eg committee not yet formed), an empty committee is returned for that epoch.\",\"params\":{\"_round\":\"The round number to load committees for\"},\"returns\":{\"committees\":\"Array of committees, one for each epoch in the round (may contain empty arrays for early epochs)\"}},\"getSlashTargetEpoch(uint256,uint256)\":{\"details\":\"Calculates which epoch's validators are being voted on for slashing in a given round. The epoch is determined by looking back SLASH_OFFSET_IN_ROUNDS rounds from the voting round and then adding the epoch index within that round.\",\"params\":{\"_epochIndex\":\"The index of the epoch within the round (must be 0 to ROUND_SIZE_IN_EPOCHS-1)\",\"_round\":\"The round number during which voting is taking place\"},\"returns\":{\"epochNumber\":\"The epoch number whose validators will be considered for slashing Reverts with: - SlashingProposer__VotingNotOpen: If the round is less than SLASH_OFFSET_IN_ROUNDS\"}},\"getTally(uint256,address[][])\":{\"details\":\"This function is intended for offchain querying and analysis of voting results. It uses transient storage when calling getEpochCommittee on the rollup contract. Returns the same slash actions that would be executed if executeRound() were called for this round.\",\"params\":{\"_committees\":\"The list of committees to consider for the tally (get them via `getSlashTargetCommittees`)\",\"_round\":\"The round number to analyze and return tally results for\"},\"returns\":{\"_0\":\"actions Array of SlashAction structs containing validator addresses and slash amounts for all validators that reached the quorum threshold in this round\"}},\"getVoteSignatureDigest(bytes,uint256)\":{\"details\":\"Creates a typed data hash according to EIP-712 standard that includes both the vote data and the slot number. The slot number inclusion prevents votes from being replayed in different slots, ensuring each vote is tied to a specific time.\",\"params\":{\"_slot\":\"The slot number when the vote is being cast (prevents replay attacks)\",\"_votes\":\"The encoded vote data that will be signed by the proposer\"},\"returns\":{\"_0\":\"The EIP-712 compliant signature digest that should be signed by the proposer\"}},\"getVotes(uint256,uint256)\":{\"params\":{\"_index\":\"The index to retrieve votes for\",\"_round\":\"The round number to retrieve votes for\"},\"returns\":{\"_0\":\"The votes retrieved\"}},\"isRoundReadyToExecute(uint256,uint256)\":{\"params\":{\"_round\":\"The round number to check\",\"_slot\":\"The slot number at which to evaluate readiness (typically current or slot)\"}},\"vote(bytes,(uint8,bytes32,bytes32))\":{\"details\":\"Only the current checkpoint proposer can submit votes, enforced via EIP-712 signature verification. Each byte in the votes encodes slash amounts for 4 validators using 2 bits each (0-3 units each). The vote includes the current slot number to prevent replay attacks.\",\"params\":{\"_sig\":\"EIP-712 signature from the current proposer proving authorization to vote. Signature covers the vote data and current slot number. Emits: - VoteCast: When the vote is successfully recorded, carrying the vote's index within the round Reverts with: - SlashingProposer__VotingNotOpen: If current round is less than SLASH_OFFSET_IN_ROUNDS - SlashingProposer__InvalidSignature: If signature verification fails - SlashingProposer__InvalidVoteLength: If vote data length is incorrect - SlashingProposer__VoteAlreadyCastInCurrentSlot: If proposer already voted in this slot\",\"_votes\":\"Encoded voting data where each byte represents slash amounts for 4 validators. Bits 0-1 for first validator, bits 2-3 for second, bits 4-5 for third, bits 6-7 for fourth. Length must equal (COMMITTEE_SIZE * ROUND_SIZE_IN_EPOCHS) / 4 bytes.\"}}},\"stateVariables\":{\"COMMITTEE_SIZE\":{\"details\":\"Used to determine vote encoding length and validator indexing\"},\"EXECUTION_DELAY_IN_ROUNDS\":{\"details\":\"Provides time for review and potential challenges before slashing occurs\"},\"INSTANCE\":{\"details\":\"Used to query current proposers, committee data, and slot information\"},\"LIFETIME_IN_ROUNDS\":{\"details\":\"Prevents execution of very old rounds that may no longer be relevant\"},\"MAX_ROUND_SIZE\":{\"details\":\"Hard limit to prevent excessive gas usage and storage requirements. Also serves as the maximum number of slots per round.\"},\"QUORUM\":{\"details\":\"Must be greater than ROUND_SIZE/2 to ensure majority agreement\"},\"ROUNDABOUT_SIZE\":{\"details\":\"Determines how many recent rounds can be kept in storage simultaneously. Older rounds are overwritten as new rounds are created. Must be larger than LIFETIME_IN_ROUNDS to prevent data corruption.\"},\"ROUND_SIZE\":{\"details\":\"Determines the duration of voting periods and must be a multiple of epoch duration\"},\"ROUND_SIZE_IN_EPOCHS\":{\"details\":\"Calculated as ROUND_SIZE / epoch duration, determines how many committees are voted on per round\"},\"SLASHER\":{\"details\":\"Receives SlashPayload contracts from this proposer to perform validator punishment\"},\"SLASH_AMOUNT_SMALL\":{\"details\":\"Validators can be voted to be slashed by 1-3 units, multiplied by this base amount\"},\"SLASH_OFFSET_IN_ROUNDS\":{\"details\":\"During round N, we cannot slash the validators from the epochs of the same round, since the round is not over, and besides we would be asking the current validators to vote to slash themselves. So during round N we look at the epochs spanned during round N - SLASH_OFFSET_IN_ROUNDS. This offset means that the epochs we slash are complete, and also gives nodes time to detect any misbehavior (eg slashing for prunes requires the proof submission window to pass).\"},\"SLASH_PAYLOAD_IMPLEMENTATION\":{\"details\":\"Single instance deployed once and used as template for all slash payload clones\"},\"VOTE_TYPEHASH\":{\"details\":\"Defines the structure: Vote(bytes votes,uint256 slot) for EIP-712 signing\"}},\"title\":\"SlashingProposer\",\"version\":1},\"userdoc\":{\"events\":{\"RoundExecuted(uint256,uint256)\":{\"notice\":\"Emitted when a slashing round is executed and validators are slashed\"},\"VoteCast(uint256,uint256,address,uint256)\":{\"notice\":\"Emitted when a proposer casts a vote in a slashing round\"}},\"kind\":\"user\",\"methods\":{\"COMMITTEE_SIZE()\":{\"notice\":\"Number of validators per committee\"},\"EXECUTION_DELAY_IN_ROUNDS()\":{\"notice\":\"Number of rounds to wait after a round ends before it can be executed\"},\"INSTANCE()\":{\"notice\":\"Address of the main rollup contract that this slashing proposer integrates with\"},\"LIFETIME_IN_ROUNDS()\":{\"notice\":\"Maximum age in rounds for which a round can still be executed\"},\"MAX_ROUND_SIZE()\":{\"notice\":\"Maximum number of votes that can be cast in a single round\"},\"QUORUM()\":{\"notice\":\"Minimum number of votes required to slash a validator\"},\"ROUNDABOUT_SIZE()\":{\"notice\":\"Size of the circular storage buffer for round data\"},\"ROUND_SIZE()\":{\"notice\":\"Number of slots per slashing round\"},\"ROUND_SIZE_IN_EPOCHS()\":{\"notice\":\"Number of epochs per slashing round\"},\"SLASHER()\":{\"notice\":\"The slasher contract that executes actual slashing operations\"},\"SLASH_AMOUNT_LARGE()\":{\"notice\":\"Large slash amount for 3 unit votes (in wei)\"},\"SLASH_AMOUNT_MEDIUM()\":{\"notice\":\"Medium slash amount for 2 unit votes (in wei)\"},\"SLASH_AMOUNT_SMALL()\":{\"notice\":\"Base amount of stake to slash per slashing unit (in wei)Small slash amount for 1 unit votes (in wei)\"},\"SLASH_OFFSET_IN_ROUNDS()\":{\"notice\":\"How many rounds in the past to look when determining which validators to slash\"},\"SLASH_PAYLOAD_IMPLEMENTATION()\":{\"notice\":\"The implementation contract for SlashPayload clones\"},\"VOTE_TYPEHASH()\":{\"notice\":\"EIP-712 type hash for the Vote struct used in signature verification\"},\"constructor\":{\"notice\":\"Initializes the SlashingProposer with configuration parameters\"},\"executeRound(uint256,address[][])\":{\"notice\":\"Execute the slashing round by tallying votes and executing slashes for validators that reached quorum\"},\"getCurrentRound()\":{\"notice\":\"Get the current round number based on the current slot from the rollup\"},\"getPayloadAddress(uint256,(address,uint256)[])\":{\"notice\":\"Get the deterministic address where a slash payload would be deployed for given actions\"},\"getRound(uint256)\":{\"notice\":\"Get information about a specific slashing round's status and voting data\"},\"getSlashTargetCommittees(uint256)\":{\"notice\":\"Load committees for all epochs to be potentially slashed in a round from the rollup instance\"},\"getSlashTargetEpoch(uint256,uint256)\":{\"notice\":\"Get the epoch number that will be slashed during a specific round at a given epoch index\"},\"getTally(uint256,address[][])\":{\"notice\":\"Get the tally results for a specific round, showing which validators would be slashed\"},\"getVoteSignatureDigest(bytes,uint256)\":{\"notice\":\"Generate the EIP-712 signature digest for a vote to prevent replay attacks\"},\"getVotes(uint256,uint256)\":{\"notice\":\"Get the votes for a specific `_round` at a specific `_index`\"},\"isRoundReadyToExecute(uint256,uint256)\":{\"notice\":\"Check if a specific slashing round is ready for execution\"},\"vote(bytes,(uint8,bytes32,bytes32))\":{\"notice\":\"Submit a vote for slashing validators from SLASH_OFFSET_IN_ROUNDS rounds ago\"}},\"notice\":\"Slashing proposer that aggregates validator votes to determine which validators should be slashed\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/slashing/SlashingProposer.sol\":\"SlashingProposer\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@aztec-blob-lib/=src/mock/libraries/\",\":@aztec/=src/\",\":@generated/=generated/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@oz/=lib/openzeppelin-contracts/contracts/\",\":@test/=test/\",\":@zkpassport-test/=lib/circuits/src/solidity/test/\",\":@zkpassport/=lib/circuits/src/solidity/src/\",\":circuits/=lib/circuits/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0x1206c89e10de6977cbeda13f01c7956c1159cf9f8565aa56b8f05f7c838429bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1d3b3da61df7796a528ec9abfbb63288cf3ac63e3c736407ae4eed2bca018695\",\"dweb:/ipfs/QmYgttRpNJeRgjzL2rwMEHjFuVXABxPGApe5bpmsHtdfjE\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x4251fed1ac036ad28996501522371736318527d7bf2bf7d66fbd2769d6c4771b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2df261bd4de240f54c5829faeaf0ffc919a01f1497cf7ffd8a9a544bdec8fca\",\"dweb:/ipfs/Qmb9ndUuv9RZPKJXZGzjVuhmNuoizxuGRn4QMBmdmLcxS3\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Create2.sol\":{\"keccak256\":\"0xbb7e8401583d26268ea9103013bcdcd90866a7718bd91105ebd21c9bf11f4f06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://866a11ad89c93ee918078f7a46ae31e17d89216ce64603f0d34be7ed0a5c520e\",\"dweb:/ipfs/QmW3ckLEJg2v2NzuVLNJFmRuerGSipw6Dzg6ntbmqbAGoC\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x8447b57b63810fe2e367c09496a966f143ec0e825d71ddb9fce2506cff84b618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://996cb48f793bf151555045b37138e36b3cdb31d6bc6552d3149285260be00cfb\",\"dweb:/ipfs/QmcLaTTMNVbkMx58xhkp6GeFt4V3GtSyupZuaKG3vYW2Zc\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x9e82c00fb176503860139c6bbf593b1a954ee7ff97ab2969656571382b9b58a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34b4eb157b44d4441315db65561ba7cf0fe909dc598c2cfd7080d203077d5b57\",\"dweb:/ipfs/QmcNdvK3kDUAUr48urHxoeHd1TqVDya4YfZTM66i4goEJn\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x2c33f654cefbbe80a9b436b5792cfe8bda2e87f139f110073c99762558db252f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc7ebd80046a52f28978cf46a24ff3e4c8568264ab6bb138038951c75d576167\",\"dweb:/ipfs/QmQQjXVr4CbDR3DXd8GHEqn3JSJYTnbBHMJp9tvc29yXrc\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol\":{\"keccak256\":\"0x3616f1b0d0a9ee1ca8f0953ecaceb9230e36f691c7974d30f964212acff52d2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4bebdd07b31ac28e3e596ac6f0333da90a4e332405aa7d65f3a3a7e0b4cf15e\",\"dweb:/ipfs/QmckoDU5bBnye2UtPcrfJNahLD2FbxrnPP9nrREMWPpnug\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f\",\"dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz\"]},\"src/core/interfaces/IEscapeHatch.sol\":{\"keccak256\":\"0x1a499acad8813b56e7d9cdcff3152e36196482794e62302e95a28603f5915747\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://18da3711ad1fbc413336c252709e1ad32d51092336fbe6c2428b48768f58352c\",\"dweb:/ipfs/QmdkMJiH1pdcuoLe5zPHeMtnFhZ1k7PLZJtoWQUcpcm4bJ\"]},\"src/core/interfaces/IFeeJuicePortal.sol\":{\"keccak256\":\"0xce84c8907395b4c11cc6dd8035d8e14560153450f9d88340cfb8abb914c66639\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f5eb389f1a6e9adbb2f24dad7a6c0bc706d49decad82ba9b582c288e12eddda6\",\"dweb:/ipfs/QmNM3uQmJYn9B6RAHSMUT3TZMR6R75okjJErUEsuRjxGXt\"]},\"src/core/interfaces/IRollup.sol\":{\"keccak256\":\"0x8c843d930bb66928087a3ce19786d0a7b2d0d28d321ac41c10394088baab7f5c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7df362b5237cfcfac09915ef4ae261d985ae26a91be847855ef277715f732748\",\"dweb:/ipfs/QmeW86CE58Kntiuy8ZHdRFBGnw5yxFCmG4gdFVnYppTcr1\"]},\"src/core/interfaces/ISlasher.sol\":{\"keccak256\":\"0xf7dc3b2795b2806dbec7c94c33665abcf00a35ee65802a47f6222faf8641d302\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d7c9283746c66f04df5a133145b3196fc176e06e2fe6b3285056ffac68a09e9b\",\"dweb:/ipfs/QmPxTkM1eMNFny3yibc69p1GqWvPkno5fzBjyju89h7CNk\"]},\"src/core/interfaces/IStaking.sol\":{\"keccak256\":\"0x81ddf8fa0cf8a213d690845fd4d3e31e45c543e5876612e94607cdb753804f1d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7e0ae2a10903274cca7231306660dd6d5d1e5632238618b390aa7f4dfa5422f3\",\"dweb:/ipfs/QmTMXRYdNGnmecbUdREFfgsLwnMsRjDseLVXsvPqQoiago\"]},\"src/core/interfaces/IValidatorSelection.sol\":{\"keccak256\":\"0x880355d12ccf03d98667fe24763c8145abbd8ca8ea9faf8a30a967311dcac7ed\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c98e9fd3b3abb044b084d559e9e50cab0d58e08ab880fcbf8f52d9d93cac8ffd\",\"dweb:/ipfs/Qmd3nRejx4X57zgehytxvjdYrL5X61nM3bdfJKySAwDMoS\"]},\"src/core/interfaces/IVerifier.sol\":{\"keccak256\":\"0xf5b6025ff3d59b8922bb45fb05786764e74109b4a349d206b8a7979f46484c55\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://98ec47ac3e15b1d8f2c80854ed6fd83e655e9e96341bb827f3be8e6b47f4c7fb\",\"dweb:/ipfs/QmcmUkLgM7fb7mEaJTiWJWrZTW2kAWtRcYS6imBfmueALe\"]},\"src/core/interfaces/messagebridge/IInbox.sol\":{\"keccak256\":\"0x1149c904c8b3bd2942628fbab5480cdc044e831d51963f9e6946f1974cc162bd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://af2f1f49feba389b0bdbf427c4a85fac2908699585e5babd75f77cf14416ed5f\",\"dweb:/ipfs/QmZYjZyhicCpTcwPuWTjTTUxnaBnfv5bTMWDgxyDGqy8Gm\"]},\"src/core/interfaces/messagebridge/IOutbox.sol\":{\"keccak256\":\"0xf66d0bb4f6d978acf91a036737cd4326bfab16a4030d10510d2976e4218ed8ad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e796eea21d552b2ca4d0446bb096e2c980ab84816d9dd1398113293ae8128b30\",\"dweb:/ipfs/QmNuGgRtPFgRe3asa68vDMcWpyfDFqQ5w5j5U7yWD1EsyZ\"]},\"src/core/libraries/ConstantsGen.sol\":{\"keccak256\":\"0xe328f94338f5563669e04618c3ec21ec38b9f21ab24d5de698d80cf38f977dfa\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3d9872c9a78d7241053e9ce3eadf192d18a9cb4b95c0ac120470d92435b7216e\",\"dweb:/ipfs/QmcRnfbW8sNWwRHPik4wvkA7CTY1BTjuf2ydu3jN5otQJT\"]},\"src/core/libraries/DataStructures.sol\":{\"keccak256\":\"0x5ea9d1097f0b53eafbd72332d4c5c517307e5a056266befe5b46f5f43ee3d83c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1a742311dc3c5ead2d5361549f017d20f46c40a4e74e879823ac168cf5b572d4\",\"dweb:/ipfs/QmTNDc1fiPti41QqJTJQoV9uduB6eXaQhbfq1hfVVjVNvS\"]},\"src/core/libraries/Errors.sol\":{\"keccak256\":\"0x5de665a9151b837e2e179ea55c9c54577981d385cffea2fe046d6f70624497b2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://53645107af6da2cf033f7e16a1a5f8922a63db2e332ba769a72128ee0a30ff3e\",\"dweb:/ipfs/QmYyNYvZwtYNUiwW422pNfqERp8Tf76DQCnRFiiYZS85w8\"]},\"src/core/libraries/HatchMath.sol\":{\"keccak256\":\"0xca787b2889e281c8db132043312aa9513315669782981689824344c910833fe4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://77ec2f6b5919d53d3a7128f6006155f2566a84e7a56cd26e9d5e6d1514ccd7a2\",\"dweb:/ipfs/Qmc3Z2quujEwxQU1JBfrxhkiULaczspBsTMjXibqXCjFyd\"]},\"src/core/libraries/SlashPayloadLib.sol\":{\"keccak256\":\"0xb9322072eea0036dec74a9222a92a7fcb2518db4491764125eedb63f90f9c830\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7b7ea317d170f1667e921f8957ea1de4452280f5274bfd9391b6efd6db2e64c8\",\"dweb:/ipfs/QmQs5H78G9LxEzHmYNLDqipgVn1n8Txc94Whc4dLbB25u6\"]},\"src/core/libraries/SlashRoundLib.sol\":{\"keccak256\":\"0x6773eea1fa593e5c1e16fcd3a8341b537bf5ed7ee2f10472649dfd542e3ade8e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://756bdaa3facd4034149eeb3553ae99777b646c3e16abf8d41f9558e74249baa6\",\"dweb:/ipfs/QmNpb62diGKNKf5pcynejjhNex9c6PTkZnVUeuLvJ2qCZ9\"]},\"src/core/libraries/StakingQueue.sol\":{\"keccak256\":\"0xbbeafda1659a92be14ec5b77838952a089f075cc1d0c5f348b6ff336ea6a1a98\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f3c8bdb1de77dab697ef4442f72fa4830c757059f8d948d2f3aeb7f6983aa64f\",\"dweb:/ipfs/QmSDYdTnFo8nx34q3fdJCKpy8DCnKBQ4isxr49o4sY5T6T\"]},\"src/core/libraries/TimeLib.sol\":{\"keccak256\":\"0x865b760fe681ee74a93b49491d897a98091432ebc2923ff17717ddb6d26d31ab\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4ccdfb80464d8e58a95a68314fe2dd33f4a1634ab0695a9a4e9c180a50cc592b\",\"dweb:/ipfs/QmNUUFN7RTjiicZCkci6eEnfromVTPS2MVE4CkbqoneV6P\"]},\"src/core/libraries/compressed-data/CheckpointLog.sol\":{\"keccak256\":\"0x613513b7eb7855ff619c9eb3f1589fcfb0d7675e15c5261034ac353a62c5cabf\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://110e7cc1eae76116a6682a9044cf9031744a7a8c46164987e246923169618d5e\",\"dweb:/ipfs/QmcuhMXiGWjAbYGYYXKrTCLNYguQZpgxpWVWteJezYKVzQ\"]},\"src/core/libraries/compressed-data/StakingQueueConfig.sol\":{\"keccak256\":\"0x32b00fd08e1754d9d9c9b377ae0a0ea887ace519db0ec6d252e1b2216891068e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4ecea0a1ff8536819d37d3800b2915249b5c854d9dc611e91aae81df6acf7d76\",\"dweb:/ipfs/Qmf3FgXCf1MP78p5B76kQnwx8yXFXncutVzQhV2fteBvVn\"]},\"src/core/libraries/compressed-data/Tips.sol\":{\"keccak256\":\"0xdf872f54470e59b86349871e2c12075e8daaad85894f90e64f92538daf5f4008\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://493e4bc02c6e9acbb5bfaa68f19bf4defb409211b701784e43d2ca6cbc11ccd1\",\"dweb:/ipfs/QmSUahndZ78LBx6WdozXWL6QkqxZXzrXpHna2kGwCqgy34\"]},\"src/core/libraries/compressed-data/fees/FeeConfig.sol\":{\"keccak256\":\"0xd5593d342fd9e75cf10d9c126d5aa46eab6707221111d81757e0f5c3473c23fd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5cdfdfa94ea9d7b93cb80bdbd9e81c80fc7d71de890d88bb957960d0d5734298\",\"dweb:/ipfs/QmQ2VjHtpja19AxDnGg2Q5hCck678PUrfLDuwUNvcyo4YS\"]},\"src/core/libraries/compressed-data/fees/FeeStructs.sol\":{\"keccak256\":\"0x23304769b5d5098b6d6b1092be483f34c0c901d7e14667404e8c5335dad8b501\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9ef5000b6a27a338f60dad80f73ea03d6560afc46c063d8d52932574d82cf157\",\"dweb:/ipfs/QmSzdqmERrrCqdfqy4jXhdiyokyNRLvi4qLp85iw8rR9iJ\"]},\"src/core/libraries/crypto/Hash.sol\":{\"keccak256\":\"0x0e2bad615ee34b98ffdc7b81558e78ad3701cf8e02dc0fa4721555b4cdb861cb\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://8f69943a9ad3fba8a12ae34b3d60815c4339ea66a5ec75beb781d22a872c2d4d\",\"dweb:/ipfs/QmTfjRk9vBaxfziFgwYzWgTWFEvbB8EEudkcYupPw6qLXW\"]},\"src/core/libraries/crypto/SampleLib.sol\":{\"keccak256\":\"0x59e87e7d6a1e966c0f73bd919825ff7d81dc898625fe9fd20e6786e10b43783e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a931d31192faf6d9d9c82fc7099a776b5886d90dd0a2a9ee8093cc680dfdef70\",\"dweb:/ipfs/QmbQjTTf96tr2WSiuoWK8k984dGuXKooZWZ5o9EL7wEPhv\"]},\"src/core/libraries/rollup/AttestationLib.sol\":{\"keccak256\":\"0xf2111c30dc0d6c81d4f990990dfa37813932180e2b94739050356c5942f316e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fc4d8c42797fa58646094be9e108a60a278f2c2beea06bd7b06b00933b00c5b9\",\"dweb:/ipfs/QmdNPs36gak9y4YoCQq2ttv1nj8ALyab6f9P7SoozECrfN\"]},\"src/core/libraries/rollup/BlobLib.sol\":{\"keccak256\":\"0x40be24c3f297efce26b76cf2f674454344a20ba8b8fde7cdfd4c7ecfe339a507\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6c37144509a9269c3fe0f0791649ef4f74e5db0b54d8b27c68a1558be2ccd350\",\"dweb:/ipfs/QmT4Fc8um96XkUWd1kJrdnHKvwqKouJtJW8zUaig5nVFQx\"]},\"src/core/libraries/rollup/CoordinationSignatureLib.sol\":{\"keccak256\":\"0x939c2aa29f536822f1f35db30af3b783986612bb35a210c583247f764c39dfae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6f5e71fe318f83063eda2027992740e7be7e0274887b4c11ab00ef3199398729\",\"dweb:/ipfs/QmPGkRVfkoLj8bi95vyySrtFeTaUGf62qcWoBy1nZRjZQc\"]},\"src/core/libraries/rollup/FeeLib.sol\":{\"keccak256\":\"0x78cccc8618137ebda0ca1cb68071a6458eff5c1e4eecce22de77c7479cb2f917\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://eb96d87ba3229de5d5a8e8cd9e1c29438789e578f915d787f2f7c0788f380679\",\"dweb:/ipfs/Qma3VYid6EyGtNCLertDyViT1Z8Ma1vNnc7EAEmJfxf8t9\"]},\"src/core/libraries/rollup/FieldLib.sol\":{\"keccak256\":\"0xd09f77d3aa6d7efc844e99bd496a145171613825bc45d35e1518889098f91e95\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://499d0aeb3c7b6801e49f7554110a194ebeca73bec4ddf4b00ea8dd64fcc4b2ac\",\"dweb:/ipfs/QmQf7EeP4kwTGPR2xfDK2MpNAqqcAY4vWZ3faEKn6JEW8R\"]},\"src/core/libraries/rollup/ProposeLib.sol\":{\"keccak256\":\"0x90d4fff721a1bcdbb555aad73a040ac1f0c3a61e286b0f291f47248129d8a777\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://988c7390ba413ae25939df5a9f8850649106627ddf453a60b472e31c32a97156\",\"dweb:/ipfs/QmXNPKm6y3bgTmjfeTMrY4sfBUFT4fLxZsMBBSC13Nt6oy\"]},\"src/core/libraries/rollup/ProposedHeaderLib.sol\":{\"keccak256\":\"0x43a9fa530b7cb948c1d7c436bddafdd8ddd8c022c67e25045372bc68b9e5018c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://904e4aa94b322f68c605dd34ea38bb77343437e2f2203c3e650cf7a7bb3aa19e\",\"dweb:/ipfs/QmX3H4PMwh57L5Zv3LFrHjkNmgVZiik4FmzSyJhnTJcqPD\"]},\"src/core/libraries/rollup/RewardLib.sol\":{\"keccak256\":\"0x12369f8300eaf1b004a87be6ef45061ec02be89257be343caa3a2f62db7e3290\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://678df0355f68957863798287ce5d890ed6530885d48423df2631407c17e031bb\",\"dweb:/ipfs/QmRp3iBcj1q5h66YZv7Tqix41LjBYqLVxow1XJkxut1cXW\"]},\"src/core/libraries/rollup/STFLib.sol\":{\"keccak256\":\"0xcb2ae0566bd5b0834f8ec2f73d78037f25d4d65894bff1ab8abcb9f8c65c7bc0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://35689b10ee3d4fff126625efa170fe77c617441fd7902d7376488af5061a79e0\",\"dweb:/ipfs/QmUzDZoMrpJAuhVYVGSruX4mj9jTJmSZncvoTHbsyZL7eM\"]},\"src/core/libraries/rollup/StakingLib.sol\":{\"keccak256\":\"0x6e3c96f937701c67570d902aca8d2f9a1ee35942e17b1e5a375b264582a6fe8c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ddb78c290af17a9574b89104177d2f1079c5abeb462446722b8fb09e03659ea6\",\"dweb:/ipfs/QmURXaGC2SRKZc36NQZ4SXqNtgY5MpYQRamS3Shn2GMAoe\"]},\"src/core/libraries/rollup/ValidatorSelectionLib.sol\":{\"keccak256\":\"0xb2ad709554bab7c16597e0f71fe49ab68b90787b5da741b4ee138c2bde2b851d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a850a4276fca72867a1713a328c0f774f70d3b43e379350db5c985ed1ba0f38b\",\"dweb:/ipfs/QmYL5PycXBD4gxWVH6Z2A2niwkwFpqNd9r3Yqmkd3Ru9PY\"]},\"src/core/reward-boost/RewardBooster.sol\":{\"keccak256\":\"0x1cffe0dcbc06775ad415b06cd3591f74331bad3b154a3305ea6c5a081915fce0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a2fcdbdcc260b3330bae0bc61227f652f9cb68e175fbc7d4173bf1d2dfaa92d1\",\"dweb:/ipfs/QmddUmciRbznTTfBpbZf2p3R9sC1oePRF9C3Swnq8qU3Xb\"]},\"src/core/slashing/Slasher.sol\":{\"keccak256\":\"0xc3040cd1813a6064a6afda9ca8b1f65f5cba2e7359050c48507d2f71d3606786\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://73f73fac9ffe650304c68a49635604806b86b0a5baadbf59ef36931e7937bc51\",\"dweb:/ipfs/QmaMMMXycUeybJyf2ZowJgQ1Wo4ZC7g5kyp1BHWfj8dkD9\"]},\"src/core/slashing/SlashingProposer.sol\":{\"keccak256\":\"0x83021af7c9ea602728d0ea0c3a01b222bdfee96af341537473d81f6e1e70d32c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://65b80e908621361c40178ea2255d096f2ca323201b117de24bf561b5e7ca698f\",\"dweb:/ipfs/QmdKMw2sLn16jGZs9RjQnmxwkdsUrRzjJ3PLdZMPv8JceW\"]},\"src/governance/Bn254LibWrapper.sol\":{\"keccak256\":\"0xea39571de45fe0fec82d9e760998677eb2432e08c6cdb00c41efa58caf56e607\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1e470b821f3d87fa0c988c5f23a8deed3849bffd2527b3b4ee137a90e0c1264c\",\"dweb:/ipfs/QmW3M4HyRLDruV5AYXCKicFCiiczmwnSTtnwVKUnQSm7a8\"]},\"src/governance/GSE.sol\":{\"keccak256\":\"0xc19fa4868d78030e2411dd5cef6d0da09645ade1d1ea0c4374b284a89feb722a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d06396c249566d0e9de5d34eade2bf27c4d583005c0129787bf6c413dcd9e273\",\"dweb:/ipfs/QmcimKKiV9KqobS5wzPsKYzyYu5WezCF3gyHkekf5tjrUU\"]},\"src/governance/GSEPayload.sol\":{\"keccak256\":\"0x40e5385b008f0335b50e066c647bb906685511c9fef206ce90a3391468558bae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a129e87e1d57cf0813b14108cbdbcdd4c114b20f3f2d67477302d6d050120c7e\",\"dweb:/ipfs/QmRcQQkeDhkrmQha3nkA8qvXnGmF6nLhZMKAhMx61A7a5y\"]},\"src/governance/Governance.sol\":{\"keccak256\":\"0x07770c3d80369adae51be8e361f63a2aa5ec489b354b10c8590be1e294dfe2e5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7219becf3467ea8368dba0bd093ba932b165cf3f214e7286f652e2730bf42eaf\",\"dweb:/ipfs/QmTSCDhSQBTKhzGUk12phxhqohSba6yopYMzF5T5XPFUWw\"]},\"src/governance/interfaces/IBn254LibWrapper.sol\":{\"keccak256\":\"0xdd0a3de8b8ff67cf2bf090d04b4a37aa6d604f402db3328387d2466d2354464a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://daef0234547509cd7ae3a7babf0e50a8d1ca2894f1817e3e2409a50fd32947b9\",\"dweb:/ipfs/QmbwSedqnBfsqRnUq8XcXzoeoyhZTXJWJ9rpJn61BAJfej\"]},\"src/governance/interfaces/IEmpire.sol\":{\"keccak256\":\"0xe6a8a8c3fef8e6f9f5118bd40c63e951b13a59d5f885bbb979d38745ef760ed3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://940c1fe4138d7364ccdb7d5635ea90bafa1da274f680039b0b54ee8c2a275a9a\",\"dweb:/ipfs/QmX2EeoVyES18BMgcbKVDb36MCq8ooDVR98m2RmnmZjEAo\"]},\"src/governance/interfaces/IGovernance.sol\":{\"keccak256\":\"0xe420d305fbe7c35f4620cd1e0f05f9f4c5a91532621d21a64ea553a3d9a3c005\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1900ac41f945aa692d5228f134ae63840081d284bf89fdd2a06b45424fe359ff\",\"dweb:/ipfs/QmePFZ1xv5qfftJVDLc98XUVFsrpuKAbKZiro7MoMDTpoa\"]},\"src/governance/interfaces/IGovernanceProposer.sol\":{\"keccak256\":\"0x2be820a5452c481ffd329d68c46d0af6a286934963f26b36d363cd34fb0e5817\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f58839d1504e11e7da42b7f5a03fb9b9d8cc39ab4c16cfb86fa44c4de08df76f\",\"dweb:/ipfs/QmR6jUJozP9tfpZuSduk66E8n7WuL3zzsR3WHZ7BR2ZBX2\"]},\"src/governance/interfaces/IPayload.sol\":{\"keccak256\":\"0x5844ea725ce56ac8adeb20b2d37aa431ca087f68a65a7ca91f981be7458737c3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5ea670db51b2ccfac05a684b95458ecc015c9d12a6567c3f73d473386533f58c\",\"dweb:/ipfs/QmRUB8mckkGQ4nNsErRhnKMsD9SSkokRSpnr5XZC9dZdin\"]},\"src/governance/interfaces/IProposerPayload.sol\":{\"keccak256\":\"0x89068dd464c0bfb7d447c0e99728277e03c7c4b864208ead20321f0590187248\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4d1d9ba5f8b7da374d773acde9514ca6607ad31a3e83950caa097bdb8b0f9167\",\"dweb:/ipfs/Qmd7tWAD2Ubz434zZPJvuyAGsHYpXBHvVhVefLFzUudD2o\"]},\"src/governance/interfaces/IRegistry.sol\":{\"keccak256\":\"0xc3678c04c0945d3dc1d8007df3dc7f8b25d8108b0b25134842ffc5169f996ce8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://71e4e401f1a6f561262755cc2e1c347cd3aa79e67d2e52ca547864f49de01724\",\"dweb:/ipfs/QmPvoKFEDTb41DSC3MmDMqtM3trj5oZb1Jj2jtQSnNfHBn\"]},\"src/governance/interfaces/IRewardDistributor.sol\":{\"keccak256\":\"0xf263f75be83d0b0e3c8f17ec7fc2558d3543df788dcb2db6f1ee158208134f14\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b2b65819a5f9ecd2237957e987bb69160d3076ccaf9f76f925a936e574d63d76\",\"dweb:/ipfs/QmNgWESeo6UUvgW7rCMP3d4o8mUqSSbKrwbicH4kaUrm7h\"]},\"src/governance/libraries/AddressSnapshotLib.sol\":{\"keccak256\":\"0x1006e58059e0a1f0fef102f2f11f5649dffc7f2eb066fce51845e65a064f4210\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://de385ab9eb3bb66d7be1218b49ae9bba7d88797bcb375b9a7481a209d303a402\",\"dweb:/ipfs/QmZe6DTv3cACfdXNSMhbMhoefg31LW3uLxHLDC7nZhb4Yp\"]},\"src/governance/libraries/CheckpointedUintLib.sol\":{\"keccak256\":\"0xcd73cf7a62e4ac5cc79f7f8df8b35d5c5e4df5b8a3478bcbc2b29c9aa89ea4b4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f56f37060d39d3c9276f23c96be7f6b1ea44676312dbaa1ab16ab3bff6acebf1\",\"dweb:/ipfs/QmPDUEEgdbpTTs9r3fvdMYJo9akCRsWcJXyarBhQgcKb5q\"]},\"src/governance/libraries/ConfigurationLib.sol\":{\"keccak256\":\"0x7cb65bdbd8d077f3cfc01b065fb3a57628db36cd46f68885c74b9131198c2149\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e37bde50f5f739f479feb95fbe81ed24ee47f841b99f066ecf6782e758d1978a\",\"dweb:/ipfs/QmebPE5REUpYRB8dikUebcGtyk9uy44G9mbchKJtHxJAgy\"]},\"src/governance/libraries/DepositDelegationLib.sol\":{\"keccak256\":\"0x37fbca65ccabec9d901bd71d684dceec7c59fa5a05438fd209ea0d5e16e764c0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e42f2622978abc3ac84223a6b206201898d0269d20bf81539636c0999a0db9eb\",\"dweb:/ipfs/QmW4BgTjR6BuPxwxreKarUeK1u8gx3p9yFdDD4EsC5hkyb\"]},\"src/governance/libraries/Errors.sol\":{\"keccak256\":\"0x8861ea7508138c83e89f186ce17accb42a6eee7d1d2e52841975d4ba676daae4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b0d5b01c2b0a20c3c70a7ab2b8405d083a063bf5758beb87a4d488bda76078fa\",\"dweb:/ipfs/QmfGH6CTCPA6nVA6KidcTSvaJ6MQZkv6KiuDVBTARGBTRv\"]},\"src/governance/libraries/ProposalLib.sol\":{\"keccak256\":\"0x616ffbb24c4454ca9e223e85ff01e8dca139723d5cd312d5d6f6111d79782a90\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://192f9be3355a7a94d19ae4e5b397e5db19dde64ccc671e149da06dfaa2577192\",\"dweb:/ipfs/QmTDcm7XEFLe7o5cXUmuu5wQDyprU78AVMymiWvrmP4tHT\"]},\"src/governance/libraries/compressed-data/Ballot.sol\":{\"keccak256\":\"0xca07dc8cf36ac2beae7674804af144b34b3c5848153351c17d996e9b3293cd5d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6911cc49f1d6977c12f652063c14891697c1ffe49fdf36903c32a8ad73cbd012\",\"dweb:/ipfs/QmQBEZARCAAj1ZLcswkH6FwP1RP8uuNjYTHqthmE9Z5RnM\"]},\"src/governance/libraries/compressed-data/Configuration.sol\":{\"keccak256\":\"0x40744f275af22d33c38fd9c6a7b822292c9c87b17ac2c78abbef4eb8356fd9f9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://73c685be7e934516207827a59cbbeb7fc1164e7659dd3ec857a91cfea765b482\",\"dweb:/ipfs/QmQfudRpSSQnG9u4XV8iA2UAyDzQPFqWzpZy5NZbaD6htv\"]},\"src/governance/libraries/compressed-data/Proposal.sol\":{\"keccak256\":\"0x72cf619a21c8e95875c63d4361cbe1a815d9d67f36f3fe32b6c9ca4d9ab0d33a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d80f47beb3f91da3cc68264c86fc8fb8f0e4abaf9d92243ab3206407fceed5c6\",\"dweb:/ipfs/QmYyrBTDMfkTBu6EcKcSMR7JyfphZ5xH1VCQ8EHMQUvsoN\"]},\"src/governance/proposer/EmpireBase.sol\":{\"keccak256\":\"0x747b20e201dab632a831c12f1fee9ee52cc80a2098c77e8b6c7b09b0f3ba2bc0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b7d4a0475ca364f75aa2a1d17ed9e6970f0be605126f2efe26d53c791d4a5209\",\"dweb:/ipfs/Qma5tkTcy94PqE9vtQybQSyH9LWaHR8V3ubwDPZwiUNT35\"]},\"src/governance/proposer/GovernanceProposer.sol\":{\"keccak256\":\"0xa2829df5b65856c9f1d6bf490fb50616f14402ff8eece2e32b63828b8b9337c3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://8ad52830a7a3aed3477bf55f92c3d68cb1c16a5cf1d636227ab76a306c846607\",\"dweb:/ipfs/QmRonyZQZj5D1e2g4Y6Tmj2AEUnekL4pGmgdMT4ycRAM8m\"]},\"src/mock/libraries/BlobLib.sol\":{\"keccak256\":\"0xa1b19239c5c64ba1b0c9f83ec0a30059f10ded12bf40d5d7c3f65974752b3121\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5cbce7d0dd0096232d60ec5c6920f211ffcaa46c8675b1129c1f939a1ee84837\",\"dweb:/ipfs/QmSS2qUhzUuZY1qHDjWUGvHuMqMG3cjHoHeDVvgWsjMdA9\"]},\"src/periphery/SlashPayloadCloneable.sol\":{\"keccak256\":\"0xf3957502df4ba01cd0c05d5cd49488dbe38f4e182718013b3fef075da95a9e3f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1bd7cdf387e137d007f53388748fd12cbfd016127f78455e617fb55bc4a66b21\",\"dweb:/ipfs/QmVLHJ7hyuuSSLRmv3meDcRKiT42Duq4sEweBTmWMfSfk8\"]},\"src/shared/libraries/BN254Lib.sol\":{\"keccak256\":\"0x0c3a5b7dabde2f5c81f19e1a4a212308a8636b5bb4a16bb1a518d58ef4feb6f5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://870be6219c7081ed081cee2fa9ad1e7f3efff623ae1a59aed966f2bdcee65b7a\",\"dweb:/ipfs/QmNzohb1TazCgaT1e55CMDuuG7AHdGrGA6jvT4wzxdAM52\"]},\"src/shared/libraries/CompressedTimeMath.sol\":{\"keccak256\":\"0x361023cf30593e7e27417c91af3702e75235fcab251e4ad5ac2e47306a730ec1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9b192242472b3126c97a4a4e4fa792809a6bf20b548a57e677f5260c0dbf3ad3\",\"dweb:/ipfs/QmfK4WAucepcqzMLu11rs68HJazwfegVsgK5tTco82SooB\"]},\"src/shared/libraries/SignatureLib.sol\":{\"keccak256\":\"0xb69989f57384383341d1bb4693fb1e6ce31a2ab6c0fadb48bf088078a332a56a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f199be27853a14d746c567c5e3a473f474e84cfd3d119a6404e6ceff4e986e5c\",\"dweb:/ipfs/QmWsLozeiKLQbTSEUDVZK2ASEX3EodKxT4DdA9BA6bD6N2\"]},\"src/shared/libraries/TimeMath.sol\":{\"keccak256\":\"0x8da20dc8b4ce296b7c11f117a3381bfe5cd611a3512a74a500e2e54e0353417f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://18c74be98a4e31e8a16356e573514f639a8fc43928e741f6ead81dd755e9a914\",\"dweb:/ipfs/QmPDEdYYEj3DhXjrCDPuudJbhsBaNj1sK6hH94Z86168Q3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_instance","type":"address"},{"internalType":"contract ISlasher","name":"_slasher","type":"address"},{"internalType":"uint256","name":"_quorum","type":"uint256"},{"internalType":"uint256","name":"_roundSize","type":"uint256"},{"internalType":"uint256","name":"_lifetimeInRounds","type":"uint256"},{"internalType":"uint256","name":"_executionDelayInRounds","type":"uint256"},{"internalType":"uint256[3]","name":"_slashAmounts","type":"uint256[3]"},{"internalType":"uint256","name":"_committeeSize","type":"uint256"},{"internalType":"uint256","name":"_epochDuration","type":"uint256"},{"internalType":"uint256","name":"_slashOffsetInRounds","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"CloneArgumentsTooLong"},{"inputs":[],"type":"error","name":"Create2EmptyBytecode"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[],"type":"error","name":"FailedDeployment"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InvalidShortString"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"type":"error","name":"SignatureLib__InvalidSignature"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"SlashPayload_ArraySizeMismatch"},{"inputs":[{"internalType":"uint256","name":"committeeSize","type":"uint256"}],"type":"error","name":"SlashingProposer__CommitteeSizeMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"SlashingProposer__InvalidCommitteeCommitment"},{"inputs":[{"internalType":"uint256","name":"epochIndex","type":"uint256"},{"internalType":"uint256","name":"roundSizeInEpochs","type":"uint256"}],"type":"error","name":"SlashingProposer__InvalidEpochIndex"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"SlashingProposer__InvalidNumberOfCommittees"},{"inputs":[{"internalType":"uint256","name":"quorum","type":"uint256"},{"internalType":"uint256","name":"roundSize","type":"uint256"}],"type":"error","name":"SlashingProposer__InvalidQuorumAndRoundSize"},{"inputs":[],"type":"error","name":"SlashingProposer__InvalidSignature"},{"inputs":[{"internalType":"uint256[3]","name":"slashAmounts","type":"uint256[3]"}],"type":"error","name":"SlashingProposer__InvalidSlashAmounts"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"SlashingProposer__InvalidVoteLength"},{"inputs":[{"internalType":"uint256","name":"lifetime","type":"uint256"},{"internalType":"uint256","name":"executionDelay","type":"uint256"}],"type":"error","name":"SlashingProposer__LifetimeMustBeGreaterThanExecutionDelay"},{"inputs":[{"internalType":"uint256","name":"lifetime","type":"uint256"},{"internalType":"uint256","name":"roundabout","type":"uint256"}],"type":"error","name":"SlashingProposer__LifetimeMustBeLessThanRoundabout"},{"inputs":[],"type":"error","name":"SlashingProposer__QuorumMustBeGreaterThanZero"},{"inputs":[{"internalType":"SlashRound","name":"round","type":"uint256"}],"type":"error","name":"SlashingProposer__RoundAlreadyExecuted"},{"inputs":[{"internalType":"SlashRound","name":"round","type":"uint256"}],"type":"error","name":"SlashingProposer__RoundNotComplete"},{"inputs":[{"internalType":"SlashRound","name":"round","type":"uint256"},{"internalType":"SlashRound","name":"currentRound","type":"uint256"}],"type":"error","name":"SlashingProposer__RoundOutOfRange"},{"inputs":[{"internalType":"uint256","name":"roundSizeInEpochs","type":"uint256"}],"type":"error","name":"SlashingProposer__RoundSizeInEpochsMustBeGreaterThanZero"},{"inputs":[{"internalType":"uint256","name":"roundSize","type":"uint256"},{"internalType":"uint256","name":"epochDuration","type":"uint256"}],"type":"error","name":"SlashingProposer__RoundSizeMustBeMultipleOfEpochDuration"},{"inputs":[{"internalType":"uint256","name":"roundSize","type":"uint256"},{"internalType":"uint256","name":"maxRoundSize","type":"uint256"}],"type":"error","name":"SlashingProposer__RoundSizeTooLarge"},{"inputs":[{"internalType":"string","name":"info","type":"string"}],"type":"error","name":"SlashingProposer__SlashAmountMustBeGtZero"},{"inputs":[],"type":"error","name":"SlashingProposer__SlashAmountTooLarge"},{"inputs":[{"internalType":"uint256","name":"slashOffset","type":"uint256"}],"type":"error","name":"SlashingProposer__SlashOffsetMustBeGreaterThanZero"},{"inputs":[{"internalType":"Slot","name":"slot","type":"uint256"}],"type":"error","name":"SlashingProposer__VoteAlreadyCastInCurrentSlot"},{"inputs":[{"internalType":"uint256","name":"voteSize","type":"uint256"},{"internalType":"uint256","name":"maxSize","type":"uint256"}],"type":"error","name":"SlashingProposer__VoteSizeTooBig"},{"inputs":[{"internalType":"uint256","name":"votes","type":"uint256"}],"type":"error","name":"SlashingProposer__VotesMustBeMultipleOf4"},{"inputs":[{"internalType":"SlashRound","name":"currentRound","type":"uint256"}],"type":"error","name":"SlashingProposer__VotingNotOpen"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"SlashRound","name":"round","type":"uint256","indexed":true},{"internalType":"uint256","name":"slashCount","type":"uint256","indexed":false}],"type":"event","name":"RoundExecuted","anonymous":false},{"inputs":[{"internalType":"SlashRound","name":"round","type":"uint256","indexed":true},{"internalType":"Slot","name":"slot","type":"uint256","indexed":true},{"internalType":"address","name":"proposer","type":"address","indexed":true},{"internalType":"uint256","name":"voteIndex","type":"uint256","indexed":false}],"type":"event","name":"VoteCast","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"COMMITTEE_SIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"EXECUTION_DELAY_IN_ROUNDS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"INSTANCE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LIFETIME_IN_ROUNDS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_ROUND_SIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"QUORUM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ROUNDABOUT_SIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ROUND_SIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ROUND_SIZE_IN_EPOCHS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER","outputs":[{"internalType":"contract ISlasher","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASH_AMOUNT_LARGE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASH_AMOUNT_MEDIUM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASH_AMOUNT_SMALL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASH_OFFSET_IN_ROUNDS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASH_PAYLOAD_IMPLEMENTATION","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VOTE_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"SlashRound","name":"_round","type":"uint256"},{"internalType":"address[][]","name":"_committees","type":"address[][]"}],"stateMutability":"nonpayable","type":"function","name":"executeRound"},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentRound","outputs":[{"internalType":"SlashRound","name":"","type":"uint256"}]},{"inputs":[{"internalType":"SlashRound","name":"_round","type":"uint256"},{"internalType":"struct SlashingProposer.SlashAction[]","name":"_actions","type":"tuple[]","components":[{"internalType":"address","name":"validator","type":"address"},{"internalType":"uint256","name":"slashAmount","type":"uint256"}]}],"stateMutability":"view","type":"function","name":"getPayloadAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"SlashRound","name":"_round","type":"uint256"}],"stateMutability":"view","type":"function","name":"getRound","outputs":[{"internalType":"bool","name":"isExecuted","type":"bool"},{"internalType":"uint256","name":"voteCount","type":"uint256"}]},{"inputs":[{"internalType":"SlashRound","name":"_round","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getSlashTargetCommittees","outputs":[{"internalType":"address[][]","name":"committees","type":"address[][]"}]},{"inputs":[{"internalType":"SlashRound","name":"_round","type":"uint256"},{"internalType":"uint256","name":"_epochIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"getSlashTargetEpoch","outputs":[{"internalType":"Epoch","name":"epochNumber","type":"uint256"}]},{"inputs":[{"internalType":"SlashRound","name":"_round","type":"uint256"},{"internalType":"address[][]","name":"_committees","type":"address[][]"}],"stateMutability":"view","type":"function","name":"getTally","outputs":[{"internalType":"struct SlashingProposer.SlashAction[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"validator","type":"address"},{"internalType":"uint256","name":"slashAmount","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes","name":"_votes","type":"bytes"},{"internalType":"Slot","name":"_slot","type":"uint256"}],"stateMutability":"view","type":"function","name":"getVoteSignatureDigest","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"SlashRound","name":"_round","type":"uint256"},{"internalType":"uint256","name":"_index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getVotes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"SlashRound","name":"_round","type":"uint256"},{"internalType":"Slot","name":"_slot","type":"uint256"}],"stateMutability":"view","type":"function","name":"isRoundReadyToExecute","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes","name":"_votes","type":"bytes"},{"internalType":"struct Signature","name":"_sig","type":"tuple","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"vote"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Sets up all the voting and slashing parameters and validates their correctness. The constructor enforces several important invariants to ensure the system operates correctly.","params":{"_committeeSize":"The number of validators in each committee (must be > 0)","_epochDuration":"The number of slots in each epoch (used to calculate ROUND_SIZE_IN_EPOCHS)","_executionDelayInRounds":"The number of rounds to wait after a round ends before it can be executed (provides time for review)","_instance":"The address of the rollup contract that this slashing proposer will interact with","_lifetimeInRounds":"The maximum age in rounds for which a round can still be executed (must be > _executionDelayInRounds and < ROUNDABOUT_SIZE)","_quorum":"The minimum number of votes required to slash a validator (must be > ROUND_SIZE/2 and <= ROUND_SIZE)","_roundSize":"The number of slots in each voting round (must be > 1 and < MAX_ROUND_SIZE)","_slashAmounts":"Array of 3 slash amounts [small, medium, large] for 1, 2, 3 unit votes (all must be > 0)","_slashOffsetInRounds":"How many rounds in the past to look when determining which validators to slash (must be > 0)","_slasher":"The slasher contract that will execute the actual slashing operations"}},"eip712Domain()":{"details":"See {IERC-5267}."},"executeRound(uint256,address[][])":{"details":"Can be called by anyone once a round has passed its execution delay but is still within its lifetime. The function tallies all votes cast during the round, identifies validators that reached the quorum threshold, and executes slashing by deploying a SlashPayload contract and calling the Slasher.","params":{"_committees":"Array of validator committees slashed for each epoch in the round being executed. Must contain exactly ROUND_SIZE_IN_EPOCHS committees. Only committees with slashed validators will have their commitments verified against onchain data. Emits: - RoundExecuted: When the round execution completes, regardless of whether any slashing occurred Reverts with: - SlashingProposer__RoundAlreadyExecuted: If the round has already been executed - SlashingProposer__RoundNotComplete: If the round is not yet ready for execution or has expired - SlashingProposer__InvalidCommitteeCommitment: If any committee commitment doesn't match onchain data - SlashingProposer__InvalidNumberOfCommittees: If the number of committees doesn't match ROUND_SIZE_IN_EPOCHS","_round":"The round number to execute (must be ready for execution based on timing constraints)"}},"getCurrentRound()":{"details":"Calculates the current round by dividing the current slot number by ROUND_SIZE. This determines which voting round is currently active.","returns":{"_0":"The current SlashRound number"}},"getPayloadAddress(uint256,(address,uint256)[])":{"details":"Uses CREATE2 to predict the deployment address based on the round number and slash actions. Returns zero address if no actions are provided. The address is deterministic and will be the same across multiple calls with identical parameters.","params":{"_actions":"Array of SlashAction structs containing validator addresses and slash amounts","_round":"The round number that will be mixed into the CREATE2 salt"},"returns":{"_0":"The predicted deployment address of the SlashPayload contract, or zero address if no actions"}},"getRound(uint256)":{"params":{"_round":"The round number to retrieve information for"},"returns":{"isExecuted":"True if the round has already been executed and slashing has occurred","voteCount":"The total number of votes that have been cast in this round by proposers"}},"getSlashTargetCommittees(uint256)":{"details":"This is an expensive call. It is not marked as view since `getEpochCommittee` may modify rollup state. If `getEpochCommittee` throws (eg committee not yet formed), an empty committee is returned for that epoch.","params":{"_round":"The round number to load committees for"},"returns":{"committees":"Array of committees, one for each epoch in the round (may contain empty arrays for early epochs)"}},"getSlashTargetEpoch(uint256,uint256)":{"details":"Calculates which epoch's validators are being voted on for slashing in a given round. The epoch is determined by looking back SLASH_OFFSET_IN_ROUNDS rounds from the voting round and then adding the epoch index within that round.","params":{"_epochIndex":"The index of the epoch within the round (must be 0 to ROUND_SIZE_IN_EPOCHS-1)","_round":"The round number during which voting is taking place"},"returns":{"epochNumber":"The epoch number whose validators will be considered for slashing Reverts with: - SlashingProposer__VotingNotOpen: If the round is less than SLASH_OFFSET_IN_ROUNDS"}},"getTally(uint256,address[][])":{"details":"This function is intended for offchain querying and analysis of voting results. It uses transient storage when calling getEpochCommittee on the rollup contract. Returns the same slash actions that would be executed if executeRound() were called for this round.","params":{"_committees":"The list of committees to consider for the tally (get them via `getSlashTargetCommittees`)","_round":"The round number to analyze and return tally results for"},"returns":{"_0":"actions Array of SlashAction structs containing validator addresses and slash amounts for all validators that reached the quorum threshold in this round"}},"getVoteSignatureDigest(bytes,uint256)":{"details":"Creates a typed data hash according to EIP-712 standard that includes both the vote data and the slot number. The slot number inclusion prevents votes from being replayed in different slots, ensuring each vote is tied to a specific time.","params":{"_slot":"The slot number when the vote is being cast (prevents replay attacks)","_votes":"The encoded vote data that will be signed by the proposer"},"returns":{"_0":"The EIP-712 compliant signature digest that should be signed by the proposer"}},"getVotes(uint256,uint256)":{"params":{"_index":"The index to retrieve votes for","_round":"The round number to retrieve votes for"},"returns":{"_0":"The votes retrieved"}},"isRoundReadyToExecute(uint256,uint256)":{"params":{"_round":"The round number to check","_slot":"The slot number at which to evaluate readiness (typically current or slot)"}},"vote(bytes,(uint8,bytes32,bytes32))":{"details":"Only the current checkpoint proposer can submit votes, enforced via EIP-712 signature verification. Each byte in the votes encodes slash amounts for 4 validators using 2 bits each (0-3 units each). The vote includes the current slot number to prevent replay attacks.","params":{"_sig":"EIP-712 signature from the current proposer proving authorization to vote. Signature covers the vote data and current slot number. Emits: - VoteCast: When the vote is successfully recorded, carrying the vote's index within the round Reverts with: - SlashingProposer__VotingNotOpen: If current round is less than SLASH_OFFSET_IN_ROUNDS - SlashingProposer__InvalidSignature: If signature verification fails - SlashingProposer__InvalidVoteLength: If vote data length is incorrect - SlashingProposer__VoteAlreadyCastInCurrentSlot: If proposer already voted in this slot","_votes":"Encoded voting data where each byte represents slash amounts for 4 validators. Bits 0-1 for first validator, bits 2-3 for second, bits 4-5 for third, bits 6-7 for fourth. Length must equal (COMMITTEE_SIZE * ROUND_SIZE_IN_EPOCHS) / 4 bytes."}}},"version":1},"userdoc":{"kind":"user","methods":{"COMMITTEE_SIZE()":{"notice":"Number of validators per committee"},"EXECUTION_DELAY_IN_ROUNDS()":{"notice":"Number of rounds to wait after a round ends before it can be executed"},"INSTANCE()":{"notice":"Address of the main rollup contract that this slashing proposer integrates with"},"LIFETIME_IN_ROUNDS()":{"notice":"Maximum age in rounds for which a round can still be executed"},"MAX_ROUND_SIZE()":{"notice":"Maximum number of votes that can be cast in a single round"},"QUORUM()":{"notice":"Minimum number of votes required to slash a validator"},"ROUNDABOUT_SIZE()":{"notice":"Size of the circular storage buffer for round data"},"ROUND_SIZE()":{"notice":"Number of slots per slashing round"},"ROUND_SIZE_IN_EPOCHS()":{"notice":"Number of epochs per slashing round"},"SLASHER()":{"notice":"The slasher contract that executes actual slashing operations"},"SLASH_AMOUNT_LARGE()":{"notice":"Large slash amount for 3 unit votes (in wei)"},"SLASH_AMOUNT_MEDIUM()":{"notice":"Medium slash amount for 2 unit votes (in wei)"},"SLASH_AMOUNT_SMALL()":{"notice":"Base amount of stake to slash per slashing unit (in wei)Small slash amount for 1 unit votes (in wei)"},"SLASH_OFFSET_IN_ROUNDS()":{"notice":"How many rounds in the past to look when determining which validators to slash"},"SLASH_PAYLOAD_IMPLEMENTATION()":{"notice":"The implementation contract for SlashPayload clones"},"VOTE_TYPEHASH()":{"notice":"EIP-712 type hash for the Vote struct used in signature verification"},"constructor":{"notice":"Initializes the SlashingProposer with configuration parameters"},"executeRound(uint256,address[][])":{"notice":"Execute the slashing round by tallying votes and executing slashes for validators that reached quorum"},"getCurrentRound()":{"notice":"Get the current round number based on the current slot from the rollup"},"getPayloadAddress(uint256,(address,uint256)[])":{"notice":"Get the deterministic address where a slash payload would be deployed for given actions"},"getRound(uint256)":{"notice":"Get information about a specific slashing round's status and voting data"},"getSlashTargetCommittees(uint256)":{"notice":"Load committees for all epochs to be potentially slashed in a round from the rollup instance"},"getSlashTargetEpoch(uint256,uint256)":{"notice":"Get the epoch number that will be slashed during a specific round at a given epoch index"},"getTally(uint256,address[][])":{"notice":"Get the tally results for a specific round, showing which validators would be slashed"},"getVoteSignatureDigest(bytes,uint256)":{"notice":"Generate the EIP-712 signature digest for a vote to prevent replay attacks"},"getVotes(uint256,uint256)":{"notice":"Get the votes for a specific `_round` at a specific `_index`"},"isRoundReadyToExecute(uint256,uint256)":{"notice":"Check if a specific slashing round is ready for execution"},"vote(bytes,(uint8,bytes32,bytes32))":{"notice":"Submit a vote for slashing validators from SLASH_OFFSET_IN_ROUNDS rounds ago"}},"version":1}},"settings":{"remappings":["@aztec-blob-lib/=src/mock/libraries/","@aztec/=src/","@generated/=generated/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@oz/=lib/openzeppelin-contracts/contracts/","@test/=test/","@zkpassport-test/=lib/circuits/src/solidity/test/","@zkpassport/=lib/circuits/src/solidity/src/","circuits/=lib/circuits/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/slashing/SlashingProposer.sol":"SlashingProposer"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0x1206c89e10de6977cbeda13f01c7956c1159cf9f8565aa56b8f05f7c838429bf","urls":["bzz-raw://1d3b3da61df7796a528ec9abfbb63288cf3ac63e3c736407ae4eed2bca018695","dweb:/ipfs/QmYgttRpNJeRgjzL2rwMEHjFuVXABxPGApe5bpmsHtdfjE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x4251fed1ac036ad28996501522371736318527d7bf2bf7d66fbd2769d6c4771b","urls":["bzz-raw://b2df261bd4de240f54c5829faeaf0ffc919a01f1497cf7ffd8a9a544bdec8fca","dweb:/ipfs/Qmb9ndUuv9RZPKJXZGzjVuhmNuoizxuGRn4QMBmdmLcxS3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Create2.sol":{"keccak256":"0xbb7e8401583d26268ea9103013bcdcd90866a7718bd91105ebd21c9bf11f4f06","urls":["bzz-raw://866a11ad89c93ee918078f7a46ae31e17d89216ce64603f0d34be7ed0a5c520e","dweb:/ipfs/QmW3ckLEJg2v2NzuVLNJFmRuerGSipw6Dzg6ntbmqbAGoC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549","urls":["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a","dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x8447b57b63810fe2e367c09496a966f143ec0e825d71ddb9fce2506cff84b618","urls":["bzz-raw://996cb48f793bf151555045b37138e36b3cdb31d6bc6552d3149285260be00cfb","dweb:/ipfs/QmcLaTTMNVbkMx58xhkp6GeFt4V3GtSyupZuaKG3vYW2Zc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x9e82c00fb176503860139c6bbf593b1a954ee7ff97ab2969656571382b9b58a2","urls":["bzz-raw://34b4eb157b44d4441315db65561ba7cf0fe909dc598c2cfd7080d203077d5b57","dweb:/ipfs/QmcNdvK3kDUAUr48urHxoeHd1TqVDya4YfZTM66i4goEJn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d","urls":["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c","dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x2c33f654cefbbe80a9b436b5792cfe8bda2e87f139f110073c99762558db252f","urls":["bzz-raw://dc7ebd80046a52f28978cf46a24ff3e4c8568264ab6bb138038951c75d576167","dweb:/ipfs/QmQQjXVr4CbDR3DXd8GHEqn3JSJYTnbBHMJp9tvc29yXrc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol":{"keccak256":"0x3616f1b0d0a9ee1ca8f0953ecaceb9230e36f691c7974d30f964212acff52d2b","urls":["bzz-raw://d4bebdd07b31ac28e3e596ac6f0333da90a4e332405aa7d65f3a3a7e0b4cf15e","dweb:/ipfs/QmckoDU5bBnye2UtPcrfJNahLD2FbxrnPP9nrREMWPpnug"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212","urls":["bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f","dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz"],"license":"MIT"},"src/core/interfaces/IEscapeHatch.sol":{"keccak256":"0x1a499acad8813b56e7d9cdcff3152e36196482794e62302e95a28603f5915747","urls":["bzz-raw://18da3711ad1fbc413336c252709e1ad32d51092336fbe6c2428b48768f58352c","dweb:/ipfs/QmdkMJiH1pdcuoLe5zPHeMtnFhZ1k7PLZJtoWQUcpcm4bJ"],"license":"Apache-2.0"},"src/core/interfaces/IFeeJuicePortal.sol":{"keccak256":"0xce84c8907395b4c11cc6dd8035d8e14560153450f9d88340cfb8abb914c66639","urls":["bzz-raw://f5eb389f1a6e9adbb2f24dad7a6c0bc706d49decad82ba9b582c288e12eddda6","dweb:/ipfs/QmNM3uQmJYn9B6RAHSMUT3TZMR6R75okjJErUEsuRjxGXt"],"license":"Apache-2.0"},"src/core/interfaces/IRollup.sol":{"keccak256":"0x8c843d930bb66928087a3ce19786d0a7b2d0d28d321ac41c10394088baab7f5c","urls":["bzz-raw://7df362b5237cfcfac09915ef4ae261d985ae26a91be847855ef277715f732748","dweb:/ipfs/QmeW86CE58Kntiuy8ZHdRFBGnw5yxFCmG4gdFVnYppTcr1"],"license":"Apache-2.0"},"src/core/interfaces/ISlasher.sol":{"keccak256":"0xf7dc3b2795b2806dbec7c94c33665abcf00a35ee65802a47f6222faf8641d302","urls":["bzz-raw://d7c9283746c66f04df5a133145b3196fc176e06e2fe6b3285056ffac68a09e9b","dweb:/ipfs/QmPxTkM1eMNFny3yibc69p1GqWvPkno5fzBjyju89h7CNk"],"license":"Apache-2.0"},"src/core/interfaces/IStaking.sol":{"keccak256":"0x81ddf8fa0cf8a213d690845fd4d3e31e45c543e5876612e94607cdb753804f1d","urls":["bzz-raw://7e0ae2a10903274cca7231306660dd6d5d1e5632238618b390aa7f4dfa5422f3","dweb:/ipfs/QmTMXRYdNGnmecbUdREFfgsLwnMsRjDseLVXsvPqQoiago"],"license":"Apache-2.0"},"src/core/interfaces/IValidatorSelection.sol":{"keccak256":"0x880355d12ccf03d98667fe24763c8145abbd8ca8ea9faf8a30a967311dcac7ed","urls":["bzz-raw://c98e9fd3b3abb044b084d559e9e50cab0d58e08ab880fcbf8f52d9d93cac8ffd","dweb:/ipfs/Qmd3nRejx4X57zgehytxvjdYrL5X61nM3bdfJKySAwDMoS"],"license":"Apache-2.0"},"src/core/interfaces/IVerifier.sol":{"keccak256":"0xf5b6025ff3d59b8922bb45fb05786764e74109b4a349d206b8a7979f46484c55","urls":["bzz-raw://98ec47ac3e15b1d8f2c80854ed6fd83e655e9e96341bb827f3be8e6b47f4c7fb","dweb:/ipfs/QmcmUkLgM7fb7mEaJTiWJWrZTW2kAWtRcYS6imBfmueALe"],"license":"Apache-2.0"},"src/core/interfaces/messagebridge/IInbox.sol":{"keccak256":"0x1149c904c8b3bd2942628fbab5480cdc044e831d51963f9e6946f1974cc162bd","urls":["bzz-raw://af2f1f49feba389b0bdbf427c4a85fac2908699585e5babd75f77cf14416ed5f","dweb:/ipfs/QmZYjZyhicCpTcwPuWTjTTUxnaBnfv5bTMWDgxyDGqy8Gm"],"license":"Apache-2.0"},"src/core/interfaces/messagebridge/IOutbox.sol":{"keccak256":"0xf66d0bb4f6d978acf91a036737cd4326bfab16a4030d10510d2976e4218ed8ad","urls":["bzz-raw://e796eea21d552b2ca4d0446bb096e2c980ab84816d9dd1398113293ae8128b30","dweb:/ipfs/QmNuGgRtPFgRe3asa68vDMcWpyfDFqQ5w5j5U7yWD1EsyZ"],"license":"Apache-2.0"},"src/core/libraries/ConstantsGen.sol":{"keccak256":"0xe328f94338f5563669e04618c3ec21ec38b9f21ab24d5de698d80cf38f977dfa","urls":["bzz-raw://3d9872c9a78d7241053e9ce3eadf192d18a9cb4b95c0ac120470d92435b7216e","dweb:/ipfs/QmcRnfbW8sNWwRHPik4wvkA7CTY1BTjuf2ydu3jN5otQJT"],"license":"Apache-2.0"},"src/core/libraries/DataStructures.sol":{"keccak256":"0x5ea9d1097f0b53eafbd72332d4c5c517307e5a056266befe5b46f5f43ee3d83c","urls":["bzz-raw://1a742311dc3c5ead2d5361549f017d20f46c40a4e74e879823ac168cf5b572d4","dweb:/ipfs/QmTNDc1fiPti41QqJTJQoV9uduB6eXaQhbfq1hfVVjVNvS"],"license":"Apache-2.0"},"src/core/libraries/Errors.sol":{"keccak256":"0x5de665a9151b837e2e179ea55c9c54577981d385cffea2fe046d6f70624497b2","urls":["bzz-raw://53645107af6da2cf033f7e16a1a5f8922a63db2e332ba769a72128ee0a30ff3e","dweb:/ipfs/QmYyNYvZwtYNUiwW422pNfqERp8Tf76DQCnRFiiYZS85w8"],"license":"Apache-2.0"},"src/core/libraries/HatchMath.sol":{"keccak256":"0xca787b2889e281c8db132043312aa9513315669782981689824344c910833fe4","urls":["bzz-raw://77ec2f6b5919d53d3a7128f6006155f2566a84e7a56cd26e9d5e6d1514ccd7a2","dweb:/ipfs/Qmc3Z2quujEwxQU1JBfrxhkiULaczspBsTMjXibqXCjFyd"],"license":"Apache-2.0"},"src/core/libraries/SlashPayloadLib.sol":{"keccak256":"0xb9322072eea0036dec74a9222a92a7fcb2518db4491764125eedb63f90f9c830","urls":["bzz-raw://7b7ea317d170f1667e921f8957ea1de4452280f5274bfd9391b6efd6db2e64c8","dweb:/ipfs/QmQs5H78G9LxEzHmYNLDqipgVn1n8Txc94Whc4dLbB25u6"],"license":"Apache-2.0"},"src/core/libraries/SlashRoundLib.sol":{"keccak256":"0x6773eea1fa593e5c1e16fcd3a8341b537bf5ed7ee2f10472649dfd542e3ade8e","urls":["bzz-raw://756bdaa3facd4034149eeb3553ae99777b646c3e16abf8d41f9558e74249baa6","dweb:/ipfs/QmNpb62diGKNKf5pcynejjhNex9c6PTkZnVUeuLvJ2qCZ9"],"license":"Apache-2.0"},"src/core/libraries/StakingQueue.sol":{"keccak256":"0xbbeafda1659a92be14ec5b77838952a089f075cc1d0c5f348b6ff336ea6a1a98","urls":["bzz-raw://f3c8bdb1de77dab697ef4442f72fa4830c757059f8d948d2f3aeb7f6983aa64f","dweb:/ipfs/QmSDYdTnFo8nx34q3fdJCKpy8DCnKBQ4isxr49o4sY5T6T"],"license":"Apache-2.0"},"src/core/libraries/TimeLib.sol":{"keccak256":"0x865b760fe681ee74a93b49491d897a98091432ebc2923ff17717ddb6d26d31ab","urls":["bzz-raw://4ccdfb80464d8e58a95a68314fe2dd33f4a1634ab0695a9a4e9c180a50cc592b","dweb:/ipfs/QmNUUFN7RTjiicZCkci6eEnfromVTPS2MVE4CkbqoneV6P"],"license":"Apache-2.0"},"src/core/libraries/compressed-data/CheckpointLog.sol":{"keccak256":"0x613513b7eb7855ff619c9eb3f1589fcfb0d7675e15c5261034ac353a62c5cabf","urls":["bzz-raw://110e7cc1eae76116a6682a9044cf9031744a7a8c46164987e246923169618d5e","dweb:/ipfs/QmcuhMXiGWjAbYGYYXKrTCLNYguQZpgxpWVWteJezYKVzQ"],"license":"Apache-2.0"},"src/core/libraries/compressed-data/StakingQueueConfig.sol":{"keccak256":"0x32b00fd08e1754d9d9c9b377ae0a0ea887ace519db0ec6d252e1b2216891068e","urls":["bzz-raw://4ecea0a1ff8536819d37d3800b2915249b5c854d9dc611e91aae81df6acf7d76","dweb:/ipfs/Qmf3FgXCf1MP78p5B76kQnwx8yXFXncutVzQhV2fteBvVn"],"license":"Apache-2.0"},"src/core/libraries/compressed-data/Tips.sol":{"keccak256":"0xdf872f54470e59b86349871e2c12075e8daaad85894f90e64f92538daf5f4008","urls":["bzz-raw://493e4bc02c6e9acbb5bfaa68f19bf4defb409211b701784e43d2ca6cbc11ccd1","dweb:/ipfs/QmSUahndZ78LBx6WdozXWL6QkqxZXzrXpHna2kGwCqgy34"],"license":"Apache-2.0"},"src/core/libraries/compressed-data/fees/FeeConfig.sol":{"keccak256":"0xd5593d342fd9e75cf10d9c126d5aa46eab6707221111d81757e0f5c3473c23fd","urls":["bzz-raw://5cdfdfa94ea9d7b93cb80bdbd9e81c80fc7d71de890d88bb957960d0d5734298","dweb:/ipfs/QmQ2VjHtpja19AxDnGg2Q5hCck678PUrfLDuwUNvcyo4YS"],"license":"Apache-2.0"},"src/core/libraries/compressed-data/fees/FeeStructs.sol":{"keccak256":"0x23304769b5d5098b6d6b1092be483f34c0c901d7e14667404e8c5335dad8b501","urls":["bzz-raw://9ef5000b6a27a338f60dad80f73ea03d6560afc46c063d8d52932574d82cf157","dweb:/ipfs/QmSzdqmERrrCqdfqy4jXhdiyokyNRLvi4qLp85iw8rR9iJ"],"license":"Apache-2.0"},"src/core/libraries/crypto/Hash.sol":{"keccak256":"0x0e2bad615ee34b98ffdc7b81558e78ad3701cf8e02dc0fa4721555b4cdb861cb","urls":["bzz-raw://8f69943a9ad3fba8a12ae34b3d60815c4339ea66a5ec75beb781d22a872c2d4d","dweb:/ipfs/QmTfjRk9vBaxfziFgwYzWgTWFEvbB8EEudkcYupPw6qLXW"],"license":"Apache-2.0"},"src/core/libraries/crypto/SampleLib.sol":{"keccak256":"0x59e87e7d6a1e966c0f73bd919825ff7d81dc898625fe9fd20e6786e10b43783e","urls":["bzz-raw://a931d31192faf6d9d9c82fc7099a776b5886d90dd0a2a9ee8093cc680dfdef70","dweb:/ipfs/QmbQjTTf96tr2WSiuoWK8k984dGuXKooZWZ5o9EL7wEPhv"],"license":"Apache-2.0"},"src/core/libraries/rollup/AttestationLib.sol":{"keccak256":"0xf2111c30dc0d6c81d4f990990dfa37813932180e2b94739050356c5942f316e3","urls":["bzz-raw://fc4d8c42797fa58646094be9e108a60a278f2c2beea06bd7b06b00933b00c5b9","dweb:/ipfs/QmdNPs36gak9y4YoCQq2ttv1nj8ALyab6f9P7SoozECrfN"],"license":"Apache-2.0"},"src/core/libraries/rollup/BlobLib.sol":{"keccak256":"0x40be24c3f297efce26b76cf2f674454344a20ba8b8fde7cdfd4c7ecfe339a507","urls":["bzz-raw://6c37144509a9269c3fe0f0791649ef4f74e5db0b54d8b27c68a1558be2ccd350","dweb:/ipfs/QmT4Fc8um96XkUWd1kJrdnHKvwqKouJtJW8zUaig5nVFQx"],"license":"Apache-2.0"},"src/core/libraries/rollup/CoordinationSignatureLib.sol":{"keccak256":"0x939c2aa29f536822f1f35db30af3b783986612bb35a210c583247f764c39dfae","urls":["bzz-raw://6f5e71fe318f83063eda2027992740e7be7e0274887b4c11ab00ef3199398729","dweb:/ipfs/QmPGkRVfkoLj8bi95vyySrtFeTaUGf62qcWoBy1nZRjZQc"],"license":"Apache-2.0"},"src/core/libraries/rollup/FeeLib.sol":{"keccak256":"0x78cccc8618137ebda0ca1cb68071a6458eff5c1e4eecce22de77c7479cb2f917","urls":["bzz-raw://eb96d87ba3229de5d5a8e8cd9e1c29438789e578f915d787f2f7c0788f380679","dweb:/ipfs/Qma3VYid6EyGtNCLertDyViT1Z8Ma1vNnc7EAEmJfxf8t9"],"license":"Apache-2.0"},"src/core/libraries/rollup/FieldLib.sol":{"keccak256":"0xd09f77d3aa6d7efc844e99bd496a145171613825bc45d35e1518889098f91e95","urls":["bzz-raw://499d0aeb3c7b6801e49f7554110a194ebeca73bec4ddf4b00ea8dd64fcc4b2ac","dweb:/ipfs/QmQf7EeP4kwTGPR2xfDK2MpNAqqcAY4vWZ3faEKn6JEW8R"],"license":"Apache-2.0"},"src/core/libraries/rollup/ProposeLib.sol":{"keccak256":"0x90d4fff721a1bcdbb555aad73a040ac1f0c3a61e286b0f291f47248129d8a777","urls":["bzz-raw://988c7390ba413ae25939df5a9f8850649106627ddf453a60b472e31c32a97156","dweb:/ipfs/QmXNPKm6y3bgTmjfeTMrY4sfBUFT4fLxZsMBBSC13Nt6oy"],"license":"Apache-2.0"},"src/core/libraries/rollup/ProposedHeaderLib.sol":{"keccak256":"0x43a9fa530b7cb948c1d7c436bddafdd8ddd8c022c67e25045372bc68b9e5018c","urls":["bzz-raw://904e4aa94b322f68c605dd34ea38bb77343437e2f2203c3e650cf7a7bb3aa19e","dweb:/ipfs/QmX3H4PMwh57L5Zv3LFrHjkNmgVZiik4FmzSyJhnTJcqPD"],"license":"Apache-2.0"},"src/core/libraries/rollup/RewardLib.sol":{"keccak256":"0x12369f8300eaf1b004a87be6ef45061ec02be89257be343caa3a2f62db7e3290","urls":["bzz-raw://678df0355f68957863798287ce5d890ed6530885d48423df2631407c17e031bb","dweb:/ipfs/QmRp3iBcj1q5h66YZv7Tqix41LjBYqLVxow1XJkxut1cXW"],"license":"Apache-2.0"},"src/core/libraries/rollup/STFLib.sol":{"keccak256":"0xcb2ae0566bd5b0834f8ec2f73d78037f25d4d65894bff1ab8abcb9f8c65c7bc0","urls":["bzz-raw://35689b10ee3d4fff126625efa170fe77c617441fd7902d7376488af5061a79e0","dweb:/ipfs/QmUzDZoMrpJAuhVYVGSruX4mj9jTJmSZncvoTHbsyZL7eM"],"license":"Apache-2.0"},"src/core/libraries/rollup/StakingLib.sol":{"keccak256":"0x6e3c96f937701c67570d902aca8d2f9a1ee35942e17b1e5a375b264582a6fe8c","urls":["bzz-raw://ddb78c290af17a9574b89104177d2f1079c5abeb462446722b8fb09e03659ea6","dweb:/ipfs/QmURXaGC2SRKZc36NQZ4SXqNtgY5MpYQRamS3Shn2GMAoe"],"license":"Apache-2.0"},"src/core/libraries/rollup/ValidatorSelectionLib.sol":{"keccak256":"0xb2ad709554bab7c16597e0f71fe49ab68b90787b5da741b4ee138c2bde2b851d","urls":["bzz-raw://a850a4276fca72867a1713a328c0f774f70d3b43e379350db5c985ed1ba0f38b","dweb:/ipfs/QmYL5PycXBD4gxWVH6Z2A2niwkwFpqNd9r3Yqmkd3Ru9PY"],"license":"Apache-2.0"},"src/core/reward-boost/RewardBooster.sol":{"keccak256":"0x1cffe0dcbc06775ad415b06cd3591f74331bad3b154a3305ea6c5a081915fce0","urls":["bzz-raw://a2fcdbdcc260b3330bae0bc61227f652f9cb68e175fbc7d4173bf1d2dfaa92d1","dweb:/ipfs/QmddUmciRbznTTfBpbZf2p3R9sC1oePRF9C3Swnq8qU3Xb"],"license":"Apache-2.0"},"src/core/slashing/Slasher.sol":{"keccak256":"0xc3040cd1813a6064a6afda9ca8b1f65f5cba2e7359050c48507d2f71d3606786","urls":["bzz-raw://73f73fac9ffe650304c68a49635604806b86b0a5baadbf59ef36931e7937bc51","dweb:/ipfs/QmaMMMXycUeybJyf2ZowJgQ1Wo4ZC7g5kyp1BHWfj8dkD9"],"license":"Apache-2.0"},"src/core/slashing/SlashingProposer.sol":{"keccak256":"0x83021af7c9ea602728d0ea0c3a01b222bdfee96af341537473d81f6e1e70d32c","urls":["bzz-raw://65b80e908621361c40178ea2255d096f2ca323201b117de24bf561b5e7ca698f","dweb:/ipfs/QmdKMw2sLn16jGZs9RjQnmxwkdsUrRzjJ3PLdZMPv8JceW"],"license":"Apache-2.0"},"src/governance/Bn254LibWrapper.sol":{"keccak256":"0xea39571de45fe0fec82d9e760998677eb2432e08c6cdb00c41efa58caf56e607","urls":["bzz-raw://1e470b821f3d87fa0c988c5f23a8deed3849bffd2527b3b4ee137a90e0c1264c","dweb:/ipfs/QmW3M4HyRLDruV5AYXCKicFCiiczmwnSTtnwVKUnQSm7a8"],"license":"Apache-2.0"},"src/governance/GSE.sol":{"keccak256":"0xc19fa4868d78030e2411dd5cef6d0da09645ade1d1ea0c4374b284a89feb722a","urls":["bzz-raw://d06396c249566d0e9de5d34eade2bf27c4d583005c0129787bf6c413dcd9e273","dweb:/ipfs/QmcimKKiV9KqobS5wzPsKYzyYu5WezCF3gyHkekf5tjrUU"],"license":"Apache-2.0"},"src/governance/GSEPayload.sol":{"keccak256":"0x40e5385b008f0335b50e066c647bb906685511c9fef206ce90a3391468558bae","urls":["bzz-raw://a129e87e1d57cf0813b14108cbdbcdd4c114b20f3f2d67477302d6d050120c7e","dweb:/ipfs/QmRcQQkeDhkrmQha3nkA8qvXnGmF6nLhZMKAhMx61A7a5y"],"license":"Apache-2.0"},"src/governance/Governance.sol":{"keccak256":"0x07770c3d80369adae51be8e361f63a2aa5ec489b354b10c8590be1e294dfe2e5","urls":["bzz-raw://7219becf3467ea8368dba0bd093ba932b165cf3f214e7286f652e2730bf42eaf","dweb:/ipfs/QmTSCDhSQBTKhzGUk12phxhqohSba6yopYMzF5T5XPFUWw"],"license":"Apache-2.0"},"src/governance/interfaces/IBn254LibWrapper.sol":{"keccak256":"0xdd0a3de8b8ff67cf2bf090d04b4a37aa6d604f402db3328387d2466d2354464a","urls":["bzz-raw://daef0234547509cd7ae3a7babf0e50a8d1ca2894f1817e3e2409a50fd32947b9","dweb:/ipfs/QmbwSedqnBfsqRnUq8XcXzoeoyhZTXJWJ9rpJn61BAJfej"],"license":"Apache-2.0"},"src/governance/interfaces/IEmpire.sol":{"keccak256":"0xe6a8a8c3fef8e6f9f5118bd40c63e951b13a59d5f885bbb979d38745ef760ed3","urls":["bzz-raw://940c1fe4138d7364ccdb7d5635ea90bafa1da274f680039b0b54ee8c2a275a9a","dweb:/ipfs/QmX2EeoVyES18BMgcbKVDb36MCq8ooDVR98m2RmnmZjEAo"],"license":"Apache-2.0"},"src/governance/interfaces/IGovernance.sol":{"keccak256":"0xe420d305fbe7c35f4620cd1e0f05f9f4c5a91532621d21a64ea553a3d9a3c005","urls":["bzz-raw://1900ac41f945aa692d5228f134ae63840081d284bf89fdd2a06b45424fe359ff","dweb:/ipfs/QmePFZ1xv5qfftJVDLc98XUVFsrpuKAbKZiro7MoMDTpoa"],"license":"Apache-2.0"},"src/governance/interfaces/IGovernanceProposer.sol":{"keccak256":"0x2be820a5452c481ffd329d68c46d0af6a286934963f26b36d363cd34fb0e5817","urls":["bzz-raw://f58839d1504e11e7da42b7f5a03fb9b9d8cc39ab4c16cfb86fa44c4de08df76f","dweb:/ipfs/QmR6jUJozP9tfpZuSduk66E8n7WuL3zzsR3WHZ7BR2ZBX2"],"license":"Apache-2.0"},"src/governance/interfaces/IPayload.sol":{"keccak256":"0x5844ea725ce56ac8adeb20b2d37aa431ca087f68a65a7ca91f981be7458737c3","urls":["bzz-raw://5ea670db51b2ccfac05a684b95458ecc015c9d12a6567c3f73d473386533f58c","dweb:/ipfs/QmRUB8mckkGQ4nNsErRhnKMsD9SSkokRSpnr5XZC9dZdin"],"license":"Apache-2.0"},"src/governance/interfaces/IProposerPayload.sol":{"keccak256":"0x89068dd464c0bfb7d447c0e99728277e03c7c4b864208ead20321f0590187248","urls":["bzz-raw://4d1d9ba5f8b7da374d773acde9514ca6607ad31a3e83950caa097bdb8b0f9167","dweb:/ipfs/Qmd7tWAD2Ubz434zZPJvuyAGsHYpXBHvVhVefLFzUudD2o"],"license":"Apache-2.0"},"src/governance/interfaces/IRegistry.sol":{"keccak256":"0xc3678c04c0945d3dc1d8007df3dc7f8b25d8108b0b25134842ffc5169f996ce8","urls":["bzz-raw://71e4e401f1a6f561262755cc2e1c347cd3aa79e67d2e52ca547864f49de01724","dweb:/ipfs/QmPvoKFEDTb41DSC3MmDMqtM3trj5oZb1Jj2jtQSnNfHBn"],"license":"Apache-2.0"},"src/governance/interfaces/IRewardDistributor.sol":{"keccak256":"0xf263f75be83d0b0e3c8f17ec7fc2558d3543df788dcb2db6f1ee158208134f14","urls":["bzz-raw://b2b65819a5f9ecd2237957e987bb69160d3076ccaf9f76f925a936e574d63d76","dweb:/ipfs/QmNgWESeo6UUvgW7rCMP3d4o8mUqSSbKrwbicH4kaUrm7h"],"license":"Apache-2.0"},"src/governance/libraries/AddressSnapshotLib.sol":{"keccak256":"0x1006e58059e0a1f0fef102f2f11f5649dffc7f2eb066fce51845e65a064f4210","urls":["bzz-raw://de385ab9eb3bb66d7be1218b49ae9bba7d88797bcb375b9a7481a209d303a402","dweb:/ipfs/QmZe6DTv3cACfdXNSMhbMhoefg31LW3uLxHLDC7nZhb4Yp"],"license":"Apache-2.0"},"src/governance/libraries/CheckpointedUintLib.sol":{"keccak256":"0xcd73cf7a62e4ac5cc79f7f8df8b35d5c5e4df5b8a3478bcbc2b29c9aa89ea4b4","urls":["bzz-raw://f56f37060d39d3c9276f23c96be7f6b1ea44676312dbaa1ab16ab3bff6acebf1","dweb:/ipfs/QmPDUEEgdbpTTs9r3fvdMYJo9akCRsWcJXyarBhQgcKb5q"],"license":"Apache-2.0"},"src/governance/libraries/ConfigurationLib.sol":{"keccak256":"0x7cb65bdbd8d077f3cfc01b065fb3a57628db36cd46f68885c74b9131198c2149","urls":["bzz-raw://e37bde50f5f739f479feb95fbe81ed24ee47f841b99f066ecf6782e758d1978a","dweb:/ipfs/QmebPE5REUpYRB8dikUebcGtyk9uy44G9mbchKJtHxJAgy"],"license":"Apache-2.0"},"src/governance/libraries/DepositDelegationLib.sol":{"keccak256":"0x37fbca65ccabec9d901bd71d684dceec7c59fa5a05438fd209ea0d5e16e764c0","urls":["bzz-raw://e42f2622978abc3ac84223a6b206201898d0269d20bf81539636c0999a0db9eb","dweb:/ipfs/QmW4BgTjR6BuPxwxreKarUeK1u8gx3p9yFdDD4EsC5hkyb"],"license":"Apache-2.0"},"src/governance/libraries/Errors.sol":{"keccak256":"0x8861ea7508138c83e89f186ce17accb42a6eee7d1d2e52841975d4ba676daae4","urls":["bzz-raw://b0d5b01c2b0a20c3c70a7ab2b8405d083a063bf5758beb87a4d488bda76078fa","dweb:/ipfs/QmfGH6CTCPA6nVA6KidcTSvaJ6MQZkv6KiuDVBTARGBTRv"],"license":"Apache-2.0"},"src/governance/libraries/ProposalLib.sol":{"keccak256":"0x616ffbb24c4454ca9e223e85ff01e8dca139723d5cd312d5d6f6111d79782a90","urls":["bzz-raw://192f9be3355a7a94d19ae4e5b397e5db19dde64ccc671e149da06dfaa2577192","dweb:/ipfs/QmTDcm7XEFLe7o5cXUmuu5wQDyprU78AVMymiWvrmP4tHT"],"license":"Apache-2.0"},"src/governance/libraries/compressed-data/Ballot.sol":{"keccak256":"0xca07dc8cf36ac2beae7674804af144b34b3c5848153351c17d996e9b3293cd5d","urls":["bzz-raw://6911cc49f1d6977c12f652063c14891697c1ffe49fdf36903c32a8ad73cbd012","dweb:/ipfs/QmQBEZARCAAj1ZLcswkH6FwP1RP8uuNjYTHqthmE9Z5RnM"],"license":"Apache-2.0"},"src/governance/libraries/compressed-data/Configuration.sol":{"keccak256":"0x40744f275af22d33c38fd9c6a7b822292c9c87b17ac2c78abbef4eb8356fd9f9","urls":["bzz-raw://73c685be7e934516207827a59cbbeb7fc1164e7659dd3ec857a91cfea765b482","dweb:/ipfs/QmQfudRpSSQnG9u4XV8iA2UAyDzQPFqWzpZy5NZbaD6htv"],"license":"Apache-2.0"},"src/governance/libraries/compressed-data/Proposal.sol":{"keccak256":"0x72cf619a21c8e95875c63d4361cbe1a815d9d67f36f3fe32b6c9ca4d9ab0d33a","urls":["bzz-raw://d80f47beb3f91da3cc68264c86fc8fb8f0e4abaf9d92243ab3206407fceed5c6","dweb:/ipfs/QmYyrBTDMfkTBu6EcKcSMR7JyfphZ5xH1VCQ8EHMQUvsoN"],"license":"Apache-2.0"},"src/governance/proposer/EmpireBase.sol":{"keccak256":"0x747b20e201dab632a831c12f1fee9ee52cc80a2098c77e8b6c7b09b0f3ba2bc0","urls":["bzz-raw://b7d4a0475ca364f75aa2a1d17ed9e6970f0be605126f2efe26d53c791d4a5209","dweb:/ipfs/Qma5tkTcy94PqE9vtQybQSyH9LWaHR8V3ubwDPZwiUNT35"],"license":"Apache-2.0"},"src/governance/proposer/GovernanceProposer.sol":{"keccak256":"0xa2829df5b65856c9f1d6bf490fb50616f14402ff8eece2e32b63828b8b9337c3","urls":["bzz-raw://8ad52830a7a3aed3477bf55f92c3d68cb1c16a5cf1d636227ab76a306c846607","dweb:/ipfs/QmRonyZQZj5D1e2g4Y6Tmj2AEUnekL4pGmgdMT4ycRAM8m"],"license":"Apache-2.0"},"src/mock/libraries/BlobLib.sol":{"keccak256":"0xa1b19239c5c64ba1b0c9f83ec0a30059f10ded12bf40d5d7c3f65974752b3121","urls":["bzz-raw://5cbce7d0dd0096232d60ec5c6920f211ffcaa46c8675b1129c1f939a1ee84837","dweb:/ipfs/QmSS2qUhzUuZY1qHDjWUGvHuMqMG3cjHoHeDVvgWsjMdA9"],"license":"Apache-2.0"},"src/periphery/SlashPayloadCloneable.sol":{"keccak256":"0xf3957502df4ba01cd0c05d5cd49488dbe38f4e182718013b3fef075da95a9e3f","urls":["bzz-raw://1bd7cdf387e137d007f53388748fd12cbfd016127f78455e617fb55bc4a66b21","dweb:/ipfs/QmVLHJ7hyuuSSLRmv3meDcRKiT42Duq4sEweBTmWMfSfk8"],"license":"Apache-2.0"},"src/shared/libraries/BN254Lib.sol":{"keccak256":"0x0c3a5b7dabde2f5c81f19e1a4a212308a8636b5bb4a16bb1a518d58ef4feb6f5","urls":["bzz-raw://870be6219c7081ed081cee2fa9ad1e7f3efff623ae1a59aed966f2bdcee65b7a","dweb:/ipfs/QmNzohb1TazCgaT1e55CMDuuG7AHdGrGA6jvT4wzxdAM52"],"license":"Apache-2.0"},"src/shared/libraries/CompressedTimeMath.sol":{"keccak256":"0x361023cf30593e7e27417c91af3702e75235fcab251e4ad5ac2e47306a730ec1","urls":["bzz-raw://9b192242472b3126c97a4a4e4fa792809a6bf20b548a57e677f5260c0dbf3ad3","dweb:/ipfs/QmfK4WAucepcqzMLu11rs68HJazwfegVsgK5tTco82SooB"],"license":"Apache-2.0"},"src/shared/libraries/SignatureLib.sol":{"keccak256":"0xb69989f57384383341d1bb4693fb1e6ce31a2ab6c0fadb48bf088078a332a56a","urls":["bzz-raw://f199be27853a14d746c567c5e3a473f474e84cfd3d119a6404e6ceff4e986e5c","dweb:/ipfs/QmWsLozeiKLQbTSEUDVZK2ASEX3EodKxT4DdA9BA6bD6N2"],"license":"Apache-2.0"},"src/shared/libraries/TimeMath.sol":{"keccak256":"0x8da20dc8b4ce296b7c11f117a3381bfe5cd611a3512a74a500e2e54e0353417f","urls":["bzz-raw://18c74be98a4e31e8a16356e573514f639a8fc43928e741f6ead81dd755e9a914","dweb:/ipfs/QmPDEdYYEj3DhXjrCDPuudJbhsBaNj1sK6hH94Z86168Q3"],"license":"Apache-2.0"}},"version":1},"id":125}
1
+ {"abi":[{"type":"constructor","inputs":[{"name":"_instance","type":"address","internalType":"address"},{"name":"_slasher","type":"address","internalType":"contract ISlasher"},{"name":"_quorum","type":"uint256","internalType":"uint256"},{"name":"_roundSize","type":"uint256","internalType":"uint256"},{"name":"_lifetimeInRounds","type":"uint256","internalType":"uint256"},{"name":"_executionDelayInRounds","type":"uint256","internalType":"uint256"},{"name":"_slashAmounts","type":"uint256[3]","internalType":"uint256[3]"},{"name":"_committeeSize","type":"uint256","internalType":"uint256"},{"name":"_epochDuration","type":"uint256","internalType":"uint256"},{"name":"_slashOffsetInRounds","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"COMMITTEE_SIZE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"EXECUTION_DELAY_IN_ROUNDS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"INSTANCE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"LIFETIME_IN_ROUNDS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MAX_ROUND_SIZE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"QUORUM","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ROUNDABOUT_SIZE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ROUND_SIZE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ROUND_SIZE_IN_EPOCHS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"SLASHER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ISlasher"}],"stateMutability":"view"},{"type":"function","name":"SLASH_AMOUNT_LARGE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"SLASH_AMOUNT_MEDIUM","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"SLASH_AMOUNT_SMALL","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"SLASH_OFFSET_IN_ROUNDS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"SLASH_PAYLOAD_IMPLEMENTATION","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VOTE_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"executeRound","inputs":[{"name":"_round","type":"uint256","internalType":"SlashRound"},{"name":"_committees","type":"address[][]","internalType":"address[][]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCurrentRound","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"SlashRound"}],"stateMutability":"view"},{"type":"function","name":"getPayloadAddress","inputs":[{"name":"_round","type":"uint256","internalType":"SlashRound"},{"name":"_actions","type":"tuple[]","internalType":"struct SlashingProposer.SlashAction[]","components":[{"name":"validator","type":"address","internalType":"address"},{"name":"slashAmount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getRound","inputs":[{"name":"_round","type":"uint256","internalType":"SlashRound"}],"outputs":[{"name":"isExecuted","type":"bool","internalType":"bool"},{"name":"voteCount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSlashTargetCommittees","inputs":[{"name":"_round","type":"uint256","internalType":"SlashRound"}],"outputs":[{"name":"committees","type":"address[][]","internalType":"address[][]"}],"stateMutability":"nonpayable"},{"type":"function","name":"getSlashTargetEpoch","inputs":[{"name":"_round","type":"uint256","internalType":"SlashRound"},{"name":"_epochIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"epochNumber","type":"uint256","internalType":"Epoch"}],"stateMutability":"view"},{"type":"function","name":"getTally","inputs":[{"name":"_round","type":"uint256","internalType":"SlashRound"},{"name":"_committees","type":"address[][]","internalType":"address[][]"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct SlashingProposer.SlashAction[]","components":[{"name":"validator","type":"address","internalType":"address"},{"name":"slashAmount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getVoteSignatureDigest","inputs":[{"name":"_votes","type":"bytes","internalType":"bytes"},{"name":"_slot","type":"uint256","internalType":"Slot"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getVotes","inputs":[{"name":"_round","type":"uint256","internalType":"SlashRound"},{"name":"_index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"isRoundReadyToExecute","inputs":[{"name":"_round","type":"uint256","internalType":"SlashRound"},{"name":"_slot","type":"uint256","internalType":"Slot"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vote","inputs":[{"name":"_votes","type":"bytes","internalType":"bytes"},{"name":"_sig","type":"tuple","internalType":"struct Signature","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"RoundExecuted","inputs":[{"name":"round","type":"uint256","indexed":true,"internalType":"SlashRound"},{"name":"slashCount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"VoteCast","inputs":[{"name":"round","type":"uint256","indexed":true,"internalType":"SlashRound"},{"name":"slot","type":"uint256","indexed":true,"internalType":"Slot"},{"name":"proposer","type":"address","indexed":true,"internalType":"address"},{"name":"voteIndex","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"CloneArgumentsTooLong","inputs":[]},{"type":"error","name":"Create2EmptyBytecode","inputs":[]},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"FailedDeployment","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SignatureLib__InvalidSignature","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}]},{"type":"error","name":"SlashPayload_ArraySizeMismatch","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__CommitteeSizeMustBeGreaterThanZero","inputs":[{"name":"committeeSize","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__InvalidCommitteeCommitment","inputs":[]},{"type":"error","name":"SlashingProposer__InvalidEpochIndex","inputs":[{"name":"epochIndex","type":"uint256","internalType":"uint256"},{"name":"roundSizeInEpochs","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__InvalidNumberOfCommittees","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__InvalidQuorumAndRoundSize","inputs":[{"name":"quorum","type":"uint256","internalType":"uint256"},{"name":"roundSize","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__InvalidSignature","inputs":[]},{"type":"error","name":"SlashingProposer__InvalidSlashAmounts","inputs":[{"name":"slashAmounts","type":"uint256[3]","internalType":"uint256[3]"}]},{"type":"error","name":"SlashingProposer__InvalidVoteLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__LifetimeMustBeGreaterThanExecutionDelay","inputs":[{"name":"lifetime","type":"uint256","internalType":"uint256"},{"name":"executionDelay","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__LifetimeMustBeLessThanRoundabout","inputs":[{"name":"lifetime","type":"uint256","internalType":"uint256"},{"name":"roundabout","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__QuorumMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"SlashingProposer__RoundAlreadyExecuted","inputs":[{"name":"round","type":"uint256","internalType":"SlashRound"}]},{"type":"error","name":"SlashingProposer__RoundNotComplete","inputs":[{"name":"round","type":"uint256","internalType":"SlashRound"}]},{"type":"error","name":"SlashingProposer__RoundOutOfRange","inputs":[{"name":"round","type":"uint256","internalType":"SlashRound"},{"name":"currentRound","type":"uint256","internalType":"SlashRound"}]},{"type":"error","name":"SlashingProposer__RoundSizeInEpochsMustBeGreaterThanZero","inputs":[{"name":"roundSizeInEpochs","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__RoundSizeMustBeMultipleOfEpochDuration","inputs":[{"name":"roundSize","type":"uint256","internalType":"uint256"},{"name":"epochDuration","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__RoundSizeTooLarge","inputs":[{"name":"roundSize","type":"uint256","internalType":"uint256"},{"name":"maxRoundSize","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__SlashAmountMustBeGtZero","inputs":[{"name":"info","type":"string","internalType":"string"}]},{"type":"error","name":"SlashingProposer__SlashAmountTooLarge","inputs":[]},{"type":"error","name":"SlashingProposer__SlashOffsetMustBeGreaterThanZero","inputs":[{"name":"slashOffset","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__VoteAlreadyCastInCurrentSlot","inputs":[{"name":"slot","type":"uint256","internalType":"Slot"}]},{"type":"error","name":"SlashingProposer__VoteSizeTooBig","inputs":[{"name":"voteSize","type":"uint256","internalType":"uint256"},{"name":"maxSize","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__VotesMustBeMultipleOf4","inputs":[{"name":"votes","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashingProposer__VotingNotOpen","inputs":[{"name":"currentRound","type":"uint256","internalType":"SlashRound"}]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x610300604052348015610010575f5ffd5b5060405161422b38038061422b83398101604081905261002f9161064d565b604080518082018252601081526f29b630b9b434b733a83937b837b9b2b960811b602080830191909152825180840190935260018352603160f81b9083015290610079825f6105a6565b610120526100888160016105a6565b61014052815160208084019190912060e052815190820120610100524660a05261011460e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526001600160a01b038a81166101605289166101805283516101c05260208401516101e0526040840151610200526102208890526102408790526101608288610746565b610280526102608390526102a08690526102c08590526102e08190526040516001600160601b03193060601b169061019790610615565b8190604051809103905ff59050801580156101b4573d5f5f3e3d5ffd5b506001600160a01b03166101a0526102e051806101f057604051631281ef1360e21b81526004016101e791815260200190565b60405180910390fd5b506102405182610280516102049190610759565b14610240518390916102325760405163349ccded60e01b8152600481019290925260248201526044016101e7565b50505f610220511161025757604051636003d05b60e01b815260040160405180910390fd5b6102405161022051906001811161028a5760405163bb76322b60e01b8152600481019290925260248201526044016101e7565b505060026102405161029c9190610746565b6102205161024051909182116102ce5760405163bb76322b60e01b8152600481019290925260248201526044016101e7565b5050610240516102205190808211156103035760405163bb76322b60e01b8152600481019290925260248201526044016101e7565b5050602084015184518591101561032e576040516346bfe3d760e01b81526004016101e7919061077c565b50604084015160208501518591101561035b576040516346bfe3d760e01b81526004016101e7919061077c565b506102c0516102a0519080821161038e5760405163b122072b60e01b8152600481019290925260248201526044016101e7565b50506102a05160808082106103bf57604051630af11b0b60e01b8152600481019290925260248201526044016101e7565b505061028051806103e657604051631f96196f60e11b81526004016101e791815260200190565b5061024051610400808211156104185760405163e979a82960e01b8152600481019290925260248201526044016101e7565b5050610260518061043f576040516326df6e1f60e11b81526004016101e791815260200190565b505f600461028051610260516104559190610759565b61045f9190610746565b90508060808082111561048e57604051636a5170ed60e11b8152600481019290925260248201526044016101e7565b5050600461028051610260516104a49190610759565b6104ae91906107ac565b5f1461028051610260516104c29190610759565b906104e357604051631f1d959560e11b81526004016101e791815260200190565b505f6101c0511161051f57604051631c3167f360e21b81526020600482015260056024820152641cdb585b1b60da1b60448201526064016101e7565b5f6101e0511161055b57604051631c3167f360e21b81526020600482015260066024820152656d656469756d60d01b60448201526064016101e7565b5f610200511161059657604051631c3167f360e21b81526020600482015260056024820152646c6172676560d81b60448201526064016101e7565b5050505050505050505050610955565b5f6020835110156105c1576105ba836105d8565b90506105d2565b816105cc8482610843565b5060ff90505b92915050565b5f5f829050601f81511115610602578260405163305a27a960e01b81526004016101e791906108fd565b805161060d82610932565b179392505050565b61044680613de583390190565b6001600160a01b0381168114610636575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f5f5f5f5f5f5f6101808b8d031215610667575f5ffd5b8a5161067281610622565b60208c0151909a5061068381610622565b60408c015160608d015160808e015160a08f0151939c50919a5098509650945060df8b018c136106b1575f5ffd5b604051606081016001600160401b03811182821017156106d3576106d3610639565b604052806101208d018e8111156106e8575f5ffd5b60c08e015b818110156107055780518352602092830192016106ed565b50516101408e0151610160909e01519c9f9b9e50999c989b979a9699919891979196919550909350505050565b634e487b7160e01b5f52601260045260245ffd5b5f8261075457610754610732565b500490565b80820281158282048414176105d257634e487b7160e01b5f52601160045260245ffd5b6060810181835f5b60038110156107a3578151835260209283019290910190600101610784565b50505092915050565b5f826107ba576107ba610732565b500690565b600181811c908216806107d357607f821691505b6020821081036107f157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561083e57805f5260205f20601f840160051c8101602085101561081c5750805b601f840160051c820191505b8181101561083b575f8155600101610828565b50505b505050565b81516001600160401b0381111561085c5761085c610639565b6108708161086a84546107bf565b846107f7565b6020601f8211600181146108a2575f831561088b5750848201515b5f19600385901b1c1916600184901b17845561083b565b5f84815260208120601f198516915b828110156108d157878501518255602094850194600190920191016108b1565b50848210156108ee57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156107f1575f1960209190910360031b1b16919050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161329e610b475f395f818161033b01528181610519015281816105de01526109c301525f818161042c015261102901525f81816103b7015261105c01525f81816103de0152818161056c015281816105ba015281816108ae01528181610a6301528181610cee01528181610d7f01528181611090015281816111260152818161119601528181611a2f01528181611c3101528181611c970152611e7001525f8181610453015281816108cf01528181610a84015281816111b701528181611a5001528181611edf015261206201525f818161025801528181610c27015261162b01525f818161021c0152611f8201525f8181610188015261201101525f81816103750152611fe201525f81816104050152611fb301525f81816101c20152818161146a01526119c501525f818161027f015261078501525f818161048d01528181610b9e01528181610d5c015281816112a40152818161143c0152818161159e01528181611654015281816119980152611ceb01525f6114d501525f6114a401525f61245101525f61242901525f61238401525f6123ae01525f6123d8015261329e5ff3fe608060405234801561000f575f5ffd5b506004361061017f575f3560e01c80639e63f61e116100d5578063bf2ba55211610084578063bf2ba55214610427578063c5234a7e1461044e578063cf6731e314610475578063d15db8b414610488578063d6c4f440146104af578063f17a2a25146104cf578063f3f9c756146104f2575f5ffd5b80639e63f61e1461035d5780639f90f3d514610370578063a32bf59714610397578063a8a356951461039f578063a97f36a8146103b2578063b34adb6c146103d9578063b394f1dd14610400575f5ffd5b80635db93dfa116101315780635db93dfa1461027a57806384b0196e146102a157806386522973146102bc578063865ef513146102e35780638f1327c0146102ec57806391f366331461031657806395134b2b14610336575f5ffd5b80632028cc7b1461018357806320427492146101bd57806321017e1d146101fc5780632e69de56146102045780632e80d9b61461021757806337bab5d01461023e5780635413330714610253575b5f5ffd5b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6101e47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101b4565b6101aa608081565b6101aa610212366004612957565b610512565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b61025161024c366004612977565b610620565b005b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101e47f000000000000000000000000000000000000000000000000000000000000000081565b6102a9610838565b6040516101b49796959493929190612a1d565b6101aa7f18b6b90f234e6d028d4c9800043cedef34624eedddd14e60eba01934728014fe81565b6101aa61040081565b6102ff6102fa366004612ab3565b61087a565b6040805192151583526020830191909152016101b4565b610329610324366004612957565b6108a4565b6040516101b49190612aca565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b61025161036b366004612b20565b6109a6565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa610b9a565b6101e46103ad366004612c1e565b610c53565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa610483366004612ced565b610c6e565b6101e47f000000000000000000000000000000000000000000000000000000000000000081565b6104c26104bd366004612ab3565b610cea565b6040516101b49190612d34565b6104e26104dd366004612957565b610e7e565b60405190151581526020016101b4565b610505610500366004612977565b610e9d565b6040516101b49190612dc9565b5f61053d837f0000000000000000000000000000000000000000000000000000000000000000111590565b83906105685760405163012144e760e61b815260040161055f91815260200190565b60405180910390fd5b50817f00000000000000000000000000000000000000000000000000000000000000008082106105b457604051633d77873160e11b81526004810192909252602482015260440161055f565b508290507f00000000000000000000000000000000000000000000000000000000000000006106037f000000000000000000000000000000000000000000000000000000000000000086612e34565b61060d9190612e47565b6106179190612e5e565b90505b92915050565b5f610629610b9a565b90505f6106368583610ec5565b90508060600151158590610660576040516373e05c9160e01b815260040161055f91815260200190565b5061066b8583611023565b859061068d576040516353a6fd6760e01b815260040161055f91815260200190565b505f5f61069b83878761108b565b805191935091505f5b8181101561073a578281815181106106be576106be612e71565b602002602001015115610732575f6106f88989848181106106e1576106e1612e71565b90506020028101906106f39190612e85565b61125a565b90505f6107058b84610512565b90506107108161128c565b821461072f576040516309f366fb60e21b815260040160405180910390fd5b50505b6001016106a4565b505061075187846040015185602001516001611322565b8151156107f4575f6107638884611402565b60405163c96be4cb60e01b81526001600160a01b0380831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063c96be4cb906024016020604051808303815f875af11580156107cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f19190612ede565b50505b867ff5b0598f6b87cd92cc8a5cdc26c424169e1d2084571d5ebff9efc8e417eb87ea835160405161082791815260200190565b60405180910390a250505050505050565b5f6060805f5f5f606061084961149d565b6108516114ce565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f5f5f61088e84610889610b9a565b610ec5565b9050806060015181602001519250925050915091565b60605f60046108f37f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612e47565b6108fd9190612f0b565b90505f610908610b9a565b90505f6109158683610ec5565b90508060200151851061096f57826001600160401b0381111561093a5761093a612b79565b6040519080825280601f01601f191660200182016040528015610964576020820181803683370190505b50935050505061061a565b5f610979876114fb565b86610400811061098b5761098b612e71565b60040201905061099b8185611524565b979650505050505050565b5f6109af61159a565b90505f6109bb82611625565b90506109e7817f0000000000000000000000000000000000000000000000000000000000000000111590565b8190610a095760405163012144e760e61b815260040161055f91815260200190565b505f610a13611650565b90505f610a21878786610c6e565b9050610a3e8282610a3736899003890189612f1e565b91906116d6565b610a5b57604051634d8d01f560e11b815260040160405180910390fd5b5f6004610aa87f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612e47565b610ab29190612f0b565b90508087808214610adf576040516394be250760e01b81526004810192909252602482015260440161055f565b50505f610aec8586610ec5565b9050610afb8160400151871190565b8690610b1d5760405163b4b54a8760e01b815260040161055f91815260200190565b506020810151610b2f86828c8c61173f565b610b498688610b3f846001612e5e565b8560600151611322565b846001600160a01b031687877ff6ed5a0362706e33942c258dd867d1664e91a7653843a7c3459a857db97287ae84604051610b8691815260200190565b60405180910390a450505050505050505050565b5f5f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663d8e3784c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bfc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c209190612f84565b9050610c4c7f000000000000000000000000000000000000000000000000000000000000000082612f0b565b9250505090565b5f81515f03610c6357505f61061a565b5f61099b84846117e2565b5f610ce07f18b6b90f234e6d028d4c9800043cedef34624eedddd14e60eba01934728014fe8585604051610ca3929190612f9b565b60408051918290038220602083019390935281019190915260608101849052608001604051602081830303815290604052805190602001206119f9565b90505b9392505050565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160401b03811115610d2457610d24612b79565b604051908082528060200260200182016040528015610d5757816020015b6060815260200190600190039081610d425790505b5090507f00000000000000000000000000000000000000000000000000000000000000005f5b7f0000000000000000000000000000000000000000000000000000000000000000811015610e77575f610db08583610512565b6040516369457a6f60e01b8152600481018290529091506001600160a01b038416906369457a6f906024015f604051808303815f875af1925050508015610e1857506040513d5f823e601f3d908101601f19168201604052610e159190810190612faa565b60015b610e4e57604080515f8152602081019091528451859084908110610e3e57610e3e612e71565b6020026020010181905250610e6e565b80858481518110610e6157610e61612e71565b6020026020010181905250505b50600101610d7d565b5050919050565b5f5f610e8983611625565b9050610e958482611023565b949350505050565b60605f610eac85610889610b9a565b90505f610eba82868661108b565b509695505050505050565b610eee60405180608001604052805f81526020015f81526020015f81526020015f151581525090565b81831180610f06575081610f03608085612e5e565b11155b15610f2e5760405163118fd01760e31b8152600481018490526024810183905260440161055f565b5f6002610f3c608086613039565b60808110610f4c57610f4c612e71565b60408051608081018252919092015463ffffffff80821680845264010000000083049091166020840152600160401b820461ffff1693830193909352600160501b900460ff16151560608201529150610fa59085141590565b15610fd55760405180608001604052808581526020015f81526020015f81526020015f151581525091505061061a565b6040518060800160405280858152602001826040015161ffff16815260200161100b836020015163ffffffff1663ffffffff1690565b81526020018260600151151581525091505092915050565b5f61104e7f000000000000000000000000000000000000000000000000000000000000000084612e5e565b8211801561061757506110817f000000000000000000000000000000000000000000000000000000000000000084612e5e565b9091111592915050565b6060807f0000000000000000000000000000000000000000000000000000000000000000838082146110d95760405163e8fb90f560e01b81526004810192909252602482015260440161055f565b505060208501515f81900361119057604080515f8082526020820190925290611123565b604080518082019091525f80825260208201528152602001906001900390816110fd5790505b507f00000000000000000000000000000000000000000000000000000000000000006001600160401b0381111561115c5761115c612b79565b604051908082528060200260200182016040528015611185578160200160208202803683370190505b509250925050611252565b5f6111db7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612e47565b90505f816001600160401b038111156111f6576111f6612b79565b60405190808252806020026020018201604052801561121f578160200160208202803683370190505b50905061122d888285611a25565b5f61123a895f0151611c2d565b90506112498289898685611e0b565b95509550505050505b935093915050565b5f828260405160200161126e92919061304c565b60405160208183030381529060405280519060200120905092915050565b6040516374e0a89d60e01b8152600481018290525f907f00000000000000000000000000000000000000000000000000000000000000009082906001600160a01b038316906374e0a89d9060240160408051808303815f875af11580156112f5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113199190613098565b50949350505050565b604051806080016040528061133686612139565b63ffffffff16815260200161134a85612139565b63ffffffff16815260200161135e84612143565b61ffff168152821515602090910152600261137a608087613039565b6080811061138a5761138a612e71565b825191018054602084015160408501516060909501511515600160501b0260ff60501b1961ffff909616600160401b029590951662ffffff60401b1963ffffffff9283166401000000000267ffffffffffffffff19909416929095169190911791909117929092169190911791909117905550505050565b5f5f5f5f5f61141187876117e2565b93509350935093505f816001600160a01b03163b111561143657935061061a92505050565b5f6114627f00000000000000000000000000000000000000000000000000000000000000008686612175565b90505f6114907f0000000000000000000000000000000000000000000000000000000000000000838661226c565b9998505050505050505050565b60606114c97f00000000000000000000000000000000000000000000000000000000000000005f612279565b905090565b60606114c97f00000000000000000000000000000000000000000000000000000000000000006001612279565b5f6082611509608084613039565b6080811061151957611519612e71565b611000020192915050565b60408051608080825260a0820190925260609160208201818036833701905050905060208101821561155557835481525b602083111561156957600184015460208201525b604083111561157d57600284015460408201525b606083111561159157600384015460608201525b50908152919050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000009050806001600160a01b031663d8e3784c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161f9190612f84565b91505090565b5f61061a7f000000000000000000000000000000000000000000000000000000000000000083612f0b565b5f5f7f00000000000000000000000000000000000000000000000000000000000000009050806001600160a01b0316633b10244b6040518163ffffffff1660e01b81526004016020604051808303815f875af11580156116b2573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161f91906130ba565b5f5f6116ef83865f015187602001518860400151612322565b905083816001600160a01b038281169082161461173257604051633672eb9b60e21b81526001600160a01b0392831660048201529116602482015260440161055f565b5060019695505050505050565b5f611749856114fb565b84610400811061175b5761175b612e71565b600402019050818060808082111561178f57604051636a5170ed60e11b81526004810192909252602482015260440161055f565b505083811561179d57803583555b60208211156117b157602081013560018401555b60408211156117c557604081013560028401555b60608211156117d957606081013560038401555b50505050505050565b6060805f5f5f85519050806001600160401b0381111561180457611804612b79565b60405190808252806020026020018201604052801561182d578160200160208202803683370190505b509450806001600160401b0381111561184857611848612b79565b604051908082528060200260200182016040528015611871578160200160208202803683370190505b5093505f5b818110156119645786818151811061189057611890612e71565b60200260200101515f01518682815181106118ad576118ad612e71565b60200260200101906001600160a01b031690816001600160a01b0316815250506001600160601b0380168782815181106118e9576118e9612e71565b6020026020010151602001511115611914576040516308ea253560e31b815260040160405180910390fd5b86818151811061192657611926612e71565b60200260200101516020015185828151811061194457611944612e71565b6001600160601b0390921660209283029190910190910152600101611876565b5086858560405160200161197a939291906130d5565b6040516020818303038152906040528051906020012092505f6119be7f00000000000000000000000000000000000000000000000000000000000000008787612175565b90506119ec7f000000000000000000000000000000000000000000000000000000000000000082863061234e565b9250505092959194509250565b5f61061a611a05612378565b8360405161190160f01b8152600281019290925260228201526042902090565b82515f6004611a747f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612e47565b611a7e9190612f0b565b90505f611a8a836114fb565b90505f5b848110156117d9575f611ab783836104008110611aad57611aad612e71565b6004020185611524565b90505f5b8481601f011015611ad957611ad18883836124a1565b602001611abb565b84811015611c235781810160200151600282901b905f90811a90819003611b01575050611c1b565b600381168015611b40578a51600160c05f19840160061b161b908c9085908110611b2d57611b2d612e71565b6020026020010181815101915081815250505b6003600283901c168015611b885760066001820360ff16901b60ff166001901b8c8560010181518110611b7557611b75612e71565b6020026020010181815101915081815250505b6003600484901c168015611bce578c51600160c05f19840160061b161b908e9060028801908110611bbb57611bbb612e71565b6020026020010181815101915081815250505b6003600685901c168015611c14578d51600160c05f19840160061b161b908f9060038901908110611c0157611c01612e71565b6020026020010181815101915081815250505b5050505050505b600101611ad9565b5050600101611a8e565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160401b03811115611c6757611c67612b79565b604051908082528060200260200182016040528015611c90578160200160208202803683370190505b5090505f5b7f0000000000000000000000000000000000000000000000000000000000000000811015611e05575f611cc88483610512565b6040516315d3bc7b60e01b8152600481018290529091505f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906315d3bc7b90602401602060405180830381865afa158015611d30573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d5491906130ba565b90506001600160a01b038116611d6b575050611dfd565b604051631d18577f60e11b8152600481018390525f906001600160a01b03831690633a30aefe906024016040805180830381865afa158015611daf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dd3919061314d565b50905080858581518110611de957611de9612e71565b911515602092830291909101909101525050505b600101611c95565b50919050565b606080836001600160401b03811115611e2657611e26612b79565b604051908082528060200260200182016040528015611e6a57816020015b604080518082019091525f8082526020820152815260200190600190039081611e445790505b5091505f7f00000000000000000000000000000000000000000000000000000000000000006001600160401b03811115611ea657611ea6612b79565b604051908082528060200260200182016040528015611ecf578160200160208202803683370190505b5091505f5b8581101561212c575f7f00000000000000000000000000000000000000000000000000000000000000008281611f0c57611f0c612ef7565b049050858181518110611f2157611f21612e71565b602002602001015115611f345750612124565b5f8a8381518110611f4757611f47612e71565b60200260200101519050805f03611f5f575050612124565b5f60035b801561211f576001600160401b035f19820160061b84901c16918201917f00000000000000000000000000000000000000000000000000000000000000008310612116575f82600103611fd757507f0000000000000000000000000000000000000000000000000000000000000000612031565b8260020361200657507f0000000000000000000000000000000000000000000000000000000000000000612031565b8260030361203157507f00000000000000000000000000000000000000000000000000000000000000005b60405180604001604052808f8f8981811061204e5761204e612e71565b90506020028101906120609190612e85565b7f00000000000000000000000000000000000000000000000000000000000000008b8161208f5761208f612ef7565b0681811061209f5761209f612e71565b90506020020160208101906120b49190613182565b6001600160a01b03168152602001828152508a89815181106120d8576120d8612e71565b602002602001018190525087600101975060018987815181106120fd576120fd612e71565b602002602001019015159081151581525050505061211f565b505f1901611f63565b505050505b600101611ed4565b5082529550959350505050565b5f61061a8261260c565b5f61ffff821115612171576040516306dfcc6560e41b8152601060048201526024810183905260440161055f565b5090565b805182516060918181146121a557604051632cd378e160e21b81526004810192909252602482015260440161055f565b50505f835160206121b69190612e47565b6121c1906034612e5e565b90505f816001600160401b038111156121dc576121dc612b79565b6040519080825280601f01601f191660200182016040528015612206576020820181803683370190505b509050602081018660601b815260148101905085518152602081019050855160208701602087015f5b8381101561225d5760208181028481015160601b875283015160a01b6014870152949094019360010161222f565b50939998505050505050505050565b5f610ce08484845f61263c565b606060ff83146122935761228c83612655565b905061061a565b81805461229f9061319d565b80601f01602080910402602001604051908101604052809291908181526020018280546122cb9061319d565b80156123165780601f106122ed57610100808354040283529160200191612316565b820191905f5260205f20905b8154815290600101906020018083116122f957829003601f168201915b5050505050905061061a565b5f5f5f5f61233288888888612692565b9250925092506123428282612750565b50909695505050505050565b5f5f61235a868661280c565b905061236e8482805190602001208561286a565b9695505050505050565b5f306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156123d057507f000000000000000000000000000000000000000000000000000000000000000046145b156123fa57507f000000000000000000000000000000000000000000000000000000000000000090565b6114c9604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b818101602001515f8190036124b65750505050565b600282901b5f5b602081101561260457821561260457600883901b9260f81c80156125fb57600282901b8301600382168015612521578851600160c05f19840160061b161b908a908490811061250e5761250e612e71565b6020026020010181815101915081815250505b6003600284901c1680156125695760066001820360ff16901b60ff166001901b8a846001018151811061255657612556612e71565b6020026020010181815101915081815250505b6003600485901c1680156125af578a51600160c05f19840160061b161b908c906002870190811061259c5761259c612e71565b6020026020010181815101915081815250505b6003600686901c1680156125f5578b51600160c05f19840160061b161b908d90600388019081106125e2576125e2612e71565b6020026020010181815101915081815250505b50505050505b506001016124bd565b505050505050565b5f63ffffffff821115612171576040516306dfcc6560e41b8152602060048201526024810183905260440161055f565b5f5f612648868661280c565b905061236e83858361289c565b60605f61266183612930565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f80806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411156126c157505f91506003905082612746565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612712573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b03811661273d57505f925060019150829050612746565b92505f91508190505b9450945094915050565b5f826003811115612763576127636131cf565b0361276c575050565b6001826003811115612780576127806131cf565b0361279e5760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156127b2576127b26131cf565b036127d35760405163fce698f760e01b81526004810182905260240161055f565b60038260038111156127e7576127e76131cf565b03612808576040516335e2f38360e21b81526004810182905260240161055f565b5050565b6060615fd3825111156128325760405163250a241560e21b815260040160405180910390fd5b815161283f90602d612e5e565b8383604051602001612853939291906131e3565b604051602081830303815290604052905092915050565b5f604051836040820152846020820152828152600b8101905060ff8153605590206001600160a01b0316949350505050565b5f834710156128c75760405163cf47918160e01b81524760048201526024810185905260440161055f565b81515f036128e857604051631328927760e21b815260040160405180910390fd5b8282516020840186f590503d151981151615612909576040513d5f823e3d81fd5b6001600160a01b038116610ce35760405163b06ebf3d60e01b815260040160405180910390fd5b5f60ff8216601f81111561061a57604051632cd44ac360e21b815260040160405180910390fd5b5f5f60408385031215612968575f5ffd5b50508035926020909101359150565b5f5f5f60408486031215612989575f5ffd5b8335925060208401356001600160401b038111156129a5575f5ffd5b8401601f810186136129b5575f5ffd5b80356001600160401b038111156129ca575f5ffd5b8660208260051b84010111156129de575f5ffd5b939660209190910195509293505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b60ff60f81b8816815260e060208201525f612a3b60e08301896129ef565b8281036040840152612a4d81896129ef565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015612aa2578351835260209384019390920191600101612a84565b50909b9a5050505050505050505050565b5f60208284031215612ac3575f5ffd5b5035919050565b602081525f61061760208301846129ef565b5f5f83601f840112612aec575f5ffd5b5081356001600160401b03811115612b02575f5ffd5b602083019150836020828501011115612b19575f5ffd5b9250929050565b5f5f5f8385036080811215612b33575f5ffd5b84356001600160401b03811115612b48575f5ffd5b612b5487828801612adc565b9095509350506060601f1982011215612b6b575f5ffd5b506020840190509250925092565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715612baf57612baf612b79565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612bdd57612bdd612b79565b604052919050565b5f6001600160401b03821115612bfd57612bfd612b79565b5060051b60200190565b6001600160a01b0381168114612c1b575f5ffd5b50565b5f5f60408385031215612c2f575f5ffd5b8235915060208301356001600160401b03811115612c4b575f5ffd5b8301601f81018513612c5b575f5ffd5b8035612c6e612c6982612be5565b612bb5565b8082825260208201915060208360061b850101925087831115612c8f575f5ffd5b6020840193505b82841015612cdf5760408489031215612cad575f5ffd5b612cb5612b8d565b8435612cc081612c07565b8152602085810135818301529083526040909401939190910190612c96565b809450505050509250929050565b5f5f5f60408486031215612cff575f5ffd5b83356001600160401b03811115612d14575f5ffd5b612d2086828701612adc565b909790965060209590950135949350505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612dbd57868503603f19018452815180518087526020918201918701905f5b81811015612da45783516001600160a01b0316835260209384019390920191600101612d7d565b5090965050506020938401939190910190600101612d5a565b50929695505050505050565b602080825282518282018190525f918401906040840190835b81811015612e1557835180516001600160a01b031684526020908101518185015290930192604090920191600101612de2565b509095945050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561061a5761061a612e20565b808202811582820484141761061a5761061a612e20565b8082018082111561061a5761061a612e20565b634e487b7160e01b5f52603260045260245ffd5b5f5f8335601e19843603018112612e9a575f5ffd5b8301803591506001600160401b03821115612eb3575f5ffd5b6020019150600581901b3603821315612b19575f5ffd5b80518015158114612ed9575f5ffd5b919050565b5f60208284031215612eee575f5ffd5b61061782612eca565b634e487b7160e01b5f52601260045260245ffd5b5f82612f1957612f19612ef7565b500490565b5f6060828403128015612f2f575f5ffd5b50604051606081016001600160401b0381118282101715612f5257612f52612b79565b604052823560ff81168114612f65575f5ffd5b8152602083810135908201526040928301359281019290925250919050565b5f60208284031215612f94575f5ffd5b5051919050565b818382375f9101908152919050565b5f60208284031215612fba575f5ffd5b81516001600160401b03811115612fcf575f5ffd5b8201601f81018413612fdf575f5ffd5b8051612fed612c6982612be5565b8082825260208201915060208360051b85010192508683111561300e575f5ffd5b6020840193505b8284101561236e57835161302881612c07565b825260209384019390910190613015565b5f8261304757613047612ef7565b500690565b602080825281018290525f8360408301825b8581101561308e57823561307181612c07565b6001600160a01b031682526020928301929091019060010161305e565b5095945050505050565b5f5f604083850312156130a9575f5ffd5b505080516020909101519092909150565b5f602082840312156130ca575f5ffd5b8151610ce381612c07565b8381525f602082018451602086015f5b8281101561310c5781516001600160a01b03168452602093840193909101906001016130e5565b50508451602086019291505f5b818110156131405783516001600160601b0316835260209384019390920191600101613119565b5090979650505050505050565b5f5f6040838503121561315e575f5ffd5b61316783612eca565b9150602083015161317781612c07565b809150509250929050565b5f60208284031215613192575f5ffd5b8135610ce381612c07565b600181811c908216806131b157607f821691505b602082108103611e0557634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b606160f81b815260f084901b6001600160f01b0319166001820152703d81600a3d39f3363d3d373d3d3d363d7360781b6003820152606083901b6bffffffffffffffffffffffff191660148201526e5af43d82803e903d91602b57fd5bf360881b602882015281515f908060208501603785015e5f920160370191825250939250505056fea2646970667358221220f725dd6352446c81b2b5ba3fb21f2a8d84e9d8f952a557ac0b1f5c22caf58e0864736f6c634300081e00336080604052348015600e575f5ffd5b5061042a8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c8063504d080b146100385780637754305c14610056575b5f5ffd5b610040610084565b60405161004d919061030b565b60405180910390f35b604080518082018252600c81526b14db185cda14185e5b1bd85960a21b6020820152905161004d919061038e565b60605f5f5f6100916101e8565b925092509250815167ffffffffffffffff8111156100b1576100b16103a7565b6040519080825280602002602001820160405280156100f657816020015b604080518082019091525f8152606060208201528152602001906001900390816100cf5790505b5093505f5b82518110156101e1576040518060400160405280856001600160a01b031681526020016302fb4d8560e01b858481518110610138576101386103bb565b6020026020010151858581518110610152576101526103bb565b60209081029190910101516040516001600160a01b0390921660248301526bffffffffffffffffffffffff16604482015260640160408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905285518690839081106101ce576101ce6103bb565b60209081029190910101526001016100fb565b5050505090565b5f6060805f6101f630610270565b9050602081015160601c93506034810151604051935080845260208401602082028101935081845260208401602083028101604052605484015f5b8481101561026557815160601c602082810286810192909252601484015160a01c9185019190915290910190600101610231565b505050505050909192565b60605f610288602d6001600160a01b0385163b6103cf565b67ffffffffffffffff8111156102a0576102a06103a7565b6040519080825280601f01601f1916602001820160405280156102ca576020820181803683370190505b5090508051602d60208301853c92915050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561038257868503603f19018452815180516001600160a01b0316865260209081015160409187018290529061036c908701826102dd565b9550506020938401939190910190600101610331565b50929695505050505050565b602081525f6103a060208301846102dd565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b818103818111156103ee57634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220dbed73b6b7010548f7a1051b19b74fc01695d7e1da24921a844c6b4fc1d51e4f64736f6c634300081e0033","sourceMap":"5491:50752:127:-:0;;;14702:3831;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3328:431:58;;;;;;;;;;;-1:-1:-1;;;3328:431:58;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3328:431:58;;;;;3401:45;3328:431;-1:-1:-1;3401:30:58;:45::i;:::-;3393:53;;3467:51;:7;3501:16;3467:33;:51::i;:::-;3456:62;;3542:22;;;;;;;;;;3528:36;;3591:25;;;;;;3574:42;;3644:13;3627:30;;3692:23;4226:11;;4239:14;;4204:80;;;2079:95;4204:80;;;7888:25:184;7929:18;;;7922:34;;;;7972:18;;;7965:34;4255:13:58;8015:18:184;;;8008:34;4278:4:58;8058:19:184;;;8051:61;4168:7:58;;7860:19:184;;4204:80:58;;;;;;;;;;;;4194:91;;;;;;4187:98;;4113:179;;3692:23;3667:48;;-1:-1:-1;;3747:4:58;3725:27;;-1:-1:-1;;;;;15042:20:127;;::::1;;::::0;15068:18;::::1;;::::0;15113:16;;15092:37:::1;::::0;15113:16:::1;15157::::0;::::1;::::0;15135:38:::1;::::0;15200:16;;::::1;::::0;15179:37:::1;::::0;15222:16:::1;::::0;;;15244:23:::1;::::0;;;15296:27:::1;15309:14:::0;15244:23;15296:27:::1;:::i;:::-;15273:50;::::0;15329:31:::1;::::0;;;15366:38:::1;::::0;;;15410:51:::1;::::0;;;15467:45:::1;::::0;;;15627:75:::1;::::0;-1:-1:-1;;;;;;15691:4:127::1;15667:31;;15659:40;::::0;15627:75:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;15588:115:127::1;;::::0;15725:22:::1;::::0;:26;15710:130:::1;;;;-1:-1:-1::0;;;15710:130:127::1;;;;;;2705:25:184::0;;2693:2;2678:18;;2559:177;15710:130:127::1;;;;;;;;;;15902:10;;15884:14;15861:20;;:37;;;;:::i;:::-;:51;15984:10;;15996:14;15846:171;;;;;::::0;-1:-1:-1;;;15846:171:127;;::::1;::::0;::::1;3185:25:184::0;;;;3226:18;;;3219:34;3158:18;;15846:171:127::1;3011:248:184::0;15846:171:127::1;;;16040:1;16031:6;;:10;16023:75;;;;-1:-1:-1::0;;;16023:75:127::1;;;;;;;;;;;;16112:10;::::0;16179:6:::1;::::0;;16125:1:::1;16112:14:::0;::::1;16104:95;;;::::0;-1:-1:-1;;;16104:95:127;;::::1;::::0;::::1;3185:25:184::0;;;;3226:18;;;3219:34;3158:18;;16104:95:127::1;3011:248:184::0;16104:95:127::1;;;16235:1;16222:10;;:14;;;;:::i;:::-;16213:6;::::0;16297:10:::1;::::0;16213:6;;:23;::::1;16205:104;;;::::0;-1:-1:-1;;;16205:104:127;;::::1;::::0;::::1;3185:25:184::0;;;;3226:18;;;3219:34;3158:18;;16205:104:127::1;3011:248:184::0;16205:104:127::1;-1:-1:-1::0;;16333:10:127::1;::::0;16323:6:::1;::::0;;:20;;::::1;;16315:101;;;::::0;-1:-1:-1;;;16315:101:127;;::::1;::::0;::::1;3185:25:184::0;;;;3226:18;;;3219:34;3158:18;;16315:101:127::1;3011:248:184::0;16315:101:127::1;-1:-1:-1::0;;16450:16:127::1;::::0;::::1;::::0;16430;;16450:13;;-1:-1:-1;16430:36:127::1;16422:106;;;;-1:-1:-1::0;;;16422:106:127::1;;;;;;;;:::i;:::-;-1:-1:-1::0;16562:16:127;;::::1;::::0;::::1;16542::::0;::::1;::::0;16562:13;;-1:-1:-1;16542:36:127::1;16534:106;;;;-1:-1:-1::0;;;16534:106:127::1;;;;;;;;:::i;:::-;-1:-1:-1::0;16682:25:127::1;::::0;16661:18:::1;::::0;;:46;;::::1;16646:186;;;::::0;-1:-1:-1;;;16646:186:127;;::::1;::::0;::::1;3185:25:184::0;;;;3226:18;;;3219:34;3158:18;;16646:186:127::1;3011:248:184::0;16646:186:127::1;-1:-1:-1::0;;16853:18:127::1;::::0;8943:3:::1;16853:36:::0;;::::1;16838:159;;;::::0;-1:-1:-1;;;16838:159:127;;::::1;::::0;::::1;3185:25:184::0;;;;3226:18;;;3219:34;3158:18;;16838:159:127::1;3011:248:184::0;16838:159:127::1;-1:-1:-1::0;;17018:20:127::1;::::0;:24;17003:132:::1;;;;-1:-1:-1::0;;;17003:132:127::1;;;;;;2705:25:184::0;;2693:2;2678:18;;2559:177;17003:132:127::1;-1:-1:-1::0;17149:10:127::1;::::0;9218:4:::1;17149:28:::0;;::::1;;17141:109;;;::::0;-1:-1:-1;;;17141:109:127;;::::1;::::0;::::1;3185:25:184::0;;;;3226:18;;;3219:34;3158:18;;17141:109:127::1;3011:248:184::0;17141:109:127::1;-1:-1:-1::0;;17264:14:127::1;::::0;:18;17256:104:::1;;;;-1:-1:-1::0;;;17256:104:127::1;;;;;;2705:25:184::0;;2693:2;2678:18;;2559:177;17256:104:127::1;;17579:16;17638:1;17615:20;;17598:14;;:37;;;;:::i;:::-;:41;;;;:::i;:::-;17579:60:::0;-1:-1:-1;17579:60:127;17665:3:::1;17653:15:::0;;::::1;;17645:80;;;::::0;-1:-1:-1;;;17645:80:127;;::::1;::::0;::::1;3185:25:184::0;;;;3226:18;;;3219:34;3158:18;;17645:80:127::1;3011:248:184::0;17645:80:127::1;;;17787:1;17764:20;;17747:14;;:37;;;;:::i;:::-;:41;;;;:::i;:::-;17792:1;17747:46;17866:20;;17849:14;;:37;;;;:::i;:::-;17732:161;;;;;-1:-1:-1::0;;;17732:161:127::1;;;;;;2705:25:184::0;;2693:2;2678:18;;2559:177;17732:161:127::1;;18273:1;18252:18;;:22;18244:90;;;::::0;-1:-1:-1;;;18244:90:127;;4322:2:184;18244:90:127::1;::::0;::::1;4304:21:184::0;4361:1;4341:18;;;4334:29;-1:-1:-1;;;4379:18:184;;;4372:35;4424:18;;18244:90:127::1;4120:328:184::0;18244:90:127::1;18370:1;18348:19;;:23;18340:92;;;::::0;-1:-1:-1;;;18340:92:127;;4655:2:184;18340:92:127::1;::::0;::::1;4637:21:184::0;4694:1;4674:18;;;4667:29;-1:-1:-1;;;4712:18:184;;;4705:36;4758:18;;18340:92:127::1;4453:329:184::0;18340:92:127::1;18467:1;18446:18;;:22;18438:90;;;::::0;-1:-1:-1;;;18438:90:127;;4989:2:184;18438:90:127::1;::::0;::::1;4971:21:184::0;5028:1;5008:18;;;5001:29;-1:-1:-1;;;5046:18:184;;;5039:35;5091:18;;18438:90:127::1;4787:328:184::0;18438:90:127::1;15036:3497;14702:3831:::0;;;;;;;;;;5491:50752;;2887:340:52;2983:11;3032:2;3016:5;3010:19;:24;3006:215;;;3057:20;3071:5;3057:13;:20::i;:::-;3050:27;;;;3006:215;3134:5;3108:46;3149:5;3134;3108:46;:::i;:::-;-1:-1:-1;1390:66:52;;-1:-1:-1;3006:215:52;2887:340;;;;:::o;1708:286::-;1773:11;1796:17;1822:3;1796:30;;1854:2;1840:4;:11;:16;1836:72;;;1893:3;1879:18;;-1:-1:-1;;;1879:18:52;;;;;;;;:::i;1836:72::-;1974:11;;1957:13;1974:4;1957:13;:::i;:::-;1949:36;;1708:286;-1:-1:-1;;;1708:286:52:o;5491:50752:127:-;;;;;;;;:::o;14:131:184:-;-1:-1:-1;;;;;89:31:184;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:127::-;211:10;206:3;202:20;199:1;192:31;242:4;239:1;232:15;266:4;263:1;256:15;282:1883;474:6;482;490;498;506;514;522;530;538;546;599:3;587:9;578:7;574:23;570:33;567:53;;;616:1;613;606:12;567:53;648:9;642:16;667:31;692:5;667:31;:::i;:::-;767:2;752:18;;746:25;717:5;;-1:-1:-1;780:33:184;746:25;780:33;:::i;:::-;905:2;890:18;;884:25;1001:2;986:18;;980:25;1097:3;1082:19;;1076:26;1194:3;1179:19;;1173:26;832:7;;-1:-1:-1;884:25:184;;-1:-1:-1;980:25:184;-1:-1:-1;1076:26:184;-1:-1:-1;1173:26:184;-1:-1:-1;1263:3:184;1248:19;;1244:33;-1:-1:-1;1234:61:184;;1291:1;1288;1281:12;1234:61;1324:2;1318:9;1366:2;1354:15;;-1:-1:-1;;;;;1384:34:184;;1420:22;;;1381:62;1378:88;;;1446:18;;:::i;:::-;1482:2;1475:22;1517:6;1561:3;1546:19;;1577;;;1574:39;;;1609:1;1606;1599:12;1574:39;1648:3;1637:9;1633:19;1661:195;1677:6;1672:3;1669:15;1661:195;;;1771:10;;1794:20;;1843:2;1834:12;;;;1694;1661:195;;;-1:-1:-1;1926:13:184;2031:3;2016:19;;2010:26;2128:3;2113:19;;;2107:26;282:1883;;;;-1:-1:-1;282:1883:184;;;;;;;;1875:6;;1926:13;;2010:26;;2107;;-1:-1:-1;282:1883:184;;-1:-1:-1;;;;282:1883:184:o;2302:127::-;2363:10;2358:3;2354:20;2351:1;2344:31;2394:4;2391:1;2384:15;2418:4;2415:1;2408:15;2434:120;2474:1;2500;2490:35;;2505:18;;:::i;:::-;-1:-1:-1;2539:9:184;;2434:120::o;2741:265::-;2814:9;;;2845;;2862:15;;;2856:22;;2842:37;2832:168;;2922:10;2917:3;2913:20;2910:1;2903:31;2957:4;2954:1;2947:15;2985:4;2982:1;2975:15;3264:471;3444:2;3429:18;;3433:9;3524:6;3402:4;3558:171;3572:4;3569:1;3566:11;3558:171;;;3631:13;;3619:26;;3674:4;3665:14;;;;3702:17;;;;3592:1;3585:9;3558:171;;;3562:3;;;3264:471;;;;:::o;4003:112::-;4035:1;4061;4051:35;;4066:18;;:::i;:::-;-1:-1:-1;4100:9:184;;4003:112::o;5120:380::-;5199:1;5195:12;;;;5242;;;5263:61;;5317:4;5309:6;5305:17;5295:27;;5263:61;5370:2;5362:6;5359:14;5339:18;5336:38;5333:161;;5416:10;5411:3;5407:20;5404:1;5397:31;5451:4;5448:1;5441:15;5479:4;5476:1;5469:15;5333:161;;5120:380;;;:::o;5631:518::-;5733:2;5728:3;5725:11;5722:421;;;5769:5;5766:1;5759:16;5813:4;5810:1;5800:18;5883:2;5871:10;5867:19;5864:1;5860:27;5854:4;5850:38;5919:4;5907:10;5904:20;5901:47;;;-1:-1:-1;5942:4:184;5901:47;5997:2;5992:3;5988:12;5985:1;5981:20;5975:4;5971:31;5961:41;;6052:81;6070:2;6063:5;6060:13;6052:81;;;6129:1;6115:16;;6096:1;6085:13;6052:81;;;6056:3;;5722:421;5631:518;;;:::o;6325:1299::-;6445:10;;-1:-1:-1;;;;;6467:30:184;;6464:56;;;6500:18;;:::i;:::-;6529:97;6619:6;6579:38;6611:4;6605:11;6579:38;:::i;:::-;6573:4;6529:97;:::i;:::-;6675:4;6706:2;6695:14;;6723:1;6718:649;;;;7411:1;7428:6;7425:89;;;-1:-1:-1;7480:19:184;;;7474:26;7425:89;-1:-1:-1;;6282:1:184;6278:11;;;6274:24;6270:29;6260:40;6306:1;6302:11;;;6257:57;7527:81;;6688:930;;6718:649;5578:1;5571:14;;;5615:4;5602:18;;-1:-1:-1;;6754:20:184;;;6872:222;6886:7;6883:1;6880:14;6872:222;;;6968:19;;;6962:26;6947:42;;7075:4;7060:20;;;;7028:1;7016:14;;;;6902:12;6872:222;;;6876:3;7122:6;7113:7;7110:19;7107:201;;;7183:19;;;7177:26;-1:-1:-1;;7266:1:184;7262:14;;;7278:3;7258:24;7254:37;7250:42;7235:58;7220:74;;7107:201;-1:-1:-1;;;;7354:1:184;7338:14;;;7334:22;7321:36;;-1:-1:-1;6325:1299:184:o;8123:418::-;8272:2;8261:9;8254:21;8235:4;8304:6;8298:13;8347:6;8342:2;8331:9;8327:18;8320:34;8406:6;8401:2;8393:6;8389:15;8384:2;8373:9;8369:18;8363:50;8462:1;8457:2;8448:6;8437:9;8433:22;8429:31;8422:42;8532:2;8525;8521:7;8516:2;8508:6;8504:15;8500:29;8489:9;8485:45;8481:54;8473:62;;;8123:418;;;;:::o;8546:297::-;8664:12;;8711:4;8700:16;;;8694:23;;8664:12;8729:16;;8726:111;;;-1:-1:-1;;8803:4:184;8799:17;;;;8796:1;8792:25;8788:38;8777:50;;8546:297;-1:-1:-1;8546:297:184:o;:::-;5491:50752:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061017f575f3560e01c80639e63f61e116100d5578063bf2ba55211610084578063bf2ba55214610427578063c5234a7e1461044e578063cf6731e314610475578063d15db8b414610488578063d6c4f440146104af578063f17a2a25146104cf578063f3f9c756146104f2575f5ffd5b80639e63f61e1461035d5780639f90f3d514610370578063a32bf59714610397578063a8a356951461039f578063a97f36a8146103b2578063b34adb6c146103d9578063b394f1dd14610400575f5ffd5b80635db93dfa116101315780635db93dfa1461027a57806384b0196e146102a157806386522973146102bc578063865ef513146102e35780638f1327c0146102ec57806391f366331461031657806395134b2b14610336575f5ffd5b80632028cc7b1461018357806320427492146101bd57806321017e1d146101fc5780632e69de56146102045780632e80d9b61461021757806337bab5d01461023e5780635413330714610253575b5f5ffd5b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6101e47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101b4565b6101aa608081565b6101aa610212366004612957565b610512565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b61025161024c366004612977565b610620565b005b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101e47f000000000000000000000000000000000000000000000000000000000000000081565b6102a9610838565b6040516101b49796959493929190612a1d565b6101aa7f18b6b90f234e6d028d4c9800043cedef34624eedddd14e60eba01934728014fe81565b6101aa61040081565b6102ff6102fa366004612ab3565b61087a565b6040805192151583526020830191909152016101b4565b610329610324366004612957565b6108a4565b6040516101b49190612aca565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b61025161036b366004612b20565b6109a6565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa610b9a565b6101e46103ad366004612c1e565b610c53565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa7f000000000000000000000000000000000000000000000000000000000000000081565b6101aa610483366004612ced565b610c6e565b6101e47f000000000000000000000000000000000000000000000000000000000000000081565b6104c26104bd366004612ab3565b610cea565b6040516101b49190612d34565b6104e26104dd366004612957565b610e7e565b60405190151581526020016101b4565b610505610500366004612977565b610e9d565b6040516101b49190612dc9565b5f61053d837f0000000000000000000000000000000000000000000000000000000000000000111590565b83906105685760405163012144e760e61b815260040161055f91815260200190565b60405180910390fd5b50817f00000000000000000000000000000000000000000000000000000000000000008082106105b457604051633d77873160e11b81526004810192909252602482015260440161055f565b508290507f00000000000000000000000000000000000000000000000000000000000000006106037f000000000000000000000000000000000000000000000000000000000000000086612e34565b61060d9190612e47565b6106179190612e5e565b90505b92915050565b5f610629610b9a565b90505f6106368583610ec5565b90508060600151158590610660576040516373e05c9160e01b815260040161055f91815260200190565b5061066b8583611023565b859061068d576040516353a6fd6760e01b815260040161055f91815260200190565b505f5f61069b83878761108b565b805191935091505f5b8181101561073a578281815181106106be576106be612e71565b602002602001015115610732575f6106f88989848181106106e1576106e1612e71565b90506020028101906106f39190612e85565b61125a565b90505f6107058b84610512565b90506107108161128c565b821461072f576040516309f366fb60e21b815260040160405180910390fd5b50505b6001016106a4565b505061075187846040015185602001516001611322565b8151156107f4575f6107638884611402565b60405163c96be4cb60e01b81526001600160a01b0380831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063c96be4cb906024016020604051808303815f875af11580156107cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f19190612ede565b50505b867ff5b0598f6b87cd92cc8a5cdc26c424169e1d2084571d5ebff9efc8e417eb87ea835160405161082791815260200190565b60405180910390a250505050505050565b5f6060805f5f5f606061084961149d565b6108516114ce565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f5f5f61088e84610889610b9a565b610ec5565b9050806060015181602001519250925050915091565b60605f60046108f37f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612e47565b6108fd9190612f0b565b90505f610908610b9a565b90505f6109158683610ec5565b90508060200151851061096f57826001600160401b0381111561093a5761093a612b79565b6040519080825280601f01601f191660200182016040528015610964576020820181803683370190505b50935050505061061a565b5f610979876114fb565b86610400811061098b5761098b612e71565b60040201905061099b8185611524565b979650505050505050565b5f6109af61159a565b90505f6109bb82611625565b90506109e7817f0000000000000000000000000000000000000000000000000000000000000000111590565b8190610a095760405163012144e760e61b815260040161055f91815260200190565b505f610a13611650565b90505f610a21878786610c6e565b9050610a3e8282610a3736899003890189612f1e565b91906116d6565b610a5b57604051634d8d01f560e11b815260040160405180910390fd5b5f6004610aa87f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612e47565b610ab29190612f0b565b90508087808214610adf576040516394be250760e01b81526004810192909252602482015260440161055f565b50505f610aec8586610ec5565b9050610afb8160400151871190565b8690610b1d5760405163b4b54a8760e01b815260040161055f91815260200190565b506020810151610b2f86828c8c61173f565b610b498688610b3f846001612e5e565b8560600151611322565b846001600160a01b031687877ff6ed5a0362706e33942c258dd867d1664e91a7653843a7c3459a857db97287ae84604051610b8691815260200190565b60405180910390a450505050505050505050565b5f5f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663d8e3784c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bfc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c209190612f84565b9050610c4c7f000000000000000000000000000000000000000000000000000000000000000082612f0b565b9250505090565b5f81515f03610c6357505f61061a565b5f61099b84846117e2565b5f610ce07f18b6b90f234e6d028d4c9800043cedef34624eedddd14e60eba01934728014fe8585604051610ca3929190612f9b565b60408051918290038220602083019390935281019190915260608101849052608001604051602081830303815290604052805190602001206119f9565b90505b9392505050565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160401b03811115610d2457610d24612b79565b604051908082528060200260200182016040528015610d5757816020015b6060815260200190600190039081610d425790505b5090507f00000000000000000000000000000000000000000000000000000000000000005f5b7f0000000000000000000000000000000000000000000000000000000000000000811015610e77575f610db08583610512565b6040516369457a6f60e01b8152600481018290529091506001600160a01b038416906369457a6f906024015f604051808303815f875af1925050508015610e1857506040513d5f823e601f3d908101601f19168201604052610e159190810190612faa565b60015b610e4e57604080515f8152602081019091528451859084908110610e3e57610e3e612e71565b6020026020010181905250610e6e565b80858481518110610e6157610e61612e71565b6020026020010181905250505b50600101610d7d565b5050919050565b5f5f610e8983611625565b9050610e958482611023565b949350505050565b60605f610eac85610889610b9a565b90505f610eba82868661108b565b509695505050505050565b610eee60405180608001604052805f81526020015f81526020015f81526020015f151581525090565b81831180610f06575081610f03608085612e5e565b11155b15610f2e5760405163118fd01760e31b8152600481018490526024810183905260440161055f565b5f6002610f3c608086613039565b60808110610f4c57610f4c612e71565b60408051608081018252919092015463ffffffff80821680845264010000000083049091166020840152600160401b820461ffff1693830193909352600160501b900460ff16151560608201529150610fa59085141590565b15610fd55760405180608001604052808581526020015f81526020015f81526020015f151581525091505061061a565b6040518060800160405280858152602001826040015161ffff16815260200161100b836020015163ffffffff1663ffffffff1690565b81526020018260600151151581525091505092915050565b5f61104e7f000000000000000000000000000000000000000000000000000000000000000084612e5e565b8211801561061757506110817f000000000000000000000000000000000000000000000000000000000000000084612e5e565b9091111592915050565b6060807f0000000000000000000000000000000000000000000000000000000000000000838082146110d95760405163e8fb90f560e01b81526004810192909252602482015260440161055f565b505060208501515f81900361119057604080515f8082526020820190925290611123565b604080518082019091525f80825260208201528152602001906001900390816110fd5790505b507f00000000000000000000000000000000000000000000000000000000000000006001600160401b0381111561115c5761115c612b79565b604051908082528060200260200182016040528015611185578160200160208202803683370190505b509250925050611252565b5f6111db7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612e47565b90505f816001600160401b038111156111f6576111f6612b79565b60405190808252806020026020018201604052801561121f578160200160208202803683370190505b50905061122d888285611a25565b5f61123a895f0151611c2d565b90506112498289898685611e0b565b95509550505050505b935093915050565b5f828260405160200161126e92919061304c565b60405160208183030381529060405280519060200120905092915050565b6040516374e0a89d60e01b8152600481018290525f907f00000000000000000000000000000000000000000000000000000000000000009082906001600160a01b038316906374e0a89d9060240160408051808303815f875af11580156112f5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113199190613098565b50949350505050565b604051806080016040528061133686612139565b63ffffffff16815260200161134a85612139565b63ffffffff16815260200161135e84612143565b61ffff168152821515602090910152600261137a608087613039565b6080811061138a5761138a612e71565b825191018054602084015160408501516060909501511515600160501b0260ff60501b1961ffff909616600160401b029590951662ffffff60401b1963ffffffff9283166401000000000267ffffffffffffffff19909416929095169190911791909117929092169190911791909117905550505050565b5f5f5f5f5f61141187876117e2565b93509350935093505f816001600160a01b03163b111561143657935061061a92505050565b5f6114627f00000000000000000000000000000000000000000000000000000000000000008686612175565b90505f6114907f0000000000000000000000000000000000000000000000000000000000000000838661226c565b9998505050505050505050565b60606114c97f00000000000000000000000000000000000000000000000000000000000000005f612279565b905090565b60606114c97f00000000000000000000000000000000000000000000000000000000000000006001612279565b5f6082611509608084613039565b6080811061151957611519612e71565b611000020192915050565b60408051608080825260a0820190925260609160208201818036833701905050905060208101821561155557835481525b602083111561156957600184015460208201525b604083111561157d57600284015460408201525b606083111561159157600384015460608201525b50908152919050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000009050806001600160a01b031663d8e3784c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161f9190612f84565b91505090565b5f61061a7f000000000000000000000000000000000000000000000000000000000000000083612f0b565b5f5f7f00000000000000000000000000000000000000000000000000000000000000009050806001600160a01b0316633b10244b6040518163ffffffff1660e01b81526004016020604051808303815f875af11580156116b2573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161f91906130ba565b5f5f6116ef83865f015187602001518860400151612322565b905083816001600160a01b038281169082161461173257604051633672eb9b60e21b81526001600160a01b0392831660048201529116602482015260440161055f565b5060019695505050505050565b5f611749856114fb565b84610400811061175b5761175b612e71565b600402019050818060808082111561178f57604051636a5170ed60e11b81526004810192909252602482015260440161055f565b505083811561179d57803583555b60208211156117b157602081013560018401555b60408211156117c557604081013560028401555b60608211156117d957606081013560038401555b50505050505050565b6060805f5f5f85519050806001600160401b0381111561180457611804612b79565b60405190808252806020026020018201604052801561182d578160200160208202803683370190505b509450806001600160401b0381111561184857611848612b79565b604051908082528060200260200182016040528015611871578160200160208202803683370190505b5093505f5b818110156119645786818151811061189057611890612e71565b60200260200101515f01518682815181106118ad576118ad612e71565b60200260200101906001600160a01b031690816001600160a01b0316815250506001600160601b0380168782815181106118e9576118e9612e71565b6020026020010151602001511115611914576040516308ea253560e31b815260040160405180910390fd5b86818151811061192657611926612e71565b60200260200101516020015185828151811061194457611944612e71565b6001600160601b0390921660209283029190910190910152600101611876565b5086858560405160200161197a939291906130d5565b6040516020818303038152906040528051906020012092505f6119be7f00000000000000000000000000000000000000000000000000000000000000008787612175565b90506119ec7f000000000000000000000000000000000000000000000000000000000000000082863061234e565b9250505092959194509250565b5f61061a611a05612378565b8360405161190160f01b8152600281019290925260228201526042902090565b82515f6004611a747f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612e47565b611a7e9190612f0b565b90505f611a8a836114fb565b90505f5b848110156117d9575f611ab783836104008110611aad57611aad612e71565b6004020185611524565b90505f5b8481601f011015611ad957611ad18883836124a1565b602001611abb565b84811015611c235781810160200151600282901b905f90811a90819003611b01575050611c1b565b600381168015611b40578a51600160c05f19840160061b161b908c9085908110611b2d57611b2d612e71565b6020026020010181815101915081815250505b6003600283901c168015611b885760066001820360ff16901b60ff166001901b8c8560010181518110611b7557611b75612e71565b6020026020010181815101915081815250505b6003600484901c168015611bce578c51600160c05f19840160061b161b908e9060028801908110611bbb57611bbb612e71565b6020026020010181815101915081815250505b6003600685901c168015611c14578d51600160c05f19840160061b161b908f9060038901908110611c0157611c01612e71565b6020026020010181815101915081815250505b5050505050505b600101611ad9565b5050600101611a8e565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160401b03811115611c6757611c67612b79565b604051908082528060200260200182016040528015611c90578160200160208202803683370190505b5090505f5b7f0000000000000000000000000000000000000000000000000000000000000000811015611e05575f611cc88483610512565b6040516315d3bc7b60e01b8152600481018290529091505f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906315d3bc7b90602401602060405180830381865afa158015611d30573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d5491906130ba565b90506001600160a01b038116611d6b575050611dfd565b604051631d18577f60e11b8152600481018390525f906001600160a01b03831690633a30aefe906024016040805180830381865afa158015611daf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dd3919061314d565b50905080858581518110611de957611de9612e71565b911515602092830291909101909101525050505b600101611c95565b50919050565b606080836001600160401b03811115611e2657611e26612b79565b604051908082528060200260200182016040528015611e6a57816020015b604080518082019091525f8082526020820152815260200190600190039081611e445790505b5091505f7f00000000000000000000000000000000000000000000000000000000000000006001600160401b03811115611ea657611ea6612b79565b604051908082528060200260200182016040528015611ecf578160200160208202803683370190505b5091505f5b8581101561212c575f7f00000000000000000000000000000000000000000000000000000000000000008281611f0c57611f0c612ef7565b049050858181518110611f2157611f21612e71565b602002602001015115611f345750612124565b5f8a8381518110611f4757611f47612e71565b60200260200101519050805f03611f5f575050612124565b5f60035b801561211f576001600160401b035f19820160061b84901c16918201917f00000000000000000000000000000000000000000000000000000000000000008310612116575f82600103611fd757507f0000000000000000000000000000000000000000000000000000000000000000612031565b8260020361200657507f0000000000000000000000000000000000000000000000000000000000000000612031565b8260030361203157507f00000000000000000000000000000000000000000000000000000000000000005b60405180604001604052808f8f8981811061204e5761204e612e71565b90506020028101906120609190612e85565b7f00000000000000000000000000000000000000000000000000000000000000008b8161208f5761208f612ef7565b0681811061209f5761209f612e71565b90506020020160208101906120b49190613182565b6001600160a01b03168152602001828152508a89815181106120d8576120d8612e71565b602002602001018190525087600101975060018987815181106120fd576120fd612e71565b602002602001019015159081151581525050505061211f565b505f1901611f63565b505050505b600101611ed4565b5082529550959350505050565b5f61061a8261260c565b5f61ffff821115612171576040516306dfcc6560e41b8152601060048201526024810183905260440161055f565b5090565b805182516060918181146121a557604051632cd378e160e21b81526004810192909252602482015260440161055f565b50505f835160206121b69190612e47565b6121c1906034612e5e565b90505f816001600160401b038111156121dc576121dc612b79565b6040519080825280601f01601f191660200182016040528015612206576020820181803683370190505b509050602081018660601b815260148101905085518152602081019050855160208701602087015f5b8381101561225d5760208181028481015160601b875283015160a01b6014870152949094019360010161222f565b50939998505050505050505050565b5f610ce08484845f61263c565b606060ff83146122935761228c83612655565b905061061a565b81805461229f9061319d565b80601f01602080910402602001604051908101604052809291908181526020018280546122cb9061319d565b80156123165780601f106122ed57610100808354040283529160200191612316565b820191905f5260205f20905b8154815290600101906020018083116122f957829003601f168201915b5050505050905061061a565b5f5f5f5f61233288888888612692565b9250925092506123428282612750565b50909695505050505050565b5f5f61235a868661280c565b905061236e8482805190602001208561286a565b9695505050505050565b5f306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156123d057507f000000000000000000000000000000000000000000000000000000000000000046145b156123fa57507f000000000000000000000000000000000000000000000000000000000000000090565b6114c9604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b818101602001515f8190036124b65750505050565b600282901b5f5b602081101561260457821561260457600883901b9260f81c80156125fb57600282901b8301600382168015612521578851600160c05f19840160061b161b908a908490811061250e5761250e612e71565b6020026020010181815101915081815250505b6003600284901c1680156125695760066001820360ff16901b60ff166001901b8a846001018151811061255657612556612e71565b6020026020010181815101915081815250505b6003600485901c1680156125af578a51600160c05f19840160061b161b908c906002870190811061259c5761259c612e71565b6020026020010181815101915081815250505b6003600686901c1680156125f5578b51600160c05f19840160061b161b908d90600388019081106125e2576125e2612e71565b6020026020010181815101915081815250505b50505050505b506001016124bd565b505050505050565b5f63ffffffff821115612171576040516306dfcc6560e41b8152602060048201526024810183905260440161055f565b5f5f612648868661280c565b905061236e83858361289c565b60605f61266183612930565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f80806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411156126c157505f91506003905082612746565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612712573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b03811661273d57505f925060019150829050612746565b92505f91508190505b9450945094915050565b5f826003811115612763576127636131cf565b0361276c575050565b6001826003811115612780576127806131cf565b0361279e5760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156127b2576127b26131cf565b036127d35760405163fce698f760e01b81526004810182905260240161055f565b60038260038111156127e7576127e76131cf565b03612808576040516335e2f38360e21b81526004810182905260240161055f565b5050565b6060615fd3825111156128325760405163250a241560e21b815260040160405180910390fd5b815161283f90602d612e5e565b8383604051602001612853939291906131e3565b604051602081830303815290604052905092915050565b5f604051836040820152846020820152828152600b8101905060ff8153605590206001600160a01b0316949350505050565b5f834710156128c75760405163cf47918160e01b81524760048201526024810185905260440161055f565b81515f036128e857604051631328927760e21b815260040160405180910390fd5b8282516020840186f590503d151981151615612909576040513d5f823e3d81fd5b6001600160a01b038116610ce35760405163b06ebf3d60e01b815260040160405180910390fd5b5f60ff8216601f81111561061a57604051632cd44ac360e21b815260040160405180910390fd5b5f5f60408385031215612968575f5ffd5b50508035926020909101359150565b5f5f5f60408486031215612989575f5ffd5b8335925060208401356001600160401b038111156129a5575f5ffd5b8401601f810186136129b5575f5ffd5b80356001600160401b038111156129ca575f5ffd5b8660208260051b84010111156129de575f5ffd5b939660209190910195509293505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b60ff60f81b8816815260e060208201525f612a3b60e08301896129ef565b8281036040840152612a4d81896129ef565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015612aa2578351835260209384019390920191600101612a84565b50909b9a5050505050505050505050565b5f60208284031215612ac3575f5ffd5b5035919050565b602081525f61061760208301846129ef565b5f5f83601f840112612aec575f5ffd5b5081356001600160401b03811115612b02575f5ffd5b602083019150836020828501011115612b19575f5ffd5b9250929050565b5f5f5f8385036080811215612b33575f5ffd5b84356001600160401b03811115612b48575f5ffd5b612b5487828801612adc565b9095509350506060601f1982011215612b6b575f5ffd5b506020840190509250925092565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715612baf57612baf612b79565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612bdd57612bdd612b79565b604052919050565b5f6001600160401b03821115612bfd57612bfd612b79565b5060051b60200190565b6001600160a01b0381168114612c1b575f5ffd5b50565b5f5f60408385031215612c2f575f5ffd5b8235915060208301356001600160401b03811115612c4b575f5ffd5b8301601f81018513612c5b575f5ffd5b8035612c6e612c6982612be5565b612bb5565b8082825260208201915060208360061b850101925087831115612c8f575f5ffd5b6020840193505b82841015612cdf5760408489031215612cad575f5ffd5b612cb5612b8d565b8435612cc081612c07565b8152602085810135818301529083526040909401939190910190612c96565b809450505050509250929050565b5f5f5f60408486031215612cff575f5ffd5b83356001600160401b03811115612d14575f5ffd5b612d2086828701612adc565b909790965060209590950135949350505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612dbd57868503603f19018452815180518087526020918201918701905f5b81811015612da45783516001600160a01b0316835260209384019390920191600101612d7d565b5090965050506020938401939190910190600101612d5a565b50929695505050505050565b602080825282518282018190525f918401906040840190835b81811015612e1557835180516001600160a01b031684526020908101518185015290930192604090920191600101612de2565b509095945050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561061a5761061a612e20565b808202811582820484141761061a5761061a612e20565b8082018082111561061a5761061a612e20565b634e487b7160e01b5f52603260045260245ffd5b5f5f8335601e19843603018112612e9a575f5ffd5b8301803591506001600160401b03821115612eb3575f5ffd5b6020019150600581901b3603821315612b19575f5ffd5b80518015158114612ed9575f5ffd5b919050565b5f60208284031215612eee575f5ffd5b61061782612eca565b634e487b7160e01b5f52601260045260245ffd5b5f82612f1957612f19612ef7565b500490565b5f6060828403128015612f2f575f5ffd5b50604051606081016001600160401b0381118282101715612f5257612f52612b79565b604052823560ff81168114612f65575f5ffd5b8152602083810135908201526040928301359281019290925250919050565b5f60208284031215612f94575f5ffd5b5051919050565b818382375f9101908152919050565b5f60208284031215612fba575f5ffd5b81516001600160401b03811115612fcf575f5ffd5b8201601f81018413612fdf575f5ffd5b8051612fed612c6982612be5565b8082825260208201915060208360051b85010192508683111561300e575f5ffd5b6020840193505b8284101561236e57835161302881612c07565b825260209384019390910190613015565b5f8261304757613047612ef7565b500690565b602080825281018290525f8360408301825b8581101561308e57823561307181612c07565b6001600160a01b031682526020928301929091019060010161305e565b5095945050505050565b5f5f604083850312156130a9575f5ffd5b505080516020909101519092909150565b5f602082840312156130ca575f5ffd5b8151610ce381612c07565b8381525f602082018451602086015f5b8281101561310c5781516001600160a01b03168452602093840193909101906001016130e5565b50508451602086019291505f5b818110156131405783516001600160601b0316835260209384019390920191600101613119565b5090979650505050505050565b5f5f6040838503121561315e575f5ffd5b61316783612eca565b9150602083015161317781612c07565b809150509250929050565b5f60208284031215613192575f5ffd5b8135610ce381612c07565b600181811c908216806131b157607f821691505b602082108103611e0557634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b606160f81b815260f084901b6001600160f01b0319166001820152703d81600a3d39f3363d3d373d3d3d363d7360781b6003820152606083901b6bffffffffffffffffffffffff191660148201526e5af43d82803e903d91602b57fd5bf360881b602882015281515f908060208501603785015e5f920160370191825250939250505056fea2646970667358221220f725dd6352446c81b2b5ba3fb21f2a8d84e9d8f952a557ac0b1f5c22caf58e0864736f6c634300081e0033","sourceMap":"5491:50752:127:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10364:43;;;;;;;;160:25:184;;;148:2;133:18;10364:43:127;;;;;;;;9835:53;;;;;;;;-1:-1:-1;;;;;360:32:184;;;342:51;;330:2;315:18;9835:53:127;196:203:184;8901:45:127;;8943:3;8901:45;;31850:480;;;;;;:::i;:::-;;:::i;10564:31::-;;;;;22999:1883;;;;;;:::i;:::-;;:::i;:::-;;10753:35;;;;;9630:33;;;;;5144:557:58;;;:::i;:::-;;;;;;;;;;;;;:::i;8511:83:127:-;;8551:43;8511:83;;9177:45;;9218:4;9177:45;;28584:279;;;;;;:::i;:::-;;:::i;:::-;;;;4186:14:184;;4179:22;4161:41;;4233:2;4218:18;;4211:34;;;;4134:18;28584:279:127;3993:258:184;29525:920:127;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12231:47::-;;;;;19883:1684;;;;;;:::i;:::-;;:::i;10245:44::-;;;;;30744:346;;;:::i;27895:333::-;;;;;;:::i;:::-;;:::i;11353:43::-;;;;;11137:45;;;;;10126:43;;;;;11579:50;;;;;10925:39;;;;;32962:208;;;;;;:::i;:::-;;:::i;9412:33::-;;;;;25415:637;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;29088:205::-;;;;;;:::i;:::-;;:::i;:::-;;;10458:14:184;;10451:22;10433:41;;10421:2;10406:18;29088:205:127;10293:187:184;26840:381:127;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;31850:480::-;31940:17;31973:49;:6;31999:22;-1:-1:-1;1248:46:91;;1164:133;31973:49:127;32063:6;31965:106;;;;;-1:-1:-1;;;31965:106:127;;;;;;160:25:184;;148:2;133:18;;14:177;31965:106:127;;;;;;;;;-1:-1:-1;32092:11:127;32106:20;32092:34;;;32077:134;;;;-1:-1:-1;;;32077:134:127;;;;;11446:25:184;;;;11487:18;;;11480:34;11419:18;;32077:134:127;11272:248:184;32077:134:127;-1:-1:-1;32313:11:127;;-1:-1:-1;32290:20:127;32236:50;32264:22;32254:6;32236:50;:::i;:::-;32235:75;;;;:::i;:::-;:89;;;;:::i;:::-;32217:108;;31850:480;;;;;:::o;22999:1883::-;23140:23;23166:17;:15;:17::i;:::-;23140:43;;23189:26;23218:35;23232:6;23240:12;23218:13;:35::i;:::-;23189:64;;23268:9;:18;;;23267:19;23334:6;23259:83;;;;;-1:-1:-1;;;23259:83:127;;;;;;160:25:184;;148:2;133:18;;14:177;23259:83:127;;23440:44;23463:6;23471:12;23440:22;:44::i;:::-;23528:6;23432:104;;;;;-1:-1:-1;;;23432:104:127;;;;;;160:25:184;;148:2;133:18;;14:177;23432:104:127;;23625:28;23655:35;23694:30;23701:9;23712:11;;23694:6;:30::i;:::-;23825:28;;23624:100;;-1:-1:-1;23624:100:127;-1:-1:-1;23808:14:127;23861:463;23881:6;23877:1;:10;23861:463;;;23909:21;23931:1;23909:24;;;;;;;;:::i;:::-;;;;;;;23904:62;23947:8;23904:62;24047:18;24068:43;24096:11;;24108:1;24096:14;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;24068:27;:43::i;:::-;24047:64;;24121:17;24141:30;24161:6;24169:1;24141:19;:30::i;:::-;24121:50;;24214:36;24238:11;24214:23;:36::i;:::-;24200:10;:50;24181:134;;;;-1:-1:-1;;;24181:134:127;;;;;;;;;;;;23894:430;;23861:463;23889:3;;23861:463;;;;23790:540;24467:122;24488:6;24502:9;:22;;;24532:9;:19;;;24579:4;24467:13;:122::i;:::-;24646:14;;:18;24642:187;;24727:21;24751:36;24771:6;24779:7;24751:19;:36::i;:::-;24795:27;;-1:-1:-1;;;24795:27:127;;-1:-1:-1;;;;;360:32:184;;;24795:27:127;;;342:51:184;24727:60:127;;-1:-1:-1;24795:7:127;:13;;;;;;315:18:184;;24795:27:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24666:163;24642:187;24854:6;24840:37;24862:7;:14;24840:37;;;;160:25:184;;148:2;133:18;;14:177;24840:37:127;;;;;;;;23083:1799;;;;22999:1883;;;:::o;5144:557:58:-;5242:13;5269:18;5301:21;5336:15;5365:25;5404:12;5430:27;5533:13;:11;:13::i;:::-;5560:16;:14;:16::i;:::-;5668;;;5652:1;5668:16;;;;;;;;;-1:-1:-1;;;5482:212:58;;;-1:-1:-1;5482:212:58;;-1:-1:-1;5590:13:58;;-1:-1:-1;5625:4:58;;-1:-1:-1;5652:1:58;-1:-1:-1;5668:16:58;-1:-1:-1;5482:212:58;-1:-1:-1;5144:557:58:o;28584:279:127:-;28644:15;28661:17;28735:26;28764:40;28778:6;28786:17;:15;:17::i;:::-;28764:13;:40::i;:::-;28735:69;;28818:9;:18;;;28838:9;:19;;;28810:48;;;;;28584:279;;;:::o;29525:920::-;29601:12;29621:22;29686:1;29646:37;29663:20;29646:14;:37;:::i;:::-;:41;;;;:::i;:::-;29621:66;;29881:23;29907:17;:15;:17::i;:::-;29881:43;;29930:26;29959:35;29973:6;29981:12;29959:13;:35::i;:::-;29930:64;;30235:9;:19;;;30225:6;:29;30221:82;;30281:14;-1:-1:-1;;;;;30271:25:127;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30271:25:127;;30264:32;;;;;;;30221:82;30309:28;30340:22;30355:6;30340:14;:22::i;:::-;30369:6;30340:36;;;;;;;:::i;:::-;;;;30309:67;;30389:51;30414:9;30425:14;30389:24;:51::i;:::-;30382:58;29525:920;-1:-1:-1;;;;;;;29525:920:127:o;19883:1684::-;19960:9;19972:17;:15;:17::i;:::-;19960:29;;19995:16;20014:19;20028:4;20014:13;:19::i;:::-;19995:38;;20188:48;:5;20213:22;-1:-1:-1;1248:46:91;;1164:133;20188:48:127;20277:5;20180:104;;;;;-1:-1:-1;;;20180:104:127;;;;;;160:25:184;;148:2;133:18;;14:177;20180:104:127;;20368:16;20387:21;:19;:21::i;:::-;20368:40;;20495:14;20512:36;20535:6;;20543:4;20512:22;:36::i;:::-;20495:53;-1:-1:-1;20562:29:127;20574:8;20495:53;20562:11;;;;;;;:4;:11;:::i;:::-;;:29;:11;:29::i;:::-;20554:83;;;;-1:-1:-1;;;20554:83:127;;;;;;;;;;;;20759:22;20824:1;20784:37;20801:20;20784:14;:37;:::i;:::-;:41;;;;:::i;:::-;20759:66;-1:-1:-1;20759:66:127;20839:6;:31;;;20831:115;;;;-1:-1:-1;;;20831:115:127;;;;;11446:25:184;;;;11487:18;;;11480:34;11419:18;;20831:115:127;11272:248:184;20831:115:127;;;21001:26;21030:27;21044:5;21051;21030:13;:27::i;:::-;21001:56;;21137:29;:9;:22;;;21162:4;-1:-1:-1;1759:33:182;1694:101;21137:29:127;21222:4;21129:99;;;;;-1:-1:-1;;;21129:99:127;;;;;;160:25:184;;148:2;133:18;;14:177;21129:99:127;-1:-1:-1;21292:19:127;;;;21317:40;21332:5;21292:19;21350:6;;21317:14;:40::i;:::-;21447:61;21461:5;21468:4;21474:13;:9;21486:1;21474:13;:::i;:::-;21489:9;:18;;;21447:13;:61::i;:::-;21542:8;-1:-1:-1;;;;;21520:42:127;21536:4;21529:5;21520:42;21552:9;21520:42;;;;160:25:184;;148:2;133:18;;14:177;21520:42:127;;;;;;;;19954:1613;;;;;;;19883:1684;;;:::o;30744:346::-;30792:10;30859:26;30908:8;30859:58;;30923:16;30942:6;-1:-1:-1;;;;;30942:21:127;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30923:42;-1:-1:-1;31047:37:127;31074:10;30923:42;31047:37;:::i;:::-;31024:61;;;;30744:346;:::o;27895:333::-;27995:7;28055:8;:15;28074:1;28055:20;28051:58;;-1:-1:-1;28100:1:127;28085:17;;28051:58;28119:24;28147:47;28177:6;28185:8;28147:29;:47::i;32962:208::-;33050:7;33072:93;8551:43;33135:6;;33125:17;;;;;;;:::i;:::-;;;;;;;;;;33099:64;;;15414:25:184;;;;15455:18;;15448:34;;;;15498:18;;;15491:34;;;15387:18;;33099:64:127;;;;;;;;;;;;33089:75;;;;;;33072:16;:93::i;:::-;33065:100;;32962:208;;;;;;:::o;25415:637::-;25486:29;25552:20;-1:-1:-1;;;;;25536:37:127;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25523:50:127;-1:-1:-1;25629:8:127;25580:26;25662:356;25700:20;25687:10;:33;25662:356;;;25746:11;25760:39;25780:6;25788:10;25760:19;:39::i;:::-;25813:31;;-1:-1:-1;;;25813:31:127;;;;;160:25:184;;;25746:53:127;;-1:-1:-1;;;;;;25813:24:127;;;;;133:18:184;;25813:31:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;25813:31:127;;;;;;;;;;;;:::i;:::-;;;25809:201;;25983:16;;;25997:1;25983:16;;;;;;;;25958:22;;:10;;25969;;25958:22;;;;;;:::i;:::-;;;;;;:41;;;;25809:201;;;25919:9;25894:10;25905;25894:22;;;;;;;;:::i;:::-;;;;;;:34;;;;25845:94;25809:201;-1:-1:-1;25722:12:127;;25662:356;;;;26030:17;25415:637;;;:::o;29088:205::-;29173:4;29185:23;29211:20;29225:5;29211:13;:20::i;:::-;29185:46;;29244:44;29267:6;29275:12;29244:22;:44::i;:::-;29237:51;29088:205;-1:-1:-1;;;;29088:205:127:o;26840:381::-;26934:20;27012:26;27041:40;27055:6;27063:17;:15;:17::i;27041:40::-;27012:69;;27133:28;27166:30;27173:9;27184:11;;27166:6;:30::i;:::-;-1:-1:-1;27132:64:127;26840:381;-1:-1:-1;;;;;;26840:381:127:o;52427:1107::-;52518:16;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;52518:16:127;52672:13;52644:6;52626:60;:151;;;-1:-1:-1;52763:13:127;52698:43;8943:3;52716:6;52698:43;:::i;:::-;:79;;52626:151;52615:258;;;52799:67;;-1:-1:-1;;;52799:67:127;;;;;11446:25:184;;;11487:18;;;11480:34;;;11419:18;;52799:67:127;11272:248:184;52615:258:127;52958:36;52997:10;53008:43;8943:3;53026:6;53008:43;:::i;:::-;52997:55;;;;;;;:::i;:::-;52958:94;;;;;;;;52997:55;;;;52958:94;;;;;;;;;;;;;;;;;;-1:-1:-1;;;52958:94:127;;;;;;;;;;;-1:-1:-1;;;52958:94:127;;;;;;;;;;;-1:-1:-1;53182:44:127;;53220:6;712:46:91;;;628:133;53182:44:127;53178:163;;;53243:91;;;;;;;;53267:6;53243:91;;;;53314:1;53243:91;;;;53299:1;53243:91;;;;53327:5;53243:91;;;;;53236:98;;;;;53178:163;53354:175;;;;;;;;53385:6;53354:175;;;;53467:9;:19;;;53354:175;;;;;;53413:35;:9;:22;;;:33;;1872:44:91;;;1759:163;53413:35:127;53354:175;;;;53504:9;:18;;;53354:175;;;;;53347:182;;;52427:1107;;;;:::o;48815:457::-;48915:4;49122:53;49150:25;49140:6;49122:53;:::i;:::-;49105:13;49087:88;:180;;;;-1:-1:-1;49221:46:127;49249:18;49239:6;49221:46;:::i;:::-;49185:82;;;;;48815:457;-1:-1:-1;;48815:457:127:o;38288:1687::-;38402:33;;38573:20;38551:11;:42;;;38536:163;;;;-1:-1:-1;;;38536:163:127;;;;;11446:25:184;;;;11487:18;;;11480:34;11419:18;;38536:163:127;11272:248:184;38536:163:127;-1:-1:-1;;38726:20:127;;;;38706:17;38798:14;;;38794:98;;38830:20;;;38848:1;38830:20;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;38830:20:127;;;;;;;;;;;;;;;;38863;-1:-1:-1;;;;;38852:32:127;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;38852:32:127;;38822:63;;;;;;;38794:98;38966:23;38992:37;39009:20;38992:14;:37;:::i;:::-;38966:63;;39478:28;39523:15;-1:-1:-1;;;;;39509:30:127;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;39509:30:127;;39478:61;;39623:49;39637:10;39649:11;39662:9;39623:13;:49::i;:::-;39790:31;39824:49;39850:10;:22;;;39824:25;:49::i;:::-;39790:83;;39886:84;39909:11;39922;;39935:15;39952:17;39886:22;:84::i;:::-;39879:91;;;;;;;;38288:1687;;;;;;;:::o;55965:276::-;56056:7;56224:10;;56213:22;;;;;;;;;:::i;:::-;;;;;;;;;;;;;56203:33;;;;;;56196:40;;55965:276;;;;:::o;33878:238::-;34046:42;;-1:-1:-1;;;34046:42:127;;;;;160:25:184;;;33943:7:127;;34007:8;;33943:7;;-1:-1:-1;;;;;34046:34:127;;;;;133:18:184;;34046:42:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;34022:66:127;33878:238;-1:-1:-1;;;;33878:238:127:o;37467:406::-;37645:223;;;;;;;;37686:22;:11;:20;:22::i;:::-;37645:223;;;;;;37730:23;:12;:21;:23::i;:::-;37645:223;;;;;;37772:28;37790:9;37772:17;:28::i;:::-;37645:223;;;;;;;;;;;;37582:10;37593:48;8943:3;37611:11;37593:48;:::i;:::-;37582:60;;;;;;;:::i;:::-;:286;;:60;;:286;;;;;;;;;;;;;;;;;-1:-1:-1;;;37582:286:127;-1:-1:-1;;;;37582:286:127;;;;-1:-1:-1;;;37582:286:127;;;;;-1:-1:-1;;;;37582:286:127;;;;;;-1:-1:-1;;37582:286:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;37467:406:127:o;34411:930::-;34508:8;34610:27;34639:23;34664:12;34678:24;34712:47;34742:6;34750:8;34712:29;:47::i;:::-;34609:150;;;;;;;;34851:1;34820:16;-1:-1:-1;;;;;34820:28:127;;:32;34816:86;;;34878:16;-1:-1:-1;34862:33:127;;-1:-1:-1;;;34862:33:127;34816:86;35045:26;35074:66;35110:8;35120:10;35132:7;35074:35;:66::i;:::-;35045:95;;35198:13;35214:93;35257:28;35287:13;35302:4;35214:42;:93::i;:::-;35198:109;34411:930;-1:-1:-1;;;;;;;;;34411:930:127:o;6021:126:58:-;6067:13;6099:41;:5;6126:13;6099:26;:41::i;:::-;6092:48;;6021:126;:::o;6473:135::-;6522:13;6554:47;:8;6584:16;6554:29;:47::i;51688:298:127:-;51754:18;51926:10;51937:43;8943:3;51955:6;51937:43;:::i;:::-;51926:55;;;;;;;:::i;:::-;;;;;51688:298;-1:-1:-1;;51688:298:127:o;45688:1313::-;45955:17;;;45965:6;45955:17;;;;;;;;;45811:21;;45955:17;;;;;;;;;;-1:-1:-1;45955:17:127;45944:28;;46087:4;46077:8;46073:19;46137:14;46134:107;;;46177:21;;46209:22;;46134:107;46306:2;46290:14;46287:22;46284:132;;;46361:1;46341:22;;46335:29;46395:2;46382:16;;46375:31;46284:132;46481:2;46465:14;46462:22;46459:132;;;46536:1;46516:22;;46510:29;46570:2;46557:16;;46550:31;46459:132;46657:2;46641:14;46638:22;46635:132;;;46712:1;46692:22;;46686:29;46746:2;46733:16;;46726:31;46635:132;-1:-1:-1;46951:32:127;;;46958:8;45688:1313;-1:-1:-1;45688:1313:127:o;47223:161::-;47273:4;47285:26;47334:8;47285:58;;47356:6;-1:-1:-1;;;;;47356:21:127;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;47349:30;;;47223:161;:::o;53680:136::-;53738:10;53779:31;53800:10;53791:5;53779:31;:::i;33526:241::-;33575:7;33664:26;33713:8;33664:58;;33735:6;-1:-1:-1;;;;;33735:25:127;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;559:307:181:-;661:4;673:17;693:64;707:7;716:10;:12;;;730:10;:12;;;744:10;:12;;;693:13;:64::i;:::-;673:84;-1:-1:-1;771:7:181;673:84;-1:-1:-1;;;;;771:20:181;;;;;;;763:81;;;;-1:-1:-1;;;763:81:181;;-1:-1:-1;;;;;18370:32:184;;;763:81:181;;;18352:51:184;18439:32;;18419:18;;;18412:60;18325:18;;763:81:181;18178:300:184;763:81:181;-1:-1:-1;857:4:181;;559:307;-1:-1:-1;;;;;;559:307:181:o;35568:1314:127:-;35675:28;35706:27;35721:11;35706:14;:27::i;:::-;35740:9;35706:44;;;;;;;:::i;:::-;;;;;-1:-1:-1;35777:8:127;;35864:3;35850:17;;;;35842:84;;;;-1:-1:-1;;;35842:84:127;;;;;11446:25:184;;;;11487:18;;;11480:34;11419:18;;35842:84:127;11272:248:184;35842:84:127;;;35984:15;36050:10;36047:267;;;36086:20;;36275:29;;36047:267;36381:2;36369:10;36366:18;36363:134;;;36435:2;36423:15;;36410:29;36477:1;36457:22;;36450:37;36363:134;36564:2;36552:10;36549:18;36546:134;;;36618:2;36606:15;;36593:29;36660:1;36640:22;;36633:37;36546:134;36748:2;36736:10;36733:18;36730:134;;;36802:2;36790:15;;36777:29;36844:1;36824:22;;36817:37;36730:134;;35669:1213;;35568:1314;;;;:::o;49738:1302::-;49862:27;49891:23;49916:12;49930:24;49964:19;49986:8;:15;49964:37;;50034:11;-1:-1:-1;;;;;50020:26:127;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;50020:26:127;;50007:39;;50075:11;-1:-1:-1;;;;;50062:25:127;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;50062:25:127;;50052:35;;50168:9;50163:318;50183:11;50179:1;:15;50163:318;;;50227:8;50236:1;50227:11;;;;;;;;:::i;:::-;;;;;;;:21;;;50211:10;50222:1;50211:13;;;;;;;;:::i;:::-;;;;;;:37;-1:-1:-1;;;;;50211:37:127;;;-1:-1:-1;;;;;50211:37:127;;;;;-1:-1:-1;;;;;50326:43:127;;:8;50335:1;50326:11;;;;;;;;:::i;:::-;;;;;;;:23;;;:43;;50318:100;;;;-1:-1:-1;;;50318:100:127;;;;;;;;;;;;50448:8;50457:1;50448:11;;;;;;;;:::i;:::-;;;;;;;:23;;;50428:7;50436:1;50428:10;;;;;;;;:::i;:::-;-1:-1:-1;;;;;50428:44:127;;;:10;;;;;;;;;;;:44;50196:3;;50163:318;;;;50612:6;50621:10;50633:7;50577:64;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;50567:75;;;;;;50560:82;;50727:26;50756:66;50792:8;50802:10;50814:7;50756:35;:66::i;:::-;50727:95;;50847:129;50906:28;50936:13;50951:4;50965;50847:51;:129::i;:::-;50828:148;;50983:52;;49738:1302;;;;;;;:::o;4917:176:58:-;4994:7;5020:66;5053:20;:18;:20::i;:::-;5075:10;3501:4:59;3495:11;-1:-1:-1;;;3519:23:59;;3571:4;3562:14;;3555:39;;;;3623:4;3614:14;;3607:34;3679:4;3664:20;;;3326:374;40052:2707:127;40198:22;;40173;40287:1;40247:37;40264:20;40247:14;:37;:::i;:::-;:41;;;;:::i;:::-;40226:62;;40365:35;40403:27;40418:11;40403:14;:27::i;:::-;40365:65;;40460:9;40455:2294;40475:9;40471:1;:13;40455:2294;;;40573:24;40600:63;40625:16;40648:1;40625:25;;;;;;;:::i;:::-;;;;40652:10;40600:24;:63::i;:::-;40573:90;;40718:9;40737:164;40753:10;40744:1;40748:2;40744:6;:19;40737:164;;;40841:49;40862:11;40875;40888:1;40841:20;:49::i;:::-;40770:2;40765:7;40737:164;;;40981:10;40977:1;:14;40970:1771;;;41155:30;;;41176:4;41155:30;41149:37;41035:1;41030:6;;;;41010:17;41141:46;;;;41259:16;;;41255:30;;41277:8;;;;41255:30;41550:4;41536:18;;41570:20;;41566:316;;41801:22;;41861:1;41827:42;-1:-1:-1;;41843:19:127;;41867:1;41842:26;41827:42;;;41801:11;;41813:9;;41801:22;;;;;;:::i;:::-;;;;;;:68;;;;;;;;;;;41566:316;42024:4;42019:1;42004:16;;;42003:25;42044:20;;42040:125;;42150:1;42144;42126:15;:19;42125:26;;;;42110:42;;42118:1;42110:42;;42080:11;42092:9;42104:1;42092:13;42080:26;;;;;;;;:::i;:::-;;;;;;:72;;;;;;;;;;;42040:125;42307:4;42302:1;42287:16;;;42286:25;42327:20;;42323:125;;42363:26;;42427:1;42393:42;-1:-1:-1;;42409:19:127;;42433:1;42408:26;42393:42;;;42363:11;;42387:1;42375:13;;;42363:26;;;;;;:::i;:::-;;;;;;:72;;;;;;;;;;;42323:125;42578:16;42593:1;42578:16;;;;42610:20;;42606:125;;42646:26;;42710:1;42676:42;-1:-1:-1;;42692:19:127;;42716:1;42691:26;42676:42;;;42646:11;;42670:1;42658:13;;;42646:26;;;;;;:::i;:::-;;;;;;:72;;;;;;;;;;;42606:125;40998:1743;;;;;;40970:1771;40993:3;;40970:1771;;;-1:-1:-1;;40486:3:127;;40455:2294;;47625:590;47702:31;47772:20;-1:-1:-1;;;;;47761:32:127;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;47761:32:127;;47741:52;;47805:18;47800:411;47838:20;47825:10;:33;47800:411;;;47882:11;47896:39;47916:6;47924:10;47896:19;:39::i;:::-;47970:59;;-1:-1:-1;;;47970:59:127;;;;;160:25:184;;;47882:53:127;;-1:-1:-1;47943:24:127;;-1:-1:-1;;;;;47990:8:127;47970:52;;;;133:18:184;;47970:59:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;47943:86;-1:-1:-1;;;;;;48041:34:127;;48037:67;;48087:8;;;;48037:67;48128:30;;-1:-1:-1;;;48128:30:127;;;;;160:25:184;;;48112:11:127;;-1:-1:-1;;;;;48128:23:127;;;;;133:18:184;;48128:30:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;48111:47;;;48198:6;48166:17;48184:10;48166:29;;;;;;;;:::i;:::-;:38;;;:29;;;;;;;;;;;:38;-1:-1:-1;;;47800:411:127;47860:12;;47800:411;;;;47625:590;;;:::o;42852:2553::-;43049:28;43079:35;43150:15;-1:-1:-1;;;;;43132:34:127;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;43132:34:127;;;;;;;;;;;;;;;;43122:44;;43172:19;43232:20;-1:-1:-1;;;;;43221:32:127;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;43221:32:127;;43197:56;;43283:9;43278:1939;43298:15;43294:1;:19;43278:1939;;;43330:18;43355:14;43351:1;:18;;;;;:::i;:::-;;43330:39;;43446:17;43464:10;43446:29;;;;;;;;:::i;:::-;;;;;;;43442:66;;;43489:8;;;43442:66;43517:19;43539:11;43551:1;43539:14;;;;;;;;:::i;:::-;;;;;;;43517:36;;43615:11;43630:1;43615:16;43611:30;;43633:8;;;;43611:30;43652:29;43860:1;43843:1366;43863:5;;43843:1366;;-1:-1:-1;;;;;;;44185:5:127;;44195:1;44184:12;44168:29;;;44167:52;44231:39;;;;44371:6;44346:31;;44342:841;;44445:19;44482:1;44487;44482:6;44478:238;;-1:-1:-1;44520:18:127;44478:238;;;44563:1;44568;44563:6;44559:157;;-1:-1:-1;44601:19:127;44559:157;;;44645:1;44650;44645:6;44641:75;;-1:-1:-1;44683:18:127;44641:75;44809:95;;;;;;;;44833:11;;44845:10;44833:23;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;44861:14;44857:1;:18;;;;;:::i;:::-;;44833:43;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;44809:95:127;;;;;44891:11;44809:95;;;44772:7;44780:11;44772:20;;;;;;;;:::i;:::-;;;;;;:132;;;;44918:13;;;;;45058:4;45022:21;45044:10;45022:33;;;;;;;;:::i;:::-;;;;;;:40;;;;;;;;;;;45165:5;;;;44342:841;-1:-1:-1;;;45195:3:127;43843:1366;;;;43320:1897;;;43278:1939;43315:3;;43278:1939;;;-1:-1:-1;45321:28:127;;42852:2553;;;;;;;;:::o;1584:171:91:-;1644:20;1705:44;1741:6;1705:17;:44::i;16296:213:62:-;16352:6;16382:16;16374:24;;16370:103;;;16421:41;;-1:-1:-1;;;16421:41:62;;16452:2;16421:41;;;20866:36:184;20918:18;;;20911:34;;;20839:18;;16421:41:62;20685:266:184;16370:103:62;-1:-1:-1;16496:5:62;16296:213::o;1137:1680:90:-;1345:15;;1323:18;;1286:12;;1323:37;;;1308:134;;;;-1:-1:-1;;;1308:134:90;;;;;11446:25:184;;;;11487:18;;;11480:34;11419:18;;1308:134:90;11272:248:184;1308:134:90;;;1538:16;1567:11;:18;1562:2;:23;;;;:::i;:::-;1557:28;;:2;:28;:::i;:::-;1538:47;;1591:17;1621:8;-1:-1:-1;;;;;1611:19:90;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1611:19:90;;1591:39;;1675:4;1669;1665:15;1845:19;1841:2;1837:28;1832:3;1825:41;1889:4;1884:3;1880:14;1873:21;;1984:11;1978:18;1973:3;1966:31;2020:4;2015:3;2011:14;2004:21;;2113:11;2107:18;2170:4;2157:11;2153:22;2214:4;2204:8;2200:19;2242:1;2227:562;2252:3;2249:1;2246:10;2227:562;;;2458:4;2451:12;;;2432:32;;;2426:39;2422:2;2418:48;2406:61;;2694:29;;2688:36;2683:3;2679:46;2492:4;2483:14;;2667:59;2742:14;;;;;2271:1;2264:9;2227:562;;;-1:-1:-1;2808:4:90;;1137:1680;-1:-1:-1;;;;;;;;;1137:1680:90:o;7759:258:42:-;7909:16;7944:66;7980:14;7996:4;8002;8008:1;7944:35;:66::i;3358:267:52:-;3452:13;1390:66;3481:46;;3477:142;;3550:15;3559:5;3550:8;:15::i;:::-;3543:22;;;;3477:142;3603:5;3596:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6887:260:57;6972:7;6992:17;7011:18;7031:16;7051:25;7062:4;7068:1;7071;7074;7051:10;:25::i;:::-;6991:85;;;;;;7086:28;7098:5;7105:8;7086:11;:28::i;:::-;-1:-1:-1;7131:9:57;;6887:260;-1:-1:-1;;;;;;6887:260:57:o;8945:375:42:-;9135:17;9164:21;9188:49;9216:14;9232:4;9188:27;:49::i;:::-;9164:73;;9254:59;9277:4;9293:8;9283:19;;;;;;9304:8;9254:22;:59::i;:::-;9247:66;8945:375;-1:-1:-1;;;;;;8945:375:42:o;3845:262:58:-;3898:7;3929:4;-1:-1:-1;;;;;3938:11:58;3921:28;;:63;;;;;3970:14;3953:13;:31;3921:63;3917:184;;;-1:-1:-1;4007:22:58;;3845:262::o;3917:184::-;4067:23;4204:80;;;2079:95;4204:80;;;23413:25:184;4226:11:58;23454:18:184;;;23447:34;;;;4239:14:58;23497:18:184;;;23490:34;4255:13:58;23540:18:184;;;23533:34;4278:4:58;23583:19:184;;;23576:61;4168:7:58;;23385:19:184;;4204:80:58;;;;;;;;;;;;4194:91;;;;;;4187:98;;4113:179;;53969:1919:127;54202:35;;;54223:4;54202:35;54196:42;54149:12;54312:9;;;54308:22;;54323:7;53969:1919;;;:::o;54308:22::-;54445:1;54435:11;;;54415:17;54508:1370;54528:2;54524:1;:6;54508:1370;;;54595:20;;54610:5;54595:20;54903:1;54894:10;;;;54798:3;54790:11;54919:16;;54915:955;;54981:1;54976:6;;;54963:20;;55159:4;55145:18;;55179:7;;55175:62;;55188:16;;55229:1;55208:29;-1:-1:-1;;55224:6:127;;55235:1;55223:13;55208:29;;;55188:11;;55200:3;;55188:16;;;;;;:::i;:::-;;;;;;:49;;;;;;;;;;;55175:62;55367:4;55362:1;55347:16;;;55346:25;55387:7;;55383:66;;55447:1;55441;55436:2;:6;55435:13;;;;55420:29;;55428:1;55420:29;;55396:11;55408:3;55414:1;55408:7;55396:20;;;;;;;;:::i;:::-;;;;;;:53;;;;;;;;;;;55383:66;55579:4;55574:1;55559:16;;;55558:25;55599:7;;55595:66;;55608:20;;55653:1;55632:29;-1:-1:-1;;55648:6:127;;55659:1;55647:13;55632:29;;;55608:11;;55626:1;55620:7;;;55608:20;;;;;;:::i;:::-;;;;;;:53;;;;;;;;;;;55595:66;55765:16;55780:1;55765:16;;;;55797:7;;55793:66;;55806:20;;55851:1;55830:29;-1:-1:-1;;55846:6:127;;55857:1;55845:13;55830:29;;;55806:11;;55824:1;55818:7;;;55806:20;;;;;;:::i;:::-;;;;;;:53;;;;;;;;;;;55793:66;54937:933;;;;;54915:955;-1:-1:-1;54532:3:127;;54508:1370;;;;54091:1793;;53969:1919;;;:::o;15296:213:62:-;15352:6;15382:16;15374:24;;15370:103;;;15421:41;;-1:-1:-1;;;15421:41:62;;15452:2;15421:41;;;20866:36:184;20918:18;;;20911:34;;;20839:18;;15421:41:62;20685:266:184;8483:335:42;8656:16;8684:21;8708:49;8736:14;8752:4;8708:27;:49::i;:::-;8684:73;;8774:37;8789:5;8796:4;8802:8;8774:14;:37::i;2078:378:52:-;2137:13;2162:11;2176:16;2187:4;2176:10;:16::i;:::-;2300:14;;;2311:2;2300:14;;;;;;;;;2162:30;;-1:-1:-1;2280:17:52;;2300:14;;;;;;;;;-1:-1:-1;;;2363:16:52;;;-1:-1:-1;2408:4:52;2399:14;;2392:28;;;;-1:-1:-1;2363:16:52;2078:378::o;5203:1551:57:-;5329:17;;;-1:-1:-1;;;;;6270:79:57;;6266:164;;;-1:-1:-1;6381:1:57;;-1:-1:-1;6385:30:57;;-1:-1:-1;6417:1:57;6365:54;;6266:164;6541:24;;;6524:14;6541:24;;;;;;;;;21839:25:184;;;21912:4;21900:17;;21880:18;;;21873:45;;;;21934:18;;;21927:34;;;21977:18;;;21970:34;;;6541:24:57;;21811:19:184;;6541:24:57;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6541:24:57;;-1:-1:-1;;6541:24:57;;;-1:-1:-1;;;;;;;6579:20:57;;6575:113;;-1:-1:-1;6631:1:57;;-1:-1:-1;6635:29:57;;-1:-1:-1;6631:1:57;;-1:-1:-1;6615:62:57;;6575:113;6706:6;-1:-1:-1;6714:20:57;;-1:-1:-1;6714:20:57;;-1:-1:-1;5203:1551:57;;;;;;;;;:::o;7280:532::-;7375:20;7366:5;:29;;;;;;;;:::i;:::-;;7362:444;;7280:532;;:::o;7362:444::-;7471:29;7462:5;:38;;;;;;;;:::i;:::-;;7458:348;;7523:23;;-1:-1:-1;;;7523:23:57;;;;;;;;;;;7458:348;7576:35;7567:5;:44;;;;;;;;:::i;:::-;;7563:243;;7634:46;;-1:-1:-1;;;7634:46:57;;;;;160:25:184;;;133:18;;7634:46:57;14:177:184;7563:243:57;7710:30;7701:5;:39;;;;;;;;:::i;:::-;;7697:109;;7763:32;;-1:-1:-1;;;7763:32:57;;;;;160:25:184;;;133:18;;7763:32:57;14:177:184;7697:109:57;7280:532;;:::o;11337:503:42:-;11461:12;11503:6;11489:4;:11;:20;11485:56;;;11518:23;;-1:-1:-1;;;11518:23:42;;;;;;;;;;;11485:56;11636:11;;:18;;11650:4;11636:18;:::i;:::-;11730:14;11815:4;11570:263;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11551:282;;11337:503;;;;:::o;2669:1794:49:-;2770:12;2850:4;2844:11;4069:12;4062:4;4057:3;4053:14;4046:36;4118:4;4111;4106:3;4102:14;4095:28;4148:8;4143:3;4136:21;4241:4;4236:3;4232:14;4219:27;;4352:4;4345:5;4337:20;4399:2;4382:20;;-1:-1:-1;;;;;4378:69:49;;2669:1794;-1:-1:-1;;;;2669:1794:49:o;1210:847::-;1297:12;1349:6;1325:21;:30;1321:125;;;1378:57;;-1:-1:-1;;;1378:57:49;;1405:21;1378:57;;;11446:25:184;11487:18;;;11480:34;;;11419:18;;1378:57:49;11272:248:184;1321:125:49;1459:8;:15;1478:1;1459:20;1455:80;;1502:22;;-1:-1:-1;;;1502:22:49;;;;;;;;;;;1455:80;1645:4;1634:8;1628:15;1621:4;1611:8;1607:19;1599:6;1591:59;1583:67;;1780:16;1773:24;1769:29;1762:4;1755:12;1751:48;1748:203;;;1833:4;1827:11;1876:16;1873:1;1870;1855:38;1920:16;1917:1;1910:27;1748:203;-1:-1:-1;;;;;1974:18:49;;1970:81;;2015:25;;-1:-1:-1;;;2015:25:49;;;;;;;;;;;2528:245:52;2589:7;2661:4;2625:40;;2688:2;2679:11;;2675:69;;;2713:20;;-1:-1:-1;;;2713:20:52;;;;;;;;;;;404:378:184;504:6;512;565:2;553:9;544:7;540:23;536:32;533:52;;;581:1;578;571:12;533:52;-1:-1:-1;;626:23:184;;;746:2;731:18;;;718:32;;-1:-1:-1;404:378:184:o;997:783::-;1151:6;1159;1167;1220:2;1208:9;1199:7;1195:23;1191:32;1188:52;;;1236:1;1233;1226:12;1188:52;1281:23;;;-1:-1:-1;1379:2:184;1364:18;;1351:32;-1:-1:-1;;;;;1395:30:184;;1392:50;;;1438:1;1435;1428:12;1392:50;1461:22;;1514:4;1506:13;;1502:27;-1:-1:-1;1492:55:184;;1543:1;1540;1533:12;1492:55;1583:2;1570:16;-1:-1:-1;;;;;1601:6:184;1598:30;1595:50;;;1641:1;1638;1631:12;1595:50;1694:7;1689:2;1679:6;1676:1;1672:14;1668:2;1664:23;1660:32;1657:45;1654:65;;;1715:1;1712;1705:12;1654:65;997:783;;1746:2;1738:11;;;;;-1:-1:-1;1768:6:184;;-1:-1:-1;;;997:783:184:o;2011:289::-;2053:3;2091:5;2085:12;2118:6;2113:3;2106:19;2174:6;2167:4;2160:5;2156:16;2149:4;2144:3;2140:14;2134:47;2226:1;2219:4;2210:6;2205:3;2201:16;2197:27;2190:38;2289:4;2282:2;2278:7;2273:2;2265:6;2261:15;2257:29;2252:3;2248:39;2244:50;2237:57;;;2011:289;;;;:::o;2305:1238::-;2711:3;2706;2702:13;2694:6;2690:26;2679:9;2672:45;2753:3;2748:2;2737:9;2733:18;2726:31;2653:4;2780:46;2821:3;2810:9;2806:19;2798:6;2780:46;:::i;:::-;2874:9;2866:6;2862:22;2857:2;2846:9;2842:18;2835:50;2908:33;2934:6;2926;2908:33;:::i;:::-;2972:2;2957:18;;2950:34;;;-1:-1:-1;;;;;3021:32:184;;3015:3;3000:19;;2993:61;3041:3;3070:19;;3063:35;;;3135:22;;;3129:3;3114:19;;3107:51;3207:13;;3229:22;;;3279:2;3305:15;;;;-1:-1:-1;3267:15:184;;;;-1:-1:-1;3348:169:184;3362:6;3359:1;3356:13;3348:169;;;3423:13;;3411:26;;3466:2;3492:15;;;;3457:12;;;;3384:1;3377:9;3348:169;;;-1:-1:-1;3534:3:184;;2305:1238;-1:-1:-1;;;;;;;;;;;2305:1238:184:o;3730:258::-;3821:6;3874:2;3862:9;3853:7;3849:23;3845:32;3842:52;;;3890:1;3887;3880:12;3842:52;-1:-1:-1;3935:23:184;;3730:258;-1:-1:-1;3730:258:184:o;4256:218::-;4403:2;4392:9;4385:21;4366:4;4423:45;4464:2;4453:9;4449:18;4441:6;4423:45;:::i;4479:347::-;4530:8;4540:6;4594:3;4587:4;4579:6;4575:17;4571:27;4561:55;;4612:1;4609;4602:12;4561:55;-1:-1:-1;4635:20:184;;-1:-1:-1;;;;;4667:30:184;;4664:50;;;4710:1;4707;4700:12;4664:50;4747:4;4739:6;4735:17;4723:29;;4799:3;4792:4;4783:6;4775;4771:19;4767:30;4764:39;4761:59;;;4816:1;4813;4806:12;4761:59;4479:347;;;;;:::o;4831:570::-;4941:6;4949;4957;5001:9;4992:7;4988:23;5031:3;5027:2;5023:12;5020:32;;;5048:1;5045;5038:12;5020:32;5088:9;5075:23;-1:-1:-1;;;;;5113:6:184;5110:30;5107:50;;;5153:1;5150;5143:12;5107:50;5192:58;5242:7;5233:6;5222:9;5218:22;5192:58;:::i;:::-;5269:8;;-1:-1:-1;5166:84:184;-1:-1:-1;;5338:2:184;-1:-1:-1;;5320:16:184;;5316:25;5313:45;;;5354:1;5351;5344:12;5313:45;;5392:2;5381:9;5377:18;5367:28;;4831:570;;;;;:::o;5620:127::-;5681:10;5676:3;5672:20;5669:1;5662:31;5712:4;5709:1;5702:15;5736:4;5733:1;5726:15;5752:251;5824:2;5818:9;;;5854:15;;-1:-1:-1;;;;;5884:34:184;;5920:22;;;5881:62;5878:88;;;5946:18;;:::i;:::-;5982:2;5975:22;5752:251;:::o;6008:275::-;6079:2;6073:9;6144:2;6125:13;;-1:-1:-1;;6121:27:184;6109:40;;-1:-1:-1;;;;;6164:34:184;;6200:22;;;6161:62;6158:88;;;6226:18;;:::i;:::-;6262:2;6255:22;6008:275;;-1:-1:-1;6008:275:184:o;6288:194::-;6359:4;-1:-1:-1;;;;;6384:6:184;6381:30;6378:56;;;6414:18;;:::i;:::-;-1:-1:-1;6459:1:184;6455:14;6471:4;6451:25;;6288:194::o;6487:131::-;-1:-1:-1;;;;;6562:31:184;;6552:42;;6542:70;;6608:1;6605;6598:12;6542:70;6487:131;:::o;6623:1425::-;6778:6;6786;6839:2;6827:9;6818:7;6814:23;6810:32;6807:52;;;6855:1;6852;6845:12;6807:52;6900:23;;;-1:-1:-1;6998:2:184;6983:18;;6970:32;-1:-1:-1;;;;;7014:30:184;;7011:50;;;7057:1;7054;7047:12;7011:50;7080:22;;7133:4;7125:13;;7121:27;-1:-1:-1;7111:55:184;;7162:1;7159;7152:12;7111:55;7202:2;7189:16;7225:75;7241:58;7292:6;7241:58;:::i;:::-;7225:75;:::i;:::-;7322:3;7346:6;7341:3;7334:19;7378:2;7373:3;7369:12;7362:19;;7433:2;7423:6;7420:1;7416:14;7412:2;7408:23;7404:32;7390:46;;7459:7;7451:6;7448:19;7445:39;;;7480:1;7477;7470:12;7445:39;7512:2;7508;7504:11;7493:22;;7524:494;7540:6;7535:3;7532:15;7524:494;;;7620:2;7614:3;7605:7;7601:17;7597:26;7594:46;;;7636:1;7633;7626:12;7594:46;7668:22;;:::i;:::-;7731:3;7718:17;7748:33;7773:7;7748:33;:::i;:::-;7794:24;;7893:2;7884:12;;;7871:26;7917:16;;;7910:33;7956:20;;;7566:2;7557:12;;;;7996;;;;;7524:494;;;8037:5;8027:15;;;;;;6623:1425;;;;;:::o;8053:550::-;8159:6;8167;8175;8228:2;8216:9;8207:7;8203:23;8199:32;8196:52;;;8244:1;8241;8234:12;8196:52;8284:9;8271:23;-1:-1:-1;;;;;8309:6:184;8306:30;8303:50;;;8349:1;8346;8339:12;8303:50;8388:58;8438:7;8429:6;8418:9;8414:22;8388:58;:::i;:::-;8465:8;;8362:84;;-1:-1:-1;8569:2:184;8554:18;;;;8541:32;;8053:550;-1:-1:-1;;;;8053:550:184:o;8608:1270::-;8800:4;8848:2;8837:9;8833:18;8878:2;8867:9;8860:21;8901:6;8936;8930:13;8967:6;8959;8952:22;9005:2;8994:9;8990:18;8983:25;;9067:2;9057:6;9054:1;9050:14;9039:9;9035:30;9031:39;9017:53;;9105:2;9097:6;9093:15;9126:1;9136:713;9150:6;9147:1;9144:13;9136:713;;;9215:22;;;-1:-1:-1;;9211:36:184;9199:49;;9271:13;;9345:9;;9367:24;;;9425:2;9457:11;;;;9413:15;;;9492:1;9506:235;9522:8;9517:3;9514:17;9506:235;;;9603:15;;-1:-1:-1;;;;;9599:41:184;9585:56;;9678:2;9710:17;;;;9667:14;;;;9637:1;9541:11;9506:235;;;-1:-1:-1;9764:5:184;;-1:-1:-1;;;9804:2:184;9827:12;;;;9792:15;;;;;9172:1;9165:9;9136:713;;;-1:-1:-1;9866:6:184;;8608:1270;-1:-1:-1;;;;;;8608:1270:184:o;10485:782::-;10735:2;10747:21;;;10817:13;;10720:18;;;10839:22;;;10687:4;;10918:15;;;10892:2;10877:18;;;10687:4;10961:280;10975:6;10972:1;10969:13;10961:280;;;11034:13;;11076:9;;-1:-1:-1;;;;;11072:35:184;11060:48;;11156:2;11148:11;;;11142:18;11128:12;;;11121:40;11216:15;;;;11190:2;11181:12;;;;11104:1;10990:9;10961:280;;;-1:-1:-1;11258:3:184;;10485:782;-1:-1:-1;;;;;10485:782:184:o;11525:127::-;11586:10;11581:3;11577:20;11574:1;11567:31;11617:4;11614:1;11607:15;11641:4;11638:1;11631:15;11657:128;11724:9;;;11745:11;;;11742:37;;;11759:18;;:::i;11790:168::-;11863:9;;;11894;;11911:15;;;11905:22;;11891:37;11881:71;;11932:18;;:::i;11963:125::-;12028:9;;;12049:10;;;12046:36;;;12062:18;;:::i;12093:127::-;12154:10;12149:3;12145:20;12142:1;12135:31;12185:4;12182:1;12175:15;12209:4;12206:1;12199:15;12225:545;12318:4;12324:6;12384:11;12371:25;12478:2;12474:7;12463:8;12447:14;12443:29;12439:43;12419:18;12415:68;12405:96;;12497:1;12494;12487:12;12405:96;12524:33;;12576:20;;;-1:-1:-1;;;;;;12608:30:184;;12605:50;;;12651:1;12648;12641:12;12605:50;12684:4;12672:17;;-1:-1:-1;12735:1:184;12731:14;;;12715;12711:35;12701:46;;12698:66;;;12760:1;12757;12750:12;13001:164;13077:13;;13126;;13119:21;13109:32;;13099:60;;13155:1;13152;13145:12;13099:60;13001:164;;;:::o;13170:202::-;13237:6;13290:2;13278:9;13269:7;13265:23;13261:32;13258:52;;;13306:1;13303;13296:12;13258:52;13329:37;13356:9;13329:37;:::i;13377:127::-;13438:10;13433:3;13429:20;13426:1;13419:31;13469:4;13466:1;13459:15;13493:4;13490:1;13483:15;13509:120;13549:1;13575;13565:35;;13580:18;;:::i;:::-;-1:-1:-1;13614:9:184;;13509:120::o;13634:826::-;13722:6;13782:2;13770:9;13761:7;13757:23;13753:32;13797:2;13794:22;;;13812:1;13809;13802:12;13794:22;-1:-1:-1;13881:2:184;13875:9;13923:2;13911:15;;-1:-1:-1;;;;;13941:34:184;;13977:22;;;13938:62;13935:88;;;14003:18;;:::i;:::-;14039:2;14032:22;14076:23;;14139:4;14128:16;;14118:27;;14108:55;;14159:1;14156;14149:12;14108:55;14172:21;;14266:2;14251:18;;;14238:32;14286:15;;;14279:32;14384:2;14369:18;;;14356:32;14404:15;;;14397:32;;;;-1:-1:-1;14179:6:184;13634:826;-1:-1:-1;13634:826:184:o;14674:257::-;14771:6;14824:2;14812:9;14803:7;14799:23;14795:32;14792:52;;;14840:1;14837;14830:12;14792:52;-1:-1:-1;14885:16:184;;14674:257;-1:-1:-1;14674:257:184:o;14936:271::-;15119:6;15111;15106:3;15093:33;15075:3;15145:16;;15170:13;;;15145:16;14936:271;-1:-1:-1;14936:271:184:o;15536:962::-;15631:6;15684:2;15672:9;15663:7;15659:23;15655:32;15652:52;;;15700:1;15697;15690:12;15652:52;15733:9;15727:16;-1:-1:-1;;;;;15758:6:184;15755:30;15752:50;;;15798:1;15795;15788:12;15752:50;15821:22;;15874:4;15866:13;;15862:27;-1:-1:-1;15852:55:184;;15903:1;15900;15893:12;15852:55;15936:2;15930:9;15959:75;15975:58;16026:6;15975:58;:::i;15959:75::-;16056:3;16080:6;16075:3;16068:19;16112:2;16107:3;16103:12;16096:19;;16167:2;16157:6;16154:1;16150:14;16146:2;16142:23;16138:32;16124:46;;16193:7;16185:6;16182:19;16179:39;;;16214:1;16211;16204:12;16179:39;16246:2;16242;16238:11;16227:22;;16258:210;16274:6;16269:3;16266:15;16258:210;;;16347:3;16341:10;16364:31;16389:5;16364:31;:::i;:::-;16408:18;;16455:2;16291:12;;;;16446;;;;16258:210;;16820:112;16852:1;16878;16868:35;;16883:18;;:::i;:::-;-1:-1:-1;16917:9:184;;16820:112::o;16937:684::-;17137:2;17149:21;;;17122:18;;17205:22;;;17089:4;17284:6;17258:2;17243:18;;17089:4;17318:277;17332:6;17329:1;17326:13;17318:277;;;17407:6;17394:20;17427:31;17452:5;17427:31;:::i;:::-;-1:-1:-1;;;;;17483:31:184;17471:44;;17544:2;17570:15;;;;17535:12;;;;17511:1;17347:9;17318:277;;;-1:-1:-1;17612:3:184;16937:684;-1:-1:-1;;;;;16937:684:184:o;17626:291::-;17705:6;17713;17766:2;17754:9;17745:7;17741:23;17737:32;17734:52;;;17782:1;17779;17772:12;17734:52;-1:-1:-1;;17805:16:184;;17883:2;17868:18;;;17862:25;17805:16;;17862:25;;-1:-1:-1;17626:291:184:o;17922:251::-;17992:6;18045:2;18033:9;18024:7;18020:23;18016:32;18013:52;;;18061:1;18058;18051:12;18013:52;18093:9;18087:16;18112:31;18137:5;18112:31;:::i;18746:1069::-;19041:6;19036:3;19029:19;19011:3;19079:2;19074:3;19070:12;19111:6;19105:13;19176:2;19168:6;19164:15;19197:1;19207:201;19221:6;19218:1;19215:13;19207:201;;;19288:13;;-1:-1:-1;;;;;19284:39:184;19270:54;;19357:2;19346:14;;;;19383:15;;;;19320:1;19236:9;19207:201;;;-1:-1:-1;;19460:13:184;;19533:2;19521:15;;;19430:5;-1:-1:-1;19556:1:184;19566:222;19582:8;19577:3;19574:17;19566:222;;;19655:15;;-1:-1:-1;;;;;19651:48:184;19637:63;;19733:2;19761:17;;;;19722:14;;;;19610:1;19601:11;19566:222;;;-1:-1:-1;19804:5:184;;18746:1069;-1:-1:-1;;;;;;;18746:1069:184:o;20098:330::-;20174:6;20182;20235:2;20223:9;20214:7;20210:23;20206:32;20203:52;;;20251:1;20248;20241:12;20203:52;20274:37;20301:9;20274:37;:::i;:::-;20264:47;;20354:2;20343:9;20339:18;20333:25;20367:31;20392:5;20367:31;:::i;:::-;20417:5;20407:15;;;20098:330;;;;;:::o;20433:247::-;20492:6;20545:2;20533:9;20524:7;20520:23;20516:32;20513:52;;;20561:1;20558;20551:12;20513:52;20600:9;20587:23;20619:31;20644:5;20619:31;:::i;20956:380::-;21035:1;21031:12;;;;21078;;;21099:61;;21153:4;21145:6;21141:17;21131:27;;21099:61;21206:2;21198:6;21195:14;21175:18;21172:38;21169:161;;21252:10;21247:3;21243:20;21240:1;21233:31;21287:4;21284:1;21277:15;21315:4;21312:1;21305:15;22015:127;22076:10;22071:3;22067:20;22064:1;22057:31;22107:4;22104:1;22097:15;22131:4;22128:1;22121:15;22147:1002;-1:-1:-1;;;22651:16:184;;22722:3;22700:16;;;-1:-1:-1;;;;;;22696:38:184;22692:1;22683:11;;22676:59;-1:-1:-1;;;22760:1:184;22751:11;;22744:67;22849:2;22845:15;;;-1:-1:-1;;22841:53:184;22836:2;22827:12;;22820:75;-1:-1:-1;;;22920:2:184;22911:12;;22904:64;22991:13;;-1:-1:-1;;22991:13:184;23045:4;23033:17;;23028:2;23019:12;;23013:46;23123:1;23082:16;;23100:2;23078:25;23112:13;;;-1:-1:-1;23078:25:184;22147:1002;-1:-1:-1;;;22147:1002:184:o","linkReferences":{},"immutableReferences":{"53354":[{"start":9176,"length":32}],"53356":[{"start":9134,"length":32}],"53358":[{"start":9092,"length":32}],"53360":[{"start":9257,"length":32}],"53362":[{"start":9297,"length":32}],"53365":[{"start":5284,"length":32}],"53368":[{"start":5333,"length":32}],"90057":[{"start":1165,"length":32},{"start":2974,"length":32},{"start":3420,"length":32},{"start":4772,"length":32},{"start":5180,"length":32},{"start":5534,"length":32},{"start":5716,"length":32},{"start":6552,"length":32},{"start":7403,"length":32}],"90061":[{"start":639,"length":32},{"start":1925,"length":32}],"90064":[{"start":450,"length":32},{"start":5226,"length":32},{"start":6597,"length":32}],"90067":[{"start":1029,"length":32},{"start":8115,"length":32}],"90070":[{"start":885,"length":32},{"start":8162,"length":32}],"90073":[{"start":392,"length":32},{"start":8209,"length":32}],"90076":[{"start":540,"length":32},{"start":8066,"length":32}],"90079":[{"start":600,"length":32},{"start":3111,"length":32},{"start":5675,"length":32}],"90082":[{"start":1107,"length":32},{"start":2255,"length":32},{"start":2692,"length":32},{"start":4535,"length":32},{"start":6736,"length":32},{"start":7903,"length":32},{"start":8290,"length":32}],"90085":[{"start":990,"length":32},{"start":1388,"length":32},{"start":1466,"length":32},{"start":2222,"length":32},{"start":2659,"length":32},{"start":3310,"length":32},{"start":3455,"length":32},{"start":4240,"length":32},{"start":4390,"length":32},{"start":4502,"length":32},{"start":6703,"length":32},{"start":7217,"length":32},{"start":7319,"length":32},{"start":7792,"length":32}],"90088":[{"start":951,"length":32},{"start":4188,"length":32}],"90091":[{"start":1068,"length":32},{"start":4137,"length":32}],"90094":[{"start":827,"length":32},{"start":1305,"length":32},{"start":1502,"length":32},{"start":2499,"length":32}]}},"methodIdentifiers":{"COMMITTEE_SIZE()":"c5234a7e","EXECUTION_DELAY_IN_ROUNDS()":"bf2ba552","INSTANCE()":"d15db8b4","LIFETIME_IN_ROUNDS()":"a97f36a8","MAX_ROUND_SIZE()":"865ef513","QUORUM()":"2e80d9b6","ROUNDABOUT_SIZE()":"21017e1d","ROUND_SIZE()":"54133307","ROUND_SIZE_IN_EPOCHS()":"b34adb6c","SLASHER()":"5db93dfa","SLASH_AMOUNT_LARGE()":"2028cc7b","SLASH_AMOUNT_MEDIUM()":"9f90f3d5","SLASH_AMOUNT_SMALL()":"b394f1dd","SLASH_OFFSET_IN_ROUNDS()":"95134b2b","SLASH_PAYLOAD_IMPLEMENTATION()":"20427492","VOTE_TYPEHASH()":"86522973","eip712Domain()":"84b0196e","executeRound(uint256,address[][])":"37bab5d0","getCurrentRound()":"a32bf597","getPayloadAddress(uint256,(address,uint256)[])":"a8a35695","getRound(uint256)":"8f1327c0","getSlashTargetCommittees(uint256)":"d6c4f440","getSlashTargetEpoch(uint256,uint256)":"2e69de56","getTally(uint256,address[][])":"f3f9c756","getVoteSignatureDigest(bytes,uint256)":"cf6731e3","getVotes(uint256,uint256)":"91f36633","isRoundReadyToExecute(uint256,uint256)":"f17a2a25","vote(bytes,(uint8,bytes32,bytes32))":"9e63f61e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"contract ISlasher\",\"name\":\"_slasher\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_quorum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_roundSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lifetimeInRounds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_executionDelayInRounds\",\"type\":\"uint256\"},{\"internalType\":\"uint256[3]\",\"name\":\"_slashAmounts\",\"type\":\"uint256[3]\"},{\"internalType\":\"uint256\",\"name\":\"_committeeSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_epochDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_slashOffsetInRounds\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CloneArgumentsTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Create2EmptyBytecode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"SignatureLib__InvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"SlashPayload_ArraySizeMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"committeeSize\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__CommitteeSizeMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashingProposer__InvalidCommitteeCommitment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epochIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"roundSizeInEpochs\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__InvalidEpochIndex\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__InvalidNumberOfCommittees\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"quorum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"roundSize\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__InvalidQuorumAndRoundSize\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashingProposer__InvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256[3]\",\"name\":\"slashAmounts\",\"type\":\"uint256[3]\"}],\"name\":\"SlashingProposer__InvalidSlashAmounts\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__InvalidVoteLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lifetime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"executionDelay\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__LifetimeMustBeGreaterThanExecutionDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lifetime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"roundabout\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__LifetimeMustBeLessThanRoundabout\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashingProposer__QuorumMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"round\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__RoundAlreadyExecuted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"round\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__RoundNotComplete\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"round\",\"type\":\"uint256\"},{\"internalType\":\"SlashRound\",\"name\":\"currentRound\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__RoundOutOfRange\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundSizeInEpochs\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__RoundSizeInEpochsMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"epochDuration\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__RoundSizeMustBeMultipleOfEpochDuration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxRoundSize\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__RoundSizeTooLarge\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"info\",\"type\":\"string\"}],\"name\":\"SlashingProposer__SlashAmountMustBeGtZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashingProposer__SlashAmountTooLarge\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashOffset\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__SlashOffsetMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"Slot\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__VoteAlreadyCastInCurrentSlot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"voteSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSize\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__VoteSizeTooBig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"votes\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__VotesMustBeMultipleOf4\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"currentRound\",\"type\":\"uint256\"}],\"name\":\"SlashingProposer__VotingNotOpen\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"SlashRound\",\"name\":\"round\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashCount\",\"type\":\"uint256\"}],\"name\":\"RoundExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"SlashRound\",\"name\":\"round\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"Slot\",\"name\":\"slot\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"voteIndex\",\"type\":\"uint256\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"COMMITTEE_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXECUTION_DELAY_IN_ROUNDS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INSTANCE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LIFETIME_IN_ROUNDS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_ROUND_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"QUORUM\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROUNDABOUT_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROUND_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROUND_SIZE_IN_EPOCHS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER\",\"outputs\":[{\"internalType\":\"contract ISlasher\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASH_AMOUNT_LARGE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASH_AMOUNT_MEDIUM\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASH_AMOUNT_SMALL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASH_OFFSET_IN_ROUNDS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASH_PAYLOAD_IMPLEMENTATION\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VOTE_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"_round\",\"type\":\"uint256\"},{\"internalType\":\"address[][]\",\"name\":\"_committees\",\"type\":\"address[][]\"}],\"name\":\"executeRound\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentRound\",\"outputs\":[{\"internalType\":\"SlashRound\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"_round\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"slashAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct SlashingProposer.SlashAction[]\",\"name\":\"_actions\",\"type\":\"tuple[]\"}],\"name\":\"getPayloadAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"_round\",\"type\":\"uint256\"}],\"name\":\"getRound\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isExecuted\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"voteCount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"_round\",\"type\":\"uint256\"}],\"name\":\"getSlashTargetCommittees\",\"outputs\":[{\"internalType\":\"address[][]\",\"name\":\"committees\",\"type\":\"address[][]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"_round\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_epochIndex\",\"type\":\"uint256\"}],\"name\":\"getSlashTargetEpoch\",\"outputs\":[{\"internalType\":\"Epoch\",\"name\":\"epochNumber\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"_round\",\"type\":\"uint256\"},{\"internalType\":\"address[][]\",\"name\":\"_committees\",\"type\":\"address[][]\"}],\"name\":\"getTally\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"slashAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct SlashingProposer.SlashAction[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_votes\",\"type\":\"bytes\"},{\"internalType\":\"Slot\",\"name\":\"_slot\",\"type\":\"uint256\"}],\"name\":\"getVoteSignatureDigest\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"_round\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"SlashRound\",\"name\":\"_round\",\"type\":\"uint256\"},{\"internalType\":\"Slot\",\"name\":\"_slot\",\"type\":\"uint256\"}],\"name\":\"isRoundReadyToExecute\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_votes\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"struct Signature\",\"name\":\"_sig\",\"type\":\"tuple\"}],\"name\":\"vote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Aztec Labs\",\"details\":\"This contract implements a voting-based slashing mechanism where checkpoint proposers signal their intent to slash validators from past epochs. The system operates in rounds, with each round corresponding to a time period where votes are collected from proposers to determine which validators should be slashed. Key concepts: - Rounds: Time periods during which votes are collected (measured in slots, multiple of epochs) - Voting: Checkpoint proposers submit encoded votes indicating which validators to slash and by how much - Quorum: Minimum number of votes required in a round to trigger slashing of a specific validator - Execution Delay: Time that must pass after a round ends before its slashing can be executed (allows vetoing) - Slash Offset: How many rounds in the past to look when determining which validators to slash How the system works: 1. Time is divided into rounds (ROUND_SIZE slots each). 2. During each round, checkpoint proposers can submit votes indicating which validators from the epochs that span SLASH_OFFSET_IN_ROUNDS rounds ago should be slashed. 3. Votes are encoded as bytes where each 2-bit pair represents the slash amount (0-3 slash units) for the corresponding validator slashed in the round. 4. After a round ends, there is an execution delay period for review so the VETOER in the Slasher can veto the expected payload address if needed. 5. Once the delay passes, anyone can call executeRound() to tally votes and execute slashing. 6. Validators that reach the quorum threshold are slashed by the specified amount. We consider a vote for slashing N units as also a vote for slashing N-1, N-2, ..., 1 units. We slash for the largest amount that reaches quorum. About SLASH_OFFSET_IN_ROUNDS: - This offset gives us time to detect an offense and then vote on it in a later round. For instance, a `DATA_WITHHOLDING` offense for slot S is only triggered after `DATA_WITHHOLDING_TOLERANCE_SLOTS` slots. Consider: - Slot S publishes a checkpoint - At slot S + tolerance, observers find missing data and want to slash the attesters - Voting on that slash needs to happen in a round that starts after detection - In terms of voting, this parameter means that in round R we are voting for the committee of epochs starting from (R - SLASH_OFFSET_IN_ROUNDS) * ROUND_SIZE_IN_EPOCHS. - For example, with SLASH_OFFSET_IN_ROUNDS=2, ROUND_SIZE=10, and EPOCH_DURATION=2 - In round 4, we are voting for the committee of epochs starting from (4 - 2) * 10 = 20 (i.e., epochs 20-29) Considerations: - Only the designated proposer for each slot can submit votes - Votes are signed using EIP-712 - Votes include slot numbers to prevent replay attacks - Committee commitments are verified against onchain data - Rounds have a lifetime limit - Uses circular storage to limit memory usage while maintaining recent round data Integration with Aztec system: - Connects to the main Rollup contract (INSTANCE) to get proposer information and committee data - Uses the Slasher contract to execute actual slashing operations - Coordinates with validator selection of the Rollup instance to identify which validators should be slashed - Supports the Rollup's security model by enabling punishment of misbehaving validators Parameters and configuration: - QUORUM: Minimum votes needed to slash a validator - ROUND_SIZE: Number of slots per voting round - EXECUTION_DELAY_IN_ROUNDS: Rounds to wait before allowing execution - LIFETIME_IN_ROUNDS: Maximum age of rounds that can still be executed - SLASH_OFFSET_IN_ROUNDS: How far back to look for validators to slash - SLASH_AMOUNT_SMALL/MEDIUM/LARGE: Specific amounts for each slash unit level - COMMITTEE_SIZE: Number of validators per committee\",\"errors\":{\"Create2EmptyBytecode()\":[{\"details\":\"There's no code to deploy.\"}],\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"RoundExecuted(uint256,uint256)\":{\"params\":{\"round\":\"The round number that was executed\",\"slashCount\":\"The number of validators that were slashed in this round\"}},\"VoteCast(uint256,uint256,address,uint256)\":{\"params\":{\"proposer\":\"The address of the proposer who cast the vote\",\"round\":\"The round number in which the vote was cast\",\"slot\":\"The slot in which the vote was cast\",\"voteIndex\":\"The position of the vote within the round, from 0 to the round's vote count (exclusive), as accepted by getVotes\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Sets up all the voting and slashing parameters and validates their correctness. The constructor enforces several important invariants to ensure the system operates correctly.\",\"params\":{\"_committeeSize\":\"The number of validators in each committee (must be > 0)\",\"_epochDuration\":\"The number of slots in each epoch (used to calculate ROUND_SIZE_IN_EPOCHS)\",\"_executionDelayInRounds\":\"The number of rounds to wait after a round ends before it can be executed (provides time for review)\",\"_instance\":\"The address of the rollup contract that this slashing proposer will interact with\",\"_lifetimeInRounds\":\"The maximum age in rounds for which a round can still be executed (must be > _executionDelayInRounds and < ROUNDABOUT_SIZE)\",\"_quorum\":\"The minimum number of votes required to slash a validator (must be > ROUND_SIZE/2 and <= ROUND_SIZE)\",\"_roundSize\":\"The number of slots in each voting round (must be > 1 and < MAX_ROUND_SIZE)\",\"_slashAmounts\":\"Array of 3 slash amounts [small, medium, large] for 1, 2, 3 unit votes (all must be > 0)\",\"_slashOffsetInRounds\":\"How many rounds in the past to look when determining which validators to slash (must be > 0)\",\"_slasher\":\"The slasher contract that will execute the actual slashing operations\"}},\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"executeRound(uint256,address[][])\":{\"details\":\"Can be called by anyone once a round has passed its execution delay but is still within its lifetime. The function tallies all votes cast during the round, identifies validators that reached the quorum threshold, and executes slashing by deploying a SlashPayload contract and calling the Slasher.\",\"params\":{\"_committees\":\"Array of validator committees slashed for each epoch in the round being executed. Must contain exactly ROUND_SIZE_IN_EPOCHS committees. Only committees with slashed validators will have their commitments verified against onchain data. Emits: - RoundExecuted: When the round execution completes, regardless of whether any slashing occurred Reverts with: - SlashingProposer__RoundAlreadyExecuted: If the round has already been executed - SlashingProposer__RoundNotComplete: If the round is not yet ready for execution or has expired - SlashingProposer__InvalidCommitteeCommitment: If any committee commitment doesn't match onchain data - SlashingProposer__InvalidNumberOfCommittees: If the number of committees doesn't match ROUND_SIZE_IN_EPOCHS\",\"_round\":\"The round number to execute (must be ready for execution based on timing constraints)\"}},\"getCurrentRound()\":{\"details\":\"Calculates the current round by dividing the current slot number by ROUND_SIZE. This determines which voting round is currently active.\",\"returns\":{\"_0\":\"The current SlashRound number\"}},\"getPayloadAddress(uint256,(address,uint256)[])\":{\"details\":\"Uses CREATE2 to predict the deployment address based on the round number and slash actions. Returns zero address if no actions are provided. The address is deterministic and will be the same across multiple calls with identical parameters.\",\"params\":{\"_actions\":\"Array of SlashAction structs containing validator addresses and slash amounts\",\"_round\":\"The round number that will be mixed into the CREATE2 salt\"},\"returns\":{\"_0\":\"The predicted deployment address of the SlashPayload contract, or zero address if no actions\"}},\"getRound(uint256)\":{\"params\":{\"_round\":\"The round number to retrieve information for\"},\"returns\":{\"isExecuted\":\"True if the round has already been executed and slashing has occurred\",\"voteCount\":\"The total number of votes that have been cast in this round by proposers\"}},\"getSlashTargetCommittees(uint256)\":{\"details\":\"This is an expensive call. It is not marked as view since `getEpochCommittee` may modify rollup state. If `getEpochCommittee` throws (eg committee not yet formed), an empty committee is returned for that epoch.\",\"params\":{\"_round\":\"The round number to load committees for\"},\"returns\":{\"committees\":\"Array of committees, one for each epoch in the round (may contain empty arrays for early epochs)\"}},\"getSlashTargetEpoch(uint256,uint256)\":{\"details\":\"Calculates which epoch's validators are being voted on for slashing in a given round. The epoch is determined by looking back SLASH_OFFSET_IN_ROUNDS rounds from the voting round and then adding the epoch index within that round.\",\"params\":{\"_epochIndex\":\"The index of the epoch within the round (must be 0 to ROUND_SIZE_IN_EPOCHS-1)\",\"_round\":\"The round number during which voting is taking place\"},\"returns\":{\"epochNumber\":\"The epoch number whose validators will be considered for slashing Reverts with: - SlashingProposer__VotingNotOpen: If the round is less than SLASH_OFFSET_IN_ROUNDS\"}},\"getTally(uint256,address[][])\":{\"details\":\"This function is intended for offchain querying and analysis of voting results. It uses transient storage when calling getEpochCommittee on the rollup contract. Returns the same slash actions that would be executed if executeRound() were called for this round.\",\"params\":{\"_committees\":\"The list of committees to consider for the tally (get them via `getSlashTargetCommittees`)\",\"_round\":\"The round number to analyze and return tally results for\"},\"returns\":{\"_0\":\"actions Array of SlashAction structs containing validator addresses and slash amounts for all validators that reached the quorum threshold in this round\"}},\"getVoteSignatureDigest(bytes,uint256)\":{\"details\":\"Creates a typed data hash according to EIP-712 standard that includes both the vote data and the slot number. The slot number inclusion prevents votes from being replayed in different slots, ensuring each vote is tied to a specific time.\",\"params\":{\"_slot\":\"The slot number when the vote is being cast (prevents replay attacks)\",\"_votes\":\"The encoded vote data that will be signed by the proposer\"},\"returns\":{\"_0\":\"The EIP-712 compliant signature digest that should be signed by the proposer\"}},\"getVotes(uint256,uint256)\":{\"params\":{\"_index\":\"The index to retrieve votes for\",\"_round\":\"The round number to retrieve votes for\"},\"returns\":{\"_0\":\"The votes retrieved\"}},\"isRoundReadyToExecute(uint256,uint256)\":{\"params\":{\"_round\":\"The round number to check\",\"_slot\":\"The slot number at which to evaluate readiness (typically current or slot)\"}},\"vote(bytes,(uint8,bytes32,bytes32))\":{\"details\":\"Only the current checkpoint proposer can submit votes, enforced via EIP-712 signature verification. Each byte in the votes encodes slash amounts for 4 validators using 2 bits each (0-3 units each). The vote includes the current slot number to prevent replay attacks.\",\"params\":{\"_sig\":\"EIP-712 signature from the current proposer proving authorization to vote. Signature covers the vote data and current slot number. Emits: - VoteCast: When the vote is successfully recorded, carrying the vote's index within the round Reverts with: - SlashingProposer__VotingNotOpen: If current round is less than SLASH_OFFSET_IN_ROUNDS - SlashingProposer__InvalidSignature: If signature verification fails - SlashingProposer__InvalidVoteLength: If vote data length is incorrect - SlashingProposer__VoteAlreadyCastInCurrentSlot: If proposer already voted in this slot\",\"_votes\":\"Encoded voting data where each byte represents slash amounts for 4 validators. Bits 0-1 for first validator, bits 2-3 for second, bits 4-5 for third, bits 6-7 for fourth. Length must equal (COMMITTEE_SIZE * ROUND_SIZE_IN_EPOCHS) / 4 bytes.\"}}},\"stateVariables\":{\"COMMITTEE_SIZE\":{\"details\":\"Used to determine vote encoding length and validator indexing\"},\"EXECUTION_DELAY_IN_ROUNDS\":{\"details\":\"Provides time for review and potential challenges before slashing occurs\"},\"INSTANCE\":{\"details\":\"Used to query current proposers, committee data, and slot information\"},\"LIFETIME_IN_ROUNDS\":{\"details\":\"Prevents execution of very old rounds that may no longer be relevant\"},\"MAX_ROUND_SIZE\":{\"details\":\"Hard limit to prevent excessive gas usage and storage requirements. Also serves as the maximum number of slots per round.\"},\"QUORUM\":{\"details\":\"Must be greater than ROUND_SIZE/2 to ensure majority agreement\"},\"ROUNDABOUT_SIZE\":{\"details\":\"Determines how many recent rounds can be kept in storage simultaneously. Older rounds are overwritten as new rounds are created. Must be larger than LIFETIME_IN_ROUNDS to prevent data corruption.\"},\"ROUND_SIZE\":{\"details\":\"Determines the duration of voting periods and must be a multiple of epoch duration\"},\"ROUND_SIZE_IN_EPOCHS\":{\"details\":\"Calculated as ROUND_SIZE / epoch duration, determines how many committees are voted on per round\"},\"SLASHER\":{\"details\":\"Receives SlashPayload contracts from this proposer to perform validator punishment\"},\"SLASH_AMOUNT_SMALL\":{\"details\":\"Validators can be voted to be slashed by 1-3 units, multiplied by this base amount\"},\"SLASH_OFFSET_IN_ROUNDS\":{\"details\":\"During round N, we cannot slash the validators from the epochs of the same round, since the round is not over, and besides we would be asking the current validators to vote to slash themselves. So during round N we look at the epochs spanned during round N - SLASH_OFFSET_IN_ROUNDS. This offset means that the epochs we slash are complete, and also gives nodes time to detect any misbehavior (eg slashing for prunes requires the proof submission window to pass).\"},\"SLASH_PAYLOAD_IMPLEMENTATION\":{\"details\":\"Single instance deployed once and used as template for all slash payload clones\"},\"VOTE_TYPEHASH\":{\"details\":\"Defines the structure: Vote(bytes votes,uint256 slot) for EIP-712 signing\"}},\"title\":\"SlashingProposer\",\"version\":1},\"userdoc\":{\"events\":{\"RoundExecuted(uint256,uint256)\":{\"notice\":\"Emitted when a slashing round is executed and validators are slashed\"},\"VoteCast(uint256,uint256,address,uint256)\":{\"notice\":\"Emitted when a proposer casts a vote in a slashing round\"}},\"kind\":\"user\",\"methods\":{\"COMMITTEE_SIZE()\":{\"notice\":\"Number of validators per committee\"},\"EXECUTION_DELAY_IN_ROUNDS()\":{\"notice\":\"Number of rounds to wait after a round ends before it can be executed\"},\"INSTANCE()\":{\"notice\":\"Address of the main rollup contract that this slashing proposer integrates with\"},\"LIFETIME_IN_ROUNDS()\":{\"notice\":\"Maximum age in rounds for which a round can still be executed\"},\"MAX_ROUND_SIZE()\":{\"notice\":\"Maximum number of votes that can be cast in a single round\"},\"QUORUM()\":{\"notice\":\"Minimum number of votes required to slash a validator\"},\"ROUNDABOUT_SIZE()\":{\"notice\":\"Size of the circular storage buffer for round data\"},\"ROUND_SIZE()\":{\"notice\":\"Number of slots per slashing round\"},\"ROUND_SIZE_IN_EPOCHS()\":{\"notice\":\"Number of epochs per slashing round\"},\"SLASHER()\":{\"notice\":\"The slasher contract that executes actual slashing operations\"},\"SLASH_AMOUNT_LARGE()\":{\"notice\":\"Large slash amount for 3 unit votes (in wei)\"},\"SLASH_AMOUNT_MEDIUM()\":{\"notice\":\"Medium slash amount for 2 unit votes (in wei)\"},\"SLASH_AMOUNT_SMALL()\":{\"notice\":\"Base amount of stake to slash per slashing unit (in wei)Small slash amount for 1 unit votes (in wei)\"},\"SLASH_OFFSET_IN_ROUNDS()\":{\"notice\":\"How many rounds in the past to look when determining which validators to slash\"},\"SLASH_PAYLOAD_IMPLEMENTATION()\":{\"notice\":\"The implementation contract for SlashPayload clones\"},\"VOTE_TYPEHASH()\":{\"notice\":\"EIP-712 type hash for the Vote struct used in signature verification\"},\"constructor\":{\"notice\":\"Initializes the SlashingProposer with configuration parameters\"},\"executeRound(uint256,address[][])\":{\"notice\":\"Execute the slashing round by tallying votes and executing slashes for validators that reached quorum\"},\"getCurrentRound()\":{\"notice\":\"Get the current round number based on the current slot from the rollup\"},\"getPayloadAddress(uint256,(address,uint256)[])\":{\"notice\":\"Get the deterministic address where a slash payload would be deployed for given actions\"},\"getRound(uint256)\":{\"notice\":\"Get information about a specific slashing round's status and voting data\"},\"getSlashTargetCommittees(uint256)\":{\"notice\":\"Load committees for all epochs to be potentially slashed in a round from the rollup instance\"},\"getSlashTargetEpoch(uint256,uint256)\":{\"notice\":\"Get the epoch number that will be slashed during a specific round at a given epoch index\"},\"getTally(uint256,address[][])\":{\"notice\":\"Get the tally results for a specific round, showing which validators would be slashed\"},\"getVoteSignatureDigest(bytes,uint256)\":{\"notice\":\"Generate the EIP-712 signature digest for a vote to prevent replay attacks\"},\"getVotes(uint256,uint256)\":{\"notice\":\"Get the votes for a specific `_round` at a specific `_index`\"},\"isRoundReadyToExecute(uint256,uint256)\":{\"notice\":\"Check if a specific slashing round is ready for execution\"},\"vote(bytes,(uint8,bytes32,bytes32))\":{\"notice\":\"Submit a vote for slashing validators from SLASH_OFFSET_IN_ROUNDS rounds ago\"}},\"notice\":\"Slashing proposer that aggregates validator votes to determine which validators should be slashed\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/slashing/SlashingProposer.sol\":\"SlashingProposer\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@aztec-blob-lib/=src/mock/libraries/\",\":@aztec/=src/\",\":@generated/=generated/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@oz/=lib/openzeppelin-contracts/contracts/\",\":@test/=test/\",\":@zkpassport-test/=lib/circuits/src/solidity/test/\",\":@zkpassport/=lib/circuits/src/solidity/src/\",\":circuits/=lib/circuits/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0x1206c89e10de6977cbeda13f01c7956c1159cf9f8565aa56b8f05f7c838429bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1d3b3da61df7796a528ec9abfbb63288cf3ac63e3c736407ae4eed2bca018695\",\"dweb:/ipfs/QmYgttRpNJeRgjzL2rwMEHjFuVXABxPGApe5bpmsHtdfjE\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x4251fed1ac036ad28996501522371736318527d7bf2bf7d66fbd2769d6c4771b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2df261bd4de240f54c5829faeaf0ffc919a01f1497cf7ffd8a9a544bdec8fca\",\"dweb:/ipfs/Qmb9ndUuv9RZPKJXZGzjVuhmNuoizxuGRn4QMBmdmLcxS3\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Create2.sol\":{\"keccak256\":\"0xbb7e8401583d26268ea9103013bcdcd90866a7718bd91105ebd21c9bf11f4f06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://866a11ad89c93ee918078f7a46ae31e17d89216ce64603f0d34be7ed0a5c520e\",\"dweb:/ipfs/QmW3ckLEJg2v2NzuVLNJFmRuerGSipw6Dzg6ntbmqbAGoC\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x8447b57b63810fe2e367c09496a966f143ec0e825d71ddb9fce2506cff84b618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://996cb48f793bf151555045b37138e36b3cdb31d6bc6552d3149285260be00cfb\",\"dweb:/ipfs/QmcLaTTMNVbkMx58xhkp6GeFt4V3GtSyupZuaKG3vYW2Zc\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x9e82c00fb176503860139c6bbf593b1a954ee7ff97ab2969656571382b9b58a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34b4eb157b44d4441315db65561ba7cf0fe909dc598c2cfd7080d203077d5b57\",\"dweb:/ipfs/QmcNdvK3kDUAUr48urHxoeHd1TqVDya4YfZTM66i4goEJn\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x2c33f654cefbbe80a9b436b5792cfe8bda2e87f139f110073c99762558db252f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc7ebd80046a52f28978cf46a24ff3e4c8568264ab6bb138038951c75d576167\",\"dweb:/ipfs/QmQQjXVr4CbDR3DXd8GHEqn3JSJYTnbBHMJp9tvc29yXrc\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol\":{\"keccak256\":\"0x3616f1b0d0a9ee1ca8f0953ecaceb9230e36f691c7974d30f964212acff52d2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4bebdd07b31ac28e3e596ac6f0333da90a4e332405aa7d65f3a3a7e0b4cf15e\",\"dweb:/ipfs/QmckoDU5bBnye2UtPcrfJNahLD2FbxrnPP9nrREMWPpnug\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f\",\"dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz\"]},\"src/core/interfaces/IEscapeHatch.sol\":{\"keccak256\":\"0x1a499acad8813b56e7d9cdcff3152e36196482794e62302e95a28603f5915747\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://18da3711ad1fbc413336c252709e1ad32d51092336fbe6c2428b48768f58352c\",\"dweb:/ipfs/QmdkMJiH1pdcuoLe5zPHeMtnFhZ1k7PLZJtoWQUcpcm4bJ\"]},\"src/core/interfaces/IFeeJuicePortal.sol\":{\"keccak256\":\"0xce84c8907395b4c11cc6dd8035d8e14560153450f9d88340cfb8abb914c66639\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f5eb389f1a6e9adbb2f24dad7a6c0bc706d49decad82ba9b582c288e12eddda6\",\"dweb:/ipfs/QmNM3uQmJYn9B6RAHSMUT3TZMR6R75okjJErUEsuRjxGXt\"]},\"src/core/interfaces/IRollup.sol\":{\"keccak256\":\"0x4885f9bbf279f63143fa0ccd21ce4918fd34eef9ce4ba871c78c22ae6c174f8b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c3eac7f06a1db468466f6e977fc204b4106808d0293ca57d336004ed33cc0add\",\"dweb:/ipfs/QmUzzFrVi15V2WRFsgpSmDQBfPUbbA4ochmZD55VhovJBR\"]},\"src/core/interfaces/ISequencerRewardCalculator.sol\":{\"keccak256\":\"0xb7fb4ad1c171762783aecdd5e85036e71990438fc11e1121842b31c431ff0c67\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://15bf6fea8074c7a5f71860b325786d2dd5b625cbfb5b0bd4d0fc4f1a5f566d5a\",\"dweb:/ipfs/QmTH4XovGivVCs4Hp6PT3UVKLrSCPPtv1mmtvUeALVCnAZ\"]},\"src/core/interfaces/ISlasher.sol\":{\"keccak256\":\"0xf7dc3b2795b2806dbec7c94c33665abcf00a35ee65802a47f6222faf8641d302\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d7c9283746c66f04df5a133145b3196fc176e06e2fe6b3285056ffac68a09e9b\",\"dweb:/ipfs/QmPxTkM1eMNFny3yibc69p1GqWvPkno5fzBjyju89h7CNk\"]},\"src/core/interfaces/IStaking.sol\":{\"keccak256\":\"0x81ddf8fa0cf8a213d690845fd4d3e31e45c543e5876612e94607cdb753804f1d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7e0ae2a10903274cca7231306660dd6d5d1e5632238618b390aa7f4dfa5422f3\",\"dweb:/ipfs/QmTMXRYdNGnmecbUdREFfgsLwnMsRjDseLVXsvPqQoiago\"]},\"src/core/interfaces/IValidatorSelection.sol\":{\"keccak256\":\"0xe22dc335f3fd5f5cbf10928fa7e9e945ea8a04fa99362ec6e2022c862d7baca4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e26be09d3c823c545a2252467e13b68d366f3e711e15085be09f565ac436acc9\",\"dweb:/ipfs/QmS1ddcZteAjeojaJJz1ZgRPdynzpNu1HSSPbmEjJNe99G\"]},\"src/core/interfaces/IVerifier.sol\":{\"keccak256\":\"0xf5b6025ff3d59b8922bb45fb05786764e74109b4a349d206b8a7979f46484c55\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://98ec47ac3e15b1d8f2c80854ed6fd83e655e9e96341bb827f3be8e6b47f4c7fb\",\"dweb:/ipfs/QmcmUkLgM7fb7mEaJTiWJWrZTW2kAWtRcYS6imBfmueALe\"]},\"src/core/interfaces/messagebridge/IInbox.sol\":{\"keccak256\":\"0x1149c904c8b3bd2942628fbab5480cdc044e831d51963f9e6946f1974cc162bd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://af2f1f49feba389b0bdbf427c4a85fac2908699585e5babd75f77cf14416ed5f\",\"dweb:/ipfs/QmZYjZyhicCpTcwPuWTjTTUxnaBnfv5bTMWDgxyDGqy8Gm\"]},\"src/core/interfaces/messagebridge/IOutbox.sol\":{\"keccak256\":\"0xf66d0bb4f6d978acf91a036737cd4326bfab16a4030d10510d2976e4218ed8ad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e796eea21d552b2ca4d0446bb096e2c980ab84816d9dd1398113293ae8128b30\",\"dweb:/ipfs/QmNuGgRtPFgRe3asa68vDMcWpyfDFqQ5w5j5U7yWD1EsyZ\"]},\"src/core/libraries/ConstantsGen.sol\":{\"keccak256\":\"0xe328f94338f5563669e04618c3ec21ec38b9f21ab24d5de698d80cf38f977dfa\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3d9872c9a78d7241053e9ce3eadf192d18a9cb4b95c0ac120470d92435b7216e\",\"dweb:/ipfs/QmcRnfbW8sNWwRHPik4wvkA7CTY1BTjuf2ydu3jN5otQJT\"]},\"src/core/libraries/DataStructures.sol\":{\"keccak256\":\"0x5ea9d1097f0b53eafbd72332d4c5c517307e5a056266befe5b46f5f43ee3d83c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1a742311dc3c5ead2d5361549f017d20f46c40a4e74e879823ac168cf5b572d4\",\"dweb:/ipfs/QmTNDc1fiPti41QqJTJQoV9uduB6eXaQhbfq1hfVVjVNvS\"]},\"src/core/libraries/Errors.sol\":{\"keccak256\":\"0x282e22d0eb9cd8f22f7bfaef3c3e3cad5461734d6e421f392b372a146c83d467\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5c250d031a44b257109f81417bb89c0e5b99d44bb17a55379695061afa9d3ef1\",\"dweb:/ipfs/QmenxQJyukQT7KkCsfXV6by3VU6qumEUnK4EH4mqHAw6iK\"]},\"src/core/libraries/HatchMath.sol\":{\"keccak256\":\"0xca787b2889e281c8db132043312aa9513315669782981689824344c910833fe4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://77ec2f6b5919d53d3a7128f6006155f2566a84e7a56cd26e9d5e6d1514ccd7a2\",\"dweb:/ipfs/Qmc3Z2quujEwxQU1JBfrxhkiULaczspBsTMjXibqXCjFyd\"]},\"src/core/libraries/SlashPayloadLib.sol\":{\"keccak256\":\"0xb9322072eea0036dec74a9222a92a7fcb2518db4491764125eedb63f90f9c830\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7b7ea317d170f1667e921f8957ea1de4452280f5274bfd9391b6efd6db2e64c8\",\"dweb:/ipfs/QmQs5H78G9LxEzHmYNLDqipgVn1n8Txc94Whc4dLbB25u6\"]},\"src/core/libraries/SlashRoundLib.sol\":{\"keccak256\":\"0x6773eea1fa593e5c1e16fcd3a8341b537bf5ed7ee2f10472649dfd542e3ade8e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://756bdaa3facd4034149eeb3553ae99777b646c3e16abf8d41f9558e74249baa6\",\"dweb:/ipfs/QmNpb62diGKNKf5pcynejjhNex9c6PTkZnVUeuLvJ2qCZ9\"]},\"src/core/libraries/StakingQueue.sol\":{\"keccak256\":\"0xbbeafda1659a92be14ec5b77838952a089f075cc1d0c5f348b6ff336ea6a1a98\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f3c8bdb1de77dab697ef4442f72fa4830c757059f8d948d2f3aeb7f6983aa64f\",\"dweb:/ipfs/QmSDYdTnFo8nx34q3fdJCKpy8DCnKBQ4isxr49o4sY5T6T\"]},\"src/core/libraries/TimeLib.sol\":{\"keccak256\":\"0x865b760fe681ee74a93b49491d897a98091432ebc2923ff17717ddb6d26d31ab\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4ccdfb80464d8e58a95a68314fe2dd33f4a1634ab0695a9a4e9c180a50cc592b\",\"dweb:/ipfs/QmNUUFN7RTjiicZCkci6eEnfromVTPS2MVE4CkbqoneV6P\"]},\"src/core/libraries/compressed-data/CheckpointLog.sol\":{\"keccak256\":\"0x613513b7eb7855ff619c9eb3f1589fcfb0d7675e15c5261034ac353a62c5cabf\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://110e7cc1eae76116a6682a9044cf9031744a7a8c46164987e246923169618d5e\",\"dweb:/ipfs/QmcuhMXiGWjAbYGYYXKrTCLNYguQZpgxpWVWteJezYKVzQ\"]},\"src/core/libraries/compressed-data/StakingQueueConfig.sol\":{\"keccak256\":\"0x32b00fd08e1754d9d9c9b377ae0a0ea887ace519db0ec6d252e1b2216891068e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4ecea0a1ff8536819d37d3800b2915249b5c854d9dc611e91aae81df6acf7d76\",\"dweb:/ipfs/Qmf3FgXCf1MP78p5B76kQnwx8yXFXncutVzQhV2fteBvVn\"]},\"src/core/libraries/compressed-data/Tips.sol\":{\"keccak256\":\"0xdf872f54470e59b86349871e2c12075e8daaad85894f90e64f92538daf5f4008\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://493e4bc02c6e9acbb5bfaa68f19bf4defb409211b701784e43d2ca6cbc11ccd1\",\"dweb:/ipfs/QmSUahndZ78LBx6WdozXWL6QkqxZXzrXpHna2kGwCqgy34\"]},\"src/core/libraries/compressed-data/fees/FeeConfig.sol\":{\"keccak256\":\"0xd5593d342fd9e75cf10d9c126d5aa46eab6707221111d81757e0f5c3473c23fd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5cdfdfa94ea9d7b93cb80bdbd9e81c80fc7d71de890d88bb957960d0d5734298\",\"dweb:/ipfs/QmQ2VjHtpja19AxDnGg2Q5hCck678PUrfLDuwUNvcyo4YS\"]},\"src/core/libraries/compressed-data/fees/FeeStructs.sol\":{\"keccak256\":\"0x23304769b5d5098b6d6b1092be483f34c0c901d7e14667404e8c5335dad8b501\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9ef5000b6a27a338f60dad80f73ea03d6560afc46c063d8d52932574d82cf157\",\"dweb:/ipfs/QmSzdqmERrrCqdfqy4jXhdiyokyNRLvi4qLp85iw8rR9iJ\"]},\"src/core/libraries/crypto/Hash.sol\":{\"keccak256\":\"0x0e2bad615ee34b98ffdc7b81558e78ad3701cf8e02dc0fa4721555b4cdb861cb\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://8f69943a9ad3fba8a12ae34b3d60815c4339ea66a5ec75beb781d22a872c2d4d\",\"dweb:/ipfs/QmTfjRk9vBaxfziFgwYzWgTWFEvbB8EEudkcYupPw6qLXW\"]},\"src/core/libraries/crypto/SampleLib.sol\":{\"keccak256\":\"0x59e87e7d6a1e966c0f73bd919825ff7d81dc898625fe9fd20e6786e10b43783e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a931d31192faf6d9d9c82fc7099a776b5886d90dd0a2a9ee8093cc680dfdef70\",\"dweb:/ipfs/QmbQjTTf96tr2WSiuoWK8k984dGuXKooZWZ5o9EL7wEPhv\"]},\"src/core/libraries/rollup/AttestationLib.sol\":{\"keccak256\":\"0xf2111c30dc0d6c81d4f990990dfa37813932180e2b94739050356c5942f316e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fc4d8c42797fa58646094be9e108a60a278f2c2beea06bd7b06b00933b00c5b9\",\"dweb:/ipfs/QmdNPs36gak9y4YoCQq2ttv1nj8ALyab6f9P7SoozECrfN\"]},\"src/core/libraries/rollup/BlobLib.sol\":{\"keccak256\":\"0x5b0d454bd38592154954f1da4cc59f50a036d0a28a169401abd9b5fdb88a4fe1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://68cf3a3fa979a6cfdc618e66621a0233263a83c259b17f6193fb0339796bee9d\",\"dweb:/ipfs/QmcRKQmFf8mZxWKUT7Vgg3LnTxVsCen5f8TnMqCQMGi2j6\"]},\"src/core/libraries/rollup/CoordinationSignatureLib.sol\":{\"keccak256\":\"0x939c2aa29f536822f1f35db30af3b783986612bb35a210c583247f764c39dfae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6f5e71fe318f83063eda2027992740e7be7e0274887b4c11ab00ef3199398729\",\"dweb:/ipfs/QmPGkRVfkoLj8bi95vyySrtFeTaUGf62qcWoBy1nZRjZQc\"]},\"src/core/libraries/rollup/FeeLib.sol\":{\"keccak256\":\"0x78cccc8618137ebda0ca1cb68071a6458eff5c1e4eecce22de77c7479cb2f917\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://eb96d87ba3229de5d5a8e8cd9e1c29438789e578f915d787f2f7c0788f380679\",\"dweb:/ipfs/Qma3VYid6EyGtNCLertDyViT1Z8Ma1vNnc7EAEmJfxf8t9\"]},\"src/core/libraries/rollup/FieldLib.sol\":{\"keccak256\":\"0xd09f77d3aa6d7efc844e99bd496a145171613825bc45d35e1518889098f91e95\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://499d0aeb3c7b6801e49f7554110a194ebeca73bec4ddf4b00ea8dd64fcc4b2ac\",\"dweb:/ipfs/QmQf7EeP4kwTGPR2xfDK2MpNAqqcAY4vWZ3faEKn6JEW8R\"]},\"src/core/libraries/rollup/ProposeLib.sol\":{\"keccak256\":\"0x90d4fff721a1bcdbb555aad73a040ac1f0c3a61e286b0f291f47248129d8a777\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://988c7390ba413ae25939df5a9f8850649106627ddf453a60b472e31c32a97156\",\"dweb:/ipfs/QmXNPKm6y3bgTmjfeTMrY4sfBUFT4fLxZsMBBSC13Nt6oy\"]},\"src/core/libraries/rollup/ProposedHeaderLib.sol\":{\"keccak256\":\"0x43a9fa530b7cb948c1d7c436bddafdd8ddd8c022c67e25045372bc68b9e5018c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://904e4aa94b322f68c605dd34ea38bb77343437e2f2203c3e650cf7a7bb3aa19e\",\"dweb:/ipfs/QmX3H4PMwh57L5Zv3LFrHjkNmgVZiik4FmzSyJhnTJcqPD\"]},\"src/core/libraries/rollup/RewardLib.sol\":{\"keccak256\":\"0x3a73a07577c713179be2de8df601445e79c606afb42f74bed33d1000c6f14ff8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e432e402f6721bf70849ae3d731dcc669abeeb7df8399c878cc946fea0657a1a\",\"dweb:/ipfs/QmYuGKQvN9iFhQpKLo6Rd7oTkMZx6VfdrJFh6tVgLEDg5M\"]},\"src/core/libraries/rollup/STFLib.sol\":{\"keccak256\":\"0xcb2ae0566bd5b0834f8ec2f73d78037f25d4d65894bff1ab8abcb9f8c65c7bc0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://35689b10ee3d4fff126625efa170fe77c617441fd7902d7376488af5061a79e0\",\"dweb:/ipfs/QmUzDZoMrpJAuhVYVGSruX4mj9jTJmSZncvoTHbsyZL7eM\"]},\"src/core/libraries/rollup/SequencerRewardCalculatorLib.sol\":{\"keccak256\":\"0x2d5e8efc5a87bec1d50a8c9df0696a8248e0905ab62dcd7ec6a51527ad33b604\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://15d4a7d1f265fc1a248762702373534fcae9d85df5150e5e1a45f79b94736ed4\",\"dweb:/ipfs/QmdAT5Aw6JSg5GJnTikfDtJHnJZuMib7L8GB3yQ4jMuiFr\"]},\"src/core/libraries/rollup/StakingLib.sol\":{\"keccak256\":\"0x6e3c96f937701c67570d902aca8d2f9a1ee35942e17b1e5a375b264582a6fe8c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ddb78c290af17a9574b89104177d2f1079c5abeb462446722b8fb09e03659ea6\",\"dweb:/ipfs/QmURXaGC2SRKZc36NQZ4SXqNtgY5MpYQRamS3Shn2GMAoe\"]},\"src/core/libraries/rollup/ValidatorSelectionLib.sol\":{\"keccak256\":\"0xea94ff99c5e47c51bbd4ffe8282447c7aae23065e255ec2d2806a11901ab1752\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4e5c466c3c0ca5834c41714ddd64e7e5a34e6c37a5d57ddbed40b567582746bb\",\"dweb:/ipfs/QmUYZ4KgwoUhxQCMtazUgj8tN6wkRHcakZ5rg5EjQq1XuU\"]},\"src/core/reward-boost/RewardBooster.sol\":{\"keccak256\":\"0x1cffe0dcbc06775ad415b06cd3591f74331bad3b154a3305ea6c5a081915fce0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a2fcdbdcc260b3330bae0bc61227f652f9cb68e175fbc7d4173bf1d2dfaa92d1\",\"dweb:/ipfs/QmddUmciRbznTTfBpbZf2p3R9sC1oePRF9C3Swnq8qU3Xb\"]},\"src/core/slashing/Slasher.sol\":{\"keccak256\":\"0xc3040cd1813a6064a6afda9ca8b1f65f5cba2e7359050c48507d2f71d3606786\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://73f73fac9ffe650304c68a49635604806b86b0a5baadbf59ef36931e7937bc51\",\"dweb:/ipfs/QmaMMMXycUeybJyf2ZowJgQ1Wo4ZC7g5kyp1BHWfj8dkD9\"]},\"src/core/slashing/SlashingProposer.sol\":{\"keccak256\":\"0x83021af7c9ea602728d0ea0c3a01b222bdfee96af341537473d81f6e1e70d32c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://65b80e908621361c40178ea2255d096f2ca323201b117de24bf561b5e7ca698f\",\"dweb:/ipfs/QmdKMw2sLn16jGZs9RjQnmxwkdsUrRzjJ3PLdZMPv8JceW\"]},\"src/governance/Bn254LibWrapper.sol\":{\"keccak256\":\"0xea39571de45fe0fec82d9e760998677eb2432e08c6cdb00c41efa58caf56e607\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1e470b821f3d87fa0c988c5f23a8deed3849bffd2527b3b4ee137a90e0c1264c\",\"dweb:/ipfs/QmW3M4HyRLDruV5AYXCKicFCiiczmwnSTtnwVKUnQSm7a8\"]},\"src/governance/GSE.sol\":{\"keccak256\":\"0xc19fa4868d78030e2411dd5cef6d0da09645ade1d1ea0c4374b284a89feb722a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d06396c249566d0e9de5d34eade2bf27c4d583005c0129787bf6c413dcd9e273\",\"dweb:/ipfs/QmcimKKiV9KqobS5wzPsKYzyYu5WezCF3gyHkekf5tjrUU\"]},\"src/governance/GSEPayload.sol\":{\"keccak256\":\"0x40e5385b008f0335b50e066c647bb906685511c9fef206ce90a3391468558bae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a129e87e1d57cf0813b14108cbdbcdd4c114b20f3f2d67477302d6d050120c7e\",\"dweb:/ipfs/QmRcQQkeDhkrmQha3nkA8qvXnGmF6nLhZMKAhMx61A7a5y\"]},\"src/governance/Governance.sol\":{\"keccak256\":\"0x07770c3d80369adae51be8e361f63a2aa5ec489b354b10c8590be1e294dfe2e5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7219becf3467ea8368dba0bd093ba932b165cf3f214e7286f652e2730bf42eaf\",\"dweb:/ipfs/QmTSCDhSQBTKhzGUk12phxhqohSba6yopYMzF5T5XPFUWw\"]},\"src/governance/interfaces/IBn254LibWrapper.sol\":{\"keccak256\":\"0xdd0a3de8b8ff67cf2bf090d04b4a37aa6d604f402db3328387d2466d2354464a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://daef0234547509cd7ae3a7babf0e50a8d1ca2894f1817e3e2409a50fd32947b9\",\"dweb:/ipfs/QmbwSedqnBfsqRnUq8XcXzoeoyhZTXJWJ9rpJn61BAJfej\"]},\"src/governance/interfaces/IEmpire.sol\":{\"keccak256\":\"0xe6a8a8c3fef8e6f9f5118bd40c63e951b13a59d5f885bbb979d38745ef760ed3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://940c1fe4138d7364ccdb7d5635ea90bafa1da274f680039b0b54ee8c2a275a9a\",\"dweb:/ipfs/QmX2EeoVyES18BMgcbKVDb36MCq8ooDVR98m2RmnmZjEAo\"]},\"src/governance/interfaces/IGovernance.sol\":{\"keccak256\":\"0xe420d305fbe7c35f4620cd1e0f05f9f4c5a91532621d21a64ea553a3d9a3c005\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1900ac41f945aa692d5228f134ae63840081d284bf89fdd2a06b45424fe359ff\",\"dweb:/ipfs/QmePFZ1xv5qfftJVDLc98XUVFsrpuKAbKZiro7MoMDTpoa\"]},\"src/governance/interfaces/IGovernanceProposer.sol\":{\"keccak256\":\"0x2be820a5452c481ffd329d68c46d0af6a286934963f26b36d363cd34fb0e5817\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f58839d1504e11e7da42b7f5a03fb9b9d8cc39ab4c16cfb86fa44c4de08df76f\",\"dweb:/ipfs/QmR6jUJozP9tfpZuSduk66E8n7WuL3zzsR3WHZ7BR2ZBX2\"]},\"src/governance/interfaces/IPayload.sol\":{\"keccak256\":\"0x5844ea725ce56ac8adeb20b2d37aa431ca087f68a65a7ca91f981be7458737c3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5ea670db51b2ccfac05a684b95458ecc015c9d12a6567c3f73d473386533f58c\",\"dweb:/ipfs/QmRUB8mckkGQ4nNsErRhnKMsD9SSkokRSpnr5XZC9dZdin\"]},\"src/governance/interfaces/IProposerPayload.sol\":{\"keccak256\":\"0x89068dd464c0bfb7d447c0e99728277e03c7c4b864208ead20321f0590187248\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4d1d9ba5f8b7da374d773acde9514ca6607ad31a3e83950caa097bdb8b0f9167\",\"dweb:/ipfs/Qmd7tWAD2Ubz434zZPJvuyAGsHYpXBHvVhVefLFzUudD2o\"]},\"src/governance/interfaces/IRegistry.sol\":{\"keccak256\":\"0xc3678c04c0945d3dc1d8007df3dc7f8b25d8108b0b25134842ffc5169f996ce8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://71e4e401f1a6f561262755cc2e1c347cd3aa79e67d2e52ca547864f49de01724\",\"dweb:/ipfs/QmPvoKFEDTb41DSC3MmDMqtM3trj5oZb1Jj2jtQSnNfHBn\"]},\"src/governance/interfaces/IRewardDistributor.sol\":{\"keccak256\":\"0xf263f75be83d0b0e3c8f17ec7fc2558d3543df788dcb2db6f1ee158208134f14\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b2b65819a5f9ecd2237957e987bb69160d3076ccaf9f76f925a936e574d63d76\",\"dweb:/ipfs/QmNgWESeo6UUvgW7rCMP3d4o8mUqSSbKrwbicH4kaUrm7h\"]},\"src/governance/libraries/AddressSnapshotLib.sol\":{\"keccak256\":\"0x1006e58059e0a1f0fef102f2f11f5649dffc7f2eb066fce51845e65a064f4210\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://de385ab9eb3bb66d7be1218b49ae9bba7d88797bcb375b9a7481a209d303a402\",\"dweb:/ipfs/QmZe6DTv3cACfdXNSMhbMhoefg31LW3uLxHLDC7nZhb4Yp\"]},\"src/governance/libraries/CheckpointedUintLib.sol\":{\"keccak256\":\"0xcd73cf7a62e4ac5cc79f7f8df8b35d5c5e4df5b8a3478bcbc2b29c9aa89ea4b4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f56f37060d39d3c9276f23c96be7f6b1ea44676312dbaa1ab16ab3bff6acebf1\",\"dweb:/ipfs/QmPDUEEgdbpTTs9r3fvdMYJo9akCRsWcJXyarBhQgcKb5q\"]},\"src/governance/libraries/ConfigurationLib.sol\":{\"keccak256\":\"0x7cb65bdbd8d077f3cfc01b065fb3a57628db36cd46f68885c74b9131198c2149\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e37bde50f5f739f479feb95fbe81ed24ee47f841b99f066ecf6782e758d1978a\",\"dweb:/ipfs/QmebPE5REUpYRB8dikUebcGtyk9uy44G9mbchKJtHxJAgy\"]},\"src/governance/libraries/DepositDelegationLib.sol\":{\"keccak256\":\"0x37fbca65ccabec9d901bd71d684dceec7c59fa5a05438fd209ea0d5e16e764c0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e42f2622978abc3ac84223a6b206201898d0269d20bf81539636c0999a0db9eb\",\"dweb:/ipfs/QmW4BgTjR6BuPxwxreKarUeK1u8gx3p9yFdDD4EsC5hkyb\"]},\"src/governance/libraries/Errors.sol\":{\"keccak256\":\"0x8861ea7508138c83e89f186ce17accb42a6eee7d1d2e52841975d4ba676daae4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b0d5b01c2b0a20c3c70a7ab2b8405d083a063bf5758beb87a4d488bda76078fa\",\"dweb:/ipfs/QmfGH6CTCPA6nVA6KidcTSvaJ6MQZkv6KiuDVBTARGBTRv\"]},\"src/governance/libraries/ProposalLib.sol\":{\"keccak256\":\"0x616ffbb24c4454ca9e223e85ff01e8dca139723d5cd312d5d6f6111d79782a90\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://192f9be3355a7a94d19ae4e5b397e5db19dde64ccc671e149da06dfaa2577192\",\"dweb:/ipfs/QmTDcm7XEFLe7o5cXUmuu5wQDyprU78AVMymiWvrmP4tHT\"]},\"src/governance/libraries/compressed-data/Ballot.sol\":{\"keccak256\":\"0xca07dc8cf36ac2beae7674804af144b34b3c5848153351c17d996e9b3293cd5d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6911cc49f1d6977c12f652063c14891697c1ffe49fdf36903c32a8ad73cbd012\",\"dweb:/ipfs/QmQBEZARCAAj1ZLcswkH6FwP1RP8uuNjYTHqthmE9Z5RnM\"]},\"src/governance/libraries/compressed-data/Configuration.sol\":{\"keccak256\":\"0x40744f275af22d33c38fd9c6a7b822292c9c87b17ac2c78abbef4eb8356fd9f9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://73c685be7e934516207827a59cbbeb7fc1164e7659dd3ec857a91cfea765b482\",\"dweb:/ipfs/QmQfudRpSSQnG9u4XV8iA2UAyDzQPFqWzpZy5NZbaD6htv\"]},\"src/governance/libraries/compressed-data/Proposal.sol\":{\"keccak256\":\"0x72cf619a21c8e95875c63d4361cbe1a815d9d67f36f3fe32b6c9ca4d9ab0d33a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d80f47beb3f91da3cc68264c86fc8fb8f0e4abaf9d92243ab3206407fceed5c6\",\"dweb:/ipfs/QmYyrBTDMfkTBu6EcKcSMR7JyfphZ5xH1VCQ8EHMQUvsoN\"]},\"src/governance/proposer/EmpireBase.sol\":{\"keccak256\":\"0x747b20e201dab632a831c12f1fee9ee52cc80a2098c77e8b6c7b09b0f3ba2bc0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b7d4a0475ca364f75aa2a1d17ed9e6970f0be605126f2efe26d53c791d4a5209\",\"dweb:/ipfs/Qma5tkTcy94PqE9vtQybQSyH9LWaHR8V3ubwDPZwiUNT35\"]},\"src/governance/proposer/GovernanceProposer.sol\":{\"keccak256\":\"0xa2829df5b65856c9f1d6bf490fb50616f14402ff8eece2e32b63828b8b9337c3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://8ad52830a7a3aed3477bf55f92c3d68cb1c16a5cf1d636227ab76a306c846607\",\"dweb:/ipfs/QmRonyZQZj5D1e2g4Y6Tmj2AEUnekL4pGmgdMT4ycRAM8m\"]},\"src/mock/libraries/BlobLib.sol\":{\"keccak256\":\"0xa1b19239c5c64ba1b0c9f83ec0a30059f10ded12bf40d5d7c3f65974752b3121\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5cbce7d0dd0096232d60ec5c6920f211ffcaa46c8675b1129c1f939a1ee84837\",\"dweb:/ipfs/QmSS2qUhzUuZY1qHDjWUGvHuMqMG3cjHoHeDVvgWsjMdA9\"]},\"src/periphery/SlashPayloadCloneable.sol\":{\"keccak256\":\"0xf3957502df4ba01cd0c05d5cd49488dbe38f4e182718013b3fef075da95a9e3f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1bd7cdf387e137d007f53388748fd12cbfd016127f78455e617fb55bc4a66b21\",\"dweb:/ipfs/QmVLHJ7hyuuSSLRmv3meDcRKiT42Duq4sEweBTmWMfSfk8\"]},\"src/shared/libraries/BN254Lib.sol\":{\"keccak256\":\"0x0c3a5b7dabde2f5c81f19e1a4a212308a8636b5bb4a16bb1a518d58ef4feb6f5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://870be6219c7081ed081cee2fa9ad1e7f3efff623ae1a59aed966f2bdcee65b7a\",\"dweb:/ipfs/QmNzohb1TazCgaT1e55CMDuuG7AHdGrGA6jvT4wzxdAM52\"]},\"src/shared/libraries/CompressedTimeMath.sol\":{\"keccak256\":\"0x361023cf30593e7e27417c91af3702e75235fcab251e4ad5ac2e47306a730ec1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9b192242472b3126c97a4a4e4fa792809a6bf20b548a57e677f5260c0dbf3ad3\",\"dweb:/ipfs/QmfK4WAucepcqzMLu11rs68HJazwfegVsgK5tTco82SooB\"]},\"src/shared/libraries/SignatureLib.sol\":{\"keccak256\":\"0xb69989f57384383341d1bb4693fb1e6ce31a2ab6c0fadb48bf088078a332a56a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f199be27853a14d746c567c5e3a473f474e84cfd3d119a6404e6ceff4e986e5c\",\"dweb:/ipfs/QmWsLozeiKLQbTSEUDVZK2ASEX3EodKxT4DdA9BA6bD6N2\"]},\"src/shared/libraries/TimeMath.sol\":{\"keccak256\":\"0x8da20dc8b4ce296b7c11f117a3381bfe5cd611a3512a74a500e2e54e0353417f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://18c74be98a4e31e8a16356e573514f639a8fc43928e741f6ead81dd755e9a914\",\"dweb:/ipfs/QmPDEdYYEj3DhXjrCDPuudJbhsBaNj1sK6hH94Z86168Q3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_instance","type":"address"},{"internalType":"contract ISlasher","name":"_slasher","type":"address"},{"internalType":"uint256","name":"_quorum","type":"uint256"},{"internalType":"uint256","name":"_roundSize","type":"uint256"},{"internalType":"uint256","name":"_lifetimeInRounds","type":"uint256"},{"internalType":"uint256","name":"_executionDelayInRounds","type":"uint256"},{"internalType":"uint256[3]","name":"_slashAmounts","type":"uint256[3]"},{"internalType":"uint256","name":"_committeeSize","type":"uint256"},{"internalType":"uint256","name":"_epochDuration","type":"uint256"},{"internalType":"uint256","name":"_slashOffsetInRounds","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"CloneArgumentsTooLong"},{"inputs":[],"type":"error","name":"Create2EmptyBytecode"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[],"type":"error","name":"FailedDeployment"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InvalidShortString"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"type":"error","name":"SignatureLib__InvalidSignature"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"SlashPayload_ArraySizeMismatch"},{"inputs":[{"internalType":"uint256","name":"committeeSize","type":"uint256"}],"type":"error","name":"SlashingProposer__CommitteeSizeMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"SlashingProposer__InvalidCommitteeCommitment"},{"inputs":[{"internalType":"uint256","name":"epochIndex","type":"uint256"},{"internalType":"uint256","name":"roundSizeInEpochs","type":"uint256"}],"type":"error","name":"SlashingProposer__InvalidEpochIndex"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"SlashingProposer__InvalidNumberOfCommittees"},{"inputs":[{"internalType":"uint256","name":"quorum","type":"uint256"},{"internalType":"uint256","name":"roundSize","type":"uint256"}],"type":"error","name":"SlashingProposer__InvalidQuorumAndRoundSize"},{"inputs":[],"type":"error","name":"SlashingProposer__InvalidSignature"},{"inputs":[{"internalType":"uint256[3]","name":"slashAmounts","type":"uint256[3]"}],"type":"error","name":"SlashingProposer__InvalidSlashAmounts"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"SlashingProposer__InvalidVoteLength"},{"inputs":[{"internalType":"uint256","name":"lifetime","type":"uint256"},{"internalType":"uint256","name":"executionDelay","type":"uint256"}],"type":"error","name":"SlashingProposer__LifetimeMustBeGreaterThanExecutionDelay"},{"inputs":[{"internalType":"uint256","name":"lifetime","type":"uint256"},{"internalType":"uint256","name":"roundabout","type":"uint256"}],"type":"error","name":"SlashingProposer__LifetimeMustBeLessThanRoundabout"},{"inputs":[],"type":"error","name":"SlashingProposer__QuorumMustBeGreaterThanZero"},{"inputs":[{"internalType":"SlashRound","name":"round","type":"uint256"}],"type":"error","name":"SlashingProposer__RoundAlreadyExecuted"},{"inputs":[{"internalType":"SlashRound","name":"round","type":"uint256"}],"type":"error","name":"SlashingProposer__RoundNotComplete"},{"inputs":[{"internalType":"SlashRound","name":"round","type":"uint256"},{"internalType":"SlashRound","name":"currentRound","type":"uint256"}],"type":"error","name":"SlashingProposer__RoundOutOfRange"},{"inputs":[{"internalType":"uint256","name":"roundSizeInEpochs","type":"uint256"}],"type":"error","name":"SlashingProposer__RoundSizeInEpochsMustBeGreaterThanZero"},{"inputs":[{"internalType":"uint256","name":"roundSize","type":"uint256"},{"internalType":"uint256","name":"epochDuration","type":"uint256"}],"type":"error","name":"SlashingProposer__RoundSizeMustBeMultipleOfEpochDuration"},{"inputs":[{"internalType":"uint256","name":"roundSize","type":"uint256"},{"internalType":"uint256","name":"maxRoundSize","type":"uint256"}],"type":"error","name":"SlashingProposer__RoundSizeTooLarge"},{"inputs":[{"internalType":"string","name":"info","type":"string"}],"type":"error","name":"SlashingProposer__SlashAmountMustBeGtZero"},{"inputs":[],"type":"error","name":"SlashingProposer__SlashAmountTooLarge"},{"inputs":[{"internalType":"uint256","name":"slashOffset","type":"uint256"}],"type":"error","name":"SlashingProposer__SlashOffsetMustBeGreaterThanZero"},{"inputs":[{"internalType":"Slot","name":"slot","type":"uint256"}],"type":"error","name":"SlashingProposer__VoteAlreadyCastInCurrentSlot"},{"inputs":[{"internalType":"uint256","name":"voteSize","type":"uint256"},{"internalType":"uint256","name":"maxSize","type":"uint256"}],"type":"error","name":"SlashingProposer__VoteSizeTooBig"},{"inputs":[{"internalType":"uint256","name":"votes","type":"uint256"}],"type":"error","name":"SlashingProposer__VotesMustBeMultipleOf4"},{"inputs":[{"internalType":"SlashRound","name":"currentRound","type":"uint256"}],"type":"error","name":"SlashingProposer__VotingNotOpen"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"SlashRound","name":"round","type":"uint256","indexed":true},{"internalType":"uint256","name":"slashCount","type":"uint256","indexed":false}],"type":"event","name":"RoundExecuted","anonymous":false},{"inputs":[{"internalType":"SlashRound","name":"round","type":"uint256","indexed":true},{"internalType":"Slot","name":"slot","type":"uint256","indexed":true},{"internalType":"address","name":"proposer","type":"address","indexed":true},{"internalType":"uint256","name":"voteIndex","type":"uint256","indexed":false}],"type":"event","name":"VoteCast","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"COMMITTEE_SIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"EXECUTION_DELAY_IN_ROUNDS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"INSTANCE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LIFETIME_IN_ROUNDS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_ROUND_SIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"QUORUM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ROUNDABOUT_SIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ROUND_SIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ROUND_SIZE_IN_EPOCHS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER","outputs":[{"internalType":"contract ISlasher","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASH_AMOUNT_LARGE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASH_AMOUNT_MEDIUM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASH_AMOUNT_SMALL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASH_OFFSET_IN_ROUNDS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASH_PAYLOAD_IMPLEMENTATION","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VOTE_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"SlashRound","name":"_round","type":"uint256"},{"internalType":"address[][]","name":"_committees","type":"address[][]"}],"stateMutability":"nonpayable","type":"function","name":"executeRound"},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentRound","outputs":[{"internalType":"SlashRound","name":"","type":"uint256"}]},{"inputs":[{"internalType":"SlashRound","name":"_round","type":"uint256"},{"internalType":"struct SlashingProposer.SlashAction[]","name":"_actions","type":"tuple[]","components":[{"internalType":"address","name":"validator","type":"address"},{"internalType":"uint256","name":"slashAmount","type":"uint256"}]}],"stateMutability":"view","type":"function","name":"getPayloadAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"SlashRound","name":"_round","type":"uint256"}],"stateMutability":"view","type":"function","name":"getRound","outputs":[{"internalType":"bool","name":"isExecuted","type":"bool"},{"internalType":"uint256","name":"voteCount","type":"uint256"}]},{"inputs":[{"internalType":"SlashRound","name":"_round","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getSlashTargetCommittees","outputs":[{"internalType":"address[][]","name":"committees","type":"address[][]"}]},{"inputs":[{"internalType":"SlashRound","name":"_round","type":"uint256"},{"internalType":"uint256","name":"_epochIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"getSlashTargetEpoch","outputs":[{"internalType":"Epoch","name":"epochNumber","type":"uint256"}]},{"inputs":[{"internalType":"SlashRound","name":"_round","type":"uint256"},{"internalType":"address[][]","name":"_committees","type":"address[][]"}],"stateMutability":"view","type":"function","name":"getTally","outputs":[{"internalType":"struct SlashingProposer.SlashAction[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"validator","type":"address"},{"internalType":"uint256","name":"slashAmount","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes","name":"_votes","type":"bytes"},{"internalType":"Slot","name":"_slot","type":"uint256"}],"stateMutability":"view","type":"function","name":"getVoteSignatureDigest","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"SlashRound","name":"_round","type":"uint256"},{"internalType":"uint256","name":"_index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getVotes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"SlashRound","name":"_round","type":"uint256"},{"internalType":"Slot","name":"_slot","type":"uint256"}],"stateMutability":"view","type":"function","name":"isRoundReadyToExecute","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes","name":"_votes","type":"bytes"},{"internalType":"struct Signature","name":"_sig","type":"tuple","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"vote"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Sets up all the voting and slashing parameters and validates their correctness. The constructor enforces several important invariants to ensure the system operates correctly.","params":{"_committeeSize":"The number of validators in each committee (must be > 0)","_epochDuration":"The number of slots in each epoch (used to calculate ROUND_SIZE_IN_EPOCHS)","_executionDelayInRounds":"The number of rounds to wait after a round ends before it can be executed (provides time for review)","_instance":"The address of the rollup contract that this slashing proposer will interact with","_lifetimeInRounds":"The maximum age in rounds for which a round can still be executed (must be > _executionDelayInRounds and < ROUNDABOUT_SIZE)","_quorum":"The minimum number of votes required to slash a validator (must be > ROUND_SIZE/2 and <= ROUND_SIZE)","_roundSize":"The number of slots in each voting round (must be > 1 and < MAX_ROUND_SIZE)","_slashAmounts":"Array of 3 slash amounts [small, medium, large] for 1, 2, 3 unit votes (all must be > 0)","_slashOffsetInRounds":"How many rounds in the past to look when determining which validators to slash (must be > 0)","_slasher":"The slasher contract that will execute the actual slashing operations"}},"eip712Domain()":{"details":"See {IERC-5267}."},"executeRound(uint256,address[][])":{"details":"Can be called by anyone once a round has passed its execution delay but is still within its lifetime. The function tallies all votes cast during the round, identifies validators that reached the quorum threshold, and executes slashing by deploying a SlashPayload contract and calling the Slasher.","params":{"_committees":"Array of validator committees slashed for each epoch in the round being executed. Must contain exactly ROUND_SIZE_IN_EPOCHS committees. Only committees with slashed validators will have their commitments verified against onchain data. Emits: - RoundExecuted: When the round execution completes, regardless of whether any slashing occurred Reverts with: - SlashingProposer__RoundAlreadyExecuted: If the round has already been executed - SlashingProposer__RoundNotComplete: If the round is not yet ready for execution or has expired - SlashingProposer__InvalidCommitteeCommitment: If any committee commitment doesn't match onchain data - SlashingProposer__InvalidNumberOfCommittees: If the number of committees doesn't match ROUND_SIZE_IN_EPOCHS","_round":"The round number to execute (must be ready for execution based on timing constraints)"}},"getCurrentRound()":{"details":"Calculates the current round by dividing the current slot number by ROUND_SIZE. This determines which voting round is currently active.","returns":{"_0":"The current SlashRound number"}},"getPayloadAddress(uint256,(address,uint256)[])":{"details":"Uses CREATE2 to predict the deployment address based on the round number and slash actions. Returns zero address if no actions are provided. The address is deterministic and will be the same across multiple calls with identical parameters.","params":{"_actions":"Array of SlashAction structs containing validator addresses and slash amounts","_round":"The round number that will be mixed into the CREATE2 salt"},"returns":{"_0":"The predicted deployment address of the SlashPayload contract, or zero address if no actions"}},"getRound(uint256)":{"params":{"_round":"The round number to retrieve information for"},"returns":{"isExecuted":"True if the round has already been executed and slashing has occurred","voteCount":"The total number of votes that have been cast in this round by proposers"}},"getSlashTargetCommittees(uint256)":{"details":"This is an expensive call. It is not marked as view since `getEpochCommittee` may modify rollup state. If `getEpochCommittee` throws (eg committee not yet formed), an empty committee is returned for that epoch.","params":{"_round":"The round number to load committees for"},"returns":{"committees":"Array of committees, one for each epoch in the round (may contain empty arrays for early epochs)"}},"getSlashTargetEpoch(uint256,uint256)":{"details":"Calculates which epoch's validators are being voted on for slashing in a given round. The epoch is determined by looking back SLASH_OFFSET_IN_ROUNDS rounds from the voting round and then adding the epoch index within that round.","params":{"_epochIndex":"The index of the epoch within the round (must be 0 to ROUND_SIZE_IN_EPOCHS-1)","_round":"The round number during which voting is taking place"},"returns":{"epochNumber":"The epoch number whose validators will be considered for slashing Reverts with: - SlashingProposer__VotingNotOpen: If the round is less than SLASH_OFFSET_IN_ROUNDS"}},"getTally(uint256,address[][])":{"details":"This function is intended for offchain querying and analysis of voting results. It uses transient storage when calling getEpochCommittee on the rollup contract. Returns the same slash actions that would be executed if executeRound() were called for this round.","params":{"_committees":"The list of committees to consider for the tally (get them via `getSlashTargetCommittees`)","_round":"The round number to analyze and return tally results for"},"returns":{"_0":"actions Array of SlashAction structs containing validator addresses and slash amounts for all validators that reached the quorum threshold in this round"}},"getVoteSignatureDigest(bytes,uint256)":{"details":"Creates a typed data hash according to EIP-712 standard that includes both the vote data and the slot number. The slot number inclusion prevents votes from being replayed in different slots, ensuring each vote is tied to a specific time.","params":{"_slot":"The slot number when the vote is being cast (prevents replay attacks)","_votes":"The encoded vote data that will be signed by the proposer"},"returns":{"_0":"The EIP-712 compliant signature digest that should be signed by the proposer"}},"getVotes(uint256,uint256)":{"params":{"_index":"The index to retrieve votes for","_round":"The round number to retrieve votes for"},"returns":{"_0":"The votes retrieved"}},"isRoundReadyToExecute(uint256,uint256)":{"params":{"_round":"The round number to check","_slot":"The slot number at which to evaluate readiness (typically current or slot)"}},"vote(bytes,(uint8,bytes32,bytes32))":{"details":"Only the current checkpoint proposer can submit votes, enforced via EIP-712 signature verification. Each byte in the votes encodes slash amounts for 4 validators using 2 bits each (0-3 units each). The vote includes the current slot number to prevent replay attacks.","params":{"_sig":"EIP-712 signature from the current proposer proving authorization to vote. Signature covers the vote data and current slot number. Emits: - VoteCast: When the vote is successfully recorded, carrying the vote's index within the round Reverts with: - SlashingProposer__VotingNotOpen: If current round is less than SLASH_OFFSET_IN_ROUNDS - SlashingProposer__InvalidSignature: If signature verification fails - SlashingProposer__InvalidVoteLength: If vote data length is incorrect - SlashingProposer__VoteAlreadyCastInCurrentSlot: If proposer already voted in this slot","_votes":"Encoded voting data where each byte represents slash amounts for 4 validators. Bits 0-1 for first validator, bits 2-3 for second, bits 4-5 for third, bits 6-7 for fourth. Length must equal (COMMITTEE_SIZE * ROUND_SIZE_IN_EPOCHS) / 4 bytes."}}},"version":1},"userdoc":{"kind":"user","methods":{"COMMITTEE_SIZE()":{"notice":"Number of validators per committee"},"EXECUTION_DELAY_IN_ROUNDS()":{"notice":"Number of rounds to wait after a round ends before it can be executed"},"INSTANCE()":{"notice":"Address of the main rollup contract that this slashing proposer integrates with"},"LIFETIME_IN_ROUNDS()":{"notice":"Maximum age in rounds for which a round can still be executed"},"MAX_ROUND_SIZE()":{"notice":"Maximum number of votes that can be cast in a single round"},"QUORUM()":{"notice":"Minimum number of votes required to slash a validator"},"ROUNDABOUT_SIZE()":{"notice":"Size of the circular storage buffer for round data"},"ROUND_SIZE()":{"notice":"Number of slots per slashing round"},"ROUND_SIZE_IN_EPOCHS()":{"notice":"Number of epochs per slashing round"},"SLASHER()":{"notice":"The slasher contract that executes actual slashing operations"},"SLASH_AMOUNT_LARGE()":{"notice":"Large slash amount for 3 unit votes (in wei)"},"SLASH_AMOUNT_MEDIUM()":{"notice":"Medium slash amount for 2 unit votes (in wei)"},"SLASH_AMOUNT_SMALL()":{"notice":"Base amount of stake to slash per slashing unit (in wei)Small slash amount for 1 unit votes (in wei)"},"SLASH_OFFSET_IN_ROUNDS()":{"notice":"How many rounds in the past to look when determining which validators to slash"},"SLASH_PAYLOAD_IMPLEMENTATION()":{"notice":"The implementation contract for SlashPayload clones"},"VOTE_TYPEHASH()":{"notice":"EIP-712 type hash for the Vote struct used in signature verification"},"constructor":{"notice":"Initializes the SlashingProposer with configuration parameters"},"executeRound(uint256,address[][])":{"notice":"Execute the slashing round by tallying votes and executing slashes for validators that reached quorum"},"getCurrentRound()":{"notice":"Get the current round number based on the current slot from the rollup"},"getPayloadAddress(uint256,(address,uint256)[])":{"notice":"Get the deterministic address where a slash payload would be deployed for given actions"},"getRound(uint256)":{"notice":"Get information about a specific slashing round's status and voting data"},"getSlashTargetCommittees(uint256)":{"notice":"Load committees for all epochs to be potentially slashed in a round from the rollup instance"},"getSlashTargetEpoch(uint256,uint256)":{"notice":"Get the epoch number that will be slashed during a specific round at a given epoch index"},"getTally(uint256,address[][])":{"notice":"Get the tally results for a specific round, showing which validators would be slashed"},"getVoteSignatureDigest(bytes,uint256)":{"notice":"Generate the EIP-712 signature digest for a vote to prevent replay attacks"},"getVotes(uint256,uint256)":{"notice":"Get the votes for a specific `_round` at a specific `_index`"},"isRoundReadyToExecute(uint256,uint256)":{"notice":"Check if a specific slashing round is ready for execution"},"vote(bytes,(uint8,bytes32,bytes32))":{"notice":"Submit a vote for slashing validators from SLASH_OFFSET_IN_ROUNDS rounds ago"}},"version":1}},"settings":{"remappings":["@aztec-blob-lib/=src/mock/libraries/","@aztec/=src/","@generated/=generated/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@oz/=lib/openzeppelin-contracts/contracts/","@test/=test/","@zkpassport-test/=lib/circuits/src/solidity/test/","@zkpassport/=lib/circuits/src/solidity/src/","circuits/=lib/circuits/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/slashing/SlashingProposer.sol":"SlashingProposer"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0x1206c89e10de6977cbeda13f01c7956c1159cf9f8565aa56b8f05f7c838429bf","urls":["bzz-raw://1d3b3da61df7796a528ec9abfbb63288cf3ac63e3c736407ae4eed2bca018695","dweb:/ipfs/QmYgttRpNJeRgjzL2rwMEHjFuVXABxPGApe5bpmsHtdfjE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x4251fed1ac036ad28996501522371736318527d7bf2bf7d66fbd2769d6c4771b","urls":["bzz-raw://b2df261bd4de240f54c5829faeaf0ffc919a01f1497cf7ffd8a9a544bdec8fca","dweb:/ipfs/Qmb9ndUuv9RZPKJXZGzjVuhmNuoizxuGRn4QMBmdmLcxS3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Create2.sol":{"keccak256":"0xbb7e8401583d26268ea9103013bcdcd90866a7718bd91105ebd21c9bf11f4f06","urls":["bzz-raw://866a11ad89c93ee918078f7a46ae31e17d89216ce64603f0d34be7ed0a5c520e","dweb:/ipfs/QmW3ckLEJg2v2NzuVLNJFmRuerGSipw6Dzg6ntbmqbAGoC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549","urls":["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a","dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x8447b57b63810fe2e367c09496a966f143ec0e825d71ddb9fce2506cff84b618","urls":["bzz-raw://996cb48f793bf151555045b37138e36b3cdb31d6bc6552d3149285260be00cfb","dweb:/ipfs/QmcLaTTMNVbkMx58xhkp6GeFt4V3GtSyupZuaKG3vYW2Zc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x9e82c00fb176503860139c6bbf593b1a954ee7ff97ab2969656571382b9b58a2","urls":["bzz-raw://34b4eb157b44d4441315db65561ba7cf0fe909dc598c2cfd7080d203077d5b57","dweb:/ipfs/QmcNdvK3kDUAUr48urHxoeHd1TqVDya4YfZTM66i4goEJn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d","urls":["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c","dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x2c33f654cefbbe80a9b436b5792cfe8bda2e87f139f110073c99762558db252f","urls":["bzz-raw://dc7ebd80046a52f28978cf46a24ff3e4c8568264ab6bb138038951c75d576167","dweb:/ipfs/QmQQjXVr4CbDR3DXd8GHEqn3JSJYTnbBHMJp9tvc29yXrc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol":{"keccak256":"0x3616f1b0d0a9ee1ca8f0953ecaceb9230e36f691c7974d30f964212acff52d2b","urls":["bzz-raw://d4bebdd07b31ac28e3e596ac6f0333da90a4e332405aa7d65f3a3a7e0b4cf15e","dweb:/ipfs/QmckoDU5bBnye2UtPcrfJNahLD2FbxrnPP9nrREMWPpnug"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212","urls":["bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f","dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz"],"license":"MIT"},"src/core/interfaces/IEscapeHatch.sol":{"keccak256":"0x1a499acad8813b56e7d9cdcff3152e36196482794e62302e95a28603f5915747","urls":["bzz-raw://18da3711ad1fbc413336c252709e1ad32d51092336fbe6c2428b48768f58352c","dweb:/ipfs/QmdkMJiH1pdcuoLe5zPHeMtnFhZ1k7PLZJtoWQUcpcm4bJ"],"license":"Apache-2.0"},"src/core/interfaces/IFeeJuicePortal.sol":{"keccak256":"0xce84c8907395b4c11cc6dd8035d8e14560153450f9d88340cfb8abb914c66639","urls":["bzz-raw://f5eb389f1a6e9adbb2f24dad7a6c0bc706d49decad82ba9b582c288e12eddda6","dweb:/ipfs/QmNM3uQmJYn9B6RAHSMUT3TZMR6R75okjJErUEsuRjxGXt"],"license":"Apache-2.0"},"src/core/interfaces/IRollup.sol":{"keccak256":"0x4885f9bbf279f63143fa0ccd21ce4918fd34eef9ce4ba871c78c22ae6c174f8b","urls":["bzz-raw://c3eac7f06a1db468466f6e977fc204b4106808d0293ca57d336004ed33cc0add","dweb:/ipfs/QmUzzFrVi15V2WRFsgpSmDQBfPUbbA4ochmZD55VhovJBR"],"license":"Apache-2.0"},"src/core/interfaces/ISequencerRewardCalculator.sol":{"keccak256":"0xb7fb4ad1c171762783aecdd5e85036e71990438fc11e1121842b31c431ff0c67","urls":["bzz-raw://15bf6fea8074c7a5f71860b325786d2dd5b625cbfb5b0bd4d0fc4f1a5f566d5a","dweb:/ipfs/QmTH4XovGivVCs4Hp6PT3UVKLrSCPPtv1mmtvUeALVCnAZ"],"license":"Apache-2.0"},"src/core/interfaces/ISlasher.sol":{"keccak256":"0xf7dc3b2795b2806dbec7c94c33665abcf00a35ee65802a47f6222faf8641d302","urls":["bzz-raw://d7c9283746c66f04df5a133145b3196fc176e06e2fe6b3285056ffac68a09e9b","dweb:/ipfs/QmPxTkM1eMNFny3yibc69p1GqWvPkno5fzBjyju89h7CNk"],"license":"Apache-2.0"},"src/core/interfaces/IStaking.sol":{"keccak256":"0x81ddf8fa0cf8a213d690845fd4d3e31e45c543e5876612e94607cdb753804f1d","urls":["bzz-raw://7e0ae2a10903274cca7231306660dd6d5d1e5632238618b390aa7f4dfa5422f3","dweb:/ipfs/QmTMXRYdNGnmecbUdREFfgsLwnMsRjDseLVXsvPqQoiago"],"license":"Apache-2.0"},"src/core/interfaces/IValidatorSelection.sol":{"keccak256":"0xe22dc335f3fd5f5cbf10928fa7e9e945ea8a04fa99362ec6e2022c862d7baca4","urls":["bzz-raw://e26be09d3c823c545a2252467e13b68d366f3e711e15085be09f565ac436acc9","dweb:/ipfs/QmS1ddcZteAjeojaJJz1ZgRPdynzpNu1HSSPbmEjJNe99G"],"license":"Apache-2.0"},"src/core/interfaces/IVerifier.sol":{"keccak256":"0xf5b6025ff3d59b8922bb45fb05786764e74109b4a349d206b8a7979f46484c55","urls":["bzz-raw://98ec47ac3e15b1d8f2c80854ed6fd83e655e9e96341bb827f3be8e6b47f4c7fb","dweb:/ipfs/QmcmUkLgM7fb7mEaJTiWJWrZTW2kAWtRcYS6imBfmueALe"],"license":"Apache-2.0"},"src/core/interfaces/messagebridge/IInbox.sol":{"keccak256":"0x1149c904c8b3bd2942628fbab5480cdc044e831d51963f9e6946f1974cc162bd","urls":["bzz-raw://af2f1f49feba389b0bdbf427c4a85fac2908699585e5babd75f77cf14416ed5f","dweb:/ipfs/QmZYjZyhicCpTcwPuWTjTTUxnaBnfv5bTMWDgxyDGqy8Gm"],"license":"Apache-2.0"},"src/core/interfaces/messagebridge/IOutbox.sol":{"keccak256":"0xf66d0bb4f6d978acf91a036737cd4326bfab16a4030d10510d2976e4218ed8ad","urls":["bzz-raw://e796eea21d552b2ca4d0446bb096e2c980ab84816d9dd1398113293ae8128b30","dweb:/ipfs/QmNuGgRtPFgRe3asa68vDMcWpyfDFqQ5w5j5U7yWD1EsyZ"],"license":"Apache-2.0"},"src/core/libraries/ConstantsGen.sol":{"keccak256":"0xe328f94338f5563669e04618c3ec21ec38b9f21ab24d5de698d80cf38f977dfa","urls":["bzz-raw://3d9872c9a78d7241053e9ce3eadf192d18a9cb4b95c0ac120470d92435b7216e","dweb:/ipfs/QmcRnfbW8sNWwRHPik4wvkA7CTY1BTjuf2ydu3jN5otQJT"],"license":"Apache-2.0"},"src/core/libraries/DataStructures.sol":{"keccak256":"0x5ea9d1097f0b53eafbd72332d4c5c517307e5a056266befe5b46f5f43ee3d83c","urls":["bzz-raw://1a742311dc3c5ead2d5361549f017d20f46c40a4e74e879823ac168cf5b572d4","dweb:/ipfs/QmTNDc1fiPti41QqJTJQoV9uduB6eXaQhbfq1hfVVjVNvS"],"license":"Apache-2.0"},"src/core/libraries/Errors.sol":{"keccak256":"0x282e22d0eb9cd8f22f7bfaef3c3e3cad5461734d6e421f392b372a146c83d467","urls":["bzz-raw://5c250d031a44b257109f81417bb89c0e5b99d44bb17a55379695061afa9d3ef1","dweb:/ipfs/QmenxQJyukQT7KkCsfXV6by3VU6qumEUnK4EH4mqHAw6iK"],"license":"Apache-2.0"},"src/core/libraries/HatchMath.sol":{"keccak256":"0xca787b2889e281c8db132043312aa9513315669782981689824344c910833fe4","urls":["bzz-raw://77ec2f6b5919d53d3a7128f6006155f2566a84e7a56cd26e9d5e6d1514ccd7a2","dweb:/ipfs/Qmc3Z2quujEwxQU1JBfrxhkiULaczspBsTMjXibqXCjFyd"],"license":"Apache-2.0"},"src/core/libraries/SlashPayloadLib.sol":{"keccak256":"0xb9322072eea0036dec74a9222a92a7fcb2518db4491764125eedb63f90f9c830","urls":["bzz-raw://7b7ea317d170f1667e921f8957ea1de4452280f5274bfd9391b6efd6db2e64c8","dweb:/ipfs/QmQs5H78G9LxEzHmYNLDqipgVn1n8Txc94Whc4dLbB25u6"],"license":"Apache-2.0"},"src/core/libraries/SlashRoundLib.sol":{"keccak256":"0x6773eea1fa593e5c1e16fcd3a8341b537bf5ed7ee2f10472649dfd542e3ade8e","urls":["bzz-raw://756bdaa3facd4034149eeb3553ae99777b646c3e16abf8d41f9558e74249baa6","dweb:/ipfs/QmNpb62diGKNKf5pcynejjhNex9c6PTkZnVUeuLvJ2qCZ9"],"license":"Apache-2.0"},"src/core/libraries/StakingQueue.sol":{"keccak256":"0xbbeafda1659a92be14ec5b77838952a089f075cc1d0c5f348b6ff336ea6a1a98","urls":["bzz-raw://f3c8bdb1de77dab697ef4442f72fa4830c757059f8d948d2f3aeb7f6983aa64f","dweb:/ipfs/QmSDYdTnFo8nx34q3fdJCKpy8DCnKBQ4isxr49o4sY5T6T"],"license":"Apache-2.0"},"src/core/libraries/TimeLib.sol":{"keccak256":"0x865b760fe681ee74a93b49491d897a98091432ebc2923ff17717ddb6d26d31ab","urls":["bzz-raw://4ccdfb80464d8e58a95a68314fe2dd33f4a1634ab0695a9a4e9c180a50cc592b","dweb:/ipfs/QmNUUFN7RTjiicZCkci6eEnfromVTPS2MVE4CkbqoneV6P"],"license":"Apache-2.0"},"src/core/libraries/compressed-data/CheckpointLog.sol":{"keccak256":"0x613513b7eb7855ff619c9eb3f1589fcfb0d7675e15c5261034ac353a62c5cabf","urls":["bzz-raw://110e7cc1eae76116a6682a9044cf9031744a7a8c46164987e246923169618d5e","dweb:/ipfs/QmcuhMXiGWjAbYGYYXKrTCLNYguQZpgxpWVWteJezYKVzQ"],"license":"Apache-2.0"},"src/core/libraries/compressed-data/StakingQueueConfig.sol":{"keccak256":"0x32b00fd08e1754d9d9c9b377ae0a0ea887ace519db0ec6d252e1b2216891068e","urls":["bzz-raw://4ecea0a1ff8536819d37d3800b2915249b5c854d9dc611e91aae81df6acf7d76","dweb:/ipfs/Qmf3FgXCf1MP78p5B76kQnwx8yXFXncutVzQhV2fteBvVn"],"license":"Apache-2.0"},"src/core/libraries/compressed-data/Tips.sol":{"keccak256":"0xdf872f54470e59b86349871e2c12075e8daaad85894f90e64f92538daf5f4008","urls":["bzz-raw://493e4bc02c6e9acbb5bfaa68f19bf4defb409211b701784e43d2ca6cbc11ccd1","dweb:/ipfs/QmSUahndZ78LBx6WdozXWL6QkqxZXzrXpHna2kGwCqgy34"],"license":"Apache-2.0"},"src/core/libraries/compressed-data/fees/FeeConfig.sol":{"keccak256":"0xd5593d342fd9e75cf10d9c126d5aa46eab6707221111d81757e0f5c3473c23fd","urls":["bzz-raw://5cdfdfa94ea9d7b93cb80bdbd9e81c80fc7d71de890d88bb957960d0d5734298","dweb:/ipfs/QmQ2VjHtpja19AxDnGg2Q5hCck678PUrfLDuwUNvcyo4YS"],"license":"Apache-2.0"},"src/core/libraries/compressed-data/fees/FeeStructs.sol":{"keccak256":"0x23304769b5d5098b6d6b1092be483f34c0c901d7e14667404e8c5335dad8b501","urls":["bzz-raw://9ef5000b6a27a338f60dad80f73ea03d6560afc46c063d8d52932574d82cf157","dweb:/ipfs/QmSzdqmERrrCqdfqy4jXhdiyokyNRLvi4qLp85iw8rR9iJ"],"license":"Apache-2.0"},"src/core/libraries/crypto/Hash.sol":{"keccak256":"0x0e2bad615ee34b98ffdc7b81558e78ad3701cf8e02dc0fa4721555b4cdb861cb","urls":["bzz-raw://8f69943a9ad3fba8a12ae34b3d60815c4339ea66a5ec75beb781d22a872c2d4d","dweb:/ipfs/QmTfjRk9vBaxfziFgwYzWgTWFEvbB8EEudkcYupPw6qLXW"],"license":"Apache-2.0"},"src/core/libraries/crypto/SampleLib.sol":{"keccak256":"0x59e87e7d6a1e966c0f73bd919825ff7d81dc898625fe9fd20e6786e10b43783e","urls":["bzz-raw://a931d31192faf6d9d9c82fc7099a776b5886d90dd0a2a9ee8093cc680dfdef70","dweb:/ipfs/QmbQjTTf96tr2WSiuoWK8k984dGuXKooZWZ5o9EL7wEPhv"],"license":"Apache-2.0"},"src/core/libraries/rollup/AttestationLib.sol":{"keccak256":"0xf2111c30dc0d6c81d4f990990dfa37813932180e2b94739050356c5942f316e3","urls":["bzz-raw://fc4d8c42797fa58646094be9e108a60a278f2c2beea06bd7b06b00933b00c5b9","dweb:/ipfs/QmdNPs36gak9y4YoCQq2ttv1nj8ALyab6f9P7SoozECrfN"],"license":"Apache-2.0"},"src/core/libraries/rollup/BlobLib.sol":{"keccak256":"0x5b0d454bd38592154954f1da4cc59f50a036d0a28a169401abd9b5fdb88a4fe1","urls":["bzz-raw://68cf3a3fa979a6cfdc618e66621a0233263a83c259b17f6193fb0339796bee9d","dweb:/ipfs/QmcRKQmFf8mZxWKUT7Vgg3LnTxVsCen5f8TnMqCQMGi2j6"],"license":"Apache-2.0"},"src/core/libraries/rollup/CoordinationSignatureLib.sol":{"keccak256":"0x939c2aa29f536822f1f35db30af3b783986612bb35a210c583247f764c39dfae","urls":["bzz-raw://6f5e71fe318f83063eda2027992740e7be7e0274887b4c11ab00ef3199398729","dweb:/ipfs/QmPGkRVfkoLj8bi95vyySrtFeTaUGf62qcWoBy1nZRjZQc"],"license":"Apache-2.0"},"src/core/libraries/rollup/FeeLib.sol":{"keccak256":"0x78cccc8618137ebda0ca1cb68071a6458eff5c1e4eecce22de77c7479cb2f917","urls":["bzz-raw://eb96d87ba3229de5d5a8e8cd9e1c29438789e578f915d787f2f7c0788f380679","dweb:/ipfs/Qma3VYid6EyGtNCLertDyViT1Z8Ma1vNnc7EAEmJfxf8t9"],"license":"Apache-2.0"},"src/core/libraries/rollup/FieldLib.sol":{"keccak256":"0xd09f77d3aa6d7efc844e99bd496a145171613825bc45d35e1518889098f91e95","urls":["bzz-raw://499d0aeb3c7b6801e49f7554110a194ebeca73bec4ddf4b00ea8dd64fcc4b2ac","dweb:/ipfs/QmQf7EeP4kwTGPR2xfDK2MpNAqqcAY4vWZ3faEKn6JEW8R"],"license":"Apache-2.0"},"src/core/libraries/rollup/ProposeLib.sol":{"keccak256":"0x90d4fff721a1bcdbb555aad73a040ac1f0c3a61e286b0f291f47248129d8a777","urls":["bzz-raw://988c7390ba413ae25939df5a9f8850649106627ddf453a60b472e31c32a97156","dweb:/ipfs/QmXNPKm6y3bgTmjfeTMrY4sfBUFT4fLxZsMBBSC13Nt6oy"],"license":"Apache-2.0"},"src/core/libraries/rollup/ProposedHeaderLib.sol":{"keccak256":"0x43a9fa530b7cb948c1d7c436bddafdd8ddd8c022c67e25045372bc68b9e5018c","urls":["bzz-raw://904e4aa94b322f68c605dd34ea38bb77343437e2f2203c3e650cf7a7bb3aa19e","dweb:/ipfs/QmX3H4PMwh57L5Zv3LFrHjkNmgVZiik4FmzSyJhnTJcqPD"],"license":"Apache-2.0"},"src/core/libraries/rollup/RewardLib.sol":{"keccak256":"0x3a73a07577c713179be2de8df601445e79c606afb42f74bed33d1000c6f14ff8","urls":["bzz-raw://e432e402f6721bf70849ae3d731dcc669abeeb7df8399c878cc946fea0657a1a","dweb:/ipfs/QmYuGKQvN9iFhQpKLo6Rd7oTkMZx6VfdrJFh6tVgLEDg5M"],"license":"Apache-2.0"},"src/core/libraries/rollup/STFLib.sol":{"keccak256":"0xcb2ae0566bd5b0834f8ec2f73d78037f25d4d65894bff1ab8abcb9f8c65c7bc0","urls":["bzz-raw://35689b10ee3d4fff126625efa170fe77c617441fd7902d7376488af5061a79e0","dweb:/ipfs/QmUzDZoMrpJAuhVYVGSruX4mj9jTJmSZncvoTHbsyZL7eM"],"license":"Apache-2.0"},"src/core/libraries/rollup/SequencerRewardCalculatorLib.sol":{"keccak256":"0x2d5e8efc5a87bec1d50a8c9df0696a8248e0905ab62dcd7ec6a51527ad33b604","urls":["bzz-raw://15d4a7d1f265fc1a248762702373534fcae9d85df5150e5e1a45f79b94736ed4","dweb:/ipfs/QmdAT5Aw6JSg5GJnTikfDtJHnJZuMib7L8GB3yQ4jMuiFr"],"license":"Apache-2.0"},"src/core/libraries/rollup/StakingLib.sol":{"keccak256":"0x6e3c96f937701c67570d902aca8d2f9a1ee35942e17b1e5a375b264582a6fe8c","urls":["bzz-raw://ddb78c290af17a9574b89104177d2f1079c5abeb462446722b8fb09e03659ea6","dweb:/ipfs/QmURXaGC2SRKZc36NQZ4SXqNtgY5MpYQRamS3Shn2GMAoe"],"license":"Apache-2.0"},"src/core/libraries/rollup/ValidatorSelectionLib.sol":{"keccak256":"0xea94ff99c5e47c51bbd4ffe8282447c7aae23065e255ec2d2806a11901ab1752","urls":["bzz-raw://4e5c466c3c0ca5834c41714ddd64e7e5a34e6c37a5d57ddbed40b567582746bb","dweb:/ipfs/QmUYZ4KgwoUhxQCMtazUgj8tN6wkRHcakZ5rg5EjQq1XuU"],"license":"Apache-2.0"},"src/core/reward-boost/RewardBooster.sol":{"keccak256":"0x1cffe0dcbc06775ad415b06cd3591f74331bad3b154a3305ea6c5a081915fce0","urls":["bzz-raw://a2fcdbdcc260b3330bae0bc61227f652f9cb68e175fbc7d4173bf1d2dfaa92d1","dweb:/ipfs/QmddUmciRbznTTfBpbZf2p3R9sC1oePRF9C3Swnq8qU3Xb"],"license":"Apache-2.0"},"src/core/slashing/Slasher.sol":{"keccak256":"0xc3040cd1813a6064a6afda9ca8b1f65f5cba2e7359050c48507d2f71d3606786","urls":["bzz-raw://73f73fac9ffe650304c68a49635604806b86b0a5baadbf59ef36931e7937bc51","dweb:/ipfs/QmaMMMXycUeybJyf2ZowJgQ1Wo4ZC7g5kyp1BHWfj8dkD9"],"license":"Apache-2.0"},"src/core/slashing/SlashingProposer.sol":{"keccak256":"0x83021af7c9ea602728d0ea0c3a01b222bdfee96af341537473d81f6e1e70d32c","urls":["bzz-raw://65b80e908621361c40178ea2255d096f2ca323201b117de24bf561b5e7ca698f","dweb:/ipfs/QmdKMw2sLn16jGZs9RjQnmxwkdsUrRzjJ3PLdZMPv8JceW"],"license":"Apache-2.0"},"src/governance/Bn254LibWrapper.sol":{"keccak256":"0xea39571de45fe0fec82d9e760998677eb2432e08c6cdb00c41efa58caf56e607","urls":["bzz-raw://1e470b821f3d87fa0c988c5f23a8deed3849bffd2527b3b4ee137a90e0c1264c","dweb:/ipfs/QmW3M4HyRLDruV5AYXCKicFCiiczmwnSTtnwVKUnQSm7a8"],"license":"Apache-2.0"},"src/governance/GSE.sol":{"keccak256":"0xc19fa4868d78030e2411dd5cef6d0da09645ade1d1ea0c4374b284a89feb722a","urls":["bzz-raw://d06396c249566d0e9de5d34eade2bf27c4d583005c0129787bf6c413dcd9e273","dweb:/ipfs/QmcimKKiV9KqobS5wzPsKYzyYu5WezCF3gyHkekf5tjrUU"],"license":"Apache-2.0"},"src/governance/GSEPayload.sol":{"keccak256":"0x40e5385b008f0335b50e066c647bb906685511c9fef206ce90a3391468558bae","urls":["bzz-raw://a129e87e1d57cf0813b14108cbdbcdd4c114b20f3f2d67477302d6d050120c7e","dweb:/ipfs/QmRcQQkeDhkrmQha3nkA8qvXnGmF6nLhZMKAhMx61A7a5y"],"license":"Apache-2.0"},"src/governance/Governance.sol":{"keccak256":"0x07770c3d80369adae51be8e361f63a2aa5ec489b354b10c8590be1e294dfe2e5","urls":["bzz-raw://7219becf3467ea8368dba0bd093ba932b165cf3f214e7286f652e2730bf42eaf","dweb:/ipfs/QmTSCDhSQBTKhzGUk12phxhqohSba6yopYMzF5T5XPFUWw"],"license":"Apache-2.0"},"src/governance/interfaces/IBn254LibWrapper.sol":{"keccak256":"0xdd0a3de8b8ff67cf2bf090d04b4a37aa6d604f402db3328387d2466d2354464a","urls":["bzz-raw://daef0234547509cd7ae3a7babf0e50a8d1ca2894f1817e3e2409a50fd32947b9","dweb:/ipfs/QmbwSedqnBfsqRnUq8XcXzoeoyhZTXJWJ9rpJn61BAJfej"],"license":"Apache-2.0"},"src/governance/interfaces/IEmpire.sol":{"keccak256":"0xe6a8a8c3fef8e6f9f5118bd40c63e951b13a59d5f885bbb979d38745ef760ed3","urls":["bzz-raw://940c1fe4138d7364ccdb7d5635ea90bafa1da274f680039b0b54ee8c2a275a9a","dweb:/ipfs/QmX2EeoVyES18BMgcbKVDb36MCq8ooDVR98m2RmnmZjEAo"],"license":"Apache-2.0"},"src/governance/interfaces/IGovernance.sol":{"keccak256":"0xe420d305fbe7c35f4620cd1e0f05f9f4c5a91532621d21a64ea553a3d9a3c005","urls":["bzz-raw://1900ac41f945aa692d5228f134ae63840081d284bf89fdd2a06b45424fe359ff","dweb:/ipfs/QmePFZ1xv5qfftJVDLc98XUVFsrpuKAbKZiro7MoMDTpoa"],"license":"Apache-2.0"},"src/governance/interfaces/IGovernanceProposer.sol":{"keccak256":"0x2be820a5452c481ffd329d68c46d0af6a286934963f26b36d363cd34fb0e5817","urls":["bzz-raw://f58839d1504e11e7da42b7f5a03fb9b9d8cc39ab4c16cfb86fa44c4de08df76f","dweb:/ipfs/QmR6jUJozP9tfpZuSduk66E8n7WuL3zzsR3WHZ7BR2ZBX2"],"license":"Apache-2.0"},"src/governance/interfaces/IPayload.sol":{"keccak256":"0x5844ea725ce56ac8adeb20b2d37aa431ca087f68a65a7ca91f981be7458737c3","urls":["bzz-raw://5ea670db51b2ccfac05a684b95458ecc015c9d12a6567c3f73d473386533f58c","dweb:/ipfs/QmRUB8mckkGQ4nNsErRhnKMsD9SSkokRSpnr5XZC9dZdin"],"license":"Apache-2.0"},"src/governance/interfaces/IProposerPayload.sol":{"keccak256":"0x89068dd464c0bfb7d447c0e99728277e03c7c4b864208ead20321f0590187248","urls":["bzz-raw://4d1d9ba5f8b7da374d773acde9514ca6607ad31a3e83950caa097bdb8b0f9167","dweb:/ipfs/Qmd7tWAD2Ubz434zZPJvuyAGsHYpXBHvVhVefLFzUudD2o"],"license":"Apache-2.0"},"src/governance/interfaces/IRegistry.sol":{"keccak256":"0xc3678c04c0945d3dc1d8007df3dc7f8b25d8108b0b25134842ffc5169f996ce8","urls":["bzz-raw://71e4e401f1a6f561262755cc2e1c347cd3aa79e67d2e52ca547864f49de01724","dweb:/ipfs/QmPvoKFEDTb41DSC3MmDMqtM3trj5oZb1Jj2jtQSnNfHBn"],"license":"Apache-2.0"},"src/governance/interfaces/IRewardDistributor.sol":{"keccak256":"0xf263f75be83d0b0e3c8f17ec7fc2558d3543df788dcb2db6f1ee158208134f14","urls":["bzz-raw://b2b65819a5f9ecd2237957e987bb69160d3076ccaf9f76f925a936e574d63d76","dweb:/ipfs/QmNgWESeo6UUvgW7rCMP3d4o8mUqSSbKrwbicH4kaUrm7h"],"license":"Apache-2.0"},"src/governance/libraries/AddressSnapshotLib.sol":{"keccak256":"0x1006e58059e0a1f0fef102f2f11f5649dffc7f2eb066fce51845e65a064f4210","urls":["bzz-raw://de385ab9eb3bb66d7be1218b49ae9bba7d88797bcb375b9a7481a209d303a402","dweb:/ipfs/QmZe6DTv3cACfdXNSMhbMhoefg31LW3uLxHLDC7nZhb4Yp"],"license":"Apache-2.0"},"src/governance/libraries/CheckpointedUintLib.sol":{"keccak256":"0xcd73cf7a62e4ac5cc79f7f8df8b35d5c5e4df5b8a3478bcbc2b29c9aa89ea4b4","urls":["bzz-raw://f56f37060d39d3c9276f23c96be7f6b1ea44676312dbaa1ab16ab3bff6acebf1","dweb:/ipfs/QmPDUEEgdbpTTs9r3fvdMYJo9akCRsWcJXyarBhQgcKb5q"],"license":"Apache-2.0"},"src/governance/libraries/ConfigurationLib.sol":{"keccak256":"0x7cb65bdbd8d077f3cfc01b065fb3a57628db36cd46f68885c74b9131198c2149","urls":["bzz-raw://e37bde50f5f739f479feb95fbe81ed24ee47f841b99f066ecf6782e758d1978a","dweb:/ipfs/QmebPE5REUpYRB8dikUebcGtyk9uy44G9mbchKJtHxJAgy"],"license":"Apache-2.0"},"src/governance/libraries/DepositDelegationLib.sol":{"keccak256":"0x37fbca65ccabec9d901bd71d684dceec7c59fa5a05438fd209ea0d5e16e764c0","urls":["bzz-raw://e42f2622978abc3ac84223a6b206201898d0269d20bf81539636c0999a0db9eb","dweb:/ipfs/QmW4BgTjR6BuPxwxreKarUeK1u8gx3p9yFdDD4EsC5hkyb"],"license":"Apache-2.0"},"src/governance/libraries/Errors.sol":{"keccak256":"0x8861ea7508138c83e89f186ce17accb42a6eee7d1d2e52841975d4ba676daae4","urls":["bzz-raw://b0d5b01c2b0a20c3c70a7ab2b8405d083a063bf5758beb87a4d488bda76078fa","dweb:/ipfs/QmfGH6CTCPA6nVA6KidcTSvaJ6MQZkv6KiuDVBTARGBTRv"],"license":"Apache-2.0"},"src/governance/libraries/ProposalLib.sol":{"keccak256":"0x616ffbb24c4454ca9e223e85ff01e8dca139723d5cd312d5d6f6111d79782a90","urls":["bzz-raw://192f9be3355a7a94d19ae4e5b397e5db19dde64ccc671e149da06dfaa2577192","dweb:/ipfs/QmTDcm7XEFLe7o5cXUmuu5wQDyprU78AVMymiWvrmP4tHT"],"license":"Apache-2.0"},"src/governance/libraries/compressed-data/Ballot.sol":{"keccak256":"0xca07dc8cf36ac2beae7674804af144b34b3c5848153351c17d996e9b3293cd5d","urls":["bzz-raw://6911cc49f1d6977c12f652063c14891697c1ffe49fdf36903c32a8ad73cbd012","dweb:/ipfs/QmQBEZARCAAj1ZLcswkH6FwP1RP8uuNjYTHqthmE9Z5RnM"],"license":"Apache-2.0"},"src/governance/libraries/compressed-data/Configuration.sol":{"keccak256":"0x40744f275af22d33c38fd9c6a7b822292c9c87b17ac2c78abbef4eb8356fd9f9","urls":["bzz-raw://73c685be7e934516207827a59cbbeb7fc1164e7659dd3ec857a91cfea765b482","dweb:/ipfs/QmQfudRpSSQnG9u4XV8iA2UAyDzQPFqWzpZy5NZbaD6htv"],"license":"Apache-2.0"},"src/governance/libraries/compressed-data/Proposal.sol":{"keccak256":"0x72cf619a21c8e95875c63d4361cbe1a815d9d67f36f3fe32b6c9ca4d9ab0d33a","urls":["bzz-raw://d80f47beb3f91da3cc68264c86fc8fb8f0e4abaf9d92243ab3206407fceed5c6","dweb:/ipfs/QmYyrBTDMfkTBu6EcKcSMR7JyfphZ5xH1VCQ8EHMQUvsoN"],"license":"Apache-2.0"},"src/governance/proposer/EmpireBase.sol":{"keccak256":"0x747b20e201dab632a831c12f1fee9ee52cc80a2098c77e8b6c7b09b0f3ba2bc0","urls":["bzz-raw://b7d4a0475ca364f75aa2a1d17ed9e6970f0be605126f2efe26d53c791d4a5209","dweb:/ipfs/Qma5tkTcy94PqE9vtQybQSyH9LWaHR8V3ubwDPZwiUNT35"],"license":"Apache-2.0"},"src/governance/proposer/GovernanceProposer.sol":{"keccak256":"0xa2829df5b65856c9f1d6bf490fb50616f14402ff8eece2e32b63828b8b9337c3","urls":["bzz-raw://8ad52830a7a3aed3477bf55f92c3d68cb1c16a5cf1d636227ab76a306c846607","dweb:/ipfs/QmRonyZQZj5D1e2g4Y6Tmj2AEUnekL4pGmgdMT4ycRAM8m"],"license":"Apache-2.0"},"src/mock/libraries/BlobLib.sol":{"keccak256":"0xa1b19239c5c64ba1b0c9f83ec0a30059f10ded12bf40d5d7c3f65974752b3121","urls":["bzz-raw://5cbce7d0dd0096232d60ec5c6920f211ffcaa46c8675b1129c1f939a1ee84837","dweb:/ipfs/QmSS2qUhzUuZY1qHDjWUGvHuMqMG3cjHoHeDVvgWsjMdA9"],"license":"Apache-2.0"},"src/periphery/SlashPayloadCloneable.sol":{"keccak256":"0xf3957502df4ba01cd0c05d5cd49488dbe38f4e182718013b3fef075da95a9e3f","urls":["bzz-raw://1bd7cdf387e137d007f53388748fd12cbfd016127f78455e617fb55bc4a66b21","dweb:/ipfs/QmVLHJ7hyuuSSLRmv3meDcRKiT42Duq4sEweBTmWMfSfk8"],"license":"Apache-2.0"},"src/shared/libraries/BN254Lib.sol":{"keccak256":"0x0c3a5b7dabde2f5c81f19e1a4a212308a8636b5bb4a16bb1a518d58ef4feb6f5","urls":["bzz-raw://870be6219c7081ed081cee2fa9ad1e7f3efff623ae1a59aed966f2bdcee65b7a","dweb:/ipfs/QmNzohb1TazCgaT1e55CMDuuG7AHdGrGA6jvT4wzxdAM52"],"license":"Apache-2.0"},"src/shared/libraries/CompressedTimeMath.sol":{"keccak256":"0x361023cf30593e7e27417c91af3702e75235fcab251e4ad5ac2e47306a730ec1","urls":["bzz-raw://9b192242472b3126c97a4a4e4fa792809a6bf20b548a57e677f5260c0dbf3ad3","dweb:/ipfs/QmfK4WAucepcqzMLu11rs68HJazwfegVsgK5tTco82SooB"],"license":"Apache-2.0"},"src/shared/libraries/SignatureLib.sol":{"keccak256":"0xb69989f57384383341d1bb4693fb1e6ce31a2ab6c0fadb48bf088078a332a56a","urls":["bzz-raw://f199be27853a14d746c567c5e3a473f474e84cfd3d119a6404e6ceff4e986e5c","dweb:/ipfs/QmWsLozeiKLQbTSEUDVZK2ASEX3EodKxT4DdA9BA6bD6N2"],"license":"Apache-2.0"},"src/shared/libraries/TimeMath.sol":{"keccak256":"0x8da20dc8b4ce296b7c11f117a3381bfe5cd611a3512a74a500e2e54e0353417f","urls":["bzz-raw://18c74be98a4e31e8a16356e573514f639a8fc43928e741f6ead81dd755e9a914","dweb:/ipfs/QmPDEdYYEj3DhXjrCDPuudJbhsBaNj1sK6hH94Z86168Q3"],"license":"Apache-2.0"}},"version":1},"id":127}