@pimlico/alto 0.0.19 → 0.0.20
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.
- package/contracts/EIP712.sol/EIP712.json +1 -1
- package/contracts/ERC165.sol/ERC165.json +1 -1
- package/contracts/ERC20.sol/ERC20.json +1 -1
- package/contracts/Eip7702Support.sol/Eip7702Support.json +1 -1
- package/contracts/EntryPoint.sol/EntryPoint.json +1 -1
- package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
- package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
- package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
- package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
- package/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
- package/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
- package/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
- package/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
- package/contracts/Exec.sol/Exec.json +1 -1
- package/contracts/IAccount.sol/IAccount.json +1 -1
- package/contracts/IAccountExecute.sol/IAccountExecute.json +1 -1
- package/contracts/IAggregator.sol/IAggregator.json +1 -1
- package/contracts/IERC165.sol/IERC165.json +1 -1
- package/contracts/IERC5267.sol/IERC5267.json +1 -1
- package/contracts/IEntryPoint.sol/IEntryPoint.json +1 -1
- package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride08.json +1 -0
- package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride09.json +1 -0
- package/contracts/IEntryPointSimulations.sol/IEntryPointSimulations.json +1 -1
- package/contracts/INonceManager.sol/INonceManager.json +1 -1
- package/contracts/IPaymaster.sol/IPaymaster.json +1 -1
- package/contracts/ISenderCreator.sol/ISenderCreator.json +1 -1
- package/contracts/IStakeManager.sol/IStakeManager.json +1 -1
- package/contracts/LibBytes.sol/LibBytes.json +1 -1
- package/contracts/Math.sol/Math.json +1 -1
- package/contracts/MessageHashUtils.sol/MessageHashUtils.json +1 -1
- package/contracts/NonceManager.sol/NonceManager.json +1 -1
- package/contracts/Panic.sol/Panic.json +1 -1
- package/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
- package/contracts/ReentrancyGuard.sol/ReentrancyGuard.json +1 -1
- package/contracts/ReentrancyGuardTransient.sol/ReentrancyGuardTransient.json +1 -1
- package/contracts/SafeCast.sol/SafeCast.json +1 -1
- package/contracts/SenderCreator.sol/SenderCreator.json +1 -1
- package/contracts/ShortStrings.sol/ShortStrings.json +1 -1
- package/contracts/SignedMath.sol/SignedMath.json +1 -1
- package/contracts/SimulationOverrideHelper.sol/SimulationOverrideHelper.json +1 -0
- package/contracts/StakeManager.sol/StakeManager.json +1 -1
- package/contracts/StorageSlot.sol/StorageSlot.json +1 -1
- package/contracts/Strings.sol/Strings.json +1 -1
- package/contracts/TransientSlot.sol/TransientSlot.json +1 -1
- package/contracts/UserOperation.sol/UserOperationLib.json +1 -1
- package/contracts/UserOperationLib.sol/UserOperationLib.json +1 -1
- package/contracts/account-abstraction-v9/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -0
- package/contracts/account-abstraction-v9/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -0
- package/contracts/account-abstraction-v9/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -0
- package/contracts/account-abstraction-v9/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -0
- package/contracts/build-info/338795fc743ca612.json +1 -0
- package/contracts/build-info/44a9648cfe32a468.json +1 -0
- package/contracts/build-info/{880955d5786bfdae.json → 8dbf8a4ad39019b5.json} +1 -1
- package/contracts/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
- package/contracts/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
- package/contracts/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
- package/contracts/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
- package/contracts/core/Eip7702Support.sol/Eip7702Support.json +1 -0
- package/contracts/core/NonceManager.sol/NonceManager.json +1 -0
- package/contracts/core/SenderCreator.sol/SenderCreator.json +1 -0
- package/contracts/core/StakeManager.sol/StakeManager.json +1 -0
- package/contracts/core/UserOperationLib.sol/UserOperationLib.json +1 -0
- package/contracts/interfaces/IAccount.sol/IAccount.json +1 -0
- package/contracts/interfaces/IAccountExecute.sol/IAccountExecute.json +1 -0
- package/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
- package/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
- package/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
- package/contracts/interfaces/IPaymaster.sol/IPaymaster.json +1 -0
- package/contracts/interfaces/ISenderCreator.sol/ISenderCreator.json +1 -0
- package/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
- package/contracts/overrides/Eip7702Support.sol/Eip7702Support.json +1 -0
- package/contracts/overrides/NonceManager.sol/NonceManager.json +1 -0
- package/contracts/overrides/SenderCreator.sol/SenderCreator.json +1 -0
- package/contracts/overrides/StakeManager.sol/StakeManager.json +1 -0
- package/contracts/overrides/UserOperationLib.sol/UserOperationLib.json +1 -0
- package/contracts/utils/Exec.sol/Exec.json +1 -1
- package/contracts/utils/StorageSlot.sol/StorageSlot.json +1 -0
- package/contracts/v09/EntryPoint.sol/EntryPoint.json +1 -0
- package/esm/cli/alto.js +13 -6
- package/esm/cli/alto.js.map +1 -1
- package/esm/cli/config/bundler.d.ts +190 -148
- package/esm/cli/config/bundler.js +72 -83
- package/esm/cli/config/bundler.js.map +1 -1
- package/esm/cli/config/options.d.ts +2 -1
- package/esm/cli/config/options.js +105 -68
- package/esm/cli/config/options.js.map +1 -1
- package/esm/cli/customTransport.d.ts +3 -3
- package/esm/cli/deploySimulationsContract.d.ts +1 -0
- package/esm/cli/deploySimulationsContract.js +41 -5
- package/esm/cli/deploySimulationsContract.js.map +1 -1
- package/esm/cli/handler.js +48 -52
- package/esm/cli/handler.js.map +1 -1
- package/esm/cli/setupServer.js +46 -47
- package/esm/cli/setupServer.js.map +1 -1
- package/esm/cli/shutDown.d.ts +20 -0
- package/esm/cli/shutDown.js +260 -0
- package/esm/cli/shutDown.js.map +1 -0
- package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
- package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
- package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
- package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
- package/esm/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
- package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
- package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
- package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
- package/esm/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
- package/esm/createConfig.d.ts +9 -2
- package/esm/createConfig.js.map +1 -1
- package/esm/executor/{userOpMonitor.d.ts → bundleManager.d.ts} +38 -32
- package/esm/executor/{userOpMonitor.js → bundleManager.js} +127 -99
- package/esm/executor/bundleManager.js.map +1 -0
- package/esm/executor/executor.d.ts +4 -3
- package/esm/executor/executor.js +33 -20
- package/esm/executor/executor.js.map +1 -1
- package/esm/executor/executorManager.d.ts +17 -15
- package/esm/executor/executorManager.js +130 -55
- package/esm/executor/executorManager.js.map +1 -1
- package/esm/executor/filterOpsAndEstimateGas.d.ts +17 -2
- package/esm/executor/filterOpsAndEstimateGas.js +100 -77
- package/esm/executor/filterOpsAndEstimateGas.js.map +1 -1
- package/esm/executor/index.d.ts +1 -0
- package/esm/executor/index.js +1 -0
- package/esm/executor/index.js.map +1 -1
- package/esm/executor/senderManager/createMemorySenderManager.js +13 -0
- package/esm/executor/senderManager/createMemorySenderManager.js.map +1 -1
- package/esm/executor/senderManager/createRedisSenderManager.d.ts +2 -1
- package/esm/executor/senderManager/createRedisSenderManager.js +3 -6
- package/esm/executor/senderManager/createRedisSenderManager.js.map +1 -1
- package/esm/executor/senderManager/flushOnStartUp.js +4 -4
- package/esm/executor/senderManager/flushOnStartUp.js.map +1 -1
- package/esm/executor/senderManager/index.d.ts +1 -0
- package/esm/executor/senderManager/index.js +6 -2
- package/esm/executor/senderManager/index.js.map +1 -1
- package/esm/executor/senderManager/validateAndRefill.js +2 -2
- package/esm/executor/senderManager/validateAndRefill.js.map +1 -1
- package/esm/executor/utilityWalletMonitor.d.ts +4 -4
- package/esm/executor/utilityWalletMonitor.js +1 -1
- package/esm/executor/utilityWalletMonitor.js.map +1 -1
- package/esm/executor/utils.d.ts +7 -2
- package/esm/executor/utils.js +57 -26
- package/esm/executor/utils.js.map +1 -1
- package/esm/handlers/arbitrumGasPriceManager.d.ts +3 -2
- package/esm/handlers/arbitrumGasPriceManager.js +6 -2
- package/esm/handlers/arbitrumGasPriceManager.js.map +1 -1
- package/esm/handlers/eventManager.d.ts +9 -9
- package/esm/handlers/eventManager.js +59 -60
- package/esm/handlers/eventManager.js.map +1 -1
- package/esm/handlers/gasPriceManager.d.ts +8 -9
- package/esm/handlers/gasPriceManager.js +68 -80
- package/esm/handlers/gasPriceManager.js.map +1 -1
- package/esm/handlers/mantleGasPriceManager.d.ts +4 -4
- package/esm/handlers/mantleGasPriceManager.js +4 -4
- package/esm/handlers/mantleGasPriceManager.js.map +1 -1
- package/esm/handlers/optimismManager.d.ts +1 -1
- package/esm/handlers/optimismManager.js +1 -1
- package/esm/handlers/optimismManager.js.map +1 -1
- package/esm/mempool/index.d.ts +1 -1
- package/esm/mempool/index.js +1 -1
- package/esm/mempool/index.js.map +1 -1
- package/esm/mempool/mempool.d.ts +57 -22
- package/esm/mempool/mempool.js +180 -134
- package/esm/mempool/mempool.js.map +1 -1
- package/esm/mempool/reputationManager.d.ts +14 -14
- package/esm/mempool/reputationManager.js +36 -39
- package/esm/mempool/reputationManager.js.map +1 -1
- package/esm/mempool/statusManager.d.ts +20 -0
- package/esm/mempool/statusManager.js +143 -0
- package/esm/mempool/statusManager.js.map +1 -0
- package/esm/receiptCache/createMemoryReceiptCache.d.ts +3 -0
- package/esm/receiptCache/createMemoryReceiptCache.js +30 -0
- package/esm/receiptCache/createMemoryReceiptCache.js.map +1 -0
- package/esm/receiptCache/createRedisReceiptCache.d.ts +10 -0
- package/esm/receiptCache/createRedisReceiptCache.js +56 -0
- package/esm/receiptCache/createRedisReceiptCache.js.map +1 -0
- package/esm/receiptCache/index.d.ts +11 -0
- package/esm/receiptCache/index.js +21 -0
- package/esm/receiptCache/index.js.map +1 -0
- package/esm/rpc/createMethodHandler.js.map +1 -1
- package/esm/rpc/estimation/gasEstimationHandler.d.ts +2 -4
- package/esm/rpc/estimation/gasEstimationHandler.js.map +1 -1
- package/esm/rpc/estimation/gasEstimations06.d.ts +6 -7
- package/esm/rpc/estimation/gasEstimations06.js +1 -5
- package/esm/rpc/estimation/gasEstimations06.js.map +1 -1
- package/esm/rpc/estimation/gasEstimations07.d.ts +13 -41
- package/esm/rpc/estimation/gasEstimations07.js +27 -34
- package/esm/rpc/estimation/gasEstimations07.js.map +1 -1
- package/esm/{utils/preVerificationGasCalulator.d.ts → rpc/estimation/preVerificationGasCalculator.d.ts} +20 -6
- package/esm/{utils/preVerificationGasCalulator.js → rpc/estimation/preVerificationGasCalculator.js} +95 -47
- package/esm/rpc/estimation/preVerificationGasCalculator.js.map +1 -0
- package/esm/rpc/estimation/types.d.ts +4 -2
- package/esm/rpc/estimation/utils.d.ts +10 -8
- package/esm/rpc/estimation/utils.js +54 -48
- package/esm/rpc/estimation/utils.js.map +1 -1
- package/esm/rpc/methods/boost_sendUserOperation.d.ts +304 -0
- package/esm/rpc/methods/debug_bundler_clearReputation.js +1 -1
- package/esm/rpc/methods/debug_bundler_clearReputation.js.map +1 -1
- package/esm/rpc/methods/debug_bundler_clearState.js +1 -1
- package/esm/rpc/methods/debug_bundler_clearState.js.map +1 -1
- package/esm/rpc/methods/debug_bundler_dumpMempool.d.ts +338 -0
- package/esm/rpc/methods/debug_bundler_dumpReputation.js +1 -1
- package/esm/rpc/methods/debug_bundler_dumpReputation.js.map +1 -1
- package/esm/rpc/methods/eth_estimateUserOperationGas.d.ts +622 -14
- package/esm/rpc/methods/eth_estimateUserOperationGas.js +50 -29
- package/esm/rpc/methods/eth_estimateUserOperationGas.js.map +1 -1
- package/esm/rpc/methods/eth_getUserOperationByHash.d.ts +621 -11
- package/esm/rpc/methods/eth_getUserOperationByHash.js.map +1 -1
- package/esm/rpc/methods/eth_getUserOperationReceipt.d.ts +26 -26
- package/esm/rpc/methods/eth_getUserOperationReceipt.js +1 -1
- package/esm/rpc/methods/eth_sendUserOperation.d.ts +305 -1
- package/esm/rpc/methods/eth_sendUserOperation.js +132 -36
- package/esm/rpc/methods/eth_sendUserOperation.js.map +1 -1
- package/esm/rpc/methods/pimlico_getUserOperationStatus.js +1 -1
- package/esm/rpc/methods/pimlico_getUserOperationStatus.js.map +1 -1
- package/esm/rpc/methods/pimlico_sendUserOperationNow.d.ts +330 -26
- package/esm/rpc/methods/pimlico_sendUserOperationNow.js +15 -27
- package/esm/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
- package/esm/rpc/methods/pimlico_simulateAssetChange.d.ts +620 -12
- package/esm/rpc/methods/pimlico_simulateAssetChange.js +14 -19
- package/esm/rpc/methods/pimlico_simulateAssetChange.js.map +1 -1
- package/esm/rpc/rpcHandler.d.ts +21 -22
- package/esm/rpc/rpcHandler.js +15 -17
- package/esm/rpc/rpcHandler.js.map +1 -1
- package/esm/rpc/server.d.ts +5 -5
- package/esm/rpc/server.js +15 -11
- package/esm/rpc/server.js.map +1 -1
- package/esm/rpc/validation/BundlerCollectorTracerV06.js +1 -1
- package/esm/rpc/validation/BundlerCollectorTracerV06.js.map +1 -1
- package/esm/rpc/validation/BundlerCollectorTracerV07.js +1 -1
- package/esm/rpc/validation/BundlerCollectorTracerV07.js.map +1 -1
- package/esm/rpc/validation/SafeValidator.d.ts +13 -14
- package/esm/rpc/validation/SafeValidator.js +24 -24
- package/esm/rpc/validation/SafeValidator.js.map +1 -1
- package/esm/rpc/validation/TracerResultParserV06.d.ts +2 -2
- package/esm/rpc/validation/TracerResultParserV06.js +11 -11
- package/esm/rpc/validation/TracerResultParserV06.js.map +1 -1
- package/esm/rpc/validation/TracerResultParserV07.d.ts +2 -2
- package/esm/rpc/validation/TracerResultParserV07.js +13 -13
- package/esm/rpc/validation/TracerResultParserV07.js.map +1 -1
- package/esm/rpc/validation/UnsafeValidator.d.ts +18 -14
- package/esm/rpc/validation/UnsafeValidator.js +71 -40
- package/esm/rpc/validation/UnsafeValidator.js.map +1 -1
- package/esm/store/createMempoolStore.d.ts +1 -1
- package/esm/store/createMempoolStore.js +63 -139
- package/esm/store/createMempoolStore.js.map +1 -1
- package/esm/store/index.d.ts +4 -75
- package/esm/store/index.js +4 -1
- package/esm/store/index.js.map +1 -1
- package/esm/store/outstanding/index.d.ts +13 -0
- package/esm/store/outstanding/index.js +16 -0
- package/esm/store/outstanding/index.js.map +1 -0
- package/esm/store/{createMemoryOutstandingStore.d.ts → outstanding/memory.d.ts} +14 -13
- package/esm/store/outstanding/memory.js +263 -0
- package/esm/store/outstanding/memory.js.map +1 -0
- package/esm/store/outstanding/redis.d.ts +11 -0
- package/esm/store/outstanding/redis.js +229 -0
- package/esm/store/outstanding/redis.js.map +1 -0
- package/esm/store/outstanding/types.d.ts +19 -0
- package/esm/store/outstanding/types.js +2 -0
- package/esm/store/outstanding/types.js.map +1 -0
- package/esm/store/processing/index.d.ts +11 -0
- package/esm/store/processing/index.js +17 -0
- package/esm/store/processing/index.js.map +1 -0
- package/esm/store/processing/memory.d.ts +16 -0
- package/esm/store/processing/memory.js +58 -0
- package/esm/store/processing/memory.js.map +1 -0
- package/esm/store/processing/redis.d.ts +23 -0
- package/esm/store/processing/redis.js +85 -0
- package/esm/store/processing/redis.js.map +1 -0
- package/esm/store/processing/types.d.ts +10 -0
- package/esm/store/processing/types.js +2 -0
- package/esm/store/processing/types.js.map +1 -0
- package/esm/store/types.d.ts +50 -0
- package/esm/store/types.js +2 -0
- package/esm/store/types.js.map +1 -0
- package/esm/types/contracts/PimlicoSimulations.d.ts +81 -0
- package/esm/types/contracts/PimlicoSimulations.js +105 -0
- package/esm/types/contracts/PimlicoSimulations.js.map +1 -1
- package/esm/types/gasPrice.js +0 -18
- package/esm/types/gasPrice.js.map +1 -1
- package/esm/types/interfaces.d.ts +15 -10
- package/esm/types/mempool.d.ts +3 -0
- package/esm/types/schemas.d.ts +13174 -4732
- package/esm/types/schemas.js +113 -25
- package/esm/types/schemas.js.map +1 -1
- package/esm/types/utils.d.ts +2 -5
- package/esm/types/utils.js +16 -18
- package/esm/types/utils.js.map +1 -1
- package/esm/types/validation.d.ts +7646 -6912
- package/esm/types/validation.js +122 -152
- package/esm/types/validation.js.map +1 -1
- package/esm/utils/eip7702.d.ts +2 -1
- package/esm/utils/eip7702.js +14 -8
- package/esm/utils/eip7702.js.map +1 -1
- package/esm/utils/entryPointOverrides.js +18 -4
- package/esm/utils/entryPointOverrides.js.map +1 -1
- package/esm/utils/helpers.d.ts +2 -1
- package/esm/utils/helpers.js +30 -11
- package/esm/utils/helpers.js.map +1 -1
- package/esm/utils/index.d.ts +0 -1
- package/esm/utils/index.js +0 -1
- package/esm/utils/index.js.map +1 -1
- package/esm/utils/metrics.d.ts +2 -1
- package/esm/utils/metrics.js +15 -8
- package/esm/utils/metrics.js.map +1 -1
- package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.js +8 -9
- package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.js.map +1 -1
- package/esm/utils/minMaxQueue/createRedisMinMaxQueue.d.ts +24 -2
- package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js +85 -64
- package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js.map +1 -1
- package/esm/utils/minMaxQueue/index.d.ts +2 -2
- package/esm/utils/minMaxQueue/index.js +4 -3
- package/esm/utils/minMaxQueue/index.js.map +1 -1
- package/esm/utils/rpc-reply.d.ts +3 -3
- package/esm/utils/rpc-reply.js.map +1 -1
- package/esm/utils/toViemStateOverrides.js +7 -7
- package/esm/utils/toViemStateOverrides.js.map +1 -1
- package/esm/utils/userop.d.ts +87 -55
- package/esm/utils/userop.js +138 -248
- package/esm/utils/userop.js.map +1 -1
- package/package.json +4 -2
- package/contracts/build-info/7710b5a048396e70.json +0 -1
- package/esm/executor/userOpMonitor.js.map +0 -1
- package/esm/mempool/monitoring.d.ts +0 -15
- package/esm/mempool/monitoring.js +0 -118
- package/esm/mempool/monitoring.js.map +0 -1
- package/esm/store/createMemoryOutstandingStore.js +0 -240
- package/esm/store/createMemoryOutstandingStore.js.map +0 -1
- package/esm/store/createRedisOutstandingStore.d.ts +0 -27
- package/esm/store/createRedisOutstandingStore.js +0 -344
- package/esm/store/createRedisOutstandingStore.js.map +0 -1
- package/esm/store/createRedisStore.d.ts +0 -9
- package/esm/store/createRedisStore.js +0 -131
- package/esm/store/createRedisStore.js.map +0 -1
- package/esm/store/createStore.d.ts +0 -6
- package/esm/store/createStore.js +0 -66
- package/esm/store/createStore.js.map +0 -1
- package/esm/utils/preVerificationGasCalulator.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "abi": [{ "type": "constructor", "inputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "binarySearchCallGas", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "binarySearchPaymasterVerificationGas", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "binarySearchVerificationGas", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "filterOps06", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct UserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct PimlicoSimulations.FilterOpsResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "balanceChange", "type": "uint256", "internalType": "uint256" }, { "name": "rejectedUserOps", "type": "tuple[]", "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "components": [{ "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "revertReason", "type": "bytes", "internalType": "bytes" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "filterOps07", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct PimlicoSimulations.FilterOpsResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "balanceChange", "type": "uint256", "internalType": "uint256" }, { "name": "rejectedUserOps", "type": "tuple[]", "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "components": [{ "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "revertReason", "type": "bytes", "internalType": "bytes" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "filterOps08", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct PimlicoSimulations.FilterOpsResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "balanceChange", "type": "uint256", "internalType": "uint256" }, { "name": "rejectedUserOps", "type": "tuple[]", "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "components": [{ "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "revertReason", "type": "bytes", "internalType": "bytes" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "getBalances", "inputs": [{ "name": "addresses", "type": "address[]", "internalType": "address[]" }, { "name": "tokens", "type": "address[]", "internalType": "address[]" }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct PimlicoSimulations.AssetBalance[]", "components": [{ "name": "addr", "type": "address", "internalType": "address" }, { "name": "token", "type": "address", "internalType": "address" }, { "name": "amount", "type": "uint256", "internalType": "uint256" }] }], "stateMutability": "view" }, { "type": "function", "name": "simulateAndEstimateGas", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "result", "type": "tuple", "internalType": "struct PimlicoSimulations.SimulateAndEstimateGasResult", "components": [{ "name": "simulationResult", "type": "tuple", "internalType": "struct IEntryPointSimulations.ExecutionResult", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "targetSuccess", "type": "bool", "internalType": "bool" }, { "name": "targetResult", "type": "bytes", "internalType": "bytes" }] }, { "name": "verificationGasLimit", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }, { "name": "paymasterVerificationGasLimit", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateAssetChange06", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct UserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }, { "name": "addresses", "type": "address[]", "internalType": "address[]" }, { "name": "tokens", "type": "address[]", "internalType": "address[]" }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct PimlicoSimulations.AssetChange[]", "components": [{ "name": "addr", "type": "address", "internalType": "address" }, { "name": "token", "type": "address", "internalType": "address" }, { "name": "balanceBefore", "type": "uint256", "internalType": "uint256" }, { "name": "balanceAfter", "type": "uint256", "internalType": "uint256" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateAssetChange07", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }, { "name": "entryPointSimulations", "type": "address", "internalType": "address" }, { "name": "addresses", "type": "address[]", "internalType": "address[]" }, { "name": "tokens", "type": "address[]", "internalType": "address[]" }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct PimlicoSimulations.AssetChange[]", "components": [{ "name": "addr", "type": "address", "internalType": "address" }, { "name": "token", "type": "address", "internalType": "address" }, { "name": "balanceBefore", "type": "uint256", "internalType": "uint256" }, { "name": "balanceAfter", "type": "uint256", "internalType": "uint256" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateAssetChange08", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }, { "name": "entryPointSimulations", "type": "address", "internalType": "address" }, { "name": "addresses", "type": "address[]", "internalType": "address[]" }, { "name": "tokens", "type": "address[]", "internalType": "address[]" }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct PimlicoSimulations.AssetChange[]", "components": [{ "name": "addr", "type": "address", "internalType": "address" }, { "name": "token", "type": "address", "internalType": "address" }, { "name": "balanceBefore", "type": "uint256", "internalType": "uint256" }, { "name": "balanceAfter", "type": "uint256", "internalType": "uint256" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateEntryPointBulk", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "data", "type": "bytes[]", "internalType": "bytes[]" }], "outputs": [{ "name": "", "type": "bytes[]", "internalType": "bytes[]" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateHandleOp", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ExecutionResult", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "targetSuccess", "type": "bool", "internalType": "bool" }, { "name": "targetResult", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateValidation", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ValidationResult", "components": [{ "name": "returnInfo", "type": "tuple", "internalType": "struct IEntryPoint.ReturnInfo", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterContext", "type": "bytes", "internalType": "bytes" }] }, { "name": "senderInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "factoryInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "paymasterInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "aggregatorInfo", "type": "tuple", "internalType": "struct IEntryPoint.AggregatorStakeInfo", "components": [{ "name": "aggregator", "type": "address", "internalType": "address" }, { "name": "stakeInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }] }] }], "stateMutability": "nonpayable" }, { "type": "event", "name": "PimlicoSimulationDeployed", "inputs": [], "anonymous": false }], "bytecode": { "object": "0x60808060405234603a577f20d4cb4d83077ae7f93cbc84f032f6918d99772c5bb321c4333007d83641ab7e600080a161393e90816100408239f35b600080fdfe60a0604052600436101561001257600080fd5b60006080526080513560e01c8063141eb0331461246b5780632e5a0a93146123fc578063685f602614611ff85780637134990314611eea578063861d9d5914611cea57806390d81dfb14611ad6578063959c4cb7146113aa5780639f2d378914611318578063a4968eab146110f3578063b21b38c814610e57578063de040de114610b40578063ef5bfc37146108a1578063f1143043146108195763fccb5ff6146100bc57600080fd5b346105865760603660031901126105865760043567ffffffffffffffff8111610586576100ed903690600401612889565b906100f6612687565b906100ff61269d565b92610108612bf2565b5061011161322f565b805190680100000000000000008211610801576080515482608051558083106106f1575b5060808051805251949594907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b8383106106cd575050505060805192608051926001600160a01b038060805197169216926040965b8181106102c6578787878251916101a5836126f9565b8252602082015260805154916101ba836127c6565b6101c6825191826127a4565b838152602081019360805160805152602060805120608051955b8287106101fe578486018490528451806101fa8882612a2f565b0390f35b845161020981612715565b8254815285516080516001850180549061022282613277565b80855291600181169081156102a15750600114610263575b5050926002928261025160209460019703826127a4565b838201528152019201960195906101e0565b9091506080515260206080512090608051915b81831061028b5750508101602001828261023a565b6001816020925483868801015201920191610276565b60ff191660208087019190915292151560051b8501909201925084915083905061023a565b87516102d289826127a4565b600181526080515b601f198a01811061065b57506102f182848661362b565b61012081360312610586578951906103088261276a565b610311816126b3565b8252602081013560208301528a81013567ffffffffffffffff81116105865761033d90369083016127fa565b8b830152606081013567ffffffffffffffff81116105865761036290369083016127fa565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff8111610586576103a690369083016127fa565b60e08301526101008101359067ffffffffffffffff8211610586576103cd913691016127fa565b6101008201526103dc82612b9b565b526103e681612b9b565b5084315a91873b15610586578a51907f765e827f000000000000000000000000000000000000000000000000000000008252604482018c600484015281518091526064830190602060648260051b860101930191608051905b82821061058c575050505087602483015281806080519203816080518c5af1908161056d575b5061053f5750506104bd610477613146565b602061048484868861362b565b8b51809481927f22cdde4c0000000000000000000000000000000000000000000000000000000083528460048401526024830190612cb3565b03818a5afa91821561053357608051926104f9575b50600192916104f3918b51916104e783612715565b8252602082015261342a565b0161018f565b90915060203d811161052c575b61051081836127a4565b60208260009281010312610529575051906104f36104d2565b80fd5b503d610506565b8a513d608051823e3d90fd5b9661055b60019398610561610567949b61055b5a8b319e6133fa565b9061341d565b9a6133fa565b956104f3565b608051610579916127a4565b6080516105865738610465565b60805180fd5b909192938f9c9f989e979860209b9e9b61063f81929c9e999c6001946063198b820301875261010061062d6105fd6105eb8d51956001600160a01b03875116865288870151898701526101208188015191870152610120860190612864565b60608601518582036060870152612864565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e0860152612864565b92015190610100818403910152612864565b9601920192019092919e9b9e9d97969d9c999c9a98959a61043f565b6020908a979a99929399989598969496516106758161276a565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c0820152606060e0820152606061010082015282828601015201989598979190979693969492946102da565b60026020826106e26001949b9a9b51866132c8565b01920192019190969596610167565b6001600160ff1b03811681036107e9576001600160ff1b03831683036107e9576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b8181106107715750610135565b6080518155600181018054600292919061078a90613277565b80610798575b505001610764565b601f81116001146107b1575060805190555b3880610790565b6107d29082608051526001601f602060805120920160051c820191016132b1565b6080805182905251602081209181905590556107aa565b634e487b7160e01b6080515260116004526024608051fd5b634e487b7160e01b6080515260416004526024608051fd5b34610586576101fa61088d61087e6108776108696001600160a01b0361083e36612b1b565b61084c979394969197613482565b5060405197889363af32494360e01b6020860152602485016134c5565b03601f1981018652856127a4565b169061364e565b602080825183010191016134eb565b604051918291602083526020830190612abc565b346105865760403660031901126105865760043567ffffffffffffffff8111610586576108d2903690600401612889565b9060243567ffffffffffffffff8111610586576108f3903690600401612889565b838102939192918015818604831417156107e957610910856127c6565b9461091e60405196876127a4565b80865261092d601f19916127c6565b016080515b818110610b2957505060805190815b8181106109b857866040518091602082016020835281518091526020604084019201906080515b818110610976575050500390f35b9193509160206060600192604087516001600160a01b0381511683526001600160a01b0385820151168584015201516040820152019401910191849392610968565b6109cb6109c6828488613607565b613617565b608051906001600160a01b038116915b8681106109ed57505050600101610941565b86898273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03610a1b6109c6848787613607565b1603610a87575050508131905b610a366109c6828a8d613607565b916001600160a01b0360405193610a4c856126f9565b86855216602084015260408301528660001981146107e95787600193610a798e9a86610a8095019b612bbe565b528c612bbe565b50016109db565b610aa16109c66001600160a01b0392602495602095613607565b16604051928380927f70a082310000000000000000000000000000000000000000000000000000000082528860048301525afa908115610b1c5760805191610aeb575b5090610a28565b90506020813d8211610b14575b81610b05602093836127a4565b8101031261058657518b610ae4565b3d9150610af8565b6040513d608051823e3d90fd5b602090610b34612c13565b82828a01015201610932565b3461058657610c5d6108776108696001600160a01b03610b5f36612b1b565b604097939496919751610b718161274e565b604051610b7d8161274e565b6080518152608051602082015260805160408201526080516060820152606060808201528152604051610baf81612715565b60008152600060208201526020820152604051610bcb81612715565b60008152600060208201526040820152604051610be781612715565b60008152600060208201526060820152608060405191610c0683612715565b81518352604051610c1681612715565b6000815260006020820152602084015201526040519788937faec321fb000000000000000000000000000000000000000000000000000000006020860152602485016134c5565b8051810160208101916020818303126105865760208101519067ffffffffffffffff82116105865701808203601f1981019290610140136105865760405190610ca58261274e565b602083015167ffffffffffffffff8111610586578301602081019160a0919003126105865760405190610cd78261274e565b8051825260208101516020830152604081015160408301526060810151606083015260808101519067ffffffffffffffff821161058657610d1a91879101612e2e565b60808201528152610d2e84604084016135df565b9160208201928352610d4385608083016135df565b90604083019182526060610d5a8760c084016135df565b8482019081529560bf19011261058657602080958180959481610e0160808298610da66101409e6101206040519b610d918d612715565b610d9e6101008201612f59565b8d52016135df565b848a01528181019889526040519d848f9e928f938452519201528c61016082519101528c610180858301519101528c6101a060408301519101528c6101c06060830151910152015160a06101e08d01526102008c0190612864565b9851805160408c0152015160608a015251805160808a0152015160a088015251805160c0880152015160e0860152516001600160a01b038151166101008601520151805161012085015201516101408301520390f35b346105865760a03660031901126105865760043567ffffffffffffffff811161058657610120600319823603011261058657610e91612687565b610e9961269d565b9060643567ffffffffffffffff811161058657610eba903690600401612889565b60849491943567ffffffffffffffff811161058657610edd903690600401612889565b6040969196519663ef5bfc3760e01b88526080518880610f038585898960048601613065565b0381305afa978815610b1c576080519861109c575b50610fa794610869610fbf9895610f676001600160a01b0396610f5961087e9b976108779760405195869463ef5bfc3760e01b602087015260248601613065565b03601f1981018352826127a4565b6040519788937f7da0c462000000000000000000000000000000000000000000000000000000006020860152606060248601526084850190600401612cb3565b30604485015283810360231901606485015290612864565b60c0810151156110905760e0610fe091015160208082518301019101612f6d565b90610feb81516131c3565b916080515b825181101561108257806001600160a01b0361100e60019386612bbe565b5151166001600160a01b0360206110258488612bbe565b5101511660406110358488612bbe565b51015160406110448588612bbe565b5101519160405193611055856126c7565b84526020840152604083015260608201526110708287612bbe565b5261107b8186612bbe565b5001610ff0565b604051806101fa86826129c1565b60e00151602081519101fd5b61087791985094610869610fbf9895610f676001600160a01b0396610f5961087e9b976110df610fa79c3d80608051833e6110d781836127a4565b810190612f6d565b9e9750979b50509650509598505094610f18565b3461058657611101366128ba565b604097939592979691965196611116886126f9565b61111e613482565b8852602088019861112d612c32565b8a52604089019761113c612c32565b895261117961087e826111698b610f5960405193849263af32494360e01b60208501528d602485016134c5565b6001600160a01b0388168a61364e565b8a52878787876111be8888888860405198899788977f2e5a0a930000000000000000000000000000000000000000000000000000000089526080519a60048a0161358d565b0381608051305af1908115610b1c57608051916112fc575b508b5260e0810135601e198236030181121561058657810180359067ffffffffffffffff82116105865760208236039101136105865760141115611263575b61123d8a6101fa8b6112508f6040519586956020875251606060208801526080870190612abc565b9051858203601f19016040870152612946565b9051838203601f19016060850152612946565b906112a5939291604099989951998a9788977f9f2d37890000000000000000000000000000000000000000000000000000000089526080519a60048a0161358d565b0381608051305af1918215610b1c5761123d946101fa9361125092608051916112d8575b50835294829387808080611215565b6112f691503d80608051833e6112ee81836127a4565b810190612e70565b876112c9565b61131291503d80608051833e6112ee81836127a4565b8c6111d6565b34610586576101fa6113966113876108696108776001600160a01b0361133d366128ba565b9295809799966113519b959b939293612c32565b506040519b8c977fd72f25930000000000000000000000000000000000000000000000000000000060208a015260248901612dd7565b60208082518301019101612e70565b604051918291602083526020830190612946565b346105865760603660031901126105865760043567ffffffffffffffff8111610586576113db903690600401612889565b906113e4612687565b906113ed61269d565b926113f6612bf2565b506113ff61322f565b805190680100000000000000008211610801576080515482608051558083106119de575b5060808051805251949594907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b8383106119ba575050505060805192608051926001600160a01b038060805197169216926040965b8181106115b057878787825191611493836126f9565b8252602082015260805154916114a8836127c6565b6114b4825191826127a4565b838152602081019360805160805152602060805120608051955b8287106114e8578486018490528451806101fa8882612a2f565b84516114f381612715565b8254815285516080516001850180549061150c82613277565b808552916001811690811561158b575060011461154d575b5050926002928261153b60209460019703826127a4565b838201528152019201960195906114ce565b9091506080515260206080512090608051915b81831061157557505081016020018282611524565b6001816020925483868801015201920191611560565b60ff191660208087019190915292151560051b85019092019250849150839050611524565b87516115bc89826127a4565b600181526080515b601f198a01811061193657506115db8284866133d7565b61016081360312610586578951906115f282612731565b6115fb816126b3565b8252602081013560208301528a81013567ffffffffffffffff81116105865761162790369083016127fa565b8b830152606081013567ffffffffffffffff81116105865761164c90369083016127fa565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013560e083015261010081013561010083015261012081013567ffffffffffffffff8111610586576116a790369083016127fa565b6101208301526101408101359067ffffffffffffffff8211610586576116cf913691016127fa565b6101408201526116de82612b9b565b526116e881612b9b565b5084315a91873b15610586578a51907f1fad948c000000000000000000000000000000000000000000000000000000008252604482018c600484015281518091526064830190602060648260051b860101930191608051905b828210611861575050505087602483015281806080519203816080518c5af19081611848575b506118265750506117bf611779613146565b60206117868486886133d7565b8b51809481927fa6193531000000000000000000000000000000000000000000000000000000008352846004840152602483019061308c565b03818a5afa91821561053357608051926117ef575b50600192916117e9918b51916104e783612715565b0161147d565b90915060203d811161181f575b61180681836127a4565b60208260009281010312610529575051906117e96117d4565b503d6117fc565b9661055b60019398610561611842949b61055b5a8b319e6133fa565b956117e9565b608051611854916127a4565b608051610586578b611767565b909192938f9c9f989e979860209b9e9b61191a81929c9e999c6001946063198b82030187526101406119086118c06105eb8d51956001600160a01b03875116865288870151898701526101608188015191870152610160860190612864565b6080850151608085015260a085015160a085015260c085015160c085015260e085015160e0850152610100850151610100850152610120850151848203610120860152612864565b92015190610140818403910152612864565b9601920192019092919e9b9e9d97969d9c999c9a98959a611741565b6020908a979a999293999895989694965161195081612731565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c082015260805160e08201526080516101008201526060610120820152606061014082015282828601015201989598979190979693969492946115c4565b60026020826119cf6001949b9a9b51866132c8565b01920192019190969596611455565b6001600160ff1b03811681036107e9576001600160ff1b03831683036107e9576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b818110611a5e5750611423565b60805181556001810180546002929190611a7790613277565b80611a85575b505001611a51565b601f8111600114611a9e575060805190555b8980611a7d565b611abf9082608051526001601f602060805120920160051c820191016132b1565b608080518290525160208120918190559055611a97565b346105865760a03660031901126105865760043567ffffffffffffffff811161058657610120600319823603011261058657611b10612687565b611b1861269d565b9060643567ffffffffffffffff811161058657611b39903690600401612889565b608435949167ffffffffffffffff861161058657611bd1611bb394611be7936001600160a01b039893611b718a953690600401612889565b9590996040519b8c9a8b9a7fb21b38c8000000000000000000000000000000000000000000000000000000008c5260a060048d015260a48c0190600401612cb3565b951660248a0152166044880152868303600319016064880152613023565b9060031984830301608485015260805195613023565b0381608051305af18015610b1c5760805190611c0e575b6101fa90604051918291826129c1565b503d80608051833e611c2081836127a4565b8101906020818303126105865780519067ffffffffffffffff821161058657019080601f8301121561058657815191611c58836127c6565b91611c6660405193846127a4565b83835260208084019460071b8301019181831161058657602001935b828510611c96575050506101fa9150611bfe565b608085830312610586576020608091604051611cb1816126c7565b611cba88612f59565b8152611cc7838901612f59565b838201526040880151604082015260608801516060820152815201940193611c82565b346105865760603660031901126105865760043567ffffffffffffffff811161058657611d1b903690600401612889565b906001600160a01b03611d2c612687565b9181611d7b611d3961269d565b92611d42612bf2565b50604051967ffccb5ff6000000000000000000000000000000000000000000000000000000008852606060048901526064880191612d70565b931660248501521660448301528180608051920381608051305af18015610b1c5760805190611db5575b6101fa9060405191829182612a2f565b503d80608051833e611dc781836127a4565b8101906020818303126105865780519067ffffffffffffffff821161058657016060818303126105865760405190611dfe826126f9565b805182526020810151602083015260408101519067ffffffffffffffff8211610586570182601f8201121561058657805190611e39826127c6565b91611e4760405193846127a4565b80835260208084019160051b830101918583116105865760208101915b838310611e7e57505050506101fa92506040820152611da5565b825167ffffffffffffffff8111610586578201906040828903601f1901126105865760405190611ead82612715565b6020830151825260408301519167ffffffffffffffff831161058657611edb8a602080969581960101612e2e565b83820152815201920191611e64565b346105865760e036600319011261058657611f0361266c565b611f0b612687565b60443567ffffffffffffffff811161058657611f2b903690600401612889565b906064359267ffffffffffffffff8411610586576101206003198536030112610586576101fa94611ff361138794611fbe61139697611f68612c32565b50611fa96040519788947facbe911e00000000000000000000000000000000000000000000000000000000602087015260c0602487015260e4860191612d70565b83810360231901604485015290600401612cb3565b6001600160a01b0385166064830152608435608483015260a43560a483015260c43560c483015203601f1981018552846127a4565b61364e565b346105865760803660031901126105865760043567ffffffffffffffff811161058657610160600319823603011261058657612032612687565b9060443567ffffffffffffffff811161058657612053903690600401612889565b909260643567ffffffffffffffff811161058657612075903690600401612889565b6040959195519563ef5bfc3760e01b8752608051878061209b85858a8960048601613065565b0381305afa968715610b1c57608051976123c7575b50916120e36120f1926001600160a01b0395946080515060405197889463ef5bfc3760e01b602087015260248601613065565b03601f1981018552846127a4565b1691823b156105865761215d92612142916040518095819482937fd6383f9400000000000000000000000000000000000000000000000000000000845260606004850152606484019060040161308c565b30602484015282810360031901604484015260805196612864565b0391608051905af190816123b5575b5061237157612179613146565b60048151111561232d576001600160e01b031961219d6121988361385a565b613176565b167f220266b6000000000000000000000000000000000000000000000000000000008114612324577f462c71b20000000000000000000000000000000000000000000000000000000014801561231b575b6123135780516121fd916138d7565b8051810160c08282031261058657612217606083016131b0565b50612224608083016131b0565b5061223160a08301612e21565b9160c08101519167ffffffffffffffff831161058657612258926020809201920101612e2e565b9015612313578060208061227193518301019101612f6d565b9061227c81516131c3565b916080515b825181101561108257806001600160a01b0361229f60019386612bbe565b5151166001600160a01b0360206122b68488612bbe565b5101511660406122c68488612bbe565b51015160406122d58588612bbe565b51015191604051936122e6856126c7565b84526020840152604083015260608201526123018287612bbe565b5261230c8186612bbe565b5001612281565b602081519101fd5b506080516121ee565b50602081519101fd5b606460405162461bcd60e51b815260206004820152601d60248201527f556e657870656374656420726576657274206461746120666f726d61740000006044820152fd5b606460405162461bcd60e51b815260206004820152601c60248201527f73696d756c61746548616e646c654f70206d75737420726576657274000000006044820152fd5b6080516123c1916127a4565b8261216c565b6001600160a01b0394939197506120f1926123f06120e3923d80608051833e6110d781836127a4565b989294955092506120b0565b34610586576101fa6113966113876108696108776001600160a01b03612421366128ba565b9295809799966124359b959b939293612c32565b506040519b8c977f212eccc60000000000000000000000000000000000000000000000000000000060208a015260248901612dd7565b346105865760603660031901126105865761248461266c565b61248c612687565b60443567ffffffffffffffff811161058657366023820112156105865780600401356124b7816127c6565b916124c560405193846127a4565b8183526024602084019260051b820101903682116105865760248101925b82841061263c57505050508051926124fa846127c6565b9361250860405195866127a4565b808552612517601f19916127c6565b016080515b81811061262b5750506001600160a01b036080519316925b82518110156125c257600190606061254c8286612bbe565b5160405161257081610f59602082019463428557b160e11b86528960248401612bd2565b5a608051926080519251918a60805191f1156125a3575b6125918288612bbe565b5261259c8187612bbe565b5001612534565b503d60405190602081830101604052808252608051602083013e612587565b846040518091602082016020835281518091526040830190602060408260051b860101930191608051905b8282106125fc57505050500390f35b9193600191939550602061261b8192603f198a82030186528851612864565b96019201920185949391926125ed565b80606060208093890101520161251c565b833567ffffffffffffffff8111610586576020916126618392602436918701016127fa565b8152019301926124e3565b600435906001600160a01b038216820361268257565b600080fd5b602435906001600160a01b038216820361268257565b604435906001600160a01b038216820361268257565b35906001600160a01b038216820361268257565b6080810190811067ffffffffffffffff8211176126e357604052565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff8211176126e357604052565b6040810190811067ffffffffffffffff8211176126e357604052565b610160810190811067ffffffffffffffff8211176126e357604052565b60a0810190811067ffffffffffffffff8211176126e357604052565b610120810190811067ffffffffffffffff8211176126e357604052565b610100810190811067ffffffffffffffff8211176126e357604052565b90601f8019910116810190811067ffffffffffffffff8211176126e357604052565b67ffffffffffffffff81116126e35760051b60200190565b67ffffffffffffffff81116126e357601f01601f191660200190565b81601f8201121561268257803590612811826127de565b9261281f60405194856127a4565b8284526020838301011161268257816000926020809301838601378301015290565b60005b8381106128545750506000910152565b8181015183820152602001612844565b9060209161287d81518092818552858086019101612841565b601f01601f1916010190565b9181601f840112156126825782359167ffffffffffffffff8311612682576020808501948460051b01011161268257565b60e0600319820112612682576004356001600160a01b038116810361268257916024356001600160a01b0381168103612682579160443567ffffffffffffffff8111612682578161290d91600401612889565b929092916064359067ffffffffffffffff82116126825761012090829003600319011261268257600401906084359060a4359060c43590565b90815160028110156129ab578152608060408061299081602087015160a06020880152805160a08801526020810151151560c08801520151606060e0870152610100860190612864565b94015180518285015260208101516060850152015191015290565b634e487b7160e01b600052602160045260246000fd5b602060408183019282815284518094520192019060005b8181106129e55750505090565b90919260206080600192606087516001600160a01b0381511683526001600160a01b03858201511685840152604081015160408401520151606082015201940191019190916129d8565b602081526040608082019280516020840152602081015182840152015191606080830152825180915260a0820191602060a08360051b8301019401926000915b838310612a7e57505050505090565b9091929394602080612aad600193609f198682030187526040838b518051845201519181858201520190612864565b97019301930191939290612a6f565b9061010060e0612b1893805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e08201520190612864565b90565b6080600319820112612682576004356001600160a01b038116810361268257916024356001600160a01b0381168103612682579160443567ffffffffffffffff81116126825781612b6e91600401612889565b929092916064359067ffffffffffffffff8211612682576101209082900360031901126126825760040190565b805115612ba85760200190565b634e487b7160e01b600052603260045260246000fd5b8051821015612ba85760209160051b010190565b6040906001600160a01b03612b1894931681528160208201520190612864565b60405190612bff826126f9565b606060408360008152600060208201520152565b60405190612c20826126f9565b60006040838281528260208201520152565b60405190612c3f826126f9565b8160008152612c4c612bf2565b60208201526040612c5b612c13565b910152565b9035601e198236030181121561268257016020813591019167ffffffffffffffff821161268257813603831361268257565b908060209392818452848401376000828201840152601f01601f1916010190565b612b18916001600160a01b03612cc8836126b3565b16815260208201356020820152612d61612d55612d1c612d01612cee6040870187612c60565b6101206040880152610120870191612c92565b612d0e6060870187612c60565b908683036060880152612c92565b6080850135608085015260a085013560a085015260c085013560c0850152612d4760e0860186612c60565b9085830360e0870152612c92565b92610100810190612c60565b91610100818503910152612c92565b90602083828152019060208160051b85010193836000915b838310612d985750505050505090565b909192939495601f19828203018652863561011e1984360301811215612682576020612dc960019386839401612cb3565b980196019493019190612d88565b9397969592612e0c90612dfe6001600160a01b039360a0989560c0895260c0890191612d70565b908682036020880152612cb3565b97166040840152606083015260808201520152565b5190811515820361268257565b81601f82011215612682578051612e44816127de565b92612e5260405194856127a4565b8184526020828401011161268257612b189160208085019101612841565b6020818303126126825780519067ffffffffffffffff821161268257018082039160a083126126825760405192612ea6846126f9565b82516002811015612682578452602083015167ffffffffffffffff81116126825783016060818403126126825760405190612ee0826126f9565b80518252612ef060208201612e21565b602083015260408101519367ffffffffffffffff851161268257606094612f179201612e2e565b60408201526020850152603f19011261268257608060405191612f39836126f9565b604081015183526060810151602084015201516040820152604082015290565b51906001600160a01b038216820361268257565b6020818303126126825780519067ffffffffffffffff8211612682570181601f8201121561268257805190612fa1826127c6565b92612faf60405194856127a4565b8284526020606081860194028301019181831161268257602001925b828410612fd9575050505090565b606084830312612682576020606091604051612ff4816126f9565b612ffd87612f59565b815261300a838801612f59565b8382015260408701516040820152815201930192612fcb565b9160209082815201919060005b81811061303d5750505090565b9091926020806001926001600160a01b03613057886126b3565b168152019401929101613030565b929061307e90612b189593604086526040860191613023565b926020818503910152613023565b612b18916001600160a01b036130a1836126b3565b1681526020820135602082015261313761312b6130da612d016130c76040870187612c60565b6101606040880152610160870191612c92565b6080850135608085015260a085013560a085015260c085013560c085015260e085013560e085015261010085013561010085015261311c610120860186612c60565b90858303610120870152612c92565b92610140810190612c60565b91610140818503910152612c92565b3d15613171573d90613157826127de565b9161316560405193846127a4565b82523d6000602084013e565b606090565b90602082519201516001600160e01b031981169260048110613196575050565b6001600160e01b0319929350829060040360031b1b161690565b519065ffffffffffff8216820361268257565b906131cd826127c6565b6131da60405191826127a4565b82815280926131eb601f19916127c6565b019060005b8281106131fc57505050565b60209060405161320b816126c7565b600081526000838201526000604082015260006060820152828285010152016131f0565b6040519061323e6020836127a4565b600080835282815b82811061325257505050565b60209060405161326181612715565b6000815260608382015282828501015201613246565b90600182811c921680156132a7575b602083101461329157565b634e487b7160e01b600052602260045260246000fd5b91607f1691613286565b8181106132bc575050565b600081556001016132b1565b6001602091939293845181550192015191825167ffffffffffffffff81116126e3576132f48254613277565b601f811161339a575b506020601f8211600114613338578192939460009261332d575b50508160011b916000199060031b1c1916179055565b015190503880613317565b601f1982169083600052806000209160005b81811061338257509583600195969710613369575b505050811b019055565b015160001960f88460031b161c1916905538808061335f565b9192602060018192868b01518155019401920161334a565b6133c790836000526020600020601f840160051c810191602085106133cd575b601f0160051c01906132b1565b386132fd565b90915081906133ba565b9190811015612ba85760051b8101359061015e1981360301821215612682570190565b9190820391821161340757565b634e487b7160e01b600052601160045260246000fd5b9190820180921161340757565b60005490680100000000000000008210156126e3576001820180600055821015612ba857600080526134809160011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563016132c8565b565b6040519061348f82612787565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b91612b1893916134dd91604085526040850191612d70565b916020818403910152612cb3565b6020818303126126825780519067ffffffffffffffff8211612682570161010081830312612682576040519161352083612787565b815183526020820151602084015260408201516040840152606082015160608401526080820151608084015260a082015160a084015261356260c08301612e21565b60c084015260e082015167ffffffffffffffff8111612682576135859201612e2e565b60e082015290565b94919260c096999897946001600160a01b036135d095816135c29516895216602088015260e0604088015260e0870191612d70565b908482036060860152612cb3565b95608083015260a08201520152565b9190826040910312612682576040516135f781612715565b6020808294805184520151910152565b9190811015612ba85760051b0190565b356001600160a01b03811681036126825790565b9190811015612ba85760051b8101359061011e1981360301821215612682570190565b60405163428557b160e11b6020820190815260009485948594859261367c9186916108699160248401612bd2565b5a935193f16137f0573d60405191602082840101604052818352602083013e60048151106137865763428557b160e11b6001600160e01b03196136c16121988461385a565b161461371c5780516136d2916138d7565b80518101604082820312612682576136ec60208301612e21565b9160408101519167ffffffffffffffff831161268257613713926020809201920101612e2e565b90156123135790565b608460405162461bcd60e51b815260206004820152603d60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20776974682044656c6567617465416e64526576657274206572726f720000006064820152fd5b608460405162461bcd60e51b815260206004820152602a60248201527f44656c6567617465416e6452657665727420726576657274206461746120697360448201527f20746f6f2073686f7274000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602c60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20617320657870656374656400000000000000000000000000000000000000006064820152fd5b90600091600490606093815160048111156138cf575b80156138c7575b5082811061388457505050565b6040519450918290039101601f8201601f19165b8181015185820152601f19019081156138b15790613898565b5050604081840160006020820152016040528252565b905038613877565b925082613870565b9190600492606093815183811115613900575b60048111156138c7575082811061388457505050565b9250826138ea56fea2646970667358221220d85f5ebda5655f38869d8e5bfc818534e919cf8b2d6d23b8c16f5f20d5aa916964736f6c634300081c0033", "sourceMap": "1015:21122:31:-:0;;;;;;;1432:27;;;;1015:21122;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x60a0604052600436101561001257600080fd5b60006080526080513560e01c8063141eb0331461246b5780632e5a0a93146123fc578063685f602614611ff85780637134990314611eea578063861d9d5914611cea57806390d81dfb14611ad6578063959c4cb7146113aa5780639f2d378914611318578063a4968eab146110f3578063b21b38c814610e57578063de040de114610b40578063ef5bfc37146108a1578063f1143043146108195763fccb5ff6146100bc57600080fd5b346105865760603660031901126105865760043567ffffffffffffffff8111610586576100ed903690600401612889565b906100f6612687565b906100ff61269d565b92610108612bf2565b5061011161322f565b805190680100000000000000008211610801576080515482608051558083106106f1575b5060808051805251949594907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b8383106106cd575050505060805192608051926001600160a01b038060805197169216926040965b8181106102c6578787878251916101a5836126f9565b8252602082015260805154916101ba836127c6565b6101c6825191826127a4565b838152602081019360805160805152602060805120608051955b8287106101fe578486018490528451806101fa8882612a2f565b0390f35b845161020981612715565b8254815285516080516001850180549061022282613277565b80855291600181169081156102a15750600114610263575b5050926002928261025160209460019703826127a4565b838201528152019201960195906101e0565b9091506080515260206080512090608051915b81831061028b5750508101602001828261023a565b6001816020925483868801015201920191610276565b60ff191660208087019190915292151560051b8501909201925084915083905061023a565b87516102d289826127a4565b600181526080515b601f198a01811061065b57506102f182848661362b565b61012081360312610586578951906103088261276a565b610311816126b3565b8252602081013560208301528a81013567ffffffffffffffff81116105865761033d90369083016127fa565b8b830152606081013567ffffffffffffffff81116105865761036290369083016127fa565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff8111610586576103a690369083016127fa565b60e08301526101008101359067ffffffffffffffff8211610586576103cd913691016127fa565b6101008201526103dc82612b9b565b526103e681612b9b565b5084315a91873b15610586578a51907f765e827f000000000000000000000000000000000000000000000000000000008252604482018c600484015281518091526064830190602060648260051b860101930191608051905b82821061058c575050505087602483015281806080519203816080518c5af1908161056d575b5061053f5750506104bd610477613146565b602061048484868861362b565b8b51809481927f22cdde4c0000000000000000000000000000000000000000000000000000000083528460048401526024830190612cb3565b03818a5afa91821561053357608051926104f9575b50600192916104f3918b51916104e783612715565b8252602082015261342a565b0161018f565b90915060203d811161052c575b61051081836127a4565b60208260009281010312610529575051906104f36104d2565b80fd5b503d610506565b8a513d608051823e3d90fd5b9661055b60019398610561610567949b61055b5a8b319e6133fa565b9061341d565b9a6133fa565b956104f3565b608051610579916127a4565b6080516105865738610465565b60805180fd5b909192938f9c9f989e979860209b9e9b61063f81929c9e999c6001946063198b820301875261010061062d6105fd6105eb8d51956001600160a01b03875116865288870151898701526101208188015191870152610120860190612864565b60608601518582036060870152612864565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e0860152612864565b92015190610100818403910152612864565b9601920192019092919e9b9e9d97969d9c999c9a98959a61043f565b6020908a979a99929399989598969496516106758161276a565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c0820152606060e0820152606061010082015282828601015201989598979190979693969492946102da565b60026020826106e26001949b9a9b51866132c8565b01920192019190969596610167565b6001600160ff1b03811681036107e9576001600160ff1b03831683036107e9576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b8181106107715750610135565b6080518155600181018054600292919061078a90613277565b80610798575b505001610764565b601f81116001146107b1575060805190555b3880610790565b6107d29082608051526001601f602060805120920160051c820191016132b1565b6080805182905251602081209181905590556107aa565b634e487b7160e01b6080515260116004526024608051fd5b634e487b7160e01b6080515260416004526024608051fd5b34610586576101fa61088d61087e6108776108696001600160a01b0361083e36612b1b565b61084c979394969197613482565b5060405197889363af32494360e01b6020860152602485016134c5565b03601f1981018652856127a4565b169061364e565b602080825183010191016134eb565b604051918291602083526020830190612abc565b346105865760403660031901126105865760043567ffffffffffffffff8111610586576108d2903690600401612889565b9060243567ffffffffffffffff8111610586576108f3903690600401612889565b838102939192918015818604831417156107e957610910856127c6565b9461091e60405196876127a4565b80865261092d601f19916127c6565b016080515b818110610b2957505060805190815b8181106109b857866040518091602082016020835281518091526020604084019201906080515b818110610976575050500390f35b9193509160206060600192604087516001600160a01b0381511683526001600160a01b0385820151168584015201516040820152019401910191849392610968565b6109cb6109c6828488613607565b613617565b608051906001600160a01b038116915b8681106109ed57505050600101610941565b86898273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03610a1b6109c6848787613607565b1603610a87575050508131905b610a366109c6828a8d613607565b916001600160a01b0360405193610a4c856126f9565b86855216602084015260408301528660001981146107e95787600193610a798e9a86610a8095019b612bbe565b528c612bbe565b50016109db565b610aa16109c66001600160a01b0392602495602095613607565b16604051928380927f70a082310000000000000000000000000000000000000000000000000000000082528860048301525afa908115610b1c5760805191610aeb575b5090610a28565b90506020813d8211610b14575b81610b05602093836127a4565b8101031261058657518b610ae4565b3d9150610af8565b6040513d608051823e3d90fd5b602090610b34612c13565b82828a01015201610932565b3461058657610c5d6108776108696001600160a01b03610b5f36612b1b565b604097939496919751610b718161274e565b604051610b7d8161274e565b6080518152608051602082015260805160408201526080516060820152606060808201528152604051610baf81612715565b60008152600060208201526020820152604051610bcb81612715565b60008152600060208201526040820152604051610be781612715565b60008152600060208201526060820152608060405191610c0683612715565b81518352604051610c1681612715565b6000815260006020820152602084015201526040519788937faec321fb000000000000000000000000000000000000000000000000000000006020860152602485016134c5565b8051810160208101916020818303126105865760208101519067ffffffffffffffff82116105865701808203601f1981019290610140136105865760405190610ca58261274e565b602083015167ffffffffffffffff8111610586578301602081019160a0919003126105865760405190610cd78261274e565b8051825260208101516020830152604081015160408301526060810151606083015260808101519067ffffffffffffffff821161058657610d1a91879101612e2e565b60808201528152610d2e84604084016135df565b9160208201928352610d4385608083016135df565b90604083019182526060610d5a8760c084016135df565b8482019081529560bf19011261058657602080958180959481610e0160808298610da66101409e6101206040519b610d918d612715565b610d9e6101008201612f59565b8d52016135df565b848a01528181019889526040519d848f9e928f938452519201528c61016082519101528c610180858301519101528c6101a060408301519101528c6101c06060830151910152015160a06101e08d01526102008c0190612864565b9851805160408c0152015160608a015251805160808a0152015160a088015251805160c0880152015160e0860152516001600160a01b038151166101008601520151805161012085015201516101408301520390f35b346105865760a03660031901126105865760043567ffffffffffffffff811161058657610120600319823603011261058657610e91612687565b610e9961269d565b9060643567ffffffffffffffff811161058657610eba903690600401612889565b60849491943567ffffffffffffffff811161058657610edd903690600401612889565b6040969196519663ef5bfc3760e01b88526080518880610f038585898960048601613065565b0381305afa978815610b1c576080519861109c575b50610fa794610869610fbf9895610f676001600160a01b0396610f5961087e9b976108779760405195869463ef5bfc3760e01b602087015260248601613065565b03601f1981018352826127a4565b6040519788937f7da0c462000000000000000000000000000000000000000000000000000000006020860152606060248601526084850190600401612cb3565b30604485015283810360231901606485015290612864565b60c0810151156110905760e0610fe091015160208082518301019101612f6d565b90610feb81516131c3565b916080515b825181101561108257806001600160a01b0361100e60019386612bbe565b5151166001600160a01b0360206110258488612bbe565b5101511660406110358488612bbe565b51015160406110448588612bbe565b5101519160405193611055856126c7565b84526020840152604083015260608201526110708287612bbe565b5261107b8186612bbe565b5001610ff0565b604051806101fa86826129c1565b60e00151602081519101fd5b61087791985094610869610fbf9895610f676001600160a01b0396610f5961087e9b976110df610fa79c3d80608051833e6110d781836127a4565b810190612f6d565b9e9750979b50509650509598505094610f18565b3461058657611101366128ba565b604097939592979691965196611116886126f9565b61111e613482565b8852602088019861112d612c32565b8a52604089019761113c612c32565b895261117961087e826111698b610f5960405193849263af32494360e01b60208501528d602485016134c5565b6001600160a01b0388168a61364e565b8a52878787876111be8888888860405198899788977f2e5a0a930000000000000000000000000000000000000000000000000000000089526080519a60048a0161358d565b0381608051305af1908115610b1c57608051916112fc575b508b5260e0810135601e198236030181121561058657810180359067ffffffffffffffff82116105865760208236039101136105865760141115611263575b61123d8a6101fa8b6112508f6040519586956020875251606060208801526080870190612abc565b9051858203601f19016040870152612946565b9051838203601f19016060850152612946565b906112a5939291604099989951998a9788977f9f2d37890000000000000000000000000000000000000000000000000000000089526080519a60048a0161358d565b0381608051305af1918215610b1c5761123d946101fa9361125092608051916112d8575b50835294829387808080611215565b6112f691503d80608051833e6112ee81836127a4565b810190612e70565b876112c9565b61131291503d80608051833e6112ee81836127a4565b8c6111d6565b34610586576101fa6113966113876108696108776001600160a01b0361133d366128ba565b9295809799966113519b959b939293612c32565b506040519b8c977fd72f25930000000000000000000000000000000000000000000000000000000060208a015260248901612dd7565b60208082518301019101612e70565b604051918291602083526020830190612946565b346105865760603660031901126105865760043567ffffffffffffffff8111610586576113db903690600401612889565b906113e4612687565b906113ed61269d565b926113f6612bf2565b506113ff61322f565b805190680100000000000000008211610801576080515482608051558083106119de575b5060808051805251949594907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b8383106119ba575050505060805192608051926001600160a01b038060805197169216926040965b8181106115b057878787825191611493836126f9565b8252602082015260805154916114a8836127c6565b6114b4825191826127a4565b838152602081019360805160805152602060805120608051955b8287106114e8578486018490528451806101fa8882612a2f565b84516114f381612715565b8254815285516080516001850180549061150c82613277565b808552916001811690811561158b575060011461154d575b5050926002928261153b60209460019703826127a4565b838201528152019201960195906114ce565b9091506080515260206080512090608051915b81831061157557505081016020018282611524565b6001816020925483868801015201920191611560565b60ff191660208087019190915292151560051b85019092019250849150839050611524565b87516115bc89826127a4565b600181526080515b601f198a01811061193657506115db8284866133d7565b61016081360312610586578951906115f282612731565b6115fb816126b3565b8252602081013560208301528a81013567ffffffffffffffff81116105865761162790369083016127fa565b8b830152606081013567ffffffffffffffff81116105865761164c90369083016127fa565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013560e083015261010081013561010083015261012081013567ffffffffffffffff8111610586576116a790369083016127fa565b6101208301526101408101359067ffffffffffffffff8211610586576116cf913691016127fa565b6101408201526116de82612b9b565b526116e881612b9b565b5084315a91873b15610586578a51907f1fad948c000000000000000000000000000000000000000000000000000000008252604482018c600484015281518091526064830190602060648260051b860101930191608051905b828210611861575050505087602483015281806080519203816080518c5af19081611848575b506118265750506117bf611779613146565b60206117868486886133d7565b8b51809481927fa6193531000000000000000000000000000000000000000000000000000000008352846004840152602483019061308c565b03818a5afa91821561053357608051926117ef575b50600192916117e9918b51916104e783612715565b0161147d565b90915060203d811161181f575b61180681836127a4565b60208260009281010312610529575051906117e96117d4565b503d6117fc565b9661055b60019398610561611842949b61055b5a8b319e6133fa565b956117e9565b608051611854916127a4565b608051610586578b611767565b909192938f9c9f989e979860209b9e9b61191a81929c9e999c6001946063198b82030187526101406119086118c06105eb8d51956001600160a01b03875116865288870151898701526101608188015191870152610160860190612864565b6080850151608085015260a085015160a085015260c085015160c085015260e085015160e0850152610100850151610100850152610120850151848203610120860152612864565b92015190610140818403910152612864565b9601920192019092919e9b9e9d97969d9c999c9a98959a611741565b6020908a979a999293999895989694965161195081612731565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c082015260805160e08201526080516101008201526060610120820152606061014082015282828601015201989598979190979693969492946115c4565b60026020826119cf6001949b9a9b51866132c8565b01920192019190969596611455565b6001600160ff1b03811681036107e9576001600160ff1b03831683036107e9576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b818110611a5e5750611423565b60805181556001810180546002929190611a7790613277565b80611a85575b505001611a51565b601f8111600114611a9e575060805190555b8980611a7d565b611abf9082608051526001601f602060805120920160051c820191016132b1565b608080518290525160208120918190559055611a97565b346105865760a03660031901126105865760043567ffffffffffffffff811161058657610120600319823603011261058657611b10612687565b611b1861269d565b9060643567ffffffffffffffff811161058657611b39903690600401612889565b608435949167ffffffffffffffff861161058657611bd1611bb394611be7936001600160a01b039893611b718a953690600401612889565b9590996040519b8c9a8b9a7fb21b38c8000000000000000000000000000000000000000000000000000000008c5260a060048d015260a48c0190600401612cb3565b951660248a0152166044880152868303600319016064880152613023565b9060031984830301608485015260805195613023565b0381608051305af18015610b1c5760805190611c0e575b6101fa90604051918291826129c1565b503d80608051833e611c2081836127a4565b8101906020818303126105865780519067ffffffffffffffff821161058657019080601f8301121561058657815191611c58836127c6565b91611c6660405193846127a4565b83835260208084019460071b8301019181831161058657602001935b828510611c96575050506101fa9150611bfe565b608085830312610586576020608091604051611cb1816126c7565b611cba88612f59565b8152611cc7838901612f59565b838201526040880151604082015260608801516060820152815201940193611c82565b346105865760603660031901126105865760043567ffffffffffffffff811161058657611d1b903690600401612889565b906001600160a01b03611d2c612687565b9181611d7b611d3961269d565b92611d42612bf2565b50604051967ffccb5ff6000000000000000000000000000000000000000000000000000000008852606060048901526064880191612d70565b931660248501521660448301528180608051920381608051305af18015610b1c5760805190611db5575b6101fa9060405191829182612a2f565b503d80608051833e611dc781836127a4565b8101906020818303126105865780519067ffffffffffffffff821161058657016060818303126105865760405190611dfe826126f9565b805182526020810151602083015260408101519067ffffffffffffffff8211610586570182601f8201121561058657805190611e39826127c6565b91611e4760405193846127a4565b80835260208084019160051b830101918583116105865760208101915b838310611e7e57505050506101fa92506040820152611da5565b825167ffffffffffffffff8111610586578201906040828903601f1901126105865760405190611ead82612715565b6020830151825260408301519167ffffffffffffffff831161058657611edb8a602080969581960101612e2e565b83820152815201920191611e64565b346105865760e036600319011261058657611f0361266c565b611f0b612687565b60443567ffffffffffffffff811161058657611f2b903690600401612889565b906064359267ffffffffffffffff8411610586576101206003198536030112610586576101fa94611ff361138794611fbe61139697611f68612c32565b50611fa96040519788947facbe911e00000000000000000000000000000000000000000000000000000000602087015260c0602487015260e4860191612d70565b83810360231901604485015290600401612cb3565b6001600160a01b0385166064830152608435608483015260a43560a483015260c43560c483015203601f1981018552846127a4565b61364e565b346105865760803660031901126105865760043567ffffffffffffffff811161058657610160600319823603011261058657612032612687565b9060443567ffffffffffffffff811161058657612053903690600401612889565b909260643567ffffffffffffffff811161058657612075903690600401612889565b6040959195519563ef5bfc3760e01b8752608051878061209b85858a8960048601613065565b0381305afa968715610b1c57608051976123c7575b50916120e36120f1926001600160a01b0395946080515060405197889463ef5bfc3760e01b602087015260248601613065565b03601f1981018552846127a4565b1691823b156105865761215d92612142916040518095819482937fd6383f9400000000000000000000000000000000000000000000000000000000845260606004850152606484019060040161308c565b30602484015282810360031901604484015260805196612864565b0391608051905af190816123b5575b5061237157612179613146565b60048151111561232d576001600160e01b031961219d6121988361385a565b613176565b167f220266b6000000000000000000000000000000000000000000000000000000008114612324577f462c71b20000000000000000000000000000000000000000000000000000000014801561231b575b6123135780516121fd916138d7565b8051810160c08282031261058657612217606083016131b0565b50612224608083016131b0565b5061223160a08301612e21565b9160c08101519167ffffffffffffffff831161058657612258926020809201920101612e2e565b9015612313578060208061227193518301019101612f6d565b9061227c81516131c3565b916080515b825181101561108257806001600160a01b0361229f60019386612bbe565b5151166001600160a01b0360206122b68488612bbe565b5101511660406122c68488612bbe565b51015160406122d58588612bbe565b51015191604051936122e6856126c7565b84526020840152604083015260608201526123018287612bbe565b5261230c8186612bbe565b5001612281565b602081519101fd5b506080516121ee565b50602081519101fd5b606460405162461bcd60e51b815260206004820152601d60248201527f556e657870656374656420726576657274206461746120666f726d61740000006044820152fd5b606460405162461bcd60e51b815260206004820152601c60248201527f73696d756c61746548616e646c654f70206d75737420726576657274000000006044820152fd5b6080516123c1916127a4565b8261216c565b6001600160a01b0394939197506120f1926123f06120e3923d80608051833e6110d781836127a4565b989294955092506120b0565b34610586576101fa6113966113876108696108776001600160a01b03612421366128ba565b9295809799966124359b959b939293612c32565b506040519b8c977f212eccc60000000000000000000000000000000000000000000000000000000060208a015260248901612dd7565b346105865760603660031901126105865761248461266c565b61248c612687565b60443567ffffffffffffffff811161058657366023820112156105865780600401356124b7816127c6565b916124c560405193846127a4565b8183526024602084019260051b820101903682116105865760248101925b82841061263c57505050508051926124fa846127c6565b9361250860405195866127a4565b808552612517601f19916127c6565b016080515b81811061262b5750506001600160a01b036080519316925b82518110156125c257600190606061254c8286612bbe565b5160405161257081610f59602082019463428557b160e11b86528960248401612bd2565b5a608051926080519251918a60805191f1156125a3575b6125918288612bbe565b5261259c8187612bbe565b5001612534565b503d60405190602081830101604052808252608051602083013e612587565b846040518091602082016020835281518091526040830190602060408260051b860101930191608051905b8282106125fc57505050500390f35b9193600191939550602061261b8192603f198a82030186528851612864565b96019201920185949391926125ed565b80606060208093890101520161251c565b833567ffffffffffffffff8111610586576020916126618392602436918701016127fa565b8152019301926124e3565b600435906001600160a01b038216820361268257565b600080fd5b602435906001600160a01b038216820361268257565b604435906001600160a01b038216820361268257565b35906001600160a01b038216820361268257565b6080810190811067ffffffffffffffff8211176126e357604052565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff8211176126e357604052565b6040810190811067ffffffffffffffff8211176126e357604052565b610160810190811067ffffffffffffffff8211176126e357604052565b60a0810190811067ffffffffffffffff8211176126e357604052565b610120810190811067ffffffffffffffff8211176126e357604052565b610100810190811067ffffffffffffffff8211176126e357604052565b90601f8019910116810190811067ffffffffffffffff8211176126e357604052565b67ffffffffffffffff81116126e35760051b60200190565b67ffffffffffffffff81116126e357601f01601f191660200190565b81601f8201121561268257803590612811826127de565b9261281f60405194856127a4565b8284526020838301011161268257816000926020809301838601378301015290565b60005b8381106128545750506000910152565b8181015183820152602001612844565b9060209161287d81518092818552858086019101612841565b601f01601f1916010190565b9181601f840112156126825782359167ffffffffffffffff8311612682576020808501948460051b01011161268257565b60e0600319820112612682576004356001600160a01b038116810361268257916024356001600160a01b0381168103612682579160443567ffffffffffffffff8111612682578161290d91600401612889565b929092916064359067ffffffffffffffff82116126825761012090829003600319011261268257600401906084359060a4359060c43590565b90815160028110156129ab578152608060408061299081602087015160a06020880152805160a08801526020810151151560c08801520151606060e0870152610100860190612864565b94015180518285015260208101516060850152015191015290565b634e487b7160e01b600052602160045260246000fd5b602060408183019282815284518094520192019060005b8181106129e55750505090565b90919260206080600192606087516001600160a01b0381511683526001600160a01b03858201511685840152604081015160408401520151606082015201940191019190916129d8565b602081526040608082019280516020840152602081015182840152015191606080830152825180915260a0820191602060a08360051b8301019401926000915b838310612a7e57505050505090565b9091929394602080612aad600193609f198682030187526040838b518051845201519181858201520190612864565b97019301930191939290612a6f565b9061010060e0612b1893805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e08201520190612864565b90565b6080600319820112612682576004356001600160a01b038116810361268257916024356001600160a01b0381168103612682579160443567ffffffffffffffff81116126825781612b6e91600401612889565b929092916064359067ffffffffffffffff8211612682576101209082900360031901126126825760040190565b805115612ba85760200190565b634e487b7160e01b600052603260045260246000fd5b8051821015612ba85760209160051b010190565b6040906001600160a01b03612b1894931681528160208201520190612864565b60405190612bff826126f9565b606060408360008152600060208201520152565b60405190612c20826126f9565b60006040838281528260208201520152565b60405190612c3f826126f9565b8160008152612c4c612bf2565b60208201526040612c5b612c13565b910152565b9035601e198236030181121561268257016020813591019167ffffffffffffffff821161268257813603831361268257565b908060209392818452848401376000828201840152601f01601f1916010190565b612b18916001600160a01b03612cc8836126b3565b16815260208201356020820152612d61612d55612d1c612d01612cee6040870187612c60565b6101206040880152610120870191612c92565b612d0e6060870187612c60565b908683036060880152612c92565b6080850135608085015260a085013560a085015260c085013560c0850152612d4760e0860186612c60565b9085830360e0870152612c92565b92610100810190612c60565b91610100818503910152612c92565b90602083828152019060208160051b85010193836000915b838310612d985750505050505090565b909192939495601f19828203018652863561011e1984360301811215612682576020612dc960019386839401612cb3565b980196019493019190612d88565b9397969592612e0c90612dfe6001600160a01b039360a0989560c0895260c0890191612d70565b908682036020880152612cb3565b97166040840152606083015260808201520152565b5190811515820361268257565b81601f82011215612682578051612e44816127de565b92612e5260405194856127a4565b8184526020828401011161268257612b189160208085019101612841565b6020818303126126825780519067ffffffffffffffff821161268257018082039160a083126126825760405192612ea6846126f9565b82516002811015612682578452602083015167ffffffffffffffff81116126825783016060818403126126825760405190612ee0826126f9565b80518252612ef060208201612e21565b602083015260408101519367ffffffffffffffff851161268257606094612f179201612e2e565b60408201526020850152603f19011261268257608060405191612f39836126f9565b604081015183526060810151602084015201516040820152604082015290565b51906001600160a01b038216820361268257565b6020818303126126825780519067ffffffffffffffff8211612682570181601f8201121561268257805190612fa1826127c6565b92612faf60405194856127a4565b8284526020606081860194028301019181831161268257602001925b828410612fd9575050505090565b606084830312612682576020606091604051612ff4816126f9565b612ffd87612f59565b815261300a838801612f59565b8382015260408701516040820152815201930192612fcb565b9160209082815201919060005b81811061303d5750505090565b9091926020806001926001600160a01b03613057886126b3565b168152019401929101613030565b929061307e90612b189593604086526040860191613023565b926020818503910152613023565b612b18916001600160a01b036130a1836126b3565b1681526020820135602082015261313761312b6130da612d016130c76040870187612c60565b6101606040880152610160870191612c92565b6080850135608085015260a085013560a085015260c085013560c085015260e085013560e085015261010085013561010085015261311c610120860186612c60565b90858303610120870152612c92565b92610140810190612c60565b91610140818503910152612c92565b3d15613171573d90613157826127de565b9161316560405193846127a4565b82523d6000602084013e565b606090565b90602082519201516001600160e01b031981169260048110613196575050565b6001600160e01b0319929350829060040360031b1b161690565b519065ffffffffffff8216820361268257565b906131cd826127c6565b6131da60405191826127a4565b82815280926131eb601f19916127c6565b019060005b8281106131fc57505050565b60209060405161320b816126c7565b600081526000838201526000604082015260006060820152828285010152016131f0565b6040519061323e6020836127a4565b600080835282815b82811061325257505050565b60209060405161326181612715565b6000815260608382015282828501015201613246565b90600182811c921680156132a7575b602083101461329157565b634e487b7160e01b600052602260045260246000fd5b91607f1691613286565b8181106132bc575050565b600081556001016132b1565b6001602091939293845181550192015191825167ffffffffffffffff81116126e3576132f48254613277565b601f811161339a575b506020601f8211600114613338578192939460009261332d575b50508160011b916000199060031b1c1916179055565b015190503880613317565b601f1982169083600052806000209160005b81811061338257509583600195969710613369575b505050811b019055565b015160001960f88460031b161c1916905538808061335f565b9192602060018192868b01518155019401920161334a565b6133c790836000526020600020601f840160051c810191602085106133cd575b601f0160051c01906132b1565b386132fd565b90915081906133ba565b9190811015612ba85760051b8101359061015e1981360301821215612682570190565b9190820391821161340757565b634e487b7160e01b600052601160045260246000fd5b9190820180921161340757565b60005490680100000000000000008210156126e3576001820180600055821015612ba857600080526134809160011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563016132c8565b565b6040519061348f82612787565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b91612b1893916134dd91604085526040850191612d70565b916020818403910152612cb3565b6020818303126126825780519067ffffffffffffffff8211612682570161010081830312612682576040519161352083612787565b815183526020820151602084015260408201516040840152606082015160608401526080820151608084015260a082015160a084015261356260c08301612e21565b60c084015260e082015167ffffffffffffffff8111612682576135859201612e2e565b60e082015290565b94919260c096999897946001600160a01b036135d095816135c29516895216602088015260e0604088015260e0870191612d70565b908482036060860152612cb3565b95608083015260a08201520152565b9190826040910312612682576040516135f781612715565b6020808294805184520151910152565b9190811015612ba85760051b0190565b356001600160a01b03811681036126825790565b9190811015612ba85760051b8101359061011e1981360301821215612682570190565b60405163428557b160e11b6020820190815260009485948594859261367c9186916108699160248401612bd2565b5a935193f16137f0573d60405191602082840101604052818352602083013e60048151106137865763428557b160e11b6001600160e01b03196136c16121988461385a565b161461371c5780516136d2916138d7565b80518101604082820312612682576136ec60208301612e21565b9160408101519167ffffffffffffffff831161268257613713926020809201920101612e2e565b90156123135790565b608460405162461bcd60e51b815260206004820152603d60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20776974682044656c6567617465416e64526576657274206572726f720000006064820152fd5b608460405162461bcd60e51b815260206004820152602a60248201527f44656c6567617465416e6452657665727420726576657274206461746120697360448201527f20746f6f2073686f7274000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602c60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20617320657870656374656400000000000000000000000000000000000000006064820152fd5b90600091600490606093815160048111156138cf575b80156138c7575b5082811061388457505050565b6040519450918290039101601f8201601f19165b8181015185820152601f19019081156138b15790613898565b5050604081840160006020820152016040528252565b905038613877565b925082613870565b9190600492606093815183811115613900575b60048111156138c7575082811061388457505050565b9250826138ea56fea2646970667358221220d85f5ebda5655f38869d8e5bfc818534e919cf8b2d6d23b8c16f5f20d5aa916964736f6c634300081c0033", "sourceMap": "1015:21122:31:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;12024:23;;:::i;:::-;1015:21122;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;12240:1035;12260:18;;;;;;1015:21122;;;;;;;;;:::i;:::-;;;;13292:155;;1015:21122;-1:-1:-1;;1015:21122:31;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;13292:155;;;1015:21122;;;;;;;13292:155;1015:21122;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;12280:3;1015:21122;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;12480:10;;;;;;:::i;:::-;1015:21122;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;12461:29;;;:::i;:::-;;;;;:::i;:::-;;12529:19;;12582:9;12610:48;;;;;;1015:21122;;12610:48;1015:21122;12610:48;;1015:21122;;;12610:48;1015:21122;12610:48;;1015:21122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12610:48;;1015:21122;;;12610:48;;;;;;;1015:21122;-1:-1:-1;12606:659:31;;12963:302;;1015:21122;12963:302;;:::i;:::-;1015:21122;13131:10;;;;;:::i;:::-;1015:21122;;13106:36;;;;1015:21122;13106:36;;;1015:21122;13106:36;;1015:21122;;;;;;:::i;:::-;13106:36;;;;;;;;;;1015:21122;;13106:36;;;12606:659;1015:21122;;;;13160:90;1015:21122;;;;;;;:::i;:::-;;;;13181:68;;1015:21122;13160:90;:::i;:::-;1015:21122;12245:13;;13106:36;;;;1015:21122;13106:36;;;;;;;;;;:::i;:::-;1015:21122;13106:36;-1:-1:-1;13106:36:31;;;1015:21122;;;;-1:-1:-1;1015:21122:31;;13160:90;13106:36;;1015:21122;;;13106:36;;;;;;1015:21122;;;;;;;;;;12606:659;12696:9;12919:28;1015:21122;12696:9;;12843:36;12897:50;12696:9;;12859:20;12696:9;12746:19;;12859:20;;:::i;:::-;12843:36;;:::i;:::-;12919:28;;:::i;12897:50::-;12606:659;;;12610:48;1015:21122;;12610:48;;;:::i;:::-;1015:21122;;;;12610:48;;;1015:21122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;-1:-1:-1;1015:21122:31;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1015:21122:31;;;;;;;;;;;-1:-1:-1;;;1015:21122:31;;;;;;;;;;;;;;;10414:64;10338:59;10241:61;;-1:-1:-1;;;;;1015:21122:31;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;10241:61;;;-1:-1:-1;;;10241:61:31;;;;;;;;:::i;:::-;;1015:21122;;10241:61;;;;;;:::i;:::-;1015:21122;10338:59;;:::i;:::-;10241:61;1015:21122;;;10414:64;;;;;;:::i;:::-;1015:21122;;;;;10241:61;1015:21122;;10241:61;1015:21122;;;;:::i;:::-;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1015:21122:31;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;16470:20;;;;;;1015:21122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;16492:3;16526:12;;;;;;:::i;:::-;;:::i;:::-;1015:21122;;;-1:-1:-1;;;;;1015:21122:31;;16553:427;16573:17;;;;;;16492:3;;;1015:21122;;16455:13;;16592:3;16651:9;;;16672:42;-1:-1:-1;;;;;16651:9:31;;;;;;:::i;:::-;1015:21122;16651:64;16672:42;;16748:12;;;;;16647:220;;16938:9;;;;;;:::i;:::-;1015:21122;-1:-1:-1;;;;;1015:21122:31;;;;;;:::i;:::-;;;;;;16905:60;;1015:21122;;16905:60;;1015:21122;16894:7;-1:-1:-1;;1015:21122:31;;;;;;;16885:80;1015:21122;;;16885:80;1015:21122;;16885:80;;:::i;:::-;;;;:::i;:::-;;1015:21122;16558:13;;16647:220;16822:9;;-1:-1:-1;;;;;16822:9:31;1015:21122;16822:9;1015:21122;16822:9;;:::i;:::-;1015:21122;;;16816:32;;;;1015:21122;16816:32;;;1015:21122;16816:32;;1015:21122;16816:32;;;;;;;1015:21122;;16816:32;;;16647:220;16807:41;16647:220;;;16816:32;;;1015:21122;16816:32;;;;;;;;;1015:21122;16816:32;;;:::i;:::-;;;1015:21122;;;;;16816:32;;;;;;-1:-1:-1;16816:32:31;;;1015:21122;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;9651:59;9554:61;;-1:-1:-1;;;;;1015:21122:31;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;9554:61;;;9474:50;1015:21122;9554:61;;;;;;;:::i;9651:59::-;1015:21122;;9727:65;;1015:21122;9727:65;;1015:21122;;;;;;;;;9727:65;;1015:21122;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;-1:-1:-1;1015:21122:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;17891:35;-1:-1:-1;;;17891:35:31;;1015:21122;;17891:35;;;;;;;1015:21122;17891:35;;;:::i;:::-;;:4;;:35;;;;;;;1015:21122;;17891:35;;;1015:21122;;;;;18610:60;1015:21122;;18213:68;-1:-1:-1;;;;;1015:21122:31;18213:68;18396:89;1015:21122;;18062:229;1015:21122;;;18213:68;;;-1:-1:-1;;;1015:21122:31;18213:68;;;1015:21122;18213:68;;;:::i;:::-;;1015:21122;;18213:68;;;;;;:::i;:::-;1015:21122;;18062:229;;;18098:54;1015:21122;18062:229;;;1015:21122;;18062:229;;1015:21122;;;;;;;;:::i;:::-;17891:4;1015:21122;;;;;;;-1:-1:-1;;1015:21122:31;;;;;17891:4;1015:21122;:::i;18610:60::-;18728:29;;;1015:21122;;18723:110;;1015:21122;18934:58;18945:28;;;1015:21122;;;;18934:58;;;;;;:::i;:::-;1015:21122;19072:40;1015:21122;;19072:40;:::i;:::-;1015:21122;;;19170:3;1015:21122;;19143:25;;;;;19243:17;-1:-1:-1;;;;;19243:17:31;1015:21122;19243:17;;;:::i;:::-;;1015:21122;;-1:-1:-1;;;;;1015:21122:31;19290:17;;;;:::i;:::-;;:23;1015:21122;;;19346:17;;;;:::i;:::-;;:24;1015:21122;;19402:16;;;;:::i;:::-;;:23;1015:21122;;;;;;;;:::i;:::-;;;;19207:233;;1015:21122;;19207:233;;1015:21122;;19207:233;;1015:21122;19189:251;;;;:::i;:::-;;;;;;:::i;:::-;;1015:21122;19128:13;;19143:25;1015:21122;;;;19143:25;1015:21122;;:::i;18723:110::-;1015:21122;18793:28;;1015:21122;1712:95:17;;;;;17891:35:31;18062:229;17891:35;;;;1015:21122;18610:60;17891:35;;18213:68;-1:-1:-1;;;;;17891:35:31;18213:68;18396:89;17891:35;;;1015:21122;17891:35;;1015:21122;;;17891:35;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1015:21122;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;5602:64;5507:59;1015:21122;5410:61;1015:21122;5410:61;1015:21122;;5410:61;;;-1:-1:-1;;;1015:21122:31;5410:61;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1015:21122:31;;5507:59;;:::i;5602:64::-;5576:90;;1015:21122;;;;5762:162;1015:21122;;;;;;5762:162;;;;;1015:21122;5762:162;;1015:21122;;5762:162;1015:21122;5762:162;;;:::i;:::-;;1015:21122;;;5762:4;:162;;;;;;;1015:21122;;5762:162;;;1015:21122;5732:192;;;1015:21122;6029:29;;1015:21122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6069:2;-1:-1:-1;6029:42:31;6025:387;;1015:21122;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1015:21122:31;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1015:21122:31;;;;;;:::i;6025:387::-;1015:21122;6126:275;1015:21122;;;;;;;;6126:275;;;;;1015:21122;6126:275;;1015:21122;;6126:275;1015:21122;6126:275;;;:::i;:::-;;1015:21122;;;5762:4;6126:275;;;;;;;1015:21122;;;;;;;;6126:275;;;6025:387;6087:314;;;6025:387;;;;;;;;;6126:275;;;;;1015:21122;;;6126:275;;;;;;:::i;:::-;;;;;:::i;:::-;;;;5762:162;;;;;1015:21122;;;5762:162;;;;;;:::i;:::-;;;;1015:21122;;;;;8166:67;8090:59;7914:140;;-1:-1:-1;;;;;1015:21122:31;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;7914:140;;;7816:68;7914:140;;;;;;;;:::i;8090:59::-;7914:140;1015:21122;;;8166:67;;;;;;:::i;:::-;1015:21122;;;;;7914:140;1015:21122;;7914:140;1015:21122;;;;:::i;:::-;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;13836:23;;:::i;:::-;1015:21122;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;14052:1023;14072:18;;;;;;1015:21122;;;;;;;;;:::i;:::-;;;;15092:155;;1015:21122;-1:-1:-1;;1015:21122:31;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;15092:155;;;1015:21122;;;;;;;15092:155;1015:21122;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;14092:3;1015:21122;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;14280:10;;;;;;:::i;:::-;1015:21122;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;14261:29;;;:::i;:::-;;;;;:::i;:::-;;14329:19;;14382:9;14410:48;;;;;;1015:21122;;14410:48;1015:21122;14410:48;;1015:21122;;;14410:48;1015:21122;14410:48;;1015:21122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14410:48;;1015:21122;;;14410:48;;;;;;;1015:21122;-1:-1:-1;14406:659:31;;14763:302;;1015:21122;14763:302;;:::i;:::-;1015:21122;14931:10;;;;;:::i;:::-;1015:21122;;14906:36;;;;1015:21122;14906:36;;;1015:21122;14906:36;;1015:21122;;;;;;:::i;:::-;14906:36;;;;;;;;;;1015:21122;;14906:36;;;14406:659;1015:21122;;;;14960:90;1015:21122;;;;;;;:::i;14960:90::-;1015:21122;14057:13;;14906:36;;;;1015:21122;14906:36;;;;;;;;;;:::i;:::-;1015:21122;14906:36;-1:-1:-1;14906:36:31;;;1015:21122;;;;-1:-1:-1;1015:21122:31;;14960:90;14906:36;;;;;;;14406:659;14496:9;14719:28;1015:21122;14496:9;;14643:36;14697:50;14496:9;;14659:20;14496:9;14546:19;;14659:20;;:::i;14697:50::-;14406:659;;;14410:48;1015:21122;;14410:48;;;:::i;:::-;1015:21122;;;;14410:48;;;1015:21122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;-1:-1:-1;1015:21122:31;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;:::i;:::-;;;;;;17370:134;;;;;1015:21122;17370:134;;1015:21122;;17370:134;;1015:21122;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;17370:134;1015:21122;;;17370:4;:134;;;;;;1015:21122;;17370:134;;;1015:21122;;;;;;;;;;:::i;17370:134::-;;;1015:21122;;;17370:134;;;;;;:::i;:::-;;;1015:21122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17370:134;;;1015:21122;17370:134;;;;1015:21122;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1015:21122:31;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;11555:74;1015:21122;11555:74;;1015:21122;;11555:74;;1015:21122;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11555:74;;1015:21122;;;11555:4;:74;;;;;;1015:21122;;11555:74;;;1015:21122;;;;;;;;;;:::i;11555:74::-;;;1015:21122;;;11555:74;;;;;;:::i;:::-;;;1015:21122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11555:74;;1015:21122;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;8779:140;8955:59;1015:21122;;9031:67;1015:21122;;;:::i;:::-;;;;;8779:140;;;8698:51;1015:21122;8779:140;;;1015:21122;;8779:140;;1015:21122;;;;;;:::i;:::-;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;8779:140;1015:21122;;8779:140;;;;;;:::i;:::-;8955:59;:::i;1015:21122::-;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;19822:35;-1:-1:-1;;;19822:35:31;;1015:21122;;19822:35;;;;;;;1015:21122;19822:35;;;:::i;:::-;;:4;;:35;;;;;;;1015:21122;;19822:35;;;1015:21122;;;19983:68;;1015:21122;-1:-1:-1;;;;;1015:21122:31;;;;;;;19983:68;;;-1:-1:-1;;;1015:21122:31;19983:68;;;1015:21122;19983:68;;;:::i;:::-;;1015:21122;;19983:68;;;;;;:::i;:::-;1015:21122;20066:59;;;;;;1015:21122;;;;;;20066:59;;;;;;1015:21122;20066:59;;1015:21122;;20066:59;;1015:21122;;;;;;;;:::i;:::-;19822:4;1015:21122;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;:::i;:::-;20066:59;1015:21122;;;20066:59;;;;;;;1015:21122;-1:-1:-1;20062:1579:31;;20190:1451;;:::i;:::-;1015:21122;;;20240:22;;20236:100;;-1:-1:-1;;;;;;20368:30:31;20375:22;;;:::i;:::-;20368:30;:::i;:::-;1015:21122;20476:31;20464:43;;20460:113;;20667:45;20655:57;:104;;;;20062:1579;20634:204;;1015:21122;;20887:38;;;:::i;:::-;1015:21122;;20995:351;;1015:21122;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;20995:351;1015:21122;20995:351;;;1015:21122;;;;:::i;:::-;21419:14;;21415:86;;1015:21122;;;21588:42;1015:21122;;21588:42;;;;;;:::i;:::-;20062:1579;21720:40;1015:21122;;21720:40;:::i;:::-;1015:21122;;;21818:3;1015:21122;;21791:25;;;;;21891:17;-1:-1:-1;;;;;21891:17:31;1015:21122;21891:17;;;:::i;:::-;;1015:21122;;-1:-1:-1;;;;;1015:21122:31;21938:17;;;;:::i;:::-;;:23;1015:21122;;;21994:17;;;;:::i;:::-;;:24;1015:21122;;22050:16;;;;:::i;:::-;;:23;1015:21122;;;;;;;;:::i;:::-;;;;21855:233;;1015:21122;;21855:233;;1015:21122;;21855:233;;1015:21122;21837:251;;;;:::i;:::-;;;;;;:::i;:::-;;1015:21122;21776:13;;21415:86;1015:21122;1712:95:17;;;;;20655:104:31;1015:21122;;;20655:104;;20460:113;1712:95:17;1015:21122:31;1712:95:17;;;;;20236:100:31;1015:21122;;;-1:-1:-1;;;20282:39:31;;1015:21122;;20282:39;;1015:21122;;;;;;;;;;;20282:39;20062:1579;1015:21122;;;-1:-1:-1;;;20140:38:31;;1015:21122;;20140:38;;1015:21122;;;;;;;;;;;20140:38;20066:59;1015:21122;;20066:59;;;:::i;:::-;;;;19822:35;-1:-1:-1;;;;;19822:35:31;;;;;19983:68;19822:35;;19983:68;19822:35;;1015:21122;;;19822:35;;;;;;:::i;:::-;;;;;;;;;;1015:21122;;;;;7241:67;7165:59;6989:140;;-1:-1:-1;;;;;1015:21122:31;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;6989:140;;;6900:59;6989:140;;;;;;;;:::i;1015:21122::-;;;;;;-1:-1:-1;;1015:21122:31;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;2082:468;2119:3;1015:21122;;2102:15;;;;;1015:21122;;;2302:7;1015:21122;2302:7;;:::i;:::-;;1015:21122;;2215:95;;;1015:21122;2215:95;;;-1:-1:-1;;;2215:95:31;;;1015:21122;2215:95;;;:::i;:::-;2374:9;1015:21122;;;;;378:118:17;;1015:21122:31;;;;378:118:17;;2402:8:31;2398:97;;2119:3;2508:31;;;;:::i;:::-;;;;;;:::i;:::-;;1015:21122;2087:13;;2398:97;1204:349:17;;1015:21122:31;1204:349:17;;1015:21122:31;1204:349:17;;;;1015:21122:31;1204:349:17;;;;1015:21122:31;;;1204:349:17;;;2398:97:31;;2102:15;;1015:21122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1015:21122:31;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;1015:21122:31;;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1015:21122:31;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1015:21122:31;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1015:21122:31;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1015:21122:31;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;1015:21122:31;;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;-1:-1:-1;;1015:21122:31;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;-1:-1:-1;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1015:21122:31;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1015:21122:31;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;1015:21122:31;;;;;;;;-1:-1:-1;;1015:21122:31;;;;:::o;:::-;;;-1:-1:-1;;;;;1015:21122:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1015:21122:31;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1015:21122:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1015:21122:31;;;;:::o;:::-;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;;1015:21122:31;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;;1015:21122:31;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;1015:21122:31;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;;;-1:-1:-1;1015:21122:31;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;;1015:21122:31;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;;;-1:-1:-1;1015:21122:31;;;;-1:-1:-1;1015:21122:31;;;;-1:-1:-1;1015:21122:31;;;;-1:-1:-1;1015:21122:31;;;;-1:-1:-1;1015:21122:31;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1015:21122:31;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2693:1459::-;1015:21122;;-1:-1:-1;;;2977:60:31;;;;;;-1:-1:-1;;;;;;;;2977:60:31;;1015:21122;;2977:60;;;;;;:::i;:::-;3097:9;378:118:17;;;;-1:-1:-1;;1204:349:17;1015:21122:31;1204:349:17;;2977:60:31;1204:349:17;;;;1015:21122:31;1204:349:17;;;;2977:60:31;1204:349:17;;;2977:60:31;1015:21122;;3369:21;3365:104;;-1:-1:-1;;;;;;;;;3557:30:31;3564:22;;;:::i;3557:30::-;1015:21122;3601:60;3597:162;;1015:21122;;3843:38;;;:::i;:::-;1015:21122;;3961:37;;1015:21122;;;;;;;;2977:60;3961:37;;1015:21122;:::i;:::-;;;;;;;;;;;;;3961:37;2977:60;3961:37;;;1015:21122;;;;:::i;:::-;4013:25;;4009:98;;2693:1459;:::o;3597:162::-;3677:71;1015:21122;;-1:-1:-1;;;3677:71:31;;2977:60;;3677:71;;1015:21122;;2977:60;1015:21122;;;;;;;;;;;;;3677:71;3365:104;3406:52;1015:21122;;-1:-1:-1;;;3406:52:31;;2977:60;;3406:52;;1015:21122;;2977:60;1015:21122;;;;;;;;;;;;;3406:52;3118:174;3227:54;1015:21122;;-1:-1:-1;;;3227:54:31;;2977:60;;3227:54;;1015:21122;;2977:60;1015:21122;;;;;;;;;;;;;3227:54;15689:1115:29;;1015:21122:31;15689:1115:29;1015:21122:31;15801:19:29;1015:21122:31;15879:919:29;;;1015:21122:31;15879:919:29;;;;;15689:1115;15879:919;;;;15689:1115;15879:919;;;;;;15689:1115;;;:::o;15879:919::-;;;;-1:-1:-1;15879:919:29;;;;;;1015:21122:31;15879:919:29;;-1:-1:-1;;15879:919:29;;;;;;;;;;-1:-1:-1;;15879:919:29;;;;;;;;;;;;;;;;1015:21122:31;15879:919:29;;;;;;;;;15689:1115::o;15879:919::-;;;;;;;;-1:-1:-1;15879:919:29;;;15689:1115;;;1015:21122:31;15801:19:29;1015:21122:31;15879:919:29;;;;;;;;;15689:1115;1015:21122:31;15879:919:29;;;;;;;;;;;15689:1115;;;:::o;15879:919::-;;-1:-1:-1;15879:919:29;;", "linkReferences": {} }, "methodIdentifiers": { "binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": "71349903", "binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": "9f2d3789", "binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": "2e5a0a93", "filterOps06((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address,address)": "959c4cb7", "filterOps07((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,address)": "fccb5ff6", "filterOps08((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,address)": "861d9d59", "getBalances(address[],address[])": "ef5bfc37", "simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": "a4968eab", "simulateAssetChange06((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address,address[],address[])": "685f6026", "simulateAssetChange07((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,address,address[],address[])": "b21b38c8", "simulateAssetChange08((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,address,address[],address[])": "90d81dfb", "simulateEntryPointBulk(address,address,bytes[])": "141eb033", "simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "f1143043", "simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "de040de1" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"PimlicoSimulationDeployed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchCallGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchPaymasterVerificationGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchVerificationGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps06\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps07\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps08\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"getBalances\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetBalance[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"simulateAndEstimateGas\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"simulationResult\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"verificationGasLimit\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"tuple\"}],\"internalType\":\"struct PimlicoSimulations.SimulateAndEstimateGasResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"simulateAssetChange06\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetChange[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"entryPointSimulations\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"simulateAssetChange07\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetChange[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"entryPointSimulations\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"simulateAssetChange08\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetChange[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"simulateEntryPointBulk\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"}],\"name\":\"simulateHandleOp\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"}],\"name\":\"simulateValidation\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPoint.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Pimlico (https://github.com/pimlicolabs/alto)\",\"kind\":\"dev\",\"methods\":{},\"title\":\"PimlicoSimulations\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal call gas limit\"},\"binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal paymaster verification gas limit\"},\"binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal verification gas limit\"},\"simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Simulates userOp and estimates verification & paymaster gas limits\"},\"simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Simulates handling of a UserOperation\"},\"simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Simulates validation of a UserOperation\"}},\"notice\":\"An ERC-4337 EntryPoint simulation contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/PimlicoSimulations.sol\":\"PimlicoSimulations\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":@account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":@account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/\",\":@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/\",\":@test-utils/=lib/singleton-paymaster/test/utils/\",\":account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":singleton-paymaster/=lib/singleton-paymaster/src/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"lib/account-abstraction-v6/contracts/core/Helpers.sol\":{\"keccak256\":\"0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746\",\"dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU\"]},\"lib/account-abstraction-v6/contracts/core/NonceManager.sol\":{\"keccak256\":\"0xa17a4a6fde70088ab18ffe6df830f3efa31f1cd0e1a7160336c96e3c94984d25\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b38615df9f80c56282b72888e9ba1eb1a9413fa67a0dbf094deda7af9feb38e7\",\"dweb:/ipfs/QmSzcXetEJRH4UHuUmZiSgX6bFgfqHWfmyuxVnh4NosMk1\"]},\"lib/account-abstraction-v6/contracts/core/SenderCreator.sol\":{\"keccak256\":\"0x44b9449fec82d6cdfb01d52fdd5a72f90099c651316123810cf9633f00b018c2\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a9c0487390e72638681d175c45bc92425c802fffdca4bd0ae8457782ee284612\",\"dweb:/ipfs/QmVbzuehCUWJWqEHyMWuc6cRVbxfcMdFsmGL9o4Wz7WY2x\"]},\"lib/account-abstraction-v6/contracts/core/StakeManager.sol\":{\"keccak256\":\"0x21aa0956382bd000b1b8c3b1d19ca6ebcd6c9029eebb19c612fb38ee5dd2430a\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://0a625c8795354d9f429367f9c1d14eb8af7db9c7f2c2a2033e2066ced76a573a\",\"dweb:/ipfs/Qmd1j6UarUg54q1G2HCNCLQz8XGVZR1qxX7eQ6cytHpQPN\"]},\"lib/account-abstraction-v6/contracts/interfaces/IAccount.sol\":{\"keccak256\":\"0x556a0e5980de18e90b115553ed502408155ba35f58642823010d9288047bc418\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a0f420134b79596db8737173c7b933ae0a33059e107b6327c43aa40d4744a9e4\",\"dweb:/ipfs/QmRo8s1AhXmEMV7uPYnbpYwU19e9Bk6jmYBJTiPx3Fo85W\"]},\"lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b\",\"dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP\"]},\"lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf\",\"dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd\"]},\"lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2\",\"dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b\"]},\"lib/account-abstraction-v6/contracts/interfaces/IPaymaster.sol\":{\"keccak256\":\"0x36858ba8685024974f533530420688da3454d29996ebc42e410673a1ed2ec456\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://616cbcf51778b1961b7f20a547bec7efae6d1d565df0f651926241ed8bde9ad8\",\"dweb:/ipfs/QmaVsgffUUmeUJYgStvRr8cNZ1LBbrc3FYNLW4JT1dVLia\"]},\"lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3\",\"dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ\"]},\"lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol\":{\"keccak256\":\"0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c\",\"dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN\"]},\"lib/account-abstraction-v6/contracts/utils/Exec.sol\":{\"keccak256\":\"0x5b232117afbc2939f3ffc92745614867e9e1d475a3e1e5443adae13c200174f1\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://62e7365379a06ead7b47637945bcaee095d51aab1d3ac00ddec69443e6cbe9fe\",\"dweb:/ipfs/QmctG3aw4U3KMSMeJKoLJ1NJewjMWfppnd1m3kxNTe39Uy\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155\",\"dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5\"]},\"lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9\",\"dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe\"]},\"lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3\",\"dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk\"]},\"lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00\",\"dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj\"]},\"lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be\",\"dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3\"]},\"lib/account-abstraction-v7/contracts/utils/Exec.sol\":{\"keccak256\":\"0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77\",\"dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ\"]},\"lib/account-abstraction-v8/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77\",\"dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT\"]},\"lib/account-abstraction-v8/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x3b0423737e810dd886183ed32cfed9b45edd315f5fb3e1076fc19f86791adc64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c43081efaa2eda581b6249053281bb58cb0c4eeb6bf87efc55d95daaec2fc931\",\"dweb:/ipfs/QmXRN2JnyzWZNeFMHauTnDuc7jhxGY4ZkY37HTtjXKdC87\"]},\"lib/account-abstraction-v8/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xee493ae200b8c675bdc0da66f7ac6bb883ecea33672d7d0a95526b9eecdedf87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://979784a0333ac4ef3cc53ab9323a4b7fa574d929bd511f0eed03d3b0370db22d\",\"dweb:/ipfs/QmeiciN5gs4upM6vfKvrRxWiDBUzMU4uJQRRkJajhim9gX\"]},\"lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol\":{\"keccak256\":\"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570\",\"dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w\"]},\"lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85\",\"dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz\"]},\"lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79\",\"dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010\",\"dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x1c3cdf5158b29b16ba2d2c7ff1f6d4304754605441257e198b46803f0fa9df1a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6ed3d15fd372495ff76439878fb5e007ae0b39da3ce3d9fd877ee8147647bb2\",\"dweb:/ipfs/QmZ1zC91VhPHMXAdcY8SahJMwDsC2B5q9uXFF16R5eHmkV\"]},\"lib/solady/src/utils/LibBytes.sol\":{\"keccak256\":\"0x905f1c122299888350964a3bdd3dccd4b969273389b8d869f9aacb6871ff199e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6cff3ef7090aa48f214b960f373a33c15878f80e617443a3a4d53f130bab862\",\"dweb:/ipfs/QmdMEpK6ZVxUesqSpurqS9UkDnm1kAnjUeJKLN6ZWPNJnT\"]},\"src/IEntryPointSimulations.sol\":{\"keccak256\":\"0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5\",\"dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t\"]},\"src/PimlicoSimulations.sol\":{\"keccak256\":\"0x71bae4ed74fdd0738f48306f1955bbddbc61a25f3ea789301b6e4ef5a71dfa2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e44b92d0f02f4b7cf3949537e1addd246df2961cb5159848a9ed978a644a8454\",\"dweb:/ipfs/QmapaZaNzgJA2H5c4nFkWnQrx73FGwndxRsQFVcVpCM85W\"]},\"src/v06/EntryPointGasEstimationOverride.sol\":{\"keccak256\":\"0x96c89aa516d2e9f071c0f1634a88abced225e742490e3c27bf1a417fdd9a8390\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6eb5a95767e162068d1d7af3a167129d0f2661536e52b45384c01ae9ddb6ff39\",\"dweb:/ipfs/QmXXEFdaGnsPbaQanfjBcXfg4LHnQCdW3x1JfNS6CeGWb5\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.28+commit.7893614a" }, "language": "Solidity", "output": { "abi": [{ "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "type": "event", "name": "PimlicoSimulationDeployed", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchCallGas", "outputs": [{ "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchPaymasterVerificationGas", "outputs": [{ "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchVerificationGas", "outputs": [{ "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }] }, { "inputs": [{ "internalType": "struct UserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "filterOps06", "outputs": [{ "internalType": "struct PimlicoSimulations.FilterOpsResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "uint256", "name": "balanceChange", "type": "uint256" }, { "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "name": "rejectedUserOps", "type": "tuple[]", "components": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "bytes", "name": "revertReason", "type": "bytes" }] }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "filterOps07", "outputs": [{ "internalType": "struct PimlicoSimulations.FilterOpsResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "uint256", "name": "balanceChange", "type": "uint256" }, { "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "name": "rejectedUserOps", "type": "tuple[]", "components": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "bytes", "name": "revertReason", "type": "bytes" }] }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "filterOps08", "outputs": [{ "internalType": "struct PimlicoSimulations.FilterOpsResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "uint256", "name": "balanceChange", "type": "uint256" }, { "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "name": "rejectedUserOps", "type": "tuple[]", "components": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "bytes", "name": "revertReason", "type": "bytes" }] }] }] }, { "inputs": [{ "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "address[]", "name": "tokens", "type": "address[]" }], "stateMutability": "view", "type": "function", "name": "getBalances", "outputs": [{ "internalType": "struct PimlicoSimulations.AssetBalance[]", "name": "", "type": "tuple[]", "components": [{ "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }] }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateAndEstimateGas", "outputs": [{ "internalType": "struct PimlicoSimulations.SimulateAndEstimateGasResult", "name": "result", "type": "tuple", "components": [{ "internalType": "struct IEntryPointSimulations.ExecutionResult", "name": "simulationResult", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "paid", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "bool", "name": "targetSuccess", "type": "bool" }, { "internalType": "bytes", "name": "targetResult", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "verificationGasLimit", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "paymasterVerificationGasLimit", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }] }] }, { "inputs": [{ "internalType": "struct UserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }, { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "address[]", "name": "tokens", "type": "address[]" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateAssetChange06", "outputs": [{ "internalType": "struct PimlicoSimulations.AssetChange[]", "name": "", "type": "tuple[]", "components": [{ "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "balanceBefore", "type": "uint256" }, { "internalType": "uint256", "name": "balanceAfter", "type": "uint256" }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }, { "internalType": "address", "name": "entryPointSimulations", "type": "address" }, { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "address[]", "name": "tokens", "type": "address[]" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateAssetChange07", "outputs": [{ "internalType": "struct PimlicoSimulations.AssetChange[]", "name": "", "type": "tuple[]", "components": [{ "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "balanceBefore", "type": "uint256" }, { "internalType": "uint256", "name": "balanceAfter", "type": "uint256" }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }, { "internalType": "address", "name": "entryPointSimulations", "type": "address" }, { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "address[]", "name": "tokens", "type": "address[]" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateAssetChange08", "outputs": [{ "internalType": "struct PimlicoSimulations.AssetChange[]", "name": "", "type": "tuple[]", "components": [{ "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "balanceBefore", "type": "uint256" }, { "internalType": "uint256", "name": "balanceAfter", "type": "uint256" }] }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "bytes[]", "name": "data", "type": "bytes[]" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateEntryPointBulk", "outputs": [{ "internalType": "bytes[]", "name": "", "type": "bytes[]" }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateHandleOp", "outputs": [{ "internalType": "struct IEntryPointSimulations.ExecutionResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "paid", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "bool", "name": "targetSuccess", "type": "bool" }, { "internalType": "bytes", "name": "targetResult", "type": "bytes" }] }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateValidation", "outputs": [{ "internalType": "struct IEntryPointSimulations.ValidationResult", "name": "", "type": "tuple", "components": [{ "internalType": "struct IEntryPoint.ReturnInfo", "name": "returnInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterContext", "type": "bytes" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "senderInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "factoryInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "paymasterInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IEntryPoint.AggregatorStakeInfo", "name": "aggregatorInfo", "type": "tuple", "components": [{ "internalType": "address", "name": "aggregator", "type": "address" }, { "internalType": "struct IStakeManager.StakeInfo", "name": "stakeInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }] }] }] }], "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "userdoc": { "kind": "user", "methods": { "binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": { "notice": "Binary search for optimal call gas limit" }, "binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": { "notice": "Binary search for optimal paymaster verification gas limit" }, "binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": { "notice": "Binary search for optimal verification gas limit" }, "simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": { "notice": "Simulates userOp and estimates verification & paymaster gas limits" }, "simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "notice": "Simulates handling of a UserOperation" }, "simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "notice": "Simulates validation of a UserOperation" } }, "version": 1 } }, "settings": { "remappings": ["@account-abstraction-v6/=lib/account-abstraction-v6/contracts/", "@account-abstraction-v7/=lib/account-abstraction-v7/contracts/", "@account-abstraction-v8/=lib/account-abstraction-v8/contracts/", "@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/", "@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/", "@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/", "@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/", "@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/", "@test-utils/=lib/singleton-paymaster/test/utils/", "account-abstraction-v6/=lib/account-abstraction-v6/contracts/", "account-abstraction-v7/=lib/account-abstraction-v7/contracts/", "account-abstraction-v8/=lib/account-abstraction-v8/contracts/", "ds-test/=lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/", "openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/", "openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/", "openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/", "singleton-paymaster/=lib/singleton-paymaster/src/", "solady/=lib/solady/src/"], "optimizer": { "enabled": true, "runs": 1000 }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "src/PimlicoSimulations.sol": "PimlicoSimulations" }, "evmVersion": "london", "libraries": {}, "viaIR": true }, "sources": { "lib/account-abstraction-v6/contracts/core/Helpers.sol": { "keccak256": "0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a", "urls": ["bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746", "dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/core/NonceManager.sol": { "keccak256": "0xa17a4a6fde70088ab18ffe6df830f3efa31f1cd0e1a7160336c96e3c94984d25", "urls": ["bzz-raw://b38615df9f80c56282b72888e9ba1eb1a9413fa67a0dbf094deda7af9feb38e7", "dweb:/ipfs/QmSzcXetEJRH4UHuUmZiSgX6bFgfqHWfmyuxVnh4NosMk1"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/core/SenderCreator.sol": { "keccak256": "0x44b9449fec82d6cdfb01d52fdd5a72f90099c651316123810cf9633f00b018c2", "urls": ["bzz-raw://a9c0487390e72638681d175c45bc92425c802fffdca4bd0ae8457782ee284612", "dweb:/ipfs/QmVbzuehCUWJWqEHyMWuc6cRVbxfcMdFsmGL9o4Wz7WY2x"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/core/StakeManager.sol": { "keccak256": "0x21aa0956382bd000b1b8c3b1d19ca6ebcd6c9029eebb19c612fb38ee5dd2430a", "urls": ["bzz-raw://0a625c8795354d9f429367f9c1d14eb8af7db9c7f2c2a2033e2066ced76a573a", "dweb:/ipfs/Qmd1j6UarUg54q1G2HCNCLQz8XGVZR1qxX7eQ6cytHpQPN"], "license": "GPL-3.0-only" }, "lib/account-abstraction-v6/contracts/interfaces/IAccount.sol": { "keccak256": "0x556a0e5980de18e90b115553ed502408155ba35f58642823010d9288047bc418", "urls": ["bzz-raw://a0f420134b79596db8737173c7b933ae0a33059e107b6327c43aa40d4744a9e4", "dweb:/ipfs/QmRo8s1AhXmEMV7uPYnbpYwU19e9Bk6jmYBJTiPx3Fo85W"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol": { "keccak256": "0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a", "urls": ["bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b", "dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol": { "keccak256": "0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8", "urls": ["bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf", "dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol": { "keccak256": "0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12", "urls": ["bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2", "dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IPaymaster.sol": { "keccak256": "0x36858ba8685024974f533530420688da3454d29996ebc42e410673a1ed2ec456", "urls": ["bzz-raw://616cbcf51778b1961b7f20a547bec7efae6d1d565df0f651926241ed8bde9ad8", "dweb:/ipfs/QmaVsgffUUmeUJYgStvRr8cNZ1LBbrc3FYNLW4JT1dVLia"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f", "urls": ["bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3", "dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ"], "license": "GPL-3.0-only" }, "lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol": { "keccak256": "0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c", "urls": ["bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c", "dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/utils/Exec.sol": { "keccak256": "0x5b232117afbc2939f3ffc92745614867e9e1d475a3e1e5443adae13c200174f1", "urls": ["bzz-raw://62e7365379a06ead7b47637945bcaee095d51aab1d3ac00ddec69443e6cbe9fe", "dweb:/ipfs/QmctG3aw4U3KMSMeJKoLJ1NJewjMWfppnd1m3kxNTe39Uy"], "license": "LGPL-3.0-only" }, "lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol": { "keccak256": "0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588", "urls": ["bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155", "dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol": { "keccak256": "0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4", "urls": ["bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9", "dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol": { "keccak256": "0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb", "urls": ["bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3", "dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04", "urls": ["bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00", "dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj"], "license": "GPL-3.0-only" }, "lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol": { "keccak256": "0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359", "urls": ["bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be", "dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/utils/Exec.sol": { "keccak256": "0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74", "urls": ["bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77", "dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ"], "license": "LGPL-3.0-only" }, "lib/account-abstraction-v8/contracts/interfaces/IAggregator.sol": { "keccak256": "0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf", "urls": ["bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77", "dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/IEntryPoint.sol": { "keccak256": "0x3b0423737e810dd886183ed32cfed9b45edd315f5fb3e1076fc19f86791adc64", "urls": ["bzz-raw://c43081efaa2eda581b6249053281bb58cb0c4eeb6bf87efc55d95daaec2fc931", "dweb:/ipfs/QmXRN2JnyzWZNeFMHauTnDuc7jhxGY4ZkY37HTtjXKdC87"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/INonceManager.sol": { "keccak256": "0xee493ae200b8c675bdc0da66f7ac6bb883ecea33672d7d0a95526b9eecdedf87", "urls": ["bzz-raw://979784a0333ac4ef3cc53ab9323a4b7fa574d929bd511f0eed03d3b0370db22d", "dweb:/ipfs/QmeiciN5gs4upM6vfKvrRxWiDBUzMU4uJQRRkJajhim9gX"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol": { "keccak256": "0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4", "urls": ["bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570", "dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0", "urls": ["bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85", "dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol": { "keccak256": "0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800", "urls": ["bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79", "dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK"], "license": "MIT" }, "lib/openzeppelin-contracts-v4.8.3/contracts/security/ReentrancyGuard.sol": { "keccak256": "0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc", "urls": ["bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010", "dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u"], "license": "MIT" }, "lib/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol": { "keccak256": "0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d", "urls": ["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4", "dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"], "license": "MIT" }, "lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/ERC165.sol": { "keccak256": "0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b", "urls": ["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d", "dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"], "license": "MIT" }, "lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/IERC165.sol": { "keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1", "urls": ["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f", "dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"], "license": "MIT" }, "lib/solady/src/tokens/ERC20.sol": { "keccak256": "0x1c3cdf5158b29b16ba2d2c7ff1f6d4304754605441257e198b46803f0fa9df1a", "urls": ["bzz-raw://f6ed3d15fd372495ff76439878fb5e007ae0b39da3ce3d9fd877ee8147647bb2", "dweb:/ipfs/QmZ1zC91VhPHMXAdcY8SahJMwDsC2B5q9uXFF16R5eHmkV"], "license": "MIT" }, "lib/solady/src/utils/LibBytes.sol": { "keccak256": "0x905f1c122299888350964a3bdd3dccd4b969273389b8d869f9aacb6871ff199e", "urls": ["bzz-raw://b6cff3ef7090aa48f214b960f373a33c15878f80e617443a3a4d53f130bab862", "dweb:/ipfs/QmdMEpK6ZVxUesqSpurqS9UkDnm1kAnjUeJKLN6ZWPNJnT"], "license": "MIT" }, "src/IEntryPointSimulations.sol": { "keccak256": "0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41", "urls": ["bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5", "dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t"], "license": "MIT" }, "src/PimlicoSimulations.sol": { "keccak256": "0x71bae4ed74fdd0738f48306f1955bbddbc61a25f3ea789301b6e4ef5a71dfa2f", "urls": ["bzz-raw://e44b92d0f02f4b7cf3949537e1addd246df2961cb5159848a9ed978a644a8454", "dweb:/ipfs/QmapaZaNzgJA2H5c4nFkWnQrx73FGwndxRsQFVcVpCM85W"], "license": "MIT" }, "src/v06/EntryPointGasEstimationOverride.sol": { "keccak256": "0x96c89aa516d2e9f071c0f1634a88abced225e742490e3c27bf1a417fdd9a8390", "urls": ["bzz-raw://6eb5a95767e162068d1d7af3a167129d0f2661536e52b45384c01ae9ddb6ff39", "dweb:/ipfs/QmXXEFdaGnsPbaQanfjBcXfg4LHnQCdW3x1JfNS6CeGWb5"], "license": "GPL-3.0" } }, "version": 1 }, "id": 31 }
|
|
1
|
+
{ "abi": [{ "type": "constructor", "inputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "binarySearchCallGas", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "binarySearchPaymasterVerificationGas", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "binarySearchVerificationGas", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "filterOps06", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct UserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct PimlicoSimulations.FilterOpsResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "balanceChange", "type": "uint256", "internalType": "uint256" }, { "name": "rejectedUserOps", "type": "tuple[]", "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "components": [{ "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "revertReason", "type": "bytes", "internalType": "bytes" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "filterOps07", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct PimlicoSimulations.FilterOpsResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "balanceChange", "type": "uint256", "internalType": "uint256" }, { "name": "rejectedUserOps", "type": "tuple[]", "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "components": [{ "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "revertReason", "type": "bytes", "internalType": "bytes" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "filterOps08", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct PimlicoSimulations.FilterOpsResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "balanceChange", "type": "uint256", "internalType": "uint256" }, { "name": "rejectedUserOps", "type": "tuple[]", "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "components": [{ "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "revertReason", "type": "bytes", "internalType": "bytes" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "filterOps09", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct PimlicoSimulations.FilterOpsResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "balanceChange", "type": "uint256", "internalType": "uint256" }, { "name": "rejectedUserOps", "type": "tuple[]", "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "components": [{ "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "revertReason", "type": "bytes", "internalType": "bytes" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "getBalances", "inputs": [{ "name": "addresses", "type": "address[]", "internalType": "address[]" }, { "name": "tokens", "type": "address[]", "internalType": "address[]" }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct PimlicoSimulations.AssetBalance[]", "components": [{ "name": "addr", "type": "address", "internalType": "address" }, { "name": "token", "type": "address", "internalType": "address" }, { "name": "amount", "type": "uint256", "internalType": "uint256" }] }], "stateMutability": "view" }, { "type": "function", "name": "simulateAndEstimateGas", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "result", "type": "tuple", "internalType": "struct PimlicoSimulations.SimulateAndEstimateGasResult", "components": [{ "name": "simulationResult", "type": "tuple", "internalType": "struct IEntryPointSimulations.ExecutionResult", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "targetSuccess", "type": "bool", "internalType": "bool" }, { "name": "targetResult", "type": "bytes", "internalType": "bytes" }] }, { "name": "verificationGasLimit", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }, { "name": "paymasterVerificationGasLimit", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateAssetChange06", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct UserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }, { "name": "addresses", "type": "address[]", "internalType": "address[]" }, { "name": "tokens", "type": "address[]", "internalType": "address[]" }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct PimlicoSimulations.AssetChange[]", "components": [{ "name": "addr", "type": "address", "internalType": "address" }, { "name": "token", "type": "address", "internalType": "address" }, { "name": "balanceBefore", "type": "uint256", "internalType": "uint256" }, { "name": "balanceAfter", "type": "uint256", "internalType": "uint256" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateAssetChange07", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }, { "name": "entryPointSimulations", "type": "address", "internalType": "address" }, { "name": "addresses", "type": "address[]", "internalType": "address[]" }, { "name": "tokens", "type": "address[]", "internalType": "address[]" }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct PimlicoSimulations.AssetChange[]", "components": [{ "name": "addr", "type": "address", "internalType": "address" }, { "name": "token", "type": "address", "internalType": "address" }, { "name": "balanceBefore", "type": "uint256", "internalType": "uint256" }, { "name": "balanceAfter", "type": "uint256", "internalType": "uint256" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateAssetChange08", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }, { "name": "entryPointSimulations", "type": "address", "internalType": "address" }, { "name": "addresses", "type": "address[]", "internalType": "address[]" }, { "name": "tokens", "type": "address[]", "internalType": "address[]" }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct PimlicoSimulations.AssetChange[]", "components": [{ "name": "addr", "type": "address", "internalType": "address" }, { "name": "token", "type": "address", "internalType": "address" }, { "name": "balanceBefore", "type": "uint256", "internalType": "uint256" }, { "name": "balanceAfter", "type": "uint256", "internalType": "uint256" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateEntryPointBulk", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "data", "type": "bytes[]", "internalType": "bytes[]" }], "outputs": [{ "name": "", "type": "bytes[]", "internalType": "bytes[]" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateHandleOp", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ExecutionResult", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "targetSuccess", "type": "bool", "internalType": "bool" }, { "name": "targetResult", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateValidation", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ValidationResult", "components": [{ "name": "returnInfo", "type": "tuple", "internalType": "struct IEntryPoint.ReturnInfo", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterContext", "type": "bytes", "internalType": "bytes" }] }, { "name": "senderInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "factoryInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "paymasterInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "aggregatorInfo", "type": "tuple", "internalType": "struct IEntryPoint.AggregatorStakeInfo", "components": [{ "name": "aggregator", "type": "address", "internalType": "address" }, { "name": "stakeInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }] }] }], "stateMutability": "nonpayable" }, { "type": "event", "name": "PimlicoSimulationDeployed", "inputs": [], "anonymous": false }], "bytecode": { "object": "0x60808060405234603a577f20d4cb4d83077ae7f93cbc84f032f6918d99772c5bb321c4333007d83641ab7e600080a16138e390816100408239f35b600080fdfe60a0604052600436101561001257600080fd5b60006080526080513560e01c8063141eb033146120e95780632e5a0a931461207a578063685f602614611c7a5780637134990314611b6e57806382e542ed14611b14578063861d9d5914611abb57806390d81dfb146118ab578063959c4cb7146112a45780639f2d378914611212578063a4968eab14610fee578063b21b38c814610d55578063de040de114610a41578063ef5bfc37146107a4578063f11430431461071c5763fccb5ff6146100c757600080fd5b34610491576060366003190112610491576004356001600160401b038111610491576100f79036906004016124fb565b90610100612303565b90610109612319565b9061011261285f565b5061011b6130be565b805190680100000000000000008211610704576080515482608051558083106105f4575b5060808051805251939493907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b8383106105d0575050505060805192608051916001600160a01b038060805195169216956040945b8181106101d3576101cf8787878151926101b2846123ab565b835260208301526101c1613310565b81830152519182918261269e565b0390f35b85516101df8782612419565b600181526080515b601f198801811061056257506101fe8284866135d1565b6101208136031261049157875190610215826123e1565b61021e8161232f565b825260208101356020830152888101356001600160401b03811161049157610249903690830161246c565b8983015260608101356001600160401b0381116104915761026d903690830161246c565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e08101356001600160401b038111610491576102b0903690830161246c565b60e0830152610100810135906001600160401b038211610491576102d69136910161246c565b6101008201526102e582612808565b526102ef81612808565b5084315a918a3b15610491578851907f765e827f000000000000000000000000000000000000000000000000000000008252604482018a600484015281518091526064830190602060648260051b860101930191608051905b8282106104975750505050876024830152818c8180608051940391608051905af19081610478575b5061044a5750506103c8610382612dae565b602061038f8486886135d1565b8951809481927f22cdde4c000000000000000000000000000000000000000000000000000000008352846004840152602483019061291f565b03818d5afa91821561043e5760805192610404575b50600192916103fe918951916103f283612390565b825260208201526132b8565b01610199565b90915060203d8111610437575b61041b8183612419565b60208260009281010312610434575051906103fe6103dd565b80fd5b503d610411565b88513d608051823e3d90fd5b956104666001939761046c610472949b6104665a8b319e613288565b906132ab565b9a613288565b946103fe565b60805161048491612419565b6080516104915738610370565b60805180fd5b909192936020989e9798808f9e9c9f610548909c9e999c6001946063198b82030187526101006105366105066104f48d51956001600160a01b038751168652888701518987015261012081880151918701526101208601906124d6565b606086015185820360608701526124d6565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526124d6565b920151906101008184039101526124d6565b9601920192019092919d97969d9c999b9c9a98959a610348565b60209088979598999293999694965161057a816123e1565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c0820152606060e082015260606101008201528282860101520197919097969395969492946101e7565b60026020826105e56001949a999a5186613157565b01920192019190959495610171565b6001600160ff1b03811681036106ec576001600160ff1b03831683036106ec576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b818110610674575061013f565b6080518155600181018054600292919061068d90613106565b8061069b575b505001610667565b601f81116001146106b4575060805190555b3880610693565b6106d59082608051526001601f602060805120920160051c82019101613140565b6080805182905251602081209181905590556106ad565b634e487b7160e01b6080515260116004526024608051fd5b634e487b7160e01b6080515260416004526024608051fd5b34610491576101cf61079061078161077a61076c6001600160a01b036107413661278a565b61074f97939496919761342a565b5060405197889363af32494360e01b60208601526024850161346d565b03601f198101865285612419565b16906135f4565b60208082518301019101613493565b60405191829160208352602083019061272b565b34610491576040366003190112610491576004356001600160401b038111610491576107d49036906004016124fb565b906024356001600160401b038111610491576107f49036906004016124fb565b838102939192918015818604831417156106ec576108118561243a565b9461081f6040519687612419565b80865261082e601f199161243a565b016080515b818110610a2a57505060805190815b8181106108b957866040518091602082016020835281518091526020604084019201906080515b818110610877575050500390f35b9193509160206060600192604087516001600160a01b0381511683526001600160a01b0385820151168584015201516040820152019401910191849392610869565b6108cc6108c78284886135ad565b6135bd565b608051906001600160a01b038116915b8681106108ee57505050600101610842565b86898273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0361091c6108c78487876135ad565b1603610988575050508131905b6109376108c7828a8d6135ad565b916001600160a01b036040519361094d856123ab565b86855216602084015260408301528660001981146106ec578760019361097a8e9a8661098195019b61282b565b528c61282b565b50016108dc565b6109a26108c76001600160a01b03926024956020956135ad565b16604051928380927f70a082310000000000000000000000000000000000000000000000000000000082528860048301525afa908115610a1d57608051916109ec575b5090610929565b90506020813d8211610a15575b81610a0660209383612419565b8101031261049157518b6109e5565b3d91506109f9565b6040513d608051823e3d90fd5b602090610a35612880565b82828a01015201610833565b3461049157610b5e61077a61076c6001600160a01b03610a603661278a565b604097939496919751610a72816123c6565b604051610a7e816123c6565b6080518152608051602082015260805160408201526080516060820152606060808201528152604051610ab081612390565b60008152600060208201526020820152604051610acc81612390565b60008152600060208201526040820152604051610ae881612390565b60008152600060208201526060820152608060405191610b0783612390565b81518352604051610b1781612390565b6000815260006020820152602084015201526040519788937faec321fb0000000000000000000000000000000000000000000000000000000060208601526024850161346d565b805181016020810191602081830312610491576020810151906001600160401b0382116104915701808203601f1981019290610140136104915760405190610ba5826123c6565b60208301516001600160401b038111610491578301602081019160a0919003126104915760405190610bd6826123c6565b805182526020810151602083015260408101516040830152606081015160608301526080810151906001600160401b03821161049157610c1891879101612a9a565b60808201528152610c2c8460408401613585565b9160208201928352610c418560808301613585565b90604083019182526060610c588760c08401613585565b8482019081529560bf19011261049157602080958180959481610cff60808298610ca46101409e6101206040519b610c8f8d612390565b610c9c6101008201612bc2565b8d5201613585565b848a01528181019889526040519d848f9e928f938452519201528c61016082519101528c610180858301519101528c6101a060408301519101528c6101c06060830151910152015160a06101e08d01526102008c01906124d6565b9851805160408c0152015160608a015251805160808a0152015160a088015251805160c0880152015160e0860152516001600160a01b038151166101008601520151805161012085015201516101408301520390f35b346104915760a0366003190112610491576004356001600160401b03811161049157610120600319823603011261049157610d8e612303565b610d96612319565b906064356001600160401b03811161049157610db69036906004016124fb565b6084949194356001600160401b03811161049157610dd89036906004016124fb565b6040969196519663ef5bfc3760e01b88526080518880610dfe8585898960048601612ccd565b0381305afa978815610a1d5760805198610f97575b50610ea29461076c610eba9895610e626001600160a01b0396610e546107819b9761077a9760405195869463ef5bfc3760e01b602087015260248601612ccd565b03601f198101835282612419565b6040519788937f7da0c46200000000000000000000000000000000000000000000000000000000602086015260606024860152608485019060040161291f565b306044850152838103602319016064850152906124d6565b60c081015115610f8b5760e0610edb91015160208082518301019101612bd6565b90610ee68151612e2b565b916080515b8251811015610f7d57806001600160a01b03610f096001938661282b565b5151166001600160a01b036020610f20848861282b565b510151166040610f30848861282b565b5101516040610f3f858861282b565b5101519160405193610f5085612343565b8452602084015260408301526060820152610f6b828761282b565b52610f76818661282b565b5001610eeb565b604051806101cf8682612630565b60e00151602081519101fd5b61077a9198509461076c610eba9895610e626001600160a01b0396610e546107819b97610fda610ea29c3d80608051833e610fd28183612419565b810190612bd6565b9e9750979b50509650509598505094610e13565b3461049157610ffc3661252b565b604097939592979691965196611011886123ab565b61101961342a565b8852602088019861102861289f565b8a52604089019761103761289f565b8952611074610781826110648b610e5460405193849263af32494360e01b60208501528d6024850161346d565b6001600160a01b0388168a6135f4565b8a52878787876110b98888888860405198899788977f2e5a0a930000000000000000000000000000000000000000000000000000000089526080519a60048a01613533565b0381608051305af1908115610a1d57608051916111f6575b508b5260e0810135601e19823603018112156104915781018035906001600160401b038211610491576020823603910113610491576014111561115d575b6111378a6101cf8b61114a8f604051958695602087525160606020880152608087019061272b565b9051858203601f190160408701526125b5565b9051838203601f190160608501526125b5565b9061119f939291604099989951998a9788977f9f2d37890000000000000000000000000000000000000000000000000000000089526080519a60048a01613533565b0381608051305af1918215610a1d57611137946101cf9361114a92608051916111d2575b5083529482938780808061110f565b6111f091503d80608051833e6111e88183612419565b810190612adc565b876111c3565b61120c91503d80608051833e6111e88183612419565b8c6110d1565b34610491576101cf61129061128161076c61077a6001600160a01b036112373661252b565b92958097999661124b9b959b93929361289f565b506040519b8c977fd72f25930000000000000000000000000000000000000000000000000000000060208a015260248901612a43565b60208082518301019101612adc565b6040519182916020835260208301906125b5565b34610491576060366003190112610491576004356001600160401b038111610491576112d49036906004016124fb565b906112dd612303565b906112e6612319565b906112ef61285f565b506112f86130be565b805190680100000000000000008211610704576080515482608051558083106117b3575b5060808051805251939493907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b83831061178f575050505060805192608051916001600160a01b038060805195169216956040945b81811061138f576101cf8787878151926101b2846123ab565b855161139b8782612419565b600181526080515b601f198801811061170f57506113ba828486613265565b61016081360312610491578751906113d182612374565b6113da8161232f565b825260208101356020830152888101356001600160401b03811161049157611405903690830161246c565b8983015260608101356001600160401b03811161049157611429903690830161246c565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013560e08301526101008101356101008301526101208101356001600160401b03811161049157611483903690830161246c565b610120830152610140810135906001600160401b038211610491576114aa9136910161246c565b6101408201526114b982612808565b526114c381612808565b5084315a918a3b15610491578851907f1fad948c000000000000000000000000000000000000000000000000000000008252604482018a600484015281518091526064830190602060648260051b860101930191608051905b82821061163e5750505050876024830152818c8180608051940391608051905af19081611625575b5061160357505061159c611556612dae565b6020611563848688613265565b8951809481927fa61935310000000000000000000000000000000000000000000000000000000083528460048401526024830190612cf4565b03818d5afa91821561043e57608051926115cc575b50600192916115c6918951916103f283612390565b01611376565b90915060203d81116115fc575b6115e38183612419565b60208260009281010312610434575051906115c66115b1565b503d6115d9565b956104666001939761046c61161f949b6104665a8b319e613288565b946115c6565b60805161163191612419565b608051610491578b611544565b909192936020989e9798808f9e9c9f6116f5909c9e999c6001946063198b82030187526101406116e361169b6104f48d51956001600160a01b038751168652888701518987015261016081880151918701526101608601906124d6565b6080850151608085015260a085015160a085015260c085015160c085015260e085015160e08501526101008501516101008501526101208501518482036101208601526124d6565b920151906101408184039101526124d6565b9601920192019092919d97969d9c999b9c9a98959a61151c565b60209088979598999293999694965161172781612374565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c082015260805160e0820152608051610100820152606061012082015260606101408201528282860101520197919097969395969492946113a3565b60026020826117a46001949a999a5186613157565b0192019201919095949561134e565b6001600160ff1b03811681036106ec576001600160ff1b03831683036106ec576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b818110611833575061131c565b6080518155600181018054600292919061184c90613106565b8061185a575b505001611826565b601f8111600114611873575060805190555b8980611852565b6118949082608051526001601f602060805120920160051c82019101613140565b60808051829052516020812091819055905561186c565b346104915760a0366003190112610491576004356001600160401b038111610491576101206003198236030112610491576118e4612303565b6118ec612319565b906064356001600160401b0381116104915761190c9036906004016124fb565b60843594916001600160401b038611610491576119a3611985946119b9936001600160a01b0398936119438a9536906004016124fb565b9590996040519b8c9a8b9a7fb21b38c8000000000000000000000000000000000000000000000000000000008c5260a060048d015260a48c019060040161291f565b951660248a0152166044880152868303600319016064880152612c8b565b9060031984830301608485015260805195612c8b565b0381608051305af18015610a1d57608051906119e0575b6101cf9060405191829182612630565b503d80608051833e6119f28183612419565b810190602081830312610491578051906001600160401b03821161049157019080601f8301121561049157815191611a298361243a565b91611a376040519384612419565b83835260208084019460071b8301019181831161049157602001935b828510611a67575050506101cf91506119d0565b608085830312610491576020608091604051611a8281612343565b611a8b88612bc2565b8152611a98838901612bc2565b838201526040880151604082015260608801516060820152815201940193611a53565b34610491576060366003190112610491576004356001600160401b03811161049157611b08611af16101cf9236906004016124fb565b611af9612303565b90611b02612319565b92612e97565b6040519182918261269e565b34610491576060366003190112610491576004356001600160401b03811161049157611b449036906004016124fb565b90611b4d612303565b604435906001600160a01b0382168203610491576101cf93611b0893612e97565b346104915760e036600319011261049157611b876122e8565b611b8f612303565b6044356001600160401b03811161049157611bae9036906004016124fb565b90606435926001600160401b038411610491576101206003198536030112610491576101cf94611c7561128194611c4061129097611bea61289f565b50611c2b6040519788947facbe911e00000000000000000000000000000000000000000000000000000000602087015260c0602487015260e48601916129dc565b8381036023190160448501529060040161291f565b6001600160a01b0385166064830152608435608483015260a43560a483015260c43560c483015203601f198101855284612419565b6135f4565b34610491576080366003190112610491576004356001600160401b03811161049157610160600319823603011261049157611cb3612303565b906044356001600160401b03811161049157611cd39036906004016124fb565b90926064356001600160401b03811161049157611cf49036906004016124fb565b6040959195519563ef5bfc3760e01b87526080518780611d1a85858a8960048601612ccd565b0381305afa968715610a1d5760805197612045575b5091611d62611d70926001600160a01b0395946080515060405197889463ef5bfc3760e01b602087015260248601612ccd565b03601f198101855284612419565b1691823b1561049157611ddc92611dc1916040518095819482937fd6383f94000000000000000000000000000000000000000000000000000000008452606060048501526064840190600401612cf4565b306024840152828103600319016044840152608051966124d6565b0391608051905af19081612033575b50611fef57611df8612dae565b600481511115611fab576001600160e01b0319611e1c611e17836137ff565b612dde565b167f220266b6000000000000000000000000000000000000000000000000000000008114611fa2577f462c71b200000000000000000000000000000000000000000000000000000000148015611f99575b611f91578051611e7c9161387c565b8051810160c08282031261049157611e9660608301612e18565b50611ea360808301612e18565b50611eb060a08301612a8d565b9160c0810151916001600160401b03831161049157611ed6926020809201920101612a9a565b9015611f915780602080611eef93518301019101612bd6565b90611efa8151612e2b565b916080515b8251811015610f7d57806001600160a01b03611f1d6001938661282b565b5151166001600160a01b036020611f34848861282b565b510151166040611f44848861282b565b5101516040611f53858861282b565b5101519160405193611f6485612343565b8452602084015260408301526060820152611f7f828761282b565b52611f8a818661282b565b5001611eff565b602081519101fd5b50608051611e6d565b50602081519101fd5b606460405162461bcd60e51b815260206004820152601d60248201527f556e657870656374656420726576657274206461746120666f726d61740000006044820152fd5b606460405162461bcd60e51b815260206004820152601c60248201527f73696d756c61746548616e646c654f70206d75737420726576657274000000006044820152fd5b60805161203f91612419565b82611deb565b6001600160a01b039493919750611d709261206e611d62923d80608051833e610fd28183612419565b98929495509250611d2f565b34610491576101cf61129061128161076c61077a6001600160a01b0361209f3661252b565b9295809799966120b39b959b93929361289f565b506040519b8c977f212eccc60000000000000000000000000000000000000000000000000000000060208a015260248901612a43565b34610491576060366003190112610491576121026122e8565b61210a612303565b6044356001600160401b03811161049157366023820112156104915780600401356121348161243a565b916121426040519384612419565b8183526024602084019260051b820101903682116104915760248101925b8284106122b957505050508051926121778461243a565b936121856040519586612419565b808552612194601f199161243a565b016080515b8181106122a85750506001600160a01b036080519316925b825181101561223f5760019060606121c9828661282b565b516040516121ed81610e54602082019463428557b160e11b8652896024840161283f565b5a608051926080519251918a60805191f115612220575b61220e828861282b565b52612219818761282b565b50016121b1565b503d60405190602081830101604052808252608051602083013e612204565b846040518091602082016020835281518091526040830190602060408260051b860101930191608051905b82821061227957505050500390f35b919360019193955060206122988192603f198a820301865288516124d6565b960192019201859493919261226a565b806060602080938901015201612199565b83356001600160401b038111610491576020916122dd83926024369187010161246c565b815201930192612160565b600435906001600160a01b03821682036122fe57565b600080fd5b602435906001600160a01b03821682036122fe57565b604435906001600160a01b03821682036122fe57565b35906001600160a01b03821682036122fe57565b608081019081106001600160401b0382111761235e57604052565b634e487b7160e01b600052604160045260246000fd5b61016081019081106001600160401b0382111761235e57604052565b604081019081106001600160401b0382111761235e57604052565b606081019081106001600160401b0382111761235e57604052565b60a081019081106001600160401b0382111761235e57604052565b61012081019081106001600160401b0382111761235e57604052565b61010081019081106001600160401b0382111761235e57604052565b90601f801991011681019081106001600160401b0382111761235e57604052565b6001600160401b03811161235e5760051b60200190565b6001600160401b03811161235e57601f01601f191660200190565b81601f820112156122fe5780359061248382612451565b926124916040519485612419565b828452602083830101116122fe57816000926020809301838601378301015290565b60005b8381106124c65750506000910152565b81810151838201526020016124b6565b906020916124ef815180928185528580860191016124b3565b601f01601f1916010190565b9181601f840112156122fe578235916001600160401b0383116122fe576020808501948460051b0101116122fe57565b60e06003198201126122fe576004356001600160a01b03811681036122fe57916024356001600160a01b03811681036122fe57916044356001600160401b0381116122fe578161257d916004016124fb565b92909291606435906001600160401b0382116122fe576101209082900360031901126122fe57600401906084359060a4359060c43590565b908151600281101561261a57815260806040806125ff81602087015160a06020880152805160a08801526020810151151560c08801520151606060e08701526101008601906124d6565b94015180518285015260208101516060850152015191015290565b634e487b7160e01b600052602160045260246000fd5b602060408183019282815284518094520192019060005b8181106126545750505090565b90919260206080600192606087516001600160a01b0381511683526001600160a01b0385820151168584015260408101516040840152015160608201520194019101919091612647565b602081526040608082019280516020840152602081015182840152015191606080830152825180915260a0820191602060a08360051b8301019401926000915b8383106126ed57505050505090565b909192939460208061271c600193609f198682030187526040838b5180518452015191818582015201906124d6565b970193019301919392906126de565b9061010060e061278793805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e082015201906124d6565b90565b60806003198201126122fe576004356001600160a01b03811681036122fe57916024356001600160a01b03811681036122fe57916044356001600160401b0381116122fe57816127dc916004016124fb565b92909291606435906001600160401b0382116122fe576101209082900360031901126122fe5760040190565b8051156128155760200190565b634e487b7160e01b600052603260045260246000fd5b80518210156128155760209160051b010190565b6040906001600160a01b03612787949316815281602082015201906124d6565b6040519061286c826123ab565b606060408360008152600060208201520152565b6040519061288d826123ab565b60006040838281528260208201520152565b604051906128ac826123ab565b81600081526128b961285f565b602082015260406128c8612880565b910152565b9035601e19823603018112156122fe5701602081359101916001600160401b0382116122fe5781360383136122fe57565b908060209392818452848401376000828201840152601f01601f1916010190565b612787916001600160a01b036129348361232f565b168152602082013560208201526129cd6129c161298861296d61295a60408701876128cd565b61012060408801526101208701916128fe565b61297a60608701876128cd565b9086830360608801526128fe565b6080850135608085015260a085013560a085015260c085013560c08501526129b360e08601866128cd565b9085830360e08701526128fe565b926101008101906128cd565b916101008185039101526128fe565b90602083828152019060208160051b85010193836000915b838310612a045750505050505090565b909192939495601f19828203018652863561011e19843603018112156122fe576020612a356001938683940161291f565b9801960194930191906129f4565b9397969592612a7890612a6a6001600160a01b039360a0989560c0895260c08901916129dc565b90868203602088015261291f565b97166040840152606083015260808201520152565b519081151582036122fe57565b81601f820112156122fe578051612ab081612451565b92612abe6040519485612419565b818452602082840101116122fe5761278791602080850191016124b3565b6020818303126122fe578051906001600160401b0382116122fe57018082039160a083126122fe5760405192612b11846123ab565b825160028110156122fe57845260208301516001600160401b0381116122fe5783016060818403126122fe5760405190612b4a826123ab565b80518252612b5a60208201612a8d565b60208301526040810151936001600160401b0385116122fe57606094612b809201612a9a565b60408201526020850152603f1901126122fe57608060405191612ba2836123ab565b604081015183526060810151602084015201516040820152604082015290565b51906001600160a01b03821682036122fe57565b6020818303126122fe578051906001600160401b0382116122fe570181601f820112156122fe57805190612c098261243a565b92612c176040519485612419565b828452602060608186019402830101918183116122fe57602001925b828410612c41575050505090565b6060848303126122fe576020606091604051612c5c816123ab565b612c6587612bc2565b8152612c72838801612bc2565b8382015260408701516040820152815201930192612c33565b9160209082815201919060005b818110612ca55750505090565b9091926020806001926001600160a01b03612cbf8861232f565b168152019401929101612c98565b9290612ce6906127879593604086526040860191612c8b565b926020818503910152612c8b565b612787916001600160a01b03612d098361232f565b16815260208201356020820152612d9f612d93612d4261296d612d2f60408701876128cd565b61016060408801526101608701916128fe565b6080850135608085015260a085013560a085015260c085013560c085015260e085013560e0850152610100850135610100850152612d846101208601866128cd565b908583036101208701526128fe565b926101408101906128cd565b916101408185039101526128fe565b3d15612dd9573d90612dbf82612451565b91612dcd6040519384612419565b82523d6000602084013e565b606090565b90602082519201516001600160e01b031981169260048110612dfe575050565b6001600160e01b0319929350829060040360031b1b161690565b519065ffffffffffff821682036122fe57565b90612e358261243a565b612e426040519182612419565b8281528092612e53601f199161243a565b019060005b828110612e6457505050565b602090604051612e7381612343565b60008152600083820152600060408201526000606082015282828501015201612e58565b90926001600160a01b0390612eaa61285f565b501690813b156122fe57612f3793604051937fd12e825d000000000000000000000000000000000000000000000000000000008552600093848660048183855af16130a9575b8495506001600160a01b0360405197889586957ffccb5ff60000000000000000000000000000000000000000000000000000000087526060600488015260648701916129dc565b921660248401526044830152038183305af191821561309c578192612f5b57505090565b9091503d8083833e612f6d8183612419565b810190602081830312613090578051906001600160401b0382116130985701916060838303126104345760405192612fa4846123ab565b80518452602081015160208501526040810151906001600160401b038211613090570182601f8201121561309457805191612fde8361243a565b93612fec6040519586612419565b83855260208086019460051b840101928184116130905760208101945b84861061301e57505050505050604082015290565b85516001600160401b03811161308c5782016040818503601f19011261308c576040519061304b82612390565b602081015182526040810151906001600160401b038211613088579161307986602080969481960101612a9a565b83820152815201950194613009565b8680fd5b8480fd5b8280fd5b5080fd5b8380fd5b50604051903d90823e3d90fd5b939094816130b691612419565b928490612ef0565b604051906130cd602083612419565b600080835282815b8281106130e157505050565b6020906040516130f081612390565b60008152606083820152828285010152016130d5565b90600182811c92168015613136575b602083101461312057565b634e487b7160e01b600052602260045260246000fd5b91607f1691613115565b81811061314b575050565b60008155600101613140565b600160209193929384518155019201519182516001600160401b03811161235e576131828254613106565b601f8111613228575b506020601f82116001146131c657819293946000926131bb575b50508160011b916000199060031b1c1916179055565b0151905038806131a5565b601f1982169083600052806000209160005b818110613210575095836001959697106131f7575b505050811b019055565b015160001960f88460031b161c191690553880806131ed565b9192602060018192868b0151815501940192016131d8565b61325590836000526020600020601f840160051c8101916020851061325b575b601f0160051c0190613140565b3861318b565b9091508190613248565b91908110156128155760051b8101359061015e19813603018212156122fe570190565b9190820391821161329557565b634e487b7160e01b600052601160045260246000fd5b9190820180921161329557565b600054906801000000000000000082101561235e576001820180600055821015612815576000805261330e9160011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301613157565b565b6000549061331d8261243a565b9161332b6040519384612419565b8083526000808052907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563602085015b8284106133675750505050565b60405161337381612390565b8254815260405160018401805460009161338c82613106565b808552916001811690811561340557506001146133cd575b505092600292826133bb6020946001970382612419565b8382015281520192019301929061335a565b6000908152602081209092505b8183106133ef575050810160200182826133a4565b60018160209254838688010152019201916133da565b60ff191660208087019190915292151560051b850190920192508491508390506133a4565b60405190613437826123fd565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b916127879391613485916040855260408501916129dc565b91602081840391015261291f565b6020818303126122fe578051906001600160401b0382116122fe5701610100818303126122fe57604051916134c7836123fd565b815183526020820151602084015260408201516040840152606082015160608401526080820151608084015260a082015160a084015261350960c08301612a8d565b60c084015260e08201516001600160401b0381116122fe5761352b9201612a9a565b60e082015290565b94919260c096999897946001600160a01b0361357695816135689516895216602088015260e0604088015260e08701916129dc565b90848203606086015261291f565b95608083015260a08201520152565b91908260409103126122fe5760405161359d81612390565b6020808294805184520151910152565b91908110156128155760051b0190565b356001600160a01b03811681036122fe5790565b91908110156128155760051b8101359061011e19813603018212156122fe570190565b60405163428557b160e11b6020820190815260009485948594859261362291869161076c916024840161283f565b5a935193f1613795573d60405191602082840101604052818352602083013e600481511061372b5763428557b160e11b6001600160e01b0319613667611e17846137ff565b16146136c15780516136789161387c565b805181016040828203126122fe5761369260208301612a8d565b916040810151916001600160401b0383116122fe576136b8926020809201920101612a9a565b9015611f915790565b608460405162461bcd60e51b815260206004820152603d60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20776974682044656c6567617465416e64526576657274206572726f720000006064820152fd5b608460405162461bcd60e51b815260206004820152602a60248201527f44656c6567617465416e6452657665727420726576657274206461746120697360448201527f20746f6f2073686f7274000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602c60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20617320657870656374656400000000000000000000000000000000000000006064820152fd5b9060009160049060609381516004811115613874575b801561386c575b5082811061382957505050565b6040519450918290039101601f8201601f19165b8181015185820152601f1901908115613856579061383d565b5050604081840160006020820152016040528252565b90503861381c565b925082613815565b91906004926060938151838111156138a5575b600481111561386c575082811061382957505050565b92508261388f56fea264697066735822122071ced1903ff38b4a91a933cab9ad45345d238a5f16de092c27c281e92b4f753c64736f6c634300081c0033", "sourceMap": "1285:22343:37:-:0;;;;;;;1702:27;;;;1285:22343;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x60a0604052600436101561001257600080fd5b60006080526080513560e01c8063141eb033146120e95780632e5a0a931461207a578063685f602614611c7a5780637134990314611b6e57806382e542ed14611b14578063861d9d5914611abb57806390d81dfb146118ab578063959c4cb7146112a45780639f2d378914611212578063a4968eab14610fee578063b21b38c814610d55578063de040de114610a41578063ef5bfc37146107a4578063f11430431461071c5763fccb5ff6146100c757600080fd5b34610491576060366003190112610491576004356001600160401b038111610491576100f79036906004016124fb565b90610100612303565b90610109612319565b9061011261285f565b5061011b6130be565b805190680100000000000000008211610704576080515482608051558083106105f4575b5060808051805251939493907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b8383106105d0575050505060805192608051916001600160a01b038060805195169216956040945b8181106101d3576101cf8787878151926101b2846123ab565b835260208301526101c1613310565b81830152519182918261269e565b0390f35b85516101df8782612419565b600181526080515b601f198801811061056257506101fe8284866135d1565b6101208136031261049157875190610215826123e1565b61021e8161232f565b825260208101356020830152888101356001600160401b03811161049157610249903690830161246c565b8983015260608101356001600160401b0381116104915761026d903690830161246c565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e08101356001600160401b038111610491576102b0903690830161246c565b60e0830152610100810135906001600160401b038211610491576102d69136910161246c565b6101008201526102e582612808565b526102ef81612808565b5084315a918a3b15610491578851907f765e827f000000000000000000000000000000000000000000000000000000008252604482018a600484015281518091526064830190602060648260051b860101930191608051905b8282106104975750505050876024830152818c8180608051940391608051905af19081610478575b5061044a5750506103c8610382612dae565b602061038f8486886135d1565b8951809481927f22cdde4c000000000000000000000000000000000000000000000000000000008352846004840152602483019061291f565b03818d5afa91821561043e5760805192610404575b50600192916103fe918951916103f283612390565b825260208201526132b8565b01610199565b90915060203d8111610437575b61041b8183612419565b60208260009281010312610434575051906103fe6103dd565b80fd5b503d610411565b88513d608051823e3d90fd5b956104666001939761046c610472949b6104665a8b319e613288565b906132ab565b9a613288565b946103fe565b60805161048491612419565b6080516104915738610370565b60805180fd5b909192936020989e9798808f9e9c9f610548909c9e999c6001946063198b82030187526101006105366105066104f48d51956001600160a01b038751168652888701518987015261012081880151918701526101208601906124d6565b606086015185820360608701526124d6565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526124d6565b920151906101008184039101526124d6565b9601920192019092919d97969d9c999b9c9a98959a610348565b60209088979598999293999694965161057a816123e1565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c0820152606060e082015260606101008201528282860101520197919097969395969492946101e7565b60026020826105e56001949a999a5186613157565b01920192019190959495610171565b6001600160ff1b03811681036106ec576001600160ff1b03831683036106ec576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b818110610674575061013f565b6080518155600181018054600292919061068d90613106565b8061069b575b505001610667565b601f81116001146106b4575060805190555b3880610693565b6106d59082608051526001601f602060805120920160051c82019101613140565b6080805182905251602081209181905590556106ad565b634e487b7160e01b6080515260116004526024608051fd5b634e487b7160e01b6080515260416004526024608051fd5b34610491576101cf61079061078161077a61076c6001600160a01b036107413661278a565b61074f97939496919761342a565b5060405197889363af32494360e01b60208601526024850161346d565b03601f198101865285612419565b16906135f4565b60208082518301019101613493565b60405191829160208352602083019061272b565b34610491576040366003190112610491576004356001600160401b038111610491576107d49036906004016124fb565b906024356001600160401b038111610491576107f49036906004016124fb565b838102939192918015818604831417156106ec576108118561243a565b9461081f6040519687612419565b80865261082e601f199161243a565b016080515b818110610a2a57505060805190815b8181106108b957866040518091602082016020835281518091526020604084019201906080515b818110610877575050500390f35b9193509160206060600192604087516001600160a01b0381511683526001600160a01b0385820151168584015201516040820152019401910191849392610869565b6108cc6108c78284886135ad565b6135bd565b608051906001600160a01b038116915b8681106108ee57505050600101610842565b86898273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0361091c6108c78487876135ad565b1603610988575050508131905b6109376108c7828a8d6135ad565b916001600160a01b036040519361094d856123ab565b86855216602084015260408301528660001981146106ec578760019361097a8e9a8661098195019b61282b565b528c61282b565b50016108dc565b6109a26108c76001600160a01b03926024956020956135ad565b16604051928380927f70a082310000000000000000000000000000000000000000000000000000000082528860048301525afa908115610a1d57608051916109ec575b5090610929565b90506020813d8211610a15575b81610a0660209383612419565b8101031261049157518b6109e5565b3d91506109f9565b6040513d608051823e3d90fd5b602090610a35612880565b82828a01015201610833565b3461049157610b5e61077a61076c6001600160a01b03610a603661278a565b604097939496919751610a72816123c6565b604051610a7e816123c6565b6080518152608051602082015260805160408201526080516060820152606060808201528152604051610ab081612390565b60008152600060208201526020820152604051610acc81612390565b60008152600060208201526040820152604051610ae881612390565b60008152600060208201526060820152608060405191610b0783612390565b81518352604051610b1781612390565b6000815260006020820152602084015201526040519788937faec321fb0000000000000000000000000000000000000000000000000000000060208601526024850161346d565b805181016020810191602081830312610491576020810151906001600160401b0382116104915701808203601f1981019290610140136104915760405190610ba5826123c6565b60208301516001600160401b038111610491578301602081019160a0919003126104915760405190610bd6826123c6565b805182526020810151602083015260408101516040830152606081015160608301526080810151906001600160401b03821161049157610c1891879101612a9a565b60808201528152610c2c8460408401613585565b9160208201928352610c418560808301613585565b90604083019182526060610c588760c08401613585565b8482019081529560bf19011261049157602080958180959481610cff60808298610ca46101409e6101206040519b610c8f8d612390565b610c9c6101008201612bc2565b8d5201613585565b848a01528181019889526040519d848f9e928f938452519201528c61016082519101528c610180858301519101528c6101a060408301519101528c6101c06060830151910152015160a06101e08d01526102008c01906124d6565b9851805160408c0152015160608a015251805160808a0152015160a088015251805160c0880152015160e0860152516001600160a01b038151166101008601520151805161012085015201516101408301520390f35b346104915760a0366003190112610491576004356001600160401b03811161049157610120600319823603011261049157610d8e612303565b610d96612319565b906064356001600160401b03811161049157610db69036906004016124fb565b6084949194356001600160401b03811161049157610dd89036906004016124fb565b6040969196519663ef5bfc3760e01b88526080518880610dfe8585898960048601612ccd565b0381305afa978815610a1d5760805198610f97575b50610ea29461076c610eba9895610e626001600160a01b0396610e546107819b9761077a9760405195869463ef5bfc3760e01b602087015260248601612ccd565b03601f198101835282612419565b6040519788937f7da0c46200000000000000000000000000000000000000000000000000000000602086015260606024860152608485019060040161291f565b306044850152838103602319016064850152906124d6565b60c081015115610f8b5760e0610edb91015160208082518301019101612bd6565b90610ee68151612e2b565b916080515b8251811015610f7d57806001600160a01b03610f096001938661282b565b5151166001600160a01b036020610f20848861282b565b510151166040610f30848861282b565b5101516040610f3f858861282b565b5101519160405193610f5085612343565b8452602084015260408301526060820152610f6b828761282b565b52610f76818661282b565b5001610eeb565b604051806101cf8682612630565b60e00151602081519101fd5b61077a9198509461076c610eba9895610e626001600160a01b0396610e546107819b97610fda610ea29c3d80608051833e610fd28183612419565b810190612bd6565b9e9750979b50509650509598505094610e13565b3461049157610ffc3661252b565b604097939592979691965196611011886123ab565b61101961342a565b8852602088019861102861289f565b8a52604089019761103761289f565b8952611074610781826110648b610e5460405193849263af32494360e01b60208501528d6024850161346d565b6001600160a01b0388168a6135f4565b8a52878787876110b98888888860405198899788977f2e5a0a930000000000000000000000000000000000000000000000000000000089526080519a60048a01613533565b0381608051305af1908115610a1d57608051916111f6575b508b5260e0810135601e19823603018112156104915781018035906001600160401b038211610491576020823603910113610491576014111561115d575b6111378a6101cf8b61114a8f604051958695602087525160606020880152608087019061272b565b9051858203601f190160408701526125b5565b9051838203601f190160608501526125b5565b9061119f939291604099989951998a9788977f9f2d37890000000000000000000000000000000000000000000000000000000089526080519a60048a01613533565b0381608051305af1918215610a1d57611137946101cf9361114a92608051916111d2575b5083529482938780808061110f565b6111f091503d80608051833e6111e88183612419565b810190612adc565b876111c3565b61120c91503d80608051833e6111e88183612419565b8c6110d1565b34610491576101cf61129061128161076c61077a6001600160a01b036112373661252b565b92958097999661124b9b959b93929361289f565b506040519b8c977fd72f25930000000000000000000000000000000000000000000000000000000060208a015260248901612a43565b60208082518301019101612adc565b6040519182916020835260208301906125b5565b34610491576060366003190112610491576004356001600160401b038111610491576112d49036906004016124fb565b906112dd612303565b906112e6612319565b906112ef61285f565b506112f86130be565b805190680100000000000000008211610704576080515482608051558083106117b3575b5060808051805251939493907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b83831061178f575050505060805192608051916001600160a01b038060805195169216956040945b81811061138f576101cf8787878151926101b2846123ab565b855161139b8782612419565b600181526080515b601f198801811061170f57506113ba828486613265565b61016081360312610491578751906113d182612374565b6113da8161232f565b825260208101356020830152888101356001600160401b03811161049157611405903690830161246c565b8983015260608101356001600160401b03811161049157611429903690830161246c565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013560e08301526101008101356101008301526101208101356001600160401b03811161049157611483903690830161246c565b610120830152610140810135906001600160401b038211610491576114aa9136910161246c565b6101408201526114b982612808565b526114c381612808565b5084315a918a3b15610491578851907f1fad948c000000000000000000000000000000000000000000000000000000008252604482018a600484015281518091526064830190602060648260051b860101930191608051905b82821061163e5750505050876024830152818c8180608051940391608051905af19081611625575b5061160357505061159c611556612dae565b6020611563848688613265565b8951809481927fa61935310000000000000000000000000000000000000000000000000000000083528460048401526024830190612cf4565b03818d5afa91821561043e57608051926115cc575b50600192916115c6918951916103f283612390565b01611376565b90915060203d81116115fc575b6115e38183612419565b60208260009281010312610434575051906115c66115b1565b503d6115d9565b956104666001939761046c61161f949b6104665a8b319e613288565b946115c6565b60805161163191612419565b608051610491578b611544565b909192936020989e9798808f9e9c9f6116f5909c9e999c6001946063198b82030187526101406116e361169b6104f48d51956001600160a01b038751168652888701518987015261016081880151918701526101608601906124d6565b6080850151608085015260a085015160a085015260c085015160c085015260e085015160e08501526101008501516101008501526101208501518482036101208601526124d6565b920151906101408184039101526124d6565b9601920192019092919d97969d9c999b9c9a98959a61151c565b60209088979598999293999694965161172781612374565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c082015260805160e0820152608051610100820152606061012082015260606101408201528282860101520197919097969395969492946113a3565b60026020826117a46001949a999a5186613157565b0192019201919095949561134e565b6001600160ff1b03811681036106ec576001600160ff1b03831683036106ec576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b818110611833575061131c565b6080518155600181018054600292919061184c90613106565b8061185a575b505001611826565b601f8111600114611873575060805190555b8980611852565b6118949082608051526001601f602060805120920160051c82019101613140565b60808051829052516020812091819055905561186c565b346104915760a0366003190112610491576004356001600160401b038111610491576101206003198236030112610491576118e4612303565b6118ec612319565b906064356001600160401b0381116104915761190c9036906004016124fb565b60843594916001600160401b038611610491576119a3611985946119b9936001600160a01b0398936119438a9536906004016124fb565b9590996040519b8c9a8b9a7fb21b38c8000000000000000000000000000000000000000000000000000000008c5260a060048d015260a48c019060040161291f565b951660248a0152166044880152868303600319016064880152612c8b565b9060031984830301608485015260805195612c8b565b0381608051305af18015610a1d57608051906119e0575b6101cf9060405191829182612630565b503d80608051833e6119f28183612419565b810190602081830312610491578051906001600160401b03821161049157019080601f8301121561049157815191611a298361243a565b91611a376040519384612419565b83835260208084019460071b8301019181831161049157602001935b828510611a67575050506101cf91506119d0565b608085830312610491576020608091604051611a8281612343565b611a8b88612bc2565b8152611a98838901612bc2565b838201526040880151604082015260608801516060820152815201940193611a53565b34610491576060366003190112610491576004356001600160401b03811161049157611b08611af16101cf9236906004016124fb565b611af9612303565b90611b02612319565b92612e97565b6040519182918261269e565b34610491576060366003190112610491576004356001600160401b03811161049157611b449036906004016124fb565b90611b4d612303565b604435906001600160a01b0382168203610491576101cf93611b0893612e97565b346104915760e036600319011261049157611b876122e8565b611b8f612303565b6044356001600160401b03811161049157611bae9036906004016124fb565b90606435926001600160401b038411610491576101206003198536030112610491576101cf94611c7561128194611c4061129097611bea61289f565b50611c2b6040519788947facbe911e00000000000000000000000000000000000000000000000000000000602087015260c0602487015260e48601916129dc565b8381036023190160448501529060040161291f565b6001600160a01b0385166064830152608435608483015260a43560a483015260c43560c483015203601f198101855284612419565b6135f4565b34610491576080366003190112610491576004356001600160401b03811161049157610160600319823603011261049157611cb3612303565b906044356001600160401b03811161049157611cd39036906004016124fb565b90926064356001600160401b03811161049157611cf49036906004016124fb565b6040959195519563ef5bfc3760e01b87526080518780611d1a85858a8960048601612ccd565b0381305afa968715610a1d5760805197612045575b5091611d62611d70926001600160a01b0395946080515060405197889463ef5bfc3760e01b602087015260248601612ccd565b03601f198101855284612419565b1691823b1561049157611ddc92611dc1916040518095819482937fd6383f94000000000000000000000000000000000000000000000000000000008452606060048501526064840190600401612cf4565b306024840152828103600319016044840152608051966124d6565b0391608051905af19081612033575b50611fef57611df8612dae565b600481511115611fab576001600160e01b0319611e1c611e17836137ff565b612dde565b167f220266b6000000000000000000000000000000000000000000000000000000008114611fa2577f462c71b200000000000000000000000000000000000000000000000000000000148015611f99575b611f91578051611e7c9161387c565b8051810160c08282031261049157611e9660608301612e18565b50611ea360808301612e18565b50611eb060a08301612a8d565b9160c0810151916001600160401b03831161049157611ed6926020809201920101612a9a565b9015611f915780602080611eef93518301019101612bd6565b90611efa8151612e2b565b916080515b8251811015610f7d57806001600160a01b03611f1d6001938661282b565b5151166001600160a01b036020611f34848861282b565b510151166040611f44848861282b565b5101516040611f53858861282b565b5101519160405193611f6485612343565b8452602084015260408301526060820152611f7f828761282b565b52611f8a818661282b565b5001611eff565b602081519101fd5b50608051611e6d565b50602081519101fd5b606460405162461bcd60e51b815260206004820152601d60248201527f556e657870656374656420726576657274206461746120666f726d61740000006044820152fd5b606460405162461bcd60e51b815260206004820152601c60248201527f73696d756c61746548616e646c654f70206d75737420726576657274000000006044820152fd5b60805161203f91612419565b82611deb565b6001600160a01b039493919750611d709261206e611d62923d80608051833e610fd28183612419565b98929495509250611d2f565b34610491576101cf61129061128161076c61077a6001600160a01b0361209f3661252b565b9295809799966120b39b959b93929361289f565b506040519b8c977f212eccc60000000000000000000000000000000000000000000000000000000060208a015260248901612a43565b34610491576060366003190112610491576121026122e8565b61210a612303565b6044356001600160401b03811161049157366023820112156104915780600401356121348161243a565b916121426040519384612419565b8183526024602084019260051b820101903682116104915760248101925b8284106122b957505050508051926121778461243a565b936121856040519586612419565b808552612194601f199161243a565b016080515b8181106122a85750506001600160a01b036080519316925b825181101561223f5760019060606121c9828661282b565b516040516121ed81610e54602082019463428557b160e11b8652896024840161283f565b5a608051926080519251918a60805191f115612220575b61220e828861282b565b52612219818761282b565b50016121b1565b503d60405190602081830101604052808252608051602083013e612204565b846040518091602082016020835281518091526040830190602060408260051b860101930191608051905b82821061227957505050500390f35b919360019193955060206122988192603f198a820301865288516124d6565b960192019201859493919261226a565b806060602080938901015201612199565b83356001600160401b038111610491576020916122dd83926024369187010161246c565b815201930192612160565b600435906001600160a01b03821682036122fe57565b600080fd5b602435906001600160a01b03821682036122fe57565b604435906001600160a01b03821682036122fe57565b35906001600160a01b03821682036122fe57565b608081019081106001600160401b0382111761235e57604052565b634e487b7160e01b600052604160045260246000fd5b61016081019081106001600160401b0382111761235e57604052565b604081019081106001600160401b0382111761235e57604052565b606081019081106001600160401b0382111761235e57604052565b60a081019081106001600160401b0382111761235e57604052565b61012081019081106001600160401b0382111761235e57604052565b61010081019081106001600160401b0382111761235e57604052565b90601f801991011681019081106001600160401b0382111761235e57604052565b6001600160401b03811161235e5760051b60200190565b6001600160401b03811161235e57601f01601f191660200190565b81601f820112156122fe5780359061248382612451565b926124916040519485612419565b828452602083830101116122fe57816000926020809301838601378301015290565b60005b8381106124c65750506000910152565b81810151838201526020016124b6565b906020916124ef815180928185528580860191016124b3565b601f01601f1916010190565b9181601f840112156122fe578235916001600160401b0383116122fe576020808501948460051b0101116122fe57565b60e06003198201126122fe576004356001600160a01b03811681036122fe57916024356001600160a01b03811681036122fe57916044356001600160401b0381116122fe578161257d916004016124fb565b92909291606435906001600160401b0382116122fe576101209082900360031901126122fe57600401906084359060a4359060c43590565b908151600281101561261a57815260806040806125ff81602087015160a06020880152805160a08801526020810151151560c08801520151606060e08701526101008601906124d6565b94015180518285015260208101516060850152015191015290565b634e487b7160e01b600052602160045260246000fd5b602060408183019282815284518094520192019060005b8181106126545750505090565b90919260206080600192606087516001600160a01b0381511683526001600160a01b0385820151168584015260408101516040840152015160608201520194019101919091612647565b602081526040608082019280516020840152602081015182840152015191606080830152825180915260a0820191602060a08360051b8301019401926000915b8383106126ed57505050505090565b909192939460208061271c600193609f198682030187526040838b5180518452015191818582015201906124d6565b970193019301919392906126de565b9061010060e061278793805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e082015201906124d6565b90565b60806003198201126122fe576004356001600160a01b03811681036122fe57916024356001600160a01b03811681036122fe57916044356001600160401b0381116122fe57816127dc916004016124fb565b92909291606435906001600160401b0382116122fe576101209082900360031901126122fe5760040190565b8051156128155760200190565b634e487b7160e01b600052603260045260246000fd5b80518210156128155760209160051b010190565b6040906001600160a01b03612787949316815281602082015201906124d6565b6040519061286c826123ab565b606060408360008152600060208201520152565b6040519061288d826123ab565b60006040838281528260208201520152565b604051906128ac826123ab565b81600081526128b961285f565b602082015260406128c8612880565b910152565b9035601e19823603018112156122fe5701602081359101916001600160401b0382116122fe5781360383136122fe57565b908060209392818452848401376000828201840152601f01601f1916010190565b612787916001600160a01b036129348361232f565b168152602082013560208201526129cd6129c161298861296d61295a60408701876128cd565b61012060408801526101208701916128fe565b61297a60608701876128cd565b9086830360608801526128fe565b6080850135608085015260a085013560a085015260c085013560c08501526129b360e08601866128cd565b9085830360e08701526128fe565b926101008101906128cd565b916101008185039101526128fe565b90602083828152019060208160051b85010193836000915b838310612a045750505050505090565b909192939495601f19828203018652863561011e19843603018112156122fe576020612a356001938683940161291f565b9801960194930191906129f4565b9397969592612a7890612a6a6001600160a01b039360a0989560c0895260c08901916129dc565b90868203602088015261291f565b97166040840152606083015260808201520152565b519081151582036122fe57565b81601f820112156122fe578051612ab081612451565b92612abe6040519485612419565b818452602082840101116122fe5761278791602080850191016124b3565b6020818303126122fe578051906001600160401b0382116122fe57018082039160a083126122fe5760405192612b11846123ab565b825160028110156122fe57845260208301516001600160401b0381116122fe5783016060818403126122fe5760405190612b4a826123ab565b80518252612b5a60208201612a8d565b60208301526040810151936001600160401b0385116122fe57606094612b809201612a9a565b60408201526020850152603f1901126122fe57608060405191612ba2836123ab565b604081015183526060810151602084015201516040820152604082015290565b51906001600160a01b03821682036122fe57565b6020818303126122fe578051906001600160401b0382116122fe570181601f820112156122fe57805190612c098261243a565b92612c176040519485612419565b828452602060608186019402830101918183116122fe57602001925b828410612c41575050505090565b6060848303126122fe576020606091604051612c5c816123ab565b612c6587612bc2565b8152612c72838801612bc2565b8382015260408701516040820152815201930192612c33565b9160209082815201919060005b818110612ca55750505090565b9091926020806001926001600160a01b03612cbf8861232f565b168152019401929101612c98565b9290612ce6906127879593604086526040860191612c8b565b926020818503910152612c8b565b612787916001600160a01b03612d098361232f565b16815260208201356020820152612d9f612d93612d4261296d612d2f60408701876128cd565b61016060408801526101608701916128fe565b6080850135608085015260a085013560a085015260c085013560c085015260e085013560e0850152610100850135610100850152612d846101208601866128cd565b908583036101208701526128fe565b926101408101906128cd565b916101408185039101526128fe565b3d15612dd9573d90612dbf82612451565b91612dcd6040519384612419565b82523d6000602084013e565b606090565b90602082519201516001600160e01b031981169260048110612dfe575050565b6001600160e01b0319929350829060040360031b1b161690565b519065ffffffffffff821682036122fe57565b90612e358261243a565b612e426040519182612419565b8281528092612e53601f199161243a565b019060005b828110612e6457505050565b602090604051612e7381612343565b60008152600083820152600060408201526000606082015282828501015201612e58565b90926001600160a01b0390612eaa61285f565b501690813b156122fe57612f3793604051937fd12e825d000000000000000000000000000000000000000000000000000000008552600093848660048183855af16130a9575b8495506001600160a01b0360405197889586957ffccb5ff60000000000000000000000000000000000000000000000000000000087526060600488015260648701916129dc565b921660248401526044830152038183305af191821561309c578192612f5b57505090565b9091503d8083833e612f6d8183612419565b810190602081830312613090578051906001600160401b0382116130985701916060838303126104345760405192612fa4846123ab565b80518452602081015160208501526040810151906001600160401b038211613090570182601f8201121561309457805191612fde8361243a565b93612fec6040519586612419565b83855260208086019460051b840101928184116130905760208101945b84861061301e57505050505050604082015290565b85516001600160401b03811161308c5782016040818503601f19011261308c576040519061304b82612390565b602081015182526040810151906001600160401b038211613088579161307986602080969481960101612a9a565b83820152815201950194613009565b8680fd5b8480fd5b8280fd5b5080fd5b8380fd5b50604051903d90823e3d90fd5b939094816130b691612419565b928490612ef0565b604051906130cd602083612419565b600080835282815b8281106130e157505050565b6020906040516130f081612390565b60008152606083820152828285010152016130d5565b90600182811c92168015613136575b602083101461312057565b634e487b7160e01b600052602260045260246000fd5b91607f1691613115565b81811061314b575050565b60008155600101613140565b600160209193929384518155019201519182516001600160401b03811161235e576131828254613106565b601f8111613228575b506020601f82116001146131c657819293946000926131bb575b50508160011b916000199060031b1c1916179055565b0151905038806131a5565b601f1982169083600052806000209160005b818110613210575095836001959697106131f7575b505050811b019055565b015160001960f88460031b161c191690553880806131ed565b9192602060018192868b0151815501940192016131d8565b61325590836000526020600020601f840160051c8101916020851061325b575b601f0160051c0190613140565b3861318b565b9091508190613248565b91908110156128155760051b8101359061015e19813603018212156122fe570190565b9190820391821161329557565b634e487b7160e01b600052601160045260246000fd5b9190820180921161329557565b600054906801000000000000000082101561235e576001820180600055821015612815576000805261330e9160011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301613157565b565b6000549061331d8261243a565b9161332b6040519384612419565b8083526000808052907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563602085015b8284106133675750505050565b60405161337381612390565b8254815260405160018401805460009161338c82613106565b808552916001811690811561340557506001146133cd575b505092600292826133bb6020946001970382612419565b8382015281520192019301929061335a565b6000908152602081209092505b8183106133ef575050810160200182826133a4565b60018160209254838688010152019201916133da565b60ff191660208087019190915292151560051b850190920192508491508390506133a4565b60405190613437826123fd565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b916127879391613485916040855260408501916129dc565b91602081840391015261291f565b6020818303126122fe578051906001600160401b0382116122fe5701610100818303126122fe57604051916134c7836123fd565b815183526020820151602084015260408201516040840152606082015160608401526080820151608084015260a082015160a084015261350960c08301612a8d565b60c084015260e08201516001600160401b0381116122fe5761352b9201612a9a565b60e082015290565b94919260c096999897946001600160a01b0361357695816135689516895216602088015260e0604088015260e08701916129dc565b90848203606086015261291f565b95608083015260a08201520152565b91908260409103126122fe5760405161359d81612390565b6020808294805184520151910152565b91908110156128155760051b0190565b356001600160a01b03811681036122fe5790565b91908110156128155760051b8101359061011e19813603018212156122fe570190565b60405163428557b160e11b6020820190815260009485948594859261362291869161076c916024840161283f565b5a935193f1613795573d60405191602082840101604052818352602083013e600481511061372b5763428557b160e11b6001600160e01b0319613667611e17846137ff565b16146136c15780516136789161387c565b805181016040828203126122fe5761369260208301612a8d565b916040810151916001600160401b0383116122fe576136b8926020809201920101612a9a565b9015611f915790565b608460405162461bcd60e51b815260206004820152603d60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20776974682044656c6567617465416e64526576657274206572726f720000006064820152fd5b608460405162461bcd60e51b815260206004820152602a60248201527f44656c6567617465416e6452657665727420726576657274206461746120697360448201527f20746f6f2073686f7274000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602c60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20617320657870656374656400000000000000000000000000000000000000006064820152fd5b9060009160049060609381516004811115613874575b801561386c575b5082811061382957505050565b6040519450918290039101601f8201601f19165b8181015185820152601f1901908115613856579061383d565b5050604081840160006020820152016040528252565b90503861381c565b925082613815565b91906004926060938151838111156138a5575b600481111561386c575082811061382957505050565b92508261388f56fea264697066735822122071ced1903ff38b4a91a933cab9ad45345d238a5f16de092c27c281e92b4f753c64736f6c634300081c0033", "sourceMap": "1285:22343:37:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;13515:23;;:::i;:::-;1285:22343;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;13731:1035;13751:18;;;;;;1285:22343;;;;;;;;;;:::i;:::-;;;;14783:155;;1285:22343;;;:::i;:::-;14783:155;;;1285:22343;;;;;;;:::i;:::-;;;;13771:3;1285:22343;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;13971:10;;;;;;:::i;:::-;1285:22343;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;:::i;:::-;;;;;13952:29;;;:::i;:::-;;;;;:::i;:::-;;14020:19;;14073:9;14101:48;;;;;;1285:22343;;14101:48;1285:22343;14101:48;;1285:22343;;;14101:48;1285:22343;14101:48;;1285:22343;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14101:48;;1285:22343;;;14101:48;;;;;;;1285:22343;-1:-1:-1;14097:659:37;;14454:302;;1285:22343;14454:302;;:::i;:::-;1285:22343;14622:10;;;;;:::i;:::-;1285:22343;;14597:36;;;;1285:22343;14597:36;;;1285:22343;14597:36;;1285:22343;;;;;;:::i;:::-;14597:36;;;;;;;;;;1285:22343;;14597:36;;;14097:659;1285:22343;;;;14651:90;1285:22343;;;;;;;:::i;:::-;;;;14672:68;;1285:22343;14651:90;:::i;:::-;1285:22343;13736:13;;14597:36;;;;1285:22343;14597:36;;;;;;;;;;:::i;:::-;1285:22343;14597:36;-1:-1:-1;14597:36:37;;;1285:22343;;;;-1:-1:-1;1285:22343:37;;14651:90;14597:36;;1285:22343;;;14597:36;;;;;;1285:22343;;;;;;;;;;14097:659;14187:9;14410:28;1285:22343;14187:9;;14334:36;14388:50;14187:9;;14350:20;14187:9;14237:19;;14350:20;;:::i;:::-;14334:36;;:::i;:::-;14410:28;;:::i;14388:50::-;14097:659;;;14101:48;1285:22343;;14101:48;;;:::i;:::-;1285:22343;;;;14101:48;;;1285:22343;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;;;;-1:-1:-1;1285:22343:37;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1285:22343:37;;;;;;;;;;;-1:-1:-1;;;1285:22343:37;;;;;;;;;;;;;;;10684:64;10608:59;10511:61;;-1:-1:-1;;;;;1285:22343:37;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;10511:61;;;-1:-1:-1;;;10511:61:37;;;;;;;;:::i;:::-;;1285:22343;;10511:61;;;;;;:::i;:::-;1285:22343;10608:59;;:::i;:::-;10511:61;1285:22343;;;10684:64;;;;;;:::i;:::-;1285:22343;;;;;10511:61;1285:22343;;10511:61;1285:22343;;;;:::i;:::-;;;;;;-1:-1:-1;;1285:22343:37;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1285:22343:37;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;17961:20;;;;;;1285:22343;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;17983:3;18017:12;;;;;;:::i;:::-;;:::i;:::-;1285:22343;;;-1:-1:-1;;;;;1285:22343:37;;18044:427;18064:17;;;;;;17983:3;;;1285:22343;;17946:13;;18083:3;18142:9;;;18163:42;-1:-1:-1;;;;;18142:9:37;;;;;;:::i;:::-;1285:22343;18142:64;18163:42;;18239:12;;;;;18138:220;;18429:9;;;;;;:::i;:::-;1285:22343;-1:-1:-1;;;;;1285:22343:37;;;;;;:::i;:::-;;;;;;18396:60;;1285:22343;;18396:60;;1285:22343;18385:7;-1:-1:-1;;1285:22343:37;;;;;;;18376:80;1285:22343;;;18376:80;1285:22343;;18376:80;;:::i;:::-;;;;:::i;:::-;;1285:22343;18049:13;;18138:220;18313:9;;-1:-1:-1;;;;;18313:9:37;1285:22343;18313:9;1285:22343;18313:9;;:::i;:::-;1285:22343;;;18307:32;;;;1285:22343;18307:32;;;1285:22343;18307:32;;1285:22343;18307:32;;;;;;;1285:22343;;18307:32;;;18138:220;18298:41;18138:220;;;18307:32;;;1285:22343;18307:32;;;;;;;;;1285:22343;18307:32;;;:::i;:::-;;;1285:22343;;;;;18307:32;;;;;;-1:-1:-1;18307:32:37;;;1285:22343;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;9921:59;9824:61;;-1:-1:-1;;;;;1285:22343:37;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;9824:61;;;9744:50;1285:22343;9824:61;;;;;;;:::i;9921:59::-;1285:22343;;9997:65;;1285:22343;9997:65;;1285:22343;;;;;;;;;9997:65;;1285:22343;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;-1:-1:-1;1285:22343:37;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;19382:35;-1:-1:-1;;;19382:35:37;;1285:22343;;19382:35;;;;;;;1285:22343;19382:35;;;:::i;:::-;;:4;;:35;;;;;;;1285:22343;;19382:35;;;1285:22343;;;;;20101:60;1285:22343;;19704:68;-1:-1:-1;;;;;1285:22343:37;19704:68;19887:89;1285:22343;;19553:229;1285:22343;;;19704:68;;;-1:-1:-1;;;1285:22343:37;19704:68;;;1285:22343;19704:68;;;:::i;:::-;;1285:22343;;19704:68;;;;;;:::i;:::-;1285:22343;;19553:229;;;19589:54;1285:22343;19553:229;;;1285:22343;;19553:229;;1285:22343;;;;;;;;:::i;:::-;19382:4;1285:22343;;;;;;;-1:-1:-1;;1285:22343:37;;;;;19382:4;1285:22343;:::i;20101:60::-;20219:29;;;1285:22343;;20214:110;;1285:22343;20425:58;20436:28;;;1285:22343;;;;20425:58;;;;;;:::i;:::-;1285:22343;20563:40;1285:22343;;20563:40;:::i;:::-;1285:22343;;;20661:3;1285:22343;;20634:25;;;;;20734:17;-1:-1:-1;;;;;20734:17:37;1285:22343;20734:17;;;:::i;:::-;;1285:22343;;-1:-1:-1;;;;;1285:22343:37;20781:17;;;;:::i;:::-;;:23;1285:22343;;;20837:17;;;;:::i;:::-;;:24;1285:22343;;20893:16;;;;:::i;:::-;;:23;1285:22343;;;;;;;;:::i;:::-;;;;20698:233;;1285:22343;;20698:233;;1285:22343;;20698:233;;1285:22343;20680:251;;;;:::i;:::-;;;;;;:::i;:::-;;1285:22343;20619:13;;20634:25;1285:22343;;;;20634:25;1285:22343;;:::i;20214:110::-;1285:22343;20284:28;;1285:22343;1712:95:17;;;;;19382:35:37;19553:229;19382:35;;;;1285:22343;20101:60;19382:35;;19704:68;-1:-1:-1;;;;;19382:35:37;19704:68;19887:89;19382:35;;;1285:22343;19382:35;;1285:22343;;;19382:35;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1285:22343;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;5872:64;5777:59;1285:22343;5680:61;1285:22343;5680:61;1285:22343;;5680:61;;;-1:-1:-1;;;1285:22343:37;5680:61;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1285:22343:37;;5777:59;;:::i;5872:64::-;5846:90;;1285:22343;;;;6032:162;1285:22343;;;;;;6032:162;;;;;1285:22343;6032:162;;1285:22343;;6032:162;1285:22343;6032:162;;;:::i;:::-;;1285:22343;;;6032:4;:162;;;;;;;1285:22343;;6032:162;;;1285:22343;6002:192;;;1285:22343;6299:29;;1285:22343;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;6339:2;-1:-1:-1;6299:42:37;6295:387;;1285:22343;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1285:22343:37;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1285:22343:37;;;;;;:::i;6295:387::-;1285:22343;6396:275;1285:22343;;;;;;;;6396:275;;;;;1285:22343;6396:275;;1285:22343;;6396:275;1285:22343;6396:275;;;:::i;:::-;;1285:22343;;;6032:4;6396:275;;;;;;;1285:22343;;;;;;;;6396:275;;;6295:387;6357:314;;;6295:387;;;;;;;;;6396:275;;;;;1285:22343;;;6396:275;;;;;;:::i;:::-;;;;;:::i;:::-;;;;6032:162;;;;;1285:22343;;;6032:162;;;;;;:::i;:::-;;;;1285:22343;;;;;8436:67;8360:59;8184:140;;-1:-1:-1;;;;;1285:22343:37;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;8184:140;;;8086:68;8184:140;;;;;;;;:::i;8360:59::-;8184:140;1285:22343;;;8436:67;;;;;;:::i;:::-;1285:22343;;;;;8184:140;1285:22343;;8184:140;1285:22343;;;;:::i;:::-;;;;;;-1:-1:-1;;1285:22343:37;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;15327:23;;:::i;:::-;1285:22343;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;15543:1023;15563:18;;;;;;1285:22343;;;;;;;;;;:::i;15583:3::-;1285:22343;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;15771:10;;;;;;:::i;:::-;1285:22343;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;:::i;:::-;;;;;15752:29;;;:::i;:::-;;;;;:::i;:::-;;15820:19;;15873:9;15901:48;;;;;;1285:22343;;15901:48;1285:22343;15901:48;;1285:22343;;;15901:48;1285:22343;15901:48;;1285:22343;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15901:48;;1285:22343;;;15901:48;;;;;;;1285:22343;-1:-1:-1;15897:659:37;;16254:302;;1285:22343;16254:302;;:::i;:::-;1285:22343;16422:10;;;;;:::i;:::-;1285:22343;;16397:36;;;;1285:22343;16397:36;;;1285:22343;16397:36;;1285:22343;;;;;;:::i;:::-;16397:36;;;;;;;;;;1285:22343;;16397:36;;;15897:659;1285:22343;;;;16451:90;1285:22343;;;;;;;:::i;16451:90::-;1285:22343;15548:13;;16397:36;;;;1285:22343;16397:36;;;;;;;;;;:::i;:::-;1285:22343;16397:36;-1:-1:-1;16397:36:37;;;1285:22343;;;;-1:-1:-1;1285:22343:37;;16451:90;16397:36;;;;;;;15897:659;15987:9;16210:28;1285:22343;15987:9;;16134:36;16188:50;15987:9;;16150:20;15987:9;16037:19;;16150:20;;:::i;16188:50::-;15897:659;;;15901:48;1285:22343;;15901:48;;;:::i;:::-;1285:22343;;;;15901:48;;;1285:22343;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;;;;-1:-1:-1;1285:22343:37;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;:::i;:::-;;;;;;18861:134;;;;;1285:22343;18861:134;;1285:22343;;18861:134;;1285:22343;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;18861:134;1285:22343;;;18861:4;:134;;;;;;1285:22343;;18861:134;;;1285:22343;;;;;;;;;;:::i;18861:134::-;;;1285:22343;;;18861:134;;;;;;:::i;:::-;;;1285:22343;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18861:134;;;1285:22343;18861:134;;;;1285:22343;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1285:22343:37;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1285:22343:37;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;9049:140;9225:59;1285:22343;;9301:67;1285:22343;;;:::i;:::-;;;;;9049:140;;;8968:51;1285:22343;9049:140;;;1285:22343;;9049:140;;1285:22343;;;;;;:::i;:::-;;;;-1:-1:-1;;1285:22343:37;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;9049:140;1285:22343;;9049:140;;;;;;:::i;:::-;9225:59;:::i;1285:22343::-;;;;;;-1:-1:-1;;1285:22343:37;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;21313:35;-1:-1:-1;;;21313:35:37;;1285:22343;;21313:35;;;;;;;1285:22343;21313:35;;;:::i;:::-;;:4;;:35;;;;;;;1285:22343;;21313:35;;;1285:22343;;;21474:68;;1285:22343;-1:-1:-1;;;;;1285:22343:37;;;;;;;21474:68;;;-1:-1:-1;;;1285:22343:37;21474:68;;;1285:22343;21474:68;;;:::i;:::-;;1285:22343;;21474:68;;;;;;:::i;:::-;1285:22343;21557:59;;;;;;1285:22343;;;;;;21557:59;;;;;;1285:22343;21557:59;;1285:22343;;21557:59;;1285:22343;;;;;;;;:::i;:::-;21313:4;1285:22343;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;;;;:::i;:::-;21557:59;1285:22343;;;21557:59;;;;;;;1285:22343;-1:-1:-1;21553:1579:37;;21681:1451;;:::i;:::-;1285:22343;;;21731:22;;21727:100;;-1:-1:-1;;;;;;21859:30:37;21866:22;;;:::i;:::-;21859:30;:::i;:::-;1285:22343;21967:31;21955:43;;21951:113;;22158:45;22146:57;:104;;;;21553:1579;22125:204;;1285:22343;;22378:38;;;:::i;:::-;1285:22343;;22486:351;;1285:22343;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;22486:351;1285:22343;22486:351;;;1285:22343;;;;:::i;:::-;22910:14;;22906:86;;1285:22343;;;23079:42;1285:22343;;23079:42;;;;;;:::i;:::-;21553:1579;23211:40;1285:22343;;23211:40;:::i;:::-;1285:22343;;;23309:3;1285:22343;;23282:25;;;;;23382:17;-1:-1:-1;;;;;23382:17:37;1285:22343;23382:17;;;:::i;:::-;;1285:22343;;-1:-1:-1;;;;;1285:22343:37;23429:17;;;;:::i;:::-;;:23;1285:22343;;;23485:17;;;;:::i;:::-;;:24;1285:22343;;23541:16;;;;:::i;:::-;;:23;1285:22343;;;;;;;;:::i;:::-;;;;23346:233;;1285:22343;;23346:233;;1285:22343;;23346:233;;1285:22343;23328:251;;;;:::i;:::-;;;;;;:::i;:::-;;1285:22343;23267:13;;22906:86;1285:22343;1712:95:17;;;;;22146:104:37;1285:22343;;;22146:104;;21951:113;1712:95:17;1285:22343:37;1712:95:17;;;;;21727:100:37;1285:22343;;;-1:-1:-1;;;21773:39:37;;1285:22343;;21773:39;;1285:22343;;;;;;;;;;;21773:39;21553:1579;1285:22343;;;-1:-1:-1;;;21631:38:37;;1285:22343;;21631:38;;1285:22343;;;;;;;;;;;21631:38;21557:59;1285:22343;;21557:59;;;:::i;:::-;;;;21313:35;-1:-1:-1;;;;;21313:35:37;;;;;21474:68;21313:35;;21474:68;21313:35;;1285:22343;;;21313:35;;;;;;:::i;:::-;;;;;;;;;;1285:22343;;;;;7511:67;7435:59;7259:140;;-1:-1:-1;;;;;1285:22343:37;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;7259:140;;;7170:59;7259:140;;;;;;;;:::i;1285:22343::-;;;;;;-1:-1:-1;;1285:22343:37;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;2352:468;2389:3;1285:22343;;2372:15;;;;;1285:22343;;;2572:7;1285:22343;2572:7;;:::i;:::-;;1285:22343;;2485:95;;;1285:22343;2485:95;;;-1:-1:-1;;;2485:95:37;;;1285:22343;2485:95;;;:::i;:::-;2644:9;1285:22343;;;;;378:118:17;;1285:22343:37;;;;378:118:17;;2672:8:37;2668:97;;2389:3;2778:31;;;;:::i;:::-;;;;;;:::i;:::-;;1285:22343;2357:13;;2668:97;1204:349:17;;1285:22343:37;1204:349:17;;1285:22343:37;1204:349:17;;;;1285:22343:37;1204:349:17;;;;1285:22343:37;;;1204:349:17;;;2668:97:37;;2372:15;;1285:22343;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1285:22343:37;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;:::o;:::-;-1:-1:-1;;;;1285:22343:37;;;;;-1:-1:-1;1285:22343:37;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;:::o;:::-;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1285:22343:37;;;;;;-1:-1:-1;;1285:22343:37;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1285:22343:37;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1285:22343:37;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1285:22343:37;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;1285:22343:37;;;;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;-1:-1:-1;;1285:22343:37;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;-1:-1:-1;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1285:22343:37;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1285:22343:37;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;1285:22343:37;;;;;;;;-1:-1:-1;;1285:22343:37;;;;:::o;:::-;;;-1:-1:-1;;;;;1285:22343:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1285:22343:37;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1285:22343:37;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1285:22343:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1285:22343:37;;;;:::o;:::-;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;;1285:22343:37;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;;1285:22343:37;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;1285:22343:37;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;;;-1:-1:-1;1285:22343:37;;;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;11630:679;;;-1:-1:-1;;;;;11630:679:37;1285:22343;;:::i;:::-;;;12058:82;;;;;;1285:22343;;;;12058:82;1285:22343;12058:82;;;;;;;;;;;;;;11630:679;1285:22343;;;-1:-1:-1;;;;;1285:22343:37;;12228:74;;;;;1285:22343;12228:74;;1285:22343;12058:82;12228:74;;1285:22343;;;;;;:::i;:::-;;;;;;;;;;;12228:74;:4;;;:74;;;;;;;;;;;12221:81;;11630:679;:::o;12228:74::-;;;;;;;;;;;;;:::i;:::-;;;;1285:22343;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11630:679;:::o;1285:22343::-;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12228:74;1285:22343;;;;;;;;;;;12058:82;;;;;;;;:::i;:::-;;;;;;1285:22343;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1285:22343:37;;;;;;;;;;;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;;1285:22343:37;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1285:22343:37;;;;;;-1:-1:-1;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;;;;;;;;:::i;:::-;;;;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;;;-1:-1:-1;1285:22343:37;;;;-1:-1:-1;1285:22343:37;;;;-1:-1:-1;1285:22343:37;;;;-1:-1:-1;1285:22343:37;;;;-1:-1:-1;1285:22343:37;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1285:22343:37;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2963:1459::-;1285:22343;;-1:-1:-1;;;3247:60:37;;;;;;-1:-1:-1;;;;;;;;3247:60:37;;1285:22343;;3247:60;;;;;;:::i;:::-;3367:9;378:118:17;;;;-1:-1:-1;;1204:349:17;1285:22343:37;1204:349:17;;3247:60:37;1204:349:17;;;;1285:22343:37;1204:349:17;;;;3247:60:37;1204:349:17;;;3247:60:37;1285:22343;;3639:21;3635:104;;-1:-1:-1;;;;;;;;;3827:30:37;3834:22;;;:::i;3827:30::-;1285:22343;3871:60;3867:162;;1285:22343;;4113:38;;;:::i;:::-;1285:22343;;4231:37;;1285:22343;;;;;;;;3247:60;4231:37;;1285:22343;:::i;:::-;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;4231:37;3247:60;4231:37;;;1285:22343;;;;:::i;:::-;4283:25;;4279:98;;2963:1459;:::o;3867:162::-;3947:71;1285:22343;;-1:-1:-1;;;3947:71:37;;3247:60;;3947:71;;1285:22343;;3247:60;1285:22343;;;;;;;;;;;;;3947:71;3635:104;3676:52;1285:22343;;-1:-1:-1;;;3676:52:37;;3247:60;;3676:52;;1285:22343;;3247:60;1285:22343;;;;;;;;;;;;;3676:52;3388:174;3497:54;1285:22343;;-1:-1:-1;;;3497:54:37;;3247:60;;3497:54;;1285:22343;;3247:60;1285:22343;;;;;;;;;;;;;3497:54;15689:1115:35;;1285:22343:37;15689:1115:35;1285:22343:37;15801:19:35;1285:22343:37;15879:919:35;;;1285:22343:37;15879:919:35;;;;;15689:1115;15879:919;;;;15689:1115;15879:919;;;;;;15689:1115;;;:::o;15879:919::-;;;;-1:-1:-1;15879:919:35;;;;;;1285:22343:37;15879:919:35;;-1:-1:-1;;15879:919:35;;;;;;;;;;-1:-1:-1;;15879:919:35;;;;;;;;;;;;;;;;1285:22343:37;15879:919:35;;;;;;;;;15689:1115::o;15879:919::-;;;;;;;;-1:-1:-1;15879:919:35;;;15689:1115;;;1285:22343:37;15801:19:35;1285:22343:37;15879:919:35;;;;;;;;;15689:1115;1285:22343:37;15879:919:35;;;;;;;;;;;15689:1115;;;:::o;15879:919::-;;-1:-1:-1;15879:919:35;;", "linkReferences": {} }, "methodIdentifiers": { "binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": "71349903", "binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": "9f2d3789", "binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": "2e5a0a93", "filterOps06((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address,address)": "959c4cb7", "filterOps07((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,address)": "fccb5ff6", "filterOps08((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,address)": "861d9d59", "filterOps09((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,address)": "82e542ed", "getBalances(address[],address[])": "ef5bfc37", "simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": "a4968eab", "simulateAssetChange06((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address,address[],address[])": "685f6026", "simulateAssetChange07((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,address,address[],address[])": "b21b38c8", "simulateAssetChange08((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,address,address[],address[])": "90d81dfb", "simulateEntryPointBulk(address,address,bytes[])": "141eb033", "simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "f1143043", "simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "de040de1" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"PimlicoSimulationDeployed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchCallGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchPaymasterVerificationGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchVerificationGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps06\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps07\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps08\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps09\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"getBalances\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetBalance[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"simulateAndEstimateGas\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"simulationResult\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"verificationGasLimit\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"tuple\"}],\"internalType\":\"struct PimlicoSimulations.SimulateAndEstimateGasResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"simulateAssetChange06\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetChange[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"entryPointSimulations\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"simulateAssetChange07\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetChange[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"entryPointSimulations\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"simulateAssetChange08\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetChange[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"simulateEntryPointBulk\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"}],\"name\":\"simulateHandleOp\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"}],\"name\":\"simulateValidation\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPoint.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Pimlico (https://github.com/pimlicolabs/alto)\",\"kind\":\"dev\",\"methods\":{},\"title\":\"PimlicoSimulations\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal call gas limit\"},\"binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal paymaster verification gas limit\"},\"binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal verification gas limit\"},\"simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Simulates userOp and estimates verification & paymaster gas limits\"},\"simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Simulates handling of a UserOperation\"},\"simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Simulates validation of a UserOperation\"}},\"notice\":\"An ERC-4337 EntryPoint simulation contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/PimlicoSimulations.sol\":\"PimlicoSimulations\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":@account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":@account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":@account-abstraction-v9/=lib/account-abstraction-v9/contracts/\",\":@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/\",\":@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/\",\":@test-utils/=lib/singleton-paymaster/test/utils/\",\":account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":account-abstraction-v9/=lib/account-abstraction-v9/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":singleton-paymaster/=lib/singleton-paymaster/src/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"lib/account-abstraction-v6/contracts/core/Helpers.sol\":{\"keccak256\":\"0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746\",\"dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU\"]},\"lib/account-abstraction-v6/contracts/core/NonceManager.sol\":{\"keccak256\":\"0xa17a4a6fde70088ab18ffe6df830f3efa31f1cd0e1a7160336c96e3c94984d25\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b38615df9f80c56282b72888e9ba1eb1a9413fa67a0dbf094deda7af9feb38e7\",\"dweb:/ipfs/QmSzcXetEJRH4UHuUmZiSgX6bFgfqHWfmyuxVnh4NosMk1\"]},\"lib/account-abstraction-v6/contracts/core/SenderCreator.sol\":{\"keccak256\":\"0x44b9449fec82d6cdfb01d52fdd5a72f90099c651316123810cf9633f00b018c2\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a9c0487390e72638681d175c45bc92425c802fffdca4bd0ae8457782ee284612\",\"dweb:/ipfs/QmVbzuehCUWJWqEHyMWuc6cRVbxfcMdFsmGL9o4Wz7WY2x\"]},\"lib/account-abstraction-v6/contracts/core/StakeManager.sol\":{\"keccak256\":\"0x21aa0956382bd000b1b8c3b1d19ca6ebcd6c9029eebb19c612fb38ee5dd2430a\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://0a625c8795354d9f429367f9c1d14eb8af7db9c7f2c2a2033e2066ced76a573a\",\"dweb:/ipfs/Qmd1j6UarUg54q1G2HCNCLQz8XGVZR1qxX7eQ6cytHpQPN\"]},\"lib/account-abstraction-v6/contracts/interfaces/IAccount.sol\":{\"keccak256\":\"0x556a0e5980de18e90b115553ed502408155ba35f58642823010d9288047bc418\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a0f420134b79596db8737173c7b933ae0a33059e107b6327c43aa40d4744a9e4\",\"dweb:/ipfs/QmRo8s1AhXmEMV7uPYnbpYwU19e9Bk6jmYBJTiPx3Fo85W\"]},\"lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b\",\"dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP\"]},\"lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf\",\"dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd\"]},\"lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2\",\"dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b\"]},\"lib/account-abstraction-v6/contracts/interfaces/IPaymaster.sol\":{\"keccak256\":\"0x36858ba8685024974f533530420688da3454d29996ebc42e410673a1ed2ec456\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://616cbcf51778b1961b7f20a547bec7efae6d1d565df0f651926241ed8bde9ad8\",\"dweb:/ipfs/QmaVsgffUUmeUJYgStvRr8cNZ1LBbrc3FYNLW4JT1dVLia\"]},\"lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3\",\"dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ\"]},\"lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol\":{\"keccak256\":\"0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c\",\"dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN\"]},\"lib/account-abstraction-v6/contracts/utils/Exec.sol\":{\"keccak256\":\"0x5b232117afbc2939f3ffc92745614867e9e1d475a3e1e5443adae13c200174f1\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://62e7365379a06ead7b47637945bcaee095d51aab1d3ac00ddec69443e6cbe9fe\",\"dweb:/ipfs/QmctG3aw4U3KMSMeJKoLJ1NJewjMWfppnd1m3kxNTe39Uy\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155\",\"dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5\"]},\"lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9\",\"dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe\"]},\"lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3\",\"dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk\"]},\"lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00\",\"dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj\"]},\"lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be\",\"dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3\"]},\"lib/account-abstraction-v7/contracts/utils/Exec.sol\":{\"keccak256\":\"0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77\",\"dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ\"]},\"lib/account-abstraction-v8/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77\",\"dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT\"]},\"lib/account-abstraction-v8/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x3b0423737e810dd886183ed32cfed9b45edd315f5fb3e1076fc19f86791adc64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c43081efaa2eda581b6249053281bb58cb0c4eeb6bf87efc55d95daaec2fc931\",\"dweb:/ipfs/QmXRN2JnyzWZNeFMHauTnDuc7jhxGY4ZkY37HTtjXKdC87\"]},\"lib/account-abstraction-v8/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xee493ae200b8c675bdc0da66f7ac6bb883ecea33672d7d0a95526b9eecdedf87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://979784a0333ac4ef3cc53ab9323a4b7fa574d929bd511f0eed03d3b0370db22d\",\"dweb:/ipfs/QmeiciN5gs4upM6vfKvrRxWiDBUzMU4uJQRRkJajhim9gX\"]},\"lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol\":{\"keccak256\":\"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570\",\"dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w\"]},\"lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85\",\"dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz\"]},\"lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79\",\"dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK\"]},\"lib/account-abstraction-v9/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77\",\"dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT\"]},\"lib/account-abstraction-v9/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x62f739f59c661f48b750e1d67d96f209056bbc2e4b5e48cbcd0656d162e566cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee103fb0c5103bc001171303bac9f80659c5f0efc4ebf4cfa22e1adc831c68ce\",\"dweb:/ipfs/QmbiosncMJBe3skD8KsCXE9Y3C6NdKthHq83ba3Sw6RP4U\"]},\"lib/account-abstraction-v9/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0x0a93a26e990e3da5762c461f5f500bec0f6e216bb42c55f07d95651bd85d5f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d76343b1e306ed0ed2a5f49b578b8c30d1c6aecac260c8b71d30665021f93961\",\"dweb:/ipfs/QmPo7xaetd9koekFkNoapGUE2omFH1HhxF35PstTH6fG3J\"]},\"lib/account-abstraction-v9/contracts/interfaces/ISenderCreator.sol\":{\"keccak256\":\"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570\",\"dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w\"]},\"lib/account-abstraction-v9/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xcbac5ac68fb0582d743c4172cc78afc530f750ed529386327ebfa909be067111\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95ec6059800b3c9a645c1fdc33061f7a48c2b49b9f8bce53d55fc840092dd964\",\"dweb:/ipfs/Qmb33bEcx36hdhXpVCcsUGFmk3AGEU1rto9FU7VBu5S941\"]},\"lib/account-abstraction-v9/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0xa262abaec9b922c33e54dd8cd88d4fd1989915e16127959736af966884b4d441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb49a30d699867fd6efa3e349b5802dd1ec1a57379e70077e38fe001e19008d\",\"dweb:/ipfs/QmdsY3et68ceJAyuDScz8iWJfimXmApf6Qcp3BmqDjNSzc\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010\",\"dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x1c3cdf5158b29b16ba2d2c7ff1f6d4304754605441257e198b46803f0fa9df1a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6ed3d15fd372495ff76439878fb5e007ae0b39da3ce3d9fd877ee8147647bb2\",\"dweb:/ipfs/QmZ1zC91VhPHMXAdcY8SahJMwDsC2B5q9uXFF16R5eHmkV\"]},\"lib/solady/src/utils/LibBytes.sol\":{\"keccak256\":\"0x905f1c122299888350964a3bdd3dccd4b969273389b8d869f9aacb6871ff199e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6cff3ef7090aa48f214b960f373a33c15878f80e617443a3a4d53f130bab862\",\"dweb:/ipfs/QmdMEpK6ZVxUesqSpurqS9UkDnm1kAnjUeJKLN6ZWPNJnT\"]},\"src/IEntryPointSimulations.sol\":{\"keccak256\":\"0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5\",\"dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t\"]},\"src/PimlicoSimulations.sol\":{\"keccak256\":\"0xa980588f431640f95765d3c16bccad06c70308ce8fb0d8bcfafa744a10d9e6dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d56374264adf0998b0063c709b7abfb1ec6b7ee34903ce96e48060c8b232d4f4\",\"dweb:/ipfs/QmeVKWkmpFz5J6vLqFPzAzmMoMPuvjS2v6jBoGNuvRCsQA\"]},\"src/SimulationOverrideHelper.sol\":{\"keccak256\":\"0x327a9038314036c1259ce7d2422d17b10f264df6b0d9f6b87cddb6b047898774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4288cd354dbc1344dbe6139a862abe6bbc784186705cd2fc5197ef0e26d8b66\",\"dweb:/ipfs/Qmerifmk26zWoYk2hRXptyC6ncPH4m7zyQEDJERHNo5ijf\"]},\"src/v06/EntryPointGasEstimationOverride.sol\":{\"keccak256\":\"0xd543e1dfeb6c3f74ce1964099364ce549563c11ea47c3cb97b02bc7e71e8f46d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://53d579d8654dbed980bb14d08ecafddb30b4f634ffedd4a64a2d30b39803d4f7\",\"dweb:/ipfs/QmTnT9yk1AB2LydP2QWiyuPrTHAZzqFcrLLjkB5Q1z7DpD\"]},\"src/v08/IEntryPointFilterOpsOverride.sol\":{\"keccak256\":\"0xe069a104d10fd2a44eaa5fb8e5b42c88db1b79e2fb158d479baf1d037100aa0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f1440a823d770d3b70e73c769ac97039facc8b9cdb3f41debd37ae7a12ef5e9b\",\"dweb:/ipfs/QmahuKjkumBBkJEgfogRM2Pa3sSFLQ6mkyXBao87G4EF4T\"]},\"src/v09/IEntryPointFilterOpsOverride.sol\":{\"keccak256\":\"0x650c3d21c5c2cf5df86280c280361470636fa01aa697928d8c9cb6e3d304121a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://099ac0bd696fa0a16ade75f8bac3d0e60cdee9d8cec1c44f2b231095f566104f\",\"dweb:/ipfs/QmNf3jPVQ3bZtGpKtuR1aqV8bT16MhZSj4qmxUbmSiBXR5\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.28+commit.7893614a" }, "language": "Solidity", "output": { "abi": [{ "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "type": "event", "name": "PimlicoSimulationDeployed", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchCallGas", "outputs": [{ "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchPaymasterVerificationGas", "outputs": [{ "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchVerificationGas", "outputs": [{ "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }] }, { "inputs": [{ "internalType": "struct UserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "filterOps06", "outputs": [{ "internalType": "struct PimlicoSimulations.FilterOpsResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "uint256", "name": "balanceChange", "type": "uint256" }, { "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "name": "rejectedUserOps", "type": "tuple[]", "components": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "bytes", "name": "revertReason", "type": "bytes" }] }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "filterOps07", "outputs": [{ "internalType": "struct PimlicoSimulations.FilterOpsResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "uint256", "name": "balanceChange", "type": "uint256" }, { "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "name": "rejectedUserOps", "type": "tuple[]", "components": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "bytes", "name": "revertReason", "type": "bytes" }] }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "filterOps08", "outputs": [{ "internalType": "struct PimlicoSimulations.FilterOpsResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "uint256", "name": "balanceChange", "type": "uint256" }, { "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "name": "rejectedUserOps", "type": "tuple[]", "components": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "bytes", "name": "revertReason", "type": "bytes" }] }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "filterOps09", "outputs": [{ "internalType": "struct PimlicoSimulations.FilterOpsResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "uint256", "name": "balanceChange", "type": "uint256" }, { "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "name": "rejectedUserOps", "type": "tuple[]", "components": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "bytes", "name": "revertReason", "type": "bytes" }] }] }] }, { "inputs": [{ "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "address[]", "name": "tokens", "type": "address[]" }], "stateMutability": "view", "type": "function", "name": "getBalances", "outputs": [{ "internalType": "struct PimlicoSimulations.AssetBalance[]", "name": "", "type": "tuple[]", "components": [{ "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }] }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateAndEstimateGas", "outputs": [{ "internalType": "struct PimlicoSimulations.SimulateAndEstimateGasResult", "name": "result", "type": "tuple", "components": [{ "internalType": "struct IEntryPointSimulations.ExecutionResult", "name": "simulationResult", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "paid", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "bool", "name": "targetSuccess", "type": "bool" }, { "internalType": "bytes", "name": "targetResult", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "verificationGasLimit", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "paymasterVerificationGasLimit", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }] }] }, { "inputs": [{ "internalType": "struct UserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }, { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "address[]", "name": "tokens", "type": "address[]" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateAssetChange06", "outputs": [{ "internalType": "struct PimlicoSimulations.AssetChange[]", "name": "", "type": "tuple[]", "components": [{ "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "balanceBefore", "type": "uint256" }, { "internalType": "uint256", "name": "balanceAfter", "type": "uint256" }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }, { "internalType": "address", "name": "entryPointSimulations", "type": "address" }, { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "address[]", "name": "tokens", "type": "address[]" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateAssetChange07", "outputs": [{ "internalType": "struct PimlicoSimulations.AssetChange[]", "name": "", "type": "tuple[]", "components": [{ "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "balanceBefore", "type": "uint256" }, { "internalType": "uint256", "name": "balanceAfter", "type": "uint256" }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }, { "internalType": "address", "name": "entryPointSimulations", "type": "address" }, { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "address[]", "name": "tokens", "type": "address[]" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateAssetChange08", "outputs": [{ "internalType": "struct PimlicoSimulations.AssetChange[]", "name": "", "type": "tuple[]", "components": [{ "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "balanceBefore", "type": "uint256" }, { "internalType": "uint256", "name": "balanceAfter", "type": "uint256" }] }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "bytes[]", "name": "data", "type": "bytes[]" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateEntryPointBulk", "outputs": [{ "internalType": "bytes[]", "name": "", "type": "bytes[]" }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateHandleOp", "outputs": [{ "internalType": "struct IEntryPointSimulations.ExecutionResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "paid", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "bool", "name": "targetSuccess", "type": "bool" }, { "internalType": "bytes", "name": "targetResult", "type": "bytes" }] }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateValidation", "outputs": [{ "internalType": "struct IEntryPointSimulations.ValidationResult", "name": "", "type": "tuple", "components": [{ "internalType": "struct IEntryPoint.ReturnInfo", "name": "returnInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterContext", "type": "bytes" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "senderInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "factoryInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "paymasterInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IEntryPoint.AggregatorStakeInfo", "name": "aggregatorInfo", "type": "tuple", "components": [{ "internalType": "address", "name": "aggregator", "type": "address" }, { "internalType": "struct IStakeManager.StakeInfo", "name": "stakeInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }] }] }] }], "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "userdoc": { "kind": "user", "methods": { "binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": { "notice": "Binary search for optimal call gas limit" }, "binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": { "notice": "Binary search for optimal paymaster verification gas limit" }, "binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": { "notice": "Binary search for optimal verification gas limit" }, "simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": { "notice": "Simulates userOp and estimates verification & paymaster gas limits" }, "simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "notice": "Simulates handling of a UserOperation" }, "simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "notice": "Simulates validation of a UserOperation" } }, "version": 1 } }, "settings": { "remappings": ["@account-abstraction-v6/=lib/account-abstraction-v6/contracts/", "@account-abstraction-v7/=lib/account-abstraction-v7/contracts/", "@account-abstraction-v8/=lib/account-abstraction-v8/contracts/", "@account-abstraction-v9/=lib/account-abstraction-v9/contracts/", "@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/", "@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/", "@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/", "@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/", "@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/", "@test-utils/=lib/singleton-paymaster/test/utils/", "account-abstraction-v6/=lib/account-abstraction-v6/contracts/", "account-abstraction-v7/=lib/account-abstraction-v7/contracts/", "account-abstraction-v8/=lib/account-abstraction-v8/contracts/", "account-abstraction-v9/=lib/account-abstraction-v9/contracts/", "ds-test/=lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/", "openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/", "openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/", "openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/", "singleton-paymaster/=lib/singleton-paymaster/src/", "solady/=lib/solady/src/"], "optimizer": { "enabled": true, "runs": 1000 }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "src/PimlicoSimulations.sol": "PimlicoSimulations" }, "evmVersion": "london", "libraries": {}, "viaIR": true }, "sources": { "lib/account-abstraction-v6/contracts/core/Helpers.sol": { "keccak256": "0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a", "urls": ["bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746", "dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/core/NonceManager.sol": { "keccak256": "0xa17a4a6fde70088ab18ffe6df830f3efa31f1cd0e1a7160336c96e3c94984d25", "urls": ["bzz-raw://b38615df9f80c56282b72888e9ba1eb1a9413fa67a0dbf094deda7af9feb38e7", "dweb:/ipfs/QmSzcXetEJRH4UHuUmZiSgX6bFgfqHWfmyuxVnh4NosMk1"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/core/SenderCreator.sol": { "keccak256": "0x44b9449fec82d6cdfb01d52fdd5a72f90099c651316123810cf9633f00b018c2", "urls": ["bzz-raw://a9c0487390e72638681d175c45bc92425c802fffdca4bd0ae8457782ee284612", "dweb:/ipfs/QmVbzuehCUWJWqEHyMWuc6cRVbxfcMdFsmGL9o4Wz7WY2x"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/core/StakeManager.sol": { "keccak256": "0x21aa0956382bd000b1b8c3b1d19ca6ebcd6c9029eebb19c612fb38ee5dd2430a", "urls": ["bzz-raw://0a625c8795354d9f429367f9c1d14eb8af7db9c7f2c2a2033e2066ced76a573a", "dweb:/ipfs/Qmd1j6UarUg54q1G2HCNCLQz8XGVZR1qxX7eQ6cytHpQPN"], "license": "GPL-3.0-only" }, "lib/account-abstraction-v6/contracts/interfaces/IAccount.sol": { "keccak256": "0x556a0e5980de18e90b115553ed502408155ba35f58642823010d9288047bc418", "urls": ["bzz-raw://a0f420134b79596db8737173c7b933ae0a33059e107b6327c43aa40d4744a9e4", "dweb:/ipfs/QmRo8s1AhXmEMV7uPYnbpYwU19e9Bk6jmYBJTiPx3Fo85W"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol": { "keccak256": "0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a", "urls": ["bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b", "dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol": { "keccak256": "0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8", "urls": ["bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf", "dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol": { "keccak256": "0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12", "urls": ["bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2", "dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IPaymaster.sol": { "keccak256": "0x36858ba8685024974f533530420688da3454d29996ebc42e410673a1ed2ec456", "urls": ["bzz-raw://616cbcf51778b1961b7f20a547bec7efae6d1d565df0f651926241ed8bde9ad8", "dweb:/ipfs/QmaVsgffUUmeUJYgStvRr8cNZ1LBbrc3FYNLW4JT1dVLia"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f", "urls": ["bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3", "dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ"], "license": "GPL-3.0-only" }, "lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol": { "keccak256": "0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c", "urls": ["bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c", "dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/utils/Exec.sol": { "keccak256": "0x5b232117afbc2939f3ffc92745614867e9e1d475a3e1e5443adae13c200174f1", "urls": ["bzz-raw://62e7365379a06ead7b47637945bcaee095d51aab1d3ac00ddec69443e6cbe9fe", "dweb:/ipfs/QmctG3aw4U3KMSMeJKoLJ1NJewjMWfppnd1m3kxNTe39Uy"], "license": "LGPL-3.0-only" }, "lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol": { "keccak256": "0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588", "urls": ["bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155", "dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol": { "keccak256": "0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4", "urls": ["bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9", "dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol": { "keccak256": "0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb", "urls": ["bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3", "dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04", "urls": ["bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00", "dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj"], "license": "GPL-3.0-only" }, "lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol": { "keccak256": "0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359", "urls": ["bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be", "dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/utils/Exec.sol": { "keccak256": "0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74", "urls": ["bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77", "dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ"], "license": "LGPL-3.0-only" }, "lib/account-abstraction-v8/contracts/interfaces/IAggregator.sol": { "keccak256": "0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf", "urls": ["bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77", "dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/IEntryPoint.sol": { "keccak256": "0x3b0423737e810dd886183ed32cfed9b45edd315f5fb3e1076fc19f86791adc64", "urls": ["bzz-raw://c43081efaa2eda581b6249053281bb58cb0c4eeb6bf87efc55d95daaec2fc931", "dweb:/ipfs/QmXRN2JnyzWZNeFMHauTnDuc7jhxGY4ZkY37HTtjXKdC87"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/INonceManager.sol": { "keccak256": "0xee493ae200b8c675bdc0da66f7ac6bb883ecea33672d7d0a95526b9eecdedf87", "urls": ["bzz-raw://979784a0333ac4ef3cc53ab9323a4b7fa574d929bd511f0eed03d3b0370db22d", "dweb:/ipfs/QmeiciN5gs4upM6vfKvrRxWiDBUzMU4uJQRRkJajhim9gX"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol": { "keccak256": "0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4", "urls": ["bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570", "dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0", "urls": ["bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85", "dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol": { "keccak256": "0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800", "urls": ["bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79", "dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/interfaces/IAggregator.sol": { "keccak256": "0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf", "urls": ["bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77", "dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/interfaces/IEntryPoint.sol": { "keccak256": "0x62f739f59c661f48b750e1d67d96f209056bbc2e4b5e48cbcd0656d162e566cd", "urls": ["bzz-raw://ee103fb0c5103bc001171303bac9f80659c5f0efc4ebf4cfa22e1adc831c68ce", "dweb:/ipfs/QmbiosncMJBe3skD8KsCXE9Y3C6NdKthHq83ba3Sw6RP4U"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/interfaces/INonceManager.sol": { "keccak256": "0x0a93a26e990e3da5762c461f5f500bec0f6e216bb42c55f07d95651bd85d5f74", "urls": ["bzz-raw://d76343b1e306ed0ed2a5f49b578b8c30d1c6aecac260c8b71d30665021f93961", "dweb:/ipfs/QmPo7xaetd9koekFkNoapGUE2omFH1HhxF35PstTH6fG3J"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/interfaces/ISenderCreator.sol": { "keccak256": "0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4", "urls": ["bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570", "dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xcbac5ac68fb0582d743c4172cc78afc530f750ed529386327ebfa909be067111", "urls": ["bzz-raw://95ec6059800b3c9a645c1fdc33061f7a48c2b49b9f8bce53d55fc840092dd964", "dweb:/ipfs/Qmb33bEcx36hdhXpVCcsUGFmk3AGEU1rto9FU7VBu5S941"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/interfaces/PackedUserOperation.sol": { "keccak256": "0xa262abaec9b922c33e54dd8cd88d4fd1989915e16127959736af966884b4d441", "urls": ["bzz-raw://8cb49a30d699867fd6efa3e349b5802dd1ec1a57379e70077e38fe001e19008d", "dweb:/ipfs/QmdsY3et68ceJAyuDScz8iWJfimXmApf6Qcp3BmqDjNSzc"], "license": "MIT" }, "lib/openzeppelin-contracts-v4.8.3/contracts/security/ReentrancyGuard.sol": { "keccak256": "0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc", "urls": ["bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010", "dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u"], "license": "MIT" }, "lib/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol": { "keccak256": "0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d", "urls": ["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4", "dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"], "license": "MIT" }, "lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/ERC165.sol": { "keccak256": "0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b", "urls": ["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d", "dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"], "license": "MIT" }, "lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/IERC165.sol": { "keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1", "urls": ["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f", "dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"], "license": "MIT" }, "lib/solady/src/tokens/ERC20.sol": { "keccak256": "0x1c3cdf5158b29b16ba2d2c7ff1f6d4304754605441257e198b46803f0fa9df1a", "urls": ["bzz-raw://f6ed3d15fd372495ff76439878fb5e007ae0b39da3ce3d9fd877ee8147647bb2", "dweb:/ipfs/QmZ1zC91VhPHMXAdcY8SahJMwDsC2B5q9uXFF16R5eHmkV"], "license": "MIT" }, "lib/solady/src/utils/LibBytes.sol": { "keccak256": "0x905f1c122299888350964a3bdd3dccd4b969273389b8d869f9aacb6871ff199e", "urls": ["bzz-raw://b6cff3ef7090aa48f214b960f373a33c15878f80e617443a3a4d53f130bab862", "dweb:/ipfs/QmdMEpK6ZVxUesqSpurqS9UkDnm1kAnjUeJKLN6ZWPNJnT"], "license": "MIT" }, "src/IEntryPointSimulations.sol": { "keccak256": "0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41", "urls": ["bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5", "dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t"], "license": "MIT" }, "src/PimlicoSimulations.sol": { "keccak256": "0xa980588f431640f95765d3c16bccad06c70308ce8fb0d8bcfafa744a10d9e6dc", "urls": ["bzz-raw://d56374264adf0998b0063c709b7abfb1ec6b7ee34903ce96e48060c8b232d4f4", "dweb:/ipfs/QmeVKWkmpFz5J6vLqFPzAzmMoMPuvjS2v6jBoGNuvRCsQA"], "license": "MIT" }, "src/SimulationOverrideHelper.sol": { "keccak256": "0x327a9038314036c1259ce7d2422d17b10f264df6b0d9f6b87cddb6b047898774", "urls": ["bzz-raw://f4288cd354dbc1344dbe6139a862abe6bbc784186705cd2fc5197ef0e26d8b66", "dweb:/ipfs/Qmerifmk26zWoYk2hRXptyC6ncPH4m7zyQEDJERHNo5ijf"], "license": "MIT" }, "src/v06/EntryPointGasEstimationOverride.sol": { "keccak256": "0xd543e1dfeb6c3f74ce1964099364ce549563c11ea47c3cb97b02bc7e71e8f46d", "urls": ["bzz-raw://53d579d8654dbed980bb14d08ecafddb30b4f634ffedd4a64a2d30b39803d4f7", "dweb:/ipfs/QmTnT9yk1AB2LydP2QWiyuPrTHAZzqFcrLLjkB5Q1z7DpD"], "license": "GPL-3.0" }, "src/v08/IEntryPointFilterOpsOverride.sol": { "keccak256": "0xe069a104d10fd2a44eaa5fb8e5b42c88db1b79e2fb158d479baf1d037100aa0e", "urls": ["bzz-raw://f1440a823d770d3b70e73c769ac97039facc8b9cdb3f41debd37ae7a12ef5e9b", "dweb:/ipfs/QmahuKjkumBBkJEgfogRM2Pa3sSFLQ6mkyXBao87G4EF4T"], "license": "MIT" }, "src/v09/IEntryPointFilterOpsOverride.sol": { "keccak256": "0x650c3d21c5c2cf5df86280c280361470636fa01aa697928d8c9cb6e3d304121a", "urls": ["bzz-raw://099ac0bd696fa0a16ade75f8bac3d0e60cdee9d8cec1c44f2b231095f566104f", "dweb:/ipfs/QmNf3jPVQ3bZtGpKtuR1aqV8bT16MhZSj4qmxUbmSiBXR5"], "license": "MIT" } }, "version": 1 }, "id": 37 }
|