@pimlico/alto 0.0.0-main.20250626T085447 → 0.0.0-main.20250627T140102
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/Eip7702Support.sol/Eip7702Support.json +1 -1
- package/contracts/EntryPoint.sol/EntryPoint.json +1 -1
- package/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
- package/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
- 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/IERC5267.sol/IERC5267.json +1 -1
- package/contracts/IEntryPoint.sol/IEntryPoint.json +1 -1
- 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/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/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/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/UserOperationLib.sol/UserOperationLib.json +1 -1
- package/contracts/build-info/004071c167bc55de.json +1 -0
- package/contracts/build-info/{257ff8e2b1124ead.json → 2f5dec90e180c3a0.json} +1 -1
- package/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
- package/esm/cli/customTransport.js +3 -2
- package/esm/cli/customTransport.js.map +1 -1
- package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
- package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
- package/esm/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
- package/esm/executor/executorManager.js +1 -1
- package/esm/executor/executorManager.js.map +1 -1
- package/esm/executor/filterOpsAndEstimateGas.js +7 -7
- package/esm/executor/filterOpsAndEstimateGas.js.map +1 -1
- package/esm/executor/getBundleStatus.js +2 -2
- package/esm/executor/getBundleStatus.js.map +1 -1
- package/esm/executor/userOpMonitor.d.ts +1 -1
- package/esm/executor/userOpMonitor.js +17 -17
- package/esm/executor/userOpMonitor.js.map +1 -1
- package/esm/executor/utils.js +5 -2
- package/esm/executor/utils.js.map +1 -1
- package/esm/handlers/eventManager.d.ts +9 -9
- package/esm/handlers/eventManager.js +22 -22
- package/esm/handlers/eventManager.js.map +1 -1
- package/esm/mempool/mempool.js +17 -17
- package/esm/mempool/mempool.js.map +1 -1
- package/esm/mempool/monitoring.d.ts +3 -3
- package/esm/mempool/monitoring.js +11 -11
- package/esm/mempool/monitoring.js.map +1 -1
- package/esm/mempool/reputationManager.d.ts +26 -26
- package/esm/mempool/reputationManager.js +65 -65
- package/esm/mempool/reputationManager.js.map +1 -1
- package/esm/rpc/estimation/gasEstimationHandler.d.ts +8 -8
- package/esm/rpc/estimation/gasEstimationHandler.js +16 -16
- package/esm/rpc/estimation/gasEstimationHandler.js.map +1 -1
- package/esm/rpc/estimation/{gasEstimationsV06.d.ts → gasEstimations06.d.ts} +5 -5
- package/esm/rpc/estimation/gasEstimations06.js +68 -0
- package/esm/rpc/estimation/gasEstimations06.js.map +1 -0
- package/esm/rpc/estimation/gasEstimations07.d.ts +89 -0
- package/esm/rpc/estimation/gasEstimations07.js +386 -0
- package/esm/rpc/estimation/gasEstimations07.js.map +1 -0
- package/esm/rpc/estimation/types.d.ts +23 -111
- package/esm/rpc/estimation/types.js +5 -121
- package/esm/rpc/estimation/types.js.map +1 -1
- package/esm/rpc/estimation/utils.d.ts +51 -0
- package/esm/rpc/estimation/utils.js +182 -0
- package/esm/rpc/estimation/utils.js.map +1 -0
- package/esm/rpc/methods/boost_sendUserOperation.js +14 -15
- package/esm/rpc/methods/boost_sendUserOperation.js.map +1 -1
- package/esm/rpc/methods/eth_estimateUserOperationGas.js +29 -32
- package/esm/rpc/methods/eth_estimateUserOperationGas.js.map +1 -1
- package/esm/rpc/methods/eth_getUserOperationByHash.js +6 -6
- package/esm/rpc/methods/eth_getUserOperationByHash.js.map +1 -1
- package/esm/rpc/methods/eth_getUserOperationReceipt.js +3 -3
- package/esm/rpc/methods/eth_getUserOperationReceipt.js.map +1 -1
- package/esm/rpc/methods/eth_sendUserOperation.d.ts +2 -2
- package/esm/rpc/methods/eth_sendUserOperation.js +33 -34
- package/esm/rpc/methods/eth_sendUserOperation.js.map +1 -1
- package/esm/rpc/methods/pimlico_getUserOperationStatus.js +2 -2
- package/esm/rpc/methods/pimlico_getUserOperationStatus.js.map +1 -1
- package/esm/rpc/methods/pimlico_sendUserOperationNow.js +11 -11
- package/esm/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
- package/esm/rpc/rpcHandler.d.ts +4 -4
- package/esm/rpc/rpcHandler.js +34 -36
- package/esm/rpc/rpcHandler.js.map +1 -1
- package/esm/rpc/validation/SafeValidator.d.ts +13 -13
- package/esm/rpc/validation/SafeValidator.js +59 -57
- package/esm/rpc/validation/SafeValidator.js.map +1 -1
- package/esm/rpc/validation/TracerResultParserV06.d.ts +2 -2
- package/esm/rpc/validation/TracerResultParserV06.js +4 -4
- package/esm/rpc/validation/TracerResultParserV06.js.map +1 -1
- package/esm/rpc/validation/TracerResultParserV07.d.ts +2 -2
- package/esm/rpc/validation/TracerResultParserV07.js +8 -8
- package/esm/rpc/validation/TracerResultParserV07.js.map +1 -1
- package/esm/rpc/validation/UnsafeValidator.d.ts +19 -19
- package/esm/rpc/validation/UnsafeValidator.js +39 -33
- package/esm/rpc/validation/UnsafeValidator.js.map +1 -1
- package/esm/store/createMemoryOutstandingStore.js +4 -4
- package/esm/store/createMemoryOutstandingStore.js.map +1 -1
- package/esm/store/createMempoolStore.js +2 -2
- package/esm/store/createMempoolStore.js.map +1 -1
- package/esm/store/createRedisOutstandingStore.js +4 -4
- package/esm/store/createRedisOutstandingStore.js.map +1 -1
- package/esm/types/contracts/PimlicoSimulations.d.ts +1083 -96
- package/esm/types/contracts/PimlicoSimulations.js +1357 -88
- package/esm/types/contracts/PimlicoSimulations.js.map +1 -1
- package/esm/types/contracts/index.d.ts +0 -2
- package/esm/types/contracts/index.js +0 -2
- package/esm/types/contracts/index.js.map +1 -1
- package/esm/types/interfaces.d.ts +14 -14
- package/esm/types/validation.d.ts +208 -222
- package/esm/types/validation.js +0 -8
- package/esm/types/validation.js.map +1 -1
- package/esm/utils/helpers.d.ts +2 -2
- package/esm/utils/helpers.js +2 -2
- package/esm/utils/helpers.js.map +1 -1
- package/esm/utils/metrics.d.ts +9 -9
- package/esm/utils/metrics.js +18 -18
- package/esm/utils/metrics.js.map +1 -1
- package/esm/utils/preVerificationGasCalulator.d.ts +3 -3
- package/esm/utils/preVerificationGasCalulator.js +13 -13
- package/esm/utils/preVerificationGasCalulator.js.map +1 -1
- package/esm/utils/toViemStateOverrides.d.ts +4 -0
- package/esm/utils/toViemStateOverrides.js +44 -0
- package/esm/utils/toViemStateOverrides.js.map +1 -0
- package/esm/utils/userop.d.ts +15 -15
- package/esm/utils/userop.js +77 -77
- package/esm/utils/userop.js.map +1 -1
- package/package.json +1 -1
- package/contracts/build-info/10cf9b18fcc1598e.json +0 -1
- package/esm/rpc/estimation/gasEstimationsV06.js +0 -156
- package/esm/rpc/estimation/gasEstimationsV06.js.map +0 -1
- package/esm/rpc/estimation/gasEstimationsV07.d.ts +0 -101
- package/esm/rpc/estimation/gasEstimationsV07.js +0 -724
- package/esm/rpc/estimation/gasEstimationsV07.js.map +0 -1
- package/esm/types/contracts/EntryPointSimulationsV6.d.ts +0 -33
- package/esm/types/contracts/EntryPointSimulationsV6.js +0 -46
- package/esm/types/contracts/EntryPointSimulationsV6.js.map +0 -1
- package/esm/types/contracts/EntryPointSimulationsV7.d.ts +0 -2076
- package/esm/types/contracts/EntryPointSimulationsV7.js +0 -2675
- package/esm/types/contracts/EntryPointSimulationsV7.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "abi": [{ "type": "constructor", "inputs": [], "stateMutability": "nonpayable" }, { "type": "receive", "stateMutability": "payable" }, { "type": "function", "name": "_paymasterValidation", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "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": "outOpInfo", "type": "tuple", "internalType": "struct EntryPoint.UserOpInfo", "components": [{ "name": "mUserOp", "type": "tuple", "internalType": "struct EntryPoint.MemoryUserOp", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymaster", "type": "address", "internalType": "address" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "contextOffset", "type": "uint256", "internalType": "uint256" }, { "name": "preOpGas", "type": "uint256", "internalType": "uint256" }] }], "outputs": [{ "name": "validationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "_validatePrepayment", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "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": "outOpInfo", "type": "tuple", "internalType": "struct EntryPoint.UserOpInfo", "components": [{ "name": "mUserOp", "type": "tuple", "internalType": "struct EntryPoint.MemoryUserOp", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymaster", "type": "address", "internalType": "address" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "contextOffset", "type": "uint256", "internalType": "uint256" }, { "name": "preOpGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "validatePaymasterPrepayment", "type": "bool", "internalType": "bool" }], "outputs": [{ "name": "validationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "addStake", "inputs": [{ "name": "unstakeDelaySec", "type": "uint32", "internalType": "uint32" }], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "balanceOf", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "binarySearchCallGasLimit", "inputs": [{ "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct SimulationArgs[]", "components": [{ "name": "op", "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": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct SimulationArgs", "components": [{ "name": "op", "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": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "address" }, { "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.TargetCallResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "binarySearchPaymasterVerificationGasLimit", "inputs": [{ "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct SimulationArgs[]", "components": [{ "name": "op", "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": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct SimulationArgs", "components": [{ "name": "op", "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": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "address" }, { "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.TargetCallResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "binarySearchVerificationGasLimit", "inputs": [{ "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct SimulationArgs[]", "components": [{ "name": "op", "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": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct SimulationArgs", "components": [{ "name": "op", "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": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "address" }, { "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.TargetCallResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "depositTo", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "deposits", "inputs": [{ "name": "", "type": "address", "internalType": "address" }], "outputs": [{ "name": "deposit", "type": "uint256", "internalType": "uint256" }, { "name": "staked", "type": "bool", "internalType": "bool" }, { "name": "stake", "type": "uint112", "internalType": "uint112" }, { "name": "unstakeDelaySec", "type": "uint32", "internalType": "uint32" }, { "name": "withdrawTime", "type": "uint48", "internalType": "uint48" }], "stateMutability": "view" }, { "type": "function", "name": "getDepositInfo", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [{ "name": "info", "type": "tuple", "internalType": "struct IStakeManager.DepositInfo", "components": [{ "name": "deposit", "type": "uint256", "internalType": "uint256" }, { "name": "staked", "type": "bool", "internalType": "bool" }, { "name": "stake", "type": "uint112", "internalType": "uint112" }, { "name": "unstakeDelaySec", "type": "uint32", "internalType": "uint32" }, { "name": "withdrawTime", "type": "uint48", "internalType": "uint48" }] }], "stateMutability": "view" }, { "type": "function", "name": "getNonce", "inputs": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "key", "type": "uint192", "internalType": "uint192" }], "outputs": [{ "name": "nonce", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "getUserOpHash", "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" }] }], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "incrementNonce", "inputs": [{ "name": "key", "type": "uint192", "internalType": "uint192" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "innerHandleOp", "inputs": [{ "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "opInfo", "type": "tuple", "internalType": "struct EntryPoint.UserOpInfo", "components": [{ "name": "mUserOp", "type": "tuple", "internalType": "struct EntryPoint.MemoryUserOp", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymaster", "type": "address", "internalType": "address" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "contextOffset", "type": "uint256", "internalType": "uint256" }, { "name": "preOpGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "context", "type": "bytes", "internalType": "bytes" }, { "name": "preGas", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "actualGasCost", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "nonceSequenceNumber", "inputs": [{ "name": "", "type": "address", "internalType": "address" }, { "name": "", "type": "uint192", "internalType": "uint192" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "simulateCall", "inputs": [{ "name": "entryPoint", "type": "address", "internalType": "address" }, { "name": "payload", "type": "bytes", "internalType": "bytes" }, { "name": "gas", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "success", "type": "bool", "internalType": "bool" }, { "name": "result", "type": "bytes", "internalType": "bytes" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateCallAndRevert", "inputs": [{ "name": "target", "type": "address", "internalType": "address" }, { "name": "data", "type": "bytes", "internalType": "bytes" }, { "name": "gas", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateHandleOp", "inputs": [{ "name": "op", "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": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "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": "simulateHandleOpBulk", "inputs": [{ "name": "ops", "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": "simulateHandleOpLast", "inputs": [{ "name": "ops", "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": "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" }] }], "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": "function", "name": "simulateValidationBulk", "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" }] }], "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": "function", "name": "simulateValidationLast", "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" }] }], "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": "function", "name": "unlockStake", "inputs": [], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "withdrawStake", "inputs": [{ "name": "withdrawAddress", "type": "address", "internalType": "address payable" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "withdrawTo", "inputs": [{ "name": "withdrawAddress", "type": "address", "internalType": "address payable" }, { "name": "withdrawAmount", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "event", "name": "AccountDeployed", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "factory", "type": "address", "indexed": false, "internalType": "address" }, { "name": "paymaster", "type": "address", "indexed": false, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "BeforeExecution", "inputs": [], "anonymous": false }, { "type": "event", "name": "Deposited", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "totalDeposit", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "PostOpRevertReason", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "revertReason", "type": "bytes", "indexed": false, "internalType": "bytes" }], "anonymous": false }, { "type": "event", "name": "SignatureAggregatorChanged", "inputs": [{ "name": "aggregator", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "StakeLocked", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "totalStaked", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "StakeUnlocked", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "withdrawTime", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "StakeWithdrawn", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "withdrawAddress", "type": "address", "indexed": false, "internalType": "address" }, { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "UserOperationEvent", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "paymaster", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "success", "type": "bool", "indexed": false, "internalType": "bool" }, { "name": "actualGasCost", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "actualGasUsed", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "UserOperationPrefundTooLow", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "UserOperationRevertReason", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "revertReason", "type": "bytes", "indexed": false, "internalType": "bytes" }], "anonymous": false }, { "type": "event", "name": "Withdrawn", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "withdrawAddress", "type": "address", "indexed": false, "internalType": "address" }, { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "error", "name": "CallPhaseReverted", "inputs": [{ "name": "reason", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "FailedOp", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "reason", "type": "string", "internalType": "string" }] }, { "type": "error", "name": "FailedOpWithRevert", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "reason", "type": "string", "internalType": "string" }, { "name": "inner", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "PostOpReverted", "inputs": [{ "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "ReentrancyGuardReentrantCall", "inputs": [] }, { "type": "error", "name": "SenderAddressResult", "inputs": [{ "name": "sender", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "SignatureValidationFailed", "inputs": [{ "name": "aggregator", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "SimulationOutOfGas", "inputs": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "innerCallResult", "inputs": [{ "name": "remainingGas", "type": "uint256", "internalType": "uint256" }] }], "bytecode": { "object": "0x60c080604052346101005760016002556101948181016001600160401b038111838210176100ea578291614cda833903906000f080156100de576080523060a052610048610105565b60008152602081019060008252806020610060610105565b600081520152600380546001600160a01b03191690555160045551600555604051614bb5908161012582396080518161411c015260a051818181612bf40152818161342c01528181613488015281816136720152818161372f0152818161378a0152818161389d0152818161395a015281816139b50152613ac80152f35b6040513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fd5b60408051919082016001600160401b038111838210176100ea5760405256fe60806040526004361015610023575b361561001957600080fd5b610021612cec565b005b60003560e01c80630396cb60146101c357806303d1dcaf146101be5780630bd28e3b146101b95780630da82661146101b45780630dbfc6bd146101af5780631b2e01b8146101aa578063205c2878146101a557806321e60b37146101a057806322cdde4c1461019b578063263934db1461019657806330ec25d11461019157806335567e1a1461018c57806344403473146101875780635287ce121461018257806370a082311461017d5780637472949c1461017857806376ad61231461017357806397b2dcb91461016e578063b760faf914610169578063bb9fe6bf14610164578063c23a5cea1461015f578063c3bce0091461015a578063c579f76b14610155578063f7e426e814610150578063fc7e286d1461014b5763fe2171cb0361000e57611926565b611898565b61185f565b6115cf565b611598565b611471565b61134a565b61131f565b611125565b6110ec565b6110cc565b61108e565b610f7d565b610f37565b610e65565b610de7565b610cd0565b610c9f565b610ba2565b610aaa565b610a49565b6109cb565b61081d565b610593565b6104f6565b60203660031901126103b95760043563ffffffff8116908181036103b9576103b47fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c019161039661028461027461022c336001600160a01b03166000526000602052604060002090565b96610238811515611976565b61026560018901549161025e6102558463ffffffff9060781c1690565b63ffffffff1690565b11156119c1565b60081c6001600160701b031690565b6001600160701b03349116611a3f565b94610290861515611a4c565b6102a36001600160701b03871115611a97565b546102ac61069d565b908152600160208201526001600160701b038616604082015263ffffffff83166060820152600060808201526102f5336001600160a01b03166000526000602052604060002090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b600080fd5b9181601f840112156103b95782359167ffffffffffffffff83116103b9576020808501948460051b0101116103b957565b6001600160a01b038116036103b957565b359061040b826103ef565b565b60c06003198201126103b95760043567ffffffffffffffff81116103b95781610438916004016103be565b929092916024359067ffffffffffffffff82116103b95760609082900360031901126103b9576004019060443561046e816103ef565b90606435906084359060a43590565b60005b8381106104905750506000910152565b8181015183820152602001610480565b906020916104b98151809281855285808601910161047d565b601f01601f1916010190565b608060406104f3936020845280516020850152602081015115158285015201519160608082015201906104a0565b90565b346103b95761057961056d61055661050d3661040d565b969194909561051d949394611ae2565b50610550610529611b03565b61053e6105368780611b73565b825190612d40565b6105488680611b73565b905a91612f9b565b50613276565b6105686105638280611b73565b61333b565b6133ce565b604051918291826104c5565b0390f35b602435906001600160c01b03821682036103b957565b346103b95760203660031901126103b9576004356001600160c01b03811681036103b9576105e1903360005260016020526040600020906001600160c01b0316600052602052604060002090565b6105eb8154611b89565b9055005b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761062157604052565b6105ef565b6060810190811067ffffffffffffffff82111761062157604052565b610140810190811067ffffffffffffffff82111761062157604052565b6040810190811067ffffffffffffffff82111761062157604052565b90601f8019910116810190811067ffffffffffffffff82111761062157604052565b6040519061040b60a08361067b565b6040519061040b6101408361067b565b6040519061040b6101008361067b565b6040519061040b60408361067b565b6040519061040b60608361067b565b6040519061040b6101208361067b565b67ffffffffffffffff811161062157601f01601f191660200190565b929192610722826106fa565b91610730604051938461067b565b8294818452818301116103b9578281602093846000960137010152565b9080601f830112156103b9578160206104f393359101610716565b60431901906101c082126103b95760405161078281610605565b6101408193126103b9576107946106ac565b61079e6044610400565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c08201526107dc610124610400565b60e0820152610144356101008201526101643561012082015281526101843560208201526101a43560408201526101c435606082015260806101e435910152565b346103b9576102203660031901126103b95760043567ffffffffffffffff81116103b95761084f90369060040161074d565b3660231901906101c082126103b9576101406040519261086e84610605565b126103b95761087b6106ac565b6108856024610400565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c08201526108c2610104610400565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359067ffffffffffffffff82116103b95760409261092961093493369060040161074d565b906102043592611b98565b82519182526020820152f35b60206003198201126103b9576004359067ffffffffffffffff82116103b95761096b916004016103be565b9091565b9061010060e06104f393805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e082015201906104a0565b346103b9576109e26109dc36610940565b90611f05565b6040518091602082016020835281518091526040830190602060408260051b8601019301916000905b828210610a1a57505050500390f35b91936001919395506020610a398192603f198a8203018652885161096f565b9601920192018594939192610a0b565b346103b95760403660031901126103b9576020610aa1600435610a6b816103ef565b6001600160a01b03610a7b61057d565b9116600052600183526040600020906001600160c01b0316600052602052604060002090565b54604051908152f35b346103b95760403660031901126103b957600435610ac7816103ef565b602435336000526000602052604060002091825490818311610b4f5760008080856001600160a01b03829589610b00846100219a6120af565b9055604080516001600160a01b03831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af1610b496120bc565b506120ec565b606460405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b90816101209103126103b95790565b346103b9576102003660031901126103b95760243560043567ffffffffffffffff82116103b957610bda610579923690600401610b93565b90610be436610768565b600092815192610bf48483612d40565b610bfd82612137565b60208401526001600160a01b0360e0610c3786610100604082015160608301510160808301510160a08301510160c0830151019101510290565b95015116610c5f575b6040805160008082526020820188905291810191909152806060810188565b610c699450613c92565b905038808080610c40565b60206003198201126103b9576004359067ffffffffffffffff82116103b9576104f391600401610b93565b346103b9576020610cb7610cb236610c74565b612137565b604051908152f35b9060206104f392818152019061096f565b346103b957610cfc610ce136610940565b809291610cec611e05565b50610cf682611e5a565b50611f05565b6000198201918211610d2a5761057991610d1591611ef1565b5160405191829160208352602083019061096f565b611a0c565b906104f39060e06080610d81818651610140865280516101408701526020810151610160870152604081015161018087015260608101516101a0870152015160a06101c08601526101e08501906104a0565b60208087015180518683015201516040850152946040810151805160608601526020015160808501526060810151805160a08601526020015160c0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b346103b957610dfe610df836610940565b906122c8565b6040518091602082016020835281518091526040830190602060408260051b8601019301916000905b828210610e3657505050500390f35b91936001919395506020610e558192603f198a82030186528851610d2f565b9601920192018594939192610e27565b346103b95760403660031901126103b9576020600435610e84816103ef565b6001600160a01b03610e9461057d565b911660005260018252610ebe816040600020906001600160c01b0316600052602052604060002090565b546040805192901b67ffffffffffffffff1916178152f35b60606003198201126103b957600435610eee816103ef565b9160243567ffffffffffffffff81116103b957826023820112156103b95780600401359267ffffffffffffffff84116103b957602484830101116103b957602401919060443590565b346103b95760008080610f4936610ed6565b939181604094929451948592833781018381520393f1610f676120bc565b9015610f6f57005b80519081156103b957602001fd5b346103b95760203660031901126103b9576001600160a01b03600435610fa2816103ef565b60006080604051610fb281610605565b8281528260208201528260408201528260608201520152166000526000602052610579604060002061103a65ffffffffffff600160405193610ff385610605565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b346103b95760203660031901126103b9576001600160a01b036004356110b3816103ef565b1660005260006020526020604060002054604051908152f35b346103b95761057961056d6110e03661040d565b959490949391936123b5565b346103b95761057961056d6111136111033661040d565b9691949095610550949394611ae2565b6111206105638280611b73565b6136ef565b346103b95760603660031901126103b95760043567ffffffffffffffff81116103b957611156903690600401610b93565b602435611162816103ef565b60443567ffffffffffffffff81116103b95761118290369060040161074d565b9161118b611e05565b5060009160028054146113105761057993600280556111a8611b03565b6111b18461333b565b6111bb81856128b6565b91955a6060850151856111d16060850185612618565b8c60038211611308575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b036112ef57505061123f611253611258956020840151604051938492638dd7712f60e01b6020850152604060248501526064840190612e6b565b90604483015203601f19810183528261067b565b611b98565b9390975b80956060976001600160a01b0381166112c6575b5050509560806112ab96970151976112866106bc565b988952602089015260408801526060870152608086015260a0850152151560c0840152565b60e08201526112ba6001600255565b60405191829182610cbf565b6112ab98508280949850602083519301915af19560806112e46120bc565b979591979638611270565b611300955090611253913691610716565b93909761125c565b5081356111db565b600483633ee5aeb560e01b8152fd5b60203660031901126103b95761002160043561133a816103ef565b612442565b60009103126103b957565b346103b95760003660031901126103b9573360005260006020526001604060002001805463ffffffff8160781c161561142d576113b66113a86102558361139c6113976113f09660ff1690565b612483565b60781c63ffffffff1690565b65ffffffffffff42166124ce565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a9080602081016103b4565b606460405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b346103b95760203660031901126103b9576100216000808080600435611496816103ef565b6001600160a01b0360016114bd336001600160a01b03166000526000602052604060002090565b019161154b83549361152365ffffffffffff61150f6114f56114e9896001600160701b039060081c1690565b6001600160701b031690565b976115018915156124ec565b60981c65ffffffffffff1690565b1661151b811515612537565b421015612582565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03831681526020810185905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2165af16115926120bc565b506125cd565b346103b9576105796115b16115ac36610c74565b6126f0565b604051918291602083526020830190610d2f565b801515036103b957565b346103b9576102203660031901126103b95760043560243567ffffffffffffffff81116103b957611604903690600401610b93565b9061160e36610768565b610204359061161c826115c5565b6000935a82519361162d8584612d40565b61163683612137565b60208501526040850151956116826effffffffffffffffffffffffffffff8860c08901511760608901511760808901511760a08901511761010089015117610120890151171115612855565b6116ad86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b906116bb88838888856130f7565b976116e26116de6116d38a516001600160a01b031690565b60208b015190613ffc565b1590565b61180a575a8503116117b8576060926001600160a01b0361170e60e05a9a01516001600160a01b031690565b16151590816117b0575b50611779575b509360806117559460a061175095610579999561175c99604087015260608601525a9003910135019101525a906120af565b6128a0565b6064900490565b604051938493846040919493926060820195825260208201520152565b8198506105799692508460a06117509561179e899561175c9a6117559a608097613c92565b9c90969a50949850955050945061171e565b905038611718565b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d69740000606482015280608481015b0390fd5b61180682604051918291631101335b60e11b835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b346103b95761187961187036610ed6565b92919091612b9d565b90610579604051928392151583526040602084015260408301906104a0565b346103b95760203660031901126103b9576001600160a01b036004356118bd816103ef565b16600052600060205265ffffffffffff604060002060018154910154908260405193849360a0850193855260ff8116151560208601526001600160701b03808260081c1616604086015263ffffffff808260781c1616606086015260981c161660808301520390f35b346103b95761194861193736610940565b809291611942612241565b506122c8565b6000198201918211610d2a576105799161196191611ef1565b51604051918291602083526020830190610d2f565b1561197d57565b606460405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b156119c857565b606460405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b634e487b7160e01b600052601160045260246000fd5b906113888201809211610d2a57565b9060018201809211610d2a57565b91908201809211610d2a57565b15611a5357565b606460405162461bcd60e51b815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611a9e57565b606460405162461bcd60e51b815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b60405190611aef82610626565b606060408360008152600060208201520152565b60405190611b1082610605565b6000608083604051611b2181610642565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b90359061011e19813603018212156103b9570190565b6000198114610d2a5760010190565b93929093845190606082015181519081611d83575b505050505a900360808401510192600093845a835194611bcc86614949565b92611be160e08801516001600160a01b031690565b6001600160a01b038116919082611cb15750505050611c0785516001600160a01b031690565b925b5a8203019460a06060820151910151019160808501928351870390818111611c9c575b505085029460408501938451878110600014611c7157505050611c6d939450611c556000613b89565b5a9003905101905183611c688295614a42565b614973565b9190565b611c6d969295508780955060019450611c8c92910390613e69565b50611c976000613b89565b6149db565b9196916064919003600a020401943880611c2c565b95928051611cc2575b505050611c09565b9091929950611cd082613b89565b5a9260a089015190803b15611d7f579183929187848196948f611d25604051998a97889687947f7c627b2100000000000000000000000000000000000000000000000000000000865202908660048601613b98565b0393f19182611d65575b5050611d5957611806611d40613b45565b6040519182916365c8fd4d60e01b835260048301613bca565b5a900396388080611cba565b611d72611d78928261067b565b8061133f565b3880611d2f565b8380fd5b600080949360206001600160a01b0383965116910192f115611da85738808080611bad565b611806611db3613b45565b6040519182917f462c71b20000000000000000000000000000000000000000000000000000000083526020600484015260248301906104a0565b67ffffffffffffffff81116106215760051b60200190565b60405190610100820182811067ffffffffffffffff82111761062157604052606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b90611e6482611ded565b611e71604051918261067b565b8281528092611e82601f1991611ded565b019060005b828110611e9357505050565b602090611e9e611e05565b82828501015201611e87565b634e487b7160e01b600052603260045260246000fd5b90821015611ed7576104f39160051b810190611b73565b611eaa565b60405190611eeb60208361067b565b60008252565b8051821015611ed75760209160051b010190565b611f0e82611e5a565b9160005b818110611f1f5750505090565b611f2a818385611ec0565b6020906000604051611f3c848261067b565b52611f45611e05565b50600060028054146120825790612037600194939260028055611f66611b03565b92611f708161333b565b84611f7b85836128b6565b929091935a9088606081015191611f956060820182612618565b8a6003821161207a575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361206257505061125385638dd7712f60e01b9261123f6120029886015191604051958694850152604060248501526064840190612e6b565b93905b60806060980151986120156106bc565b998a52890152604088015285870152608086015260a0850152151560c0840152565b60e08201526120466001600255565b6120508287611ef1565b5261205b8186611ef1565b5001611f12565b612073965061125392503691610716565b9390612005565b508135611f9f565b80633ee5aeb560e01b60049252fd5b600319810191908211610d2a57565b600019810191908211610d2a57565b91908203918211610d2a57565b3d156120e7573d906120cd826106fa565b916120db604051938461067b565b82523d6000602084013e565b606090565b156120f357565b606460405162461bcd60e51b815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b60208101356121f961214c6040840184612618565b908160405191823720916121eb6121666060860186612618565b90816040519182372060c086013560a0870135608088013561219461218e60e08b018b612618565b90614b74565b936040519889976001600160a01b0360208a019c35168c94919260e096939998979491996001600160a01b0361010088019b168752602087015260408601526060850152608084015260a083015260c08201520152565b03601f19810183528261067b565b5190206040805160208101928352309181019190915246606082015261222281608081016121eb565b51902090565b604051906122358261065f565b60006020838281520152565b6040519061224e82610605565b8160405161225b81610605565b60008152600060208201526000604082015260006060820152606060808201528152612285612228565b6020820152612292612228565b604082015261229f612228565b60608201526080604051916122b38361065f565b600083526122bf612228565b60208401520152565b6122d182611ded565b916122df604051938461067b565b808352601f196122ee82611ded565b0160005b81811061233857505060005b81811061230b5750505090565b8061231c6115ac6001938587611ec0565b6123268287611ef1565b526123318186611ef1565b50016122fe565b602090612343612241565b828288010152016122f2565b908092918237016000815290565b356104f3816103ef565b6040519061237660208361067b565b6000808352366020840137565b9061238d826106fa565b61239a604051918261067b565b82815280926123ab601f19916106fa565b0190602036910137565b906123c891969594939296610550611ae2565b6001600160a01b036123da8680611b73565b6124036020880135916123ec836103ef565b6123f4611b03565b906123fe8161333b565b6128b6565b5050501615612415576104f39461391a565b5050505050612422612367565b6040519061242f82610626565b6000825260006020830152604082015290565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b036124773485613e69565b936040519485521692a2565b1561248a57565b606460405162461bcd60e51b815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b9065ffffffffffff8091169116019065ffffffffffff8211610d2a57565b156124f357565b606460405162461bcd60e51b815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b1561253e57565b606460405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b1561258957565b606460405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b156125d457565b606460405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b903590601e19813603018212156103b9570180359067ffffffffffffffff82116103b9576020019181360383136103b957565b906014116103b95790601490565b90929192836034116103b95783116103b957603401916033190190565b356bffffffffffffffffffffffff19811692919060148210612696575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b604051906126c38261065f565b6003546001600160a01b031682526040516020836126e08361065f565b6004548352600554828401520152565b6126f8612241565b50612701611b03565b9061270b8161333b565b61271582826128b6565b509190926127238385613e91565b61274061273b60e0835101516001600160a01b031690565b613fb9565b9161276e61275a61273b84516001600160a01b0390511690565b91612763612228565b506040810190612618565b90601482106128495761279061278a6127969361273b9361264b565b90612676565b60601c90565b916001600160a01b0386169460808201519660606040840151930151926127bb61069d565b98895260208901526040880152606087015260808601526127da6126b6565b938015158061283e575b61280c575b506127f261069d565b948552602085015260408401526060830152608082015290565b90935061281881613fb9565b6128326128236106cc565b6001600160a01b039093168352565b602082015292386127e9565b5060018114156127e4565b50506127966000613fb9565b1561285c57565b606460405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152fd5b90607382029180830460731490151715610d2a57565b90916000915a938051916128ca8382612d40565b6128d381612137565b602083015260408301519561291f6effffffffffffffffffffffffffffff8860c08701511760608701511760808701511760a08701511761010087015117610120870151171115612855565b61294a84610100604082015160608301510160808301510160a08301510160c0830151019101510290565b6129588882868660006130f7565b9761297b6116de61297088516001600160a01b031690565b602089015190613ffc565b612a72575a830311612a1e576060906001600160a01b036129a760e05a9801516001600160a01b031690565b16151580612a16575b6129e3575b6117509360a06104f39794879460809460406117559a015260608601525a9003910135019101525a906120af565b965050928260808360a06104f397612a048b61175599611750996000613c92565b9b9095985093509497505093506129b5565b5060016129b0565b604051631101335b60e11b815280611806600060048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b604051631101335b60e11b815280611806600060048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b908060209392818452848401376000828201840152601f01601f1916010190565b6040906001600160a01b036104f395931681528160208201520191612ac6565b6040513d6000823e3d90fd5b908151811015611ed7570160200190565b81601f820112156103b9578051612b3a816106fa565b92612b48604051948561067b565b818452602082840101116103b9576104f3916020808501910161047d565b9190916040818403126103b9578051612b7e816115c5565b92602082015167ffffffffffffffff81116103b9576104f39201612b24565b91926000936001600160a01b036060941691823b156103b957612c1d93600080946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501612ae7565b0393f19081612cd7575b5061096b575050612c366120bc565b906004825110612cc857612c52612c4d8351612091565b612383565b60045b8351811015612cb25780612c94612c6e60019387612b13565b517fff000000000000000000000000000000000000000000000000000000000000001690565b612cab612ca083612091565b9160001a9185612b13565b5301612c55565b5061096b91925060208082518301019101612b66565b9050612cd2612367565b600091565b80611d726000612ce69361067b565b38612c27565b61040b33612442565b15612cfc57565b606460405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b612dd790612d5d612d508261235d565b6001600160a01b03168452565b60208101356020840152612d8a6080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c0840152612dc160c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e0810190612618565b908115612e1357612dfb8260e092612df6603461040b97961015612cf5565b61404e565b60a085015260808401526001600160a01b0316910152565b505060a081600060e0819401528260808201520152565b908160209103126103b9575190565b9035601e19823603018112156103b957016020813591019167ffffffffffffffff82116103b95781360383136103b957565b6104f391612e8981612e7c84610400565b6001600160a01b03169052565b60208201356020820152612f1f612f13612eda612ebf612eac6040870187612e39565b6101206040880152610120870191612ac6565b612ecc6060870187612e39565b908683036060880152612ac6565b6080850135608085015260a085013560a085015260c085013560c0850152612f0560e0860186612e39565b9085830360e0870152612ac6565b92610100810190612e39565b91610100818503910152612ac6565b612f4660409295949395606083526060830190612e6b565b9460208201520152565b60a0906104f39392815260606020820152600d60608201527f4141323320726576657274656400000000000000000000000000000000000000608082015281604082015201906104a0565b92909161301e6020600095855193612fe860e0612fbf87516001600160a01b031690565b96612fda8a8c612fd26040890189612618565b9290916140ac565b01516001600160a01b031690565b91886001600160a01b038194161598896130bc575b85015191604051968795869485936306608bdf60e21b855260048501612f2e565b03926001600160a01b03881690f185918161308b575b5061305f5784613042613b45565b906118066040519283926365c8fd4d60e01b845260048401612f50565b93919261306a575050565b613087906001600160a01b03166000526000602052604060002090565b5050565b6130ae91925060203d6020116130b5575b6130a6818361067b565b810190612e2a565b9038613034565b503d61309c565b93506130db876001600160a01b03166000526000602052604060002090565b5480156130ee575084815b949050612ffd565b859082036130e6565b949291939060206131679186519361312e60e061311b87516001600160a01b031690565b96612fda8b8d612fd26040890189612618565b916001600160a01b0360009316159889613234575b84600091015191604051968795869485936306608bdf60e21b855260048501612f2e565b03926001600160a01b03881690f160009181613213575b5061318c5785613042613b45565b94929361319857505050565b6131b5906001600160a01b03166000526000602052604060002090565b918254908183116131c65750039055565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b61322d91925060203d6020116130b5576130a6818361067b565b903861317e565b9250613253866001600160a01b03166000526000602052604060002090565b548781111561326b5750600084815b94915050613143565b846000918903613262565b9160005b828110156133355761328a611b03565b6000908260051b860135605e198736030181121561333157906132c560019493928801916132bb6105638480611b73565b6123fe8380611b73565b50505060208101906132e56132d98361235d565b6001600160a01b031690565b1561332957826133036132f8829461235d565b926040810190612618565b91906133146040518094819361234f565b03925af1506133216120bc565b505b0161327a565b505050613323565b8280fd5b50915050565b61336e9061334c6040820182612618565b9161336681359161335c836103ef565b60e0810190612618565b93909261434d565b80516133775750565b61180690604051918291631101335b60e11b8352600060048401526040602484015260448301906104a0565b9392916133c9906001600160a01b036040931686526060602087015260608601906104a0565b930152565b939490946133da611ae2565b5060009280156136335761341f93506133f1611edc565b509160006134015a8860026146e8565b5a906040519687928392631efc84dd60e31b84528c600485016133a3565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215613587576000948593613612575b508294809381156135ef57505061347d909592919394955b85611a3f565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846134b588856120af565b106135c5575a6134c488611a22565b1161358c57918695939189959360008c8b6134f76134ee6134e8886135179f611a3f565b60011c90565b809b60026146e8565b835a936040519e8f9586948593631efc84dd60e31b8552600485016133a3565b03925af198891561358757600090819a613561575b501561354c5750505061353e846120a0565b95915b9390929495916134aa565b9396509461355b919750611a31565b94613541565b9061357f929a503d8091833e613577818361067b565b810190612b66565b98903861352c565b612b07565b7fe2c4d0be0000000000000000000000000000000000000000000000000000000060005260048290526024879052604483905260646000fd5b9650965050919550506135e791506135db6106db565b93845215156020840152565b604082015290565b965096505095505050506135e76136046106db565b600081529215156020840152565b90925061362991943d8091833e613577818361067b565b939093913861345f565b50613665915a91846136475a8960026146e8565b5a906040519687928392631efc84dd60e31b84528d600485016133a3565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1938415613587578580956136cb575b505083946136b381945a906120af565b9481156135ef57505061347d90959291939495613477565b909194506136e49295503d8091833e613577818361067b565b9390939238806136a3565b939490946136fb611ae2565b50600092801561387c576137229350613712611edc565b509160006134015a8860036146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af191821561358757600094859361385b575b508294809381156135ef57505061377f9095929193949585611a3f565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846137b788856120af565b106135c5575a6137c688611a22565b1161358c57918695939189959360008c8b6134f76137ea6134e8886137f39f611a3f565b809b60036146e8565b03925af198891561358757600090819a61383d575b50156138285750505061381a846120a0565b95915b9390929495916137ac565b93965094613837919750611a31565b9461381d565b90613853929a503d8091833e613577818361067b565b989038613808565b90925061387291943d8091833e613577818361067b565b9390939138613762565b50613890915a91846136475a8960036146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1938415613587578580956138f6575b505083946138de81945a906120af565b9481156135ef57505061377f90959291939495613477565b9091945061390f9295503d8091833e613577818361067b565b9390939238806138ce565b93949094613926611ae2565b506000928015613aa75761394d935061393d611edc565b509160006134015a8860016146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215613587576000948593613a86575b508294809381156135ef5750506139aa9095929193949585611a3f565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846139e288856120af565b106135c5575a6139f188611a22565b1161358c57918695939189959360008c8b6134f7613a156134e888613a1e9f611a3f565b809b60016146e8565b03925af198891561358757600090819a613a68575b5015613a5357505050613a45846120a0565b95915b9390929495916139d7565b93965094613a62919750611a31565b94613a48565b90613a7e929a503d8091833e613577818361067b565b989038613a33565b909250613a9d91943d8091833e613577818361067b565b939093913861398d565b50613abb915a91846136475a8960016146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af193841561358757858095613b21575b50508394613b0981945a906120af565b9481156135ef5750506139aa90959291939495613477565b90919450613b3a9295503d8091833e613577818361067b565b939093923880613af9565b3d6108008111613b6a575b604051906020818301016040528082526000602083013e90565b50610800613b50565b634e487b7160e01b600052602160045260246000fd5b60031115613b9357565b613b73565b90949392946003811015613b9357606092613bc09183526080602084015260808301906104a0565b9460408201520152565b9060a06104f3926000815260606020820152601460608201527f4141353020706f73744f70207265766572746564000000000000000000000000608082015281604082015201906104a0565b91906040838203126103b957825167ffffffffffffffff81116103b957602091613c41918501612b24565b92015190565b60a0906104f39392815260606020820152600d60608201527f4141333320726576657274656400000000000000000000000000000000000000608082015281604082015201906104a0565b929390915a92815190613caf60e08301516001600160a01b031690565b91613ccd836001600160a01b03166000526000602052604060002090565b8054898110613e14576001600160a01b0360206080600097958d9795613d2f9d9e8a960390550151970151926040519a8b96879586937f52b7512c00000000000000000000000000000000000000000000000000000000855260048501612f2e565b03931686f19384600091600096613ded575b50613d6c5785613d4f613b45565b906118066040519283926365c8fd4d60e01b845260048401613c47565b9491925a900311613d7a5750565b60408051631101335b60e11b815260048101929092526024820152602760448201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760648201527f61734c696d697400000000000000000000000000000000000000000000000000608482015260a490fd5b909550613e0d91503d806000833e613e05818361067b565b810190613c16565b9438613d41565b61180689604051918291631101335b60e11b835260048301608091815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b6001600160a01b0316600052600060205260406000208054918201809211610d2a5781905590565b613ea26001600160a01b0391614a85565b9116613f6d57613f1957613ebd6001600160a01b0391614a85565b5016613ec557565b604051631101335b60e11b815280611806600060048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b604051631101335b60e11b815280611806600060048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b6084604051631101335b60e11b81526000600482015260406024820152601460448201527f41413234207369676e6174757265206572726f720000000000000000000000006064820152fd5b906001600160a01b03613fca612228565b9216600052600060205263ffffffff6001604060002001546001600160701b038160081c16845260781c166020830152565b6001600160a01b0316600052600160205267ffffffffffffffff61403a8260401c6040600020906001600160c01b0316600052602052604060002090565b9182549261404784611b89565b9055161490565b9091826014116103b957813591836024116103b9576014810135936034116103b95760609290921c92608090811c9260240135901c90565b908160209103126103b957516104f3816103ef565b9160206104f3938181520191612ac6565b929091816140bb575b50505050565b8251516001600160a01b031693843b61430057604084510151602060405180927f570e1a36000000000000000000000000000000000000000000000000000000008252816000816141108a8a6004840161409b565b03926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690f1908115613587576000916142d1575b506001600160a01b03811695861561427c576001600160a01b0316809603614227573b156141da575061279061278a7fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d936141a79361264b565b602083810151935160e00151604080516001600160a01b039485168152939091169183019190915290a3388080806140b5565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b61180682604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b61180683604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b6142f3915060203d6020116142f9575b6142eb818361067b565b810190614086565b3861414d565b503d6142e1565b60408051631101335b60e11b815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b50929192159081614402575b506143c5576014811015614372575b50506104f3611edc565b6014116103b9573560601c3b1561438a573880614368565b60405161439860408261067b565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b50506040516143d560408261067b565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b1538614359565b610120813603126103b95761441f6106ea565b9061442981610400565b825260208101356020830152604081013567ffffffffffffffff81116103b957614456903690830161074d565b6040830152606081013567ffffffffffffffff81116103b95761447c903690830161074d565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff81116103b9576144c0903690830161074d565b60e08301526101008101359067ffffffffffffffff82116103b9576144e79136910161074d565b61010082015290565b60041115613b9357565b91926fffffffffffffffffffffffffffffffff196034959481936bffffffffffffffffffffffff199060601b168552166014840152166024820152614548825180936020868501910161047d565b010190565b80516001600160a01b031682526104f391602082015160208201526101006145ce61459e61458c604086015161012060408701526101208601906104a0565b606086015185820360608701526104a0565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526104a0565b920151906101008184039101526104a0565b60806101a09161012081516145fe8682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c087015261465260e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b6146be6146b3610200939695949660008452610220602085015261022084019061454d565b9560408301906145e0565b0152565b610200906146be6146b3600094969596858452610220602085015261022084019061454d565b6146f0611b03565b6147026146fd8480611b73565b61440c565b61470b836144f0565b600283146148645761471c836144f0565b600383146147dd575050806147326001926144f0565b1461477c5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b806121eb6147a76147a061479560206104f3960161235d565b936040810190612618565b3691610716565b936040519485937f44403473000000000000000000000000000000000000000000000000000000006020860152602485016133a3565b9150926fffffffffffffffffffffffffffffffff61482461481d614804866104f397611b73565b608001356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526121eb6040519384927fc579f76b000000000000000000000000000000000000000000000000000000006020850152602484016146c2565b9150926121eb906fffffffffffffffffffffffffffffffff19846148ef6148e161489d61489761335c856104f39b611b73565b9061404e565b9291905060609060e08a0195603487515111614925575b5060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b1690602086016144fa565b03601f19810184528361067b565b526040519485937f21e60b370000000000000000000000000000000000000000000000000000000060208601526024850161468e565b61494291925061493b61335c826147a093611b73565b8091612659565b90386148b4565b61012061010082015191015180821461496f5748018082101561496a575090565b905090565b5090565b9190917f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f608060208301519251946001600160a01b038651169460206001600160a01b0360e089015116970151916040519283526000602084015260408301526060820152a4565b9060807f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f9160208401519351956001600160a01b038751169560206001600160a01b0360e08a015116980151926040519384521515602084015260408301526060820152a4565b60208101519051907f67b4fa9642f42120bf031f3051d1824b0fe25627945b27b8a6a65d5761d5482e6020806001600160a01b03855116940151604051908152a3565b8015614b6b57600060408051614a9a81610626565b828152826020820152015265ffffffffffff8160a01c168015614b5e575b614b4090614b27614acf614ada614acf8660d01c90565b65ffffffffffff1690565b92614aff6001600160a01b03614aee6106db565b971687906001600160a01b03169052565b614b156020870194859065ffffffffffff169052565b65ffffffffffff166040860181905290565b4211908115614b43575b5091516001600160a01b031690565b91565b51614b56915065ffffffffffff16614acf565b421038614b31565b5065ffffffffffff614ab8565b50600090600090565b81604051918237209056fea2646970667358221220866dc43c4870dedc66bf343a4cd2aa2c82443a80802800def6bfb9d32efd32be64736f6c634300081c003360808060405234601557610179908161001b8239f35b600080fdfe6080600436101561000f57600080fd5b60003560e01c63570e1a361461002457600080fd5b3461013e57602036600319011261013e5760043567ffffffffffffffff811161013e573660238201121561013e57806004013567ffffffffffffffff811161013e57366024828401011161013e576000928160141161013a5760131982019167ffffffffffffffff831161012657600b8101601f19908116603f0116820167ffffffffffffffff8111838210176101125760246020959387600c819795829560405286845289840196603889018837830101525193013560601c5af19051901561010a575b60209073ffffffffffffffffffffffffffffffffffffffff60405191168152f35b5060006100e9565b602486634e487b7160e01b81526041600452fd5b602485634e487b7160e01b81526041600452fd5b8380fd5b600080fdfea2646970667358221220ea27187ca6f911e310b89c722db8d8e689e8b114dc6a370df66e14f7b719208264736f6c634300081c0033", "sourceMap": "938:15710:18:-:0;;;;;;;1857:1:14;2061:21;938:15710:18;1411:19:17;;;;-1:-1:-1;;;;;1411:19:17;;;;;;;;;;;;;;;-1:-1:-1;1411:19:17;;;;;;;1064:4:18;;;938:15710;;:::i;:::-;-1:-1:-1;938:15710:18;;1151:15;;;938:15710;-1:-1:-1;938:15710:18;;;1151:15;938:15710;;:::i;:::-;-1:-1:-1;938:15710:18;;1119:48;938:15710;1119:48;938:15710;;-1:-1:-1;;;;;;938:15710:18;;;;;;;;;;;;;;;;;1411:19:17;938:15710:18;;;;;1064:4;938:15710;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1411:19:17;938:15710:18;;;-1:-1:-1;938:15710:18;;;;;1411:19:17;938:15710:18;;;-1:-1:-1;938:15710:18;;;;;-1:-1:-1;938:15710:18;;;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;:::o", "linkReferences": {} }, "deployedBytecode": { "object": "0x60806040526004361015610023575b361561001957600080fd5b610021612cec565b005b60003560e01c80630396cb60146101c357806303d1dcaf146101be5780630bd28e3b146101b95780630da82661146101b45780630dbfc6bd146101af5780631b2e01b8146101aa578063205c2878146101a557806321e60b37146101a057806322cdde4c1461019b578063263934db1461019657806330ec25d11461019157806335567e1a1461018c57806344403473146101875780635287ce121461018257806370a082311461017d5780637472949c1461017857806376ad61231461017357806397b2dcb91461016e578063b760faf914610169578063bb9fe6bf14610164578063c23a5cea1461015f578063c3bce0091461015a578063c579f76b14610155578063f7e426e814610150578063fc7e286d1461014b5763fe2171cb0361000e57611926565b611898565b61185f565b6115cf565b611598565b611471565b61134a565b61131f565b611125565b6110ec565b6110cc565b61108e565b610f7d565b610f37565b610e65565b610de7565b610cd0565b610c9f565b610ba2565b610aaa565b610a49565b6109cb565b61081d565b610593565b6104f6565b60203660031901126103b95760043563ffffffff8116908181036103b9576103b47fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c019161039661028461027461022c336001600160a01b03166000526000602052604060002090565b96610238811515611976565b61026560018901549161025e6102558463ffffffff9060781c1690565b63ffffffff1690565b11156119c1565b60081c6001600160701b031690565b6001600160701b03349116611a3f565b94610290861515611a4c565b6102a36001600160701b03871115611a97565b546102ac61069d565b908152600160208201526001600160701b038616604082015263ffffffff83166060820152600060808201526102f5336001600160a01b03166000526000602052604060002090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b600080fd5b9181601f840112156103b95782359167ffffffffffffffff83116103b9576020808501948460051b0101116103b957565b6001600160a01b038116036103b957565b359061040b826103ef565b565b60c06003198201126103b95760043567ffffffffffffffff81116103b95781610438916004016103be565b929092916024359067ffffffffffffffff82116103b95760609082900360031901126103b9576004019060443561046e816103ef565b90606435906084359060a43590565b60005b8381106104905750506000910152565b8181015183820152602001610480565b906020916104b98151809281855285808601910161047d565b601f01601f1916010190565b608060406104f3936020845280516020850152602081015115158285015201519160608082015201906104a0565b90565b346103b95761057961056d61055661050d3661040d565b969194909561051d949394611ae2565b50610550610529611b03565b61053e6105368780611b73565b825190612d40565b6105488680611b73565b905a91612f9b565b50613276565b6105686105638280611b73565b61333b565b6133ce565b604051918291826104c5565b0390f35b602435906001600160c01b03821682036103b957565b346103b95760203660031901126103b9576004356001600160c01b03811681036103b9576105e1903360005260016020526040600020906001600160c01b0316600052602052604060002090565b6105eb8154611b89565b9055005b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761062157604052565b6105ef565b6060810190811067ffffffffffffffff82111761062157604052565b610140810190811067ffffffffffffffff82111761062157604052565b6040810190811067ffffffffffffffff82111761062157604052565b90601f8019910116810190811067ffffffffffffffff82111761062157604052565b6040519061040b60a08361067b565b6040519061040b6101408361067b565b6040519061040b6101008361067b565b6040519061040b60408361067b565b6040519061040b60608361067b565b6040519061040b6101208361067b565b67ffffffffffffffff811161062157601f01601f191660200190565b929192610722826106fa565b91610730604051938461067b565b8294818452818301116103b9578281602093846000960137010152565b9080601f830112156103b9578160206104f393359101610716565b60431901906101c082126103b95760405161078281610605565b6101408193126103b9576107946106ac565b61079e6044610400565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c08201526107dc610124610400565b60e0820152610144356101008201526101643561012082015281526101843560208201526101a43560408201526101c435606082015260806101e435910152565b346103b9576102203660031901126103b95760043567ffffffffffffffff81116103b95761084f90369060040161074d565b3660231901906101c082126103b9576101406040519261086e84610605565b126103b95761087b6106ac565b6108856024610400565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c08201526108c2610104610400565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359067ffffffffffffffff82116103b95760409261092961093493369060040161074d565b906102043592611b98565b82519182526020820152f35b60206003198201126103b9576004359067ffffffffffffffff82116103b95761096b916004016103be565b9091565b9061010060e06104f393805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e082015201906104a0565b346103b9576109e26109dc36610940565b90611f05565b6040518091602082016020835281518091526040830190602060408260051b8601019301916000905b828210610a1a57505050500390f35b91936001919395506020610a398192603f198a8203018652885161096f565b9601920192018594939192610a0b565b346103b95760403660031901126103b9576020610aa1600435610a6b816103ef565b6001600160a01b03610a7b61057d565b9116600052600183526040600020906001600160c01b0316600052602052604060002090565b54604051908152f35b346103b95760403660031901126103b957600435610ac7816103ef565b602435336000526000602052604060002091825490818311610b4f5760008080856001600160a01b03829589610b00846100219a6120af565b9055604080516001600160a01b03831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af1610b496120bc565b506120ec565b606460405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b90816101209103126103b95790565b346103b9576102003660031901126103b95760243560043567ffffffffffffffff82116103b957610bda610579923690600401610b93565b90610be436610768565b600092815192610bf48483612d40565b610bfd82612137565b60208401526001600160a01b0360e0610c3786610100604082015160608301510160808301510160a08301510160c0830151019101510290565b95015116610c5f575b6040805160008082526020820188905291810191909152806060810188565b610c699450613c92565b905038808080610c40565b60206003198201126103b9576004359067ffffffffffffffff82116103b9576104f391600401610b93565b346103b9576020610cb7610cb236610c74565b612137565b604051908152f35b9060206104f392818152019061096f565b346103b957610cfc610ce136610940565b809291610cec611e05565b50610cf682611e5a565b50611f05565b6000198201918211610d2a5761057991610d1591611ef1565b5160405191829160208352602083019061096f565b611a0c565b906104f39060e06080610d81818651610140865280516101408701526020810151610160870152604081015161018087015260608101516101a0870152015160a06101c08601526101e08501906104a0565b60208087015180518683015201516040850152946040810151805160608601526020015160808501526060810151805160a08601526020015160c0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b346103b957610dfe610df836610940565b906122c8565b6040518091602082016020835281518091526040830190602060408260051b8601019301916000905b828210610e3657505050500390f35b91936001919395506020610e558192603f198a82030186528851610d2f565b9601920192018594939192610e27565b346103b95760403660031901126103b9576020600435610e84816103ef565b6001600160a01b03610e9461057d565b911660005260018252610ebe816040600020906001600160c01b0316600052602052604060002090565b546040805192901b67ffffffffffffffff1916178152f35b60606003198201126103b957600435610eee816103ef565b9160243567ffffffffffffffff81116103b957826023820112156103b95780600401359267ffffffffffffffff84116103b957602484830101116103b957602401919060443590565b346103b95760008080610f4936610ed6565b939181604094929451948592833781018381520393f1610f676120bc565b9015610f6f57005b80519081156103b957602001fd5b346103b95760203660031901126103b9576001600160a01b03600435610fa2816103ef565b60006080604051610fb281610605565b8281528260208201528260408201528260608201520152166000526000602052610579604060002061103a65ffffffffffff600160405193610ff385610605565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b346103b95760203660031901126103b9576001600160a01b036004356110b3816103ef565b1660005260006020526020604060002054604051908152f35b346103b95761057961056d6110e03661040d565b959490949391936123b5565b346103b95761057961056d6111136111033661040d565b9691949095610550949394611ae2565b6111206105638280611b73565b6136ef565b346103b95760603660031901126103b95760043567ffffffffffffffff81116103b957611156903690600401610b93565b602435611162816103ef565b60443567ffffffffffffffff81116103b95761118290369060040161074d565b9161118b611e05565b5060009160028054146113105761057993600280556111a8611b03565b6111b18461333b565b6111bb81856128b6565b91955a6060850151856111d16060850185612618565b8c60038211611308575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b036112ef57505061123f611253611258956020840151604051938492638dd7712f60e01b6020850152604060248501526064840190612e6b565b90604483015203601f19810183528261067b565b611b98565b9390975b80956060976001600160a01b0381166112c6575b5050509560806112ab96970151976112866106bc565b988952602089015260408801526060870152608086015260a0850152151560c0840152565b60e08201526112ba6001600255565b60405191829182610cbf565b6112ab98508280949850602083519301915af19560806112e46120bc565b979591979638611270565b611300955090611253913691610716565b93909761125c565b5081356111db565b600483633ee5aeb560e01b8152fd5b60203660031901126103b95761002160043561133a816103ef565b612442565b60009103126103b957565b346103b95760003660031901126103b9573360005260006020526001604060002001805463ffffffff8160781c161561142d576113b66113a86102558361139c6113976113f09660ff1690565b612483565b60781c63ffffffff1690565b65ffffffffffff42166124ce565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a9080602081016103b4565b606460405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b346103b95760203660031901126103b9576100216000808080600435611496816103ef565b6001600160a01b0360016114bd336001600160a01b03166000526000602052604060002090565b019161154b83549361152365ffffffffffff61150f6114f56114e9896001600160701b039060081c1690565b6001600160701b031690565b976115018915156124ec565b60981c65ffffffffffff1690565b1661151b811515612537565b421015612582565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03831681526020810185905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2165af16115926120bc565b506125cd565b346103b9576105796115b16115ac36610c74565b6126f0565b604051918291602083526020830190610d2f565b801515036103b957565b346103b9576102203660031901126103b95760043560243567ffffffffffffffff81116103b957611604903690600401610b93565b9061160e36610768565b610204359061161c826115c5565b6000935a82519361162d8584612d40565b61163683612137565b60208501526040850151956116826effffffffffffffffffffffffffffff8860c08901511760608901511760808901511760a08901511761010089015117610120890151171115612855565b6116ad86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b906116bb88838888856130f7565b976116e26116de6116d38a516001600160a01b031690565b60208b015190613ffc565b1590565b61180a575a8503116117b8576060926001600160a01b0361170e60e05a9a01516001600160a01b031690565b16151590816117b0575b50611779575b509360806117559460a061175095610579999561175c99604087015260608601525a9003910135019101525a906120af565b6128a0565b6064900490565b604051938493846040919493926060820195825260208201520152565b8198506105799692508460a06117509561179e899561175c9a6117559a608097613c92565b9c90969a50949850955050945061171e565b905038611718565b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d69740000606482015280608481015b0390fd5b61180682604051918291631101335b60e11b835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b346103b95761187961187036610ed6565b92919091612b9d565b90610579604051928392151583526040602084015260408301906104a0565b346103b95760203660031901126103b9576001600160a01b036004356118bd816103ef565b16600052600060205265ffffffffffff604060002060018154910154908260405193849360a0850193855260ff8116151560208601526001600160701b03808260081c1616604086015263ffffffff808260781c1616606086015260981c161660808301520390f35b346103b95761194861193736610940565b809291611942612241565b506122c8565b6000198201918211610d2a576105799161196191611ef1565b51604051918291602083526020830190610d2f565b1561197d57565b606460405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b156119c857565b606460405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b634e487b7160e01b600052601160045260246000fd5b906113888201809211610d2a57565b9060018201809211610d2a57565b91908201809211610d2a57565b15611a5357565b606460405162461bcd60e51b815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611a9e57565b606460405162461bcd60e51b815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b60405190611aef82610626565b606060408360008152600060208201520152565b60405190611b1082610605565b6000608083604051611b2181610642565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b90359061011e19813603018212156103b9570190565b6000198114610d2a5760010190565b93929093845190606082015181519081611d83575b505050505a900360808401510192600093845a835194611bcc86614949565b92611be160e08801516001600160a01b031690565b6001600160a01b038116919082611cb15750505050611c0785516001600160a01b031690565b925b5a8203019460a06060820151910151019160808501928351870390818111611c9c575b505085029460408501938451878110600014611c7157505050611c6d939450611c556000613b89565b5a9003905101905183611c688295614a42565b614973565b9190565b611c6d969295508780955060019450611c8c92910390613e69565b50611c976000613b89565b6149db565b9196916064919003600a020401943880611c2c565b95928051611cc2575b505050611c09565b9091929950611cd082613b89565b5a9260a089015190803b15611d7f579183929187848196948f611d25604051998a97889687947f7c627b2100000000000000000000000000000000000000000000000000000000865202908660048601613b98565b0393f19182611d65575b5050611d5957611806611d40613b45565b6040519182916365c8fd4d60e01b835260048301613bca565b5a900396388080611cba565b611d72611d78928261067b565b8061133f565b3880611d2f565b8380fd5b600080949360206001600160a01b0383965116910192f115611da85738808080611bad565b611806611db3613b45565b6040519182917f462c71b20000000000000000000000000000000000000000000000000000000083526020600484015260248301906104a0565b67ffffffffffffffff81116106215760051b60200190565b60405190610100820182811067ffffffffffffffff82111761062157604052606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b90611e6482611ded565b611e71604051918261067b565b8281528092611e82601f1991611ded565b019060005b828110611e9357505050565b602090611e9e611e05565b82828501015201611e87565b634e487b7160e01b600052603260045260246000fd5b90821015611ed7576104f39160051b810190611b73565b611eaa565b60405190611eeb60208361067b565b60008252565b8051821015611ed75760209160051b010190565b611f0e82611e5a565b9160005b818110611f1f5750505090565b611f2a818385611ec0565b6020906000604051611f3c848261067b565b52611f45611e05565b50600060028054146120825790612037600194939260028055611f66611b03565b92611f708161333b565b84611f7b85836128b6565b929091935a9088606081015191611f956060820182612618565b8a6003821161207a575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361206257505061125385638dd7712f60e01b9261123f6120029886015191604051958694850152604060248501526064840190612e6b565b93905b60806060980151986120156106bc565b998a52890152604088015285870152608086015260a0850152151560c0840152565b60e08201526120466001600255565b6120508287611ef1565b5261205b8186611ef1565b5001611f12565b612073965061125392503691610716565b9390612005565b508135611f9f565b80633ee5aeb560e01b60049252fd5b600319810191908211610d2a57565b600019810191908211610d2a57565b91908203918211610d2a57565b3d156120e7573d906120cd826106fa565b916120db604051938461067b565b82523d6000602084013e565b606090565b156120f357565b606460405162461bcd60e51b815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b60208101356121f961214c6040840184612618565b908160405191823720916121eb6121666060860186612618565b90816040519182372060c086013560a0870135608088013561219461218e60e08b018b612618565b90614b74565b936040519889976001600160a01b0360208a019c35168c94919260e096939998979491996001600160a01b0361010088019b168752602087015260408601526060850152608084015260a083015260c08201520152565b03601f19810183528261067b565b5190206040805160208101928352309181019190915246606082015261222281608081016121eb565b51902090565b604051906122358261065f565b60006020838281520152565b6040519061224e82610605565b8160405161225b81610605565b60008152600060208201526000604082015260006060820152606060808201528152612285612228565b6020820152612292612228565b604082015261229f612228565b60608201526080604051916122b38361065f565b600083526122bf612228565b60208401520152565b6122d182611ded565b916122df604051938461067b565b808352601f196122ee82611ded565b0160005b81811061233857505060005b81811061230b5750505090565b8061231c6115ac6001938587611ec0565b6123268287611ef1565b526123318186611ef1565b50016122fe565b602090612343612241565b828288010152016122f2565b908092918237016000815290565b356104f3816103ef565b6040519061237660208361067b565b6000808352366020840137565b9061238d826106fa565b61239a604051918261067b565b82815280926123ab601f19916106fa565b0190602036910137565b906123c891969594939296610550611ae2565b6001600160a01b036123da8680611b73565b6124036020880135916123ec836103ef565b6123f4611b03565b906123fe8161333b565b6128b6565b5050501615612415576104f39461391a565b5050505050612422612367565b6040519061242f82610626565b6000825260006020830152604082015290565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b036124773485613e69565b936040519485521692a2565b1561248a57565b606460405162461bcd60e51b815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b9065ffffffffffff8091169116019065ffffffffffff8211610d2a57565b156124f357565b606460405162461bcd60e51b815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b1561253e57565b606460405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b1561258957565b606460405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b156125d457565b606460405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b903590601e19813603018212156103b9570180359067ffffffffffffffff82116103b9576020019181360383136103b957565b906014116103b95790601490565b90929192836034116103b95783116103b957603401916033190190565b356bffffffffffffffffffffffff19811692919060148210612696575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b604051906126c38261065f565b6003546001600160a01b031682526040516020836126e08361065f565b6004548352600554828401520152565b6126f8612241565b50612701611b03565b9061270b8161333b565b61271582826128b6565b509190926127238385613e91565b61274061273b60e0835101516001600160a01b031690565b613fb9565b9161276e61275a61273b84516001600160a01b0390511690565b91612763612228565b506040810190612618565b90601482106128495761279061278a6127969361273b9361264b565b90612676565b60601c90565b916001600160a01b0386169460808201519660606040840151930151926127bb61069d565b98895260208901526040880152606087015260808601526127da6126b6565b938015158061283e575b61280c575b506127f261069d565b948552602085015260408401526060830152608082015290565b90935061281881613fb9565b6128326128236106cc565b6001600160a01b039093168352565b602082015292386127e9565b5060018114156127e4565b50506127966000613fb9565b1561285c57565b606460405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152fd5b90607382029180830460731490151715610d2a57565b90916000915a938051916128ca8382612d40565b6128d381612137565b602083015260408301519561291f6effffffffffffffffffffffffffffff8860c08701511760608701511760808701511760a08701511761010087015117610120870151171115612855565b61294a84610100604082015160608301510160808301510160a08301510160c0830151019101510290565b6129588882868660006130f7565b9761297b6116de61297088516001600160a01b031690565b602089015190613ffc565b612a72575a830311612a1e576060906001600160a01b036129a760e05a9801516001600160a01b031690565b16151580612a16575b6129e3575b6117509360a06104f39794879460809460406117559a015260608601525a9003910135019101525a906120af565b965050928260808360a06104f397612a048b61175599611750996000613c92565b9b9095985093509497505093506129b5565b5060016129b0565b604051631101335b60e11b815280611806600060048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b604051631101335b60e11b815280611806600060048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b908060209392818452848401376000828201840152601f01601f1916010190565b6040906001600160a01b036104f395931681528160208201520191612ac6565b6040513d6000823e3d90fd5b908151811015611ed7570160200190565b81601f820112156103b9578051612b3a816106fa565b92612b48604051948561067b565b818452602082840101116103b9576104f3916020808501910161047d565b9190916040818403126103b9578051612b7e816115c5565b92602082015167ffffffffffffffff81116103b9576104f39201612b24565b91926000936001600160a01b036060941691823b156103b957612c1d93600080946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501612ae7565b0393f19081612cd7575b5061096b575050612c366120bc565b906004825110612cc857612c52612c4d8351612091565b612383565b60045b8351811015612cb25780612c94612c6e60019387612b13565b517fff000000000000000000000000000000000000000000000000000000000000001690565b612cab612ca083612091565b9160001a9185612b13565b5301612c55565b5061096b91925060208082518301019101612b66565b9050612cd2612367565b600091565b80611d726000612ce69361067b565b38612c27565b61040b33612442565b15612cfc57565b606460405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b612dd790612d5d612d508261235d565b6001600160a01b03168452565b60208101356020840152612d8a6080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c0840152612dc160c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e0810190612618565b908115612e1357612dfb8260e092612df6603461040b97961015612cf5565b61404e565b60a085015260808401526001600160a01b0316910152565b505060a081600060e0819401528260808201520152565b908160209103126103b9575190565b9035601e19823603018112156103b957016020813591019167ffffffffffffffff82116103b95781360383136103b957565b6104f391612e8981612e7c84610400565b6001600160a01b03169052565b60208201356020820152612f1f612f13612eda612ebf612eac6040870187612e39565b6101206040880152610120870191612ac6565b612ecc6060870187612e39565b908683036060880152612ac6565b6080850135608085015260a085013560a085015260c085013560c0850152612f0560e0860186612e39565b9085830360e0870152612ac6565b92610100810190612e39565b91610100818503910152612ac6565b612f4660409295949395606083526060830190612e6b565b9460208201520152565b60a0906104f39392815260606020820152600d60608201527f4141323320726576657274656400000000000000000000000000000000000000608082015281604082015201906104a0565b92909161301e6020600095855193612fe860e0612fbf87516001600160a01b031690565b96612fda8a8c612fd26040890189612618565b9290916140ac565b01516001600160a01b031690565b91886001600160a01b038194161598896130bc575b85015191604051968795869485936306608bdf60e21b855260048501612f2e565b03926001600160a01b03881690f185918161308b575b5061305f5784613042613b45565b906118066040519283926365c8fd4d60e01b845260048401612f50565b93919261306a575050565b613087906001600160a01b03166000526000602052604060002090565b5050565b6130ae91925060203d6020116130b5575b6130a6818361067b565b810190612e2a565b9038613034565b503d61309c565b93506130db876001600160a01b03166000526000602052604060002090565b5480156130ee575084815b949050612ffd565b859082036130e6565b949291939060206131679186519361312e60e061311b87516001600160a01b031690565b96612fda8b8d612fd26040890189612618565b916001600160a01b0360009316159889613234575b84600091015191604051968795869485936306608bdf60e21b855260048501612f2e565b03926001600160a01b03881690f160009181613213575b5061318c5785613042613b45565b94929361319857505050565b6131b5906001600160a01b03166000526000602052604060002090565b918254908183116131c65750039055565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b61322d91925060203d6020116130b5576130a6818361067b565b903861317e565b9250613253866001600160a01b03166000526000602052604060002090565b548781111561326b5750600084815b94915050613143565b846000918903613262565b9160005b828110156133355761328a611b03565b6000908260051b860135605e198736030181121561333157906132c560019493928801916132bb6105638480611b73565b6123fe8380611b73565b50505060208101906132e56132d98361235d565b6001600160a01b031690565b1561332957826133036132f8829461235d565b926040810190612618565b91906133146040518094819361234f565b03925af1506133216120bc565b505b0161327a565b505050613323565b8280fd5b50915050565b61336e9061334c6040820182612618565b9161336681359161335c836103ef565b60e0810190612618565b93909261434d565b80516133775750565b61180690604051918291631101335b60e11b8352600060048401526040602484015260448301906104a0565b9392916133c9906001600160a01b036040931686526060602087015260608601906104a0565b930152565b939490946133da611ae2565b5060009280156136335761341f93506133f1611edc565b509160006134015a8860026146e8565b5a906040519687928392631efc84dd60e31b84528c600485016133a3565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215613587576000948593613612575b508294809381156135ef57505061347d909592919394955b85611a3f565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846134b588856120af565b106135c5575a6134c488611a22565b1161358c57918695939189959360008c8b6134f76134ee6134e8886135179f611a3f565b60011c90565b809b60026146e8565b835a936040519e8f9586948593631efc84dd60e31b8552600485016133a3565b03925af198891561358757600090819a613561575b501561354c5750505061353e846120a0565b95915b9390929495916134aa565b9396509461355b919750611a31565b94613541565b9061357f929a503d8091833e613577818361067b565b810190612b66565b98903861352c565b612b07565b7fe2c4d0be0000000000000000000000000000000000000000000000000000000060005260048290526024879052604483905260646000fd5b9650965050919550506135e791506135db6106db565b93845215156020840152565b604082015290565b965096505095505050506135e76136046106db565b600081529215156020840152565b90925061362991943d8091833e613577818361067b565b939093913861345f565b50613665915a91846136475a8960026146e8565b5a906040519687928392631efc84dd60e31b84528d600485016133a3565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1938415613587578580956136cb575b505083946136b381945a906120af565b9481156135ef57505061347d90959291939495613477565b909194506136e49295503d8091833e613577818361067b565b9390939238806136a3565b939490946136fb611ae2565b50600092801561387c576137229350613712611edc565b509160006134015a8860036146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af191821561358757600094859361385b575b508294809381156135ef57505061377f9095929193949585611a3f565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846137b788856120af565b106135c5575a6137c688611a22565b1161358c57918695939189959360008c8b6134f76137ea6134e8886137f39f611a3f565b809b60036146e8565b03925af198891561358757600090819a61383d575b50156138285750505061381a846120a0565b95915b9390929495916137ac565b93965094613837919750611a31565b9461381d565b90613853929a503d8091833e613577818361067b565b989038613808565b90925061387291943d8091833e613577818361067b565b9390939138613762565b50613890915a91846136475a8960036146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1938415613587578580956138f6575b505083946138de81945a906120af565b9481156135ef57505061377f90959291939495613477565b9091945061390f9295503d8091833e613577818361067b565b9390939238806138ce565b93949094613926611ae2565b506000928015613aa75761394d935061393d611edc565b509160006134015a8860016146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215613587576000948593613a86575b508294809381156135ef5750506139aa9095929193949585611a3f565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846139e288856120af565b106135c5575a6139f188611a22565b1161358c57918695939189959360008c8b6134f7613a156134e888613a1e9f611a3f565b809b60016146e8565b03925af198891561358757600090819a613a68575b5015613a5357505050613a45846120a0565b95915b9390929495916139d7565b93965094613a62919750611a31565b94613a48565b90613a7e929a503d8091833e613577818361067b565b989038613a33565b909250613a9d91943d8091833e613577818361067b565b939093913861398d565b50613abb915a91846136475a8960016146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af193841561358757858095613b21575b50508394613b0981945a906120af565b9481156135ef5750506139aa90959291939495613477565b90919450613b3a9295503d8091833e613577818361067b565b939093923880613af9565b3d6108008111613b6a575b604051906020818301016040528082526000602083013e90565b50610800613b50565b634e487b7160e01b600052602160045260246000fd5b60031115613b9357565b613b73565b90949392946003811015613b9357606092613bc09183526080602084015260808301906104a0565b9460408201520152565b9060a06104f3926000815260606020820152601460608201527f4141353020706f73744f70207265766572746564000000000000000000000000608082015281604082015201906104a0565b91906040838203126103b957825167ffffffffffffffff81116103b957602091613c41918501612b24565b92015190565b60a0906104f39392815260606020820152600d60608201527f4141333320726576657274656400000000000000000000000000000000000000608082015281604082015201906104a0565b929390915a92815190613caf60e08301516001600160a01b031690565b91613ccd836001600160a01b03166000526000602052604060002090565b8054898110613e14576001600160a01b0360206080600097958d9795613d2f9d9e8a960390550151970151926040519a8b96879586937f52b7512c00000000000000000000000000000000000000000000000000000000855260048501612f2e565b03931686f19384600091600096613ded575b50613d6c5785613d4f613b45565b906118066040519283926365c8fd4d60e01b845260048401613c47565b9491925a900311613d7a5750565b60408051631101335b60e11b815260048101929092526024820152602760448201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760648201527f61734c696d697400000000000000000000000000000000000000000000000000608482015260a490fd5b909550613e0d91503d806000833e613e05818361067b565b810190613c16565b9438613d41565b61180689604051918291631101335b60e11b835260048301608091815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b6001600160a01b0316600052600060205260406000208054918201809211610d2a5781905590565b613ea26001600160a01b0391614a85565b9116613f6d57613f1957613ebd6001600160a01b0391614a85565b5016613ec557565b604051631101335b60e11b815280611806600060048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b604051631101335b60e11b815280611806600060048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b6084604051631101335b60e11b81526000600482015260406024820152601460448201527f41413234207369676e6174757265206572726f720000000000000000000000006064820152fd5b906001600160a01b03613fca612228565b9216600052600060205263ffffffff6001604060002001546001600160701b038160081c16845260781c166020830152565b6001600160a01b0316600052600160205267ffffffffffffffff61403a8260401c6040600020906001600160c01b0316600052602052604060002090565b9182549261404784611b89565b9055161490565b9091826014116103b957813591836024116103b9576014810135936034116103b95760609290921c92608090811c9260240135901c90565b908160209103126103b957516104f3816103ef565b9160206104f3938181520191612ac6565b929091816140bb575b50505050565b8251516001600160a01b031693843b61430057604084510151602060405180927f570e1a36000000000000000000000000000000000000000000000000000000008252816000816141108a8a6004840161409b565b03926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690f1908115613587576000916142d1575b506001600160a01b03811695861561427c576001600160a01b0316809603614227573b156141da575061279061278a7fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d936141a79361264b565b602083810151935160e00151604080516001600160a01b039485168152939091169183019190915290a3388080806140b5565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b61180682604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b61180683604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b6142f3915060203d6020116142f9575b6142eb818361067b565b810190614086565b3861414d565b503d6142e1565b60408051631101335b60e11b815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b50929192159081614402575b506143c5576014811015614372575b50506104f3611edc565b6014116103b9573560601c3b1561438a573880614368565b60405161439860408261067b565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b50506040516143d560408261067b565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b1538614359565b610120813603126103b95761441f6106ea565b9061442981610400565b825260208101356020830152604081013567ffffffffffffffff81116103b957614456903690830161074d565b6040830152606081013567ffffffffffffffff81116103b95761447c903690830161074d565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff81116103b9576144c0903690830161074d565b60e08301526101008101359067ffffffffffffffff82116103b9576144e79136910161074d565b61010082015290565b60041115613b9357565b91926fffffffffffffffffffffffffffffffff196034959481936bffffffffffffffffffffffff199060601b168552166014840152166024820152614548825180936020868501910161047d565b010190565b80516001600160a01b031682526104f391602082015160208201526101006145ce61459e61458c604086015161012060408701526101208601906104a0565b606086015185820360608701526104a0565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526104a0565b920151906101008184039101526104a0565b60806101a09161012081516145fe8682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c087015261465260e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b6146be6146b3610200939695949660008452610220602085015261022084019061454d565b9560408301906145e0565b0152565b610200906146be6146b3600094969596858452610220602085015261022084019061454d565b6146f0611b03565b6147026146fd8480611b73565b61440c565b61470b836144f0565b600283146148645761471c836144f0565b600383146147dd575050806147326001926144f0565b1461477c5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b806121eb6147a76147a061479560206104f3960161235d565b936040810190612618565b3691610716565b936040519485937f44403473000000000000000000000000000000000000000000000000000000006020860152602485016133a3565b9150926fffffffffffffffffffffffffffffffff61482461481d614804866104f397611b73565b608001356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526121eb6040519384927fc579f76b000000000000000000000000000000000000000000000000000000006020850152602484016146c2565b9150926121eb906fffffffffffffffffffffffffffffffff19846148ef6148e161489d61489761335c856104f39b611b73565b9061404e565b9291905060609060e08a0195603487515111614925575b5060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b1690602086016144fa565b03601f19810184528361067b565b526040519485937f21e60b370000000000000000000000000000000000000000000000000000000060208601526024850161468e565b61494291925061493b61335c826147a093611b73565b8091612659565b90386148b4565b61012061010082015191015180821461496f5748018082101561496a575090565b905090565b5090565b9190917f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f608060208301519251946001600160a01b038651169460206001600160a01b0360e089015116970151916040519283526000602084015260408301526060820152a4565b9060807f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f9160208401519351956001600160a01b038751169560206001600160a01b0360e08a015116980151926040519384521515602084015260408301526060820152a4565b60208101519051907f67b4fa9642f42120bf031f3051d1824b0fe25627945b27b8a6a65d5761d5482e6020806001600160a01b03855116940151604051908152a3565b8015614b6b57600060408051614a9a81610626565b828152826020820152015265ffffffffffff8160a01c168015614b5e575b614b4090614b27614acf614ada614acf8660d01c90565b65ffffffffffff1690565b92614aff6001600160a01b03614aee6106db565b971687906001600160a01b03169052565b614b156020870194859065ffffffffffff169052565b65ffffffffffff166040860181905290565b4211908115614b43575b5091516001600160a01b031690565b91565b51614b56915065ffffffffffff16614acf565b421038614b31565b5065ffffffffffff614ab8565b50600090600090565b81604051918237209056fea2646970667358221220866dc43c4870dedc66bf343a4cd2aa2c82443a80802800def6bfb9d32efd32be64736f6c634300081c0033", "sourceMap": "938:15710:18:-:0;;;;;;;;;-1:-1:-1;938:15710:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;2977:47:3;;2428:10;938:15710:18;2657:22:3;938:15710:18;2419:20:3;2428:10;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;2419:20:3;2457:19;2449:58;2457:19;;;2449:58;:::i;:::-;2517:114;2557:20;;;938:15710:18;;2538:39:3;938:15710:18;;;;;;;;;;;;;;2538:39:3;-1:-1:-1;2538:39:3;2517:114;:::i;:::-;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;-1:-1:-1;;;;;2670:9:3;938:15710:18;;2657:22:3;:::i;:::-;2697:9;2689:40;2697:9;;;2689:40;:::i;:::-;2739:53;-1:-1:-1;;;;;2747:26:3;;;2739:53;:::i;:::-;938:15710:18;;;:::i;:::-;;;;2557:20:3;938:15710:18;2825:137:3;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;2825:137:3;;;938:15710:18;;;;2825:137:3;;;938:15710:18;;2825:137:3;;;938:15710:18;2802:20:3;2428:10;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;2802:20:3;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;938:15710:18;;;;;;2825:137:3;938:15710:18;;;;;;;;;;;;;2428:10:3;;938:15710:18;;;;;;;2977:47:3;;;;938:15710:18;;-1:-1:-1;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;938:15710:18;;;;;:::o;:::-;;;;;;:::i;:::-;:::o;:::-;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;938:15710:18;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;938:15710:18;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;10873:221;10788:13;938:15710;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;10648:73;938:15710;;:::i;:::-;10618:19;10601:15;;;;:::i;:::-;10618:19;;;;:::i;:::-;10678:15;;;;:::i;:::-;10711:9;;10648:73;;:::i;:::-;;10788:13;:::i;:::-;10839:15;;;;;:::i;:::-;;:::i;:::-;10873:221;:::i;:::-;938:15710;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;:::o;:::-;;;;;;-1:-1:-1;;938:15710:18;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;893:36:1;913:10;;-1:-1:-1;938:15710:18;893:19:1;938:15710:18;;;-1:-1:-1;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;893:36:1;:38;938:15710:18;;893:38:1;:::i;:::-;938:15710:18;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;2441:15;938:15710;;;2441:15;938:15710;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;938:15710:18;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;938:15710:18;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;938:15710:18;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;;279:74:1;938:15710:18;;;;;:::i;:::-;-1:-1:-1;;;;;938:15710:18;;:::i;:::-;;;-1:-1:-1;938:15710:18;279:74:1;938:15710:18;;;-1:-1:-1;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;279:74:1;938:15710:18;;;;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;:::i;:::-;;;4805:10:3;-1:-1:-1;938:15710:18;-1:-1:-1;938:15710:18;;;-1:-1:-1;938:15710:18;;;;4834:30:3;;;;938:15710:18;;-1:-1:-1;4919:29:3;;;-1:-1:-1;;;;;4919:29:3;;;;;5102:38;4919:29;;:::i;:::-;938:15710:18;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;4805:10:3;;4963:54;;;938:15710:18;5045:47:3;;;;:::i;:::-;;5102:38;:::i;938:15710:18:-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;16640:17:17;;;16695:7;;;;;:::i;:::-;16736:21;;;:::i;:::-;938:15710:18;16713:20:17;;938:15710:18;-1:-1:-1;;;;;16836:17:17;16794:28;;8690:20;8473:28;;;938:15710:18;8504:20:17;;;938:15710:18;1968:4:17;8543:37;;;938:15710:18;1968:4:17;8583:31;;;938:15710:18;1968:4:17;8617:26;;;938:15710:18;1968:4:17;8690:20;;938:15710:18;;8311:416:17;;16794:28;16836:17;;938:15710:18;;16832:188:17;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;16832:188:17;16936:73;;;;:::i;:::-;16883:126;;16832:188;;;;;;938:15710:18;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15097:25;938:15710;;;:::i;:::-;;;;;;:::i;:::-;;15043:33;;;:::i;:::-;;15097:25;:::i;:::-;-1:-1:-1;;938:15710:18;;;;;;;;15140:23;;;;:::i;:::-;;938:15710;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;938:15710:18;;:::i;:::-;;;-1:-1:-1;938:15710:18;507:19:1;938:15710:18;;507:32:1;938:15710:18;;-1:-1:-1;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;507:32:1;938:15710:18;;;;;;;-1:-1:-1;;938:15710:18;507:55:1;938:15710:18;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;938:15710:18;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6019:27;;;;;:::i;:::-;6060:8;;6056:175;;938:15710;6056:175;938:15710;;6088:22;;;6084:36;;6134:87;;;938:15710;;;;;;-1:-1:-1;;938:15710:18;;;;-1:-1:-1;;;;;938:15710:18;;;;;:::i;:::-;-1:-1:-1;938:15710:18;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15710:18;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;-1:-1:-1;;;;;938:15710:18;;;;;:::i;:::-;;-1:-1:-1;938:15710:18;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;11563:152;11478:13;938:15710;;;:::i;:::-;;;;;;;;;;;:::i;11478:13::-;11529:15;;;;;:::i;:::-;11563:152;:::i;938:15710::-;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;-1:-1:-1;938:15710:18;2702:7:14;938:15710:18;;2702:18:14;2698:86;;938:15710:18;;2702:7:14;938:15710:18;;;;:::i;:::-;13746:2;;;:::i;:::-;13870:40;;;;:::i;:::-;2782:1039:17;;3022:9;3089:20;;;938:15710:18;3160:15:17;;3089:20;3160:15;;;;:::i;:::-;3189:16;3219:144;;;;;938:15710:18;;;-1:-1:-1;;;3380:51:17;3393:38;;3535:17;;938:15710:18;3480:74:17;3611:53;3535:17;;;;938:15710:18;;;3480:74:17;;;-1:-1:-1;;;3535:17:17;3480:74;;;938:15710:18;3480:74:17;;;938:15710:18;;;;;;:::i;:::-;;;;;;3480:74:17;938:15710:18;;3480:74:17;;;;;;:::i;:::-;3611:53;:::i;:::-;3572:92;;3376:429;;14011:18:18;14039:25;3089:20:17;938:15710:18;-1:-1:-1;;;;;938:15710:18;;14074:110;;3376:429:17;14230:15:18;;;;;14201:270;14230:15;;;938:15710;;;;:::i;:::-;;;;14201:270;;;938:15710;14201:270;;;938:15710;3089:20:17;14201:270:18;;938:15710;14230:15;14201:270;;938:15710;14201:270;;;938:15710;;;14201:270;;;938:15710;;14201:270;;;;938:15710;2531:1:14;305::0;3068:21:14;938:15710:18;2888:208:14;2531:1;938:15710:18;;;;;;;:::i;14074:110::-;14201:270;14146:27;;;;;;;;;;;;;;;;14230:15;14146:27;;:::i;:::-;14114:59;14074:110;;;;;;;3376:429:17;3742:48;938:15710:18;;;;;;;;:::i;3742:48:17:-;3703:87;;3376:429;;;3219:144;-1:-1:-1;3219:144:17;;;;2698:86:14;2743:30;;-1:-1:-1;;;2743:30:14;;;938:15710:18;;;-1:-1:-1;;938:15710:18;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;938:15710:18;;;;3248:10:3;938:15710:18;;;;;3277:20:3;938:15710:18;;;3277:20:3;938:15710:18;;;;;;;3277:25:3;938:15710:18;;3400:46:3;;938:15710:18;;3327:41:3;938:15710:18;3498:19:3;938:15710:18;;;;;;3327:41:3;:::i;:::-;938:15710:18;;;;;;3400:46:3;938:15710:18;3407:15:3;938:15710:18;3400:46:3;:::i;:::-;938:15710:18;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;3498:19:3;938:15710:18;;;;;;;;3248:10:3;;3532:39;;938:15710:18;;;;3532:39:3;938:15710:18;;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;4419:44:3;-1:-1:-1;938:15710:18;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3934:10:3;3888:20;3897:10;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;3888:20:3;3934:10;938:15710:18;4264:14:3;938:15710:18;;;4079:110:3;938:15710:18;;3918:26:3;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;;;;-1:-1:-1;;;;;938:15710:18;;;3918:26:3;3962:9;3954:42;3962:9;;;3954:42;:::i;:::-;938:15710:18;;;;;;;;4006:63:3;4014:21;;;4006:63;:::i;:::-;4121:15;-1:-1:-1;4100:36:3;4079:110;:::i;:::-;938:15710:18;;;;;;;4264:14:3;938:15710:18;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;3897:10:3;;4293:50;;;938:15710:18;4371:38:3;;;;:::i;:::-;;4419:44;:::i;938:15710:18:-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;17717:9:17;;17766:17;;17821:7;;;;;:::i;:::-;17862:21;;;:::i;:::-;17839:20;;;938:15710:18;;18078:28:17;;938:15710:18;18139:26:17;18373:70;938:15710:18;18139:26:17;;;;938:15710:18;18139:49:17;18191:20;;;938:15710:18;18139:72:17;18226:37;;;938:15710:18;18139:124:17;18266:31;;;938:15710:18;18139:158:17;18300:20;;;938:15710:18;18139:181:17;18335:28;;;938:15710:18;18139:224:17;18381:33;;18373:70;:::i;:::-;18480:28;;8690:20;8473:28;;;938:15710:18;8504:20:17;;;938:15710:18;1968:4:17;8543:37;;;938:15710:18;1968:4:17;8583:31;;;938:15710:18;1968:4:17;8617:26;;;938:15710:18;1968:4:17;8690:20;;938:15710:18;;8311:416:17;;18480:28;18535:93;;;;;;;;:::i;:::-;938:15710:18;18643:55:17;18644:54;938:15710:18;;;-1:-1:-1;;;;;938:15710:18;;;;17839:20:17;18684:13;;938:15710:18;18644:54:17;;:::i;:::-;18643:55;;938:15710:18;18643:55:17;18639:140;;18826:9;1968:4;;18817:41;18813:138;;18191:20;19024:9;-1:-1:-1;;;;;938:15710:18;19047:17:17;19024:9;19047:17;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;;;19047:31:17;;:62;;;;938:15710:18;19043:219:17;;;938:15710:18;19295:17:17;;18226:37;19535:32;19295:17;18266:31;19536:24;19295:17;938:15710:18;19295:17:17;;19534:40;19295:17;938:15710:18;19295:17:17;;938:15710:18;18191:20:17;19344:23;;938:15710:18;19445:9:17;1968:4;;19457:25;;938:15710:18;1968:4:17;19415:18;;938:15710:18;19551:9:17;19536:24;;:::i;:::-;19535:32;:::i;:::-;19571:3;938:15710:18;;;;19534:40:17;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;19043:219:17;19178:73;;;938:15710:18;19178:73:17;;;;18266:31;19536:24;19178:73;;;;19534:40;19178:73;19535:32;19178:73;18226:37;19178:73;;:::i;:::-;19125:126;;19043:219;;;;;;;;;;;;;19047:62;;;;;;18813:138;938:15710:18;;;-1:-1:-1;;;18885:51:17;;938:15710:18;18885:51:17;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;18885:51:17;;;;18639:140;18721:47;938:15710:18;;;18721:47:17;;;-1:-1:-1;;;18721:47:17;;938:15710:18;18721:47:17;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;938:15710:18;;;;-1:-1:-1;;;;;938:15710:18;;;;;:::i;:::-;;-1:-1:-1;938:15710:18;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;507:47:3;938:15710:18;;507:47:3;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5789:31;938:15710;;;:::i;:::-;;;;;;:::i;:::-;;5789:31;:::i;:::-;-1:-1:-1;;938:15710:18;;;;;;;;5837:27;;;;:::i;:::-;;938:15710;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;9392:5;938:15710;;;;;;;:::o;:::-;;10105:1;938:15710;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;938:15710:18;;-1:-1:-1;938:15710:18;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;938:15710:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;938:15710:18;;;;;;;:::o;5523:1160:17:-;;;;;5765:14;;5813:20;;;;938:15710:18;;;6221:19:17;;6217:290;;5523:1160;6570:9;;;;;1968:4;;6582:15;;;938:15710:18;1968:4:17;6618:48;-1:-1:-1;6618:48:17;20395:31;20455:9;20563:14;;20610:26;;;;:::i;:::-;20671:17;938:15710:18;20671:17:17;;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;;-1:-1:-1;;;;;938:15710:18;;;;20706:23:17;938:15710:18;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;20702:1013:17;;21750:9;1968:4;;;21882:20;21905:31;21882:20;;;938:15710:18;21905:31:17;;938:15710:18;1968:4:17;21993:15;;;;938:15710:18;;;1968:4:17;;22146:36;;;;22142:274;;20702:1013;938:15710:18;;;;22512:14:17;;;;938:15710:18;;;22544:23:17;;;22540:880;22544:23;;;938:15710:18;;;23083:9:17;938:15710:18;;;;5765:14:17;938:15710:18;:::i;:::-;22882:9:17;1968:4;;938:15710:18;;1968:4:17;938:15710:18;;23001:6:17;;;;;:::i;:::-;23083:9;:::i;:::-;6611:55;5523:1160;:::o;22540:880::-;23395:9;1968:4;;;;;;;;23281:41;1968:4;;23208:40;1968:4;;;23208:40;;:::i;:::-;;938:15710:18;5765:14:17;938:15710:18;:::i;:::-;23395:9:17;:::i;22142:274::-;1968:4;;;19571:3;1968:4;;;2021:2;938:15710:18;;1968:4:17;22142:274;;;;;20702:1013;20818:25;;938:15710:18;;20861:840:17;;20702:1013;;;;;;20861:840;938:15710:18;;;;;;;;:::i;:::-;21064:9:17;21137:31;;;;938:15710:18;21103:160:17;;;;;;938:15710:18;;;;;;;;;;21103:160:17;938:15710:18;;21103:160:17;;;;;;;938:15710:18;21103:160:17;;938:15710:18;21103:160:17;;;;;;:::i;:::-;;;;;;;;20861:840;-1:-1:-1;;21099:486:17;;21408:150;21487:41;;:::i;:::-;938:15710:18;;21408:150:17;;;-1:-1:-1;;;21408:150:17;;21103:160;21408:150;;;:::i;21099:486::-;21651:9;1968:4;;20861:840;;;;;;21103:160;;;;;;:::i;:::-;;;:::i;:::-;;;;;;938:15710:18;;;6217:290:17;-1:-1:-1;938:15710:18;;;378:118:13;-1:-1:-1;;;;;938:15710:18;;;;378:118:13;;;;6341:8:17;6337:160;;6217:290;;;;;;6337:160;1968:4;6391:41;;:::i;:::-;938:15710:18;;6457:25:17;;;;;;378:118:13;6457:25:17;;;1968:4;;;;;;:::i;938:15710:18:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15710:18;;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;938:15710:18;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;938:15710:18;;:::o;:::-;;;;;;;;;;;;;;;:::o;14484:400::-;14637:33;;;:::i;:::-;14686:13;14698:1;14701:14;;;;;;14863;;;14484:400;:::o;14717:3::-;14785:6;;;;;:::i;:::-;938:15710;;14698:1;938:15710;;;;;;:::i;:::-;;;;:::i;:::-;;14698:1;2702:7:14;938:15710:18;;2702:18:14;2698:86;;938:15710:18;14201:270;938:15710;;;;2702:7:14;938:15710:18;;;;:::i;:::-;13746:2;;;;:::i;:::-;13870:40;;;;;:::i;:::-;2782:1039:17;;;;3022:9;3089:20;;;;;938:15710:18;3160:15:17;;3089:20;3160:15;;;;:::i;:::-;3189:16;3219:144;;;;;14717:3:18;938:15710;;-1:-1:-1;;;3380:51:17;3393:38;;3535:17;;3480:74;3535:17;-1:-1:-1;;;3535:17:17;938:15710:18;3611:53:17;3535:17;;;938:15710:18;;;;3480:74:17;;;;;;938:15710:18;3480:74:17;;;938:15710:18;;;;;;:::i;3611:53:17:-;3572:92;;3376:429;14230:15:18;3089:20:17;14230:15:18;;938:15710;;;;:::i;:::-;;;;14201:270;;938:15710;;14201:270;;938:15710;14201:270;;;938:15710;14230:15;14201:270;;938:15710;14201:270;;;938:15710;;;14201:270;;;938:15710;;14201:270;;;;938:15710;2531:1:14;305::0;3068:21:14;938:15710:18;2888:208:14;2531:1;14823:19:18;;;;:::i;:::-;;;;;;:::i;:::-;;938:15710;14686:13;;3376:429:17;3742:48;938:15710:18;;;;;;;;:::i;3742:48:17:-;3703:87;;3376:429;;3219:144;-1:-1:-1;3219:144:17;;;;2698:86:14;2743:30;-1:-1:-1;;;2743:30:14;;;;938:15710:18;-1:-1:-1;;938:15710:18;;;;;;;;:::o;:::-;-1:-1:-1;;938:15710:18;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;938:15710:18;;;;:::o;:::-;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;6721:180:17;1938:12:4;;;938:15710:18;2342:180:4;1998:15;;;;;;:::i;:::-;2961:193:0;;1998:15:4;2961:193:0;;;;;2062:15:4;2342:180;2062:15;;;;;;:::i;:::-;2961:193:0;;1998:15:4;2961:193:0;;;;;2230:14:4;;;938:15710:18;2177:25:4;;;938:15710:18;2115:23:4;;;938:15710:18;2285:39:4;2300:23;;;;2115;2300;:::i;:::-;2285:39;;:::i;:::-;938:15710:18;1998:15:4;938:15710:18;2342:180:4;;;-1:-1:-1;;;;;1938:12:4;2342:180;;823:61;;938:15710:18;2342:180:4;938:15710:18;;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2342:180:4;;938:15710:18;;2342:180:4;;;;;;:::i;:::-;938:15710:18;4962:25:4;;1998:15;938:15710:18;;1938:12:4;6838:55:17;;938:15710:18;;;6872:4:17;938:15710:18;;;;;;;6879:13:17;938:15710:18;;;;6838:55:17;938:15710:18;;;;6838:55:17;938:15710:18;6838:55:17;938:15710:18;6828:66:17;;6721:180;:::o;938:15710:18:-;;;;;;;:::i;:::-;-1:-1:-1;938:15710:18;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;938:15710:18;;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;938:15710:18;;;;:::i;:::-;;;;;;;:::o;5175:427::-;938:15710;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;938:15710:18;;;:::i;:::-;;-1:-1:-1;938:15710:18;;;;;;5410:13;;-1:-1:-1;5425:18:18;;;;;;5581:14;;;5175:427;:::o;5445:3::-;5516:10;5497:30;5516:10;938:15710;5516:10;;;;:::i;5497:30::-;5541:19;;;;:::i;:::-;;;;;;:::i;:::-;;938:15710;5410:13;;938:15710;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;12937:15;938:15710;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;12496:945::-;;12824:13;12496:945;;;;;;;938:15710;;:::i;12824:13::-;-1:-1:-1;;;;;12937:15:18;;;;:::i;:::-;13124:40;12979:19;;;938:15710;;;;;:::i;:::-;;;:::i;:::-;13111:2;;;;:::i;:::-;13124:40;:::i;:::-;938:15710;;;;13179:20;13175:98;;13290:144;;;:::i;13175:98::-;13249:12;;;;;;;:::i;:::-;938:15710;;;;;;:::i;:::-;-1:-1:-1;938:15710:18;;-1:-1:-1;12979:19:18;13222:40;;938:15710;;13222:40;;938:15710;13215:47;:::o;1935:179:3:-;2077:30;938:15710:18;-1:-1:-1;;;;;2025:37:3;2052:9;2025:37;;:::i;:::-;938:15710:18;;;;;;;2077:30:3;;1935:179::o;938:15710:18:-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;2507:2;938:15710;;;;2507:2;938:15710;:::o;:::-;;;;;;490:2:4;938:15710:18;;;;;;;490:2:4;938:15710:18;;-1:-1:-1;;938:15710:18;;:::o;:::-;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;-1:-1:-1;938:15710:18:o;:::-;;;;;;;:::i;:::-;2988:14;938:15710;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;1698:1620::-;938:15710;;:::i;:::-;;;;:::i;:::-;1879:6;;;;:::i;:::-;2032:47;;;;:::i;:::-;2090:98;;;;;;;;:::i;:::-;2232:42;938:15710;2246:27;:17;;:27;938:15710;-1:-1:-1;;;;;938:15710:18;;;;2232:42;:::i;:::-;2328:17;2441:15;2314:39;2328:24;:17;;-1:-1:-1;;;;;938:15710:18;;;;;2314:39;938:15710;;;:::i;:::-;;2441:15;;;;;:::i;:::-;2488:69;2507:2;2488:21;;2507:2;;2520:23;2528:14;2585:22;2528:14;2512:32;2528:14;;:::i;:::-;2520:23;;:::i;:::-;938:15710;;;;2585:22;938:15710;-1:-1:-1;;;;;938:15710:18;;2746:18;;;;938:15710;2778:17;2899:23;2441:15;2778:17;;938:15710;2899:23;;938:15710;;;;:::i;:::-;;;;2722:211;;;938:15710;2441:15;2722:211;;938:15710;2899:23;2722:211;;938:15710;2746:18;2722:211;;938:15710;;;:::i;:::-;3016:45;;;;:93;;;2488:69;3012:199;;2488:69;938:15710;;;:::i;:::-;;;;2722:211;3227:84;;938:15710;2441:15;3227:84;;938:15710;2899:23;3227:84;;938:15710;2746:18;3227:84;;938:15710;1698:1620;:::o;3012:199::-;3174:25;;;;;;:::i;:::-;3142:58;938:15710;;:::i;:::-;-1:-1:-1;;;;;938:15710:18;;;;;;3142:58;2722:211;3142:58;;938:15710;3012:199;;;;3016:93;3065:44;2074:4;3065:44;;;3016:93;;2488:69;;;2585:22;-1:-1:-1;2585:22:18;:::i;938:15710::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;19564:3:17;938:15710:18;;;;;;19564:3:17;938:15710:18;;;;;;;:::o;17394:2187:17:-;;;12937:15:18;17717:9:17;;17766:17;;;17821:7;;;;;:::i;:::-;17862:21;;;:::i;:::-;17839:20;;;938:15710:18;18078:28:17;;;938:15710:18;18139:26:17;18373:70;938:15710:18;18139:26:17;;;;938:15710:18;18139:49:17;18191:20;;;938:15710:18;18139:72:17;18226:37;;;938:15710:18;18139:124:17;18266:31;;;938:15710:18;18139:158:17;18300:20;;;938:15710:18;18139:181:17;18335:28;;;938:15710:18;18139:224:17;18381:33;;18373:70;:::i;:::-;18480:28;;8690:20;8473:28;;;938:15710:18;8504:20:17;;;938:15710:18;1968:4:17;8543:37;;;938:15710:18;1968:4:17;8583:31;;;938:15710:18;1968:4:17;8617:26;;;938:15710:18;1968:4:17;8690:20;;938:15710:18;;8311:416:17;;18480:28;18535:93;;;;;12937:15:18;18535:93:17;:::i;:::-;938:15710:18;18643:55:17;18644:54;938:15710:18;;;-1:-1:-1;;;;;938:15710:18;;;;17839:20:17;18684:13;;938:15710:18;18644:54:17;;:::i;18643:55::-;18639:140;;18826:9;1968:4;;18817:41;18813:138;;18191:20;19024:9;-1:-1:-1;;;;;938:15710:18;19047:17:17;19024:9;19047:17;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;;;19047:31:17;;:62;;;17394:2187;19043:219;;17394:2187;19536:24;19295:17;18266:31;19534:40;19295:17;;;;18226:37;19295:17;18078:28;19535:32;19295:17;;938:15710:18;18191:20:17;19344:23;;938:15710:18;19445:9:17;1968:4;;19457:25;;938:15710:18;1968:4:17;19415:18;;938:15710:18;19551:9:17;19536:24;;:::i;19043:219::-;19178:73;;;;;18226:37;19178:73;18266:31;19534:40;19178:73;;;19535:32;19178:73;19536:24;19178:73;12937:15:18;19178:73:17;:::i;:::-;19125:126;;19043:219;;;;;;;;;;;;;19047:62;;13159:4:18;19047:62:17;;18813:138;18078:28;938:15710:18;-1:-1:-1;;;18885:51:17;;;;12937:15:18;18885:51:17;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;18639:140:17;18078:28;938:15710:18;-1:-1:-1;;;18721:47:17;;;;12937:15:18;18721:47:17;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15710:18;;;;;;;;-1:-1:-1;;938:15710:18;;;;:::o;:::-;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;6331:742::-;;;938:15710;6458:19;-1:-1:-1;;;;;938:15710:18;;;6497:83;;;;;;;938:15710;;;;;;6497:83;;;;;;938:15710;6497:83;;-1:-1:-1;;;;;6557:12:18;938:15710;6497:83;;;;:::i;:::-;;;;;;;;6331:742;-1:-1:-1;6493:574:18;;6592:475;;;;:::i;:::-;938:15710;6497:83;938:15710;;6638:17;6634:164;;6838:28;6848:17;938:15710;;6848:17;:::i;:::-;6838:28;:::i;:::-;6497:83;6919:3;938:15710;;6900:17;;;;;6962:9;;;938:15710;6962:9;;;:::i;:::-;938:15710;;;;;6962:9;6942:29;6953:5;;;:::i;:::-;6942:29;938:15710;6942:29;;;;:::i;:::-;;938:15710;6885:13;;6900:17;;7019:37;6900:17;;;7019:37;938:15710;;;7019:37;;;;;;:::i;6634:164::-;6770:12;;;;:::i;:::-;938:15710;;6755:28::o;6497:83::-;;;938:15710;6497:83;;;:::i;:::-;;;;1279:65:3;1326:10;;;:::i;490:2:4:-;;;;:::o;:::-;;938:15710:18;;-1:-1:-1;;;490:2:4;;;;;;;;;;;938:15710:18;490:2:4;938:15710:18;;;490:2:4;;7091:1077:17;7613:23;7091:1077;7210:30;7227:13;;;:::i;:::-;-1:-1:-1;;;;;938:15710:18;;;;7210:30:17;7266:12;;;938:15710:18;7266:12:17;7250:13;;938:15710:18;7343:53:17;7372:23;;;938:15710:18;2535:183:4;938:15710:18;;;;;;2535:183:4;;7343:53:17;7319:20;;;938:15710:18;7289:28:17;;;938:15710:18;7435:25:17;;;938:15710:18;7406:26:17;;;938:15710:18;7525:44:17;7406:26;7554:14;;938:15710:18;2535:183:4;938:15710:18;;;;;;2535:183:4;;7525:44:17;7501:20;;;938:15710:18;7471:28:17;;;938:15710:18;7613:23:17;;;;;:::i;:::-;7650:27;;;;;7924:62;7701:65;7613:23;7701:65;7693:107;490:2:4;7814:172:17;7701:65;;;;7693:107;:::i;:::-;7924:62;:::i;:::-;7435:25;7873:31;;938:15710:18;7372:23:17;7834:37;;938:15710:18;-1:-1:-1;;;;;938:15710:18;7815:17:17;;938:15710:18;;7646:516:17;8017:17;;7435:25;8017:17;938:15710:18;7613:23:17;8017:17;;;938:15710:18;8061:37:17;7372:23;8061:37;;938:15710:18;8116:31:17;938:15710:18;7091:1077:17:o;938:15710:18:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10418:1498:17:-;;;;11170:102;11233:17;-1:-1:-1;10649:22:17;10737:14;;938:15710:18;;10895:17:17;938:15710:18;;;-1:-1:-1;;;;;938:15710:18;;;;10849:11:17;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;10895:17;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;;10926:31:17;;-1:-1:-1;;;;;10926:31:17;938:15710:18;;10975:23:17;10971:182;;;;10418:1498;11233:17;;938:15710:18;;10849:11:17;938:15710:18;11170:102:17;;;;;;;-1:-1:-1;;;11170:102:17;;;;;;:::i;:::-;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;11170:102:17;;;;;;;10418:1498;-1:-1:-1;11166:352:17;;11461:41;;;:::i;:::-;938:15710:18;11416:87:17;10849:11;938:15710:18;11416:87:17;;;-1:-1:-1;;;11416:87:17;;11170:102;11416:87;;;:::i;11166:352::-;11337:32;;;11531:369;;10418:1498;;:::o;11531:369::-;11611:16;;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;11611:16:17;-1:-1:-1;;10418:1498:17:o;11170:102::-;;;;;11233:17;11170:102;11233:17;11170:102;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;10971:182;1241:17:3;;;;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;1241:17:3;938:15710:18;11089:21:17;;;;:49;;;;10971:182;;;;;11089:49;1968:4;;;;11089:49;;10418:1498;;;;;;11233:17;11170:102;10418:1498;10737:14;;938:15710:18;;10895:17:17;938:15710:18;;;-1:-1:-1;;;;;938:15710:18;;;;10849:11:17;;;;;;;;;;:::i;938:15710:18:-;10926:31:17;-1:-1:-1;;;;;938:15710:18;;;10975:23:17;10971:182;;;;10418:1498;11233:17;938:15710:18;11233:17:17;;938:15710:18;;10849:11:17;938:15710:18;11170:102:17;;;;;;;-1:-1:-1;;;11170:102:17;;;;;;:::i;:::-;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;11170:102:17;;938:15710:18;;11170:102:17;;;10418:1498;-1:-1:-1;11166:352:17;;11461:41;;;:::i;11166:352::-;11337:32;;;11531:369;;10418:1498;;;:::o;11531:369::-;11611:16;;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;11611:16:17;938:15710:18;;;11703:25:17;;;;11699:123;;1968:4;;938:15710:18;;10418:1498:17:o;11699:123::-;10849:11;938:15710:18;;-1:-1:-1;;;11759:44:17;;11170:102;11759:44;;938:15710:18;;;;;;;;;;;;;;;;;;;;18885:51:17;11170:102;;;;;11233:17;11170:102;11233:17;11170:102;;;;;;;:::i;:::-;;;;;10971:182;1241:17:3;;;;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;1241:17:3;938:15710:18;11089:21:17;;;;;;:49;938:15710:18;11089:49:17;;;10971:182;;;;;;11089:49;1968:4;938:15710:18;1968:4:17;;;11089:49;;7079:602:18;;7273:1;7302:3;7276:24;;;;;;938:15710;;:::i;:::-;7273:1;938:15710;;;;;;;;;;;;;;;;;;;7475:51;938:15710;;;;;;7453:7;;;;;;:::i;:::-;7498;;;;:::i;7475:51::-;7545:11;;;;;;;:25;:11;;;:::i;:::-;-1:-1:-1;;;;;938:15710:18;;;7545:25;;7541:72;;7627:11;7644:19;7627:11;;;;:::i;:::-;7644:19;;;;;;:::i;:::-;938:15710;;;7644:19;938:15710;;;;;;:::i;:::-;7627:37;;;;;;;:::i;:::-;;7261:13;938:15710;7261:13;;7541:72;7590:8;;;;;938:15710;;;;7276:24;;;;;7079:602::o;15176:332::-;15314:84;15176:332;15342:15;;;;;;:::i;:::-;938:15710;15374:23;938:15710;;;;;;:::i;:::-;15374:23;;;;;:::i;:::-;15314:84;;;;:::i;:::-;938:15710;;15408:94;;15176:332;:::o;15408:94::-;938:15710;;15342:15;938:15710;15466:25;;;-1:-1:-1;;;15466:25:18;;-1:-1:-1;15466:25:18;;;938:15710;15342:15;938:15710;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;7687:2525::-;;;;;938:15710;;:::i;:::-;-1:-1:-1;;;8066:17:18;;;;8330:57;938:15710;;;;:::i;:::-;;8274:9;-1:-1:-1;8227:57:18;8274:9;8227:57;10907:46;8227:57;:::i;:::-;8377:9;938:15710;;;8330:57;;;;;-1:-1:-1;;;8330:57:18;;;;;;;:::i;:::-;;:12;;-1:-1:-1;;;;;8330:12:18;938:15710;8330:57;;;;;;;-1:-1:-1;;;8330:57:18;;;8062:1101;8298:89;;;;8467:14;;;8463:108;;8062:1101;;9190:21;8062:1101;;;;;;;;9190:21;;:::i;:::-;9221:27;-1:-1:-1;;;;;9681:12:18;938:15710;9259:872;;9267:15;;;;;:::i;:::-;9266:35;;;9371:9;9383:14;;;:::i;:::-;-1:-1:-1;9367:118:18;;9517:15;;;;;;;;-1:-1:-1;9517:15:18;;9575:54;9516:21;9517:15;;9681:57;9517:15;;:::i;:::-;938:15710;;;;9516:21;9575:54;;10907:46;9575:54;:::i;:::-;9728:9;;938:15710;;;9681:57;;;;;;;-1:-1:-1;;;9681:57:18;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;9681:57:18;;;9259:872;-1:-1:-1;9753:368:18;;;9880:19;;;9926:10;9880:19;9926:10;:::i;:::-;9954:21;9753:368;;9259:872;;;;;;;;9753:368;10096:10;;;;;;;;;:::i;:::-;9753:368;;;9681:57;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;9367:118::-;9424:46;-1:-1:-1;9424:46:18;9681:57;938:15710;;;;;;;;;;;;-1:-1:-1;9424:46:18;9266:35;;;;;;;;;;10148:57;9266:35;;938:15710;;:::i;:::-;;;;;;10148:57;;;938:15710;;10148:57;938:15710;10148:57;;938:15710;7687:2525;:::o;8463:108::-;938:15710;;;;;;;;;;8508:48;938:15710;;:::i;:::-;-1:-1:-1;938:15710:18;;;;;8508:48;;;938:15710;;8330:57;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;8062:1101;8716:9;8865:57;8716:9;;8809;;8762:57;8809:9;8762:57;10907:46;8762:57;:::i;:::-;8912:9;938:15710;;;8865:57;;;;;-1:-1:-1;;;8865:57:18;;;;;;;:::i;:::-;;:12;;-1:-1:-1;;;;;8865:12:18;938:15710;8865:57;;;;;;;;-1:-1:-1;8865:57:18;;;8062:1101;8833:89;;;;8945:24;8833:89;8960:9;;8945:24;;:::i;:::-;9049:14;;;9045:108;;8062:1101;;9190:21;8062:1101;;;;;;;;;8865:57;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;7687:2525;;;;;938:15710;;:::i;:::-;-1:-1:-1;;;8066:17:18;;;;8330:57;938:15710;;;;:::i;:::-;;8274:9;-1:-1:-1;8227:57:18;8274:9;8227:57;11597:37;8227:57;:::i;8330:::-;;:12;;-1:-1:-1;;;;;8330:12:18;938:15710;8330:57;;;;;;;-1:-1:-1;;;8330:57:18;;;8062:1101;8298:89;;;;8467:14;;;8463:108;;8062:1101;;9190:21;8062:1101;;;;;;;9190:21;;:::i;:::-;9221:27;-1:-1:-1;;;;;9681:12:18;938:15710;9259:872;;9267:15;;;;;:::i;:::-;9266:35;;;9371:9;9383:14;;;:::i;:::-;-1:-1:-1;9367:118:18;;9517:15;;;;;;;;-1:-1:-1;9517:15:18;;9575:54;9516:21;9517:15;;9681:57;9517:15;;:::i;9516:21::-;9575:54;;11597:37;9575:54;:::i;9681:57::-;;;;;;;;;;-1:-1:-1;;;9681:57:18;;;9259:872;-1:-1:-1;9753:368:18;;;9880:19;;;9926:10;9880:19;9926:10;:::i;:::-;9954:21;9753:368;;9259:872;;;;;;;;9753:368;10096:10;;;;;;;;;:::i;:::-;9753:368;;;9681:57;;;;;;;;;;;;;;;:::i;:::-;;;;;;8330;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;8062:1101;8716:9;8865:57;8716:9;;8809;;8762:57;8809:9;8762:57;11597:37;8762:57;:::i;8865:::-;;:12;;-1:-1:-1;;;;;8865:12:18;938:15710;8865:57;;;;;;;;-1:-1:-1;8865:57:18;;;8062:1101;8833:89;;;;8945:24;8833:89;8960:9;;8945:24;;:::i;:::-;9049:14;;;9045:108;;8062:1101;;9190:21;8062:1101;;;;;;;;;8865:57;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;7687:2525;;;;;938:15710;;:::i;:::-;-1:-1:-1;;;8066:17:18;;;;8330:57;938:15710;;;;:::i;:::-;;8274:9;-1:-1:-1;8227:57:18;8274:9;8227:57;13159:4;8227:57;:::i;8330:::-;;:12;;-1:-1:-1;;;;;8330:12:18;938:15710;8330:57;;;;;;;-1:-1:-1;;;8330:57:18;;;8062:1101;8298:89;;;;8467:14;;;8463:108;;8062:1101;;9190:21;8062:1101;;;;;;;9190:21;;:::i;:::-;9221:27;-1:-1:-1;;;;;9681:12:18;938:15710;9259:872;;9267:15;;;;;:::i;:::-;9266:35;;;9371:9;9383:14;;;:::i;:::-;-1:-1:-1;9367:118:18;;9517:15;;;;;;;;-1:-1:-1;9517:15:18;;9575:54;9516:21;9517:15;;9681:57;9517:15;;:::i;9516:21::-;9575:54;;13159:4;9575:54;:::i;9681:57::-;;;;;;;;;;-1:-1:-1;;;9681:57:18;;;9259:872;-1:-1:-1;9753:368:18;;;9880:19;;;9926:10;9880:19;9926:10;:::i;:::-;9954:21;9753:368;;9259:872;;;;;;;;9753:368;10096:10;;;;;;;;;:::i;:::-;9753:368;;;9681:57;;;;;;;;;;;;;;;:::i;:::-;;;;;;8330;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;8062:1101;8716:9;8865:57;8716:9;;8809;;8762:57;8809:9;8762:57;13159:4;8762:57;:::i;8865:::-;;:12;;-1:-1:-1;;;;;8865:12:18;938:15710;8865:57;;;;;;;;-1:-1:-1;8865:57:18;;;8062:1101;8833:89;;;;8945:24;8833:89;8960:9;;8945:24;;:::i;:::-;9049:14;;;9045:108;;8062:1101;;9190:21;8062:1101;;;;;;;;;8865:57;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1107:452:13;1204:349;1968:4:17;1204:349:13;;;;1107:452;1204:349;;;;;;;;;;;;;;;;;;1107:452;:::o;1204:349::-;;1968:4:17;1204:349:13;;938:15710:18;-1:-1:-1;;;938:15710:18;;;;;;;;;;-1:-1:-1;938:15710:18;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12481:1447:17:-;;;;;12773:9;12826:14;;;12874:17;938:15710:18;12874:17:17;;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;;12941:19:17;;;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;12941:19:17;938:15710:18;;13031:25:17;;;13027:122;;-1:-1:-1;;;;;13409:17:17;13258:37;938:15710:18;1968:4:17;;;;;13313:144;1968:4;;;;;938:15710:18;;13258:37:17;938:15710:18;13409:17:17;;938:15710:18;;;;13313:144:17;;;;;;;938:15710:18;13313:144:17;;;;;;:::i;:::-;;938:15710:18;;13313:144:17;;;;938:15710:18;;;13313:144:17;;;12481:1447;-1:-1:-1;13309:441:17;;13693:41;;;:::i;:::-;938:15710:18;13648:87:17;938:15710:18;;13648:87:17;;;-1:-1:-1;;;13648:87:17;;13313:144;13648:87;;;:::i;13309:441::-;13533:18;;;13776:9;1968:4;;13767:43;13763:149;;12481:1447;:::o;13763:149::-;938:15710:18;;;-1:-1:-1;;;13837:60:17;;13313:144;13837:60;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;18885:51:17;13313:144;;;;;;;;;938:15710:18;13313:144:17;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;13027:122;13083:51;938:15710:18;;;13083:51:17;;;-1:-1:-1;;;13083:51:17;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;1559:259:3;-1:-1:-1;;;;;938:15710:18;1683:8:3;938:15710:18;1683:8:3;938:15710:18;;;1683:8:3;938:15710:18;;;;;;;;;;;;;;1559:259:3;:::o;14301:1187:17:-;14561:34;-1:-1:-1;;;;;14301:1187:17;14561:34;:::i;:::-;938:15710:18;;14605:111:17;;14725:96;;15123:43;-1:-1:-1;;;;;15123:43:17;;:::i;:::-;938:15710:18;;15176:105:17;;14301:1187::o;15176:105::-;938:15710:18;;-1:-1:-1;;;15229:41:17;;;;-1:-1:-1;15229:41:17;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;14725:96:17;938:15710:18;;-1:-1:-1;;;14766:44:17;;;;-1:-1:-1;14766:44:17;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;14605:111:17;14664:41;938:15710:18;;-1:-1:-1;;;14664:41:17;;-1:-1:-1;14664:41:17;;;938:15710:18;;;;;;;;;;;;;;;;14664:41:17;856:262:3;;-1:-1:-1;;;;;938:15710:18;;:::i;:::-;;;997:8:3;938:15710:18;997:8:3;938:15710:18;;;1034:17:3;938:15710:18;997:8:3;938:15710:18;1034:17:3;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;1061:20:3;;938:15710:18;856:262:3:o;1187:234:1:-;-1:-1:-1;;;;;938:15710:18;-1:-1:-1;938:15710:18;1373:19:1;938:15710:18;;;1373:32:1;938:15710:18;1317:2:1;938:15710:18;1317:2:1;-1:-1:-1;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;1373:32:1;938:15710:18;;;1373:34:1;;;;:::i;:::-;938:15710:18;;;1373:41:1;1187:234;:::o;4234:507:4:-;;;938:15710:18;372:2:4;938:15710:18;;;;;;;434:2:4;938:15710:18;;;372:2:4;938:15710:18;;434:2:4;938:15710:18;490:2:4;938:15710:18;;;;;;;;;;;;;;434:2:4;938:15710:18;434:2:4;938:15710:18;;;4234:507:4:o;938:15710:18:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;8981:1012:17:-;;;;9103:20;9099:888;;8981:1012;;;;;:::o;9099:888::-;9156:14;;938:15710:18;-1:-1:-1;;;;;938:15710:18;9195:18:17;;;9191:121;;9377:35;:14;;:35;938:15710:18;9343:80:17;9377:35;938:15710:18;9343:80:17;;938:15710:18;9343:80:17;;;9122:1;9343:80;;;;;;;;:::i;:::-;;1525:14;-1:-1:-1;;;;;1525:14:17;938:15710:18;9343:80:17;;;;;;;9122:1;9343:80;;;9099:888;938:15710:18;-1:-1:-1;;;;;938:15710:18;;9441:21:17;;;9437:115;;-1:-1:-1;;;;;938:15710:18;9569:17:17;;;9565:116;;9698:19;:24;9694:123;;9864:14;9856:23;9864:14;9899:77;9864:14;9848:32;9864:14;;:::i;9848:32::-;9343:80;9915:17;;;938:15710:18;9951:14:17;;938:15710:18;9951:24:17;938:15710:18;9377:35:17;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;9377:35:17;9899:77;9099:888;;;;;;9694:123;9377:35;938:15710:18;;-1:-1:-1;;;9749:53:17;;9343:80;9749:53;;938:15710:18;;;;;;;;;;;;;;;;;;;;18885:51:17;9565:116;9613:53;938:15710:18;9377:35:17;938:15710:18;9613:53:17;;;-1:-1:-1;;;9613:53:17;;9343:80;9613:53;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;9437:115:17;9489:48;938:15710:18;9377:35:17;938:15710:18;9489:48:17;;;-1:-1:-1;;;9489:48:17;;9343:80;9489:48;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;9343:80:17;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;9191:121;938:15710:18;;;-1:-1:-1;;;9245:52:17;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;18885:51:17;15905:741:18;;;;;16096:20;:47;;;;15905:741;16092:183;;;16315:2;16288:29;;;16284:310;;15905:741;938:15710;;;;:::i;16284:310::-;16315:2;938:15710;;;;;;16411:21;:26;16407:177;;16284:310;;;;16407:177;938:15710;;;;;;:::i;:::-;;;;;;;;;16531:38;:::o;16092:183::-;938:15710;;;;;;;;:::i;:::-;;;;;;;;;16228:36;:::o;16096:47::-;16120:18;;;:23;16096:47;;;938:15710;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;-1:-1:-1;938:15710:18;;;:::o;:::-;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;938:15710:18;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;:::o;:::-;;;;;-1:-1:-1;938:15710:18;;;;;;;;;;;;;;;;;:::i;3324:1845::-;938:15710;;:::i;:::-;3543:47;3575:15;;;;:::i;:::-;3543:47;:::i;:::-;938:15710;;;:::i;:::-;3613:46;3605:54;;3601:843;;938:15710;;;:::i;:::-;4466:37;4458:45;;4454:382;;938:15710;;;;4858:29;938:15710;;:::i;:::-;4850:37;4846:284;;938:15710;;-1:-1:-1;;;5140:22:18;;938:15710;5140:22;;;938:15710;;;;;;;;;;;;;18885:51:17;4846:284:18;4920:19;5031:88;938:15710;4983:27;4920:19;;5031:88;4920:19;;;:::i;:::-;4983:27;;;;;;:::i;:::-;938:15710;;;:::i;:::-;;4983:27;938:15710;5031:88;;;938:15710;4920:19;5031:88;;;;;;;:::i;4454:382::-;4542:15;;;938:15710;4628:19;4542:36;:15;;4746:79;4542:15;;:::i;:::-;3718:23:4;;938:15710:18;;;;3587:162:4;4542:36:18;4628:19;938:15710;;;;4628:19;938:15710;;4627:45;4644:3;4687:19;;938:15710;4746:79;938:15710;;4746:79;;;938:15710;4746:79;;;;;;;;:::i;3601:843::-;3783:15;;;4355:78;3783:15;-1:-1:-1;;3783:15:18;4234:99;;3738:78;3783:32;:15;;4355:78;3783:15;;:::i;:32::-;3738:78;;:::i;:::-;3865:26;;;;938:15710;3909:19;3783:32;3909:19;;;490:2:4;3909:19:18;;938:15710;3909:67;3905:195;;3601:843;938:15710;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;4234:99;;;;;:::i;:::-;;938:15710;;4234:99;;;;;;:::i;:::-;4196:137;938:15710;;4355:78;;;938:15710;4234:99;4355:78;;;;;;;:::i;3905:195::-;938:15710;4012:15;;;:32;:15;;:73;:15;;:::i;:32::-;:73;;;:::i;938:15710::-;3905:195;;;;23680:517:17;23890:28;23825:20;;;938:15710:18;23890:28:17;;938:15710:18;23936:36:17;;;23932:173;;24166:13;1968:4;3338:5:0;;;;;;:13;23680:517:17;:::o;3338:13:0:-;;;23680:517:17;:::o;23932:173::-;24071:19;;:::o;3827:410::-;;;;3993:237;938:15710:18;4025:17:17;;;938:15710:18;4056:14:17;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;4091:24:17;4025:17;-1:-1:-1;;;;;4091:24:17;;;938:15710:18;;4129:20:17;;938:15710:18;;;;;;;;4025:17:17;938:15710:18;;;;;;;;;;;3993:237:17;3827:410::o;:::-;;938:15710:18;3993:237:17;3827:410;4025:17;;;938:15710:18;4056:14:17;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;4091:24:17;4025:17;-1:-1:-1;;;;;4091:24:17;;;938:15710:18;;4129:20:17;;938:15710:18;;;;;;;;;4025:17:17;938:15710:18;;;;;;;;;;;3993:237:17;3827:410::o;4243:182::-;4355:17;;;938:15710:18;4374:14:17;;938:15710:18;4328:90:17;4355:17;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;4397:20:17;;938:15710:18;;;;;;4328:90:17;4243:182::o;15818:500::-;15976:19;;15972:76;;15994:1;938:15710:18;;;;;;:::i;:::-;;;;;;;;;;;;;1582:3:0;938:15710:18;;1596:15:0;;1592:67;;15818:500:17;938:15710:18;1691:28:0;16203:33:17;938:15710:18;1684:36:0;1691:28;;938:15710:18;;;;1691:28:0;938:15710:18;;;;1684:36:0;938:15710:18;1733:50:0;-1:-1:-1;;;;;938:15710:18;;:::i;:::-;;;1733:50:0;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;;1733:50:0;;938:15710:18;1733:50:0;;;;938:15710:18;;;;;;1733:50:0;938:15710:18;;;1733:50:0;;938:15710:18;;;;;16203:33:17;:15;:33;:70;;;;;15818:500;16186:87;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;15818:500:17;:::o;16203:70::-;938:15710:18;16240:33:17;;-1:-1:-1;938:15710:18;;;;16240:33:17;16203:15;16240:33;16203:70;;;1592:67:0;-1:-1:-1;938:15710:18;1592:67:0;;15972:76:17;16011:26;15994:1;16011:26;15994:1;16011:26;:::o;2879:281:0:-;2961:193;;;;;;;2879:281;:::o", "linkReferences": {}, "immutableReferences": { "1745": [{ "start": 16668, "length": 32 }], "3320": [{ "start": 11252, "length": 32 }, { "start": 13356, "length": 32 }, { "start": 13448, "length": 32 }, { "start": 13938, "length": 32 }, { "start": 14127, "length": 32 }, { "start": 14218, "length": 32 }, { "start": 14493, "length": 32 }, { "start": 14682, "length": 32 }, { "start": 14773, "length": 32 }, { "start": 15048, "length": 32 }] } }, "methodIdentifiers": { "_paymasterValidation(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256))": "21e60b37", "_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)": "c579f76b", "addStake(uint32)": "0396cb60", "balanceOf(address)": "70a08231", "binarySearchCallGasLimit(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)[],((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes),address,uint256,uint256,uint256)": "7472949c", "binarySearchPaymasterVerificationGasLimit(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)[],((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes),address,uint256,uint256,uint256)": "03d1dcaf", "binarySearchVerificationGasLimit(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)[],((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes),address,uint256,uint256,uint256)": "76ad6123", "depositTo(address)": "b760faf9", "deposits(address)": "fc7e286d", "getDepositInfo(address)": "5287ce12", "getNonce(address,uint192)": "35567e1a", "getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "22cdde4c", "incrementNonce(uint192)": "0bd28e3b", "innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)": "0da82661", "nonceSequenceNumber(address,uint192)": "1b2e01b8", "simulateCall(address,bytes,uint256)": "f7e426e8", "simulateCallAndRevert(address,bytes,uint256)": "44403473", "simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)": "97b2dcb9", "simulateHandleOpBulk((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[])": "0dbfc6bd", "simulateHandleOpLast((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[])": "263934db", "simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "c3bce009", "simulateValidationBulk((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[])": "30ec25d1", "simulateValidationLast((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[])": "fe2171cb", "unlockStake()": "bb9fe6bf", "withdrawStake(address)": "c23a5cea", "withdrawTo(address,uint256)": "205c2878" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"CallPhaseReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailedOp\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"inner\",\"type\":\"bytes\"}],\"name\":\"FailedOpWithRevert\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"PostOpReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SenderAddressResult\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"}],\"name\":\"SignatureValidationFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"name\":\"SimulationOutOfGas\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"remainingGas\",\"type\":\"uint256\"}],\"name\":\"innerCallResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"}],\"name\":\"AccountDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"BeforeExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalDeposit\",\"type\":\"uint256\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"PostOpRevertReason\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"}],\"name\":\"SignatureAggregatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalStaked\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"name\":\"StakeLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawTime\",\"type\":\"uint256\"}],\"name\":\"StakeUnlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"StakeWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualGasUsed\",\"type\":\"uint256\"}],\"name\":\"UserOperationEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"UserOperationPrefundTooLow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"UserOperationRevertReason\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"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\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"}],\"name\":\"_paymasterValidation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"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\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"validatePaymasterPrepayment\",\"type\":\"bool\"}],\"name\":\"_validatePrepayment\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"}],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"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\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"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\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchCallGasLimit\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.TargetCallResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"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\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"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\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchPaymasterVerificationGasLimit\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.TargetCallResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"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\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"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\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchVerificationGasLimit\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.TargetCallResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"depositTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"deposits\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"staked\",\"type\":\"bool\"},{\"internalType\":\"uint112\",\"name\":\"stake\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"withdrawTime\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getDepositInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"staked\",\"type\":\"bool\"},{\"internalType\":\"uint112\",\"name\":\"stake\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"withdrawTime\",\"type\":\"uint48\"}],\"internalType\":\"struct IStakeManager.DepositInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"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\"}],\"name\":\"getUserOpHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"incrementNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"opInfo\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preGas\",\"type\":\"uint256\"}],\"name\":\"innerHandleOp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"\",\"type\":\"uint192\"}],\"name\":\"nonceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"simulateCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"simulateCallAndRevert\",\"outputs\":[],\"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\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"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\":[{\"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\":\"ops\",\"type\":\"tuple[]\"}],\"name\":\"simulateHandleOpBulk\",\"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\":[{\"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\":\"ops\",\"type\":\"tuple[]\"}],\"name\":\"simulateHandleOpLast\",\"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\":[{\"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\"}],\"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\"},{\"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[]\"}],\"name\":\"simulateValidationBulk\",\"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\"},{\"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[]\"}],\"name\":\"simulateValidationLast\",\"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\"},{\"inputs\":[],\"name\":\"unlockStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"}],\"name\":\"withdrawStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"withdrawAmount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"FailedOp(uint256,string)\":[{\"params\":{\"opIndex\":\"- Index into the array of ops to the failed one (in simulateValidation, this is always zero).\",\"reason\":\"- Revert reason. The string starts with a unique code \\\"AAmn\\\", where \\\"m\\\" is \\\"1\\\" for factory, \\\"2\\\" for account and \\\"3\\\" for paymaster issues, so a failure can be attributed to the correct entity.\"}}],\"FailedOpWithRevert(uint256,string,bytes)\":[{\"details\":\"note that inner is truncated to 2048 bytes\",\"params\":{\"inner\":\"- data from inner cought revert reason\",\"opIndex\":\"- Index into the array of ops to the failed one (in simulateValidation, this is always zero).\",\"reason\":\"- Revert reason. see FailedOp(uint256,string), above\"}}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SignatureValidationFailed(address)\":[{\"params\":{\"aggregator\":\"The aggregator that failed to verify the signature\"}}]},\"events\":{\"AccountDeployed(bytes32,address,address,address)\":{\"params\":{\"factory\":\"- The factory used to deploy this account (in the initCode)\",\"paymaster\":\"- The paymaster used by this UserOp\",\"sender\":\"- The account that is deployed\",\"userOpHash\":\"- The userOp that deployed this account. UserOperationEvent will follow.\"}},\"PostOpRevertReason(bytes32,address,uint256,bytes)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"revertReason\":\"- The return bytes from the (reverted) call to \\\"callData\\\".\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}},\"SignatureAggregatorChanged(address)\":{\"params\":{\"aggregator\":\"- The aggregator used for the following UserOperationEvents.\"}},\"UserOperationEvent(bytes32,address,address,uint256,bool,uint256,uint256)\":{\"params\":{\"actualGasCost\":\"- Actual amount paid (by account or paymaster) for this UserOperation.\",\"actualGasUsed\":\"- Total gas used by this UserOperation (including preVerification, creation, validation and execution).\",\"nonce\":\"- The nonce value from the request.\",\"paymaster\":\"- If non-null, the paymaster that pays for this request.\",\"sender\":\"- The account that generates this request.\",\"success\":\"- True if the sender transaction succeeded, false if reverted.\",\"userOpHash\":\"- Unique identifier for the request (hash its entire content, except signature).\"}},\"UserOperationPrefundTooLow(bytes32,address,uint256)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"revertReason\":\"- The return bytes from the (reverted) call to \\\"callData\\\".\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}}},\"kind\":\"dev\",\"methods\":{\"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)\":{\"params\":{\"opIndex\":\"- The index of this userOp into the \\\"opInfos\\\" array.\",\"userOp\":\"- The userOp to validate.\"}},\"addStake(uint32)\":{\"params\":{\"unstakeDelaySec\":\"The new lock duration before the deposit can be withdrawn.\"}},\"balanceOf(address)\":{\"params\":{\"account\":\"- The account to query.\"},\"returns\":{\"_0\":\"- The deposit (for gas payment) of the account.\"}},\"depositTo(address)\":{\"params\":{\"account\":\"- The account to add to.\"}},\"getDepositInfo(address)\":{\"params\":{\"account\":\"- The account to query.\"},\"returns\":{\"info\":\" - Full deposit information of given account.\"}},\"getNonce(address,uint192)\":{\"params\":{\"key\":\"the high 192 bit of the nonce\",\"sender\":\"the account address\"},\"returns\":{\"nonce\":\"a full nonce to pass for next UserOp with this sender.\"}},\"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"params\":{\"userOp\":\"- The user operation to generate the request ID for.\"},\"returns\":{\"_0\":\"hash the hash of this UserOperation\"}},\"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)\":{\"params\":{\"callData\":\"- The callData to execute.\",\"context\":\"- The context bytes.\",\"opInfo\":\"- The UserOpInfo struct.\"},\"returns\":{\"actualGasCost\":\"- the actual cost in eth this UserOperation paid for gas\"}},\"simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)\":{\"params\":{\"op\":\"The UserOperation to simulate.\"},\"returns\":{\"_0\":\"the execution result structure\"}},\"simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"details\":\"The node must also verify it doesn't use banned opcodes, and that it doesn't reference storage outside the account's data.\",\"params\":{\"userOp\":\"- The user operation to validate.\"},\"returns\":{\"_0\":\"the validation result structure\"}},\"withdrawStake(address)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\"}},\"withdrawTo(address,uint256)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\",\"withdrawAmount\":\"- The amount to withdraw.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"FailedOp(uint256,string)\":[{\"notice\":\"A custom revert error of handleOps, to identify the offending op. Should be caught in off-chain handleOps simulation and not happen on-chain. Useful for mitigating DoS attempts against batchers or for troubleshooting of factory/account/paymaster reverts. NOTE: If simulateValidation passes successfully, there should be no reason for handleOps to fail on it.\"}],\"FailedOpWithRevert(uint256,string,bytes)\":[{\"notice\":\"A custom revert error of handleOps, to report a revert by account or paymaster.\"}],\"SignatureValidationFailed(address)\":[{\"notice\":\"Error case when a signature aggregator fails to verify the aggregated signature it had created.\"}]},\"events\":{\"AccountDeployed(bytes32,address,address,address)\":{\"notice\":\"Account \\\"sender\\\" was deployed.\"},\"BeforeExecution()\":{\"notice\":\"An event emitted by handleOps(), before starting the execution loop. Any event emitted before this event, is part of the validation.\"},\"PostOpRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation Paymaster's \\\"postOp\\\" call reverted with non-zero length.\"},\"SignatureAggregatorChanged(address)\":{\"notice\":\"Signature aggregator used by the following UserOperationEvents within this bundle.\"},\"UserOperationEvent(bytes32,address,address,uint256,bool,uint256,uint256)\":{\"notice\":\"An event emitted after each successful request.\"},\"UserOperationPrefundTooLow(bytes32,address,uint256)\":{\"notice\":\"UserOp consumed more than prefund. The UserOperation is reverted, and no refund is made.\"},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation \\\"callData\\\" reverted with non-zero length.\"}},\"kind\":\"user\",\"methods\":{\"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)\":{\"notice\":\"Validate account and paymaster (if defined) and also make sure total validation doesn't exceed verificationGasLimit. This method is called off-chain (simulateValidation()) and on-chain (from handleOps)\"},\"addStake(uint32)\":{\"notice\":\"Add to the account's stake - amount and delay any pending unstake is first cancelled.\"},\"balanceOf(address)\":{\"notice\":\"Get account balance.\"},\"constructor\":{\"notice\":\"simulation contract should not be deployed, and specifically, accounts should not trust it as entrypoint, since the simulation functions don't check the signatures\"},\"depositTo(address)\":{\"notice\":\"Add to the deposit of the given account.\"},\"deposits(address)\":{\"notice\":\"maps paymaster to their deposits and stakes\"},\"getDepositInfo(address)\":{\"notice\":\"Get deposit info.\"},\"getNonce(address,uint192)\":{\"notice\":\"Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order.\"},\"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Generate a request Id - unique identifier for this request. The request ID is a hash over the content of the userOp (except the signature), the entrypoint and the chainid.\"},\"incrementNonce(uint192)\":{\"notice\":\"Manually increment the nonce of the sender. This method is exposed just for completeness.. Account does NOT need to call it, neither during validation, nor elsewhere, as the EntryPoint will update the nonce regardless. Possible use-case is call it with various keys to \\\"initialize\\\" their nonces to one, so that future UserOperations will not pay extra for the first transaction with a given key.\"},\"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)\":{\"notice\":\"Inner function to handle a UserOperation. Must be declared \\\"external\\\" to open a call context, but it can only be called by handleOps.\"},\"nonceSequenceNumber(address,uint192)\":{\"notice\":\"The next valid sequence number for a given nonce key.\"},\"simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)\":{\"notice\":\"Simulate full execution of a UserOperation (including both validation and target execution) It performs full validation of the UserOperation, but ignores signature error. An optional target address is called after the userop succeeds, and its value is returned (before the entire call is reverted). Note that in order to collect the the success/failure of the target call, it must be executed with trace enabled to track the emitted events.\"},\"simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Simulate a call to account.validateUserOp and paymaster.validatePaymasterUserOp.\"},\"unlockStake()\":{\"notice\":\"Attempt to unlock the stake. The value can be withdrawn (using withdrawStake) after the unstake delay.\"},\"withdrawStake(address)\":{\"notice\":\"Withdraw from the (unlocked) stake. Must first call unlockStake and wait for the unstakeDelay to pass.\"},\"withdrawTo(address,uint256)\":{\"notice\":\"Withdraw from the deposit.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/v07/EntryPointSimulations.sol\":\"EntryPointSimulations07\"},\"evmVersion\":\"paris\",\"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.1.0/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-v7/contracts/core/Helpers.sol\":{\"keccak256\":\"0x6247e011a6cb0b263b3aa098822977181674d91b62e5bdfe04c6e66f72da25d6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ca829a69b3fbc74fec8e140d42a2bf93bc3512609272f031c846470f61f0ab7e\",\"dweb:/ipfs/QmP3r3MBgAN39KeVB1rCGJWwcBcotNt26ALtAR54poQ1Jc\"]},\"lib/account-abstraction-v7/contracts/core/NonceManager.sol\":{\"keccak256\":\"0x1f951786ce6f171e7ed0242fee73ee4a205c7523404ee6cffca48b8c64ea5fe9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a602bf2274d478dae7a532cca31f8179131808c324cc26ece5c7e87c5a1015a6\",\"dweb:/ipfs/QmaaSyw5GGbAWzUhAPCtsb38P3MmaVr1ngp61PYHCU2a5a\"]},\"lib/account-abstraction-v7/contracts/core/SenderCreator.sol\":{\"keccak256\":\"0xeb95afb6e4cf921c1ed105ecb9f549ca46bee57f68acd1d2f4f84607ac0db5c5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d2ac91562f1fcabe4809a1b4256895efebcf46f89e08336a6c09ee2d29733238\",\"dweb:/ipfs/QmPsQnPcCzioPwVtUhxkbnwKPC1bnhHSbAwK9GXVpjN3mH\"]},\"lib/account-abstraction-v7/contracts/core/StakeManager.sol\":{\"keccak256\":\"0x673eb19600058d8642605ca409c9e1d4cab13735564b856270b92c330ffb1b8d\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://06599c57c7075ee8eb5f1710fccca3eb322876b968ec271e1fb34af41510ab2c\",\"dweb:/ipfs/QmVsDEjmZYtzgXa4AYKxbQEYQVh6NBq8GmFJCariBUqK4G\"]},\"lib/account-abstraction-v7/contracts/core/UserOperationLib.sol\":{\"keccak256\":\"0x9d50ece985d35f82e33e5da417595c86fac10449e3d10895d08363d33aad454b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b1d11cc364c8bf7ed5388268c895b5ffed16e87dfbcb320ddeeba5e7974315dc\",\"dweb:/ipfs/QmYSpvjxEjweietQrYZagwQ52ipy7eXx4rwvnTzXKeGeMS\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAccount.sol\":{\"keccak256\":\"0x38710bec0cb20ff4ceef46a80475b5bdabc27b7efd2687fd473db68332f61b78\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dea7a723e1ef852e8764e69914a345d2e8bc5e13facfc9d5c29d791cb4ab0020\",\"dweb:/ipfs/QmU8dYgyF4DBJXFqjwLAtnE3q8q259ChfoEk9a6wyhHzEP\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAccountExecute.sol\":{\"keccak256\":\"0xd3dc32dde1add1fb6377f939ceff6be31c2e21343522311f7b88db666be9ee6c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5b8f065171bd32e23b306868189c730f849ce6147f753c59e396e7afcf384577\",\"dweb:/ipfs/QmZpDRNEZ9YNgGgyLQo5yM4bB1FNbtnfDABsChbgSQKXUh\"]},\"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/IPaymaster.sol\":{\"keccak256\":\"0x49d8dbf8a85b006bcd89bbc40e4e9e113997cc016007de85263bdae70572d07f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://bc0d83804c1b795d5c216b3518cd176c48f90db28550f267cbd89746d6b476c8\",\"dweb:/ipfs/QmNdCm4c6hnt7f6Q8q21QjtCNZWWRUaMVEYnQHEv68VnKt\"]},\"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/openzeppelin-contracts-v5.1.0/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/v07/EntryPoint.sol\":{\"keccak256\":\"0xe67e8ce0af5e518732ca3f3ca14f2f7963547f3a27e6567c2f6b45c70ffb10f9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://77f0af329d36750a40ab832cb78bbaa2e1133048aeb23bd97c0f61426ecd859c\",\"dweb:/ipfs/QmUJiU774ZM9Wfs7BWtYZ2Xktf9baZQ7QhFsgdLPDJfYni\"]},\"src/v07/EntryPointSimulations.sol\":{\"keccak256\":\"0x0debae908adcb49cb5f725b794f152cee9978fd4929120460241a3848b1f5c7f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://bb5a8d1e72fc65478563cd2e863c18235e6dba671338d858a65e43f9a0fdc062\",\"dweb:/ipfs/QmW3LKReUt3wSXFReDeNKtBdP6EKPjQ5vPMfbxw7o8PPrJ\"]},\"src/v07/IEntryPoint.sol\":{\"keccak256\":\"0xca38cd0a2ed294deb3f36c933de236524a597ffc72da21a925458780d0b13b2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://01dc9ca228751a7ba99e72d88c8dd3bfcae6d9bb85180a9ea7efc0550e9237a0\",\"dweb:/ipfs/QmPsEVXWZAZCKWuys3eqShSXCtHZCSc1bYQhHGDHuABYc6\"]},\"src/v07/IEntryPointSimulations.sol\":{\"keccak256\":\"0x49c6650bcbc4d4725aaa3aad66381c1c20b2a5d8b0249dcfa95fc65337d7f0ab\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2aaf93b6816132dd0e098dbbec2c5ae11f561df8b373645f5d266d2106af9b77\",\"dweb:/ipfs/QmPMKdVZpub1sHSSXmSufmwC5ZfaL3v5GpcNU4QY6Hw6cN\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.28+commit.7893614a" }, "language": "Solidity", "output": { "abi": [{ "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [{ "internalType": "bytes", "name": "reason", "type": "bytes" }], "type": "error", "name": "CallPhaseReverted" }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "internalType": "string", "name": "reason", "type": "string" }], "type": "error", "name": "FailedOp" }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "internalType": "string", "name": "reason", "type": "string" }, { "internalType": "bytes", "name": "inner", "type": "bytes" }], "type": "error", "name": "FailedOpWithRevert" }, { "inputs": [{ "internalType": "bytes", "name": "returnData", "type": "bytes" }], "type": "error", "name": "PostOpReverted" }, { "inputs": [], "type": "error", "name": "ReentrancyGuardReentrantCall" }, { "inputs": [{ "internalType": "address", "name": "sender", "type": "address" }], "type": "error", "name": "SenderAddressResult" }, { "inputs": [{ "internalType": "address", "name": "aggregator", "type": "address" }], "type": "error", "name": "SignatureValidationFailed" }, { "inputs": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }], "type": "error", "name": "SimulationOutOfGas" }, { "inputs": [{ "internalType": "uint256", "name": "remainingGas", "type": "uint256" }], "type": "error", "name": "innerCallResult" }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "address", "name": "factory", "type": "address", "indexed": false }, { "internalType": "address", "name": "paymaster", "type": "address", "indexed": false }], "type": "event", "name": "AccountDeployed", "anonymous": false }, { "inputs": [], "type": "event", "name": "BeforeExecution", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "totalDeposit", "type": "uint256", "indexed": false }], "type": "event", "name": "Deposited", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "nonce", "type": "uint256", "indexed": false }, { "internalType": "bytes", "name": "revertReason", "type": "bytes", "indexed": false }], "type": "event", "name": "PostOpRevertReason", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "aggregator", "type": "address", "indexed": true }], "type": "event", "name": "SignatureAggregatorChanged", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "totalStaked", "type": "uint256", "indexed": false }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256", "indexed": false }], "type": "event", "name": "StakeLocked", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "withdrawTime", "type": "uint256", "indexed": false }], "type": "event", "name": "StakeUnlocked", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "address", "name": "withdrawAddress", "type": "address", "indexed": false }, { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false }], "type": "event", "name": "StakeWithdrawn", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "address", "name": "paymaster", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "nonce", "type": "uint256", "indexed": false }, { "internalType": "bool", "name": "success", "type": "bool", "indexed": false }, { "internalType": "uint256", "name": "actualGasCost", "type": "uint256", "indexed": false }, { "internalType": "uint256", "name": "actualGasUsed", "type": "uint256", "indexed": false }], "type": "event", "name": "UserOperationEvent", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "nonce", "type": "uint256", "indexed": false }], "type": "event", "name": "UserOperationPrefundTooLow", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "nonce", "type": "uint256", "indexed": false }, { "internalType": "bytes", "name": "revertReason", "type": "bytes", "indexed": false }], "type": "event", "name": "UserOperationRevertReason", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "address", "name": "withdrawAddress", "type": "address", "indexed": false }, { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false }], "type": "event", "name": "Withdrawn", "anonymous": false }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "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": "struct EntryPoint.UserOpInfo", "name": "outOpInfo", "type": "tuple", "components": [{ "internalType": "struct EntryPoint.MemoryUserOp", "name": "mUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "address", "name": "paymaster", "type": "address" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }] }, { "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "contextOffset", "type": "uint256" }, { "internalType": "uint256", "name": "preOpGas", "type": "uint256" }] }], "stateMutability": "nonpayable", "type": "function", "name": "_paymasterValidation", "outputs": [{ "internalType": "uint256", "name": "validationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }] }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "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": "struct EntryPoint.UserOpInfo", "name": "outOpInfo", "type": "tuple", "components": [{ "internalType": "struct EntryPoint.MemoryUserOp", "name": "mUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "address", "name": "paymaster", "type": "address" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }] }, { "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "contextOffset", "type": "uint256" }, { "internalType": "uint256", "name": "preOpGas", "type": "uint256" }] }, { "internalType": "bool", "name": "validatePaymasterPrepayment", "type": "bool" }], "stateMutability": "nonpayable", "type": "function", "name": "_validatePrepayment", "outputs": [{ "internalType": "uint256", "name": "validationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }] }, { "inputs": [{ "internalType": "uint32", "name": "unstakeDelaySec", "type": "uint32" }], "stateMutability": "payable", "type": "function", "name": "addStake" }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "stateMutability": "view", "type": "function", "name": "balanceOf", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [{ "internalType": "struct SimulationArgs[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "struct PackedUserOperation", "name": "op", "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", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }] }, { "internalType": "struct SimulationArgs", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "struct PackedUserOperation", "name": "op", "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", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }] }, { "internalType": "address", "name": "entryPoint", "type": "address" }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchCallGasLimit", "outputs": [{ "internalType": "struct IEntryPointSimulations.TargetCallResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }] }, { "inputs": [{ "internalType": "struct SimulationArgs[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "struct PackedUserOperation", "name": "op", "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", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }] }, { "internalType": "struct SimulationArgs", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "struct PackedUserOperation", "name": "op", "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", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }] }, { "internalType": "address", "name": "entryPoint", "type": "address" }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchPaymasterVerificationGasLimit", "outputs": [{ "internalType": "struct IEntryPointSimulations.TargetCallResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }] }, { "inputs": [{ "internalType": "struct SimulationArgs[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "struct PackedUserOperation", "name": "op", "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", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }] }, { "internalType": "struct SimulationArgs", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "struct PackedUserOperation", "name": "op", "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", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }] }, { "internalType": "address", "name": "entryPoint", "type": "address" }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchVerificationGasLimit", "outputs": [{ "internalType": "struct IEntryPointSimulations.TargetCallResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }] }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "stateMutability": "payable", "type": "function", "name": "depositTo" }, { "inputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function", "name": "deposits", "outputs": [{ "internalType": "uint256", "name": "deposit", "type": "uint256" }, { "internalType": "bool", "name": "staked", "type": "bool" }, { "internalType": "uint112", "name": "stake", "type": "uint112" }, { "internalType": "uint32", "name": "unstakeDelaySec", "type": "uint32" }, { "internalType": "uint48", "name": "withdrawTime", "type": "uint48" }] }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "stateMutability": "view", "type": "function", "name": "getDepositInfo", "outputs": [{ "internalType": "struct IStakeManager.DepositInfo", "name": "info", "type": "tuple", "components": [{ "internalType": "uint256", "name": "deposit", "type": "uint256" }, { "internalType": "bool", "name": "staked", "type": "bool" }, { "internalType": "uint112", "name": "stake", "type": "uint112" }, { "internalType": "uint32", "name": "unstakeDelaySec", "type": "uint32" }, { "internalType": "uint48", "name": "withdrawTime", "type": "uint48" }] }] }, { "inputs": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint192", "name": "key", "type": "uint192" }], "stateMutability": "view", "type": "function", "name": "getNonce", "outputs": [{ "internalType": "uint256", "name": "nonce", "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" }] }], "stateMutability": "view", "type": "function", "name": "getUserOpHash", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] }, { "inputs": [{ "internalType": "uint192", "name": "key", "type": "uint192" }], "stateMutability": "nonpayable", "type": "function", "name": "incrementNonce" }, { "inputs": [{ "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "struct EntryPoint.UserOpInfo", "name": "opInfo", "type": "tuple", "components": [{ "internalType": "struct EntryPoint.MemoryUserOp", "name": "mUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "address", "name": "paymaster", "type": "address" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }] }, { "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "contextOffset", "type": "uint256" }, { "internalType": "uint256", "name": "preOpGas", "type": "uint256" }] }, { "internalType": "bytes", "name": "context", "type": "bytes" }, { "internalType": "uint256", "name": "preGas", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "innerHandleOp", "outputs": [{ "internalType": "uint256", "name": "actualGasCost", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }] }, { "inputs": [{ "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint192", "name": "", "type": "uint192" }], "stateMutability": "view", "type": "function", "name": "nonceSequenceNumber", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [{ "internalType": "address", "name": "entryPoint", "type": "address" }, { "internalType": "bytes", "name": "payload", "type": "bytes" }, { "internalType": "uint256", "name": "gas", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateCall", "outputs": [{ "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "result", "type": "bytes" }] }, { "inputs": [{ "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "uint256", "name": "gas", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateCallAndRevert" }, { "inputs": [{ "internalType": "struct PackedUserOperation", "name": "op", "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", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "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": "struct PackedUserOperation[]", "name": "ops", "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": "simulateHandleOpBulk", "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": "struct PackedUserOperation[]", "name": "ops", "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": "simulateHandleOpLast", "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": "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" }] }], "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" }] }] }] }] }, { "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" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateValidationBulk", "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" }] }] }] }] }, { "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" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateValidationLast", "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" }] }] }] }] }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "unlockStake" }, { "inputs": [{ "internalType": "address payable", "name": "withdrawAddress", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "withdrawStake" }, { "inputs": [{ "internalType": "address payable", "name": "withdrawAddress", "type": "address" }, { "internalType": "uint256", "name": "withdrawAmount", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "withdrawTo" }, { "inputs": [], "stateMutability": "payable", "type": "receive" }], "devdoc": { "kind": "dev", "methods": { "_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)": { "params": { "opIndex": "- The index of this userOp into the \"opInfos\" array.", "userOp": "- The userOp to validate." } }, "addStake(uint32)": { "params": { "unstakeDelaySec": "The new lock duration before the deposit can be withdrawn." } }, "balanceOf(address)": { "params": { "account": "- The account to query." }, "returns": { "_0": "- The deposit (for gas payment) of the account." } }, "depositTo(address)": { "params": { "account": "- The account to add to." } }, "getDepositInfo(address)": { "params": { "account": "- The account to query." }, "returns": { "info": " - Full deposit information of given account." } }, "getNonce(address,uint192)": { "params": { "key": "the high 192 bit of the nonce", "sender": "the account address" }, "returns": { "nonce": "a full nonce to pass for next UserOp with this sender." } }, "getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "params": { "userOp": "- The user operation to generate the request ID for." }, "returns": { "_0": "hash the hash of this UserOperation" } }, "innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)": { "params": { "callData": "- The callData to execute.", "context": "- The context bytes.", "opInfo": "- The UserOpInfo struct." }, "returns": { "actualGasCost": "- the actual cost in eth this UserOperation paid for gas" } }, "simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)": { "params": { "op": "The UserOperation to simulate." }, "returns": { "_0": "the execution result structure" } }, "simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "details": "The node must also verify it doesn't use banned opcodes, and that it doesn't reference storage outside the account's data.", "params": { "userOp": "- The user operation to validate." }, "returns": { "_0": "the validation result structure" } }, "withdrawStake(address)": { "params": { "withdrawAddress": "- The address to send withdrawn value." } }, "withdrawTo(address,uint256)": { "params": { "withdrawAddress": "- The address to send withdrawn value.", "withdrawAmount": "- The amount to withdraw." } } }, "version": 1 }, "userdoc": { "kind": "user", "methods": { "_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)": { "notice": "Validate account and paymaster (if defined) and also make sure total validation doesn't exceed verificationGasLimit. This method is called off-chain (simulateValidation()) and on-chain (from handleOps)" }, "addStake(uint32)": { "notice": "Add to the account's stake - amount and delay any pending unstake is first cancelled." }, "balanceOf(address)": { "notice": "Get account balance." }, "constructor": { "notice": "simulation contract should not be deployed, and specifically, accounts should not trust it as entrypoint, since the simulation functions don't check the signatures" }, "depositTo(address)": { "notice": "Add to the deposit of the given account." }, "deposits(address)": { "notice": "maps paymaster to their deposits and stakes" }, "getDepositInfo(address)": { "notice": "Get deposit info." }, "getNonce(address,uint192)": { "notice": "Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order." }, "getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "notice": "Generate a request Id - unique identifier for this request. The request ID is a hash over the content of the userOp (except the signature), the entrypoint and the chainid." }, "incrementNonce(uint192)": { "notice": "Manually increment the nonce of the sender. This method is exposed just for completeness.. Account does NOT need to call it, neither during validation, nor elsewhere, as the EntryPoint will update the nonce regardless. Possible use-case is call it with various keys to \"initialize\" their nonces to one, so that future UserOperations will not pay extra for the first transaction with a given key." }, "innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)": { "notice": "Inner function to handle a UserOperation. Must be declared \"external\" to open a call context, but it can only be called by handleOps." }, "nonceSequenceNumber(address,uint192)": { "notice": "The next valid sequence number for a given nonce key." }, "simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)": { "notice": "Simulate full execution of a UserOperation (including both validation and target execution) It performs full validation of the UserOperation, but ignores signature error. An optional target address is called after the userop succeeds, and its value is returned (before the entire call is reverted). Note that in order to collect the the success/failure of the target call, it must be executed with trace enabled to track the emitted events." }, "simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "notice": "Simulate a call to account.validateUserOp and paymaster.validatePaymasterUserOp." }, "unlockStake()": { "notice": "Attempt to unlock the stake. The value can be withdrawn (using withdrawStake) after the unstake delay." }, "withdrawStake(address)": { "notice": "Withdraw from the (unlocked) stake. Must first call unlockStake and wait for the unstakeDelay to pass." }, "withdrawTo(address,uint256)": { "notice": "Withdraw from the deposit." } }, "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.1.0/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/v07/EntryPointSimulations.sol": "EntryPointSimulations07" }, "evmVersion": "paris", "libraries": {}, "viaIR": true }, "sources": { "lib/account-abstraction-v7/contracts/core/Helpers.sol": { "keccak256": "0x6247e011a6cb0b263b3aa098822977181674d91b62e5bdfe04c6e66f72da25d6", "urls": ["bzz-raw://ca829a69b3fbc74fec8e140d42a2bf93bc3512609272f031c846470f61f0ab7e", "dweb:/ipfs/QmP3r3MBgAN39KeVB1rCGJWwcBcotNt26ALtAR54poQ1Jc"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/core/NonceManager.sol": { "keccak256": "0x1f951786ce6f171e7ed0242fee73ee4a205c7523404ee6cffca48b8c64ea5fe9", "urls": ["bzz-raw://a602bf2274d478dae7a532cca31f8179131808c324cc26ece5c7e87c5a1015a6", "dweb:/ipfs/QmaaSyw5GGbAWzUhAPCtsb38P3MmaVr1ngp61PYHCU2a5a"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/core/SenderCreator.sol": { "keccak256": "0xeb95afb6e4cf921c1ed105ecb9f549ca46bee57f68acd1d2f4f84607ac0db5c5", "urls": ["bzz-raw://d2ac91562f1fcabe4809a1b4256895efebcf46f89e08336a6c09ee2d29733238", "dweb:/ipfs/QmPsQnPcCzioPwVtUhxkbnwKPC1bnhHSbAwK9GXVpjN3mH"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/core/StakeManager.sol": { "keccak256": "0x673eb19600058d8642605ca409c9e1d4cab13735564b856270b92c330ffb1b8d", "urls": ["bzz-raw://06599c57c7075ee8eb5f1710fccca3eb322876b968ec271e1fb34af41510ab2c", "dweb:/ipfs/QmVsDEjmZYtzgXa4AYKxbQEYQVh6NBq8GmFJCariBUqK4G"], "license": "GPL-3.0-only" }, "lib/account-abstraction-v7/contracts/core/UserOperationLib.sol": { "keccak256": "0x9d50ece985d35f82e33e5da417595c86fac10449e3d10895d08363d33aad454b", "urls": ["bzz-raw://b1d11cc364c8bf7ed5388268c895b5ffed16e87dfbcb320ddeeba5e7974315dc", "dweb:/ipfs/QmYSpvjxEjweietQrYZagwQ52ipy7eXx4rwvnTzXKeGeMS"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/IAccount.sol": { "keccak256": "0x38710bec0cb20ff4ceef46a80475b5bdabc27b7efd2687fd473db68332f61b78", "urls": ["bzz-raw://dea7a723e1ef852e8764e69914a345d2e8bc5e13facfc9d5c29d791cb4ab0020", "dweb:/ipfs/QmU8dYgyF4DBJXFqjwLAtnE3q8q259ChfoEk9a6wyhHzEP"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/IAccountExecute.sol": { "keccak256": "0xd3dc32dde1add1fb6377f939ceff6be31c2e21343522311f7b88db666be9ee6c", "urls": ["bzz-raw://5b8f065171bd32e23b306868189c730f849ce6147f753c59e396e7afcf384577", "dweb:/ipfs/QmZpDRNEZ9YNgGgyLQo5yM4bB1FNbtnfDABsChbgSQKXUh"], "license": "GPL-3.0" }, "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/IPaymaster.sol": { "keccak256": "0x49d8dbf8a85b006bcd89bbc40e4e9e113997cc016007de85263bdae70572d07f", "urls": ["bzz-raw://bc0d83804c1b795d5c216b3518cd176c48f90db28550f267cbd89746d6b476c8", "dweb:/ipfs/QmNdCm4c6hnt7f6Q8q21QjtCNZWWRUaMVEYnQHEv68VnKt"], "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/openzeppelin-contracts-v5.1.0/contracts/utils/ReentrancyGuard.sol": { "keccak256": "0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3", "urls": ["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a", "dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/introspection/ERC165.sol": { "keccak256": "0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa", "urls": ["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287", "dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/introspection/IERC165.sol": { "keccak256": "0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8", "urls": ["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621", "dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"], "license": "MIT" }, "src/v07/EntryPoint.sol": { "keccak256": "0xe67e8ce0af5e518732ca3f3ca14f2f7963547f3a27e6567c2f6b45c70ffb10f9", "urls": ["bzz-raw://77f0af329d36750a40ab832cb78bbaa2e1133048aeb23bd97c0f61426ecd859c", "dweb:/ipfs/QmUJiU774ZM9Wfs7BWtYZ2Xktf9baZQ7QhFsgdLPDJfYni"], "license": "GPL-3.0" }, "src/v07/EntryPointSimulations.sol": { "keccak256": "0x0debae908adcb49cb5f725b794f152cee9978fd4929120460241a3848b1f5c7f", "urls": ["bzz-raw://bb5a8d1e72fc65478563cd2e863c18235e6dba671338d858a65e43f9a0fdc062", "dweb:/ipfs/QmW3LKReUt3wSXFReDeNKtBdP6EKPjQ5vPMfbxw7o8PPrJ"], "license": "GPL-3.0" }, "src/v07/IEntryPoint.sol": { "keccak256": "0xca38cd0a2ed294deb3f36c933de236524a597ffc72da21a925458780d0b13b2d", "urls": ["bzz-raw://01dc9ca228751a7ba99e72d88c8dd3bfcae6d9bb85180a9ea7efc0550e9237a0", "dweb:/ipfs/QmPsEVXWZAZCKWuys3eqShSXCtHZCSc1bYQhHGDHuABYc6"], "license": "GPL-3.0" }, "src/v07/IEntryPointSimulations.sol": { "keccak256": "0x49c6650bcbc4d4725aaa3aad66381c1c20b2a5d8b0249dcfa95fc65337d7f0ab", "urls": ["bzz-raw://2aaf93b6816132dd0e098dbbec2c5ae11f561df8b373645f5d266d2106af9b77", "dweb:/ipfs/QmPMKdVZpub1sHSSXmSufmwC5ZfaL3v5GpcNU4QY6Hw6cN"], "license": "GPL-3.0" } }, "version": 1 }, "id": 18 }
|
|
1
|
+
{ "abi": [{ "type": "constructor", "inputs": [], "stateMutability": "nonpayable" }, { "type": "receive", "stateMutability": "payable" }, { "type": "function", "name": "_paymasterValidation", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "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": "outOpInfo", "type": "tuple", "internalType": "struct EntryPoint.UserOpInfo", "components": [{ "name": "mUserOp", "type": "tuple", "internalType": "struct EntryPoint.MemoryUserOp", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymaster", "type": "address", "internalType": "address" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "contextOffset", "type": "uint256", "internalType": "uint256" }, { "name": "preOpGas", "type": "uint256", "internalType": "uint256" }] }], "outputs": [{ "name": "validationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "_validatePrepayment", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "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": "outOpInfo", "type": "tuple", "internalType": "struct EntryPoint.UserOpInfo", "components": [{ "name": "mUserOp", "type": "tuple", "internalType": "struct EntryPoint.MemoryUserOp", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymaster", "type": "address", "internalType": "address" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "contextOffset", "type": "uint256", "internalType": "uint256" }, { "name": "preOpGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "validatePaymasterPrepayment", "type": "bool", "internalType": "bool" }], "outputs": [{ "name": "validationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "addStake", "inputs": [{ "name": "unstakeDelaySec", "type": "uint32", "internalType": "uint32" }], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "balanceOf", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "binarySearchCallGas", "inputs": [{ "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": "entryPoint", "type": "address", "internalType": "address" }, { "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": "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": "entryPoint", "type": "address", "internalType": "address" }, { "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": "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": "entryPoint", "type": "address", "internalType": "address" }, { "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": "delegateAndRevert", "inputs": [{ "name": "", "type": "address", "internalType": "address" }, { "name": "", "type": "bytes", "internalType": "bytes" }], "outputs": [], "stateMutability": "pure" }, { "type": "function", "name": "depositTo", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "deposits", "inputs": [{ "name": "", "type": "address", "internalType": "address" }], "outputs": [{ "name": "deposit", "type": "uint256", "internalType": "uint256" }, { "name": "staked", "type": "bool", "internalType": "bool" }, { "name": "stake", "type": "uint112", "internalType": "uint112" }, { "name": "unstakeDelaySec", "type": "uint32", "internalType": "uint32" }, { "name": "withdrawTime", "type": "uint48", "internalType": "uint48" }], "stateMutability": "view" }, { "type": "function", "name": "getDepositInfo", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [{ "name": "info", "type": "tuple", "internalType": "struct IStakeManager.DepositInfo", "components": [{ "name": "deposit", "type": "uint256", "internalType": "uint256" }, { "name": "staked", "type": "bool", "internalType": "bool" }, { "name": "stake", "type": "uint112", "internalType": "uint112" }, { "name": "unstakeDelaySec", "type": "uint32", "internalType": "uint32" }, { "name": "withdrawTime", "type": "uint48", "internalType": "uint48" }] }], "stateMutability": "view" }, { "type": "function", "name": "getNonce", "inputs": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "key", "type": "uint192", "internalType": "uint192" }], "outputs": [{ "name": "nonce", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "getSenderAddress", "inputs": [{ "name": "initCode", "type": "bytes", "internalType": "bytes" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "getUserOpHash", "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" }] }], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "handleAggregatedOps", "inputs": [{ "name": "", "type": "tuple[]", "internalType": "struct IEntryPoint.UserOpsPerAggregator[]", "components": [{ "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": "aggregator", "type": "address", "internalType": "contract IAggregator" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "", "type": "address", "internalType": "address payable" }], "outputs": [], "stateMutability": "pure" }, { "type": "function", "name": "handleOps", "inputs": [{ "name": "", "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": "", "type": "address", "internalType": "address payable" }], "outputs": [], "stateMutability": "pure" }, { "type": "function", "name": "incrementNonce", "inputs": [{ "name": "key", "type": "uint192", "internalType": "uint192" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "innerHandleOp", "inputs": [{ "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "opInfo", "type": "tuple", "internalType": "struct EntryPoint.UserOpInfo", "components": [{ "name": "mUserOp", "type": "tuple", "internalType": "struct EntryPoint.MemoryUserOp", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymaster", "type": "address", "internalType": "address" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "contextOffset", "type": "uint256", "internalType": "uint256" }, { "name": "preOpGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "context", "type": "bytes", "internalType": "bytes" }, { "name": "preGas", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "actualGasCost", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "nonceSequenceNumber", "inputs": [{ "name": "", "type": "address", "internalType": "address" }, { "name": "", "type": "uint192", "internalType": "uint192" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "simulateCall", "inputs": [{ "name": "entryPoint", "type": "address", "internalType": "address" }, { "name": "payload", "type": "bytes", "internalType": "bytes" }, { "name": "gas", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "success", "type": "bool", "internalType": "bool" }, { "name": "result", "type": "bytes", "internalType": "bytes" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateCallAndRevert", "inputs": [{ "name": "target", "type": "address", "internalType": "address" }, { "name": "data", "type": "bytes", "internalType": "bytes" }, { "name": "gas", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateHandleOp", "inputs": [{ "name": "op", "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": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "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": "simulateHandleOp", "inputs": [{ "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": "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": "function", "name": "simulateValidation", "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" }] }], "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": "function", "name": "unlockStake", "inputs": [], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "withdrawStake", "inputs": [{ "name": "withdrawAddress", "type": "address", "internalType": "address payable" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "withdrawTo", "inputs": [{ "name": "withdrawAddress", "type": "address", "internalType": "address payable" }, { "name": "withdrawAmount", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "event", "name": "AccountDeployed", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "factory", "type": "address", "indexed": false, "internalType": "address" }, { "name": "paymaster", "type": "address", "indexed": false, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "BeforeExecution", "inputs": [], "anonymous": false }, { "type": "event", "name": "Deposited", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "totalDeposit", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "PostOpRevertReason", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "revertReason", "type": "bytes", "indexed": false, "internalType": "bytes" }], "anonymous": false }, { "type": "event", "name": "SignatureAggregatorChanged", "inputs": [{ "name": "aggregator", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "StakeLocked", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "totalStaked", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "StakeUnlocked", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "withdrawTime", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "StakeWithdrawn", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "withdrawAddress", "type": "address", "indexed": false, "internalType": "address" }, { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "UserOperationEvent", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "paymaster", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "success", "type": "bool", "indexed": false, "internalType": "bool" }, { "name": "actualGasCost", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "actualGasUsed", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "UserOperationPrefundTooLow", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "UserOperationRevertReason", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "revertReason", "type": "bytes", "indexed": false, "internalType": "bytes" }], "anonymous": false }, { "type": "event", "name": "Withdrawn", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "withdrawAddress", "type": "address", "indexed": false, "internalType": "address" }, { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "error", "name": "CallPhaseReverted", "inputs": [{ "name": "reason", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "DelegateAndRevert", "inputs": [{ "name": "success", "type": "bool", "internalType": "bool" }, { "name": "ret", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "FailedOp", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "reason", "type": "string", "internalType": "string" }] }, { "type": "error", "name": "FailedOpWithRevert", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "reason", "type": "string", "internalType": "string" }, { "name": "inner", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "PostOpReverted", "inputs": [{ "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "ReentrancyGuardReentrantCall", "inputs": [] }, { "type": "error", "name": "SenderAddressResult", "inputs": [{ "name": "sender", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "SignatureValidationFailed", "inputs": [{ "name": "aggregator", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "innerCallResult", "inputs": [{ "name": "remainingGas", "type": "uint256", "internalType": "uint256" }] }], "bytecode": { "object": "0x60c080604052346101075760016002556101948181016001600160401b038111838210176100f1578291614df0833903906000f080156100e5576080523060a05261004861010c565b6000815260208101906000825280602061006061010c565b600081520152600380546001600160a01b03191690555160045551600555604051614cc4908161012c823960805181818161123c0152614a62015260a051818181612d200152818161305a015281816130b5015281816132bf0152818161337a015281816133d4015281816134e5015281816135a0015281816135fa015261370b0152f35b6040513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fd5b60408051919082016001600160401b038111838210176100f15760405256fe60806040526004361015610023575b361561001957600080fd5b610021612e1c565b005b60003560e01c80630396cb60146101de5780630bd28e3b146101d95780630da82661146101d45780631b2e01b8146101cf578063205c2878146101ca578063212eccc6146101c557806321e60b37146101c057806322cdde4c146101bb57806335567e1a146101b657806344403473146101b15780635287ce12146101ac57806370a08231146101a7578063765e827f14610166578063850aaf62146101a257806397b2dcb91461019d5780639b249f6914610198578063acbe911e14610193578063aec321fb1461018e578063af32494314610189578063b760faf914610184578063bb9fe6bf1461017f578063c23a5cea1461017a578063c3bce00914610175578063c579f76b14610170578063d72f25931461016b578063dbed18e014610166578063f7e426e8146101615763fc7e286d0361000e57611a57565b611a1e565b610e95565b6119fe565b61176e565b611750565b611629565b611502565b6114d7565b611464565b61140c565b6112d8565b6111dc565b610fee565b610efa565b610e1e565b610d0d565b610cc7565b610be7565b610bc7565b610aca565b610a7f565b61081e565b6107bd565b61069a565b6103ef565b60203660031901126103d45760043563ffffffff8116908181036103d4576103cf7fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01916103b161029f61028f610247336001600160a01b03166000526000602052604060002090565b96610253811515611ae5565b6102806001890154916102796102708463ffffffff9060781c1690565b63ffffffff1690565b1115611b30565b60081c6001600160701b031690565b6001600160701b03349116611bb3565b946102ab861515611bc0565b6102be6001600160701b03871115611c0b565b546102c76104f9565b908152600160208201526001600160701b038616604082015263ffffffff8316606082015260006080820152610310336001600160a01b03166000526000602052604060002090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b600080fd5b602435906001600160c01b03821682036103d457565b346103d45760203660031901126103d4576004356001600160c01b03811681036103d45761043d903360005260016020526040600020906001600160c01b0316600052602052604060002090565b6104478154611c56565b9055005b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761047d57604052565b61044b565b6060810190811067ffffffffffffffff82111761047d57604052565b610140810190811067ffffffffffffffff82111761047d57604052565b6040810190811067ffffffffffffffff82111761047d57604052565b90601f8019910116810190811067ffffffffffffffff82111761047d57604052565b6040519061050860a0836104d7565b565b60405190610508610140836104d7565b60405190610508610100836104d7565b604051906105086040836104d7565b604051906105086060836104d7565b60405190610508610120836104d7565b67ffffffffffffffff811161047d57601f01601f191660200190565b92919261058082610558565b9161058e60405193846104d7565b8294818452818301116103d4578281602093846000960137010152565b9080601f830112156103d4578160206105c693359101610574565b90565b6001600160a01b038116036103d457565b3590610508826105c9565b60431901906101c082126103d4576040516105ff81610461565b6101408193126103d45761061161050a565b61061b60446105da565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c08201526106596101246105da565b60e0820152610144356101008201526101643561012082015281526101843560208201526101a43560408201526101c435606082015260806101e435910152565b346103d4576102203660031901126103d45760043567ffffffffffffffff81116103d4576106cc9036906004016105ab565b3660231901906101c082126103d457610140604051926106eb84610461565b126103d4576106f861050a565b61070260246105da565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c082015261073f6101046105da565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359067ffffffffffffffff82116103d4576040926107a66107b19336906004016105ab565b906102043592611c65565b82519182526020820152f35b346103d45760403660031901126103d45760206108156004356107df816105c9565b6001600160a01b036107ef6103d9565b9116600052600183526040600020906001600160c01b0316600052602052604060002090565b54604051908152f35b346103d45760403660031901126103d45760043561083b816105c9565b6024353360005260006020526040600020918254908183116108c35760008080856001600160a01b03829589610874846100219a611ed8565b9055604080516001600160a01b03831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af16108bd611efa565b50611f2a565b606460405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b9181601f840112156103d45782359167ffffffffffffffff83116103d4576020808501948460051b0101116103d457565b90816101209103126103d45790565b60c06003198201126103d45760043567ffffffffffffffff81116103d4578161097291600401610907565b929092916024359067ffffffffffffffff82116103d45761099591600401610938565b906044356109a2816105c9565b90606435906084359060a43590565b634e487b7160e01b600052602160045260246000fd5b60005b8381106109da5750506000910152565b81810151838201526020016109ca565b90602091610a03815180928185528580860191016109c7565b601f01601f1916010190565b6020815281516002811015610a7a57602082015260a0604080610a5e8160208701518582880152805160c08801526020810151151560e0880152015160606101008701526101208601906109ea565b9401518051606085015260208101516080850152015191015290565b6109b1565b346103d457610ac6610aba610aac610a9636610947565b9691949095610aa6949394611f94565b50612edb565b610ab581612f6a565b612ffd565b60405191829182610a0f565b0390f35b346103d4576102003660031901126103d45760243560043567ffffffffffffffff82116103d457610b02610ac6923690600401610938565b90610b0c366105e5565b600092815192610b1c84836137d2565b610b2582611fd8565b60208401526001600160a01b0360e0610b5f86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b95015116610b87575b6040805160008082526020820188905291810191909152806060810188565b610b919450613a4f565b905038808080610b68565b60206003198201126103d4576004359067ffffffffffffffff82116103d4576105c691600401610938565b346103d4576020610bdf610bda36610b9c565b611fd8565b604051908152f35b346103d45760403660031901126103d4576020600435610c06816105c9565b6001600160a01b03610c166103d9565b911660005260018252610c40816040600020906001600160c01b0316600052602052604060002090565b546040805192901b67ffffffffffffffff1916178152f35b9181601f840112156103d45782359167ffffffffffffffff83116103d457602083818601950101116103d457565b9060606003198301126103d457600435610c9f816105c9565b916024359067ffffffffffffffff82116103d457610cbf91600401610c58565b909160443590565b346103d45760008080610cd936610c86565b939181604094929451948592833781018381520393f1610cf7611efa565b9015610cff57005b80519081156103d457602001fd5b346103d45760203660031901126103d4576001600160a01b03600435610d32816105c9565b60006080604051610d4281610461565b8281528260208201528260408201528260608201520152166000526000602052610ac66040600020610dca65ffffffffffff600160405193610d8385610461565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b346103d45760203660031901126103d4576001600160a01b03600435610e43816105c9565b1660005260006020526020604060002054604051908152f35b60406003198201126103d4576004359067ffffffffffffffff82116103d457610e8791600401610907565b90916024356105c6816105c9565b346103d457610ea336610e5c565b505050608460405162461bcd60e51b815260206004820152602760248201527f53484f554c44204e4f542042452043414c4c454420445552494e472053494d556044820152664c4154494f4e5360c81b6064820152fd5b346103d45760403660031901126103d457610f166004356105c9565b60243567ffffffffffffffff81116103d457610f36903690600401610c58565b5050608460405162461bcd60e51b815260206004820152602760248201527f53484f554c44204e4f542042452043414c4c454420445552494e472053494d556044820152664c4154494f4e5360c81b6064820152fd5b61012060e06105c6936020845280516020850152602081015160408501526040810151606085015260608101516080850152608081015160a085015260a081015160c085015260c08101511515828501520151916101008082015201906109ea565b346103d45760603660031901126103d45760043567ffffffffffffffff81116103d45761101f903690600401610938565b60243561102b816105c9565b60443567ffffffffffffffff81116103d45761104b9036906004016105ab565b916110546120bb565b5060009160028054146111cd57610ac69360028055611071612237565b61107a84612f6a565b6110848185612955565b91955a60608501518561109a60608501856122fa565b94908c600387116111c5575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b036111ad57506111169450611111602083015191611103604051938492638dd7712f60e01b602085015260248401613c26565b03601f1981018352826104d7565b611c65565b9390975b80956060976001600160a01b038116611184575b505050956080611169969701519761114461051a565b988952602089015260408801526060870152608086015260a0850152151560c0840152565b60e08201526111786001600255565b60405191829182610f8c565b61116998508280949850602083519301915af19560806111a2611efa565b97959197963861112e565b61111191506111bd953691610574565b93909761111a565b5080356110a6565b600483633ee5aeb560e01b8152fd5b346103d45760203660031901126103d45760043567ffffffffffffffff81116103d457602061121261122e923690600401610c58565b906040519384928392632b870d1b60e11b8452600484016122dd565b038160006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af180156112d3576001600160a01b03916000916112a4575b507f6ca7b806000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b6112c6915060203d6020116112cc575b6112be81836104d7565b8101906122a7565b38611275565b503d6112b4565b6122ee565b346103d457610ac6610aba6112ec36610947565b9594909493919361237b565b60406003198201126103d45760043567ffffffffffffffff81116103d4578161132391600401610907565b929092916024359067ffffffffffffffff82116103d4576105c691600401610938565b6105c69060208152610100608061139f81865161014060208701528051610160870152602081015161018087015260408101516101a087015260608101516101c0870152015160a06101e08601526102008501906109ea565b6020808701518051604087015201516060850152946113cf60408201518386019060208091805184520151910152565b6060810151805160c08601526020015160e0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b346103d45761141a366112f8565b919061142461244f565b5060005b81811061144757610ac661143b8561278f565b60405191829182611346565b8061145d61145860019385876124ec565b61278f565b5001611428565b346103d457611472366112f8565b919061147c6120bb565b5060209060005b8181106114b157610ac661117886604051906114a06020836104d7565b600082526114ac6120bb565b612110565b806114d06114c260019385886124ec565b604051906114a087836104d7565b5001611483565b60203660031901126103d4576100216004356114f2816105c9565b612514565b60009103126103d457565b346103d45760003660031901126103d4573360005260006020526001604060002001805463ffffffff8160781c16156115e55761156e6115606102708361155461154f6115a89660ff1690565b612555565b60781c63ffffffff1690565b65ffffffffffff42166125a0565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a9080602081016103cf565b606460405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b346103d45760203660031901126103d457610021600080808060043561164e816105c9565b6001600160a01b036001611675336001600160a01b03166000526000602052604060002090565b01916117038354936116db65ffffffffffff6116c76116ad6116a1896001600160701b039060081c1690565b6001600160701b031690565b976116b98915156125be565b60981c65ffffffffffff1690565b166116d3811515612609565b421015612654565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03831681526020810185905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2165af161174a611efa565b5061269f565b346103d457610ac661143b61145836610b9c565b801515036103d457565b346103d4576102203660031901126103d45760043560243567ffffffffffffffff81116103d4576117a3903690600401610938565b906117ad366105e5565b61020435906117bb82611764565b6000935a8251936117cc85846137d2565b6117d583611fd8565b60208501526040850151956118216effffffffffffffffffffffffffffff8860c08901511760608901511760808901511760a089015117610100890151176101208901511711156128f4565b61184c86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b9061185a8883888885613f86565b9761188161187d6118728a516001600160a01b031690565b60208b015190614105565b1590565b6119a9575a850311611957576060926001600160a01b036118ad60e05a9a01516001600160a01b031690565b161515908161194f575b50611918575b509360806118f49460a06118ef95610ac699956118fb99604087015260608601525a9003910135019101525a90611ed8565b61293f565b6064900490565b604051938493846040919493926060820195825260208201520152565b819850610ac69692508460a06118ef9561193d89956118fb9a6118f49a608097613a4f565b9c90969a5094985095505094506118bd565b9050386118b7565b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d69740000606482015280608481015b0390fd5b6119a582604051918291631101335b60e11b835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b346103d457610ac6610aba611a1236610947565b95949094939193612b65565b346103d457611a38611a2f36610c86565b92919091612cc9565b90610ac6604051928392151583526040602084015260408301906109ea565b346103d45760203660031901126103d4576001600160a01b03600435611a7c816105c9565b16600052600060205265ffffffffffff604060002060018154910154908260405193849360a0850193855260ff8116151560208601526001600160701b03808260081c1616604086015263ffffffff808260781c1616606086015260981c161660808301520390f35b15611aec57565b606460405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b15611b3757565b606460405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b634e487b7160e01b600052601160045260246000fd5b906113888201809211611ba057565b611b7b565b9060018201809211611ba057565b91908201809211611ba057565b15611bc757565b606460405162461bcd60e51b815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611c1257565b606460405162461bcd60e51b815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b6000198114611ba05760010190565b93929093845190606082015181519081611e50575b505050505a900360808401510192600093845a835194611c9986614157565b92611cae60e08801516001600160a01b031690565b6001600160a01b038116919082611d7e5750505050611cd485516001600160a01b031690565b925b5a8203019460a06060820151910151019160808501928351870390818111611d69575b505085029460408501938451878110600014611d3e57505050611d3a939450611d226000612e53565b5a9003905101905183611d358295614250565b614181565b9190565b611d3a969295508780955060019450611d5992910390613c3d565b50611d646000612e53565b6141e9565b9196916064919003600a020401943880611cf9565b95928051611d8f575b505050611cd6565b9091929950611d9d82612e53565b5a9260a089015190803b15611e4c579183929187848196948f611df2604051998a97889687947f7c627b2100000000000000000000000000000000000000000000000000000000865202908660048601612e5d565b0393f19182611e32575b5050611e26576119a5611e0d612e25565b6040519182916365c8fd4d60e01b835260048301612e8f565b5a900396388080611d87565b611e3f611e4592826104d7565b806114f7565b3880611dfc565b8380fd5b600080949360206001600160a01b0383965116910192f115611e755738808080611c7a565b6119a5611e80612e25565b6040519182917f462c71b20000000000000000000000000000000000000000000000000000000083526020600484015260248301906109ea565b600319810191908211611ba057565b600019810191908211611ba057565b91908203918211611ba057565b60405190611ef46020836104d7565b60008252565b3d15611f25573d90611f0b82610558565b91611f1960405193846104d7565b82523d6000602084013e565b606090565b15611f3157565b606460405162461bcd60e51b815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b60405190611f8282610482565b60006040838281528260208201520152565b60405190611fa182610482565b8160008152604051611fb281610482565b60008152600060208201526060604082015260208201526040611fd3611f75565b910152565b602081013561208c611fed60408401846122fa565b9081604051918237209161110361200760608601866122fa565b90816040519182372060c086013560a0870135608088013561203561202f60e08b018b6122fa565b90614c83565b936040519889976001600160a01b0360208a019c35168c94919260e096939998979491996001600160a01b0361010088019b168752602087015260408601526060850152608084015260a083015260c08201520152565b519020604080516020810192835230918101919091524660608201526120b58160808101611103565b51902090565b60405190610100820182811067ffffffffffffffff82111761047d57604052606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b50905060028054146122265760028055608061212a612237565b9161213481612f6a565b61213e8382612955565b926000929192905a908760608101519161215b60608201826122fa565b956003871161221e575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361220657506121c29450611111602083015191611103604051938492638dd7712f60e01b602085015260248401613c26565b9490955b0151946121d161051a565b958652602086015260408501526060840152608083015260a0820152600060c0820152606060e0820152906105086001600255565b6111119150612216953691610574565b9490956121c6565b508035612165565b633ee5aeb560e01b60005260046000fd5b6040519061224482610461565b60006080836040516122558161049e565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b908160209103126103d457516105c6816105c9565b908060209392818452848401376000828201840152601f01601f1916010190565b9160206105c69381815201916122bc565b6040513d6000823e3d90fd5b903590601e19813603018212156103d4570180359067ffffffffffffffff82116103d4576020019181360383136103d457565b6040519061233c6020836104d7565b6000808352366020840137565b9061235382610558565b61236060405191826104d7565b8281528092612371601f1991610558565b0190602036910137565b9594939291909561238a611f94565b5061239860608301836122fa565b9050156123ce576105c6966123ac91612edb565b6123c66123b7612237565b6123c083612f6a565b82612955565b50505061333b565b505050505050506123dd61232d565b604051906123ea82610482565b6000825260006020830152604082015260405161240681610482565b6000815260006020820152600060408201526040519161242583610482565b600083526020830152604082015290565b60405190612443826104bb565b60006020838281520152565b6040519061245c82610461565b8160405161246981610461565b60008152600060208201526000604082015260006060820152606060808201528152612493612436565b60208201526124a0612436565b60408201526124ad612436565b60608201526080604051916124c1836104bb565b600083526124cd612436565b60208401520152565b634e487b7160e01b600052603260045260246000fd5b919081101561250f5760051b8101359061011e19813603018212156103d4570190565b6124d6565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b036125493485613c3d565b936040519485521692a2565b1561255c57565b606460405162461bcd60e51b815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b9065ffffffffffff8091169116019065ffffffffffff8211611ba057565b156125c557565b606460405162461bcd60e51b815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b1561261057565b606460405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b1561265b57565b606460405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b156126a657565b606460405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b906014116103d45790601490565b90929192836034116103d45783116103d457603401916033190190565b356bffffffffffffffffffffffff19811692919060148210612735575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b60405190612762826104bb565b6003546001600160a01b0316825260405160208361277f836104bb565b6004548352600554828401520152565b61279761244f565b506127a0612237565b906127aa81612f6a565b6127b48282612955565b509190926127c28385613c65565b6127df6127da60e0835101516001600160a01b031690565b613d8d565b9161280d6127f96127da84516001600160a01b0390511690565b91612802612436565b5060408101906122fa565b90601482106128e85761282f612829612835936127da936126ea565b90612715565b60601c90565b916001600160a01b03861694608082015196606060408401519301519261285a6104f9565b9889526020890152604088015260608701526080860152612879612755565b93801515806128dd575b6128ab575b506128916104f9565b948552602085015260408401526060830152608082015290565b9093506128b781613d8d565b6128d16128c261052a565b6001600160a01b039093168352565b60208201529238612888565b506001811415612883565b50506128356000613d8d565b156128fb57565b606460405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152fd5b90607382029180830460731490151715611ba057565b90916000915a9380519161296983826137d2565b61297281611fd8565b60208301526040830151956129be6effffffffffffffffffffffffffffff8860c08701511760608701511760808701511760a087015117610100870151176101208701511711156128f4565b6129e984610100604082015160608301510160808301510160a08301510160c0830151019101510290565b6129f7888286866000613f86565b97612a1a61187d612a0f88516001600160a01b031690565b602089015190614105565b612b11575a830311612abd576060906001600160a01b03612a4660e05a9801516001600160a01b031690565b16151580612ab5575b612a82575b6118ef9360a06105c69794879460809460406118f49a015260608601525a9003910135019101525a90611ed8565b965050928260808360a06105c697612aa38b6118f4996118ef996000613a4f565b9b909598509350949750509350612a54565b506001612a4f565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b95949392919095612b74611f94565b506014612b8460e08401846122fa565b905010612bbf576105c696612bb191610aa6612b9e612237565b612ba98151876137d2565b5a9086613e2a565b612bba81612f6a565b613561565b50505050505050612bce61232d565b60405190612bdb82610482565b60008252600060208301526040820152612bf3610539565b600081526000602082015260006040820152612c0d610539565b91600083526020830152604082015290565b6040906001600160a01b036105c6959316815281602082015201916122bc565b90815181101561250f570160200190565b81601f820112156103d4578051612c6681610558565b92612c7460405194856104d7565b818452602082840101116103d4576105c691602080850191016109c7565b9190916040818403126103d4578051612caa81611764565b92602082015167ffffffffffffffff81116103d4576105c69201612c50565b91926000936001600160a01b036060941691823b156103d457612d4993600080946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501612c1f565b0393f19081612e07575b50612df4575050612d62611efa565b906004825110612df857612d7e612d798351611eba565b612349565b60045b8351811015612dde5780612dc0612d9a60019387612c3f565b517fff000000000000000000000000000000000000000000000000000000000000001690565b612dd7612dcc83611eba565b9160001a9185612c3f565b5301612d81565b50612df491925060208082518301019101612c92565b9091565b9050612e0261232d565b600091565b80611e3f6000612e16936104d7565b38612d53565b61050833612514565b3d6108008111612e4a575b604051906020818301016040528082526000602083013e90565b50610800612e30565b60031115610a7a57565b90949392946003811015610a7a57606092612e859183526080602084015260808301906109ea565b9460408201520152565b9060a06105c6926000815260606020820152601460608201527f4141353020706f73744f70207265766572746564000000000000000000000000608082015281604082015201906109ea565b60005b828110612eea57505050565b600190612ef5612237565b612f008286866124ec565b612f0981612f6a565b612f138282612955565b505050612f2360608201826122fa565b905015612f5957612f3d6000929160208493015190614293565b9082602083519301915af150612f51611efa565b505b01612ede565b5050612f53565b356105c6816105c9565b612f9d90612f7b60408201826122fa565b91612f95813591612f8b836105c9565b60e08101906122fa565b93909261432d565b8051612fa65750565b6119a590604051918291631101335b60e11b8352600060048401526040602484015260448301906109ea565b939291612ff8906001600160a01b036040931686526060602087015260608601906109ea565b930152565b939094613008611f94565b5060009280156132805761304d935061301f611ee5565b5091600061302f5a8860036146c4565b5a906040519687928392631efc84dd60e31b84528c60048501612fd2565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156112d3576000948592613262575b5081948092811561323f5750506130aa9095929394955b85611bb3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846130e28885611ed8565b10613210575a6130f188611b91565b116131b557918893918796959360008c8b61312461311b613115886131449f611bb3565b60011c90565b809a60036146c4565b835a936040519e8f9586948593631efc84dd60e31b855260048501612fd2565b03925af19889156112d357600090819a61318f575b501561317a5750505061316b83611ec9565b95915b939495919290926130d7565b93965093613189919750611ba5565b9461316e565b906131ad929a503d8091833e6131a581836104d7565b810190612c92565b989038613159565b509550939550505093506131c761232d565b926131d0610539565b93600085526000602086015260408501526131e9610539565b928352602083015260408201526131fe610539565b60018152916020830152604082015290565b9650965050919550506132329150613226610539565b93845215156020840152565b6040820152612bf3610539565b96509650505094505050613232613254610539565b600081529215156020840152565b909461327892503d8091833e6131a581836104d7565b90933861308d565b506132b2915a90846132945a8960036146c4565b5a906040519687928392631efc84dd60e31b84528d60048501612fd2565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156112d357858095613317575b5050839461330081935a90611ed8565b94811561323f5750506130aa9095929394956130a4565b909194506133309295503d8091833e6131a581836104d7565b9390939238806132f0565b939094613346611f94565b5060009280156134c45761336d935061335d611ee5565b5091600061302f5a8860016146c4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156112d35760009485926134a6575b5081948092811561323f5750506133c990959293949585611bb3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846134018885611ed8565b10613210575a61341088611b91565b116131b557918893918796959360008c8b6131246134346131158861343d9f611bb3565b809a60016146c4565b03925af19889156112d357600090819a613488575b50156134735750505061346483611ec9565b95915b939495919290926133f6565b93965093613482919750611ba5565b94613467565b9061349e929a503d8091833e6131a581836104d7565b989038613452565b90946134bc92503d8091833e6131a581836104d7565b9093386133ad565b506134d8915a90846132945a8960016146c4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156112d35785809561353d575b5050839461352681935a90611ed8565b94811561323f5750506133c99095929394956130a4565b909194506135569295503d8091833e6131a581836104d7565b939093923880613516565b93909461356c611f94565b5060009280156136ea576135939350613583611ee5565b5091600061302f5a8860026146c4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156112d35760009485926136cc575b5081948092811561323f5750506135ef90959293949585611bb3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846136278885611ed8565b10613210575a61363688611b91565b116131b557918893918796959360008c8b61312461365a613115886136639f611bb3565b809a60026146c4565b03925af19889156112d357600090819a6136ae575b50156136995750505061368a83611ec9565b95915b9394959192909261361c565b939650936136a8919750611ba5565b9461368d565b906136c4929a503d8091833e6131a581836104d7565b989038613678565b90946136e292503d8091833e6131a581836104d7565b9093386135d3565b506136fe915a90846132945a8960026146c4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156112d357858095613763575b5050839461374c81935a90611ed8565b94811561323f5750506135ef9095929394956130a4565b9091945061377c9295503d8091833e6131a581836104d7565b93909392388061373c565b1561378e57565b606460405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b613869906137ef6137e282612f60565b6001600160a01b03168452565b6020810135602084015261381c6080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c084015261385360c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e08101906122fa565b9081156138a55761388d8260e092613888603461050897961015613787565b614900565b60a085015260808401526001600160a01b0316910152565b505060a081600060e0819401528260808201520152565b91906040838203126103d457825167ffffffffffffffff81116103d4576020916138e7918501612c50565b92015190565b9035601e19823603018112156103d457016020813591019167ffffffffffffffff82116103d45781360383136103d457565b6105c69161393d81613930846105da565b6001600160a01b03169052565b602082013560208201526139d36139c761398e61397361396060408701876138ed565b61012060408801526101208701916122bc565b61398060608701876138ed565b9086830360608801526122bc565b6080850135608085015260a085013560a085015260c085013560c08501526139b960e08601866138ed565b9085830360e08701526122bc565b926101008101906138ed565b916101008185039101526122bc565b6139fa6040929594939560608352606083019061391f565b9460208201520152565b60a0906105c69392815260606020820152600d60608201527f4141333320726576657274656400000000000000000000000000000000000000608082015281604082015201906109ea565b929390915a92815190613a6c60e08301516001600160a01b031690565b91613a8a836001600160a01b03166000526000602052604060002090565b8054898110613bd1576001600160a01b0360206080600097958d9795613aec9d9e8a960390550151970151926040519a8b96879586937f52b7512c000000000000000000000000000000000000000000000000000000008552600485016139e2565b03931686f19384600091600096613baa575b50613b295785613b0c612e25565b906119a56040519283926365c8fd4d60e01b845260048401613a04565b9491925a900311613b375750565b60408051631101335b60e11b815260048101929092526024820152602760448201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760648201527f61734c696d697400000000000000000000000000000000000000000000000000608482015260a490fd5b909550613bca91503d806000833e613bc281836104d7565b8101906138bc565b9438613afe565b6119a589604051918291631101335b60e11b835260048301608091815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b929190612ff860209160408652604086019061391f565b6001600160a01b0316600052600060205260406000208054918201809211611ba05781905590565b613c766001600160a01b0391614938565b9116613d4157613ced57613c916001600160a01b0391614938565b5016613c9957565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b6084604051631101335b60e11b81526000600482015260406024820152601460448201527f41413234207369676e6174757265206572726f720000000000000000000000006064820152fd5b906001600160a01b03613d9e612436565b9216600052600060205263ffffffff6001604060002001546001600160701b038160081c16845260781c166020830152565b908160209103126103d4575190565b60a0906105c69392815260606020820152600d60608201527f4141323320726576657274656400000000000000000000000000000000000000608082015281604082015201906109ea565b929091613ead6020600095855193613e7760e0613e4e87516001600160a01b031690565b96613e698a8c613e6160408901896122fa565b929091614a0b565b01516001600160a01b031690565b91886001600160a01b03819416159889613f4b575b85015191604051968795869485936306608bdf60e21b8552600485016139e2565b03926001600160a01b03881690f1859181613f1a575b50613eee5784613ed1612e25565b906119a56040519283926365c8fd4d60e01b845260048401613ddf565b939192613ef9575050565b613f16906001600160a01b03166000526000602052604060002090565b5050565b613f3d91925060203d602011613f44575b613f3581836104d7565b810190613dd0565b9038613ec3565b503d613f2b565b9350613f6a876001600160a01b03166000526000602052604060002090565b548015613f7d575084815b949050613e8c565b85908203613f75565b94929193906020613ff691865193613fbd60e0613faa87516001600160a01b031690565b96613e698b8d613e6160408901896122fa565b916001600160a01b03600093161598896140c3575b84600091015191604051968795869485936306608bdf60e21b8552600485016139e2565b03926001600160a01b03881690f1600091816140a2575b5061401b5785613ed1612e25565b94929361402757505050565b614044906001600160a01b03166000526000602052604060002090565b918254908183116140555750039055565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b6140bc91925060203d602011613f4457613f3581836104d7565b903861400d565b92506140e2866001600160a01b03166000526000602052604060002090565b54878111156140fa5750600084815b94915050613fd2565b8460009189036140f1565b6001600160a01b0316600052600160205267ffffffffffffffff6141438260401c6040600020906001600160c01b0316600052602052604060002090565b9182549261415084611c56565b9055161490565b61012061010082015191015180821461417d57480180821015614178575090565b905090565b5090565b9190917f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f608060208301519251946001600160a01b038651169460206001600160a01b0360e089015116970151916040519283526000602084015260408301526060820152a4565b9060807f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f9160208401519351956001600160a01b038751169560206001600160a01b0360e08a015116980151926040519384521515602084015260408301526060820152a4565b60208101519051907f67b4fa9642f42120bf031f3051d1824b0fe25627945b27b8a6a65d5761d5482e6020806001600160a01b03855116940151604051908152a3565b919082356142a0816105c9565b9260608101638dd7712f60e01b7fffffffff000000000000000000000000000000000000000000000000000000006142d883856122fa565b90600360009211614324575b50160361430f57506105c690611103604051938492638dd7712f60e01b602085015260248401613c26565b6105c6925061431d916122fa565b3691610574565b905035386142e4565b509291921590816143e2575b506143a5576014811015614352575b50506105c6611ee5565b6014116103d4573560601c3b1561436a573880614348565b6040516143786040826104d7565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b50506040516143b56040826104d7565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b1538614339565b919091610120818403126103d457614402610548565b9261440c826105da565b845260208201356020850152604082013567ffffffffffffffff81116103d457816144389184016105ab565b6040850152606082013567ffffffffffffffff81116103d4578161445d9184016105ab565b60608501526080820135608085015260a082013560a085015260c082013560c085015260e082013567ffffffffffffffff81116103d457816144a09184016105ab565b60e085015261010082013567ffffffffffffffff81116103d4576144c492016105ab565b610100830152565b60041115610a7a57565b91926fffffffffffffffffffffffffffffffff196034959481936bffffffffffffffffffffffff199060601b16855216601484015216602482015261452482518093602086850191016109c7565b010190565b80516001600160a01b031682526105c691602082015160208201526101006145aa61457a614568604086015161012060408701526101208601906109ea565b606086015185820360608701526109ea565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526109ea565b920151906101008184039101526109ea565b60806101a09161012081516145da8682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c087015261462e60e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b61469a61468f6102009396959496600084526102206020850152610220840190614529565b9560408301906145bc565b0152565b6102009061469a61468f6000949695968584526102206020850152610220840190614529565b916146cd612237565b926146d836846143ec565b6146e1826144cc565b6002821461481c576146f2826144cc565b6003821461479e5750806147076001926144cc565b146147515760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b6147666105c692602061110395015190614293565b9390916040519485937f4440347300000000000000000000000000000000000000000000000000000000602086015260248501612fd2565b9190506fffffffffffffffffffffffffffffffff6147dc6147d560806105c69601356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526111036040519384927fc579f76b0000000000000000000000000000000000000000000000000000000060208501526024840161469e565b9161110391506fffffffffffffffffffffffffffffffff19846148a860e06105c6970161489a61485561484f83866122fa565b90614900565b9391905060609160e08b01966034885151116148de575b505060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b1690602086016144d6565b03601f1981018452836104d7565b526040519485937f21e60b370000000000000000000000000000000000000000000000000000000060208601526024850161466a565b6148f892935061431d916148f1916122fa565b80916126f8565b90388061486c565b9091826014116103d457813591836024116103d4576014810135936034116103d45760609290921c92608090811c9260240135901c90565b8015614a0257614946611f75565b5065ffffffffffff8160a01c169081156149f4575b6149d6906149bd6149b26040519461497286610482565b6001600160a01b038416865265ffffffffffff602087019460d01c1684526149a66040870191829065ffffffffffff169052565b5165ffffffffffff1690565b65ffffffffffff1690565b42119081156149d9575b5091516001600160a01b031690565b91565b516149ec915065ffffffffffff166149b2565b4210386149c7565b65ffffffffffff915061495b565b50600090600090565b92909181614a1a575b50505050565b8251516001600160a01b031693843b614c365760408451015160206040518092632b870d1b60e11b825281600081614a568a8a600484016122dd565b03926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690f19081156112d357600091614c17575b506001600160a01b038116958615614bc2576001600160a01b0316809603614b6d573b15614b20575061282f6128297fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d93614aed936126ea565b602083810151935160e00151604080516001600160a01b039485168152939091169183019190915290a338808080614a14565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b6119a582604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b6119a583604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b614c30915060203d6020116112cc576112be81836104d7565b38614a93565b60408051631101335b60e11b815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b81604051918237209056fea26469706673582212205a42aa8135c160696c438f22bb4de4e3fe35d884c6683b2ac6a8496c2b44297e64736f6c634300081c003360808060405234601557610179908161001b8239f35b600080fdfe6080600436101561000f57600080fd5b60003560e01c63570e1a361461002457600080fd5b3461013e57602036600319011261013e5760043567ffffffffffffffff811161013e573660238201121561013e57806004013567ffffffffffffffff811161013e57366024828401011161013e576000928160141161013a5760131982019167ffffffffffffffff831161012657600b8101601f19908116603f0116820167ffffffffffffffff8111838210176101125760246020959387600c819795829560405286845289840196603889018837830101525193013560601c5af19051901561010a575b60209073ffffffffffffffffffffffffffffffffffffffff60405191168152f35b5060006100e9565b602486634e487b7160e01b81526041600452fd5b602485634e487b7160e01b81526041600452fd5b8380fd5b600080fdfea2646970667358221220ea27187ca6f911e310b89c722db8d8e689e8b114dc6a370df66e14f7b719208264736f6c634300081c0033", "sourceMap": "1166:17642:19:-:0;;;;;;;1857:1:14;2061:21;1166:17642:19;1761:19:18;;;;-1:-1:-1;;;;;1761:19:18;;;;;;;;;;;;;;;-1:-1:-1;1761:19:18;;;;;;;1292:4:19;;;1166:17642;;:::i;:::-;-1:-1:-1;1166:17642:19;;1379:15;;;1166:17642;-1:-1:-1;1166:17642:19;;;1379:15;1166:17642;;:::i;:::-;-1:-1:-1;1166:17642:19;;1347:48;1166:17642;1347:48;1166:17642;;-1:-1:-1;;;;;;1166:17642:19;;;;;;;;;;;;;;;;;1761:19:18;1166:17642:19;;;;;;;;;;1292:4;1166:17642;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1761:19:18;1166:17642:19;;;-1:-1:-1;1166:17642:19;;;;;1761:19:18;1166:17642:19;;;-1:-1:-1;1166:17642:19;;;;;-1:-1:-1;1166:17642:19;;;;;;;;;;;;;-1:-1:-1;;;;;1166:17642:19;;;;;;;;;;:::o", "linkReferences": {} }, "deployedBytecode": { "object": "0x60806040526004361015610023575b361561001957600080fd5b610021612e1c565b005b60003560e01c80630396cb60146101de5780630bd28e3b146101d95780630da82661146101d45780631b2e01b8146101cf578063205c2878146101ca578063212eccc6146101c557806321e60b37146101c057806322cdde4c146101bb57806335567e1a146101b657806344403473146101b15780635287ce12146101ac57806370a08231146101a7578063765e827f14610166578063850aaf62146101a257806397b2dcb91461019d5780639b249f6914610198578063acbe911e14610193578063aec321fb1461018e578063af32494314610189578063b760faf914610184578063bb9fe6bf1461017f578063c23a5cea1461017a578063c3bce00914610175578063c579f76b14610170578063d72f25931461016b578063dbed18e014610166578063f7e426e8146101615763fc7e286d0361000e57611a57565b611a1e565b610e95565b6119fe565b61176e565b611750565b611629565b611502565b6114d7565b611464565b61140c565b6112d8565b6111dc565b610fee565b610efa565b610e1e565b610d0d565b610cc7565b610be7565b610bc7565b610aca565b610a7f565b61081e565b6107bd565b61069a565b6103ef565b60203660031901126103d45760043563ffffffff8116908181036103d4576103cf7fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01916103b161029f61028f610247336001600160a01b03166000526000602052604060002090565b96610253811515611ae5565b6102806001890154916102796102708463ffffffff9060781c1690565b63ffffffff1690565b1115611b30565b60081c6001600160701b031690565b6001600160701b03349116611bb3565b946102ab861515611bc0565b6102be6001600160701b03871115611c0b565b546102c76104f9565b908152600160208201526001600160701b038616604082015263ffffffff8316606082015260006080820152610310336001600160a01b03166000526000602052604060002090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b600080fd5b602435906001600160c01b03821682036103d457565b346103d45760203660031901126103d4576004356001600160c01b03811681036103d45761043d903360005260016020526040600020906001600160c01b0316600052602052604060002090565b6104478154611c56565b9055005b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761047d57604052565b61044b565b6060810190811067ffffffffffffffff82111761047d57604052565b610140810190811067ffffffffffffffff82111761047d57604052565b6040810190811067ffffffffffffffff82111761047d57604052565b90601f8019910116810190811067ffffffffffffffff82111761047d57604052565b6040519061050860a0836104d7565b565b60405190610508610140836104d7565b60405190610508610100836104d7565b604051906105086040836104d7565b604051906105086060836104d7565b60405190610508610120836104d7565b67ffffffffffffffff811161047d57601f01601f191660200190565b92919261058082610558565b9161058e60405193846104d7565b8294818452818301116103d4578281602093846000960137010152565b9080601f830112156103d4578160206105c693359101610574565b90565b6001600160a01b038116036103d457565b3590610508826105c9565b60431901906101c082126103d4576040516105ff81610461565b6101408193126103d45761061161050a565b61061b60446105da565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c08201526106596101246105da565b60e0820152610144356101008201526101643561012082015281526101843560208201526101a43560408201526101c435606082015260806101e435910152565b346103d4576102203660031901126103d45760043567ffffffffffffffff81116103d4576106cc9036906004016105ab565b3660231901906101c082126103d457610140604051926106eb84610461565b126103d4576106f861050a565b61070260246105da565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c082015261073f6101046105da565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359067ffffffffffffffff82116103d4576040926107a66107b19336906004016105ab565b906102043592611c65565b82519182526020820152f35b346103d45760403660031901126103d45760206108156004356107df816105c9565b6001600160a01b036107ef6103d9565b9116600052600183526040600020906001600160c01b0316600052602052604060002090565b54604051908152f35b346103d45760403660031901126103d45760043561083b816105c9565b6024353360005260006020526040600020918254908183116108c35760008080856001600160a01b03829589610874846100219a611ed8565b9055604080516001600160a01b03831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af16108bd611efa565b50611f2a565b606460405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b9181601f840112156103d45782359167ffffffffffffffff83116103d4576020808501948460051b0101116103d457565b90816101209103126103d45790565b60c06003198201126103d45760043567ffffffffffffffff81116103d4578161097291600401610907565b929092916024359067ffffffffffffffff82116103d45761099591600401610938565b906044356109a2816105c9565b90606435906084359060a43590565b634e487b7160e01b600052602160045260246000fd5b60005b8381106109da5750506000910152565b81810151838201526020016109ca565b90602091610a03815180928185528580860191016109c7565b601f01601f1916010190565b6020815281516002811015610a7a57602082015260a0604080610a5e8160208701518582880152805160c08801526020810151151560e0880152015160606101008701526101208601906109ea565b9401518051606085015260208101516080850152015191015290565b6109b1565b346103d457610ac6610aba610aac610a9636610947565b9691949095610aa6949394611f94565b50612edb565b610ab581612f6a565b612ffd565b60405191829182610a0f565b0390f35b346103d4576102003660031901126103d45760243560043567ffffffffffffffff82116103d457610b02610ac6923690600401610938565b90610b0c366105e5565b600092815192610b1c84836137d2565b610b2582611fd8565b60208401526001600160a01b0360e0610b5f86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b95015116610b87575b6040805160008082526020820188905291810191909152806060810188565b610b919450613a4f565b905038808080610b68565b60206003198201126103d4576004359067ffffffffffffffff82116103d4576105c691600401610938565b346103d4576020610bdf610bda36610b9c565b611fd8565b604051908152f35b346103d45760403660031901126103d4576020600435610c06816105c9565b6001600160a01b03610c166103d9565b911660005260018252610c40816040600020906001600160c01b0316600052602052604060002090565b546040805192901b67ffffffffffffffff1916178152f35b9181601f840112156103d45782359167ffffffffffffffff83116103d457602083818601950101116103d457565b9060606003198301126103d457600435610c9f816105c9565b916024359067ffffffffffffffff82116103d457610cbf91600401610c58565b909160443590565b346103d45760008080610cd936610c86565b939181604094929451948592833781018381520393f1610cf7611efa565b9015610cff57005b80519081156103d457602001fd5b346103d45760203660031901126103d4576001600160a01b03600435610d32816105c9565b60006080604051610d4281610461565b8281528260208201528260408201528260608201520152166000526000602052610ac66040600020610dca65ffffffffffff600160405193610d8385610461565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b346103d45760203660031901126103d4576001600160a01b03600435610e43816105c9565b1660005260006020526020604060002054604051908152f35b60406003198201126103d4576004359067ffffffffffffffff82116103d457610e8791600401610907565b90916024356105c6816105c9565b346103d457610ea336610e5c565b505050608460405162461bcd60e51b815260206004820152602760248201527f53484f554c44204e4f542042452043414c4c454420445552494e472053494d556044820152664c4154494f4e5360c81b6064820152fd5b346103d45760403660031901126103d457610f166004356105c9565b60243567ffffffffffffffff81116103d457610f36903690600401610c58565b5050608460405162461bcd60e51b815260206004820152602760248201527f53484f554c44204e4f542042452043414c4c454420445552494e472053494d556044820152664c4154494f4e5360c81b6064820152fd5b61012060e06105c6936020845280516020850152602081015160408501526040810151606085015260608101516080850152608081015160a085015260a081015160c085015260c08101511515828501520151916101008082015201906109ea565b346103d45760603660031901126103d45760043567ffffffffffffffff81116103d45761101f903690600401610938565b60243561102b816105c9565b60443567ffffffffffffffff81116103d45761104b9036906004016105ab565b916110546120bb565b5060009160028054146111cd57610ac69360028055611071612237565b61107a84612f6a565b6110848185612955565b91955a60608501518561109a60608501856122fa565b94908c600387116111c5575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b036111ad57506111169450611111602083015191611103604051938492638dd7712f60e01b602085015260248401613c26565b03601f1981018352826104d7565b611c65565b9390975b80956060976001600160a01b038116611184575b505050956080611169969701519761114461051a565b988952602089015260408801526060870152608086015260a0850152151560c0840152565b60e08201526111786001600255565b60405191829182610f8c565b61116998508280949850602083519301915af19560806111a2611efa565b97959197963861112e565b61111191506111bd953691610574565b93909761111a565b5080356110a6565b600483633ee5aeb560e01b8152fd5b346103d45760203660031901126103d45760043567ffffffffffffffff81116103d457602061121261122e923690600401610c58565b906040519384928392632b870d1b60e11b8452600484016122dd565b038160006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af180156112d3576001600160a01b03916000916112a4575b507f6ca7b806000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b6112c6915060203d6020116112cc575b6112be81836104d7565b8101906122a7565b38611275565b503d6112b4565b6122ee565b346103d457610ac6610aba6112ec36610947565b9594909493919361237b565b60406003198201126103d45760043567ffffffffffffffff81116103d4578161132391600401610907565b929092916024359067ffffffffffffffff82116103d4576105c691600401610938565b6105c69060208152610100608061139f81865161014060208701528051610160870152602081015161018087015260408101516101a087015260608101516101c0870152015160a06101e08601526102008501906109ea565b6020808701518051604087015201516060850152946113cf60408201518386019060208091805184520151910152565b6060810151805160c08601526020015160e0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b346103d45761141a366112f8565b919061142461244f565b5060005b81811061144757610ac661143b8561278f565b60405191829182611346565b8061145d61145860019385876124ec565b61278f565b5001611428565b346103d457611472366112f8565b919061147c6120bb565b5060209060005b8181106114b157610ac661117886604051906114a06020836104d7565b600082526114ac6120bb565b612110565b806114d06114c260019385886124ec565b604051906114a087836104d7565b5001611483565b60203660031901126103d4576100216004356114f2816105c9565b612514565b60009103126103d457565b346103d45760003660031901126103d4573360005260006020526001604060002001805463ffffffff8160781c16156115e55761156e6115606102708361155461154f6115a89660ff1690565b612555565b60781c63ffffffff1690565b65ffffffffffff42166125a0565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a9080602081016103cf565b606460405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b346103d45760203660031901126103d457610021600080808060043561164e816105c9565b6001600160a01b036001611675336001600160a01b03166000526000602052604060002090565b01916117038354936116db65ffffffffffff6116c76116ad6116a1896001600160701b039060081c1690565b6001600160701b031690565b976116b98915156125be565b60981c65ffffffffffff1690565b166116d3811515612609565b421015612654565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03831681526020810185905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2165af161174a611efa565b5061269f565b346103d457610ac661143b61145836610b9c565b801515036103d457565b346103d4576102203660031901126103d45760043560243567ffffffffffffffff81116103d4576117a3903690600401610938565b906117ad366105e5565b61020435906117bb82611764565b6000935a8251936117cc85846137d2565b6117d583611fd8565b60208501526040850151956118216effffffffffffffffffffffffffffff8860c08901511760608901511760808901511760a089015117610100890151176101208901511711156128f4565b61184c86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b9061185a8883888885613f86565b9761188161187d6118728a516001600160a01b031690565b60208b015190614105565b1590565b6119a9575a850311611957576060926001600160a01b036118ad60e05a9a01516001600160a01b031690565b161515908161194f575b50611918575b509360806118f49460a06118ef95610ac699956118fb99604087015260608601525a9003910135019101525a90611ed8565b61293f565b6064900490565b604051938493846040919493926060820195825260208201520152565b819850610ac69692508460a06118ef9561193d89956118fb9a6118f49a608097613a4f565b9c90969a5094985095505094506118bd565b9050386118b7565b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d69740000606482015280608481015b0390fd5b6119a582604051918291631101335b60e11b835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b346103d457610ac6610aba611a1236610947565b95949094939193612b65565b346103d457611a38611a2f36610c86565b92919091612cc9565b90610ac6604051928392151583526040602084015260408301906109ea565b346103d45760203660031901126103d4576001600160a01b03600435611a7c816105c9565b16600052600060205265ffffffffffff604060002060018154910154908260405193849360a0850193855260ff8116151560208601526001600160701b03808260081c1616604086015263ffffffff808260781c1616606086015260981c161660808301520390f35b15611aec57565b606460405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b15611b3757565b606460405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b634e487b7160e01b600052601160045260246000fd5b906113888201809211611ba057565b611b7b565b9060018201809211611ba057565b91908201809211611ba057565b15611bc757565b606460405162461bcd60e51b815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611c1257565b606460405162461bcd60e51b815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b6000198114611ba05760010190565b93929093845190606082015181519081611e50575b505050505a900360808401510192600093845a835194611c9986614157565b92611cae60e08801516001600160a01b031690565b6001600160a01b038116919082611d7e5750505050611cd485516001600160a01b031690565b925b5a8203019460a06060820151910151019160808501928351870390818111611d69575b505085029460408501938451878110600014611d3e57505050611d3a939450611d226000612e53565b5a9003905101905183611d358295614250565b614181565b9190565b611d3a969295508780955060019450611d5992910390613c3d565b50611d646000612e53565b6141e9565b9196916064919003600a020401943880611cf9565b95928051611d8f575b505050611cd6565b9091929950611d9d82612e53565b5a9260a089015190803b15611e4c579183929187848196948f611df2604051998a97889687947f7c627b2100000000000000000000000000000000000000000000000000000000865202908660048601612e5d565b0393f19182611e32575b5050611e26576119a5611e0d612e25565b6040519182916365c8fd4d60e01b835260048301612e8f565b5a900396388080611d87565b611e3f611e4592826104d7565b806114f7565b3880611dfc565b8380fd5b600080949360206001600160a01b0383965116910192f115611e755738808080611c7a565b6119a5611e80612e25565b6040519182917f462c71b20000000000000000000000000000000000000000000000000000000083526020600484015260248301906109ea565b600319810191908211611ba057565b600019810191908211611ba057565b91908203918211611ba057565b60405190611ef46020836104d7565b60008252565b3d15611f25573d90611f0b82610558565b91611f1960405193846104d7565b82523d6000602084013e565b606090565b15611f3157565b606460405162461bcd60e51b815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b60405190611f8282610482565b60006040838281528260208201520152565b60405190611fa182610482565b8160008152604051611fb281610482565b60008152600060208201526060604082015260208201526040611fd3611f75565b910152565b602081013561208c611fed60408401846122fa565b9081604051918237209161110361200760608601866122fa565b90816040519182372060c086013560a0870135608088013561203561202f60e08b018b6122fa565b90614c83565b936040519889976001600160a01b0360208a019c35168c94919260e096939998979491996001600160a01b0361010088019b168752602087015260408601526060850152608084015260a083015260c08201520152565b519020604080516020810192835230918101919091524660608201526120b58160808101611103565b51902090565b60405190610100820182811067ffffffffffffffff82111761047d57604052606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b50905060028054146122265760028055608061212a612237565b9161213481612f6a565b61213e8382612955565b926000929192905a908760608101519161215b60608201826122fa565b956003871161221e575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361220657506121c29450611111602083015191611103604051938492638dd7712f60e01b602085015260248401613c26565b9490955b0151946121d161051a565b958652602086015260408501526060840152608083015260a0820152600060c0820152606060e0820152906105086001600255565b6111119150612216953691610574565b9490956121c6565b508035612165565b633ee5aeb560e01b60005260046000fd5b6040519061224482610461565b60006080836040516122558161049e565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b908160209103126103d457516105c6816105c9565b908060209392818452848401376000828201840152601f01601f1916010190565b9160206105c69381815201916122bc565b6040513d6000823e3d90fd5b903590601e19813603018212156103d4570180359067ffffffffffffffff82116103d4576020019181360383136103d457565b6040519061233c6020836104d7565b6000808352366020840137565b9061235382610558565b61236060405191826104d7565b8281528092612371601f1991610558565b0190602036910137565b9594939291909561238a611f94565b5061239860608301836122fa565b9050156123ce576105c6966123ac91612edb565b6123c66123b7612237565b6123c083612f6a565b82612955565b50505061333b565b505050505050506123dd61232d565b604051906123ea82610482565b6000825260006020830152604082015260405161240681610482565b6000815260006020820152600060408201526040519161242583610482565b600083526020830152604082015290565b60405190612443826104bb565b60006020838281520152565b6040519061245c82610461565b8160405161246981610461565b60008152600060208201526000604082015260006060820152606060808201528152612493612436565b60208201526124a0612436565b60408201526124ad612436565b60608201526080604051916124c1836104bb565b600083526124cd612436565b60208401520152565b634e487b7160e01b600052603260045260246000fd5b919081101561250f5760051b8101359061011e19813603018212156103d4570190565b6124d6565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b036125493485613c3d565b936040519485521692a2565b1561255c57565b606460405162461bcd60e51b815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b9065ffffffffffff8091169116019065ffffffffffff8211611ba057565b156125c557565b606460405162461bcd60e51b815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b1561261057565b606460405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b1561265b57565b606460405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b156126a657565b606460405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b906014116103d45790601490565b90929192836034116103d45783116103d457603401916033190190565b356bffffffffffffffffffffffff19811692919060148210612735575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b60405190612762826104bb565b6003546001600160a01b0316825260405160208361277f836104bb565b6004548352600554828401520152565b61279761244f565b506127a0612237565b906127aa81612f6a565b6127b48282612955565b509190926127c28385613c65565b6127df6127da60e0835101516001600160a01b031690565b613d8d565b9161280d6127f96127da84516001600160a01b0390511690565b91612802612436565b5060408101906122fa565b90601482106128e85761282f612829612835936127da936126ea565b90612715565b60601c90565b916001600160a01b03861694608082015196606060408401519301519261285a6104f9565b9889526020890152604088015260608701526080860152612879612755565b93801515806128dd575b6128ab575b506128916104f9565b948552602085015260408401526060830152608082015290565b9093506128b781613d8d565b6128d16128c261052a565b6001600160a01b039093168352565b60208201529238612888565b506001811415612883565b50506128356000613d8d565b156128fb57565b606460405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152fd5b90607382029180830460731490151715611ba057565b90916000915a9380519161296983826137d2565b61297281611fd8565b60208301526040830151956129be6effffffffffffffffffffffffffffff8860c08701511760608701511760808701511760a087015117610100870151176101208701511711156128f4565b6129e984610100604082015160608301510160808301510160a08301510160c0830151019101510290565b6129f7888286866000613f86565b97612a1a61187d612a0f88516001600160a01b031690565b602089015190614105565b612b11575a830311612abd576060906001600160a01b03612a4660e05a9801516001600160a01b031690565b16151580612ab5575b612a82575b6118ef9360a06105c69794879460809460406118f49a015260608601525a9003910135019101525a90611ed8565b965050928260808360a06105c697612aa38b6118f4996118ef996000613a4f565b9b909598509350949750509350612a54565b506001612a4f565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b95949392919095612b74611f94565b506014612b8460e08401846122fa565b905010612bbf576105c696612bb191610aa6612b9e612237565b612ba98151876137d2565b5a9086613e2a565b612bba81612f6a565b613561565b50505050505050612bce61232d565b60405190612bdb82610482565b60008252600060208301526040820152612bf3610539565b600081526000602082015260006040820152612c0d610539565b91600083526020830152604082015290565b6040906001600160a01b036105c6959316815281602082015201916122bc565b90815181101561250f570160200190565b81601f820112156103d4578051612c6681610558565b92612c7460405194856104d7565b818452602082840101116103d4576105c691602080850191016109c7565b9190916040818403126103d4578051612caa81611764565b92602082015167ffffffffffffffff81116103d4576105c69201612c50565b91926000936001600160a01b036060941691823b156103d457612d4993600080946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501612c1f565b0393f19081612e07575b50612df4575050612d62611efa565b906004825110612df857612d7e612d798351611eba565b612349565b60045b8351811015612dde5780612dc0612d9a60019387612c3f565b517fff000000000000000000000000000000000000000000000000000000000000001690565b612dd7612dcc83611eba565b9160001a9185612c3f565b5301612d81565b50612df491925060208082518301019101612c92565b9091565b9050612e0261232d565b600091565b80611e3f6000612e16936104d7565b38612d53565b61050833612514565b3d6108008111612e4a575b604051906020818301016040528082526000602083013e90565b50610800612e30565b60031115610a7a57565b90949392946003811015610a7a57606092612e859183526080602084015260808301906109ea565b9460408201520152565b9060a06105c6926000815260606020820152601460608201527f4141353020706f73744f70207265766572746564000000000000000000000000608082015281604082015201906109ea565b60005b828110612eea57505050565b600190612ef5612237565b612f008286866124ec565b612f0981612f6a565b612f138282612955565b505050612f2360608201826122fa565b905015612f5957612f3d6000929160208493015190614293565b9082602083519301915af150612f51611efa565b505b01612ede565b5050612f53565b356105c6816105c9565b612f9d90612f7b60408201826122fa565b91612f95813591612f8b836105c9565b60e08101906122fa565b93909261432d565b8051612fa65750565b6119a590604051918291631101335b60e11b8352600060048401526040602484015260448301906109ea565b939291612ff8906001600160a01b036040931686526060602087015260608601906109ea565b930152565b939094613008611f94565b5060009280156132805761304d935061301f611ee5565b5091600061302f5a8860036146c4565b5a906040519687928392631efc84dd60e31b84528c60048501612fd2565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156112d3576000948592613262575b5081948092811561323f5750506130aa9095929394955b85611bb3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846130e28885611ed8565b10613210575a6130f188611b91565b116131b557918893918796959360008c8b61312461311b613115886131449f611bb3565b60011c90565b809a60036146c4565b835a936040519e8f9586948593631efc84dd60e31b855260048501612fd2565b03925af19889156112d357600090819a61318f575b501561317a5750505061316b83611ec9565b95915b939495919290926130d7565b93965093613189919750611ba5565b9461316e565b906131ad929a503d8091833e6131a581836104d7565b810190612c92565b989038613159565b509550939550505093506131c761232d565b926131d0610539565b93600085526000602086015260408501526131e9610539565b928352602083015260408201526131fe610539565b60018152916020830152604082015290565b9650965050919550506132329150613226610539565b93845215156020840152565b6040820152612bf3610539565b96509650505094505050613232613254610539565b600081529215156020840152565b909461327892503d8091833e6131a581836104d7565b90933861308d565b506132b2915a90846132945a8960036146c4565b5a906040519687928392631efc84dd60e31b84528d60048501612fd2565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156112d357858095613317575b5050839461330081935a90611ed8565b94811561323f5750506130aa9095929394956130a4565b909194506133309295503d8091833e6131a581836104d7565b9390939238806132f0565b939094613346611f94565b5060009280156134c45761336d935061335d611ee5565b5091600061302f5a8860016146c4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156112d35760009485926134a6575b5081948092811561323f5750506133c990959293949585611bb3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846134018885611ed8565b10613210575a61341088611b91565b116131b557918893918796959360008c8b6131246134346131158861343d9f611bb3565b809a60016146c4565b03925af19889156112d357600090819a613488575b50156134735750505061346483611ec9565b95915b939495919290926133f6565b93965093613482919750611ba5565b94613467565b9061349e929a503d8091833e6131a581836104d7565b989038613452565b90946134bc92503d8091833e6131a581836104d7565b9093386133ad565b506134d8915a90846132945a8960016146c4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156112d35785809561353d575b5050839461352681935a90611ed8565b94811561323f5750506133c99095929394956130a4565b909194506135569295503d8091833e6131a581836104d7565b939093923880613516565b93909461356c611f94565b5060009280156136ea576135939350613583611ee5565b5091600061302f5a8860026146c4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156112d35760009485926136cc575b5081948092811561323f5750506135ef90959293949585611bb3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846136278885611ed8565b10613210575a61363688611b91565b116131b557918893918796959360008c8b61312461365a613115886136639f611bb3565b809a60026146c4565b03925af19889156112d357600090819a6136ae575b50156136995750505061368a83611ec9565b95915b9394959192909261361c565b939650936136a8919750611ba5565b9461368d565b906136c4929a503d8091833e6131a581836104d7565b989038613678565b90946136e292503d8091833e6131a581836104d7565b9093386135d3565b506136fe915a90846132945a8960026146c4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156112d357858095613763575b5050839461374c81935a90611ed8565b94811561323f5750506135ef9095929394956130a4565b9091945061377c9295503d8091833e6131a581836104d7565b93909392388061373c565b1561378e57565b606460405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b613869906137ef6137e282612f60565b6001600160a01b03168452565b6020810135602084015261381c6080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c084015261385360c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e08101906122fa565b9081156138a55761388d8260e092613888603461050897961015613787565b614900565b60a085015260808401526001600160a01b0316910152565b505060a081600060e0819401528260808201520152565b91906040838203126103d457825167ffffffffffffffff81116103d4576020916138e7918501612c50565b92015190565b9035601e19823603018112156103d457016020813591019167ffffffffffffffff82116103d45781360383136103d457565b6105c69161393d81613930846105da565b6001600160a01b03169052565b602082013560208201526139d36139c761398e61397361396060408701876138ed565b61012060408801526101208701916122bc565b61398060608701876138ed565b9086830360608801526122bc565b6080850135608085015260a085013560a085015260c085013560c08501526139b960e08601866138ed565b9085830360e08701526122bc565b926101008101906138ed565b916101008185039101526122bc565b6139fa6040929594939560608352606083019061391f565b9460208201520152565b60a0906105c69392815260606020820152600d60608201527f4141333320726576657274656400000000000000000000000000000000000000608082015281604082015201906109ea565b929390915a92815190613a6c60e08301516001600160a01b031690565b91613a8a836001600160a01b03166000526000602052604060002090565b8054898110613bd1576001600160a01b0360206080600097958d9795613aec9d9e8a960390550151970151926040519a8b96879586937f52b7512c000000000000000000000000000000000000000000000000000000008552600485016139e2565b03931686f19384600091600096613baa575b50613b295785613b0c612e25565b906119a56040519283926365c8fd4d60e01b845260048401613a04565b9491925a900311613b375750565b60408051631101335b60e11b815260048101929092526024820152602760448201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760648201527f61734c696d697400000000000000000000000000000000000000000000000000608482015260a490fd5b909550613bca91503d806000833e613bc281836104d7565b8101906138bc565b9438613afe565b6119a589604051918291631101335b60e11b835260048301608091815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b929190612ff860209160408652604086019061391f565b6001600160a01b0316600052600060205260406000208054918201809211611ba05781905590565b613c766001600160a01b0391614938565b9116613d4157613ced57613c916001600160a01b0391614938565b5016613c9957565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b6084604051631101335b60e11b81526000600482015260406024820152601460448201527f41413234207369676e6174757265206572726f720000000000000000000000006064820152fd5b906001600160a01b03613d9e612436565b9216600052600060205263ffffffff6001604060002001546001600160701b038160081c16845260781c166020830152565b908160209103126103d4575190565b60a0906105c69392815260606020820152600d60608201527f4141323320726576657274656400000000000000000000000000000000000000608082015281604082015201906109ea565b929091613ead6020600095855193613e7760e0613e4e87516001600160a01b031690565b96613e698a8c613e6160408901896122fa565b929091614a0b565b01516001600160a01b031690565b91886001600160a01b03819416159889613f4b575b85015191604051968795869485936306608bdf60e21b8552600485016139e2565b03926001600160a01b03881690f1859181613f1a575b50613eee5784613ed1612e25565b906119a56040519283926365c8fd4d60e01b845260048401613ddf565b939192613ef9575050565b613f16906001600160a01b03166000526000602052604060002090565b5050565b613f3d91925060203d602011613f44575b613f3581836104d7565b810190613dd0565b9038613ec3565b503d613f2b565b9350613f6a876001600160a01b03166000526000602052604060002090565b548015613f7d575084815b949050613e8c565b85908203613f75565b94929193906020613ff691865193613fbd60e0613faa87516001600160a01b031690565b96613e698b8d613e6160408901896122fa565b916001600160a01b03600093161598896140c3575b84600091015191604051968795869485936306608bdf60e21b8552600485016139e2565b03926001600160a01b03881690f1600091816140a2575b5061401b5785613ed1612e25565b94929361402757505050565b614044906001600160a01b03166000526000602052604060002090565b918254908183116140555750039055565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b6140bc91925060203d602011613f4457613f3581836104d7565b903861400d565b92506140e2866001600160a01b03166000526000602052604060002090565b54878111156140fa5750600084815b94915050613fd2565b8460009189036140f1565b6001600160a01b0316600052600160205267ffffffffffffffff6141438260401c6040600020906001600160c01b0316600052602052604060002090565b9182549261415084611c56565b9055161490565b61012061010082015191015180821461417d57480180821015614178575090565b905090565b5090565b9190917f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f608060208301519251946001600160a01b038651169460206001600160a01b0360e089015116970151916040519283526000602084015260408301526060820152a4565b9060807f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f9160208401519351956001600160a01b038751169560206001600160a01b0360e08a015116980151926040519384521515602084015260408301526060820152a4565b60208101519051907f67b4fa9642f42120bf031f3051d1824b0fe25627945b27b8a6a65d5761d5482e6020806001600160a01b03855116940151604051908152a3565b919082356142a0816105c9565b9260608101638dd7712f60e01b7fffffffff000000000000000000000000000000000000000000000000000000006142d883856122fa565b90600360009211614324575b50160361430f57506105c690611103604051938492638dd7712f60e01b602085015260248401613c26565b6105c6925061431d916122fa565b3691610574565b905035386142e4565b509291921590816143e2575b506143a5576014811015614352575b50506105c6611ee5565b6014116103d4573560601c3b1561436a573880614348565b6040516143786040826104d7565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b50506040516143b56040826104d7565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b1538614339565b919091610120818403126103d457614402610548565b9261440c826105da565b845260208201356020850152604082013567ffffffffffffffff81116103d457816144389184016105ab565b6040850152606082013567ffffffffffffffff81116103d4578161445d9184016105ab565b60608501526080820135608085015260a082013560a085015260c082013560c085015260e082013567ffffffffffffffff81116103d457816144a09184016105ab565b60e085015261010082013567ffffffffffffffff81116103d4576144c492016105ab565b610100830152565b60041115610a7a57565b91926fffffffffffffffffffffffffffffffff196034959481936bffffffffffffffffffffffff199060601b16855216601484015216602482015261452482518093602086850191016109c7565b010190565b80516001600160a01b031682526105c691602082015160208201526101006145aa61457a614568604086015161012060408701526101208601906109ea565b606086015185820360608701526109ea565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526109ea565b920151906101008184039101526109ea565b60806101a09161012081516145da8682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c087015261462e60e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b61469a61468f6102009396959496600084526102206020850152610220840190614529565b9560408301906145bc565b0152565b6102009061469a61468f6000949695968584526102206020850152610220840190614529565b916146cd612237565b926146d836846143ec565b6146e1826144cc565b6002821461481c576146f2826144cc565b6003821461479e5750806147076001926144cc565b146147515760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b6147666105c692602061110395015190614293565b9390916040519485937f4440347300000000000000000000000000000000000000000000000000000000602086015260248501612fd2565b9190506fffffffffffffffffffffffffffffffff6147dc6147d560806105c69601356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526111036040519384927fc579f76b0000000000000000000000000000000000000000000000000000000060208501526024840161469e565b9161110391506fffffffffffffffffffffffffffffffff19846148a860e06105c6970161489a61485561484f83866122fa565b90614900565b9391905060609160e08b01966034885151116148de575b505060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b1690602086016144d6565b03601f1981018452836104d7565b526040519485937f21e60b370000000000000000000000000000000000000000000000000000000060208601526024850161466a565b6148f892935061431d916148f1916122fa565b80916126f8565b90388061486c565b9091826014116103d457813591836024116103d4576014810135936034116103d45760609290921c92608090811c9260240135901c90565b8015614a0257614946611f75565b5065ffffffffffff8160a01c169081156149f4575b6149d6906149bd6149b26040519461497286610482565b6001600160a01b038416865265ffffffffffff602087019460d01c1684526149a66040870191829065ffffffffffff169052565b5165ffffffffffff1690565b65ffffffffffff1690565b42119081156149d9575b5091516001600160a01b031690565b91565b516149ec915065ffffffffffff166149b2565b4210386149c7565b65ffffffffffff915061495b565b50600090600090565b92909181614a1a575b50505050565b8251516001600160a01b031693843b614c365760408451015160206040518092632b870d1b60e11b825281600081614a568a8a600484016122dd565b03926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690f19081156112d357600091614c17575b506001600160a01b038116958615614bc2576001600160a01b0316809603614b6d573b15614b20575061282f6128297fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d93614aed936126ea565b602083810151935160e00151604080516001600160a01b039485168152939091169183019190915290a338808080614a14565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b6119a582604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b6119a583604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b614c30915060203d6020116112cc576112be81836104d7565b38614a93565b60408051631101335b60e11b815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b81604051918237209056fea26469706673582212205a42aa8135c160696c438f22bb4de4e3fe35d884c6683b2ac6a8496c2b44297e64736f6c634300081c0033", "sourceMap": "1166:17642:19:-:0;;;;;;;;;-1:-1:-1;1166:17642:19;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;1166:17642:19;;;;;;;;;;;;;;;2977:47:3;;2428:10;1166:17642:19;2657:22:3;1166:17642:19;2419:20:3;2428:10;-1:-1:-1;;;;;1166:17642:19;2419:8:3;1166:17642:19;2419:8:3;1166:17642:19;;;2419:8:3;1166:17642:19;;;2419:20:3;2457:19;2449:58;2457:19;;;2449:58;:::i;:::-;2517:114;2557:20;;;1166:17642:19;;2538:39:3;1166:17642:19;;;;;;;;;;;;;;2538:39:3;-1:-1:-1;2538:39:3;2517:114;:::i;:::-;1166:17642:19;;-1:-1:-1;;;;;1166:17642:19;;;;-1:-1:-1;;;;;2670:9:3;1166:17642:19;;2657:22:3;:::i;:::-;2697:9;2689:40;2697:9;;;2689:40;:::i;:::-;2739:53;-1:-1:-1;;;;;2747:26:3;;;2739:53;:::i;:::-;1166:17642:19;;;:::i;:::-;;;;2557:20:3;1166:17642:19;2825:137:3;;1166:17642:19;-1:-1:-1;;;;;1166:17642:19;;2825:137:3;;;1166:17642:19;;;;2825:137:3;;;1166:17642:19;-1:-1:-1;2825:137:3;;;1166:17642:19;2802:20:3;2428:10;-1:-1:-1;;;;;1166:17642:19;2419:8:3;1166:17642:19;2419:8:3;1166:17642:19;;;2419:8:3;1166:17642:19;;;2802:20:3;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1166:17642:19;;;;;;2825:137:3;1166:17642:19;;;;;;;;;;;;;2428:10:3;;1166:17642:19;;;;;;;2977:47:3;;;;1166:17642:19;;-1:-1:-1;1166:17642:19;;;;;;-1:-1:-1;;;;;1166:17642:19;;;;;;:::o;:::-;;;;;;-1:-1:-1;;1166:17642:19;;;;;;-1:-1:-1;;;;;1166:17642:19;;;;;;893:36:1;913:10;;-1:-1:-1;1166:17642:19;893:19:1;1166:17642:19;;;-1:-1:-1;1166:17642:19;;-1:-1:-1;;;;;1166:17642:19;;;;;;;;;;893:36:1;:38;1166:17642:19;;893:38:1;:::i;:::-;1166:17642:19;;;;-1:-1:-1;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;2569:15;1166:17642;;;2569:15;1166:17642;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1166:17642:19;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1166:17642:19;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;-1:-1:-1;;;;;1166:17642:19;;;;;:::o;:::-;;;;;;:::i;:::-;-1:-1:-1;;1166:17642:19;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;1166:17642:19;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;1166:17642:19;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;1166:17642:19;;;;;279:74:1;1166:17642:19;;;;;:::i;:::-;-1:-1:-1;;;;;1166:17642:19;;:::i;:::-;;;-1:-1:-1;1166:17642:19;279:74:1;1166:17642:19;;;-1:-1:-1;1166:17642:19;;-1:-1:-1;;;;;1166:17642:19;;;;;;;;;;279:74:1;1166:17642:19;;;;;;;;;;;;;-1:-1:-1;;1166:17642:19;;;;;;;;;:::i;:::-;;;4805:10:3;-1:-1:-1;1166:17642:19;-1:-1:-1;1166:17642:19;;;-1:-1:-1;1166:17642:19;;;;4834:30:3;;;;1166:17642:19;;-1:-1:-1;4919:29:3;;;-1:-1:-1;;;;;4919:29:3;;;;;5102:38;4919:29;;:::i;:::-;1166:17642:19;;;;;-1:-1:-1;;;;;1166:17642:19;;;;;;;;;;4805:10:3;;4963:54;;;1166:17642:19;5045:47:3;;;;:::i;:::-;;5102:38;:::i;1166:17642:19:-;;;;-1:-1:-1;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1166:17642:19;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;1166:17642:19;;;;;;;;;;;;;;;;-1:-1:-1;;1166:17642:19;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1166:17642:19;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;13629:152;13547:13;1166:17642;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;13547:13;:::i;:::-;13598:12;;;:::i;:::-;13629:152;:::i;:::-;1166:17642;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;17585:17:18;;;17640:7;;;;;:::i;:::-;17681:21;;;:::i;:::-;1166:17642:19;17658:20:18;;1166:17642:19;-1:-1:-1;;;;;17781:17:18;17739:28;;9423:20;9206:28;;;1166:17642:19;9237:20:18;;;1166:17642:19;2318:4:18;9276:37;;;1166:17642:19;2318:4:18;9316:31;;;1166:17642:19;2318:4:18;9350:26;;;1166:17642:19;2318:4:18;9423:20;;1166:17642:19;;9044:416:18;;17739:28;17781:17;;1166:17642:19;;17777:188:18;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;;;;17777:188:18;17881:73;;;;:::i;:::-;17828:126;;17777:188;;;;;;1166:17642:19;;-1:-1:-1;;1166:17642:19;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;1166:17642:19;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1166:17642:19;;:::i;:::-;;;-1:-1:-1;1166:17642:19;507:19:1;1166:17642:19;;507:32:1;1166:17642:19;;-1:-1:-1;1166:17642:19;;-1:-1:-1;;;;;1166:17642:19;;;;;;;;;;507:32:1;1166:17642:19;;;;;;;-1:-1:-1;;1166:17642:19;507:55:1;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;1166:17642:19;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;-1:-1:-1;1166:17642:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6750:27;;;;;:::i;:::-;6791:8;;6787:175;;1166:17642;6787:175;1166:17642;;6819:22;;;6815:36;;6865:87;;;1166:17642;;;;;;-1:-1:-1;;1166:17642:19;;;;-1:-1:-1;;;;;1166:17642:19;;;;;:::i;:::-;-1:-1:-1;1166:17642:19;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1166:17642:19;-1:-1:-1;1166:17642:19;;;;-1:-1:-1;1166:17642:19;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1166:17642:19;;;;-1:-1:-1;;;;;1166:17642:19;;;;;:::i;:::-;;-1:-1:-1;1166:17642:19;-1:-1:-1;1166:17642:19;;;;-1:-1:-1;1166:17642:19;;;;;;;;;;-1:-1:-1;;1166:17642:19;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;4905:49:18;1166:17642:19;;-1:-1:-1;;;4905:49:18;;1166:17642:19;;4905:49:18;;1166:17642:19;;;;;;;;;;;-1:-1:-1;;;1166:17642:19;;;;4905:49:18;1166:17642:19;;;;;;-1:-1:-1;;1166:17642:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;4905:49:18;1166:17642:19;;-1:-1:-1;;;4905:49:18;;1166:17642:19;;4905:49:18;;1166:17642:19;;;;;;;;;;;-1:-1:-1;;;1166:17642:19;;;;4905:49:18;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1166:17642:19;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;-1:-1:-1;1166:17642:19;2702:7:14;1166:17642:19;;2702:18:14;2698:86;;1166:17642:19;;2702:7:14;1166:17642:19;;;;:::i;:::-;16081:2;;;:::i;:::-;16205:40;;;;:::i;:::-;3132:1039:18;;3372:9;3439:20;;;1166:17642:19;3510:15:18;;3439:20;3510:15;;;;:::i;:::-;3539:16;;;3569:144;;;;;1166:17642:19;;;-1:-1:-1;;;3730:51:18;3743:38;;3885:17;3961:53;3885:17;;3830:74;3885:17;;;1166:17642:19;;3830:74:18;1166:17642:19;;3830:74:18;;;-1:-1:-1;;;3885:17:18;3830:74;;;;;;;:::i;:::-;;1166:17642:19;;3830:74:18;;;;;;:::i;:::-;3961:53;:::i;:::-;3922:92;;3726:429;;16346:18:19;16374:25;3439:20:18;1166:17642:19;-1:-1:-1;;;;;1166:17642:19;;16409:110;;3726:429:18;16565:15:19;;;;;16536:270;16565:15;;;1166:17642;;;;:::i;:::-;;;;16536:270;;;1166:17642;16536:270;;;1166:17642;3439:20:18;16536:270:19;;1166:17642;16565:15;16536:270;;1166:17642;16536:270;;;1166:17642;;;16536:270;;;1166:17642;;16536:270;;;;1166:17642;2531:1:14;305::0;3068:21:14;1166:17642:19;2888:208:14;2531:1;1166:17642:19;;;;;;;:::i;16409:110::-;16536:270;16481:27;;;;;;;;;;;;;;;;16565:15;16481:27;;:::i;:::-;16449:59;16409:110;;;;;;;3726:429:18;1166:17642:19;;;4092:48:18;1166:17642:19;;;;:::i;4092:48:18:-;4053:87;;3726:429;;;3569:144;-1:-1:-1;3569:144:18;;;;2698:86:14;2743:30;;-1:-1:-1;;;2743:30:14;;;1166:17642:19;;;;;;-1:-1:-1;;1166:17642:19;;;;;;;;;;;;;10849:38:18;1166:17642:19;;;;;;:::i;:::-;;;;10849:38:18;;;;;-1:-1:-1;;;10849:38:18;;1166:17642:19;10849:38:18;;;:::i;:::-;;1875:14;-1:-1:-1;;;;;;1875:14:18;1166:17642:19;10849:38:18;;;;;;-1:-1:-1;;;;;10849:38:18;-1:-1:-1;10849:38:18;;;1166:17642:19;10904:27:18;;-1:-1:-1;10904:27:18;1166:17642:19;;;;-1:-1:-1;10904:27:18;10849:38;;;;1166:17642:19;10849:38:18;1166:17642:19;10849:38:18;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;1166:17642:19:-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;-1:-1:-1;;1166:17642:19;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;-1:-1:-1;6388:24:19;;;;;;1166:17642;6563:32;;;:::i;:::-;1166:17642;;;;;;;:::i;6414:3::-;6452:16;6433:36;6452:16;1166:17642;6452:16;;;;:::i;:::-;6433:36;:::i;:::-;;1166:17642;6373:13;;1166:17642;;;;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;1166:17642:19;;-1:-1:-1;17089:24:19;;;;;;1166:17642;15982:22;1166:17642;;;;;;;;:::i;:::-;-1:-1:-1;1166:17642:19;;;;:::i;:::-;15982:22;:::i;17115:3::-;17151:16;15982:22;17151:16;1166:17642;17151:16;;;;:::i;:::-;1166:17642;;;;;;;:::i;15982:22::-;;1166:17642;17074:13;;1166:17642;;;-1:-1:-1;;1166:17642:19;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;1166:17642:19;;;;3248:10:3;1166:17642:19;;;;;3277:20:3;1166:17642:19;;;3277:20:3;1166:17642:19;;;;;;;3277:25:3;1166:17642:19;;3400:46:3;;1166:17642:19;;3327:41:3;1166:17642:19;3498:19:3;1166:17642:19;;;;;;3327:41:3;:::i;:::-;1166:17642:19;;;;;;3400:46:3;1166:17642:19;3407:15:3;1166:17642:19;3400:46:3;:::i;:::-;1166:17642:19;;;;-1:-1:-1;;;1166:17642:19;;;;;;;;;;3498:19:3;1166:17642:19;;;;;;;;3248:10:3;;3532:39;;1166:17642:19;;;;3532:39:3;1166:17642:19;;;;;-1:-1:-1;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1166:17642:19;;;;4419:44:3;-1:-1:-1;1166:17642:19;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3934:10:3;3888:20;3897:10;-1:-1:-1;;;;;1166:17642:19;2419:8:3;1166:17642:19;2419:8:3;1166:17642:19;;;2419:8:3;1166:17642:19;;;3888:20:3;3934:10;1166:17642:19;4264:14:3;1166:17642:19;;;4079:110:3;1166:17642:19;;3918:26:3;1166:17642:19;;-1:-1:-1;;;;;1166:17642:19;;;;;;;-1:-1:-1;;;;;1166:17642:19;;;3918:26:3;3962:9;3954:42;3962:9;;;3954:42;:::i;:::-;1166:17642:19;;;;;;;;4006:63:3;4014:21;;;4006:63;:::i;:::-;4121:15;-1:-1:-1;4100:36:3;4079:110;:::i;:::-;1166:17642:19;;;;;;;4264:14:3;1166:17642:19;;;-1:-1:-1;;;;;1166:17642:19;;;;;;;;;;3897:10:3;;4293:50;;;1166:17642:19;4371:38:3;;;;:::i;:::-;;4419:44;:::i;1166:17642:19:-;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;1166:17642:19;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;18662:9:18;;18711:17;;18766:7;;;;;:::i;:::-;18807:21;;;:::i;:::-;18784:20;;;1166:17642:19;;19023:28:18;;1166:17642:19;19084:26:18;19318:70;1166:17642:19;19084:26:18;;;;1166:17642:19;19084:49:18;19136:20;;;1166:17642:19;19084:72:18;19171:37;;;1166:17642:19;19084:124:18;19211:31;;;1166:17642:19;19084:158:18;19245:20;;;1166:17642:19;19084:181:18;19280:28;;;1166:17642:19;19084:224:18;19326:33;;19318:70;:::i;:::-;19425:28;;9423:20;9206:28;;;1166:17642:19;9237:20:18;;;1166:17642:19;2318:4:18;9276:37;;;1166:17642:19;2318:4:18;9316:31;;;1166:17642:19;2318:4:18;9350:26;;;1166:17642:19;2318:4:18;9423:20;;1166:17642:19;;9044:416:18;;19425:28;19480:93;;;;;;;;:::i;:::-;1166:17642:19;19588:55:18;19589:54;1166:17642:19;;;-1:-1:-1;;;;;1166:17642:19;;;;18784:20:18;19629:13;;1166:17642:19;19589:54:18;;:::i;:::-;19588:55;;1166:17642:19;19588:55:18;19584:140;;19771:9;2318:4;;19762:41;19758:138;;19136:20;19969:9;-1:-1:-1;;;;;1166:17642:19;19992:17:18;19969:9;19992:17;;1166:17642:19;-1:-1:-1;;;;;1166:17642:19;;;;;19992:31:18;;:62;;;;1166:17642:19;19988:219:18;;;1166:17642:19;20240:17:18;;19171:37;20480:32;20240:17;19211:31;20481:24;20240:17;1166:17642:19;20240:17:18;;20479:40;20240:17;1166:17642:19;20240:17:18;;1166:17642:19;19136:20:18;20289:23;;1166:17642:19;20390:9:18;2318:4;;20402:25;;1166:17642:19;2318:4:18;20360:18;;1166:17642:19;20496:9:18;20481:24;;:::i;:::-;20480:32;:::i;:::-;20516:3;1166:17642:19;;;;20479:40:18;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;19988:219:18;20123:73;;;1166:17642:19;20123:73:18;;;;19211:31;20481:24;20123:73;;;;20479:40;20123:73;20480:32;20123:73;19171:37;20123:73;;:::i;:::-;20070:126;;19988:219;;;;;;;;;;;;;19992:62;;;;;;19758:138;1166:17642:19;;;-1:-1:-1;;;19830:51:18;;1166:17642:19;19830:51:18;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;19830:51:18;;;;19584:140;19666:47;1166:17642:19;;;19666:47:18;;;-1:-1:-1;;;19666:47:18;;1166:17642:19;19666:47:18;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1166:17642:19;;;;-1:-1:-1;;;;;1166:17642:19;;;;;:::i;:::-;;-1:-1:-1;1166:17642:19;-1:-1:-1;1166:17642:19;;;;-1:-1:-1;1166:17642:19;507:47:3;1166:17642:19;;507:47:3;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17642:19;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1166:17642:19;;;;;;;;;;10709:5;1166:17642;;;;;;;:::o;:::-;;:::i;:::-;;11627:1;1166:17642;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17642:19;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1166:17642:19;;;;;;;:::o;6256:1160:18:-;;;;;6498:14;;6546:20;;;;1166:17642:19;;;6954:19:18;;6950:290;;6256:1160;7303:9;;;;;2318:4;;7315:15;;;1166:17642:19;2318:4:18;7351:48;-1:-1:-1;7351:48:18;21340:31;21400:9;21508:14;;21555:26;;;;:::i;:::-;21616:17;1166:17642:19;21616:17:18;;;1166:17642:19;-1:-1:-1;;;;;1166:17642:19;;;;-1:-1:-1;;;;;1166:17642:19;;;;21651:23:18;1166:17642:19;;;;;;;;;-1:-1:-1;;;;;1166:17642:19;;;;21647:1013:18;;22695:9;2318:4;;;22827:20;22850:31;22827:20;;;1166:17642:19;22850:31:18;;1166:17642:19;2318:4:18;22938:15;;;;1166:17642:19;;;2318:4:18;;23091:36;;;;23087:274;;21647:1013;1166:17642:19;;;;23457:14:18;;;;1166:17642:19;;;23489:23:18;;;23485:880;23489:23;;;1166:17642:19;;;24028:9:18;1166:17642:19;;;;6498:14:18;1166:17642:19;:::i;:::-;23827:9:18;2318:4;;1166:17642:19;;2318:4:18;1166:17642:19;;23946:6:18;;;;;:::i;:::-;24028:9;:::i;:::-;7344:55;6256:1160;:::o;23485:880::-;24340:9;2318:4;;;;;;;;24226:41;2318:4;;24153:40;2318:4;;;24153:40;;:::i;:::-;;1166:17642:19;6498:14:18;1166:17642:19;:::i;:::-;24340:9:18;:::i;23087:274::-;2318:4;;;20516:3;2318:4;;;2371:2;1166:17642:19;;2318:4:18;23087:274;;;;;21647:1013;21763:25;;1166:17642:19;;21806:840:18;;21647:1013;;;;;;21806:840;1166:17642:19;;;;;;;;:::i;:::-;22009:9:18;22082:31;;;;1166:17642:19;22048:160:18;;;;;;1166:17642:19;;;;;;;;;;22048:160:18;1166:17642:19;;22048:160:18;;;;;;;1166:17642:19;22048:160:18;;1166:17642:19;22048:160:18;;;;;;:::i;:::-;;;;;;;;21806:840;-1:-1:-1;;22044:486:18;;22353:150;22432:41;;:::i;:::-;1166:17642:19;;22353:150:18;;;-1:-1:-1;;;22353:150:18;;22048:160;22353:150;;;:::i;22044:486::-;22596:9;2318:4;;21806:840;;;;;;22048:160;;;;;;:::i;:::-;;;:::i;:::-;;;;;;1166:17642:19;;;6950:290:18;-1:-1:-1;1166:17642:19;;;378:118:13;-1:-1:-1;;;;;1166:17642:19;;;;378:118:13;;;;7074:8:18;7070:160;;6950:290;;;;;;7070:160;2318:4;7124:41;;:::i;:::-;1166:17642:19;;7190:25:18;;;;;;378:118:13;7190:25:18;;;2318:4;;;;;;:::i;1166:17642:19:-;-1:-1:-1;;1166:17642:19;;;;;;;;:::o;:::-;-1:-1:-1;;1166:17642:19;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1166:17642:19;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1166:17642:19;;;;:::o;:::-;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1166:17642:19;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1166:17642:19;;;;;;;:::i;:::-;-1:-1:-1;1166:17642:19;;-1:-1:-1;1166:17642:19;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;7454:180:18:-;1938:12:4;;;1166:17642:19;2342:180:4;1998:15;;;;;;:::i;:::-;2961:193:0;;1998:15:4;2961:193:0;;;;;2062:15:4;2342:180;2062:15;;;;;;:::i;:::-;2961:193:0;;1998:15:4;2961:193:0;;;;;2230:14:4;;;1166:17642:19;2177:25:4;;;1166:17642:19;2115:23:4;;;1166:17642:19;2285:39:4;2300:23;;;;2115;2300;:::i;:::-;2285:39;;:::i;:::-;1166:17642:19;1998:15:4;1166:17642:19;2342:180:4;;;-1:-1:-1;;;;;1938:12:4;2342:180;;823:61;;1166:17642:19;2342:180:4;1166:17642:19;;;;;;;;;;;;-1:-1:-1;;;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2342:180:4;1166:17642:19;4962:25:4;;1998:15;1166:17642:19;;1938:12:4;7571:55:18;;1166:17642:19;;;7605:4:18;1166:17642:19;;;;;;;7612:13:18;1166:17642:19;;;;7571:55:18;1166:17642:19;;;;7571:55:18;1166:17642:19;7571:55:18;1166:17642:19;7561:66:18;;7454:180;:::o;1166:17642:19:-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1166:17642:19;;-1:-1:-1;1166:17642:19;;;;-1:-1:-1;1166:17642:19;;;;-1:-1:-1;1166:17642:19;;;;-1:-1:-1;1166:17642:19;;;;-1:-1:-1;1166:17642:19;;;;-1:-1:-1;1166:17642:19;;;;;;:::o;2466:103:14:-;;;;2702:7;1166:17642:19;;2702:18:14;2698:86;;2702:7;1166:17642:19;;16565:15;1166:17642;;:::i;:::-;16081:2;;;;:::i;:::-;16205:40;;;;:::i;:::-;3132:1039:18;1166:17642:19;3132:1039:18;;;;3372:9;3439:20;;;;;1166:17642:19;3510:15:18;;3439:20;3510:15;;;;:::i;:::-;3539:16;3569:144;;;;;2466:103:14;1166:17642:19;;-1:-1:-1;;;3730:51:18;3743:38;;3885:17;3961:53;3885:17;;3830:74;3885:17;;;1166:17642:19;;3830:74:18;1166:17642:19;;3830:74:18;;;-1:-1:-1;;;3885:17:18;3830:74;;;;;;;:::i;3961:53::-;3922:92;;3726:429;;16565:15:19;1166:17642;;;;:::i;:::-;;;;16536:270;;;1166:17642;16536:270;;;1166:17642;3439:20:18;16536:270:19;;1166:17642;16565:15;16536:270;;1166:17642;16536:270;;;1166:17642;-1:-1:-1;16536:270:19;;;1166:17642;3439:20:18;16536:270:19;;;1166:17642;2531:1:14;;305::0;3068:21:14;1166:17642:19;2888:208:14;3726:429:18;1166:17642:19;;;4092:48:18;1166:17642:19;;;;:::i;4092:48:18:-;4053:87;;3726:429;;;3569:144;-1:-1:-1;3569:144:18;;;;2698:86:14;-1:-1:-1;;;1166:17642:19;2743:30:14;;1166:17642:19;2743:30:14;1166:17642:19;;;;;;;:::i;:::-;-1:-1:-1;1166:17642:19;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1166:17642:19;;;;;;;;-1:-1:-1;;1166:17642:19;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;14986:1;1166:17642;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;14562:1165::-;;;;;;;;1166:17642;;:::i;:::-;14954:21;;;;;;;:::i;:::-;:33;;;14950:286;;15576:144;15267:13;;;;:::i;:::-;15518:40;1166:17642;;:::i;:::-;15505:2;;;:::i;:::-;15518:40;;:::i;:::-;15576:144;;;;:::i;14950:286::-;15124:12;;;;;;;;;:::i;:::-;1166:17642;;;;;;:::i;:::-;14986:1;1166:17642;;14986:1;15094:43;;;1166:17642;;15094:43;;1166:17642;;;;;;:::i;:::-;14986:1;1166:17642;;14986:1;15094:43;15155:29;;1166:17642;14986:1;1166:17642;15155:29;;1166:17642;;;;;;;:::i;:::-;-1:-1:-1;1166:17642:19;;15094:43;15010:215;;1166:17642;;15010:215;;1166:17642;15003:222;:::o;1166:17642::-;;;;;;;:::i;:::-;-1:-1:-1;1166:17642:19;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;1166:17642:19;;-1:-1:-1;1166:17642:19;;;;-1:-1:-1;1166:17642:19;;;;-1:-1:-1;1166:17642:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1166:17642:19;;;;:::i;:::-;;;;;;;:::o;:::-;-1:-1:-1;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;1935:179:3:-;2077:30;1166:17642:19;-1:-1:-1;;;;;2025:37:3;2052:9;2025:37;;:::i;:::-;1166:17642:19;;;;;;;2077:30:3;;1935:179::o;1166:17642:19:-;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;2635:2;1166:17642;;;;2635:2;1166:17642;:::o;:::-;;;;;;490:2:4;1166:17642:19;;;;;;;490:2:4;1166:17642:19;;-1:-1:-1;;1166:17642:19;;:::o;:::-;;-1:-1:-1;;1166:17642:19;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;1166:17642:19;;;;;;;;;;;;;-1:-1:-1;1166:17642:19:o;:::-;;;;;;;:::i;:::-;3116:14;1166:17642;-1:-1:-1;;;;;1166:17642:19;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;1826:1620::-;1166:17642;;:::i;:::-;;;;:::i;:::-;2007:6;;;;:::i;:::-;2160:47;;;;:::i;:::-;2218:98;;;;;;;;:::i;:::-;2360:42;1166:17642;2374:27;:17;;:27;1166:17642;-1:-1:-1;;;;;1166:17642:19;;;;2360:42;:::i;:::-;2456:17;2569:15;2442:39;2456:24;:17;;-1:-1:-1;;;;;1166:17642:19;;;;;2442:39;1166:17642;;;:::i;:::-;;2569:15;;;;;:::i;:::-;2616:69;2635:2;2616:21;;2635:2;;2648:23;2656:14;2713:22;2656:14;2640:32;2656:14;;:::i;:::-;2648:23;;:::i;:::-;1166:17642;;;;2713:22;1166:17642;-1:-1:-1;;;;;1166:17642:19;;2874:18;;;;1166:17642;2906:17;3027:23;2569:15;2906:17;;1166:17642;3027:23;;1166:17642;;;;:::i;:::-;;;;2850:211;;;1166:17642;2569:15;2850:211;;1166:17642;3027:23;2850:211;;1166:17642;2874:18;2850:211;;1166:17642;;;:::i;:::-;3144:45;;;;:93;;;2616:69;3140:199;;2616:69;1166:17642;;;:::i;:::-;;;;2850:211;3355:84;;1166:17642;2569:15;3355:84;;1166:17642;3027:23;3355:84;;1166:17642;2874:18;3355:84;;1166:17642;1826:1620;:::o;3140:199::-;3302:25;;;;;;:::i;:::-;3270:58;1166:17642;;:::i;:::-;-1:-1:-1;;;;;1166:17642:19;;;;;;3270:58;2850:211;3270:58;;1166:17642;3140:199;;;;3144:93;3193:44;2202:4;3193:44;;;3144:93;;2616:69;;;2713:22;-1:-1:-1;2713:22:19;:::i;1166:17642::-;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;20509:3:18;1166:17642:19;;;;;;20509:3:18;1166:17642:19;;;;;;;:::o;18339:2187:18:-;;;-1:-1:-1;18662:9:18;;18711:17;;;18766:7;;;;;:::i;:::-;18807:21;;;:::i;:::-;18784:20;;;1166:17642:19;19023:28:18;;;1166:17642:19;19084:26:18;19318:70;1166:17642:19;19084:26:18;;;;1166:17642:19;19084:49:18;19136:20;;;1166:17642:19;19084:72:18;19171:37;;;1166:17642:19;19084:124:18;19211:31;;;1166:17642:19;19084:158:18;19245:20;;;1166:17642:19;19084:181:18;19280:28;;;1166:17642:19;19084:224:18;19326:33;;19318:70;:::i;:::-;19425:28;;9423:20;9206:28;;;1166:17642:19;9237:20:18;;;1166:17642:19;2318:4:18;9276:37;;;1166:17642:19;2318:4:18;9316:31;;;1166:17642:19;2318:4:18;9350:26;;;1166:17642:19;2318:4:18;9423:20;;1166:17642:19;;9044:416:18;;19425:28;19480:93;;;;;-1:-1:-1;19480:93:18;:::i;:::-;1166:17642:19;19588:55:18;19589:54;1166:17642:19;;;-1:-1:-1;;;;;1166:17642:19;;;;18784:20:18;19629:13;;1166:17642:19;19589:54:18;;:::i;19588:55::-;19584:140;;19771:9;2318:4;;19762:41;19758:138;;19136:20;19969:9;-1:-1:-1;;;;;1166:17642:19;19992:17:18;19969:9;19992:17;;1166:17642:19;-1:-1:-1;;;;;1166:17642:19;;;;;19992:31:18;;:62;;;18339:2187;19988:219;;18339:2187;20481:24;20240:17;19211:31;20479:40;20240:17;;;;19171:37;20240:17;19023:28;20480:32;20240:17;;1166:17642:19;19136:20:18;20289:23;;1166:17642:19;20390:9:18;2318:4;;20402:25;;1166:17642:19;2318:4:18;20360:18;;1166:17642:19;20496:9:18;20481:24;;:::i;19988:219::-;20123:73;;;;;19171:37;20123:73;19211:31;20479:40;20123:73;;;20480:32;20123:73;20481:24;20123:73;-1:-1:-1;20123:73:18;:::i;:::-;20070:126;;19988:219;;;;;;;;;;;;;19992:62;;16240:4:19;19992:62:18;;19758:138;19023:28;1166:17642:19;-1:-1:-1;;;19830:51:18;;;;-1:-1:-1;19830:51:18;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;19584:140:18;19023:28;1166:17642:19;-1:-1:-1;;;19666:47:18;;;;-1:-1:-1;19666:47:18;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;11899:1264;;;;;;;;1166:17642;;:::i;:::-;12313:29;12352:2;12313:29;;;;;;:::i;:::-;:41;;;12309:294;;12935:221;1166:17642;12853:13;1166:17642;12716:70;1166:17642;;:::i;:::-;12686:19;;;;;:::i;:::-;12776:9;12716:70;;;:::i;12853:13::-;12904:12;;;:::i;:::-;12935:221;:::i;12309:294::-;12491:12;;;;;;;;;:::i;:::-;1166:17642;;;;;;:::i;:::-;12413:30;1166:17642;;12413:30;12461:43;;;1166:17642;;12461:43;;1166:17642;;;:::i;:::-;12413:30;1166:17642;;12413:30;12461:43;12522:29;;1166:17642;12413:30;1166:17642;12522:29;;1166:17642;;;:::i;:::-;;-1:-1:-1;1166:17642:19;;12461:43;12377:215;;1166:17642;;12377:215;;1166:17642;12370:222;:::o;1166:17642::-;;;-1:-1:-1;;;;;1166:17642:19;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;7062:751::-;;;1166:17642;7189:19;-1:-1:-1;;;;;1166:17642:19;;;7228:92;;;;;;;1166:17642;;;;;;7228:92;;;;;;1166:17642;7228:92;;-1:-1:-1;;;;;7297:12:19;1166:17642;7228:92;;;;:::i;:::-;;;;;;;;7062:751;-1:-1:-1;7224:583:19;;7332:475;;;;:::i;:::-;1166:17642;7228:92;1166:17642;;7378:17;7374:164;;7578:28;7588:17;1166:17642;;7588:17;:::i;:::-;7578:28;:::i;:::-;7228:92;7659:3;1166:17642;;7640:17;;;;;7702:9;;;1166:17642;7702:9;;;:::i;:::-;1166:17642;;;;;7702:9;7682:29;7693:5;;;:::i;:::-;7682:29;1166:17642;7682:29;;;;:::i;:::-;;1166:17642;7625:13;;7640:17;;7759:37;7640:17;;;7759:37;1166:17642;;;7759:37;;;;;;:::i;:::-;7739:57;7224:583;7062:751::o;7374:164::-;7510:12;;;;:::i;:::-;1166:17642;;7495:28::o;7228:92::-;;;1166:17642;7228:92;;;:::i;:::-;;;;1279:65:3;1326:10;;;:::i;1107:452:13:-;1204:349;2318:4:18;1204:349:13;;;;1107:452;1204:349;;;;;;;;;;;;;;;;;;1107:452;:::o;1204:349::-;;2318:4:18;1204:349:13;;1166:17642:19;;-1:-1:-1;1166:17642:19;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7819:790::-;8018:1;8021:24;;;;;;7819:790;;;:::o;8047:3::-;1166:17642;;;;:::i;:::-;8142:16;;;;;:::i;:::-;8199:6;;;:::i;:::-;8220:44;;;;:::i;:::-;8339:15;;;;;;;;;:::i;:::-;:27;;;8335:74;;8503:48;8018:1;8533:17;;;;;;1166:17642;8503:48;;:::i;:::-;8565:27;;8533:17;8565:27;;;;;;;;;;:::i;:::-;;8006:13;1166:17642;8006:13;;8335:74;8386:8;;;;1166:17642;;;;;:::i;17336:332::-;17474:84;17336:332;17502:15;;;;;;:::i;:::-;1166:17642;17534:23;1166:17642;;;;;;:::i;:::-;17534:23;;;;;:::i;:::-;17474:84;;;;:::i;:::-;1166:17642;;17568:94;;17336:332;:::o;17568:94::-;1166:17642;;17502:15;1166:17642;17626:25;;;-1:-1:-1;;;17626:25:19;;-1:-1:-1;17626:25:19;;;1166:17642;17502:15;1166:17642;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1166:17642:19;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;8615:3278::-;;;;1166:17642;;:::i;:::-;-1:-1:-1;;;9001:17:19;;;;9265:57;1166:17642;;;;:::i;:::-;;9209:9;-1:-1:-1;9162:57:19;9209:9;9162:57;13663:37;9162:57;:::i;:::-;9312:9;1166:17642;;;9265:57;;;;;-1:-1:-1;;;9265:57:19;;;;;;;:::i;:::-;;:12;;-1:-1:-1;;;;;9265:12:19;1166:17642;9265:57;;;;;;;-1:-1:-1;;;9265:57:19;;;8997:1483;9233:89;;;;9402:14;;;9398:299;;8997:1483;;10507:21;8997:1483;;;;;;;10507:21;;:::i;:::-;10538:27;-1:-1:-1;;;;;11203:12:19;1166:17642;10576:1077;;10584:15;;;;;:::i;:::-;10583:35;;;10688:9;10700:14;;;:::i;:::-;-1:-1:-1;10684:323:19;;11039:15;;;;;;;;-1:-1:-1;11039:15:19;;11097:54;11038:21;11039:15;;11203:57;11039:15;;:::i;:::-;1166:17642;;;;11038:21;11097:54;;13663:37;11097:54;:::i;:::-;11250:9;;1166:17642;;;11203:57;;;;;;;-1:-1:-1;;;11203:57:19;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;11203:57:19;;;10576:1077;-1:-1:-1;11275:368:19;;;11402:19;;;11448:10;11402:19;11448:10;:::i;:::-;11476:21;11275:368;;10576:1077;;;;;;;;;11275:368;11618:10;;;;;;;;;:::i;:::-;11275:368;;;11203:57;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;10684:323;10864:12;;;;;;;;;;;;:::i;:::-;1166:17642;;;:::i;:::-;;-1:-1:-1;1166:17642:19;;-1:-1:-1;10834:43:19;;;1166:17642;;10834:43;;1166:17642;;;:::i;:::-;;;;10834:43;10926:48;;1166:17642;;10926:48;;1166:17642;;;:::i;:::-;10781:31;1166:17642;;10741:251;10834:43;10741:251;;1166:17642;;10741:251;;1166:17642;10734:258;:::o;10583:35::-;;;;;;;;;;11746:60;10583:35;;1166:17642;;:::i;:::-;;;;;;11746:60;;;1166:17642;;11746:60;1166:17642;11746:60;;1166:17642;;;:::i;9398:299::-;1166:17642;;;;;;;;;;9535:51;1166:17642;;:::i;:::-;-1:-1:-1;1166:17642:19;;;;;9535:51;;;1166:17642;;9265:57;;;;;;;;;;;;;;;:::i;:::-;;;;;;8997:1483;9842:9;9991:57;9842:9;;9935;;9888:57;9935:9;9888:57;13663:37;9888:57;:::i;:::-;10038:9;1166:17642;;;9991:57;;;;;-1:-1:-1;;;9991:57:19;;;;;;;:::i;:::-;;:12;;-1:-1:-1;;;;;9991:12:19;1166:17642;9991:57;;;;;;;;-1:-1:-1;9991:57:19;;;8997:1483;9959:89;;;;10071:24;9959:89;10086:9;;10071:24;;:::i;:::-;10175:14;;;10171:299;;8997:1483;;10507:21;8997:1483;;;;;;;;9991:57;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;8615:3278;;;;1166:17642;;:::i;:::-;-1:-1:-1;;;9001:17:19;;;;9265:57;1166:17642;;;;:::i;:::-;;9209:9;-1:-1:-1;9162:57:19;9209:9;9162:57;15553:4;9162:57;:::i;9265:::-;;:12;;-1:-1:-1;;;;;9265:12:19;1166:17642;9265:57;;;;;;;-1:-1:-1;;;9265:57:19;;;8997:1483;9233:89;;;;9402:14;;;9398:299;;8997:1483;;10507:21;8997:1483;;;;;;10507:21;;:::i;:::-;10538:27;-1:-1:-1;;;;;11203:12:19;1166:17642;10576:1077;;10584:15;;;;;:::i;:::-;10583:35;;;10688:9;10700:14;;;:::i;:::-;-1:-1:-1;10684:323:19;;11039:15;;;;;;;;-1:-1:-1;11039:15:19;;11097:54;11038:21;11039:15;;11203:57;11039:15;;:::i;11038:21::-;11097:54;;15553:4;11097:54;:::i;11203:57::-;;;;;;;;;;-1:-1:-1;;;11203:57:19;;;10576:1077;-1:-1:-1;11275:368:19;;;11402:19;;;11448:10;11402:19;11448:10;:::i;:::-;11476:21;11275:368;;10576:1077;;;;;;;;;11275:368;11618:10;;;;;;;;;:::i;:::-;11275:368;;;11203:57;;;;;;;;;;;;;;;:::i;:::-;;;;;;9265;;;;;;;;;;;;;;;:::i;:::-;;;;;;8997:1483;9842:9;9991:57;9842:9;;9935;;9888:57;9935:9;9888:57;15553:4;9888:57;:::i;9991:::-;;:12;;-1:-1:-1;;;;;9991:12:19;1166:17642;9991:57;;;;;;;;-1:-1:-1;9991:57:19;;;8997:1483;9959:89;;;;10071:24;9959:89;10086:9;;10071:24;;:::i;:::-;10175:14;;;10171:299;;8997:1483;;10507:21;8997:1483;;;;;;;;9991:57;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;8615:3278;;;;1166:17642;;:::i;:::-;-1:-1:-1;;;9001:17:19;;;;9265:57;1166:17642;;;;:::i;:::-;;9209:9;-1:-1:-1;9162:57:19;9209:9;9162:57;12969:46;9162:57;:::i;9265:::-;;:12;;-1:-1:-1;;;;;9265:12:19;1166:17642;9265:57;;;;;;;-1:-1:-1;;;9265:57:19;;;8997:1483;9233:89;;;;9402:14;;;9398:299;;8997:1483;;10507:21;8997:1483;;;;;;10507:21;;:::i;:::-;10538:27;-1:-1:-1;;;;;11203:12:19;1166:17642;10576:1077;;10584:15;;;;;:::i;:::-;10583:35;;;10688:9;10700:14;;;:::i;:::-;-1:-1:-1;10684:323:19;;11039:15;;;;;;;;-1:-1:-1;11039:15:19;;11097:54;11038:21;11039:15;;11203:57;11039:15;;:::i;11038:21::-;11097:54;;12969:46;11097:54;:::i;11203:57::-;;;;;;;;;;-1:-1:-1;;;11203:57:19;;;10576:1077;-1:-1:-1;11275:368:19;;;11402:19;;;11448:10;11402:19;11448:10;:::i;:::-;11476:21;11275:368;;10576:1077;;;;;;;;;11275:368;11618:10;;;;;;;;;:::i;:::-;11275:368;;;11203:57;;;;;;;;;;;;;;;:::i;:::-;;;;;;9265;;;;;;;;;;;;;;;:::i;:::-;;;;;;8997:1483;9842:9;9991:57;9842:9;;9935;;9888:57;9935:9;9888:57;12969:46;9888:57;:::i;9991:::-;;:12;;-1:-1:-1;;;;;9991:12:19;1166:17642;9991:57;;;;;;;;-1:-1:-1;9991:57:19;;;8997:1483;9959:89;;;;10071:24;9959:89;10086:9;;10071:24;;:::i;:::-;10175:14;;;10171:299;;8997:1483;;10507:21;8997:1483;;;;;;;;9991:57;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;490:2:4;;;;:::o;:::-;;1166:17642:19;;-1:-1:-1;;;490:2:4;;;;;;;;;;;1166:17642:19;490:2:4;1166:17642:19;;;490:2:4;;7824:1077:18;8346:23;7824:1077;7943:30;7960:13;;;:::i;:::-;-1:-1:-1;;;;;1166:17642:19;;;;7943:30:18;7999:12;;;1166:17642:19;7999:12:18;7983:13;;1166:17642:19;8076:53:18;8105:23;;;1166:17642:19;2535:183:4;1166:17642:19;;;;;;2535:183:4;;8076:53:18;8052:20;;;1166:17642:19;8022:28:18;;;1166:17642:19;8168:25:18;;;1166:17642:19;8139:26:18;;;1166:17642:19;8258:44:18;8139:26;8287:14;;1166:17642:19;2535:183:4;1166:17642:19;;;;;;2535:183:4;;8258:44:18;8234:20;;;1166:17642:19;8204:28:18;;;1166:17642:19;8346:23:18;;;;;:::i;:::-;8383:27;;;;;8657:62;8434:65;8346:23;8434:65;8426:107;490:2:4;8547:172:18;8434:65;;;;8426:107;:::i;:::-;8657:62;:::i;:::-;8168:25;8606:31;;1166:17642:19;8105:23:18;8567:37;;1166:17642:19;-1:-1:-1;;;;;1166:17642:19;8548:17:18;;1166:17642:19;;8379:516:18;8750:17;;8168:25;8750:17;-1:-1:-1;8346:23:18;8750:17;;;1166:17642:19;8794:37:18;8105:23;8794:37;;1166:17642:19;8849:31:18;1166:17642:19;7824:1077:18:o;1166:17642:19:-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13426:1447:18:-;;;;;13718:9;13771:14;;;13819:17;1166:17642:19;13819:17:18;;;1166:17642:19;-1:-1:-1;;;;;1166:17642:19;;;;13886:19:18;;;-1:-1:-1;;;;;1166:17642:19;2419:8:3;1166:17642:19;2419:8:3;1166:17642:19;;;2419:8:3;1166:17642:19;;;13886:19:18;1166:17642:19;;13976:25:18;;;13972:122;;-1:-1:-1;;;;;14354:17:18;14203:37;1166:17642:19;2318:4:18;;;;;14258:144;2318:4;;;;;1166:17642:19;;14203:37:18;1166:17642:19;14354:17:18;;1166:17642:19;;;;14258:144:18;;;;;;;1166:17642:19;14258:144:18;;;;;;:::i;:::-;;1166:17642:19;;14258:144:18;;;;1166:17642:19;;;14258:144:18;;;13426:1447;-1:-1:-1;14254:441:18;;14638:41;;;:::i;:::-;1166:17642:19;14593:87:18;1166:17642:19;;14593:87:18;;;-1:-1:-1;;;14593:87:18;;14258:144;14593:87;;;:::i;14254:441::-;14478:18;;;14721:9;2318:4;;14712:43;14708:149;;13426:1447;:::o;14708:149::-;1166:17642:19;;;-1:-1:-1;;;14782:60:18;;14258:144;14782:60;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;;19830:51:18;14258:144;;;;;;;;;1166:17642:19;14258:144:18;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;13972:122;14028:51;1166:17642:19;;;14028:51:18;;;-1:-1:-1;;;14028:51:18;;;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1559:259:3:-;-1:-1:-1;;;;;1166:17642:19;1683:8:3;1166:17642:19;1683:8:3;1166:17642:19;;;1683:8:3;1166:17642:19;;;;;;;;;;;;;;1559:259:3;:::o;15246:1187:18:-;15506:34;-1:-1:-1;;;;;15246:1187:18;15506:34;:::i;:::-;1166:17642:19;;15550:111:18;;15670:96;;16068:43;-1:-1:-1;;;;;16068:43:18;;:::i;:::-;1166:17642:19;;16121:105:18;;15246:1187::o;16121:105::-;1166:17642:19;;-1:-1:-1;;;16174:41:18;;;;-1:-1:-1;16174:41:18;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;15670:96:18;1166:17642:19;;-1:-1:-1;;;15711:44:18;;;;-1:-1:-1;15711:44:18;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;15550:111:18;15609:41;1166:17642:19;;-1:-1:-1;;;15609:41:18;;-1:-1:-1;15609:41:18;;;1166:17642:19;;;;;;;;;;;;;;;;15609:41:18;856:262:3;;-1:-1:-1;;;;;1166:17642:19;;:::i;:::-;;;997:8:3;1166:17642:19;997:8:3;1166:17642:19;;;1034:17:3;1166:17642:19;997:8:3;1166:17642:19;1034:17:3;1166:17642:19;-1:-1:-1;;;;;1166:17642:19;;;;;;;;;;1061:20:3;;1166:17642:19;856:262:3:o;1166:17642:19:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11363:1498:18:-;;;;12115:102;12178:17;-1:-1:-1;11594:22:18;11682:14;;1166:17642:19;;11840:17:18;1166:17642:19;;;-1:-1:-1;;;;;1166:17642:19;;;;11794:11:18;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;11840:17;1166:17642:19;-1:-1:-1;;;;;1166:17642:19;;;;11871:31:18;;-1:-1:-1;;;;;11871:31:18;1166:17642:19;;11920:23:18;11916:182;;;;11363:1498;12178:17;;1166:17642:19;;11794:11:18;1166:17642:19;12115:102:18;;;;;;;-1:-1:-1;;;12115:102:18;;;;;;:::i;:::-;;1166:17642:19;-1:-1:-1;;;;;1166:17642:19;;12115:102:18;;;;;;;11363:1498;-1:-1:-1;12111:352:18;;12406:41;;;:::i;:::-;1166:17642:19;12361:87:18;11794:11;1166:17642:19;12361:87:18;;;-1:-1:-1;;;12361:87:18;;12115:102;12361:87;;;:::i;12111:352::-;12282:32;;;12476:369;;11363:1498;;:::o;12476:369::-;12556:16;;-1:-1:-1;;;;;1166:17642:19;2419:8:3;1166:17642:19;2419:8:3;1166:17642:19;;;2419:8:3;1166:17642:19;;;12556:16:18;-1:-1:-1;;11363:1498:18:o;12115:102::-;;;;;12178:17;12115:102;12178:17;12115:102;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;11916:182;1241:17:3;;;;-1:-1:-1;;;;;1166:17642:19;2419:8:3;1166:17642:19;2419:8:3;1166:17642:19;;;2419:8:3;1166:17642:19;;;1241:17:3;1166:17642:19;12034:21:18;;;;:49;;;;11916:182;;;;;12034:49;2318:4;;;;12034:49;;11363:1498;;;;;;12178:17;12115:102;11363:1498;11682:14;;1166:17642:19;;11840:17:18;1166:17642:19;;;-1:-1:-1;;;;;1166:17642:19;;;;11794:11:18;;;;;;;;;;:::i;1166:17642:19:-;11871:31:18;-1:-1:-1;;;;;1166:17642:19;;;11920:23:18;11916:182;;;;11363:1498;12178:17;1166:17642:19;12178:17:18;;1166:17642:19;;11794:11:18;1166:17642:19;12115:102:18;;;;;;;-1:-1:-1;;;12115:102:18;;;;;;:::i;:::-;;1166:17642:19;-1:-1:-1;;;;;1166:17642:19;;12115:102:18;;1166:17642:19;;12115:102:18;;;11363:1498;-1:-1:-1;12111:352:18;;12406:41;;;:::i;12111:352::-;12282:32;;;12476:369;;11363:1498;;;:::o;12476:369::-;12556:16;;-1:-1:-1;;;;;1166:17642:19;2419:8:3;1166:17642:19;2419:8:3;1166:17642:19;;;2419:8:3;1166:17642:19;;;12556:16:18;1166:17642:19;;;12648:25:18;;;;12644:123;;2318:4;;1166:17642:19;;11363:1498:18:o;12644:123::-;11794:11;1166:17642:19;;-1:-1:-1;;;12704:44:18;;12115:102;12704:44;;1166:17642:19;;;;;;;;;;;;;;;;;;;;19830:51:18;12115:102;;;;;12178:17;12115:102;12178:17;12115:102;;;;;;;:::i;:::-;;;;;11916:182;1241:17:3;;;;-1:-1:-1;;;;;1166:17642:19;2419:8:3;1166:17642:19;2419:8:3;1166:17642:19;;;2419:8:3;1166:17642:19;;;1241:17:3;1166:17642:19;12034:21:18;;;;;;:49;1166:17642:19;12034:49:18;;;11916:182;;;;;;12034:49;2318:4;1166:17642:19;2318:4:18;;;12034:49;;1187:234:1;-1:-1:-1;;;;;1166:17642:19;-1:-1:-1;1166:17642:19;1373:19:1;1166:17642:19;;;1373:32:1;1166:17642:19;1317:2:1;1166:17642:19;1317:2:1;-1:-1:-1;1166:17642:19;;-1:-1:-1;;;;;1166:17642:19;;;;;;;;;;1373:32:1;1166:17642:19;;;1373:34:1;;;;:::i;:::-;1166:17642:19;;;1373:41:1;1187:234;:::o;24625:517:18:-;24835:28;24770:20;;;1166:17642:19;24835:28:18;;1166:17642:19;24881:36:18;;;24877:173;;25111:13;2318:4;3338:5:0;;;;;;:13;24625:517:18;:::o;3338:13:0:-;;;24625:517:18;:::o;24877:173::-;25016:19;;:::o;4177:410::-;;;;4343:237;1166:17642:19;4375:17:18;;;1166:17642:19;4406:14:18;;1166:17642:19;-1:-1:-1;;;;;1166:17642:19;;;4441:24:18;4375:17;-1:-1:-1;;;;;4441:24:18;;;1166:17642:19;;4479:20:18;;1166:17642:19;;;;;;;;4375:17:18;1166:17642:19;;;;;;;;;;;4343:237:18;4177:410::o;:::-;;1166:17642:19;4343:237:18;4177:410;4375:17;;;1166:17642:19;4406:14:18;;1166:17642:19;-1:-1:-1;;;;;1166:17642:19;;;4441:24:18;4375:17;-1:-1:-1;;;;;4441:24:18;;;1166:17642:19;;4479:20:18;;1166:17642:19;;;;;;;;;4375:17:18;1166:17642:19;;;;;;;;;;;4343:237:18;4177:410::o;4593:182::-;4705:17;;;1166:17642:19;4724:14:18;;1166:17642:19;4678:90:18;4705:17;1166:17642:19;-1:-1:-1;;;;;1166:17642:19;;;4747:20:18;;1166:17642:19;;;;;;4678:90:18;4593:182::o;3532:737:19:-;;;1166:17642;;;;;:::i;:::-;3784:15;1166:17642;3784:15;;-1:-1:-1;;;1166:17642:19;3784:15;;;;:::i;:::-;3851:16;3877:148;1166:17642;3877:148;;;;3532:737;-1:-1:-1;1166:17642:19;4038:51;4051:38;;1166:17642;4122:67;1166:17642;4122:67;1166:17642;;4122:67;;;-1:-1:-1;;;4122:67:19;;;;;;;;:::i;4034:229::-;1166:17642;4237:15;;;;;:::i;:::-;1166:17642;;;:::i;3877:148::-;;;;;;;18065:741;;;;;18256:20;:47;;;;18065:741;18252:183;;;18475:2;18448:29;;;18444:310;;18065:741;1166:17642;;;;:::i;18444:310::-;18475:2;1166:17642;;;;;;18571:21;:26;18567:177;;18444:310;;;;18567:177;1166:17642;;;;;;:::i;:::-;;;;;;;;;18691:38;:::o;18252:183::-;1166:17642;;;;;;;;:::i;:::-;;;;;;;;;18388:36;:::o;18256:47::-;18280:18;;;:23;18256:47;;;1166:17642;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;-1:-1:-1;1166:17642:19;;;:::o;:::-;;;-1:-1:-1;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;-1:-1:-1;;;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;1166:17642:19;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;:::o;:::-;;;;;-1:-1:-1;1166:17642:19;;;;;;;;;;;;;;;;;:::i;4275:1833::-;;1166:17642;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;4566:46;4558:54;;4554:837;;1166:17642;;;:::i;:::-;5413:37;5405:45;;5401:379;;1166:17642;;;5802:29;1166:17642;;:::i;:::-;5794:37;5790:279;;1166:17642;;-1:-1:-1;;;6079:22:19;;1166:17642;6079:22;;;1166:17642;;;;;;;;;;;;;19830:51:18;5790:279:19;5895:54;5970:88;5931:17;;5970:88;5931:17;;1166:17642;5895:54;;:::i;:::-;1166:17642;;;;;5970:88;;;1166:17642;5931:17;5970:88;;;;;;;:::i;5401:379::-;3718:23:4;;;1166:17642:19;5572:19;3705:37:4;3718:23;5690:79:19;3718:23:4;;1166:17642:19;;;2959:118:4;;3705:37;5572:19:19;1166:17642;;;;5572:19;1166:17642;;5571:45;3718:23:4;5631:19:19;;1166:17642;5690:79;1166:17642;;5690:79;;;1166:17642;5690:79;;;;;;;;:::i;4554:837::-;4736:29;5302:78;4736:29;;-1:-1:-1;;4736:29:19;5181:99;4736:29;5302:78;4736:29;;5181:99;4691:75;4736:29;;;;:::i;:::-;4691:75;;:::i;:::-;4815:26;;;;1166:17642;4859:19;4736:29;4859:19;;;490:2:4;4859:19:19;;1166:17642;4859:67;4855:192;;4554:837;1166:17642;;;;;;;;;;;-1:-1:-1;;1166:17642:19;;;;5181:99;;;;;:::i;:::-;;1166:17642;;5181:99;;;;;;:::i;:::-;5143:137;1166:17642;;5302:78;;;1166:17642;5181:99;5302:78;;;;;;;:::i;4855:192::-;1166:17642;4962:29;;;:70;:29;;;;:::i;:::-;:70;;;:::i;1166:17642::-;4855:192;;;;;4234:507:4;;;1166:17642:19;372:2:4;1166:17642:19;;;;;;;434:2:4;1166:17642:19;;;372:2:4;1166:17642:19;;434:2:4;1166:17642:19;490:2:4;1166:17642:19;;;;;;;;;;;;;;434:2:4;1166:17642:19;434:2:4;1166:17642:19;;;4234:507:4:o;16763:500:18:-;16921:19;;16917:76;;1166:17642:19;;:::i;:::-;;;;1582:3:0;1166:17642:19;;1596:15:0;;;1592:67;;16763:500:18;1166:17642:19;;17148:33:18;1166:17642:19;;;;;;;:::i;:::-;-1:-1:-1;;;;;1166:17642:19;;;;;1733:50:0;;;1166:17642:19;1710:8:0;1166:17642:19;;;;1733:50:0;1166:17642:19;1733:50:0;;;;1166:17642:19;;;;;;1733:50:0;1166:17642:19;;;;;;;;;;17148:33:18;:15;:33;:70;;;;;16763:500;17131:87;1166:17642:19;;-1:-1:-1;;;;;1166:17642:19;;;;16763:500:18;:::o;17148:70::-;1166:17642:19;17185:33:18;;-1:-1:-1;1166:17642:19;;;;17185:33:18;17148:15;17185:33;17148:70;;;1592:67:0;1166:17642:19;;-1:-1:-1;1592:67:0;;16917:76:18;16956:26;16939:1;16956:26;16939:1;16956:26;:::o;9714:1012::-;;;;9836:20;9832:888;;9714:1012;;;;;:::o;9832:888::-;9889:14;;1166:17642:19;-1:-1:-1;;;;;1166:17642:19;9928:18:18;;;9924:121;;10110:35;:14;;:35;1166:17642:19;10076:80:18;10110:35;1166:17642:19;10076:80:18;;-1:-1:-1;;;10076:80:18;;;9855:1;10076:80;;;;;;;;:::i;:::-;;1875:14;-1:-1:-1;;;;;1875:14:18;1166:17642:19;10076:80:18;;;;;;;9855:1;10076:80;;;9832:888;1166:17642:19;-1:-1:-1;;;;;1166:17642:19;;10174:21:18;;;10170:115;;-1:-1:-1;;;;;1166:17642:19;10302:17:18;;;10298:116;;10431:19;:24;10427:123;;10597:14;10589:23;10597:14;10632:77;10597:14;10581:32;10597:14;;:::i;10581:32::-;10076:80;10648:17;;;1166:17642:19;10684:14:18;;1166:17642:19;10684:24:18;1166:17642:19;10110:35:18;1166:17642:19;;-1:-1:-1;;;;;1166:17642:19;;;;;;;;;;;;;;;;10110:35:18;10632:77;9832:888;;;;;;10427:123;10110:35;1166:17642:19;;-1:-1:-1;;;10482:53:18;;10076:80;10482:53;;1166:17642:19;;;;;;;;;;;;;;;;;;;;19830:51:18;10298:116;10346:53;1166:17642:19;10110:35:18;1166:17642:19;10346:53:18;;;-1:-1:-1;;;10346:53:18;;10076:80;10346:53;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;10170:115:18;10222:48;1166:17642:19;10110:35:18;1166:17642:19;10222:48:18;;;-1:-1:-1;;;10222:48:18;;10076:80;10222:48;;1166:17642:19;;;;;;;;;;;;;;;;;;;;;;10076:80:18;;;;;;;;;;;;;;:::i;:::-;;;;9924:121;1166:17642:19;;;-1:-1:-1;;;9978:52:18;;;;;1166:17642:19;;;;;;;;;;;;;;;;;;;;19830:51:18;2879:281:0;2961:193;;;;;;;2879:281;:::o", "linkReferences": {}, "immutableReferences": { "1915": [{ "start": 4668, "length": 32 }, { "start": 19042, "length": 32 }], "3553": [{ "start": 11552, "length": 32 }, { "start": 12378, "length": 32 }, { "start": 12469, "length": 32 }, { "start": 12991, "length": 32 }, { "start": 13178, "length": 32 }, { "start": 13268, "length": 32 }, { "start": 13541, "length": 32 }, { "start": 13728, "length": 32 }, { "start": 13818, "length": 32 }, { "start": 14091, "length": 32 }] } }, "methodIdentifiers": { "_paymasterValidation(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256))": "21e60b37", "_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)": "c579f76b", "addStake(uint32)": "0396cb60", "balanceOf(address)": "70a08231", "binarySearchCallGas((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,uint256,uint256,uint256)": "acbe911e", "binarySearchPaymasterVerificationGas((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,uint256,uint256,uint256)": "d72f2593", "binarySearchVerificationGas((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,uint256,uint256,uint256)": "212eccc6", "delegateAndRevert(address,bytes)": "850aaf62", "depositTo(address)": "b760faf9", "deposits(address)": "fc7e286d", "getDepositInfo(address)": "5287ce12", "getNonce(address,uint192)": "35567e1a", "getSenderAddress(bytes)": "9b249f69", "getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "22cdde4c", "handleAggregatedOps(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,bytes)[],address)": "dbed18e0", "handleOps((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address)": "765e827f", "incrementNonce(uint192)": "0bd28e3b", "innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)": "0da82661", "nonceSequenceNumber(address,uint192)": "1b2e01b8", "simulateCall(address,bytes,uint256)": "f7e426e8", "simulateCallAndRevert(address,bytes,uint256)": "44403473", "simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)": "97b2dcb9", "simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "af324943", "simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "c3bce009", "simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "aec321fb", "unlockStake()": "bb9fe6bf", "withdrawStake(address)": "c23a5cea", "withdrawTo(address,uint256)": "205c2878" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"CallPhaseReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"ret\",\"type\":\"bytes\"}],\"name\":\"DelegateAndRevert\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailedOp\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"inner\",\"type\":\"bytes\"}],\"name\":\"FailedOpWithRevert\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"PostOpReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SenderAddressResult\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"}],\"name\":\"SignatureValidationFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"remainingGas\",\"type\":\"uint256\"}],\"name\":\"innerCallResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"}],\"name\":\"AccountDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"BeforeExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalDeposit\",\"type\":\"uint256\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"PostOpRevertReason\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"}],\"name\":\"SignatureAggregatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalStaked\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"name\":\"StakeLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawTime\",\"type\":\"uint256\"}],\"name\":\"StakeUnlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"StakeWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualGasUsed\",\"type\":\"uint256\"}],\"name\":\"UserOperationEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"UserOperationPrefundTooLow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"UserOperationRevertReason\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"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\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"}],\"name\":\"_paymasterValidation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"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\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"validatePaymasterPrepayment\",\"type\":\"bool\"}],\"name\":\"_validatePrepayment\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"}],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"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\":\"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\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"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\":[{\"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\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"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\":[{\"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\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"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\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"delegateAndRevert\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"depositTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"deposits\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"staked\",\"type\":\"bool\"},{\"internalType\":\"uint112\",\"name\":\"stake\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"withdrawTime\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getDepositInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"staked\",\"type\":\"bool\"},{\"internalType\":\"uint112\",\"name\":\"stake\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"withdrawTime\",\"type\":\"uint48\"}],\"internalType\":\"struct IStakeManager.DepositInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"}],\"name\":\"getSenderAddress\",\"outputs\":[],\"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\"}],\"name\":\"getUserOpHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"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\":\"contract IAggregator\",\"name\":\"aggregator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.UserOpsPerAggregator[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"handleAggregatedOps\",\"outputs\":[],\"stateMutability\":\"pure\",\"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\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"handleOps\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"incrementNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"opInfo\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preGas\",\"type\":\"uint256\"}],\"name\":\"innerHandleOp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"\",\"type\":\"uint192\"}],\"name\":\"nonceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"simulateCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"simulateCallAndRevert\",\"outputs\":[],\"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\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"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\":[{\"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\":[{\"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\"},{\"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\"}],\"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\"},{\"inputs\":[],\"name\":\"unlockStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"}],\"name\":\"withdrawStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"withdrawAmount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"FailedOp(uint256,string)\":[{\"params\":{\"opIndex\":\"- Index into the array of ops to the failed one (in simulateValidation, this is always zero).\",\"reason\":\"- Revert reason. The string starts with a unique code \\\"AAmn\\\", where \\\"m\\\" is \\\"1\\\" for factory, \\\"2\\\" for account and \\\"3\\\" for paymaster issues, so a failure can be attributed to the correct entity.\"}}],\"FailedOpWithRevert(uint256,string,bytes)\":[{\"details\":\"note that inner is truncated to 2048 bytes\",\"params\":{\"inner\":\"- data from inner cought revert reason\",\"opIndex\":\"- Index into the array of ops to the failed one (in simulateValidation, this is always zero).\",\"reason\":\"- Revert reason. see FailedOp(uint256,string), above\"}}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SignatureValidationFailed(address)\":[{\"params\":{\"aggregator\":\"The aggregator that failed to verify the signature\"}}]},\"events\":{\"AccountDeployed(bytes32,address,address,address)\":{\"params\":{\"factory\":\"- The factory used to deploy this account (in the initCode)\",\"paymaster\":\"- The paymaster used by this UserOp\",\"sender\":\"- The account that is deployed\",\"userOpHash\":\"- The userOp that deployed this account. UserOperationEvent will follow.\"}},\"PostOpRevertReason(bytes32,address,uint256,bytes)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"revertReason\":\"- The return bytes from the (reverted) call to \\\"callData\\\".\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}},\"SignatureAggregatorChanged(address)\":{\"params\":{\"aggregator\":\"- The aggregator used for the following UserOperationEvents.\"}},\"UserOperationPrefundTooLow(bytes32,address,uint256)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"revertReason\":\"- The return bytes from the (reverted) call to \\\"callData\\\".\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}}},\"kind\":\"dev\",\"methods\":{\"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)\":{\"params\":{\"opIndex\":\"- The index of this userOp into the \\\"opInfos\\\" array.\",\"userOp\":\"- The userOp to validate.\"}},\"addStake(uint32)\":{\"params\":{\"unstakeDelaySec\":\"The new lock duration before the deposit can be withdrawn.\"}},\"balanceOf(address)\":{\"params\":{\"account\":\"- The account to query.\"},\"returns\":{\"_0\":\"- The deposit (for gas payment) of the account.\"}},\"delegateAndRevert(address,bytes)\":{\"details\":\"calling this method, the EntryPoint will make a delegatecall to the given data, and report (via revert) the result. The method always revert, so is only useful off-chain for dry run calls, in cases where state-override to replace actual EntryPoint code is less convenient.\",\"params\":{\"data\":\"data to pass to target in a delegatecall\",\"target\":\"a target contract to make a delegatecall from entrypoint\"}},\"depositTo(address)\":{\"params\":{\"account\":\"- The account to add to.\"}},\"getDepositInfo(address)\":{\"params\":{\"account\":\"- The account to query.\"},\"returns\":{\"info\":\" - Full deposit information of given account.\"}},\"getNonce(address,uint192)\":{\"params\":{\"key\":\"the high 192 bit of the nonce\",\"sender\":\"the account address\"},\"returns\":{\"nonce\":\"a full nonce to pass for next UserOp with this sender.\"}},\"getSenderAddress(bytes)\":{\"params\":{\"initCode\":\"- The constructor code to be passed into the UserOperation.\"}},\"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"params\":{\"userOp\":\"- The user operation to generate the request ID for.\"},\"returns\":{\"_0\":\"hash the hash of this UserOperation\"}},\"handleAggregatedOps(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,bytes)[],address)\":{\"params\":{\"beneficiary\":\"- The address to receive the fees.\",\"opsPerAggregator\":\"- The operations to execute, grouped by aggregator (or address(0) for no-aggregator accounts).\"}},\"handleOps((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address)\":{\"params\":{\"beneficiary\":\"- The address to receive the fees.\",\"ops\":\"- The operations to execute.\"}},\"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)\":{\"params\":{\"callData\":\"- The callData to execute.\",\"context\":\"- The context bytes.\",\"opInfo\":\"- The UserOpInfo struct.\"},\"returns\":{\"actualGasCost\":\"- the actual cost in eth this UserOperation paid for gas\"}},\"withdrawStake(address)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\"}},\"withdrawTo(address,uint256)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\",\"withdrawAmount\":\"- The amount to withdraw.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"FailedOp(uint256,string)\":[{\"notice\":\"A custom revert error of handleOps, to identify the offending op. Should be caught in off-chain handleOps simulation and not happen on-chain. Useful for mitigating DoS attempts against batchers or for troubleshooting of factory/account/paymaster reverts. NOTE: If simulateValidation passes successfully, there should be no reason for handleOps to fail on it.\"}],\"FailedOpWithRevert(uint256,string,bytes)\":[{\"notice\":\"A custom revert error of handleOps, to report a revert by account or paymaster.\"}],\"SignatureValidationFailed(address)\":[{\"notice\":\"Error case when a signature aggregator fails to verify the aggregated signature it had created.\"}]},\"events\":{\"AccountDeployed(bytes32,address,address,address)\":{\"notice\":\"Account \\\"sender\\\" was deployed.\"},\"BeforeExecution()\":{\"notice\":\"An event emitted by handleOps(), before starting the execution loop. Any event emitted before this event, is part of the validation.\"},\"PostOpRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation Paymaster's \\\"postOp\\\" call reverted with non-zero length.\"},\"SignatureAggregatorChanged(address)\":{\"notice\":\"Signature aggregator used by the following UserOperationEvents within this bundle.\"},\"UserOperationPrefundTooLow(bytes32,address,uint256)\":{\"notice\":\"UserOp consumed more than prefund. The UserOperation is reverted, and no refund is made.\"},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation \\\"callData\\\" reverted with non-zero length.\"}},\"kind\":\"user\",\"methods\":{\"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)\":{\"notice\":\"Validate account and paymaster (if defined) and also make sure total validation doesn't exceed verificationGasLimit. This method is called off-chain (simulateValidation()) and on-chain (from handleOps)\"},\"addStake(uint32)\":{\"notice\":\"Add to the account's stake - amount and delay any pending unstake is first cancelled.\"},\"balanceOf(address)\":{\"notice\":\"Get account balance.\"},\"constructor\":{\"notice\":\"simulation contract should not be deployed, and specifically, accounts should not trust it as entrypoint, since the simulation functions don't check the signatures\"},\"delegateAndRevert(address,bytes)\":{\"notice\":\"Helper method for dry-run testing.\"},\"depositTo(address)\":{\"notice\":\"Add to the deposit of the given account.\"},\"deposits(address)\":{\"notice\":\"maps paymaster to their deposits and stakes\"},\"getDepositInfo(address)\":{\"notice\":\"Get deposit info.\"},\"getNonce(address,uint192)\":{\"notice\":\"Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order.\"},\"getSenderAddress(bytes)\":{\"notice\":\"Get counterfactual sender address. Calculate the sender contract address that will be generated by the initCode and salt in the UserOperation. This method always revert, and returns the address in SenderAddressResult error\"},\"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Generate a request Id - unique identifier for this request. The request ID is a hash over the content of the userOp (except the signature), the entrypoint and the chainid.\"},\"handleAggregatedOps(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,bytes)[],address)\":{\"notice\":\"Execute a batch of UserOperation with Aggregators\"},\"handleOps((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address)\":{\"notice\":\"Execute a batch of UserOperations. No signature aggregator is used. If any account requires an aggregator (that is, it returned an aggregator when performing simulateValidation), then handleAggregatedOps() must be used instead.\"},\"incrementNonce(uint192)\":{\"notice\":\"Manually increment the nonce of the sender. This method is exposed just for completeness.. Account does NOT need to call it, neither during validation, nor elsewhere, as the EntryPoint will update the nonce regardless. Possible use-case is call it with various keys to \\\"initialize\\\" their nonces to one, so that future UserOperations will not pay extra for the first transaction with a given key.\"},\"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)\":{\"notice\":\"Inner function to handle a UserOperation. Must be declared \\\"external\\\" to open a call context, but it can only be called by handleOps.\"},\"nonceSequenceNumber(address,uint192)\":{\"notice\":\"The next valid sequence number for a given nonce key.\"},\"simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)\":{\"notice\":\"simulates a single userOperation (taken from EntryPoint simulation example)\"},\"simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"simulate and validates a single userOperation (taken from EntryPoint simulation example)\"},\"unlockStake()\":{\"notice\":\"Attempt to unlock the stake. The value can be withdrawn (using withdrawStake) after the unstake delay.\"},\"withdrawStake(address)\":{\"notice\":\"Withdraw from the (unlocked) stake. Must first call unlockStake and wait for the unstakeDelay to pass.\"},\"withdrawTo(address,uint256)\":{\"notice\":\"Withdraw from the deposit.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/v07/EntryPointSimulations.sol\":\"EntryPointSimulations07\"},\"evmVersion\":\"paris\",\"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.1.0/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-v7/contracts/core/Helpers.sol\":{\"keccak256\":\"0x6247e011a6cb0b263b3aa098822977181674d91b62e5bdfe04c6e66f72da25d6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ca829a69b3fbc74fec8e140d42a2bf93bc3512609272f031c846470f61f0ab7e\",\"dweb:/ipfs/QmP3r3MBgAN39KeVB1rCGJWwcBcotNt26ALtAR54poQ1Jc\"]},\"lib/account-abstraction-v7/contracts/core/NonceManager.sol\":{\"keccak256\":\"0x1f951786ce6f171e7ed0242fee73ee4a205c7523404ee6cffca48b8c64ea5fe9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a602bf2274d478dae7a532cca31f8179131808c324cc26ece5c7e87c5a1015a6\",\"dweb:/ipfs/QmaaSyw5GGbAWzUhAPCtsb38P3MmaVr1ngp61PYHCU2a5a\"]},\"lib/account-abstraction-v7/contracts/core/SenderCreator.sol\":{\"keccak256\":\"0xeb95afb6e4cf921c1ed105ecb9f549ca46bee57f68acd1d2f4f84607ac0db5c5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d2ac91562f1fcabe4809a1b4256895efebcf46f89e08336a6c09ee2d29733238\",\"dweb:/ipfs/QmPsQnPcCzioPwVtUhxkbnwKPC1bnhHSbAwK9GXVpjN3mH\"]},\"lib/account-abstraction-v7/contracts/core/StakeManager.sol\":{\"keccak256\":\"0x673eb19600058d8642605ca409c9e1d4cab13735564b856270b92c330ffb1b8d\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://06599c57c7075ee8eb5f1710fccca3eb322876b968ec271e1fb34af41510ab2c\",\"dweb:/ipfs/QmVsDEjmZYtzgXa4AYKxbQEYQVh6NBq8GmFJCariBUqK4G\"]},\"lib/account-abstraction-v7/contracts/core/UserOperationLib.sol\":{\"keccak256\":\"0x9d50ece985d35f82e33e5da417595c86fac10449e3d10895d08363d33aad454b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b1d11cc364c8bf7ed5388268c895b5ffed16e87dfbcb320ddeeba5e7974315dc\",\"dweb:/ipfs/QmYSpvjxEjweietQrYZagwQ52ipy7eXx4rwvnTzXKeGeMS\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAccount.sol\":{\"keccak256\":\"0x38710bec0cb20ff4ceef46a80475b5bdabc27b7efd2687fd473db68332f61b78\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dea7a723e1ef852e8764e69914a345d2e8bc5e13facfc9d5c29d791cb4ab0020\",\"dweb:/ipfs/QmU8dYgyF4DBJXFqjwLAtnE3q8q259ChfoEk9a6wyhHzEP\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAccountExecute.sol\":{\"keccak256\":\"0xd3dc32dde1add1fb6377f939ceff6be31c2e21343522311f7b88db666be9ee6c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5b8f065171bd32e23b306868189c730f849ce6147f753c59e396e7afcf384577\",\"dweb:/ipfs/QmZpDRNEZ9YNgGgyLQo5yM4bB1FNbtnfDABsChbgSQKXUh\"]},\"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/IPaymaster.sol\":{\"keccak256\":\"0x49d8dbf8a85b006bcd89bbc40e4e9e113997cc016007de85263bdae70572d07f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://bc0d83804c1b795d5c216b3518cd176c48f90db28550f267cbd89746d6b476c8\",\"dweb:/ipfs/QmNdCm4c6hnt7f6Q8q21QjtCNZWWRUaMVEYnQHEv68VnKt\"]},\"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/openzeppelin-contracts-v5.1.0/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/IEntryPointSimulations.sol\":{\"keccak256\":\"0x3e675bb230bc7a40b25efd914975233e1f04cc5fbb19cd3b0b3c11574894eeeb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dac88adcdabc296cc02d1986684d722132e09683a5420c720b927614422c32eb\",\"dweb:/ipfs/QmTU5SQkBzfhkeCiVTXiPxvNdfpBqqHW9kuAiizQ4DEBXp\"]},\"src/v07/EntryPoint.sol\":{\"keccak256\":\"0xb1927006d99f28b72a631aa994cd6ff5bb248e7aadead216f255594f7a81d793\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d25e3cb67df711d00064813a97f01d7c628a7e66ba54d09bbbaafddccd510759\",\"dweb:/ipfs/QmZ1VJUi2WpnRjngHtgTTpGRFTeX28Z1GDwcUHLwBDiJuq\"]},\"src/v07/EntryPointSimulations.sol\":{\"keccak256\":\"0x4e6dc980c428f71343d94a4fab21b6b4165220487bc25d335ea3fd19f2eaf87c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://99f0fc672abeafa6312134570d550940d56bf3fa8207ea5a8972d6c1ae4730fc\",\"dweb:/ipfs/QmYfG4aMvx28oV49BhiuUMM5GhjxTDXc3ixxwa35fP6yEw\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.28+commit.7893614a" }, "language": "Solidity", "output": { "abi": [{ "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [{ "internalType": "bytes", "name": "reason", "type": "bytes" }], "type": "error", "name": "CallPhaseReverted" }, { "inputs": [{ "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "ret", "type": "bytes" }], "type": "error", "name": "DelegateAndRevert" }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "internalType": "string", "name": "reason", "type": "string" }], "type": "error", "name": "FailedOp" }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "internalType": "string", "name": "reason", "type": "string" }, { "internalType": "bytes", "name": "inner", "type": "bytes" }], "type": "error", "name": "FailedOpWithRevert" }, { "inputs": [{ "internalType": "bytes", "name": "returnData", "type": "bytes" }], "type": "error", "name": "PostOpReverted" }, { "inputs": [], "type": "error", "name": "ReentrancyGuardReentrantCall" }, { "inputs": [{ "internalType": "address", "name": "sender", "type": "address" }], "type": "error", "name": "SenderAddressResult" }, { "inputs": [{ "internalType": "address", "name": "aggregator", "type": "address" }], "type": "error", "name": "SignatureValidationFailed" }, { "inputs": [{ "internalType": "uint256", "name": "remainingGas", "type": "uint256" }], "type": "error", "name": "innerCallResult" }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "address", "name": "factory", "type": "address", "indexed": false }, { "internalType": "address", "name": "paymaster", "type": "address", "indexed": false }], "type": "event", "name": "AccountDeployed", "anonymous": false }, { "inputs": [], "type": "event", "name": "BeforeExecution", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "totalDeposit", "type": "uint256", "indexed": false }], "type": "event", "name": "Deposited", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "nonce", "type": "uint256", "indexed": false }, { "internalType": "bytes", "name": "revertReason", "type": "bytes", "indexed": false }], "type": "event", "name": "PostOpRevertReason", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "aggregator", "type": "address", "indexed": true }], "type": "event", "name": "SignatureAggregatorChanged", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "totalStaked", "type": "uint256", "indexed": false }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256", "indexed": false }], "type": "event", "name": "StakeLocked", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "withdrawTime", "type": "uint256", "indexed": false }], "type": "event", "name": "StakeUnlocked", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "address", "name": "withdrawAddress", "type": "address", "indexed": false }, { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false }], "type": "event", "name": "StakeWithdrawn", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "address", "name": "paymaster", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "nonce", "type": "uint256", "indexed": false }, { "internalType": "bool", "name": "success", "type": "bool", "indexed": false }, { "internalType": "uint256", "name": "actualGasCost", "type": "uint256", "indexed": false }, { "internalType": "uint256", "name": "actualGasUsed", "type": "uint256", "indexed": false }], "type": "event", "name": "UserOperationEvent", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "nonce", "type": "uint256", "indexed": false }], "type": "event", "name": "UserOperationPrefundTooLow", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "nonce", "type": "uint256", "indexed": false }, { "internalType": "bytes", "name": "revertReason", "type": "bytes", "indexed": false }], "type": "event", "name": "UserOperationRevertReason", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "address", "name": "withdrawAddress", "type": "address", "indexed": false }, { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false }], "type": "event", "name": "Withdrawn", "anonymous": false }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "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": "struct EntryPoint.UserOpInfo", "name": "outOpInfo", "type": "tuple", "components": [{ "internalType": "struct EntryPoint.MemoryUserOp", "name": "mUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "address", "name": "paymaster", "type": "address" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }] }, { "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "contextOffset", "type": "uint256" }, { "internalType": "uint256", "name": "preOpGas", "type": "uint256" }] }], "stateMutability": "nonpayable", "type": "function", "name": "_paymasterValidation", "outputs": [{ "internalType": "uint256", "name": "validationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }] }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "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": "struct EntryPoint.UserOpInfo", "name": "outOpInfo", "type": "tuple", "components": [{ "internalType": "struct EntryPoint.MemoryUserOp", "name": "mUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "address", "name": "paymaster", "type": "address" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }] }, { "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "contextOffset", "type": "uint256" }, { "internalType": "uint256", "name": "preOpGas", "type": "uint256" }] }, { "internalType": "bool", "name": "validatePaymasterPrepayment", "type": "bool" }], "stateMutability": "nonpayable", "type": "function", "name": "_validatePrepayment", "outputs": [{ "internalType": "uint256", "name": "validationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }] }, { "inputs": [{ "internalType": "uint32", "name": "unstakeDelaySec", "type": "uint32" }], "stateMutability": "payable", "type": "function", "name": "addStake" }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "stateMutability": "view", "type": "function", "name": "balanceOf", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [{ "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": "address", "name": "entryPoint", "type": "address" }, { "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": "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": "address", "name": "entryPoint", "type": "address" }, { "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": "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": "address", "name": "entryPoint", "type": "address" }, { "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": "address", "name": "", "type": "address" }, { "internalType": "bytes", "name": "", "type": "bytes" }], "stateMutability": "pure", "type": "function", "name": "delegateAndRevert" }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "stateMutability": "payable", "type": "function", "name": "depositTo" }, { "inputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function", "name": "deposits", "outputs": [{ "internalType": "uint256", "name": "deposit", "type": "uint256" }, { "internalType": "bool", "name": "staked", "type": "bool" }, { "internalType": "uint112", "name": "stake", "type": "uint112" }, { "internalType": "uint32", "name": "unstakeDelaySec", "type": "uint32" }, { "internalType": "uint48", "name": "withdrawTime", "type": "uint48" }] }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "stateMutability": "view", "type": "function", "name": "getDepositInfo", "outputs": [{ "internalType": "struct IStakeManager.DepositInfo", "name": "info", "type": "tuple", "components": [{ "internalType": "uint256", "name": "deposit", "type": "uint256" }, { "internalType": "bool", "name": "staked", "type": "bool" }, { "internalType": "uint112", "name": "stake", "type": "uint112" }, { "internalType": "uint32", "name": "unstakeDelaySec", "type": "uint32" }, { "internalType": "uint48", "name": "withdrawTime", "type": "uint48" }] }] }, { "inputs": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint192", "name": "key", "type": "uint192" }], "stateMutability": "view", "type": "function", "name": "getNonce", "outputs": [{ "internalType": "uint256", "name": "nonce", "type": "uint256" }] }, { "inputs": [{ "internalType": "bytes", "name": "initCode", "type": "bytes" }], "stateMutability": "nonpayable", "type": "function", "name": "getSenderAddress" }, { "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" }] }], "stateMutability": "view", "type": "function", "name": "getUserOpHash", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] }, { "inputs": [{ "internalType": "struct IEntryPoint.UserOpsPerAggregator[]", "name": "", "type": "tuple[]", "components": [{ "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": "contract IAggregator", "name": "aggregator", "type": "address" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "", "type": "address" }], "stateMutability": "pure", "type": "function", "name": "handleAggregatedOps" }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "", "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": "", "type": "address" }], "stateMutability": "pure", "type": "function", "name": "handleOps" }, { "inputs": [{ "internalType": "uint192", "name": "key", "type": "uint192" }], "stateMutability": "nonpayable", "type": "function", "name": "incrementNonce" }, { "inputs": [{ "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "struct EntryPoint.UserOpInfo", "name": "opInfo", "type": "tuple", "components": [{ "internalType": "struct EntryPoint.MemoryUserOp", "name": "mUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "address", "name": "paymaster", "type": "address" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }] }, { "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "contextOffset", "type": "uint256" }, { "internalType": "uint256", "name": "preOpGas", "type": "uint256" }] }, { "internalType": "bytes", "name": "context", "type": "bytes" }, { "internalType": "uint256", "name": "preGas", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "innerHandleOp", "outputs": [{ "internalType": "uint256", "name": "actualGasCost", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }] }, { "inputs": [{ "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint192", "name": "", "type": "uint192" }], "stateMutability": "view", "type": "function", "name": "nonceSequenceNumber", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [{ "internalType": "address", "name": "entryPoint", "type": "address" }, { "internalType": "bytes", "name": "payload", "type": "bytes" }, { "internalType": "uint256", "name": "gas", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateCall", "outputs": [{ "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "result", "type": "bytes" }] }, { "inputs": [{ "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "uint256", "name": "gas", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateCallAndRevert" }, { "inputs": [{ "internalType": "struct PackedUserOperation", "name": "op", "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", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "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": "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": "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" }] }] }] }] }, { "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" }] }], "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" }] }] }] }] }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "unlockStake" }, { "inputs": [{ "internalType": "address payable", "name": "withdrawAddress", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "withdrawStake" }, { "inputs": [{ "internalType": "address payable", "name": "withdrawAddress", "type": "address" }, { "internalType": "uint256", "name": "withdrawAmount", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "withdrawTo" }, { "inputs": [], "stateMutability": "payable", "type": "receive" }], "devdoc": { "kind": "dev", "methods": { "_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)": { "params": { "opIndex": "- The index of this userOp into the \"opInfos\" array.", "userOp": "- The userOp to validate." } }, "addStake(uint32)": { "params": { "unstakeDelaySec": "The new lock duration before the deposit can be withdrawn." } }, "balanceOf(address)": { "params": { "account": "- The account to query." }, "returns": { "_0": "- The deposit (for gas payment) of the account." } }, "delegateAndRevert(address,bytes)": { "details": "calling this method, the EntryPoint will make a delegatecall to the given data, and report (via revert) the result. The method always revert, so is only useful off-chain for dry run calls, in cases where state-override to replace actual EntryPoint code is less convenient.", "params": { "data": "data to pass to target in a delegatecall", "target": "a target contract to make a delegatecall from entrypoint" } }, "depositTo(address)": { "params": { "account": "- The account to add to." } }, "getDepositInfo(address)": { "params": { "account": "- The account to query." }, "returns": { "info": " - Full deposit information of given account." } }, "getNonce(address,uint192)": { "params": { "key": "the high 192 bit of the nonce", "sender": "the account address" }, "returns": { "nonce": "a full nonce to pass for next UserOp with this sender." } }, "getSenderAddress(bytes)": { "params": { "initCode": "- The constructor code to be passed into the UserOperation." } }, "getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "params": { "userOp": "- The user operation to generate the request ID for." }, "returns": { "_0": "hash the hash of this UserOperation" } }, "handleAggregatedOps(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,bytes)[],address)": { "params": { "beneficiary": "- The address to receive the fees.", "opsPerAggregator": "- The operations to execute, grouped by aggregator (or address(0) for no-aggregator accounts)." } }, "handleOps((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address)": { "params": { "beneficiary": "- The address to receive the fees.", "ops": "- The operations to execute." } }, "innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)": { "params": { "callData": "- The callData to execute.", "context": "- The context bytes.", "opInfo": "- The UserOpInfo struct." }, "returns": { "actualGasCost": "- the actual cost in eth this UserOperation paid for gas" } }, "withdrawStake(address)": { "params": { "withdrawAddress": "- The address to send withdrawn value." } }, "withdrawTo(address,uint256)": { "params": { "withdrawAddress": "- The address to send withdrawn value.", "withdrawAmount": "- The amount to withdraw." } } }, "version": 1 }, "userdoc": { "kind": "user", "methods": { "_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)": { "notice": "Validate account and paymaster (if defined) and also make sure total validation doesn't exceed verificationGasLimit. This method is called off-chain (simulateValidation()) and on-chain (from handleOps)" }, "addStake(uint32)": { "notice": "Add to the account's stake - amount and delay any pending unstake is first cancelled." }, "balanceOf(address)": { "notice": "Get account balance." }, "constructor": { "notice": "simulation contract should not be deployed, and specifically, accounts should not trust it as entrypoint, since the simulation functions don't check the signatures" }, "delegateAndRevert(address,bytes)": { "notice": "Helper method for dry-run testing." }, "depositTo(address)": { "notice": "Add to the deposit of the given account." }, "deposits(address)": { "notice": "maps paymaster to their deposits and stakes" }, "getDepositInfo(address)": { "notice": "Get deposit info." }, "getNonce(address,uint192)": { "notice": "Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order." }, "getSenderAddress(bytes)": { "notice": "Get counterfactual sender address. Calculate the sender contract address that will be generated by the initCode and salt in the UserOperation. This method always revert, and returns the address in SenderAddressResult error" }, "getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "notice": "Generate a request Id - unique identifier for this request. The request ID is a hash over the content of the userOp (except the signature), the entrypoint and the chainid." }, "handleAggregatedOps(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,bytes)[],address)": { "notice": "Execute a batch of UserOperation with Aggregators" }, "handleOps((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address)": { "notice": "Execute a batch of UserOperations. No signature aggregator is used. If any account requires an aggregator (that is, it returned an aggregator when performing simulateValidation), then handleAggregatedOps() must be used instead." }, "incrementNonce(uint192)": { "notice": "Manually increment the nonce of the sender. This method is exposed just for completeness.. Account does NOT need to call it, neither during validation, nor elsewhere, as the EntryPoint will update the nonce regardless. Possible use-case is call it with various keys to \"initialize\" their nonces to one, so that future UserOperations will not pay extra for the first transaction with a given key." }, "innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)": { "notice": "Inner function to handle a UserOperation. Must be declared \"external\" to open a call context, but it can only be called by handleOps." }, "nonceSequenceNumber(address,uint192)": { "notice": "The next valid sequence number for a given nonce key." }, "simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)": { "notice": "simulates a single userOperation (taken from EntryPoint simulation example)" }, "simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "notice": "simulate and validates a single userOperation (taken from EntryPoint simulation example)" }, "unlockStake()": { "notice": "Attempt to unlock the stake. The value can be withdrawn (using withdrawStake) after the unstake delay." }, "withdrawStake(address)": { "notice": "Withdraw from the (unlocked) stake. Must first call unlockStake and wait for the unstakeDelay to pass." }, "withdrawTo(address,uint256)": { "notice": "Withdraw from the deposit." } }, "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.1.0/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/v07/EntryPointSimulations.sol": "EntryPointSimulations07" }, "evmVersion": "paris", "libraries": {}, "viaIR": true }, "sources": { "lib/account-abstraction-v7/contracts/core/Helpers.sol": { "keccak256": "0x6247e011a6cb0b263b3aa098822977181674d91b62e5bdfe04c6e66f72da25d6", "urls": ["bzz-raw://ca829a69b3fbc74fec8e140d42a2bf93bc3512609272f031c846470f61f0ab7e", "dweb:/ipfs/QmP3r3MBgAN39KeVB1rCGJWwcBcotNt26ALtAR54poQ1Jc"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/core/NonceManager.sol": { "keccak256": "0x1f951786ce6f171e7ed0242fee73ee4a205c7523404ee6cffca48b8c64ea5fe9", "urls": ["bzz-raw://a602bf2274d478dae7a532cca31f8179131808c324cc26ece5c7e87c5a1015a6", "dweb:/ipfs/QmaaSyw5GGbAWzUhAPCtsb38P3MmaVr1ngp61PYHCU2a5a"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/core/SenderCreator.sol": { "keccak256": "0xeb95afb6e4cf921c1ed105ecb9f549ca46bee57f68acd1d2f4f84607ac0db5c5", "urls": ["bzz-raw://d2ac91562f1fcabe4809a1b4256895efebcf46f89e08336a6c09ee2d29733238", "dweb:/ipfs/QmPsQnPcCzioPwVtUhxkbnwKPC1bnhHSbAwK9GXVpjN3mH"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/core/StakeManager.sol": { "keccak256": "0x673eb19600058d8642605ca409c9e1d4cab13735564b856270b92c330ffb1b8d", "urls": ["bzz-raw://06599c57c7075ee8eb5f1710fccca3eb322876b968ec271e1fb34af41510ab2c", "dweb:/ipfs/QmVsDEjmZYtzgXa4AYKxbQEYQVh6NBq8GmFJCariBUqK4G"], "license": "GPL-3.0-only" }, "lib/account-abstraction-v7/contracts/core/UserOperationLib.sol": { "keccak256": "0x9d50ece985d35f82e33e5da417595c86fac10449e3d10895d08363d33aad454b", "urls": ["bzz-raw://b1d11cc364c8bf7ed5388268c895b5ffed16e87dfbcb320ddeeba5e7974315dc", "dweb:/ipfs/QmYSpvjxEjweietQrYZagwQ52ipy7eXx4rwvnTzXKeGeMS"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/IAccount.sol": { "keccak256": "0x38710bec0cb20ff4ceef46a80475b5bdabc27b7efd2687fd473db68332f61b78", "urls": ["bzz-raw://dea7a723e1ef852e8764e69914a345d2e8bc5e13facfc9d5c29d791cb4ab0020", "dweb:/ipfs/QmU8dYgyF4DBJXFqjwLAtnE3q8q259ChfoEk9a6wyhHzEP"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/IAccountExecute.sol": { "keccak256": "0xd3dc32dde1add1fb6377f939ceff6be31c2e21343522311f7b88db666be9ee6c", "urls": ["bzz-raw://5b8f065171bd32e23b306868189c730f849ce6147f753c59e396e7afcf384577", "dweb:/ipfs/QmZpDRNEZ9YNgGgyLQo5yM4bB1FNbtnfDABsChbgSQKXUh"], "license": "GPL-3.0" }, "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/IPaymaster.sol": { "keccak256": "0x49d8dbf8a85b006bcd89bbc40e4e9e113997cc016007de85263bdae70572d07f", "urls": ["bzz-raw://bc0d83804c1b795d5c216b3518cd176c48f90db28550f267cbd89746d6b476c8", "dweb:/ipfs/QmNdCm4c6hnt7f6Q8q21QjtCNZWWRUaMVEYnQHEv68VnKt"], "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/openzeppelin-contracts-v5.1.0/contracts/utils/ReentrancyGuard.sol": { "keccak256": "0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3", "urls": ["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a", "dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/introspection/ERC165.sol": { "keccak256": "0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa", "urls": ["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287", "dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/introspection/IERC165.sol": { "keccak256": "0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8", "urls": ["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621", "dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"], "license": "MIT" }, "src/IEntryPointSimulations.sol": { "keccak256": "0x3e675bb230bc7a40b25efd914975233e1f04cc5fbb19cd3b0b3c11574894eeeb", "urls": ["bzz-raw://dac88adcdabc296cc02d1986684d722132e09683a5420c720b927614422c32eb", "dweb:/ipfs/QmTU5SQkBzfhkeCiVTXiPxvNdfpBqqHW9kuAiizQ4DEBXp"], "license": "MIT" }, "src/v07/EntryPoint.sol": { "keccak256": "0xb1927006d99f28b72a631aa994cd6ff5bb248e7aadead216f255594f7a81d793", "urls": ["bzz-raw://d25e3cb67df711d00064813a97f01d7c628a7e66ba54d09bbbaafddccd510759", "dweb:/ipfs/QmZ1VJUi2WpnRjngHtgTTpGRFTeX28Z1GDwcUHLwBDiJuq"], "license": "GPL-3.0" }, "src/v07/EntryPointSimulations.sol": { "keccak256": "0x4e6dc980c428f71343d94a4fab21b6b4165220487bc25d335ea3fd19f2eaf87c", "urls": ["bzz-raw://99f0fc672abeafa6312134570d550940d56bf3fa8207ea5a8972d6c1ae4730fc", "dweb:/ipfs/QmYfG4aMvx28oV49BhiuUMM5GhjxTDXc3ixxwa35fP6yEw"], "license": "GPL-3.0" } }, "version": 1 }, "id": 19 }
|