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

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,7 +1,7 @@
1
1
  /**
2
2
  * RollupOperationsExtLib bytecode.
3
3
  */
4
- export declare const RollupOperationsExtLibBytecode = "0x614f19610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061006b575f3560e01c806302e5ba1f1461006f5780631f6d6ef7146100ab5780634abd1af5146100c157806373462953146100e25780639f2b315414610101578063f711e6c314610115575b5f5ffd5b81801561007a575f5ffd5b5061008e6100893660046140d2565b610137565b6040516001600160401b0390911681526020015b60405180910390f35b6100b36101f8565b6040519081526020016100a2565b8180156100cc575f5ffd5b506100e06100db36600461435a565b610206565b005b8180156100ed575f5ffd5b506100e06100fc366004614451565b610271565b81801561010c575f5ffd5b506100e061028b565b610128610123366004614511565b6102bb565b6040516100a293929190614591565b5f5f610142426102da565b90506102c08401358181811461017957604051632a7fc72360e01b8152600481019290925260248201526044015b60405180910390fd5b506101b790508461018e6101a0820182614638565b61019c6101c0880188614656565b886101e0018961024001358a61026001358b61028001610318565b6101ee8360608601356101d26102c088016102a089016146af565b60a08801356101e086610415565b6001600160401b0316610439565b9150505b92915050565b5f61020161051d565b905090565b61026689898989808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050604080518082019091526001600160a01b038816815288151560208201528b92508a9150899061061a565b505050505050505050565b6102818888888888888888610318565b5050505050505050565b61029442610b54565b6102b15760405163850defd360e01b815260040160405180910390fd5b6102b9610bc0565b565b60605f60606102cb868686610c30565b92509250925093509350939050565b5f5f6102e4610c40565b80549091506102f284610b54565b610305576103008160801c90565b610310565b6001600160801b0381165b949350505050565b6103776040518060a001604052808a803603810190610337919061471c565b8152602001858152602001610355610350426001610c64565b610ca2565b815260208101859052604001610370368590038501856147c8565b9052610cd5565b610388610383886147f6565b610f76565b6102815760a08801355f61039b82610f8c565b90506103b0816103aa8b6147f6565b87610fad565b5061040982826103bf8c6147f6565b8b8b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152508c9250610403915050368d90038d018d614801565b5f6111c5565b50505050505050505050565b5f61041f826112fd565b60050154600160201b90046001600160401b031692915050565b60405163af16b03960e01b81526001600160401b03841660048201525f90819081906001600160a01b0389169063af16b0399060240160a060405180830381865afa15801561048a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104ae91906148ee565b6020810151919350915086906001600160401b03818116908316146104f85760405162c1404b60e11b81526001600160401b03928316600482015291166024820152604401610170565b50506105108888846001600160401b031688886113a0565b5090979650505050505050565b5f617a6946148080156105445750737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15155b156106125760408051600481526024810182526020810180516001600160e01b0316631f6d6ef760e01b17905290515f918291737109709ecfa91a80626ff3989d68f67f5b1dd12d9161059691614939565b5f60405180830381855afa9150503d805f81146105ce576040519150601f19603f3d011682016040523d82523d5f602084013e6105d3565b606091505b50915091508180156105e757506020815110155b1561060857808060200190518101906106009190614944565b935050505090565b6001935050505090565b4a5b91505090565b61062342610b54565b1561063057610630610bc0565b610638613f6f565b61064061169c565b61064f84848460200151610c30565b6060840152604080840191909152602083019190915261067790368a90038a01908a0161471c565b815261068388356117ba565b805161068e90611802565b60e082015261069c4261188a565b61014082018190526106ad906118e2565b6001600160a01b03166101c0820181905215610754576101c0810151610140820151604051631d18577f60e11b81526001600160a01b0390921691633a30aefe916106fe9160040190815260200190565b6040805180830381865afa158015610718573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073c919061495b565b6001600160a01b03166101a083015215156101808201525b80610180015161076c5761076c816101400151611904565b5f610778426001610c64565b90506107b760405180606001604052808b5f013581526020018b6020018036038101906107a59190614988565b81526020018460e00151815250611969565b61012083019081526040805160a0810182528451815291516020830152610807919081016107e484610ca2565b8152604080860151602080840191909152815190810182525f8152910152610cd5565b5f610810610c40565b905082610180015115610867576101a0830151336001600160a01b0382168114610860576040516380242ae760e01b81526001600160a01b03928316600482015291166024820152604401610170565b5050610898565b610898835f015160a001518461014001518b8b8761012001518c8036038101906108919190614801565b60016111c5565b80545f6108a58260801c90565b6108b09060016149c0565b90506108bc8282611974565b91506108fe865f0151865f0151606001518e6101e00135885f015160a001516108f06001876108eb91906149d3565b610415565b6001600160401b03166113a0565b60c08601526101408501516109249061092061091b6001856149d3565b61199d565b1090565b8061092f5750806001145b151561016086015261095d61094d6109486001846149d3565b6119ed565b8660600151876101600151611a01565b60808601528451610140015161098890829060208f01359061097e88611a0d565b8860600151611a48565b60a086015260405161099e908c90602001614a13565b60408051601f19818403018152918152815160209283012061010088019081528486555f8481526001870184528290208f35905581516101408101835260e089015181526080808a01519482019490945288518401519281019290925251606082015261012087015191810191909152855160a0908101519082015260c080870151610a739291820190610a3190611b0a565b6001600160401b03168152602001610a4d8f6101e00135611b0a565b6001600160401b0316815260a08801516020820152875160600151604090910152611b43565b6101808501518c359015610afa576101c08601516101a08701516040516308d864c360e31b81526001600160a01b0391821660048201526001600160801b0385166024820152604481018490529116906346c32618906064015f604051808303815f87803b158015610ae3575f5ffd5b505af1158015610af5573d5f5f3e3d5ffd5b505050505b80827f6ff492bf2b4ca1b93a175167d14b3e46085b935cab3f39ca94013000799b93a088602001518961012001518a6101000151604051610b3d93929190614a25565b60405180910390a350505050505050505050505050565b5f5f610b5e610c40565b80549091506001600160801b038116610b778260801c90565b03610b8557505f9392505050565b5f610b9d61091b6001600160801b03841660016149c0565b90505f610ba98661188a565b9050610bb58282611c35565b159695505050505050565b5f610bc9610c40565b80549091505f610bd98260801c90565b90506001600160801b038216610bef8382611974565b845560408051828152602081018490527fc78a70f3b27748d5fa327f6a3c1104b9b007d6a80d20c41f7c0dc4543fbdbdcd910160405180910390a150505050565b60605f60606102cb868686611c47565b7f0958201b72d64259285941dffd868dac55267471fcc73e8a06e1fd9cf870636190565b610c8b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f610c95846102da565b90506101ee818585611e44565b5f6101f2825f015183606001518460400151610cbe91906149c0565b610cc891906149c0565b6001600160801b0361201c565b805160200151610ce4906117ba565b805160800151610cf3906117ba565b80516101000151610d03906117ba565b80516101600151610d13906117ba565b805160e001516001600160a01b0316610d3f5760405163338736ad60e01b815260040160405180910390fd5b610d4761202b565b815161014001511115610d6d576040516313258e7d60e01b815260040160405180910390fd5b425f610d77610c40565b90505f610d83836102da565b5f818152600184016020526040902054855151919250908190808214610dc557604051635b41520760e11b815260048101929092526024820152604401610170565b5050845160a001515f610dd784612052565b90508082808210610e045760405163083510bd60e41b815260048101929092526024820152604401610170565b50505f610e108761206c565b90508083808214610e3d576040516309ba91ff60e01b815260048101929092526024820152604401610170565b50505f610e498461209c565b895160c001519091508190818114610e7d57604051633132e89560e01b815260048101929092526024820152604401610170565b508890508180821015610eac5760405163089f306960e41b815260048101929092526024820152604401610170565b505060808901515180610ec757506060890151895160400151145b89516040015190610eee5760405163414906c360e01b815260040161017091815260200190565b5088516101200151516001600160801b031615610f1e57604051636ce3afa960e11b815260040160405180910390fd5b604089015189516101200151602001516001600160801b0381168214610f695760405163c30346dd60e01b815260048101929092526001600160801b03166024820152604401610170565b5050505050505050505050565b8051515f9015806101f257505060200151511590565b5f610f956120d1565b546101f290600160a01b900463ffffffff1683614a87565b60605f5f610fba866120f5565b91509150805f03610fdc575050604080515f81526020810190915290506111be565b5f60405180608001604052805f81526020016003600185901b610fff9190614a87565b61100a9060016149c0565b81526020015f8152602001836001600160401b0381111561102d5761102d614125565b604051908082528060200260200182016040528015611056578160200160208202803683370190505b50905260208088015191925081015f5b84811015611141575f6110798a8361214a565b905080156110f157825160018085015160218601516040890180519093019092526041909501945f9290921a91906110b38c8484846121a2565b886060015186815181106110c9576110c9614a9a565b60200260200101906001600160a01b031690816001600160a01b031681525050505050611138565b5f835160601c9050601484019350808660600151848151811061111657611116614a9a565b60200260200101906001600160a01b031690816001600160a01b031681525050505b50600101611066565b5060208301516040840151818110156111765760405163af47297f60e01b815260048101929092526024820152604401610170565b50505f61118684606001516121ce565b90508581146111b2576040516332a3565560e21b81526004810182905260248101879052604401610170565b50505060600151925050505b9392505050565b5f5f5f5f6111d28a6120f5565b91509150805f036111e657505050506112f4565b5f6111f28a8a846121fd565b90505f6111fe826121ce565b905083811461122a576040516332a3565560e21b81526004810182905260248101859052604401610170565b5f6112348d6124a2565b90506112428d8f838761250b565b965082878151811061125657611256614a9a565b6020026020010151955050505050505f611279838961214a90919063ffffffff16565b9050806112ab57604051633cf9646b60e21b81526001600160a01b038316600482015260248101849052604401610170565b5f6112b68985612555565b90506112c381848961261b565b505f6112cf8a8a612684565b90506112dc87858361261b565b5085156112ee576112ee8c8587612690565b50505050505b50505050505050565b5f5f61131161130a610c40565b5460801c90565b90505f61131c61271d565b90505f61132982866149c0565b90505f83861115801561133b57508184105b90508584838361136f57604051638711786b60e01b8152600481019390935260248301919091526044820152606401610170565b50505061137a610c40565b6002015f6113888589614aae565b81526020019081526020015f20945050505050919050565b6040516365fe45ed60e01b8152600481018490525f9081906001600160a01b038816906365fe45ed90602401608060405180830381865afa1580156113e7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061140b9190614ac1565b80519091508681811461143a5760405163ed1f7bb560e01b815260048101929092526024820152604401610170565b505084158061145557504281604001516001600160401b0316105b8061146b5750610100816060015163ffffffff16145b859061148c5760405162e4a97360e71b815260040161017091815260200190565b50602081015183906001600160401b0381168211156114d0576040516354e0c02560e01b815260048101929092526001600160401b03166024820152604401610170565b50506104008382602001516001600160401b03166114ee91906149d3565b11158382602001516001600160401b031661150991906149d3565b9061152a57604051637bb68a1360e11b815260040161017091815260200190565b50866001600160a01b0316638afaa2156040518163ffffffff1660e01b8152600401602060405180830381865afa158015611567573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061158b9190614adb565b6001600160401b0316851015611685575f6001600160a01b0388166365fe45ed6115b68860016149c0565b6040518263ffffffff1660e01b81526004016115d491815260200190565b608060405180830381865afa1580156115ef573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116139190614ac1565b90505f61161f86612731565b90508082604001516001600160401b0316118061165557506104008583602001516001600160401b031661165391906149d3565b115b6116608860016149c0565b90611681576040516302bd4bf160e41b815260040161017091815260200190565b5050505b602001516001600160401b03169695505050505050565b5f6116a64261206c565b90505f6116b1612767565b60018101549091505f906116dd90600160e01b900463ffffffff166116d86005600261278b565b612796565b9050828111156116ec57505050565b604080516060810182526001840154600160701b90046001600160701b0316815281518083019092524882529060208083019161173491810161172d61051d565b90526127a1565b6001600160701b03168152602001611755611750866002612796565b6127e6565b63ffffffff9081169091528151600190940180546020840151604090940151909216600160e01b026001600160e01b036001600160701b03948516600160701b026001600160e01b031990941694909616939093179190911793909316179091555050565b807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181106117fe5760405163733fc21760e01b815260040161017091815260200190565b5050565b5f6101f2825f015183602001518460400151856060015186608001518760a001516118308960c00151611b0a565b8960e001518a61010001518b61012001515f01518c6101200151602001518d61014001518e61016001516040516020016118769d9c9b9a99989796959493929190614af6565b6040516020818303038152906040526127f0565b5f5f6118946120d1565b80549091506118b99063ffffffff600160801b8204811691600160a01b900416614b9a565b815463ffffffff91909116906118d8906001600160801b0316856149d3565b6111be9190614a87565b5f5f6118ed83612885565b90506111be816118fb612892565b600301906128b6565b5f61190d612892565b5f83815260208290526040902054909150801561192957505050565b5f611933846124a2565b905061193e84612967565b5f61194985836129c1565b9050611954816121ce565b5f958652602094909452505060409092205550565b5f6101f282306129e3565b5f6001600160801b038316608061198a84612a28565b6001600160801b0316901b179392505050565b5f5f6119a7610c40565b805490915060801c83818111156119da576040516368dd4dfd60e11b815260048101929092526024820152604401610170565b50506111be6119e884612052565b610f8c565b5f6119f7826112fd565b6001015492915050565b5f610310848484612a5b565b5f5f611a1883610ca2565b90505f83606001518460400151611a2f91906149c0565b9050808211611a3e575f610310565b61031081836149d3565b611a756040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b606460ff86901d808701181115611a9f5760405163e01960b760e01b815260040160405180910390fd5b5f611ab3611aae6001896149d3565b612ae8565b90506040518060a00160405280611ac983612afc565b8152602001868152602001611aef611ae98460501c65ffffffffffff1690565b89612b49565b81526020018581526020018481525091505095945050505050565b5f6001600160401b03821115611b3f57604080516306dfcc6560e41b8152600481019190915260248101839052604401610170565b5090565b5f611b4f61130a610c40565b90505f611b5a61271d565b9050611b6583612bd6565b611b6d610c40565b6002015f611b7b8486614aae565b815260208082019290925260409081015f20835181559183015160018301558201516002820155606082015160038201556080820151600482015560a082015160058201805460c085015160e086015163ffffffff9094166bffffffffffffffffffffffff1990921691909117600160201b6001600160401b03928316021767ffffffffffffffff60601b1916600160601b9190931602919091179055610100820151600682015561012090910151600790910155505050565b5f6111be82611c4385612cd8565b1190565b60605f60605f86865f818110611c5f57611c5f614a9a565b919091013560f81c91505080611c88576040516324a5e23160e11b815260040160405180910390fd5b8060ff166001600160401b03811115611ca357611ca3614125565b604051908082528060200260200182016040528015611ccc578160200160208202803683370190505b5093508060ff166001600160401b03811115611cea57611cea614125565b604051908082528060200260200182016040528015611d1d57816020015b6060815260200190600190039081611d085790505b5091505f6001815b8360ff16811015611e215789828a611d3e6030836149c0565b92611d4b93929190614bc0565b604051602001611d5c929190614be7565b604051602081830303815290604052858281518110611d7d57611d7d614a9a565b6020908102919091010152611d936030836149c0565b91505f611db8868381518110611dab57611dab614a9a565b6020026020010151612d10565b90508815611df657814993508381808214611def576040516309818f3560e11b815260048101929092526024820152604401610170565b5050611dfa565b8093505b83888381518110611e0d57611e0d614a9a565b602090810291909101015250600101611d25565b50611e36866040516020016118769190614bf6565b945050505093509350939050565b611e6b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f611e74612767565b90505f611e8a825f015460c01c63ffffffff1690565b90505f5f5f5f611e9989612d74565b90505f8160200151620200006003611eb19190614c2b565b611ebb9190614c2b565b8251611eca906207a120614c2b565b611ed491906149c0565b9050611ee4816001886001612df3565b945050611f2f611f1f611f15623d0900845f0151611f006120d1565b54600160a01b900463ffffffff166001612df3565b6001886001612df3565b87546001600160401b0316612796565b9250611f3b8484612796565b9150505f611f488a612ae8565b90505f611f7f63ffffffff8316611f678460201c65ffffffffffff1690565b611f7191906149c0565b611f7a88614c42565b612e35565b90505f611f8b82612e83565b90505f611fa7611fa18684633b9aca005f612df3565b8661278b565b90505f8b611fba5764e8d4a51000611fc3565b611fc38e612ef3565b90506040518060800160405280611fe38385612f0e90919063ffffffff16565b815260208101859052604001611ff98a84612f0e565b81526020016120088984612f0e565b90529e9d5050505050505050505050505050565b5f8282188284100282186111be565b5f5f612035612767565b905061061461204d825f015460c01c63ffffffff1690565b612f21565b5f6101f261205f836112fd565b6005015463ffffffff1690565b5f5f6120766120d1565b805490915063ffffffff600160801b820416906118d8906001600160801b0316856149d3565b5f5f6120a66120d1565b80549091506111be906001600160801b038116906116d890600160801b900463ffffffff1686614c2b565b7fcc2bde3d21ba778aa5c156bb6fc47381978b0054c8a1ef73f44234164324cbe090565b5f5f5f612100612892565b5f8581526020829052604081205494509091508390036121375761213461212f8561212a876124a2565b6129c1565b6121ce565b92505b60020154919363ffffffff909216925050565b5f80612157600884614a87565b90505f612165600885614aae565b6121709060076149d3565b905080855f0151838151811061218857612188614a9a565b60209101015160f81c901c60019081161495945050505050565b5f5f5f5f6121b288888888612f9b565b9250925092506121c28282613059565b50909695505050505050565b5f816040516020016121e09190614c9f565b604051602081830303815290604052805190602001209050919050565b60605f600861220d8460076149c0565b6122179190614a87565b85515190915081908082146122485760405163dacca6db60e01b815260048101929092526024820152604401610170565b505060208501515f846001600160401b0381111561226857612268614125565b604051908082528060200260200182016040528015612291578160200160208202803683370190505b5090505f60208301818082815b8a8110156123a9576122b1600882614aae565b5f036122ea575f6122c3600883614a87565b90508d5f015181815181106122da576122da614a9a565b016020015160f81c945060809350505b600183901c9284161580159061235d576123056041876149c0565b95508c878151811061231957612319614a9a565b602002602001015188838151811061233357612333614a9a565b6001600160a01b03909216602092830291909101909101528661235581614cb1565b9750506123a0565b5f865160601c90506014870196508089848151811061237e5761237e614a9a565b60200260200101906001600160a01b031690816001600160a01b031681525050505b5060010161229e565b505f60146123b7878d6149d3565b6123c19190614c2b565b6123cc604188614c2b565b6123d691906149c0565b60208e015151909150819080821461240a5760405163e41ded4d60e01b815260048101929092526024820152604401610170565b50508b51869081811461243957604051637a8e4ff160e11b815260048101929092526024820152604401610170565b50505f8d60200151518361244d91906149c0565b905085811461245c84886149d3565b61246685846149d3565b909161248e57604051632529e32f60e21b815260048101929092526024820152604401610170565b50979e9d5050505050505050505050505050565b5f5f6124ac612892565b90505f6124b884613111565b9050836124c8600184018361319f565b6040516020016124eb9291909182526001600160e01b0316602082015260400190565b60408051601f198184030181529190528051602090910120949350505050565b6040805160208101869052908101849052606081018390525f908290608001604051602081830303815290604052805190602001205f1c61254c9190614aae565b95945050505050565b61257960405180606001604052805f60ff1681526020015f81526020015f81525090565b6020830151612588848461214a565b83906125aa57604051637346e14f60e11b815260040161017091815260200190565b50602081015f5b848110156125e5576125c3868261214a565b6125ce5760146125d1565b60415b6125db90836149c0565b91506001016125b1565b5080516001820151602190920151604080516060810182525f9390931a8352602083019390935291810191909152949350505050565b5f5f61263483865f0151876020015188604001516121a2565b905083816001600160a01b038281169082161461267757604051633672eb9b60e21b81526001600160a01b03928316600482015291166024820152604401610170565b5060019695505050505050565b5f6111be8383306131e7565b806001600160601b038111156126bc576040516380dc006960e01b815260040161017091815260200190565b505f60a0825f1b901b836001600160a01b03165f1b1790506127178161271161270e876127006040518060600160405280602c8152602001614eb8602c913961321a565b5f9182526020526040902090565b90565b90613231565b50505050565b5f612726613238565b6102019060016149c0565b5f5f61273b6120d1565b90506111be61275361274e85600161278b565b61209c565b8254600160e01b900463ffffffff1661278b565b7f2e57d696f4035f6dfbf369d367f6b4aaf23baac5f6ee9a3a5207d71c56de652c90565b5f6111be82846149d3565b5f6111be82846149c0565b5f5f5f90505f6127b48460200151613278565b66ffffffffffffff16901b8117905060386127d1845f0151613278565b66ffffffffffffff16901b176111be816132ab565b5f6101f2826132de565b6040805160018082528183019092525f916020820181803683370190505060028360405161281e9190614939565b602060405180830381855afa158015612839573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061285c9190614944565b60405160200161286d929190614cc9565b6040516020818303038152906040526101f290614ce7565b5f6101f261274e8361330e565b7f9bd0cd65f3d2d8103fe75b0f150f04a46bd0e603fd1819b64700ff42b24ee3aa90565b81545f9081816005811115612913575f6128cf8461332f565b6128d990856149d3565b5f888152602090209091508101546001600160601b03908116908716101561290357809150612911565b61290e8160016149c0565b92505b505b5f61292087878585613481565b9050801561295a57612944876129376001846149d3565b5f91825260209091200190565b54600160601b90046001600160a01b031661295c565b5f5b979650505050505050565b5f612970612892565b90505f61297f826001016134da565b509150505f61299561299085612885565b6132de565b90508063ffffffff168263ffffffff161015612717576129b9600184018244613537565b505050505050565b60605f5f6129cf8585613551565b9150915061254c8263ffffffff16826135f6565b60408051835160208083019190915284015151818301529083015160608201525f906111be90608001604051602081830303815290604052805190602001208361368b565b5f6001600160801b03821115611b3f576040516306dfcc6560e41b81526080600482015260248101839052604401610170565b825f8215612a9e57612a9b8482612a7181614cb1565b935081518110612a8357612a83614a9a565b60200260200101516040516020016118769190614939565b91505b8351811015612ae057612ad682858381518110612abd57612abd614a9a565b6020026020010151604051602001611876929190614d0a565b9150600101612a9e565b509392505050565b5f612af2826112fd565b6006015492915050565b5f5f612b06612767565b90506111be63ffffffff8416612b248560201c65ffffffffffff1690565b612b2e91906149c0565b8254612b409060c01c63ffffffff1690565b611f7a90614c42565b5f5f5f8312612b7a57612710612b5f84826149c0565b612b699086614c2b565b612b739190614a87565b9050612ba6565b612710612b8f60ff85901d80860118826149d3565b612b999086614c2b565b612ba39190614a87565b90505b6064811015612bb95760649150506101f2565b655af3107a40008111156111be57655af3107a40009150506101f2565b612c3a6040518061014001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f63ffffffff1681526020015f6001600160401b031681526020015f6001600160401b031681526020015f81526020015f81525090565b604051806101400160405280835f0151815260200183602001518152602001836040015181526020018360600151815260200183608001518152602001612c848460a001516127e6565b63ffffffff1681526020018360c001516001600160401b031681526020018360e001516001600160401b03168152602001612cc38461010001516136e1565b81526020018361012001518152509050919050565b5f5f612ce26120d1565b80549091506111be908490612d0590600160c01b900463ffffffff166001614d1b565b63ffffffff16612796565b5f600160f81b600283604051612d269190614939565b602060405180830381855afa158015612d41573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190612d649190614944565b6001600160f81b03161792915050565b604080518082019091525f80825260208201525f612d90612767565b9050612db5612d9e8461206c565b6001830154600160e01b900463ffffffff16611c43565b612ddc576001810154612dd790600160701b90046001600160701b0316613779565b6111be565b60018101546111be906001600160701b0316613779565b5f612e20612e00836137b3565b8015612e1b57505f8480612e1657612e16614a73565b868809115b151590565b612e2b8686866137df565b61254c91906149c0565b5f5f8212612e5757612e4682613895565b612e5090846149c0565b90506101f2565b60ff82901d8083011880841115612e7a57612e7281856149d3565b9150506101f2565b505f9392505050565b5f5f612e8d612767565b90505f612ea6825f015460401c6001600160801b031690565b90505f612ebd85612eb8846064614c2b565b61201c565b905061254c612ed3845f015460e01c61ffff1690565b612edf906127106149c0565b612eec90620186a0614c2b565b82846138ba565b5f6101f2612f0083612ae8565b60501c65ffffffffffff1690565b5f6111be8364e8d4a51000846001612df3565b5f60018280612f4c576040516372e1574f60e01b815260048101929092526024820152604401610170565b505f9050612f5b836002614c2b565b905063ffffffff8181811115612f92576040516303fd5c0b60e41b815263ffffffff90921660048301526024820152604401610170565b50909392505050565b5f80806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115612fca57505f9150600390508261304f565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561301b573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b03811661304657505f92506001915082905061304f565b92505f91508190505b9450945094915050565b5f82600381111561306c5761306c614d37565b03613075575050565b600182600381111561308957613089614d37565b036130a75760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156130bb576130bb614d37565b036130dc5760405163fce698f760e01b815260048101829052602401610170565b60038260038111156130f0576130f0614d37565b036117fe576040516335e2f38360e21b815260048101829052602401610170565b5f5f61311e61299061391a565b613126612892565b600201546131419190600160401b900463ffffffff16614b9a565b90505f8161315161299086612885565b61315b9190614d4b565b9050834263ffffffff831681101561319557604051633c6dd5d760e11b8152600481019290925263ffffffff166024820152604401610170565b5090949350505050565b81545f90816131b085858385613955565b905080156131dd576131c7856129376001846149d3565b54600160201b90046001600160e01b031661254c565b505f949350505050565b5f61031084846040516020016131fe929190614d67565b60405160208183030381529060405280519060200120836139a8565b80516020918201205f19015f9081522060ff191690565b80825d5050565b5f5f6132426120d1565b805490915061325f90600160c01b900463ffffffff1660016149c0565b81546106149190600160a01b900463ffffffff16614c2b565b5f66ffffffffffffff821115611b3f576040516306dfcc6560e41b81526038600482015260248101839052604401610170565b5f6001600160701b03821115611b3f576040516306dfcc6560e41b81526070600482015260248101839052604401610170565b5f63ffffffff821115611b3f576040516306dfcc6560e41b81526020600482015260248101839052604401610170565b5f6133176120d1565b546101f290600160a01b900463ffffffff1683614c2b565b5f6001821161333c575090565b816001600160801b82106133555760809190911c9060401b5b600160401b821061336b5760409190911c9060201b5b600160201b82106133815760209190911c9060101b5b6201000082106133965760109190911c9060081b5b61010082106133aa5760089190911c9060041b5b601082106133bd5760049190911c9060021b5b600482106133c95760011b5b600302600190811c908185816133e1576133e1614a73565b048201901c905060018185816133f9576133f9614a73565b048201901c9050600181858161341157613411614a73565b048201901c9050600181858161342957613429614a73565b048201901c9050600181858161344157613441614a73565b048201901c9050600181858161345957613459614a73565b048201901c905061347881858161347257613472614a73565b04821190565b90039392505050565b5f5b81831015612ae0575f61349684846139e6565b5f878152602090209091506001600160601b038616908201546001600160601b031611156134c6578092506134d4565b6134d18160016149c0565b93505b50613483565b80545f90819081908082036134f8575f5f5f93509350935050613530565b5f613508866129376001856149d3565b546001955063ffffffff81169450600160201b90046001600160e01b03169250613530915050565b9193909250565b5f80613544858585613a00565b915091505b935093915050565b5f60605f61355d612892565b90505f61356986613b44565b90505f61357b8263ffffffff16613b74565b600284015490915063ffffffff168181808210156135b55760405163f4f28e9960e01b815260048101929092526024820152604401610170565b5050805f036135da575050604080515f81526020810190915290935091506135ef9050565b826135e682848a613c08565b95509550505050505b9250929050565b7fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cb054604051639796d97760e01b81526060916001600160a01b031690639796d9779061364a90309087908790600401614d8b565b5f60405180830381865afa158015613664573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111be9190810190614dda565b604080517fd9e3e10ae6d981fcde0636096fc41211a1905dd49eef1ba08ff793f60b954f2f60208201529081018390525f906111be906060015b6040516020818303038152906040528051906020012083613d5e565b5f5f5f90506136f383602001516132de565b63ffffffff16811790506020613712845f015165ffffffffffff61201c565b901b8117905060506137278460400151613da6565b65ffffffffffff16901b81179050608061374c84606001516001600160401b0361201c565b901b8117905060c061376a8460800151677fffffffffffffff61201c565b901b17600160ff1b1792915050565b604080518082019091525f8082526020820152506040805180820190915266ffffffffffffff603883901c81168252909116602082015290565b5f60028260038111156137c8576137c8614d37565b6137d29190614e81565b60ff166001149050919050565b5f838302815f1985870982811083820303915050805f036138135783828161380957613809614a73565b04925050506111be565b80841161382a5761382a6003851502601118613dd8565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f5f821215611b3f57604051635467221960e11b815260048101839052602401610170565b5f600181806138c98588614c2b565b90505b8015613910576138dc81836149c0565b91506138e88386614c2b565b6138f28783614c2b565b6138fc9190614a87565b90506139096001846149c0565b92506138cc565b61295c8583614a87565b5f5f6139246120d1565b80549091506139499063ffffffff600160801b8204811691600160a01b900416614b9a565b63ffffffff1691505090565b5f5b81831015612ae0575f61396a84846139e6565b5f8781526020902090915063ffffffff86169082015463ffffffff161115613994578092506139a2565b61399f8160016149c0565b93505b50613957565b604080517fd7b65e8a7e173c2fd37eed3e985162c559ef4e627e5bc178b7bffabaf9b52e9c60208201529081018390525f906111be906060016136c5565b5f6139f46002848418614a87565b6111be908484166149c0565b82545f9081908015613aec575f613a1c876129376001856149d3565b805490915063ffffffff80821691600160201b90046001600160e01b0316908816821115613a5d57604051632520601d60e01b815260040160405180910390fd5b8763ffffffff168263ffffffff1603613a9057825463ffffffff16600160201b6001600160e01b03891602178355613ade565b6040805180820190915263ffffffff808a1682526001600160e01b03808a1660208085019182528d54600181018f555f8f81529190912094519151909216600160201b029216919091179101555b945085935061354992505050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a555f8a815291822095519251909316600160201b029190931617920191909155905081613549565b5f5f613b5161299061391a565b613b59612892565b600201546131419190600160201b900463ffffffff16614b9a565b5f7fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cad6003015460405163ec6e69db60e01b8152306004820152602481018490526001600160a01b039091169063ec6e69db90604401602060405180830381865afa158015613be4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101f29190614944565b6060838380821115613c3657604051631723245360e31b815260048101929092526024820152604401610170565b5050835f03613c535750604080515f8152602081019091526111be565b5f846001600160401b03811115613c6c57613c6c614125565b604051908082528060200260200182016040528015613c95578160200160208202803683370190505b5090505f613ca46001866149d3565b90505f5b86811015613d1d575f613cc682613cc08560016149c0565b88613de9565b9050613cd181613e2c565b848381518110613ce357613ce3614a9a565b60209081029190910101528215613d1457613d0681613d0185613e2c565b613e4c565b82613d1081614ea2565b9350505b50600101613ca8565b505f5b86811015613d5357613d4b838281518110613d3d57613d3d614a9a565b60200260200101515f613e4c565b600101613d20565b509095945050505050565b5f613d6882613e90565b60405161190160f01b602082015260228101919091526042810184905260620160405160208183030381529060405280519060200120905092915050565b5f65ffffffffffff821115611b3f576040516306dfcc6560e41b81526030600482015260248101839052604401610170565b634e487b715f52806020526024601cfd5b5f60018311613df957505f6111be565b60408051602080820185905281830187905282518083038401815260609092019092528051910120610310908490614aae565b5f5f613e3783613f27565b90508015613e455792915050565b5090919050565b6117fe8161271161270e8561270060405180604001604052806018815260200177417a7465632e53616d706c654c69622e4f7665727269646560401b81525061321a565b604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f6001f7d5990128cf43d9cc82c426c8ea327f060ad15ca974b0c330643121d4c4918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201526001600160a01b03821660a08201525f9060c0016121e0565b5f6101f2613f6b61270e8461270060405180604001604052806018815260200177417a7465632e53616d706c654c69622e4f7665727269646560401b81525061321a565b5c90565b604051806101e00160405280613f83614021565b8152602001606081526020015f8152602001606081526020015f8152602001613fcf6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f151581526020015f151581526020015f6001600160a01b031681526020015f6001600160a01b031681525090565b6040518061018001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f815260200161409960405180604001604052805f6001600160801b031681526020015f6001600160801b031681525090565b81526020015f81526020015f81525090565b6001600160a01b03811681146140bf575f5ffd5b50565b80356140cd816140ab565b919050565b5f5f604083850312156140e3575f5ffd5b82356001600160401b038111156140f8575f5ffd5b83016102e0818603121561410a575f5ffd5b9150602083013561411a816140ab565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b038111828210171561415b5761415b614125565b60405290565b60405161018081016001600160401b038111828210171561415b5761415b614125565b604051602081016001600160401b038111828210171561415b5761415b614125565b604051601f8201601f191681016001600160401b03811182821017156141ce576141ce614125565b604052919050565b5f82601f8301126141e5575f5ffd5b81356001600160401b038111156141fe576141fe614125565b614211601f8201601f19166020016141a6565b818152846020838601011115614225575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f60408284031215614251575f5ffd5b614259614139565b905081356001600160401b03811115614270575f5ffd5b61427c848285016141d6565b82525060208201356001600160401b03811115614297575f5ffd5b6142a3848285016141d6565b60208301525092915050565b5f5f83601f8401126142bf575f5ffd5b5081356001600160401b038111156142d5575f5ffd5b6020830191508360208260051b85010111156135ef575f5ffd5b5f606082840312156142ff575f5ffd5b50919050565b5f5f83601f840112614315575f5ffd5b5081356001600160401b0381111561432b575f5ffd5b6020830191508360208285010111156135ef575f5ffd5b80151581146140bf575f5ffd5b80356140cd81614342565b5f5f5f5f5f5f5f5f5f898b03610300811215614374575f5ffd5b610200811215614382575f5ffd5b508998506102008a01356001600160401b0381111561439f575f5ffd5b6143ab8c828d01614241565b9850506102208a01356001600160401b038111156143c7575f5ffd5b6143d38c828d016142af565b90985096506143e890508b6102408c016142ef565b94506102a08a01356001600160401b03811115614403575f5ffd5b61440f8c828d01614305565b909550935061442390506102c08b0161434f565b91506144326102e08b016140c2565b90509295985092959850929598565b5f602082840312156142ff575f5ffd5b5f5f5f5f5f5f5f5f888a036102a081121561446a575f5ffd5b6101a0811215614478575f5ffd5b508897506101a08901356001600160401b03811115614495575f5ffd5b89016040818c0312156144a6575f5ffd5b96506101c08901356001600160401b038111156144c1575f5ffd5b6144cd8b828c016142af565b90975095506144e290508a6101e08b016142ef565b9350610240890135925061026089013591506145028a6102808b01614441565b90509295985092959890939650565b5f5f5f60408486031215614523575f5ffd5b83356001600160401b03811115614538575f5ffd5b61454486828701614305565b909450925050602084013561455881614342565b809150509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b606080825284519082018190525f9060208601906080840190835b818110156145ca5783518352602093840193909201916001016145ac565b50508560208501528381036040850152809150845180825260208201925060208160051b830101602087015f5b8381101561462957601f19858403018652614613838351614563565b60209687019690935091909101906001016145f7565b50909998505050505050505050565b5f8235603e1983360301811261464c575f5ffd5b9190910192915050565b5f5f8335601e1984360301811261466b575f5ffd5b8301803591506001600160401b03821115614684575f5ffd5b6020019150600581901b36038213156135ef575f5ffd5b6001600160401b03811681146140bf575f5ffd5b5f602082840312156146bf575f5ffd5b81356111be8161469b565b80356001600160801b03811681146140cd575f5ffd5b5f604082840312156146f0575f5ffd5b6146f8614139565b9050614703826146ca565b8152614711602083016146ca565b602082015292915050565b5f6101a082840312801561472e575f5ffd5b50614737614161565b823581526020808401359082015260408084013590820152606080840135908201526080808401359082015260a0808401359082015260c0808401359082015261478360e084016140c2565b60e082015261010083810135908201526147a18461012085016146e0565b61012082015261016083810135610140830152610180909301359281019290925250919050565b5f60208284031280156147d9575f5ffd5b506147e2614184565b82356147ed81614342565b81529392505050565b5f6101f23683614241565b5f6060828403128015614812575f5ffd5b50604051606081016001600160401b038111828210171561483557614835614125565b604052823560ff81168114614848575f5ffd5b8152602083810135908201526040928301359281019290925250919050565b5f60808284031215614877575f5ffd5b604051608081016001600160401b038111828210171561489957614899614125565b60405282518152602083015190915081906148b38161469b565b602082015260408301516148c68161469b565b6040820152606083015163ffffffff811681146148e1575f5ffd5b6060919091015292915050565b5f5f60a083850312156148ff575f5ffd5b825161490a8161469b565b91506149198460208501614867565b90509250929050565b5f81518060208401855e5f93019283525090919050565b5f6111be8284614922565b5f60208284031215614954575f5ffd5b5051919050565b5f5f6040838503121561496c575f5ffd5b825161497781614342565b602084015190925061411a816140ab565b5f6020828403128015614999575f5ffd5b506149a2614184565b9135825250919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156101f2576101f26149ac565b818103818111156101f2576101f26149ac565b5f8151604084526149fa6040850182614563565b90506020830151848203602086015261254c8282614563565b602081525f6111be60208301846149e6565b606080825284519082018190525f9060208601906080840190835b81811015614a5e578351835260209384019390920191600101614a40565b50506020840195909552505060400152919050565b634e487b7160e01b5f52601260045260245ffd5b5f82614a9557614a95614a73565b500490565b634e487b7160e01b5f52603260045260245ffd5b5f82614abc57614abc614a73565b500690565b5f60808284031215614ad1575f5ffd5b6111be8383614867565b5f60208284031215614aeb575f5ffd5b81516111be8161469b565b8d81528c60208201528b60408201528a60608201528960808201528860a08201526001600160401b0360c01b8860c01b1660c08201526001600160601b03198760601b1660c88201528560dc820152614b5e60fc82018660801b6001600160801b0319169052565b614b7861010c82018560801b6001600160801b0319169052565b61011c81019290925261013c82015261015c019b9a5050505050505050505050565b63ffffffff8181168382160290811690818114614bb957614bb96149ac565b5092915050565b5f5f85851115614bce575f5ffd5b83861115614bda575f5ffd5b5050820193919092039150565b818382375f9101908152919050565b81515f90829060208501835b82811015614c20578151845260209384019390910190600101614c02565b509195945050505050565b80820281158282048414176101f2576101f26149ac565b5f600160ff1b8201614c5657614c566149ac565b505f0390565b5f8151808452602084019350602083015f5b82811015614c955781516001600160a01b0316865260209586019590910190600101614c6e565b5093949350505050565b602081525f6111be6020830184614c5c565b5f60018201614cc257614cc26149ac565b5060010190565b5f614cd48285614922565b60ff199390931683525050601f01919050565b805160208083015191908110156142ff575f1960209190910360031b1b16919050565b8281525f6103106020830184614922565b63ffffffff81811683821601908111156101f2576101f26149ac565b634e487b7160e01b5f52602160045260245ffd5b63ffffffff82811682821603908111156101f2576101f26149ac565b604081525f614d7960408301856149e6565b828103602084015261254c8185614c5c565b6001600160a01b0384168152602080820184905260606040830181905283519083018190525f918401906080840190835b81811015610510578351835260209384019390920191600101614dbc565b5f60208284031215614dea575f5ffd5b81516001600160401b03811115614dff575f5ffd5b8201601f81018413614e0f575f5ffd5b80516001600160401b03811115614e2857614e28614125565b8060051b614e38602082016141a6565b91825260208184018101929081019087841115614e53575f5ffd5b6020850194505b8385101561295c5784519250614e6f836140ab565b82825260209485019490910190614e5a565b5f60ff831680614e9357614e93614a73565b8060ff84160691505092915050565b5f81614eb057614eb06149ac565b505f19019056fe617a7465632e76616c696461746f725f73656c656374696f6e2e7472616e7369656e742e70726f706f736572a2646970667358221220822eeb5a8e4e0eff401a9f7ccf5162347519a99ac2536a6352146a774725c3bc64736f6c634300081e0033";
4
+ export declare const RollupOperationsExtLibBytecode = "0x614f41610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061006b575f3560e01c806302e5ba1f1461006f5780631f6d6ef7146100ab5780634abd1af5146100c157806373462953146100e25780639f2b315414610101578063f711e6c314610115575b5f5ffd5b81801561007a575f5ffd5b5061008e6100893660046140d9565b610137565b6040516001600160401b0390911681526020015b60405180910390f35b6100b36101f8565b6040519081526020016100a2565b8180156100cc575f5ffd5b506100e06100db366004614361565b610206565b005b8180156100ed575f5ffd5b506100e06100fc366004614458565b610271565b81801561010c575f5ffd5b506100e061028b565b610128610123366004614518565b6102bb565b6040516100a293929190614598565b5f5f610142426102da565b90506102c08401358181811461017957604051632a7fc72360e01b8152600481019290925260248201526044015b60405180910390fd5b506101b790508461018e6101a082018261463f565b61019c6101c088018861465d565b886101e0018961024001358a61026001358b61028001610318565b6101ee8360608601356101d26102c088016102a089016146b6565b60a08801356101e086610415565b6001600160401b0316610439565b9150505b92915050565b5f61020161051d565b905090565b61026689898989808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050604080518082019091526001600160a01b038816815288151560208201528b92508a9150899061061a565b505050505050505050565b6102818888888888888888610318565b5050505050505050565b61029442610b54565b6102b15760405163850defd360e01b815260040160405180910390fd5b6102b9610bc0565b565b60605f60606102cb868686610c30565b92509250925093509350939050565b5f5f6102e4610c40565b80549091506102f284610b54565b610305576103008160801c90565b610310565b6001600160801b0381165b949350505050565b6103776040518060a001604052808a8036038101906103379190614723565b8152602001858152602001610355610350426001610c64565b610ca2565b815260208101859052604001610370368590038501856147cf565b9052610cd5565b610388610383886147fd565b610f76565b6102815760a08801355f61039b82610f8c565b90506103b0816103aa8b6147fd565b87610fad565b5061040982826103bf8c6147fd565b8b8b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152508c9250610403915050368d90038d018d614808565b5f6111c5565b50505050505050505050565b5f61041f826112fd565b60050154600160201b90046001600160401b031692915050565b60405163af16b03960e01b81526001600160401b03841660048201525f90819081906001600160a01b0389169063af16b0399060240160a060405180830381865afa15801561048a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104ae91906148f5565b6020810151919350915086906001600160401b03818116908316146104f85760405162c1404b60e11b81526001600160401b03928316600482015291166024820152604401610170565b50506105108888846001600160401b031688886113a0565b5090979650505050505050565b5f617a6946148080156105445750737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15155b156106125760408051600481526024810182526020810180516001600160e01b0316631f6d6ef760e01b17905290515f918291737109709ecfa91a80626ff3989d68f67f5b1dd12d9161059691614940565b5f60405180830381855afa9150503d805f81146105ce576040519150601f19603f3d011682016040523d82523d5f602084013e6105d3565b606091505b50915091508180156105e757506020815110155b156106085780806020019051810190610600919061494b565b935050505090565b6001935050505090565b4a5b91505090565b61062342610b54565b1561063057610630610bc0565b610638613f76565b61064061169c565b61064f84848460200151610c30565b6060840152604080840191909152602083019190915261067790368a90038a01908a01614723565b815261068388356117ba565b805161068e90611802565b60e082015261069c4261188a565b61014082018190526106ad906118e2565b6001600160a01b03166101c0820181905215610754576101c0810151610140820151604051631d18577f60e11b81526001600160a01b0390921691633a30aefe916106fe9160040190815260200190565b6040805180830381865afa158015610718573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073c9190614962565b6001600160a01b03166101a083015215156101808201525b80610180015161076c5761076c816101400151611904565b5f610778426001610c64565b90506107b760405180606001604052808b5f013581526020018b6020018036038101906107a5919061498f565b81526020018460e00151815250611969565b61012083019081526040805160a0810182528451815291516020830152610807919081016107e484610ca2565b8152604080860151602080840191909152815190810182525f8152910152610cd5565b5f610810610c40565b905082610180015115610867576101a0830151336001600160a01b0382168114610860576040516380242ae760e01b81526001600160a01b03928316600482015291166024820152604401610170565b5050610898565b610898835f015160a001518461014001518b8b8761012001518c8036038101906108919190614808565b60016111c5565b80545f6108a58260801c90565b6108b09060016149c7565b90506108bc8282611974565b91506108fe865f0151865f0151606001518e6101e00135885f015160a001516108f06001876108eb91906149da565b610415565b6001600160401b03166113a0565b60c08601526101408501516109249061092061091b6001856149da565b61199d565b1090565b8061092f5750806001145b151561016086015261095d61094d6109486001846149da565b6119ed565b8660600151876101600151611a01565b60808601528451610140015161098890829060208f01359061097e88611a0d565b8860600151611a48565b60a086015260405161099e908c90602001614a1a565b60408051601f19818403018152918152815160209283012061010088019081528486555f8481526001870184528290208f35905581516101408101835260e089015181526080808a01519482019490945288518401519281019290925251606082015261012087015191810191909152855160a0908101519082015260c080870151610a739291820190610a3190611b0a565b6001600160401b03168152602001610a4d8f6101e00135611b0a565b6001600160401b0316815260a08801516020820152875160600151604090910152611b43565b6101808501518c359015610afa576101c08601516101a08701516040516308d864c360e31b81526001600160a01b0391821660048201526001600160801b0385166024820152604481018490529116906346c32618906064015f604051808303815f87803b158015610ae3575f5ffd5b505af1158015610af5573d5f5f3e3d5ffd5b505050505b80827f6ff492bf2b4ca1b93a175167d14b3e46085b935cab3f39ca94013000799b93a088602001518961012001518a6101000151604051610b3d93929190614a2c565b60405180910390a350505050505050505050505050565b5f5f610b5e610c40565b80549091506001600160801b038116610b778260801c90565b03610b8557505f9392505050565b5f610b9d61091b6001600160801b03841660016149c7565b90505f610ba98661188a565b9050610bb58282611c35565b159695505050505050565b5f610bc9610c40565b80549091505f610bd98260801c90565b90506001600160801b038216610bef8382611974565b845560408051828152602081018490527fc78a70f3b27748d5fa327f6a3c1104b9b007d6a80d20c41f7c0dc4543fbdbdcd910160405180910390a150505050565b60605f60606102cb868686611c47565b7f0958201b72d64259285941dffd868dac55267471fcc73e8a06e1fd9cf870636190565b610c8b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f610c95846102da565b90506101ee818585611e44565b5f6101f2825f015183606001518460400151610cbe91906149c7565b610cc891906149c7565b6001600160801b0361201c565b805160200151610ce4906117ba565b805160800151610cf3906117ba565b80516101000151610d03906117ba565b80516101600151610d13906117ba565b805160e001516001600160a01b0316610d3f5760405163338736ad60e01b815260040160405180910390fd5b610d4761202b565b815161014001511115610d6d576040516313258e7d60e01b815260040160405180910390fd5b425f610d77610c40565b90505f610d83836102da565b5f818152600184016020526040902054855151919250908190808214610dc557604051635b41520760e11b815260048101929092526024820152604401610170565b5050845160a001515f610dd784612052565b90508082808210610e045760405163083510bd60e41b815260048101929092526024820152604401610170565b50505f610e108761206c565b90508083808214610e3d576040516309ba91ff60e01b815260048101929092526024820152604401610170565b50505f610e498461209c565b895160c001519091508190818114610e7d57604051633132e89560e01b815260048101929092526024820152604401610170565b508890508180821015610eac5760405163089f306960e41b815260048101929092526024820152604401610170565b505060808901515180610ec757506060890151895160400151145b89516040015190610eee5760405163414906c360e01b815260040161017091815260200190565b5088516101200151516001600160801b031615610f1e57604051636ce3afa960e11b815260040160405180910390fd5b604089015189516101200151602001516001600160801b0381168214610f695760405163c30346dd60e01b815260048101929092526001600160801b03166024820152604401610170565b5050505050505050505050565b8051515f9015806101f257505060200151511590565b5f610f956120d1565b546101f290600160a01b900463ffffffff1683614a8e565b60605f5f610fba866120f5565b91509150805f03610fdc575050604080515f81526020810190915290506111be565b5f60405180608001604052805f81526020016003600185901b610fff9190614a8e565b61100a9060016149c7565b81526020015f8152602001836001600160401b0381111561102d5761102d61412c565b604051908082528060200260200182016040528015611056578160200160208202803683370190505b50905260208088015191925081015f5b84811015611141575f6110798a8361214a565b905080156110f157825160018085015160218601516040890180519093019092526041909501945f9290921a91906110b38c8484846121a2565b886060015186815181106110c9576110c9614aa1565b60200260200101906001600160a01b031690816001600160a01b031681525050505050611138565b5f835160601c9050601484019350808660600151848151811061111657611116614aa1565b60200260200101906001600160a01b031690816001600160a01b031681525050505b50600101611066565b5060208301516040840151818110156111765760405163af47297f60e01b815260048101929092526024820152604401610170565b50505f61118684606001516121ce565b90508581146111b2576040516332a3565560e21b81526004810182905260248101879052604401610170565b50505060600151925050505b9392505050565b5f5f5f5f6111d28a6120f5565b91509150805f036111e657505050506112f4565b5f6111f28a8a846121fd565b90505f6111fe826121ce565b905083811461122a576040516332a3565560e21b81526004810182905260248101859052604401610170565b5f6112348d6124a2565b90506112428d8f838761250b565b965082878151811061125657611256614aa1565b6020026020010151955050505050505f611279838961214a90919063ffffffff16565b9050806112ab57604051633cf9646b60e21b81526001600160a01b038316600482015260248101849052604401610170565b5f6112b68985612555565b90506112c381848961261b565b505f6112cf8a8a612684565b90506112dc87858361261b565b5085156112ee576112ee8c8587612690565b50505050505b50505050505050565b5f5f61131161130a610c40565b5460801c90565b90505f61131c61271d565b90505f61132982866149c7565b90505f83861115801561133b57508184105b90508584838361136f57604051638711786b60e01b8152600481019390935260248301919091526044820152606401610170565b50505061137a610c40565b6002015f6113888589614ab5565b81526020019081526020015f20945050505050919050565b6040516365fe45ed60e01b8152600481018490525f9081906001600160a01b038816906365fe45ed90602401608060405180830381865afa1580156113e7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061140b9190614ac8565b80519091508681811461143a5760405163ed1f7bb560e01b815260048101929092526024820152604401610170565b505084158061145557504281604001516001600160401b0316105b8061146b5750610100816060015163ffffffff16145b859061148c5760405162e4a97360e71b815260040161017091815260200190565b50602081015183906001600160401b0381168211156114d0576040516354e0c02560e01b815260048101929092526001600160401b03166024820152604401610170565b50506104008382602001516001600160401b03166114ee91906149da565b11158382602001516001600160401b031661150991906149da565b9061152a57604051637bb68a1360e11b815260040161017091815260200190565b50866001600160a01b0316638afaa2156040518163ffffffff1660e01b8152600401602060405180830381865afa158015611567573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061158b9190614ae2565b6001600160401b0316851015611685575f6001600160a01b0388166365fe45ed6115b68860016149c7565b6040518263ffffffff1660e01b81526004016115d491815260200190565b608060405180830381865afa1580156115ef573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116139190614ac8565b90505f61161f86612731565b90508082604001516001600160401b0316118061165557506104008583602001516001600160401b031661165391906149da565b115b6116608860016149c7565b90611681576040516302bd4bf160e41b815260040161017091815260200190565b5050505b602001516001600160401b03169695505050505050565b5f6116a64261206c565b90505f6116b1612767565b60018101549091505f906116dd90600160e01b900463ffffffff166116d86005600261278b565b612796565b9050828111156116ec57505050565b604080516060810182526001840154600160701b90046001600160701b0316815281518083019092524882529060208083019161173491810161172d61051d565b90526127a1565b6001600160701b03168152602001611755611750866002612796565b6127e6565b63ffffffff9081169091528151600190940180546020840151604090940151909216600160e01b026001600160e01b036001600160701b03948516600160701b026001600160e01b031990941694909616939093179190911793909316179091555050565b807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181106117fe5760405163733fc21760e01b815260040161017091815260200190565b5050565b5f6101f2825f015183602001518460400151856060015186608001518760a001516118308960c00151611b0a565b8960e001518a61010001518b61012001515f01518c6101200151602001518d61014001518e61016001516040516020016118769d9c9b9a99989796959493929190614afd565b6040516020818303038152906040526127f0565b5f5f6118946120d1565b80549091506118b99063ffffffff600160801b8204811691600160a01b900416614ba1565b815463ffffffff91909116906118d8906001600160801b0316856149da565b6111be9190614a8e565b5f5f6118ed83612885565b90506111be816118fb612892565b600301906128b6565b5f61190d612892565b5f83815260208290526040902054909150801561192957505050565b5f611933846124a2565b905061193e84612967565b5f61194985836129c1565b9050611954816121ce565b5f958652602094909452505060409092205550565b5f6101f282306129e3565b5f6001600160801b038316608061198a84612a28565b6001600160801b0316901b179392505050565b5f5f6119a7610c40565b805490915060801c83818111156119da576040516368dd4dfd60e11b815260048101929092526024820152604401610170565b50506111be6119e884612052565b610f8c565b5f6119f7826112fd565b6001015492915050565b5f610310848484612a5b565b5f5f611a1883610ca2565b90505f83606001518460400151611a2f91906149c7565b9050808211611a3e575f610310565b61031081836149da565b611a756040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b606460ff86901d808701181115611a9f5760405163e01960b760e01b815260040160405180910390fd5b5f611ab3611aae6001896149da565b612aef565b90506040518060a00160405280611ac983612b03565b8152602001868152602001611aef611ae98460501c65ffffffffffff1690565b89612b50565b81526020018581526020018481525091505095945050505050565b5f6001600160401b03821115611b3f57604080516306dfcc6560e41b8152600481019190915260248101839052604401610170565b5090565b5f611b4f61130a610c40565b90505f611b5a61271d565b9050611b6583612bdd565b611b6d610c40565b6002015f611b7b8486614ab5565b815260208082019290925260409081015f20835181559183015160018301558201516002820155606082015160038201556080820151600482015560a082015160058201805460c085015160e086015163ffffffff9094166bffffffffffffffffffffffff1990921691909117600160201b6001600160401b03928316021767ffffffffffffffff60601b1916600160601b9190931602919091179055610100820151600682015561012090910151600790910155505050565b5f6111be82611c4385612cdf565b1190565b60605f60605f86865f818110611c5f57611c5f614aa1565b919091013560f81c91505080611c88576040516324a5e23160e11b815260040160405180910390fd5b8060ff166001600160401b03811115611ca357611ca361412c565b604051908082528060200260200182016040528015611ccc578160200160208202803683370190505b5093508060ff166001600160401b03811115611cea57611cea61412c565b604051908082528060200260200182016040528015611d1d57816020015b6060815260200190600190039081611d085790505b5091505f6001815b8360ff16811015611e215789828a611d3e6030836149c7565b92611d4b93929190614bc7565b604051602001611d5c929190614bee565b604051602081830303815290604052858281518110611d7d57611d7d614aa1565b6020908102919091010152611d936030836149c7565b91505f611db8868381518110611dab57611dab614aa1565b6020026020010151612d17565b90508815611df657814993508381808214611def576040516309818f3560e11b815260048101929092526024820152604401610170565b5050611dfa565b8093505b83888381518110611e0d57611e0d614aa1565b602090810291909101015250600101611d25565b50611e36866040516020016118769190614bfd565b945050505093509350939050565b611e6b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f611e74612767565b90505f611e8a825f015460c01c63ffffffff1690565b90505f5f5f5f611e9989612d7b565b90505f8160200151620200006003611eb19190614c32565b611ebb9190614c32565b8251611eca906207a120614c32565b611ed491906149c7565b9050611ee4816001886001612dfa565b945050611f2f611f1f611f15623d0900845f0151611f006120d1565b54600160a01b900463ffffffff166001612dfa565b6001886001612dfa565b87546001600160401b0316612796565b9250611f3b8484612796565b9150505f611f488a612aef565b90505f611f7f63ffffffff8316611f678460201c65ffffffffffff1690565b611f7191906149c7565b611f7a88614c49565b612e3c565b90505f611f8b82612e8a565b90505f611fa7611fa18684633b9aca005f612dfa565b8661278b565b90505f8b611fba5764e8d4a51000611fc3565b611fc38e612efa565b90506040518060800160405280611fe38385612f1590919063ffffffff16565b815260208101859052604001611ff98a84612f15565b81526020016120088984612f15565b90529e9d5050505050505050505050505050565b5f8282188284100282186111be565b5f5f612035612767565b905061061461204d825f015460c01c63ffffffff1690565b612f28565b5f6101f261205f836112fd565b6005015463ffffffff1690565b5f5f6120766120d1565b805490915063ffffffff600160801b820416906118d8906001600160801b0316856149da565b5f5f6120a66120d1565b80549091506111be906001600160801b038116906116d890600160801b900463ffffffff1686614c32565b7fcc2bde3d21ba778aa5c156bb6fc47381978b0054c8a1ef73f44234164324cbe090565b5f5f5f612100612892565b5f8581526020829052604081205494509091508390036121375761213461212f8561212a876124a2565b6129c1565b6121ce565b92505b60020154919363ffffffff909216925050565b5f80612157600884614a8e565b90505f612165600885614ab5565b6121709060076149da565b905080855f0151838151811061218857612188614aa1565b60209101015160f81c901c60019081161495945050505050565b5f5f5f5f6121b288888888612fa2565b9250925092506121c28282613060565b50909695505050505050565b5f816040516020016121e09190614ca6565b604051602081830303815290604052805190602001209050919050565b60605f600861220d8460076149c7565b6122179190614a8e565b85515190915081908082146122485760405163dacca6db60e01b815260048101929092526024820152604401610170565b505060208501515f846001600160401b038111156122685761226861412c565b604051908082528060200260200182016040528015612291578160200160208202803683370190505b5090505f60208301818082815b8a8110156123a9576122b1600882614ab5565b5f036122ea575f6122c3600883614a8e565b90508d5f015181815181106122da576122da614aa1565b016020015160f81c945060809350505b600183901c9284161580159061235d576123056041876149c7565b95508c878151811061231957612319614aa1565b602002602001015188838151811061233357612333614aa1565b6001600160a01b03909216602092830291909101909101528661235581614cb8565b9750506123a0565b5f865160601c90506014870196508089848151811061237e5761237e614aa1565b60200260200101906001600160a01b031690816001600160a01b031681525050505b5060010161229e565b505f60146123b7878d6149da565b6123c19190614c32565b6123cc604188614c32565b6123d691906149c7565b60208e015151909150819080821461240a5760405163e41ded4d60e01b815260048101929092526024820152604401610170565b50508b51869081811461243957604051637a8e4ff160e11b815260048101929092526024820152604401610170565b50505f8d60200151518361244d91906149c7565b905085811461245c84886149da565b61246685846149da565b909161248e57604051632529e32f60e21b815260048101929092526024820152604401610170565b50979e9d5050505050505050505050505050565b5f5f6124ac612892565b90505f6124b884613118565b9050836124c860018401836131a6565b6040516020016124eb9291909182526001600160e01b0316602082015260400190565b60408051601f198184030181529190528051602090910120949350505050565b6040805160208101869052908101849052606081018390525f908290608001604051602081830303815290604052805190602001205f1c61254c9190614ab5565b95945050505050565b61257960405180606001604052805f60ff1681526020015f81526020015f81525090565b6020830151612588848461214a565b83906125aa57604051637346e14f60e11b815260040161017091815260200190565b50602081015f5b848110156125e5576125c3868261214a565b6125ce5760146125d1565b60415b6125db90836149c7565b91506001016125b1565b5080516001820151602190920151604080516060810182525f9390931a8352602083019390935291810191909152949350505050565b5f5f61263483865f0151876020015188604001516121a2565b905083816001600160a01b038281169082161461267757604051633672eb9b60e21b81526001600160a01b03928316600482015291166024820152604401610170565b5060019695505050505050565b5f6111be8383306131ee565b806001600160601b038111156126bc576040516380dc006960e01b815260040161017091815260200190565b505f60a0825f1b901b836001600160a01b03165f1b1790506127178161271161270e876127006040518060600160405280602c8152602001614ee0602c9139613221565b5f9182526020526040902090565b90565b90613238565b50505050565b5f61272661323f565b6102019060016149c7565b5f5f61273b6120d1565b90506111be61275361274e85600161278b565b61209c565b8254600160e01b900463ffffffff1661278b565b7f2e57d696f4035f6dfbf369d367f6b4aaf23baac5f6ee9a3a5207d71c56de652c90565b5f6111be82846149da565b5f6111be82846149c7565b5f5f5f90505f6127b4846020015161327f565b66ffffffffffffff16901b8117905060386127d1845f015161327f565b66ffffffffffffff16901b176111be816132b2565b5f6101f2826132e5565b6040805160018082528183019092525f916020820181803683370190505060028360405161281e9190614940565b602060405180830381855afa158015612839573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061285c919061494b565b60405160200161286d929190614cd0565b6040516020818303038152906040526101f290614cee565b5f6101f261274e83613315565b7f9bd0cd65f3d2d8103fe75b0f150f04a46bd0e603fd1819b64700ff42b24ee3aa90565b81545f9081816005811115612913575f6128cf84613336565b6128d990856149da565b5f888152602090209091508101546001600160601b03908116908716101561290357809150612911565b61290e8160016149c7565b92505b505b5f61292087878585613488565b9050801561295a57612944876129376001846149da565b5f91825260209091200190565b54600160601b90046001600160a01b031661295c565b5f5b979650505050505050565b5f612970612892565b90505f61297f826001016134e1565b509150505f61299561299085612885565b6132e5565b90508063ffffffff168263ffffffff161015612717576129b960018401824461353e565b505050505050565b60605f5f6129cf8585613558565b9150915061254c8263ffffffff16826135fd565b60408051835160208083019190915284015151818301529083015160608201525f906111be906080016040516020818303038152906040528051906020012083613692565b5f6001600160801b03821115611b3f576040516306dfcc6560e41b81526080600482015260248101839052604401610170565b825f8215612aa157612a9e60018583612a7381614cb8565b945081518110612a8557612a85614aa1565b6020026020010151604051602001611876929190614d11565b91505b8351811015612ae757612add82825f14868481518110612ac357612ac3614aa1565b602002602001015160405160200161187693929190614d27565b9150600101612aa1565b509392505050565b5f612af9826112fd565b6006015492915050565b5f5f612b0d612767565b90506111be63ffffffff8416612b2b8560201c65ffffffffffff1690565b612b3591906149c7565b8254612b479060c01c63ffffffff1690565b611f7a90614c49565b5f5f5f8312612b8157612710612b6684826149c7565b612b709086614c32565b612b7a9190614a8e565b9050612bad565b612710612b9660ff85901d80860118826149da565b612ba09086614c32565b612baa9190614a8e565b90505b6064811015612bc05760649150506101f2565b655af3107a40008111156111be57655af3107a40009150506101f2565b612c416040518061014001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f63ffffffff1681526020015f6001600160401b031681526020015f6001600160401b031681526020015f81526020015f81525090565b604051806101400160405280835f0151815260200183602001518152602001836040015181526020018360600151815260200183608001518152602001612c8b8460a001516127e6565b63ffffffff1681526020018360c001516001600160401b031681526020018360e001516001600160401b03168152602001612cca8461010001516136e8565b81526020018361012001518152509050919050565b5f5f612ce96120d1565b80549091506111be908490612d0c90600160c01b900463ffffffff166001614d43565b63ffffffff16612796565b5f600160f81b600283604051612d2d9190614940565b602060405180830381855afa158015612d48573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190612d6b919061494b565b6001600160f81b03161792915050565b604080518082019091525f80825260208201525f612d97612767565b9050612dbc612da58461206c565b6001830154600160e01b900463ffffffff16611c43565b612de3576001810154612dde90600160701b90046001600160701b0316613780565b6111be565b60018101546111be906001600160701b0316613780565b5f612e27612e07836137ba565b8015612e2257505f8480612e1d57612e1d614a7a565b868809115b151590565b612e328686866137e6565b61254c91906149c7565b5f5f8212612e5e57612e4d8261389c565b612e5790846149c7565b90506101f2565b60ff82901d8083011880841115612e8157612e7981856149da565b9150506101f2565b505f9392505050565b5f5f612e94612767565b90505f612ead825f015460401c6001600160801b031690565b90505f612ec485612ebf846064614c32565b61201c565b905061254c612eda845f015460e01c61ffff1690565b612ee6906127106149c7565b612ef390620186a0614c32565b82846138c1565b5f6101f2612f0783612aef565b60501c65ffffffffffff1690565b5f6111be8364e8d4a51000846001612dfa565b5f60018280612f53576040516372e1574f60e01b815260048101929092526024820152604401610170565b505f9050612f62836002614c32565b905063ffffffff8181811115612f99576040516303fd5c0b60e41b815263ffffffff90921660048301526024820152604401610170565b50909392505050565b5f80806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115612fd157505f91506003905082613056565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613022573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b03811661304d57505f925060019150829050613056565b92505f91508190505b9450945094915050565b5f82600381111561307357613073614d5f565b0361307c575050565b600182600381111561309057613090614d5f565b036130ae5760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156130c2576130c2614d5f565b036130e35760405163fce698f760e01b815260048101829052602401610170565b60038260038111156130f7576130f7614d5f565b036117fe576040516335e2f38360e21b815260048101829052602401610170565b5f5f613125612990613921565b61312d612892565b600201546131489190600160401b900463ffffffff16614ba1565b90505f8161315861299086612885565b6131629190614d73565b9050834263ffffffff831681101561319c57604051633c6dd5d760e11b8152600481019290925263ffffffff166024820152604401610170565b5090949350505050565b81545f90816131b78585838561395c565b905080156131e4576131ce856129376001846149da565b54600160201b90046001600160e01b031661254c565b505f949350505050565b5f6103108484604051602001613205929190614d8f565b60405160208183030381529060405280519060200120836139af565b80516020918201205f19015f9081522060ff191690565b80825d5050565b5f5f6132496120d1565b805490915061326690600160c01b900463ffffffff1660016149c7565b81546106149190600160a01b900463ffffffff16614c32565b5f66ffffffffffffff821115611b3f576040516306dfcc6560e41b81526038600482015260248101839052604401610170565b5f6001600160701b03821115611b3f576040516306dfcc6560e41b81526070600482015260248101839052604401610170565b5f63ffffffff821115611b3f576040516306dfcc6560e41b81526020600482015260248101839052604401610170565b5f61331e6120d1565b546101f290600160a01b900463ffffffff1683614c32565b5f60018211613343575090565b816001600160801b821061335c5760809190911c9060401b5b600160401b82106133725760409190911c9060201b5b600160201b82106133885760209190911c9060101b5b62010000821061339d5760109190911c9060081b5b61010082106133b15760089190911c9060041b5b601082106133c45760049190911c9060021b5b600482106133d05760011b5b600302600190811c908185816133e8576133e8614a7a565b048201901c9050600181858161340057613400614a7a565b048201901c9050600181858161341857613418614a7a565b048201901c9050600181858161343057613430614a7a565b048201901c9050600181858161344857613448614a7a565b048201901c9050600181858161346057613460614a7a565b048201901c905061347f81858161347957613479614a7a565b04821190565b90039392505050565b5f5b81831015612ae7575f61349d84846139ed565b5f878152602090209091506001600160601b038616908201546001600160601b031611156134cd578092506134db565b6134d88160016149c7565b93505b5061348a565b80545f90819081908082036134ff575f5f5f93509350935050613537565b5f61350f866129376001856149da565b546001955063ffffffff81169450600160201b90046001600160e01b03169250613537915050565b9193909250565b5f8061354b858585613a07565b915091505b935093915050565b5f60605f613564612892565b90505f61357086613b4b565b90505f6135828263ffffffff16613b7b565b600284015490915063ffffffff168181808210156135bc5760405163f4f28e9960e01b815260048101929092526024820152604401610170565b5050805f036135e1575050604080515f81526020810190915290935091506135f69050565b826135ed82848a613c0f565b95509550505050505b9250929050565b7fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cb054604051639796d97760e01b81526060916001600160a01b031690639796d9779061365190309087908790600401614db3565b5f60405180830381865afa15801561366b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111be9190810190614e02565b604080517fd9e3e10ae6d981fcde0636096fc41211a1905dd49eef1ba08ff793f60b954f2f60208201529081018390525f906111be906060015b6040516020818303038152906040528051906020012083613d65565b5f5f5f90506136fa83602001516132e5565b63ffffffff16811790506020613719845f015165ffffffffffff61201c565b901b81179050605061372e8460400151613dad565b65ffffffffffff16901b81179050608061375384606001516001600160401b0361201c565b901b8117905060c06137718460800151677fffffffffffffff61201c565b901b17600160ff1b1792915050565b604080518082019091525f8082526020820152506040805180820190915266ffffffffffffff603883901c81168252909116602082015290565b5f60028260038111156137cf576137cf614d5f565b6137d99190614ea9565b60ff166001149050919050565b5f838302815f1985870982811083820303915050805f0361381a5783828161381057613810614a7a565b04925050506111be565b808411613831576138316003851502601118613ddf565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f5f821215611b3f57604051635467221960e11b815260048101839052602401610170565b5f600181806138d08588614c32565b90505b8015613917576138e381836149c7565b91506138ef8386614c32565b6138f98783614c32565b6139039190614a8e565b90506139106001846149c7565b92506138d3565b61295c8583614a8e565b5f5f61392b6120d1565b80549091506139509063ffffffff600160801b8204811691600160a01b900416614ba1565b63ffffffff1691505090565b5f5b81831015612ae7575f61397184846139ed565b5f8781526020902090915063ffffffff86169082015463ffffffff16111561399b578092506139a9565b6139a68160016149c7565b93505b5061395e565b604080517fd7b65e8a7e173c2fd37eed3e985162c559ef4e627e5bc178b7bffabaf9b52e9c60208201529081018390525f906111be906060016136cc565b5f6139fb6002848418614a8e565b6111be908484166149c7565b82545f9081908015613af3575f613a23876129376001856149da565b805490915063ffffffff80821691600160201b90046001600160e01b0316908816821115613a6457604051632520601d60e01b815260040160405180910390fd5b8763ffffffff168263ffffffff1603613a9757825463ffffffff16600160201b6001600160e01b03891602178355613ae5565b6040805180820190915263ffffffff808a1682526001600160e01b03808a1660208085019182528d54600181018f555f8f81529190912094519151909216600160201b029216919091179101555b945085935061355092505050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a555f8a815291822095519251909316600160201b029190931617920191909155905081613550565b5f5f613b58612990613921565b613b60612892565b600201546131489190600160201b900463ffffffff16614ba1565b5f7fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cad6003015460405163ec6e69db60e01b8152306004820152602481018490526001600160a01b039091169063ec6e69db90604401602060405180830381865afa158015613beb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101f2919061494b565b6060838380821115613c3d57604051631723245360e31b815260048101929092526024820152604401610170565b5050835f03613c5a5750604080515f8152602081019091526111be565b5f846001600160401b03811115613c7357613c7361412c565b604051908082528060200260200182016040528015613c9c578160200160208202803683370190505b5090505f613cab6001866149da565b90505f5b86811015613d24575f613ccd82613cc78560016149c7565b88613df0565b9050613cd881613e33565b848381518110613cea57613cea614aa1565b60209081029190910101528215613d1b57613d0d81613d0885613e33565b613e53565b82613d1781614eca565b9350505b50600101613caf565b505f5b86811015613d5a57613d52838281518110613d4457613d44614aa1565b60200260200101515f613e53565b600101613d27565b509095945050505050565b5f613d6f82613e97565b60405161190160f01b602082015260228101919091526042810184905260620160405160208183030381529060405280519060200120905092915050565b5f65ffffffffffff821115611b3f576040516306dfcc6560e41b81526030600482015260248101839052604401610170565b634e487b715f52806020526024601cfd5b5f60018311613e0057505f6111be565b60408051602080820185905281830187905282518083038401815260609092019092528051910120610310908490614ab5565b5f5f613e3e83613f2e565b90508015613e4c5792915050565b5090919050565b6117fe8161271161270e8561270060405180604001604052806018815260200177417a7465632e53616d706c654c69622e4f7665727269646560401b815250613221565b604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f6001f7d5990128cf43d9cc82c426c8ea327f060ad15ca974b0c330643121d4c4918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201526001600160a01b03821660a08201525f9060c0016121e0565b5f6101f2613f7261270e8461270060405180604001604052806018815260200177417a7465632e53616d706c654c69622e4f7665727269646560401b815250613221565b5c90565b604051806101e00160405280613f8a614028565b8152602001606081526020015f8152602001606081526020015f8152602001613fd66040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f151581526020015f151581526020015f6001600160a01b031681526020015f6001600160a01b031681525090565b6040518061018001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f81526020016140a060405180604001604052805f6001600160801b031681526020015f6001600160801b031681525090565b81526020015f81526020015f81525090565b6001600160a01b03811681146140c6575f5ffd5b50565b80356140d4816140b2565b919050565b5f5f604083850312156140ea575f5ffd5b82356001600160401b038111156140ff575f5ffd5b83016102e08186031215614111575f5ffd5b91506020830135614121816140b2565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b03811182821017156141625761416261412c565b60405290565b60405161018081016001600160401b03811182821017156141625761416261412c565b604051602081016001600160401b03811182821017156141625761416261412c565b604051601f8201601f191681016001600160401b03811182821017156141d5576141d561412c565b604052919050565b5f82601f8301126141ec575f5ffd5b81356001600160401b038111156142055761420561412c565b614218601f8201601f19166020016141ad565b81815284602083860101111561422c575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f60408284031215614258575f5ffd5b614260614140565b905081356001600160401b03811115614277575f5ffd5b614283848285016141dd565b82525060208201356001600160401b0381111561429e575f5ffd5b6142aa848285016141dd565b60208301525092915050565b5f5f83601f8401126142c6575f5ffd5b5081356001600160401b038111156142dc575f5ffd5b6020830191508360208260051b85010111156135f6575f5ffd5b5f60608284031215614306575f5ffd5b50919050565b5f5f83601f84011261431c575f5ffd5b5081356001600160401b03811115614332575f5ffd5b6020830191508360208285010111156135f6575f5ffd5b80151581146140c6575f5ffd5b80356140d481614349565b5f5f5f5f5f5f5f5f5f898b0361030081121561437b575f5ffd5b610200811215614389575f5ffd5b508998506102008a01356001600160401b038111156143a6575f5ffd5b6143b28c828d01614248565b9850506102208a01356001600160401b038111156143ce575f5ffd5b6143da8c828d016142b6565b90985096506143ef90508b6102408c016142f6565b94506102a08a01356001600160401b0381111561440a575f5ffd5b6144168c828d0161430c565b909550935061442a90506102c08b01614356565b91506144396102e08b016140c9565b90509295985092959850929598565b5f60208284031215614306575f5ffd5b5f5f5f5f5f5f5f5f888a036102a0811215614471575f5ffd5b6101a081121561447f575f5ffd5b508897506101a08901356001600160401b0381111561449c575f5ffd5b89016040818c0312156144ad575f5ffd5b96506101c08901356001600160401b038111156144c8575f5ffd5b6144d48b828c016142b6565b90975095506144e990508a6101e08b016142f6565b9350610240890135925061026089013591506145098a6102808b01614448565b90509295985092959890939650565b5f5f5f6040848603121561452a575f5ffd5b83356001600160401b0381111561453f575f5ffd5b61454b8682870161430c565b909450925050602084013561455f81614349565b809150509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b606080825284519082018190525f9060208601906080840190835b818110156145d15783518352602093840193909201916001016145b3565b50508560208501528381036040850152809150845180825260208201925060208160051b830101602087015f5b8381101561463057601f1985840301865261461a83835161456a565b60209687019690935091909101906001016145fe565b50909998505050505050505050565b5f8235603e19833603018112614653575f5ffd5b9190910192915050565b5f5f8335601e19843603018112614672575f5ffd5b8301803591506001600160401b0382111561468b575f5ffd5b6020019150600581901b36038213156135f6575f5ffd5b6001600160401b03811681146140c6575f5ffd5b5f602082840312156146c6575f5ffd5b81356111be816146a2565b80356001600160801b03811681146140d4575f5ffd5b5f604082840312156146f7575f5ffd5b6146ff614140565b905061470a826146d1565b8152614718602083016146d1565b602082015292915050565b5f6101a0828403128015614735575f5ffd5b5061473e614168565b823581526020808401359082015260408084013590820152606080840135908201526080808401359082015260a0808401359082015260c0808401359082015261478a60e084016140c9565b60e082015261010083810135908201526147a88461012085016146e7565b61012082015261016083810135610140830152610180909301359281019290925250919050565b5f60208284031280156147e0575f5ffd5b506147e961418b565b82356147f481614349565b81529392505050565b5f6101f23683614248565b5f6060828403128015614819575f5ffd5b50604051606081016001600160401b038111828210171561483c5761483c61412c565b604052823560ff8116811461484f575f5ffd5b8152602083810135908201526040928301359281019290925250919050565b5f6080828403121561487e575f5ffd5b604051608081016001600160401b03811182821017156148a0576148a061412c565b60405282518152602083015190915081906148ba816146a2565b602082015260408301516148cd816146a2565b6040820152606083015163ffffffff811681146148e8575f5ffd5b6060919091015292915050565b5f5f60a08385031215614906575f5ffd5b8251614911816146a2565b9150614920846020850161486e565b90509250929050565b5f81518060208401855e5f93019283525090919050565b5f6111be8284614929565b5f6020828403121561495b575f5ffd5b5051919050565b5f5f60408385031215614973575f5ffd5b825161497e81614349565b6020840151909250614121816140b2565b5f60208284031280156149a0575f5ffd5b506149a961418b565b9135825250919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156101f2576101f26149b3565b818103818111156101f2576101f26149b3565b5f815160408452614a01604085018261456a565b90506020830151848203602086015261254c828261456a565b602081525f6111be60208301846149ed565b606080825284519082018190525f9060208601906080840190835b81811015614a65578351835260209384019390920191600101614a47565b50506020840195909552505060400152919050565b634e487b7160e01b5f52601260045260245ffd5b5f82614a9c57614a9c614a7a565b500490565b634e487b7160e01b5f52603260045260245ffd5b5f82614ac357614ac3614a7a565b500690565b5f60808284031215614ad8575f5ffd5b6111be838361486e565b5f60208284031215614af2575f5ffd5b81516111be816146a2565b8d81528c60208201528b60408201528a60608201528960808201528860a08201526001600160401b0360c01b8860c01b1660c08201526001600160601b03198760601b1660c88201528560dc820152614b6560fc82018660801b6001600160801b0319169052565b614b7f61010c82018560801b6001600160801b0319169052565b61011c81019290925261013c82015261015c019b9a5050505050505050505050565b63ffffffff8181168382160290811690818114614bc057614bc06149b3565b5092915050565b5f5f85851115614bd5575f5ffd5b83861115614be1575f5ffd5b5050820193919092039150565b818382375f9101908152919050565b81515f90829060208501835b82811015614c27578151845260209384019390910190600101614c09565b509195945050505050565b80820281158282048414176101f2576101f26149b3565b5f600160ff1b8201614c5d57614c5d6149b3565b505f0390565b5f8151808452602084019350602083015f5b82811015614c9c5781516001600160a01b0316865260209586019590910190600101614c75565b5093949350505050565b602081525f6111be6020830184614c63565b5f60018201614cc957614cc96149b3565b5060010190565b5f614cdb8285614929565b60ff199390931683525050601f01919050565b80516020808301519190811015614306575f1960209190910360031b1b16919050565b82151560f81b81525f6103106001830184614929565b83815282151560f81b60208201525f61254c6021830184614929565b63ffffffff81811683821601908111156101f2576101f26149b3565b634e487b7160e01b5f52602160045260245ffd5b63ffffffff82811682821603908111156101f2576101f26149b3565b604081525f614da160408301856149ed565b828103602084015261254c8185614c63565b6001600160a01b0384168152602080820184905260606040830181905283519083018190525f918401906080840190835b81811015610510578351835260209384019390920191600101614de4565b5f60208284031215614e12575f5ffd5b81516001600160401b03811115614e27575f5ffd5b8201601f81018413614e37575f5ffd5b80516001600160401b03811115614e5057614e5061412c565b8060051b614e60602082016141ad565b91825260208184018101929081019087841115614e7b575f5ffd5b6020850194505b8385101561295c5784519250614e97836140b2565b82825260209485019490910190614e82565b5f60ff831680614ebb57614ebb614a7a565b8060ff84160691505092915050565b5f81614ed857614ed86149b3565b505f19019056fe617a7465632e76616c696461746f725f73656c656374696f6e2e7472616e7369656e742e70726f706f736572a26469706673582212203274001ef4c7b775af115d54b25572a4a6c58af6070848f6de5460f0b51329c064736f6c634300081e0033";
5
5
  /**
6
6
  * RollupOperationsExtLib link references.
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"RollupOperationsExtLibBytecode.d.ts","sourceRoot":"","sources":["../src/RollupOperationsExtLibBytecode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,8BAA8B,iqvCAAiqvC,CAAC;AAC7svC;;GAEG;AACH,eAAO,MAAM,oCAAoC,IAAc,CAAC"}
1
+ {"version":3,"file":"RollupOperationsExtLibBytecode.d.ts","sourceRoot":"","sources":["../src/RollupOperationsExtLibBytecode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,8BAA8B,ivvCAAivvC,CAAC;AAC7xvC;;GAEG;AACH,eAAO,MAAM,oCAAoC,IAAc,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * RollupOperationsExtLib bytecode.
3
3
  */
4
- export const RollupOperationsExtLibBytecode = "0x614f19610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061006b575f3560e01c806302e5ba1f1461006f5780631f6d6ef7146100ab5780634abd1af5146100c157806373462953146100e25780639f2b315414610101578063f711e6c314610115575b5f5ffd5b81801561007a575f5ffd5b5061008e6100893660046140d2565b610137565b6040516001600160401b0390911681526020015b60405180910390f35b6100b36101f8565b6040519081526020016100a2565b8180156100cc575f5ffd5b506100e06100db36600461435a565b610206565b005b8180156100ed575f5ffd5b506100e06100fc366004614451565b610271565b81801561010c575f5ffd5b506100e061028b565b610128610123366004614511565b6102bb565b6040516100a293929190614591565b5f5f610142426102da565b90506102c08401358181811461017957604051632a7fc72360e01b8152600481019290925260248201526044015b60405180910390fd5b506101b790508461018e6101a0820182614638565b61019c6101c0880188614656565b886101e0018961024001358a61026001358b61028001610318565b6101ee8360608601356101d26102c088016102a089016146af565b60a08801356101e086610415565b6001600160401b0316610439565b9150505b92915050565b5f61020161051d565b905090565b61026689898989808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050604080518082019091526001600160a01b038816815288151560208201528b92508a9150899061061a565b505050505050505050565b6102818888888888888888610318565b5050505050505050565b61029442610b54565b6102b15760405163850defd360e01b815260040160405180910390fd5b6102b9610bc0565b565b60605f60606102cb868686610c30565b92509250925093509350939050565b5f5f6102e4610c40565b80549091506102f284610b54565b610305576103008160801c90565b610310565b6001600160801b0381165b949350505050565b6103776040518060a001604052808a803603810190610337919061471c565b8152602001858152602001610355610350426001610c64565b610ca2565b815260208101859052604001610370368590038501856147c8565b9052610cd5565b610388610383886147f6565b610f76565b6102815760a08801355f61039b82610f8c565b90506103b0816103aa8b6147f6565b87610fad565b5061040982826103bf8c6147f6565b8b8b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152508c9250610403915050368d90038d018d614801565b5f6111c5565b50505050505050505050565b5f61041f826112fd565b60050154600160201b90046001600160401b031692915050565b60405163af16b03960e01b81526001600160401b03841660048201525f90819081906001600160a01b0389169063af16b0399060240160a060405180830381865afa15801561048a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104ae91906148ee565b6020810151919350915086906001600160401b03818116908316146104f85760405162c1404b60e11b81526001600160401b03928316600482015291166024820152604401610170565b50506105108888846001600160401b031688886113a0565b5090979650505050505050565b5f617a6946148080156105445750737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15155b156106125760408051600481526024810182526020810180516001600160e01b0316631f6d6ef760e01b17905290515f918291737109709ecfa91a80626ff3989d68f67f5b1dd12d9161059691614939565b5f60405180830381855afa9150503d805f81146105ce576040519150601f19603f3d011682016040523d82523d5f602084013e6105d3565b606091505b50915091508180156105e757506020815110155b1561060857808060200190518101906106009190614944565b935050505090565b6001935050505090565b4a5b91505090565b61062342610b54565b1561063057610630610bc0565b610638613f6f565b61064061169c565b61064f84848460200151610c30565b6060840152604080840191909152602083019190915261067790368a90038a01908a0161471c565b815261068388356117ba565b805161068e90611802565b60e082015261069c4261188a565b61014082018190526106ad906118e2565b6001600160a01b03166101c0820181905215610754576101c0810151610140820151604051631d18577f60e11b81526001600160a01b0390921691633a30aefe916106fe9160040190815260200190565b6040805180830381865afa158015610718573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073c919061495b565b6001600160a01b03166101a083015215156101808201525b80610180015161076c5761076c816101400151611904565b5f610778426001610c64565b90506107b760405180606001604052808b5f013581526020018b6020018036038101906107a59190614988565b81526020018460e00151815250611969565b61012083019081526040805160a0810182528451815291516020830152610807919081016107e484610ca2565b8152604080860151602080840191909152815190810182525f8152910152610cd5565b5f610810610c40565b905082610180015115610867576101a0830151336001600160a01b0382168114610860576040516380242ae760e01b81526001600160a01b03928316600482015291166024820152604401610170565b5050610898565b610898835f015160a001518461014001518b8b8761012001518c8036038101906108919190614801565b60016111c5565b80545f6108a58260801c90565b6108b09060016149c0565b90506108bc8282611974565b91506108fe865f0151865f0151606001518e6101e00135885f015160a001516108f06001876108eb91906149d3565b610415565b6001600160401b03166113a0565b60c08601526101408501516109249061092061091b6001856149d3565b61199d565b1090565b8061092f5750806001145b151561016086015261095d61094d6109486001846149d3565b6119ed565b8660600151876101600151611a01565b60808601528451610140015161098890829060208f01359061097e88611a0d565b8860600151611a48565b60a086015260405161099e908c90602001614a13565b60408051601f19818403018152918152815160209283012061010088019081528486555f8481526001870184528290208f35905581516101408101835260e089015181526080808a01519482019490945288518401519281019290925251606082015261012087015191810191909152855160a0908101519082015260c080870151610a739291820190610a3190611b0a565b6001600160401b03168152602001610a4d8f6101e00135611b0a565b6001600160401b0316815260a08801516020820152875160600151604090910152611b43565b6101808501518c359015610afa576101c08601516101a08701516040516308d864c360e31b81526001600160a01b0391821660048201526001600160801b0385166024820152604481018490529116906346c32618906064015f604051808303815f87803b158015610ae3575f5ffd5b505af1158015610af5573d5f5f3e3d5ffd5b505050505b80827f6ff492bf2b4ca1b93a175167d14b3e46085b935cab3f39ca94013000799b93a088602001518961012001518a6101000151604051610b3d93929190614a25565b60405180910390a350505050505050505050505050565b5f5f610b5e610c40565b80549091506001600160801b038116610b778260801c90565b03610b8557505f9392505050565b5f610b9d61091b6001600160801b03841660016149c0565b90505f610ba98661188a565b9050610bb58282611c35565b159695505050505050565b5f610bc9610c40565b80549091505f610bd98260801c90565b90506001600160801b038216610bef8382611974565b845560408051828152602081018490527fc78a70f3b27748d5fa327f6a3c1104b9b007d6a80d20c41f7c0dc4543fbdbdcd910160405180910390a150505050565b60605f60606102cb868686611c47565b7f0958201b72d64259285941dffd868dac55267471fcc73e8a06e1fd9cf870636190565b610c8b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f610c95846102da565b90506101ee818585611e44565b5f6101f2825f015183606001518460400151610cbe91906149c0565b610cc891906149c0565b6001600160801b0361201c565b805160200151610ce4906117ba565b805160800151610cf3906117ba565b80516101000151610d03906117ba565b80516101600151610d13906117ba565b805160e001516001600160a01b0316610d3f5760405163338736ad60e01b815260040160405180910390fd5b610d4761202b565b815161014001511115610d6d576040516313258e7d60e01b815260040160405180910390fd5b425f610d77610c40565b90505f610d83836102da565b5f818152600184016020526040902054855151919250908190808214610dc557604051635b41520760e11b815260048101929092526024820152604401610170565b5050845160a001515f610dd784612052565b90508082808210610e045760405163083510bd60e41b815260048101929092526024820152604401610170565b50505f610e108761206c565b90508083808214610e3d576040516309ba91ff60e01b815260048101929092526024820152604401610170565b50505f610e498461209c565b895160c001519091508190818114610e7d57604051633132e89560e01b815260048101929092526024820152604401610170565b508890508180821015610eac5760405163089f306960e41b815260048101929092526024820152604401610170565b505060808901515180610ec757506060890151895160400151145b89516040015190610eee5760405163414906c360e01b815260040161017091815260200190565b5088516101200151516001600160801b031615610f1e57604051636ce3afa960e11b815260040160405180910390fd5b604089015189516101200151602001516001600160801b0381168214610f695760405163c30346dd60e01b815260048101929092526001600160801b03166024820152604401610170565b5050505050505050505050565b8051515f9015806101f257505060200151511590565b5f610f956120d1565b546101f290600160a01b900463ffffffff1683614a87565b60605f5f610fba866120f5565b91509150805f03610fdc575050604080515f81526020810190915290506111be565b5f60405180608001604052805f81526020016003600185901b610fff9190614a87565b61100a9060016149c0565b81526020015f8152602001836001600160401b0381111561102d5761102d614125565b604051908082528060200260200182016040528015611056578160200160208202803683370190505b50905260208088015191925081015f5b84811015611141575f6110798a8361214a565b905080156110f157825160018085015160218601516040890180519093019092526041909501945f9290921a91906110b38c8484846121a2565b886060015186815181106110c9576110c9614a9a565b60200260200101906001600160a01b031690816001600160a01b031681525050505050611138565b5f835160601c9050601484019350808660600151848151811061111657611116614a9a565b60200260200101906001600160a01b031690816001600160a01b031681525050505b50600101611066565b5060208301516040840151818110156111765760405163af47297f60e01b815260048101929092526024820152604401610170565b50505f61118684606001516121ce565b90508581146111b2576040516332a3565560e21b81526004810182905260248101879052604401610170565b50505060600151925050505b9392505050565b5f5f5f5f6111d28a6120f5565b91509150805f036111e657505050506112f4565b5f6111f28a8a846121fd565b90505f6111fe826121ce565b905083811461122a576040516332a3565560e21b81526004810182905260248101859052604401610170565b5f6112348d6124a2565b90506112428d8f838761250b565b965082878151811061125657611256614a9a565b6020026020010151955050505050505f611279838961214a90919063ffffffff16565b9050806112ab57604051633cf9646b60e21b81526001600160a01b038316600482015260248101849052604401610170565b5f6112b68985612555565b90506112c381848961261b565b505f6112cf8a8a612684565b90506112dc87858361261b565b5085156112ee576112ee8c8587612690565b50505050505b50505050505050565b5f5f61131161130a610c40565b5460801c90565b90505f61131c61271d565b90505f61132982866149c0565b90505f83861115801561133b57508184105b90508584838361136f57604051638711786b60e01b8152600481019390935260248301919091526044820152606401610170565b50505061137a610c40565b6002015f6113888589614aae565b81526020019081526020015f20945050505050919050565b6040516365fe45ed60e01b8152600481018490525f9081906001600160a01b038816906365fe45ed90602401608060405180830381865afa1580156113e7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061140b9190614ac1565b80519091508681811461143a5760405163ed1f7bb560e01b815260048101929092526024820152604401610170565b505084158061145557504281604001516001600160401b0316105b8061146b5750610100816060015163ffffffff16145b859061148c5760405162e4a97360e71b815260040161017091815260200190565b50602081015183906001600160401b0381168211156114d0576040516354e0c02560e01b815260048101929092526001600160401b03166024820152604401610170565b50506104008382602001516001600160401b03166114ee91906149d3565b11158382602001516001600160401b031661150991906149d3565b9061152a57604051637bb68a1360e11b815260040161017091815260200190565b50866001600160a01b0316638afaa2156040518163ffffffff1660e01b8152600401602060405180830381865afa158015611567573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061158b9190614adb565b6001600160401b0316851015611685575f6001600160a01b0388166365fe45ed6115b68860016149c0565b6040518263ffffffff1660e01b81526004016115d491815260200190565b608060405180830381865afa1580156115ef573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116139190614ac1565b90505f61161f86612731565b90508082604001516001600160401b0316118061165557506104008583602001516001600160401b031661165391906149d3565b115b6116608860016149c0565b90611681576040516302bd4bf160e41b815260040161017091815260200190565b5050505b602001516001600160401b03169695505050505050565b5f6116a64261206c565b90505f6116b1612767565b60018101549091505f906116dd90600160e01b900463ffffffff166116d86005600261278b565b612796565b9050828111156116ec57505050565b604080516060810182526001840154600160701b90046001600160701b0316815281518083019092524882529060208083019161173491810161172d61051d565b90526127a1565b6001600160701b03168152602001611755611750866002612796565b6127e6565b63ffffffff9081169091528151600190940180546020840151604090940151909216600160e01b026001600160e01b036001600160701b03948516600160701b026001600160e01b031990941694909616939093179190911793909316179091555050565b807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181106117fe5760405163733fc21760e01b815260040161017091815260200190565b5050565b5f6101f2825f015183602001518460400151856060015186608001518760a001516118308960c00151611b0a565b8960e001518a61010001518b61012001515f01518c6101200151602001518d61014001518e61016001516040516020016118769d9c9b9a99989796959493929190614af6565b6040516020818303038152906040526127f0565b5f5f6118946120d1565b80549091506118b99063ffffffff600160801b8204811691600160a01b900416614b9a565b815463ffffffff91909116906118d8906001600160801b0316856149d3565b6111be9190614a87565b5f5f6118ed83612885565b90506111be816118fb612892565b600301906128b6565b5f61190d612892565b5f83815260208290526040902054909150801561192957505050565b5f611933846124a2565b905061193e84612967565b5f61194985836129c1565b9050611954816121ce565b5f958652602094909452505060409092205550565b5f6101f282306129e3565b5f6001600160801b038316608061198a84612a28565b6001600160801b0316901b179392505050565b5f5f6119a7610c40565b805490915060801c83818111156119da576040516368dd4dfd60e11b815260048101929092526024820152604401610170565b50506111be6119e884612052565b610f8c565b5f6119f7826112fd565b6001015492915050565b5f610310848484612a5b565b5f5f611a1883610ca2565b90505f83606001518460400151611a2f91906149c0565b9050808211611a3e575f610310565b61031081836149d3565b611a756040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b606460ff86901d808701181115611a9f5760405163e01960b760e01b815260040160405180910390fd5b5f611ab3611aae6001896149d3565b612ae8565b90506040518060a00160405280611ac983612afc565b8152602001868152602001611aef611ae98460501c65ffffffffffff1690565b89612b49565b81526020018581526020018481525091505095945050505050565b5f6001600160401b03821115611b3f57604080516306dfcc6560e41b8152600481019190915260248101839052604401610170565b5090565b5f611b4f61130a610c40565b90505f611b5a61271d565b9050611b6583612bd6565b611b6d610c40565b6002015f611b7b8486614aae565b815260208082019290925260409081015f20835181559183015160018301558201516002820155606082015160038201556080820151600482015560a082015160058201805460c085015160e086015163ffffffff9094166bffffffffffffffffffffffff1990921691909117600160201b6001600160401b03928316021767ffffffffffffffff60601b1916600160601b9190931602919091179055610100820151600682015561012090910151600790910155505050565b5f6111be82611c4385612cd8565b1190565b60605f60605f86865f818110611c5f57611c5f614a9a565b919091013560f81c91505080611c88576040516324a5e23160e11b815260040160405180910390fd5b8060ff166001600160401b03811115611ca357611ca3614125565b604051908082528060200260200182016040528015611ccc578160200160208202803683370190505b5093508060ff166001600160401b03811115611cea57611cea614125565b604051908082528060200260200182016040528015611d1d57816020015b6060815260200190600190039081611d085790505b5091505f6001815b8360ff16811015611e215789828a611d3e6030836149c0565b92611d4b93929190614bc0565b604051602001611d5c929190614be7565b604051602081830303815290604052858281518110611d7d57611d7d614a9a565b6020908102919091010152611d936030836149c0565b91505f611db8868381518110611dab57611dab614a9a565b6020026020010151612d10565b90508815611df657814993508381808214611def576040516309818f3560e11b815260048101929092526024820152604401610170565b5050611dfa565b8093505b83888381518110611e0d57611e0d614a9a565b602090810291909101015250600101611d25565b50611e36866040516020016118769190614bf6565b945050505093509350939050565b611e6b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f611e74612767565b90505f611e8a825f015460c01c63ffffffff1690565b90505f5f5f5f611e9989612d74565b90505f8160200151620200006003611eb19190614c2b565b611ebb9190614c2b565b8251611eca906207a120614c2b565b611ed491906149c0565b9050611ee4816001886001612df3565b945050611f2f611f1f611f15623d0900845f0151611f006120d1565b54600160a01b900463ffffffff166001612df3565b6001886001612df3565b87546001600160401b0316612796565b9250611f3b8484612796565b9150505f611f488a612ae8565b90505f611f7f63ffffffff8316611f678460201c65ffffffffffff1690565b611f7191906149c0565b611f7a88614c42565b612e35565b90505f611f8b82612e83565b90505f611fa7611fa18684633b9aca005f612df3565b8661278b565b90505f8b611fba5764e8d4a51000611fc3565b611fc38e612ef3565b90506040518060800160405280611fe38385612f0e90919063ffffffff16565b815260208101859052604001611ff98a84612f0e565b81526020016120088984612f0e565b90529e9d5050505050505050505050505050565b5f8282188284100282186111be565b5f5f612035612767565b905061061461204d825f015460c01c63ffffffff1690565b612f21565b5f6101f261205f836112fd565b6005015463ffffffff1690565b5f5f6120766120d1565b805490915063ffffffff600160801b820416906118d8906001600160801b0316856149d3565b5f5f6120a66120d1565b80549091506111be906001600160801b038116906116d890600160801b900463ffffffff1686614c2b565b7fcc2bde3d21ba778aa5c156bb6fc47381978b0054c8a1ef73f44234164324cbe090565b5f5f5f612100612892565b5f8581526020829052604081205494509091508390036121375761213461212f8561212a876124a2565b6129c1565b6121ce565b92505b60020154919363ffffffff909216925050565b5f80612157600884614a87565b90505f612165600885614aae565b6121709060076149d3565b905080855f0151838151811061218857612188614a9a565b60209101015160f81c901c60019081161495945050505050565b5f5f5f5f6121b288888888612f9b565b9250925092506121c28282613059565b50909695505050505050565b5f816040516020016121e09190614c9f565b604051602081830303815290604052805190602001209050919050565b60605f600861220d8460076149c0565b6122179190614a87565b85515190915081908082146122485760405163dacca6db60e01b815260048101929092526024820152604401610170565b505060208501515f846001600160401b0381111561226857612268614125565b604051908082528060200260200182016040528015612291578160200160208202803683370190505b5090505f60208301818082815b8a8110156123a9576122b1600882614aae565b5f036122ea575f6122c3600883614a87565b90508d5f015181815181106122da576122da614a9a565b016020015160f81c945060809350505b600183901c9284161580159061235d576123056041876149c0565b95508c878151811061231957612319614a9a565b602002602001015188838151811061233357612333614a9a565b6001600160a01b03909216602092830291909101909101528661235581614cb1565b9750506123a0565b5f865160601c90506014870196508089848151811061237e5761237e614a9a565b60200260200101906001600160a01b031690816001600160a01b031681525050505b5060010161229e565b505f60146123b7878d6149d3565b6123c19190614c2b565b6123cc604188614c2b565b6123d691906149c0565b60208e015151909150819080821461240a5760405163e41ded4d60e01b815260048101929092526024820152604401610170565b50508b51869081811461243957604051637a8e4ff160e11b815260048101929092526024820152604401610170565b50505f8d60200151518361244d91906149c0565b905085811461245c84886149d3565b61246685846149d3565b909161248e57604051632529e32f60e21b815260048101929092526024820152604401610170565b50979e9d5050505050505050505050505050565b5f5f6124ac612892565b90505f6124b884613111565b9050836124c8600184018361319f565b6040516020016124eb9291909182526001600160e01b0316602082015260400190565b60408051601f198184030181529190528051602090910120949350505050565b6040805160208101869052908101849052606081018390525f908290608001604051602081830303815290604052805190602001205f1c61254c9190614aae565b95945050505050565b61257960405180606001604052805f60ff1681526020015f81526020015f81525090565b6020830151612588848461214a565b83906125aa57604051637346e14f60e11b815260040161017091815260200190565b50602081015f5b848110156125e5576125c3868261214a565b6125ce5760146125d1565b60415b6125db90836149c0565b91506001016125b1565b5080516001820151602190920151604080516060810182525f9390931a8352602083019390935291810191909152949350505050565b5f5f61263483865f0151876020015188604001516121a2565b905083816001600160a01b038281169082161461267757604051633672eb9b60e21b81526001600160a01b03928316600482015291166024820152604401610170565b5060019695505050505050565b5f6111be8383306131e7565b806001600160601b038111156126bc576040516380dc006960e01b815260040161017091815260200190565b505f60a0825f1b901b836001600160a01b03165f1b1790506127178161271161270e876127006040518060600160405280602c8152602001614eb8602c913961321a565b5f9182526020526040902090565b90565b90613231565b50505050565b5f612726613238565b6102019060016149c0565b5f5f61273b6120d1565b90506111be61275361274e85600161278b565b61209c565b8254600160e01b900463ffffffff1661278b565b7f2e57d696f4035f6dfbf369d367f6b4aaf23baac5f6ee9a3a5207d71c56de652c90565b5f6111be82846149d3565b5f6111be82846149c0565b5f5f5f90505f6127b48460200151613278565b66ffffffffffffff16901b8117905060386127d1845f0151613278565b66ffffffffffffff16901b176111be816132ab565b5f6101f2826132de565b6040805160018082528183019092525f916020820181803683370190505060028360405161281e9190614939565b602060405180830381855afa158015612839573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061285c9190614944565b60405160200161286d929190614cc9565b6040516020818303038152906040526101f290614ce7565b5f6101f261274e8361330e565b7f9bd0cd65f3d2d8103fe75b0f150f04a46bd0e603fd1819b64700ff42b24ee3aa90565b81545f9081816005811115612913575f6128cf8461332f565b6128d990856149d3565b5f888152602090209091508101546001600160601b03908116908716101561290357809150612911565b61290e8160016149c0565b92505b505b5f61292087878585613481565b9050801561295a57612944876129376001846149d3565b5f91825260209091200190565b54600160601b90046001600160a01b031661295c565b5f5b979650505050505050565b5f612970612892565b90505f61297f826001016134da565b509150505f61299561299085612885565b6132de565b90508063ffffffff168263ffffffff161015612717576129b9600184018244613537565b505050505050565b60605f5f6129cf8585613551565b9150915061254c8263ffffffff16826135f6565b60408051835160208083019190915284015151818301529083015160608201525f906111be90608001604051602081830303815290604052805190602001208361368b565b5f6001600160801b03821115611b3f576040516306dfcc6560e41b81526080600482015260248101839052604401610170565b825f8215612a9e57612a9b8482612a7181614cb1565b935081518110612a8357612a83614a9a565b60200260200101516040516020016118769190614939565b91505b8351811015612ae057612ad682858381518110612abd57612abd614a9a565b6020026020010151604051602001611876929190614d0a565b9150600101612a9e565b509392505050565b5f612af2826112fd565b6006015492915050565b5f5f612b06612767565b90506111be63ffffffff8416612b248560201c65ffffffffffff1690565b612b2e91906149c0565b8254612b409060c01c63ffffffff1690565b611f7a90614c42565b5f5f5f8312612b7a57612710612b5f84826149c0565b612b699086614c2b565b612b739190614a87565b9050612ba6565b612710612b8f60ff85901d80860118826149d3565b612b999086614c2b565b612ba39190614a87565b90505b6064811015612bb95760649150506101f2565b655af3107a40008111156111be57655af3107a40009150506101f2565b612c3a6040518061014001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f63ffffffff1681526020015f6001600160401b031681526020015f6001600160401b031681526020015f81526020015f81525090565b604051806101400160405280835f0151815260200183602001518152602001836040015181526020018360600151815260200183608001518152602001612c848460a001516127e6565b63ffffffff1681526020018360c001516001600160401b031681526020018360e001516001600160401b03168152602001612cc38461010001516136e1565b81526020018361012001518152509050919050565b5f5f612ce26120d1565b80549091506111be908490612d0590600160c01b900463ffffffff166001614d1b565b63ffffffff16612796565b5f600160f81b600283604051612d269190614939565b602060405180830381855afa158015612d41573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190612d649190614944565b6001600160f81b03161792915050565b604080518082019091525f80825260208201525f612d90612767565b9050612db5612d9e8461206c565b6001830154600160e01b900463ffffffff16611c43565b612ddc576001810154612dd790600160701b90046001600160701b0316613779565b6111be565b60018101546111be906001600160701b0316613779565b5f612e20612e00836137b3565b8015612e1b57505f8480612e1657612e16614a73565b868809115b151590565b612e2b8686866137df565b61254c91906149c0565b5f5f8212612e5757612e4682613895565b612e5090846149c0565b90506101f2565b60ff82901d8083011880841115612e7a57612e7281856149d3565b9150506101f2565b505f9392505050565b5f5f612e8d612767565b90505f612ea6825f015460401c6001600160801b031690565b90505f612ebd85612eb8846064614c2b565b61201c565b905061254c612ed3845f015460e01c61ffff1690565b612edf906127106149c0565b612eec90620186a0614c2b565b82846138ba565b5f6101f2612f0083612ae8565b60501c65ffffffffffff1690565b5f6111be8364e8d4a51000846001612df3565b5f60018280612f4c576040516372e1574f60e01b815260048101929092526024820152604401610170565b505f9050612f5b836002614c2b565b905063ffffffff8181811115612f92576040516303fd5c0b60e41b815263ffffffff90921660048301526024820152604401610170565b50909392505050565b5f80806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115612fca57505f9150600390508261304f565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561301b573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b03811661304657505f92506001915082905061304f565b92505f91508190505b9450945094915050565b5f82600381111561306c5761306c614d37565b03613075575050565b600182600381111561308957613089614d37565b036130a75760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156130bb576130bb614d37565b036130dc5760405163fce698f760e01b815260048101829052602401610170565b60038260038111156130f0576130f0614d37565b036117fe576040516335e2f38360e21b815260048101829052602401610170565b5f5f61311e61299061391a565b613126612892565b600201546131419190600160401b900463ffffffff16614b9a565b90505f8161315161299086612885565b61315b9190614d4b565b9050834263ffffffff831681101561319557604051633c6dd5d760e11b8152600481019290925263ffffffff166024820152604401610170565b5090949350505050565b81545f90816131b085858385613955565b905080156131dd576131c7856129376001846149d3565b54600160201b90046001600160e01b031661254c565b505f949350505050565b5f61031084846040516020016131fe929190614d67565b60405160208183030381529060405280519060200120836139a8565b80516020918201205f19015f9081522060ff191690565b80825d5050565b5f5f6132426120d1565b805490915061325f90600160c01b900463ffffffff1660016149c0565b81546106149190600160a01b900463ffffffff16614c2b565b5f66ffffffffffffff821115611b3f576040516306dfcc6560e41b81526038600482015260248101839052604401610170565b5f6001600160701b03821115611b3f576040516306dfcc6560e41b81526070600482015260248101839052604401610170565b5f63ffffffff821115611b3f576040516306dfcc6560e41b81526020600482015260248101839052604401610170565b5f6133176120d1565b546101f290600160a01b900463ffffffff1683614c2b565b5f6001821161333c575090565b816001600160801b82106133555760809190911c9060401b5b600160401b821061336b5760409190911c9060201b5b600160201b82106133815760209190911c9060101b5b6201000082106133965760109190911c9060081b5b61010082106133aa5760089190911c9060041b5b601082106133bd5760049190911c9060021b5b600482106133c95760011b5b600302600190811c908185816133e1576133e1614a73565b048201901c905060018185816133f9576133f9614a73565b048201901c9050600181858161341157613411614a73565b048201901c9050600181858161342957613429614a73565b048201901c9050600181858161344157613441614a73565b048201901c9050600181858161345957613459614a73565b048201901c905061347881858161347257613472614a73565b04821190565b90039392505050565b5f5b81831015612ae0575f61349684846139e6565b5f878152602090209091506001600160601b038616908201546001600160601b031611156134c6578092506134d4565b6134d18160016149c0565b93505b50613483565b80545f90819081908082036134f8575f5f5f93509350935050613530565b5f613508866129376001856149d3565b546001955063ffffffff81169450600160201b90046001600160e01b03169250613530915050565b9193909250565b5f80613544858585613a00565b915091505b935093915050565b5f60605f61355d612892565b90505f61356986613b44565b90505f61357b8263ffffffff16613b74565b600284015490915063ffffffff168181808210156135b55760405163f4f28e9960e01b815260048101929092526024820152604401610170565b5050805f036135da575050604080515f81526020810190915290935091506135ef9050565b826135e682848a613c08565b95509550505050505b9250929050565b7fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cb054604051639796d97760e01b81526060916001600160a01b031690639796d9779061364a90309087908790600401614d8b565b5f60405180830381865afa158015613664573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111be9190810190614dda565b604080517fd9e3e10ae6d981fcde0636096fc41211a1905dd49eef1ba08ff793f60b954f2f60208201529081018390525f906111be906060015b6040516020818303038152906040528051906020012083613d5e565b5f5f5f90506136f383602001516132de565b63ffffffff16811790506020613712845f015165ffffffffffff61201c565b901b8117905060506137278460400151613da6565b65ffffffffffff16901b81179050608061374c84606001516001600160401b0361201c565b901b8117905060c061376a8460800151677fffffffffffffff61201c565b901b17600160ff1b1792915050565b604080518082019091525f8082526020820152506040805180820190915266ffffffffffffff603883901c81168252909116602082015290565b5f60028260038111156137c8576137c8614d37565b6137d29190614e81565b60ff166001149050919050565b5f838302815f1985870982811083820303915050805f036138135783828161380957613809614a73565b04925050506111be565b80841161382a5761382a6003851502601118613dd8565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f5f821215611b3f57604051635467221960e11b815260048101839052602401610170565b5f600181806138c98588614c2b565b90505b8015613910576138dc81836149c0565b91506138e88386614c2b565b6138f28783614c2b565b6138fc9190614a87565b90506139096001846149c0565b92506138cc565b61295c8583614a87565b5f5f6139246120d1565b80549091506139499063ffffffff600160801b8204811691600160a01b900416614b9a565b63ffffffff1691505090565b5f5b81831015612ae0575f61396a84846139e6565b5f8781526020902090915063ffffffff86169082015463ffffffff161115613994578092506139a2565b61399f8160016149c0565b93505b50613957565b604080517fd7b65e8a7e173c2fd37eed3e985162c559ef4e627e5bc178b7bffabaf9b52e9c60208201529081018390525f906111be906060016136c5565b5f6139f46002848418614a87565b6111be908484166149c0565b82545f9081908015613aec575f613a1c876129376001856149d3565b805490915063ffffffff80821691600160201b90046001600160e01b0316908816821115613a5d57604051632520601d60e01b815260040160405180910390fd5b8763ffffffff168263ffffffff1603613a9057825463ffffffff16600160201b6001600160e01b03891602178355613ade565b6040805180820190915263ffffffff808a1682526001600160e01b03808a1660208085019182528d54600181018f555f8f81529190912094519151909216600160201b029216919091179101555b945085935061354992505050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a555f8a815291822095519251909316600160201b029190931617920191909155905081613549565b5f5f613b5161299061391a565b613b59612892565b600201546131419190600160201b900463ffffffff16614b9a565b5f7fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cad6003015460405163ec6e69db60e01b8152306004820152602481018490526001600160a01b039091169063ec6e69db90604401602060405180830381865afa158015613be4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101f29190614944565b6060838380821115613c3657604051631723245360e31b815260048101929092526024820152604401610170565b5050835f03613c535750604080515f8152602081019091526111be565b5f846001600160401b03811115613c6c57613c6c614125565b604051908082528060200260200182016040528015613c95578160200160208202803683370190505b5090505f613ca46001866149d3565b90505f5b86811015613d1d575f613cc682613cc08560016149c0565b88613de9565b9050613cd181613e2c565b848381518110613ce357613ce3614a9a565b60209081029190910101528215613d1457613d0681613d0185613e2c565b613e4c565b82613d1081614ea2565b9350505b50600101613ca8565b505f5b86811015613d5357613d4b838281518110613d3d57613d3d614a9a565b60200260200101515f613e4c565b600101613d20565b509095945050505050565b5f613d6882613e90565b60405161190160f01b602082015260228101919091526042810184905260620160405160208183030381529060405280519060200120905092915050565b5f65ffffffffffff821115611b3f576040516306dfcc6560e41b81526030600482015260248101839052604401610170565b634e487b715f52806020526024601cfd5b5f60018311613df957505f6111be565b60408051602080820185905281830187905282518083038401815260609092019092528051910120610310908490614aae565b5f5f613e3783613f27565b90508015613e455792915050565b5090919050565b6117fe8161271161270e8561270060405180604001604052806018815260200177417a7465632e53616d706c654c69622e4f7665727269646560401b81525061321a565b604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f6001f7d5990128cf43d9cc82c426c8ea327f060ad15ca974b0c330643121d4c4918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201526001600160a01b03821660a08201525f9060c0016121e0565b5f6101f2613f6b61270e8461270060405180604001604052806018815260200177417a7465632e53616d706c654c69622e4f7665727269646560401b81525061321a565b5c90565b604051806101e00160405280613f83614021565b8152602001606081526020015f8152602001606081526020015f8152602001613fcf6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f151581526020015f151581526020015f6001600160a01b031681526020015f6001600160a01b031681525090565b6040518061018001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f815260200161409960405180604001604052805f6001600160801b031681526020015f6001600160801b031681525090565b81526020015f81526020015f81525090565b6001600160a01b03811681146140bf575f5ffd5b50565b80356140cd816140ab565b919050565b5f5f604083850312156140e3575f5ffd5b82356001600160401b038111156140f8575f5ffd5b83016102e0818603121561410a575f5ffd5b9150602083013561411a816140ab565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b038111828210171561415b5761415b614125565b60405290565b60405161018081016001600160401b038111828210171561415b5761415b614125565b604051602081016001600160401b038111828210171561415b5761415b614125565b604051601f8201601f191681016001600160401b03811182821017156141ce576141ce614125565b604052919050565b5f82601f8301126141e5575f5ffd5b81356001600160401b038111156141fe576141fe614125565b614211601f8201601f19166020016141a6565b818152846020838601011115614225575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f60408284031215614251575f5ffd5b614259614139565b905081356001600160401b03811115614270575f5ffd5b61427c848285016141d6565b82525060208201356001600160401b03811115614297575f5ffd5b6142a3848285016141d6565b60208301525092915050565b5f5f83601f8401126142bf575f5ffd5b5081356001600160401b038111156142d5575f5ffd5b6020830191508360208260051b85010111156135ef575f5ffd5b5f606082840312156142ff575f5ffd5b50919050565b5f5f83601f840112614315575f5ffd5b5081356001600160401b0381111561432b575f5ffd5b6020830191508360208285010111156135ef575f5ffd5b80151581146140bf575f5ffd5b80356140cd81614342565b5f5f5f5f5f5f5f5f5f898b03610300811215614374575f5ffd5b610200811215614382575f5ffd5b508998506102008a01356001600160401b0381111561439f575f5ffd5b6143ab8c828d01614241565b9850506102208a01356001600160401b038111156143c7575f5ffd5b6143d38c828d016142af565b90985096506143e890508b6102408c016142ef565b94506102a08a01356001600160401b03811115614403575f5ffd5b61440f8c828d01614305565b909550935061442390506102c08b0161434f565b91506144326102e08b016140c2565b90509295985092959850929598565b5f602082840312156142ff575f5ffd5b5f5f5f5f5f5f5f5f888a036102a081121561446a575f5ffd5b6101a0811215614478575f5ffd5b508897506101a08901356001600160401b03811115614495575f5ffd5b89016040818c0312156144a6575f5ffd5b96506101c08901356001600160401b038111156144c1575f5ffd5b6144cd8b828c016142af565b90975095506144e290508a6101e08b016142ef565b9350610240890135925061026089013591506145028a6102808b01614441565b90509295985092959890939650565b5f5f5f60408486031215614523575f5ffd5b83356001600160401b03811115614538575f5ffd5b61454486828701614305565b909450925050602084013561455881614342565b809150509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b606080825284519082018190525f9060208601906080840190835b818110156145ca5783518352602093840193909201916001016145ac565b50508560208501528381036040850152809150845180825260208201925060208160051b830101602087015f5b8381101561462957601f19858403018652614613838351614563565b60209687019690935091909101906001016145f7565b50909998505050505050505050565b5f8235603e1983360301811261464c575f5ffd5b9190910192915050565b5f5f8335601e1984360301811261466b575f5ffd5b8301803591506001600160401b03821115614684575f5ffd5b6020019150600581901b36038213156135ef575f5ffd5b6001600160401b03811681146140bf575f5ffd5b5f602082840312156146bf575f5ffd5b81356111be8161469b565b80356001600160801b03811681146140cd575f5ffd5b5f604082840312156146f0575f5ffd5b6146f8614139565b9050614703826146ca565b8152614711602083016146ca565b602082015292915050565b5f6101a082840312801561472e575f5ffd5b50614737614161565b823581526020808401359082015260408084013590820152606080840135908201526080808401359082015260a0808401359082015260c0808401359082015261478360e084016140c2565b60e082015261010083810135908201526147a18461012085016146e0565b61012082015261016083810135610140830152610180909301359281019290925250919050565b5f60208284031280156147d9575f5ffd5b506147e2614184565b82356147ed81614342565b81529392505050565b5f6101f23683614241565b5f6060828403128015614812575f5ffd5b50604051606081016001600160401b038111828210171561483557614835614125565b604052823560ff81168114614848575f5ffd5b8152602083810135908201526040928301359281019290925250919050565b5f60808284031215614877575f5ffd5b604051608081016001600160401b038111828210171561489957614899614125565b60405282518152602083015190915081906148b38161469b565b602082015260408301516148c68161469b565b6040820152606083015163ffffffff811681146148e1575f5ffd5b6060919091015292915050565b5f5f60a083850312156148ff575f5ffd5b825161490a8161469b565b91506149198460208501614867565b90509250929050565b5f81518060208401855e5f93019283525090919050565b5f6111be8284614922565b5f60208284031215614954575f5ffd5b5051919050565b5f5f6040838503121561496c575f5ffd5b825161497781614342565b602084015190925061411a816140ab565b5f6020828403128015614999575f5ffd5b506149a2614184565b9135825250919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156101f2576101f26149ac565b818103818111156101f2576101f26149ac565b5f8151604084526149fa6040850182614563565b90506020830151848203602086015261254c8282614563565b602081525f6111be60208301846149e6565b606080825284519082018190525f9060208601906080840190835b81811015614a5e578351835260209384019390920191600101614a40565b50506020840195909552505060400152919050565b634e487b7160e01b5f52601260045260245ffd5b5f82614a9557614a95614a73565b500490565b634e487b7160e01b5f52603260045260245ffd5b5f82614abc57614abc614a73565b500690565b5f60808284031215614ad1575f5ffd5b6111be8383614867565b5f60208284031215614aeb575f5ffd5b81516111be8161469b565b8d81528c60208201528b60408201528a60608201528960808201528860a08201526001600160401b0360c01b8860c01b1660c08201526001600160601b03198760601b1660c88201528560dc820152614b5e60fc82018660801b6001600160801b0319169052565b614b7861010c82018560801b6001600160801b0319169052565b61011c81019290925261013c82015261015c019b9a5050505050505050505050565b63ffffffff8181168382160290811690818114614bb957614bb96149ac565b5092915050565b5f5f85851115614bce575f5ffd5b83861115614bda575f5ffd5b5050820193919092039150565b818382375f9101908152919050565b81515f90829060208501835b82811015614c20578151845260209384019390910190600101614c02565b509195945050505050565b80820281158282048414176101f2576101f26149ac565b5f600160ff1b8201614c5657614c566149ac565b505f0390565b5f8151808452602084019350602083015f5b82811015614c955781516001600160a01b0316865260209586019590910190600101614c6e565b5093949350505050565b602081525f6111be6020830184614c5c565b5f60018201614cc257614cc26149ac565b5060010190565b5f614cd48285614922565b60ff199390931683525050601f01919050565b805160208083015191908110156142ff575f1960209190910360031b1b16919050565b8281525f6103106020830184614922565b63ffffffff81811683821601908111156101f2576101f26149ac565b634e487b7160e01b5f52602160045260245ffd5b63ffffffff82811682821603908111156101f2576101f26149ac565b604081525f614d7960408301856149e6565b828103602084015261254c8185614c5c565b6001600160a01b0384168152602080820184905260606040830181905283519083018190525f918401906080840190835b81811015610510578351835260209384019390920191600101614dbc565b5f60208284031215614dea575f5ffd5b81516001600160401b03811115614dff575f5ffd5b8201601f81018413614e0f575f5ffd5b80516001600160401b03811115614e2857614e28614125565b8060051b614e38602082016141a6565b91825260208184018101929081019087841115614e53575f5ffd5b6020850194505b8385101561295c5784519250614e6f836140ab565b82825260209485019490910190614e5a565b5f60ff831680614e9357614e93614a73565b8060ff84160691505092915050565b5f81614eb057614eb06149ac565b505f19019056fe617a7465632e76616c696461746f725f73656c656374696f6e2e7472616e7369656e742e70726f706f736572a2646970667358221220822eeb5a8e4e0eff401a9f7ccf5162347519a99ac2536a6352146a774725c3bc64736f6c634300081e0033";
4
+ export const RollupOperationsExtLibBytecode = "0x614f41610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061006b575f3560e01c806302e5ba1f1461006f5780631f6d6ef7146100ab5780634abd1af5146100c157806373462953146100e25780639f2b315414610101578063f711e6c314610115575b5f5ffd5b81801561007a575f5ffd5b5061008e6100893660046140d9565b610137565b6040516001600160401b0390911681526020015b60405180910390f35b6100b36101f8565b6040519081526020016100a2565b8180156100cc575f5ffd5b506100e06100db366004614361565b610206565b005b8180156100ed575f5ffd5b506100e06100fc366004614458565b610271565b81801561010c575f5ffd5b506100e061028b565b610128610123366004614518565b6102bb565b6040516100a293929190614598565b5f5f610142426102da565b90506102c08401358181811461017957604051632a7fc72360e01b8152600481019290925260248201526044015b60405180910390fd5b506101b790508461018e6101a082018261463f565b61019c6101c088018861465d565b886101e0018961024001358a61026001358b61028001610318565b6101ee8360608601356101d26102c088016102a089016146b6565b60a08801356101e086610415565b6001600160401b0316610439565b9150505b92915050565b5f61020161051d565b905090565b61026689898989808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050604080518082019091526001600160a01b038816815288151560208201528b92508a9150899061061a565b505050505050505050565b6102818888888888888888610318565b5050505050505050565b61029442610b54565b6102b15760405163850defd360e01b815260040160405180910390fd5b6102b9610bc0565b565b60605f60606102cb868686610c30565b92509250925093509350939050565b5f5f6102e4610c40565b80549091506102f284610b54565b610305576103008160801c90565b610310565b6001600160801b0381165b949350505050565b6103776040518060a001604052808a8036038101906103379190614723565b8152602001858152602001610355610350426001610c64565b610ca2565b815260208101859052604001610370368590038501856147cf565b9052610cd5565b610388610383886147fd565b610f76565b6102815760a08801355f61039b82610f8c565b90506103b0816103aa8b6147fd565b87610fad565b5061040982826103bf8c6147fd565b8b8b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152508c9250610403915050368d90038d018d614808565b5f6111c5565b50505050505050505050565b5f61041f826112fd565b60050154600160201b90046001600160401b031692915050565b60405163af16b03960e01b81526001600160401b03841660048201525f90819081906001600160a01b0389169063af16b0399060240160a060405180830381865afa15801561048a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104ae91906148f5565b6020810151919350915086906001600160401b03818116908316146104f85760405162c1404b60e11b81526001600160401b03928316600482015291166024820152604401610170565b50506105108888846001600160401b031688886113a0565b5090979650505050505050565b5f617a6946148080156105445750737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15155b156106125760408051600481526024810182526020810180516001600160e01b0316631f6d6ef760e01b17905290515f918291737109709ecfa91a80626ff3989d68f67f5b1dd12d9161059691614940565b5f60405180830381855afa9150503d805f81146105ce576040519150601f19603f3d011682016040523d82523d5f602084013e6105d3565b606091505b50915091508180156105e757506020815110155b156106085780806020019051810190610600919061494b565b935050505090565b6001935050505090565b4a5b91505090565b61062342610b54565b1561063057610630610bc0565b610638613f76565b61064061169c565b61064f84848460200151610c30565b6060840152604080840191909152602083019190915261067790368a90038a01908a01614723565b815261068388356117ba565b805161068e90611802565b60e082015261069c4261188a565b61014082018190526106ad906118e2565b6001600160a01b03166101c0820181905215610754576101c0810151610140820151604051631d18577f60e11b81526001600160a01b0390921691633a30aefe916106fe9160040190815260200190565b6040805180830381865afa158015610718573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073c9190614962565b6001600160a01b03166101a083015215156101808201525b80610180015161076c5761076c816101400151611904565b5f610778426001610c64565b90506107b760405180606001604052808b5f013581526020018b6020018036038101906107a5919061498f565b81526020018460e00151815250611969565b61012083019081526040805160a0810182528451815291516020830152610807919081016107e484610ca2565b8152604080860151602080840191909152815190810182525f8152910152610cd5565b5f610810610c40565b905082610180015115610867576101a0830151336001600160a01b0382168114610860576040516380242ae760e01b81526001600160a01b03928316600482015291166024820152604401610170565b5050610898565b610898835f015160a001518461014001518b8b8761012001518c8036038101906108919190614808565b60016111c5565b80545f6108a58260801c90565b6108b09060016149c7565b90506108bc8282611974565b91506108fe865f0151865f0151606001518e6101e00135885f015160a001516108f06001876108eb91906149da565b610415565b6001600160401b03166113a0565b60c08601526101408501516109249061092061091b6001856149da565b61199d565b1090565b8061092f5750806001145b151561016086015261095d61094d6109486001846149da565b6119ed565b8660600151876101600151611a01565b60808601528451610140015161098890829060208f01359061097e88611a0d565b8860600151611a48565b60a086015260405161099e908c90602001614a1a565b60408051601f19818403018152918152815160209283012061010088019081528486555f8481526001870184528290208f35905581516101408101835260e089015181526080808a01519482019490945288518401519281019290925251606082015261012087015191810191909152855160a0908101519082015260c080870151610a739291820190610a3190611b0a565b6001600160401b03168152602001610a4d8f6101e00135611b0a565b6001600160401b0316815260a08801516020820152875160600151604090910152611b43565b6101808501518c359015610afa576101c08601516101a08701516040516308d864c360e31b81526001600160a01b0391821660048201526001600160801b0385166024820152604481018490529116906346c32618906064015f604051808303815f87803b158015610ae3575f5ffd5b505af1158015610af5573d5f5f3e3d5ffd5b505050505b80827f6ff492bf2b4ca1b93a175167d14b3e46085b935cab3f39ca94013000799b93a088602001518961012001518a6101000151604051610b3d93929190614a2c565b60405180910390a350505050505050505050505050565b5f5f610b5e610c40565b80549091506001600160801b038116610b778260801c90565b03610b8557505f9392505050565b5f610b9d61091b6001600160801b03841660016149c7565b90505f610ba98661188a565b9050610bb58282611c35565b159695505050505050565b5f610bc9610c40565b80549091505f610bd98260801c90565b90506001600160801b038216610bef8382611974565b845560408051828152602081018490527fc78a70f3b27748d5fa327f6a3c1104b9b007d6a80d20c41f7c0dc4543fbdbdcd910160405180910390a150505050565b60605f60606102cb868686611c47565b7f0958201b72d64259285941dffd868dac55267471fcc73e8a06e1fd9cf870636190565b610c8b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f610c95846102da565b90506101ee818585611e44565b5f6101f2825f015183606001518460400151610cbe91906149c7565b610cc891906149c7565b6001600160801b0361201c565b805160200151610ce4906117ba565b805160800151610cf3906117ba565b80516101000151610d03906117ba565b80516101600151610d13906117ba565b805160e001516001600160a01b0316610d3f5760405163338736ad60e01b815260040160405180910390fd5b610d4761202b565b815161014001511115610d6d576040516313258e7d60e01b815260040160405180910390fd5b425f610d77610c40565b90505f610d83836102da565b5f818152600184016020526040902054855151919250908190808214610dc557604051635b41520760e11b815260048101929092526024820152604401610170565b5050845160a001515f610dd784612052565b90508082808210610e045760405163083510bd60e41b815260048101929092526024820152604401610170565b50505f610e108761206c565b90508083808214610e3d576040516309ba91ff60e01b815260048101929092526024820152604401610170565b50505f610e498461209c565b895160c001519091508190818114610e7d57604051633132e89560e01b815260048101929092526024820152604401610170565b508890508180821015610eac5760405163089f306960e41b815260048101929092526024820152604401610170565b505060808901515180610ec757506060890151895160400151145b89516040015190610eee5760405163414906c360e01b815260040161017091815260200190565b5088516101200151516001600160801b031615610f1e57604051636ce3afa960e11b815260040160405180910390fd5b604089015189516101200151602001516001600160801b0381168214610f695760405163c30346dd60e01b815260048101929092526001600160801b03166024820152604401610170565b5050505050505050505050565b8051515f9015806101f257505060200151511590565b5f610f956120d1565b546101f290600160a01b900463ffffffff1683614a8e565b60605f5f610fba866120f5565b91509150805f03610fdc575050604080515f81526020810190915290506111be565b5f60405180608001604052805f81526020016003600185901b610fff9190614a8e565b61100a9060016149c7565b81526020015f8152602001836001600160401b0381111561102d5761102d61412c565b604051908082528060200260200182016040528015611056578160200160208202803683370190505b50905260208088015191925081015f5b84811015611141575f6110798a8361214a565b905080156110f157825160018085015160218601516040890180519093019092526041909501945f9290921a91906110b38c8484846121a2565b886060015186815181106110c9576110c9614aa1565b60200260200101906001600160a01b031690816001600160a01b031681525050505050611138565b5f835160601c9050601484019350808660600151848151811061111657611116614aa1565b60200260200101906001600160a01b031690816001600160a01b031681525050505b50600101611066565b5060208301516040840151818110156111765760405163af47297f60e01b815260048101929092526024820152604401610170565b50505f61118684606001516121ce565b90508581146111b2576040516332a3565560e21b81526004810182905260248101879052604401610170565b50505060600151925050505b9392505050565b5f5f5f5f6111d28a6120f5565b91509150805f036111e657505050506112f4565b5f6111f28a8a846121fd565b90505f6111fe826121ce565b905083811461122a576040516332a3565560e21b81526004810182905260248101859052604401610170565b5f6112348d6124a2565b90506112428d8f838761250b565b965082878151811061125657611256614aa1565b6020026020010151955050505050505f611279838961214a90919063ffffffff16565b9050806112ab57604051633cf9646b60e21b81526001600160a01b038316600482015260248101849052604401610170565b5f6112b68985612555565b90506112c381848961261b565b505f6112cf8a8a612684565b90506112dc87858361261b565b5085156112ee576112ee8c8587612690565b50505050505b50505050505050565b5f5f61131161130a610c40565b5460801c90565b90505f61131c61271d565b90505f61132982866149c7565b90505f83861115801561133b57508184105b90508584838361136f57604051638711786b60e01b8152600481019390935260248301919091526044820152606401610170565b50505061137a610c40565b6002015f6113888589614ab5565b81526020019081526020015f20945050505050919050565b6040516365fe45ed60e01b8152600481018490525f9081906001600160a01b038816906365fe45ed90602401608060405180830381865afa1580156113e7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061140b9190614ac8565b80519091508681811461143a5760405163ed1f7bb560e01b815260048101929092526024820152604401610170565b505084158061145557504281604001516001600160401b0316105b8061146b5750610100816060015163ffffffff16145b859061148c5760405162e4a97360e71b815260040161017091815260200190565b50602081015183906001600160401b0381168211156114d0576040516354e0c02560e01b815260048101929092526001600160401b03166024820152604401610170565b50506104008382602001516001600160401b03166114ee91906149da565b11158382602001516001600160401b031661150991906149da565b9061152a57604051637bb68a1360e11b815260040161017091815260200190565b50866001600160a01b0316638afaa2156040518163ffffffff1660e01b8152600401602060405180830381865afa158015611567573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061158b9190614ae2565b6001600160401b0316851015611685575f6001600160a01b0388166365fe45ed6115b68860016149c7565b6040518263ffffffff1660e01b81526004016115d491815260200190565b608060405180830381865afa1580156115ef573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116139190614ac8565b90505f61161f86612731565b90508082604001516001600160401b0316118061165557506104008583602001516001600160401b031661165391906149da565b115b6116608860016149c7565b90611681576040516302bd4bf160e41b815260040161017091815260200190565b5050505b602001516001600160401b03169695505050505050565b5f6116a64261206c565b90505f6116b1612767565b60018101549091505f906116dd90600160e01b900463ffffffff166116d86005600261278b565b612796565b9050828111156116ec57505050565b604080516060810182526001840154600160701b90046001600160701b0316815281518083019092524882529060208083019161173491810161172d61051d565b90526127a1565b6001600160701b03168152602001611755611750866002612796565b6127e6565b63ffffffff9081169091528151600190940180546020840151604090940151909216600160e01b026001600160e01b036001600160701b03948516600160701b026001600160e01b031990941694909616939093179190911793909316179091555050565b807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181106117fe5760405163733fc21760e01b815260040161017091815260200190565b5050565b5f6101f2825f015183602001518460400151856060015186608001518760a001516118308960c00151611b0a565b8960e001518a61010001518b61012001515f01518c6101200151602001518d61014001518e61016001516040516020016118769d9c9b9a99989796959493929190614afd565b6040516020818303038152906040526127f0565b5f5f6118946120d1565b80549091506118b99063ffffffff600160801b8204811691600160a01b900416614ba1565b815463ffffffff91909116906118d8906001600160801b0316856149da565b6111be9190614a8e565b5f5f6118ed83612885565b90506111be816118fb612892565b600301906128b6565b5f61190d612892565b5f83815260208290526040902054909150801561192957505050565b5f611933846124a2565b905061193e84612967565b5f61194985836129c1565b9050611954816121ce565b5f958652602094909452505060409092205550565b5f6101f282306129e3565b5f6001600160801b038316608061198a84612a28565b6001600160801b0316901b179392505050565b5f5f6119a7610c40565b805490915060801c83818111156119da576040516368dd4dfd60e11b815260048101929092526024820152604401610170565b50506111be6119e884612052565b610f8c565b5f6119f7826112fd565b6001015492915050565b5f610310848484612a5b565b5f5f611a1883610ca2565b90505f83606001518460400151611a2f91906149c7565b9050808211611a3e575f610310565b61031081836149da565b611a756040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b606460ff86901d808701181115611a9f5760405163e01960b760e01b815260040160405180910390fd5b5f611ab3611aae6001896149da565b612aef565b90506040518060a00160405280611ac983612b03565b8152602001868152602001611aef611ae98460501c65ffffffffffff1690565b89612b50565b81526020018581526020018481525091505095945050505050565b5f6001600160401b03821115611b3f57604080516306dfcc6560e41b8152600481019190915260248101839052604401610170565b5090565b5f611b4f61130a610c40565b90505f611b5a61271d565b9050611b6583612bdd565b611b6d610c40565b6002015f611b7b8486614ab5565b815260208082019290925260409081015f20835181559183015160018301558201516002820155606082015160038201556080820151600482015560a082015160058201805460c085015160e086015163ffffffff9094166bffffffffffffffffffffffff1990921691909117600160201b6001600160401b03928316021767ffffffffffffffff60601b1916600160601b9190931602919091179055610100820151600682015561012090910151600790910155505050565b5f6111be82611c4385612cdf565b1190565b60605f60605f86865f818110611c5f57611c5f614aa1565b919091013560f81c91505080611c88576040516324a5e23160e11b815260040160405180910390fd5b8060ff166001600160401b03811115611ca357611ca361412c565b604051908082528060200260200182016040528015611ccc578160200160208202803683370190505b5093508060ff166001600160401b03811115611cea57611cea61412c565b604051908082528060200260200182016040528015611d1d57816020015b6060815260200190600190039081611d085790505b5091505f6001815b8360ff16811015611e215789828a611d3e6030836149c7565b92611d4b93929190614bc7565b604051602001611d5c929190614bee565b604051602081830303815290604052858281518110611d7d57611d7d614aa1565b6020908102919091010152611d936030836149c7565b91505f611db8868381518110611dab57611dab614aa1565b6020026020010151612d17565b90508815611df657814993508381808214611def576040516309818f3560e11b815260048101929092526024820152604401610170565b5050611dfa565b8093505b83888381518110611e0d57611e0d614aa1565b602090810291909101015250600101611d25565b50611e36866040516020016118769190614bfd565b945050505093509350939050565b611e6b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f611e74612767565b90505f611e8a825f015460c01c63ffffffff1690565b90505f5f5f5f611e9989612d7b565b90505f8160200151620200006003611eb19190614c32565b611ebb9190614c32565b8251611eca906207a120614c32565b611ed491906149c7565b9050611ee4816001886001612dfa565b945050611f2f611f1f611f15623d0900845f0151611f006120d1565b54600160a01b900463ffffffff166001612dfa565b6001886001612dfa565b87546001600160401b0316612796565b9250611f3b8484612796565b9150505f611f488a612aef565b90505f611f7f63ffffffff8316611f678460201c65ffffffffffff1690565b611f7191906149c7565b611f7a88614c49565b612e3c565b90505f611f8b82612e8a565b90505f611fa7611fa18684633b9aca005f612dfa565b8661278b565b90505f8b611fba5764e8d4a51000611fc3565b611fc38e612efa565b90506040518060800160405280611fe38385612f1590919063ffffffff16565b815260208101859052604001611ff98a84612f15565b81526020016120088984612f15565b90529e9d5050505050505050505050505050565b5f8282188284100282186111be565b5f5f612035612767565b905061061461204d825f015460c01c63ffffffff1690565b612f28565b5f6101f261205f836112fd565b6005015463ffffffff1690565b5f5f6120766120d1565b805490915063ffffffff600160801b820416906118d8906001600160801b0316856149da565b5f5f6120a66120d1565b80549091506111be906001600160801b038116906116d890600160801b900463ffffffff1686614c32565b7fcc2bde3d21ba778aa5c156bb6fc47381978b0054c8a1ef73f44234164324cbe090565b5f5f5f612100612892565b5f8581526020829052604081205494509091508390036121375761213461212f8561212a876124a2565b6129c1565b6121ce565b92505b60020154919363ffffffff909216925050565b5f80612157600884614a8e565b90505f612165600885614ab5565b6121709060076149da565b905080855f0151838151811061218857612188614aa1565b60209101015160f81c901c60019081161495945050505050565b5f5f5f5f6121b288888888612fa2565b9250925092506121c28282613060565b50909695505050505050565b5f816040516020016121e09190614ca6565b604051602081830303815290604052805190602001209050919050565b60605f600861220d8460076149c7565b6122179190614a8e565b85515190915081908082146122485760405163dacca6db60e01b815260048101929092526024820152604401610170565b505060208501515f846001600160401b038111156122685761226861412c565b604051908082528060200260200182016040528015612291578160200160208202803683370190505b5090505f60208301818082815b8a8110156123a9576122b1600882614ab5565b5f036122ea575f6122c3600883614a8e565b90508d5f015181815181106122da576122da614aa1565b016020015160f81c945060809350505b600183901c9284161580159061235d576123056041876149c7565b95508c878151811061231957612319614aa1565b602002602001015188838151811061233357612333614aa1565b6001600160a01b03909216602092830291909101909101528661235581614cb8565b9750506123a0565b5f865160601c90506014870196508089848151811061237e5761237e614aa1565b60200260200101906001600160a01b031690816001600160a01b031681525050505b5060010161229e565b505f60146123b7878d6149da565b6123c19190614c32565b6123cc604188614c32565b6123d691906149c7565b60208e015151909150819080821461240a5760405163e41ded4d60e01b815260048101929092526024820152604401610170565b50508b51869081811461243957604051637a8e4ff160e11b815260048101929092526024820152604401610170565b50505f8d60200151518361244d91906149c7565b905085811461245c84886149da565b61246685846149da565b909161248e57604051632529e32f60e21b815260048101929092526024820152604401610170565b50979e9d5050505050505050505050505050565b5f5f6124ac612892565b90505f6124b884613118565b9050836124c860018401836131a6565b6040516020016124eb9291909182526001600160e01b0316602082015260400190565b60408051601f198184030181529190528051602090910120949350505050565b6040805160208101869052908101849052606081018390525f908290608001604051602081830303815290604052805190602001205f1c61254c9190614ab5565b95945050505050565b61257960405180606001604052805f60ff1681526020015f81526020015f81525090565b6020830151612588848461214a565b83906125aa57604051637346e14f60e11b815260040161017091815260200190565b50602081015f5b848110156125e5576125c3868261214a565b6125ce5760146125d1565b60415b6125db90836149c7565b91506001016125b1565b5080516001820151602190920151604080516060810182525f9390931a8352602083019390935291810191909152949350505050565b5f5f61263483865f0151876020015188604001516121a2565b905083816001600160a01b038281169082161461267757604051633672eb9b60e21b81526001600160a01b03928316600482015291166024820152604401610170565b5060019695505050505050565b5f6111be8383306131ee565b806001600160601b038111156126bc576040516380dc006960e01b815260040161017091815260200190565b505f60a0825f1b901b836001600160a01b03165f1b1790506127178161271161270e876127006040518060600160405280602c8152602001614ee0602c9139613221565b5f9182526020526040902090565b90565b90613238565b50505050565b5f61272661323f565b6102019060016149c7565b5f5f61273b6120d1565b90506111be61275361274e85600161278b565b61209c565b8254600160e01b900463ffffffff1661278b565b7f2e57d696f4035f6dfbf369d367f6b4aaf23baac5f6ee9a3a5207d71c56de652c90565b5f6111be82846149da565b5f6111be82846149c7565b5f5f5f90505f6127b4846020015161327f565b66ffffffffffffff16901b8117905060386127d1845f015161327f565b66ffffffffffffff16901b176111be816132b2565b5f6101f2826132e5565b6040805160018082528183019092525f916020820181803683370190505060028360405161281e9190614940565b602060405180830381855afa158015612839573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061285c919061494b565b60405160200161286d929190614cd0565b6040516020818303038152906040526101f290614cee565b5f6101f261274e83613315565b7f9bd0cd65f3d2d8103fe75b0f150f04a46bd0e603fd1819b64700ff42b24ee3aa90565b81545f9081816005811115612913575f6128cf84613336565b6128d990856149da565b5f888152602090209091508101546001600160601b03908116908716101561290357809150612911565b61290e8160016149c7565b92505b505b5f61292087878585613488565b9050801561295a57612944876129376001846149da565b5f91825260209091200190565b54600160601b90046001600160a01b031661295c565b5f5b979650505050505050565b5f612970612892565b90505f61297f826001016134e1565b509150505f61299561299085612885565b6132e5565b90508063ffffffff168263ffffffff161015612717576129b960018401824461353e565b505050505050565b60605f5f6129cf8585613558565b9150915061254c8263ffffffff16826135fd565b60408051835160208083019190915284015151818301529083015160608201525f906111be906080016040516020818303038152906040528051906020012083613692565b5f6001600160801b03821115611b3f576040516306dfcc6560e41b81526080600482015260248101839052604401610170565b825f8215612aa157612a9e60018583612a7381614cb8565b945081518110612a8557612a85614aa1565b6020026020010151604051602001611876929190614d11565b91505b8351811015612ae757612add82825f14868481518110612ac357612ac3614aa1565b602002602001015160405160200161187693929190614d27565b9150600101612aa1565b509392505050565b5f612af9826112fd565b6006015492915050565b5f5f612b0d612767565b90506111be63ffffffff8416612b2b8560201c65ffffffffffff1690565b612b3591906149c7565b8254612b479060c01c63ffffffff1690565b611f7a90614c49565b5f5f5f8312612b8157612710612b6684826149c7565b612b709086614c32565b612b7a9190614a8e565b9050612bad565b612710612b9660ff85901d80860118826149da565b612ba09086614c32565b612baa9190614a8e565b90505b6064811015612bc05760649150506101f2565b655af3107a40008111156111be57655af3107a40009150506101f2565b612c416040518061014001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f63ffffffff1681526020015f6001600160401b031681526020015f6001600160401b031681526020015f81526020015f81525090565b604051806101400160405280835f0151815260200183602001518152602001836040015181526020018360600151815260200183608001518152602001612c8b8460a001516127e6565b63ffffffff1681526020018360c001516001600160401b031681526020018360e001516001600160401b03168152602001612cca8461010001516136e8565b81526020018361012001518152509050919050565b5f5f612ce96120d1565b80549091506111be908490612d0c90600160c01b900463ffffffff166001614d43565b63ffffffff16612796565b5f600160f81b600283604051612d2d9190614940565b602060405180830381855afa158015612d48573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190612d6b919061494b565b6001600160f81b03161792915050565b604080518082019091525f80825260208201525f612d97612767565b9050612dbc612da58461206c565b6001830154600160e01b900463ffffffff16611c43565b612de3576001810154612dde90600160701b90046001600160701b0316613780565b6111be565b60018101546111be906001600160701b0316613780565b5f612e27612e07836137ba565b8015612e2257505f8480612e1d57612e1d614a7a565b868809115b151590565b612e328686866137e6565b61254c91906149c7565b5f5f8212612e5e57612e4d8261389c565b612e5790846149c7565b90506101f2565b60ff82901d8083011880841115612e8157612e7981856149da565b9150506101f2565b505f9392505050565b5f5f612e94612767565b90505f612ead825f015460401c6001600160801b031690565b90505f612ec485612ebf846064614c32565b61201c565b905061254c612eda845f015460e01c61ffff1690565b612ee6906127106149c7565b612ef390620186a0614c32565b82846138c1565b5f6101f2612f0783612aef565b60501c65ffffffffffff1690565b5f6111be8364e8d4a51000846001612dfa565b5f60018280612f53576040516372e1574f60e01b815260048101929092526024820152604401610170565b505f9050612f62836002614c32565b905063ffffffff8181811115612f99576040516303fd5c0b60e41b815263ffffffff90921660048301526024820152604401610170565b50909392505050565b5f80806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115612fd157505f91506003905082613056565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613022573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b03811661304d57505f925060019150829050613056565b92505f91508190505b9450945094915050565b5f82600381111561307357613073614d5f565b0361307c575050565b600182600381111561309057613090614d5f565b036130ae5760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156130c2576130c2614d5f565b036130e35760405163fce698f760e01b815260048101829052602401610170565b60038260038111156130f7576130f7614d5f565b036117fe576040516335e2f38360e21b815260048101829052602401610170565b5f5f613125612990613921565b61312d612892565b600201546131489190600160401b900463ffffffff16614ba1565b90505f8161315861299086612885565b6131629190614d73565b9050834263ffffffff831681101561319c57604051633c6dd5d760e11b8152600481019290925263ffffffff166024820152604401610170565b5090949350505050565b81545f90816131b78585838561395c565b905080156131e4576131ce856129376001846149da565b54600160201b90046001600160e01b031661254c565b505f949350505050565b5f6103108484604051602001613205929190614d8f565b60405160208183030381529060405280519060200120836139af565b80516020918201205f19015f9081522060ff191690565b80825d5050565b5f5f6132496120d1565b805490915061326690600160c01b900463ffffffff1660016149c7565b81546106149190600160a01b900463ffffffff16614c32565b5f66ffffffffffffff821115611b3f576040516306dfcc6560e41b81526038600482015260248101839052604401610170565b5f6001600160701b03821115611b3f576040516306dfcc6560e41b81526070600482015260248101839052604401610170565b5f63ffffffff821115611b3f576040516306dfcc6560e41b81526020600482015260248101839052604401610170565b5f61331e6120d1565b546101f290600160a01b900463ffffffff1683614c32565b5f60018211613343575090565b816001600160801b821061335c5760809190911c9060401b5b600160401b82106133725760409190911c9060201b5b600160201b82106133885760209190911c9060101b5b62010000821061339d5760109190911c9060081b5b61010082106133b15760089190911c9060041b5b601082106133c45760049190911c9060021b5b600482106133d05760011b5b600302600190811c908185816133e8576133e8614a7a565b048201901c9050600181858161340057613400614a7a565b048201901c9050600181858161341857613418614a7a565b048201901c9050600181858161343057613430614a7a565b048201901c9050600181858161344857613448614a7a565b048201901c9050600181858161346057613460614a7a565b048201901c905061347f81858161347957613479614a7a565b04821190565b90039392505050565b5f5b81831015612ae7575f61349d84846139ed565b5f878152602090209091506001600160601b038616908201546001600160601b031611156134cd578092506134db565b6134d88160016149c7565b93505b5061348a565b80545f90819081908082036134ff575f5f5f93509350935050613537565b5f61350f866129376001856149da565b546001955063ffffffff81169450600160201b90046001600160e01b03169250613537915050565b9193909250565b5f8061354b858585613a07565b915091505b935093915050565b5f60605f613564612892565b90505f61357086613b4b565b90505f6135828263ffffffff16613b7b565b600284015490915063ffffffff168181808210156135bc5760405163f4f28e9960e01b815260048101929092526024820152604401610170565b5050805f036135e1575050604080515f81526020810190915290935091506135f69050565b826135ed82848a613c0f565b95509550505050505b9250929050565b7fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cb054604051639796d97760e01b81526060916001600160a01b031690639796d9779061365190309087908790600401614db3565b5f60405180830381865afa15801561366b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111be9190810190614e02565b604080517fd9e3e10ae6d981fcde0636096fc41211a1905dd49eef1ba08ff793f60b954f2f60208201529081018390525f906111be906060015b6040516020818303038152906040528051906020012083613d65565b5f5f5f90506136fa83602001516132e5565b63ffffffff16811790506020613719845f015165ffffffffffff61201c565b901b81179050605061372e8460400151613dad565b65ffffffffffff16901b81179050608061375384606001516001600160401b0361201c565b901b8117905060c06137718460800151677fffffffffffffff61201c565b901b17600160ff1b1792915050565b604080518082019091525f8082526020820152506040805180820190915266ffffffffffffff603883901c81168252909116602082015290565b5f60028260038111156137cf576137cf614d5f565b6137d99190614ea9565b60ff166001149050919050565b5f838302815f1985870982811083820303915050805f0361381a5783828161381057613810614a7a565b04925050506111be565b808411613831576138316003851502601118613ddf565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f5f821215611b3f57604051635467221960e11b815260048101839052602401610170565b5f600181806138d08588614c32565b90505b8015613917576138e381836149c7565b91506138ef8386614c32565b6138f98783614c32565b6139039190614a8e565b90506139106001846149c7565b92506138d3565b61295c8583614a8e565b5f5f61392b6120d1565b80549091506139509063ffffffff600160801b8204811691600160a01b900416614ba1565b63ffffffff1691505090565b5f5b81831015612ae7575f61397184846139ed565b5f8781526020902090915063ffffffff86169082015463ffffffff16111561399b578092506139a9565b6139a68160016149c7565b93505b5061395e565b604080517fd7b65e8a7e173c2fd37eed3e985162c559ef4e627e5bc178b7bffabaf9b52e9c60208201529081018390525f906111be906060016136cc565b5f6139fb6002848418614a8e565b6111be908484166149c7565b82545f9081908015613af3575f613a23876129376001856149da565b805490915063ffffffff80821691600160201b90046001600160e01b0316908816821115613a6457604051632520601d60e01b815260040160405180910390fd5b8763ffffffff168263ffffffff1603613a9757825463ffffffff16600160201b6001600160e01b03891602178355613ae5565b6040805180820190915263ffffffff808a1682526001600160e01b03808a1660208085019182528d54600181018f555f8f81529190912094519151909216600160201b029216919091179101555b945085935061355092505050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a555f8a815291822095519251909316600160201b029190931617920191909155905081613550565b5f5f613b58612990613921565b613b60612892565b600201546131489190600160201b900463ffffffff16614ba1565b5f7fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cad6003015460405163ec6e69db60e01b8152306004820152602481018490526001600160a01b039091169063ec6e69db90604401602060405180830381865afa158015613beb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101f2919061494b565b6060838380821115613c3d57604051631723245360e31b815260048101929092526024820152604401610170565b5050835f03613c5a5750604080515f8152602081019091526111be565b5f846001600160401b03811115613c7357613c7361412c565b604051908082528060200260200182016040528015613c9c578160200160208202803683370190505b5090505f613cab6001866149da565b90505f5b86811015613d24575f613ccd82613cc78560016149c7565b88613df0565b9050613cd881613e33565b848381518110613cea57613cea614aa1565b60209081029190910101528215613d1b57613d0d81613d0885613e33565b613e53565b82613d1781614eca565b9350505b50600101613caf565b505f5b86811015613d5a57613d52838281518110613d4457613d44614aa1565b60200260200101515f613e53565b600101613d27565b509095945050505050565b5f613d6f82613e97565b60405161190160f01b602082015260228101919091526042810184905260620160405160208183030381529060405280519060200120905092915050565b5f65ffffffffffff821115611b3f576040516306dfcc6560e41b81526030600482015260248101839052604401610170565b634e487b715f52806020526024601cfd5b5f60018311613e0057505f6111be565b60408051602080820185905281830187905282518083038401815260609092019092528051910120610310908490614ab5565b5f5f613e3e83613f2e565b90508015613e4c5792915050565b5090919050565b6117fe8161271161270e8561270060405180604001604052806018815260200177417a7465632e53616d706c654c69622e4f7665727269646560401b815250613221565b604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f6001f7d5990128cf43d9cc82c426c8ea327f060ad15ca974b0c330643121d4c4918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201526001600160a01b03821660a08201525f9060c0016121e0565b5f6101f2613f7261270e8461270060405180604001604052806018815260200177417a7465632e53616d706c654c69622e4f7665727269646560401b815250613221565b5c90565b604051806101e00160405280613f8a614028565b8152602001606081526020015f8152602001606081526020015f8152602001613fd66040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f151581526020015f151581526020015f6001600160a01b031681526020015f6001600160a01b031681525090565b6040518061018001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f81526020016140a060405180604001604052805f6001600160801b031681526020015f6001600160801b031681525090565b81526020015f81526020015f81525090565b6001600160a01b03811681146140c6575f5ffd5b50565b80356140d4816140b2565b919050565b5f5f604083850312156140ea575f5ffd5b82356001600160401b038111156140ff575f5ffd5b83016102e08186031215614111575f5ffd5b91506020830135614121816140b2565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b03811182821017156141625761416261412c565b60405290565b60405161018081016001600160401b03811182821017156141625761416261412c565b604051602081016001600160401b03811182821017156141625761416261412c565b604051601f8201601f191681016001600160401b03811182821017156141d5576141d561412c565b604052919050565b5f82601f8301126141ec575f5ffd5b81356001600160401b038111156142055761420561412c565b614218601f8201601f19166020016141ad565b81815284602083860101111561422c575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f60408284031215614258575f5ffd5b614260614140565b905081356001600160401b03811115614277575f5ffd5b614283848285016141dd565b82525060208201356001600160401b0381111561429e575f5ffd5b6142aa848285016141dd565b60208301525092915050565b5f5f83601f8401126142c6575f5ffd5b5081356001600160401b038111156142dc575f5ffd5b6020830191508360208260051b85010111156135f6575f5ffd5b5f60608284031215614306575f5ffd5b50919050565b5f5f83601f84011261431c575f5ffd5b5081356001600160401b03811115614332575f5ffd5b6020830191508360208285010111156135f6575f5ffd5b80151581146140c6575f5ffd5b80356140d481614349565b5f5f5f5f5f5f5f5f5f898b0361030081121561437b575f5ffd5b610200811215614389575f5ffd5b508998506102008a01356001600160401b038111156143a6575f5ffd5b6143b28c828d01614248565b9850506102208a01356001600160401b038111156143ce575f5ffd5b6143da8c828d016142b6565b90985096506143ef90508b6102408c016142f6565b94506102a08a01356001600160401b0381111561440a575f5ffd5b6144168c828d0161430c565b909550935061442a90506102c08b01614356565b91506144396102e08b016140c9565b90509295985092959850929598565b5f60208284031215614306575f5ffd5b5f5f5f5f5f5f5f5f888a036102a0811215614471575f5ffd5b6101a081121561447f575f5ffd5b508897506101a08901356001600160401b0381111561449c575f5ffd5b89016040818c0312156144ad575f5ffd5b96506101c08901356001600160401b038111156144c8575f5ffd5b6144d48b828c016142b6565b90975095506144e990508a6101e08b016142f6565b9350610240890135925061026089013591506145098a6102808b01614448565b90509295985092959890939650565b5f5f5f6040848603121561452a575f5ffd5b83356001600160401b0381111561453f575f5ffd5b61454b8682870161430c565b909450925050602084013561455f81614349565b809150509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b606080825284519082018190525f9060208601906080840190835b818110156145d15783518352602093840193909201916001016145b3565b50508560208501528381036040850152809150845180825260208201925060208160051b830101602087015f5b8381101561463057601f1985840301865261461a83835161456a565b60209687019690935091909101906001016145fe565b50909998505050505050505050565b5f8235603e19833603018112614653575f5ffd5b9190910192915050565b5f5f8335601e19843603018112614672575f5ffd5b8301803591506001600160401b0382111561468b575f5ffd5b6020019150600581901b36038213156135f6575f5ffd5b6001600160401b03811681146140c6575f5ffd5b5f602082840312156146c6575f5ffd5b81356111be816146a2565b80356001600160801b03811681146140d4575f5ffd5b5f604082840312156146f7575f5ffd5b6146ff614140565b905061470a826146d1565b8152614718602083016146d1565b602082015292915050565b5f6101a0828403128015614735575f5ffd5b5061473e614168565b823581526020808401359082015260408084013590820152606080840135908201526080808401359082015260a0808401359082015260c0808401359082015261478a60e084016140c9565b60e082015261010083810135908201526147a88461012085016146e7565b61012082015261016083810135610140830152610180909301359281019290925250919050565b5f60208284031280156147e0575f5ffd5b506147e961418b565b82356147f481614349565b81529392505050565b5f6101f23683614248565b5f6060828403128015614819575f5ffd5b50604051606081016001600160401b038111828210171561483c5761483c61412c565b604052823560ff8116811461484f575f5ffd5b8152602083810135908201526040928301359281019290925250919050565b5f6080828403121561487e575f5ffd5b604051608081016001600160401b03811182821017156148a0576148a061412c565b60405282518152602083015190915081906148ba816146a2565b602082015260408301516148cd816146a2565b6040820152606083015163ffffffff811681146148e8575f5ffd5b6060919091015292915050565b5f5f60a08385031215614906575f5ffd5b8251614911816146a2565b9150614920846020850161486e565b90509250929050565b5f81518060208401855e5f93019283525090919050565b5f6111be8284614929565b5f6020828403121561495b575f5ffd5b5051919050565b5f5f60408385031215614973575f5ffd5b825161497e81614349565b6020840151909250614121816140b2565b5f60208284031280156149a0575f5ffd5b506149a961418b565b9135825250919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156101f2576101f26149b3565b818103818111156101f2576101f26149b3565b5f815160408452614a01604085018261456a565b90506020830151848203602086015261254c828261456a565b602081525f6111be60208301846149ed565b606080825284519082018190525f9060208601906080840190835b81811015614a65578351835260209384019390920191600101614a47565b50506020840195909552505060400152919050565b634e487b7160e01b5f52601260045260245ffd5b5f82614a9c57614a9c614a7a565b500490565b634e487b7160e01b5f52603260045260245ffd5b5f82614ac357614ac3614a7a565b500690565b5f60808284031215614ad8575f5ffd5b6111be838361486e565b5f60208284031215614af2575f5ffd5b81516111be816146a2565b8d81528c60208201528b60408201528a60608201528960808201528860a08201526001600160401b0360c01b8860c01b1660c08201526001600160601b03198760601b1660c88201528560dc820152614b6560fc82018660801b6001600160801b0319169052565b614b7f61010c82018560801b6001600160801b0319169052565b61011c81019290925261013c82015261015c019b9a5050505050505050505050565b63ffffffff8181168382160290811690818114614bc057614bc06149b3565b5092915050565b5f5f85851115614bd5575f5ffd5b83861115614be1575f5ffd5b5050820193919092039150565b818382375f9101908152919050565b81515f90829060208501835b82811015614c27578151845260209384019390910190600101614c09565b509195945050505050565b80820281158282048414176101f2576101f26149b3565b5f600160ff1b8201614c5d57614c5d6149b3565b505f0390565b5f8151808452602084019350602083015f5b82811015614c9c5781516001600160a01b0316865260209586019590910190600101614c75565b5093949350505050565b602081525f6111be6020830184614c63565b5f60018201614cc957614cc96149b3565b5060010190565b5f614cdb8285614929565b60ff199390931683525050601f01919050565b80516020808301519190811015614306575f1960209190910360031b1b16919050565b82151560f81b81525f6103106001830184614929565b83815282151560f81b60208201525f61254c6021830184614929565b63ffffffff81811683821601908111156101f2576101f26149b3565b634e487b7160e01b5f52602160045260245ffd5b63ffffffff82811682821603908111156101f2576101f26149b3565b604081525f614da160408301856149ed565b828103602084015261254c8185614c63565b6001600160a01b0384168152602080820184905260606040830181905283519083018190525f918401906080840190835b81811015610510578351835260209384019390920191600101614de4565b5f60208284031215614e12575f5ffd5b81516001600160401b03811115614e27575f5ffd5b8201601f81018413614e37575f5ffd5b80516001600160401b03811115614e5057614e5061412c565b8060051b614e60602082016141ad565b91825260208184018101929081019087841115614e7b575f5ffd5b6020850194505b8385101561295c5784519250614e97836140b2565b82825260209485019490910190614e82565b5f60ff831680614ebb57614ebb614a7a565b8060ff84160691505092915050565b5f81614ed857614ed86149b3565b505f19019056fe617a7465632e76616c696461746f725f73656c656374696f6e2e7472616e7369656e742e70726f706f736572a26469706673582212203274001ef4c7b775af115d54b25572a4a6c58af6070848f6de5460f0b51329c064736f6c634300081e0033";
5
5
  /**
6
6
  * RollupOperationsExtLib link references.
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"RollupOperationsExtLibBytecode.js","sourceRoot":"","sources":["../src/RollupOperationsExtLibBytecode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,8pvCAA8pvC,CAAC;AAC7svC;;GAEG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAW,CAAC"}
1
+ {"version":3,"file":"RollupOperationsExtLibBytecode.js","sourceRoot":"","sources":["../src/RollupOperationsExtLibBytecode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,8uvCAA8uvC,CAAC;AAC7xvC;;GAEG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAW,CAAC"}
@@ -23,14 +23,14 @@ export declare const RollupStorage: readonly [{
23
23
  readonly slot: "2";
24
24
  readonly type: "t_address";
25
25
  }, {
26
- readonly astId: 11412;
26
+ readonly astId: 11421;
27
27
  readonly contract: "src/core/Rollup.sol:Rollup";
28
28
  readonly label: "gap";
29
29
  readonly offset: 0;
30
30
  readonly slot: "3";
31
31
  readonly type: "t_uint256";
32
32
  }, {
33
- readonly astId: 11416;
33
+ readonly astId: 11425;
34
34
  readonly contract: "src/core/Rollup.sol:Rollup";
35
35
  readonly label: "checkBlob";
36
36
  readonly offset: 0;
@@ -27,7 +27,7 @@ export const RollupStorage = [
27
27
  "type": "t_address"
28
28
  },
29
29
  {
30
- "astId": 11412,
30
+ "astId": 11421,
31
31
  "contract": "src/core/Rollup.sol:Rollup",
32
32
  "label": "gap",
33
33
  "offset": 0,
@@ -35,7 +35,7 @@ export const RollupStorage = [
35
35
  "type": "t_uint256"
36
36
  },
37
37
  {
38
- "astId": 11416,
38
+ "astId": 11425,
39
39
  "contract": "src/core/Rollup.sol:Rollup",
40
40
  "label": "checkBlob",
41
41
  "offset": 0,
@@ -753,14 +753,6 @@ export declare const SlasherAbi: readonly [{
753
753
  readonly type: "address";
754
754
  readonly internalType: "address";
755
755
  }];
756
- }, {
757
- readonly type: "error";
758
- readonly name: "RewardLib__DuplicateRegistryRewardOverride";
759
- readonly inputs: readonly [{
760
- readonly name: "registry";
761
- readonly type: "address";
762
- readonly internalType: "address";
763
- }];
764
756
  }, {
765
757
  readonly type: "error";
766
758
  readonly name: "RewardLib__ZeroShares";
@@ -1711,30 +1703,6 @@ export declare const SlasherAbi: readonly [{
1711
1703
  readonly type: "address";
1712
1704
  readonly internalType: "address";
1713
1705
  }];
1714
- }, {
1715
- readonly type: "error";
1716
- readonly name: "RewardLib__CheckpointRewardsAboveMaximum";
1717
- readonly inputs: readonly [{
1718
- readonly name: "checkpointRewards";
1719
- readonly type: "uint256";
1720
- readonly internalType: "uint256";
1721
- }, {
1722
- readonly name: "maximumCheckpointRewards";
1723
- readonly type: "uint256";
1724
- readonly internalType: "uint256";
1725
- }];
1726
- }, {
1727
- readonly type: "error";
1728
- readonly name: "RewardLib__InvalidRegistryRewardOverride";
1729
- readonly inputs: readonly [{
1730
- readonly name: "registry";
1731
- readonly type: "address";
1732
- readonly internalType: "address";
1733
- }, {
1734
- readonly name: "sequencerReward";
1735
- readonly type: "uint256";
1736
- readonly internalType: "uint256";
1737
- }];
1738
1706
  }, {
1739
1707
  readonly type: "error";
1740
1708
  readonly name: "Rollup__CheckpointNotProven";
@@ -2131,6 +2099,18 @@ export declare const SlasherAbi: readonly [{
2131
2099
  readonly type: "uint256";
2132
2100
  readonly internalType: "uint256";
2133
2101
  }];
2102
+ }, {
2103
+ readonly type: "error";
2104
+ readonly name: "SequencerRewardCalculatorLib__InsufficientGas";
2105
+ readonly inputs: readonly [{
2106
+ readonly name: "required";
2107
+ readonly type: "uint256";
2108
+ readonly internalType: "uint256";
2109
+ }, {
2110
+ readonly name: "available";
2111
+ readonly type: "uint256";
2112
+ readonly internalType: "uint256";
2113
+ }];
2134
2114
  }, {
2135
2115
  readonly type: "error";
2136
2116
  readonly name: "SignatureLib__InvalidSignature";
@@ -2711,22 +2691,6 @@ export declare const SlasherAbi: readonly [{
2711
2691
  readonly type: "uint256";
2712
2692
  readonly internalType: "uint256";
2713
2693
  }];
2714
- }, {
2715
- readonly type: "error";
2716
- readonly name: "RewardLib__RegistryRewardOverrideAboveDefault";
2717
- readonly inputs: readonly [{
2718
- readonly name: "registry";
2719
- readonly type: "address";
2720
- readonly internalType: "address";
2721
- }, {
2722
- readonly name: "sequencerReward";
2723
- readonly type: "uint256";
2724
- readonly internalType: "uint256";
2725
- }, {
2726
- readonly name: "defaultSequencerReward";
2727
- readonly type: "uint256";
2728
- readonly internalType: "uint256";
2729
- }];
2730
2694
  }, {
2731
2695
  readonly type: "error";
2732
2696
  readonly name: "Rollup__UnavailableTempCheckpointLog";
@@ -1 +1 @@
1
- {"version":3,"file":"SlasherAbi.d.ts","sourceRoot":"","sources":["../src/SlasherAbi.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAorHb,CAAC"}
1
+ {"version":3,"file":"SlasherAbi.d.ts","sourceRoot":"","sources":["../src/SlasherAbi.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAooHb,CAAC"}