@pimlico/alto 0.0.0-main.20250728T164344 → 0.0.0-main.20250801T125931
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/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
- package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride08.json +1 -0
- package/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
- package/contracts/build-info/{7112d1913b854416.json → 416ffb069999d6eb.json} +1 -1
- package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
- package/esm/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
- package/esm/rpc/estimation/gasEstimations07.js +2 -3
- package/esm/rpc/estimation/gasEstimations07.js.map +1 -1
- package/esm/rpc/estimation/utils.d.ts +2 -2
- package/esm/rpc/estimation/utils.js +4 -2
- package/esm/rpc/estimation/utils.js.map +1 -1
- package/esm/rpc/methods/pimlico_simulateAssetChange.js +9 -12
- package/esm/rpc/methods/pimlico_simulateAssetChange.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "abi": [{ "type": "constructor", "inputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "binarySearchCallGas", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "binarySearchPaymasterVerificationGas", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "binarySearchVerificationGas", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "filterOps06", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct UserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct PimlicoSimulations.FilterOpsResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "balanceChange", "type": "uint256", "internalType": "uint256" }, { "name": "rejectedUserOps", "type": "tuple[]", "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "components": [{ "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "revertReason", "type": "bytes", "internalType": "bytes" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "filterOps07", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct PimlicoSimulations.FilterOpsResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "balanceChange", "type": "uint256", "internalType": "uint256" }, { "name": "rejectedUserOps", "type": "tuple[]", "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "components": [{ "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "revertReason", "type": "bytes", "internalType": "bytes" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "filterOps08", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct PimlicoSimulations.FilterOpsResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "balanceChange", "type": "uint256", "internalType": "uint256" }, { "name": "rejectedUserOps", "type": "tuple[]", "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "components": [{ "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "revertReason", "type": "bytes", "internalType": "bytes" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "getBalances", "inputs": [{ "name": "addresses", "type": "address[]", "internalType": "address[]" }, { "name": "tokens", "type": "address[]", "internalType": "address[]" }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct PimlicoSimulations.AssetBalance[]", "components": [{ "name": "addr", "type": "address", "internalType": "address" }, { "name": "token", "type": "address", "internalType": "address" }, { "name": "amount", "type": "uint256", "internalType": "uint256" }] }], "stateMutability": "view" }, { "type": "function", "name": "simulateAndEstimateGas", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "result", "type": "tuple", "internalType": "struct PimlicoSimulations.SimulateAndEstimateGasResult", "components": [{ "name": "simulationResult", "type": "tuple", "internalType": "struct IEntryPointSimulations.ExecutionResult", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "targetSuccess", "type": "bool", "internalType": "bool" }, { "name": "targetResult", "type": "bytes", "internalType": "bytes" }] }, { "name": "verificationGasLimit", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }, { "name": "paymasterVerificationGasLimit", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateAssetChange06", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct UserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }, { "name": "addresses", "type": "address[]", "internalType": "address[]" }, { "name": "tokens", "type": "address[]", "internalType": "address[]" }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct PimlicoSimulations.AssetChange[]", "components": [{ "name": "addr", "type": "address", "internalType": "address" }, { "name": "token", "type": "address", "internalType": "address" }, { "name": "balanceBefore", "type": "uint256", "internalType": "uint256" }, { "name": "balanceAfter", "type": "uint256", "internalType": "uint256" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateAssetChange07", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }, { "name": "entryPointSimulations", "type": "address", "internalType": "address" }, { "name": "addresses", "type": "address[]", "internalType": "address[]" }, { "name": "tokens", "type": "address[]", "internalType": "address[]" }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct PimlicoSimulations.AssetChange[]", "components": [{ "name": "addr", "type": "address", "internalType": "address" }, { "name": "token", "type": "address", "internalType": "address" }, { "name": "balanceBefore", "type": "uint256", "internalType": "uint256" }, { "name": "balanceAfter", "type": "uint256", "internalType": "uint256" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateAssetChange08", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }, { "name": "entryPointSimulations", "type": "address", "internalType": "address" }, { "name": "addresses", "type": "address[]", "internalType": "address[]" }, { "name": "tokens", "type": "address[]", "internalType": "address[]" }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct PimlicoSimulations.AssetChange[]", "components": [{ "name": "addr", "type": "address", "internalType": "address" }, { "name": "token", "type": "address", "internalType": "address" }, { "name": "balanceBefore", "type": "uint256", "internalType": "uint256" }, { "name": "balanceAfter", "type": "uint256", "internalType": "uint256" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateEntryPointBulk", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "data", "type": "bytes[]", "internalType": "bytes[]" }], "outputs": [{ "name": "", "type": "bytes[]", "internalType": "bytes[]" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateHandleOp", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ExecutionResult", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "targetSuccess", "type": "bool", "internalType": "bool" }, { "name": "targetResult", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateValidation", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ValidationResult", "components": [{ "name": "returnInfo", "type": "tuple", "internalType": "struct IEntryPoint.ReturnInfo", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterContext", "type": "bytes", "internalType": "bytes" }] }, { "name": "senderInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "factoryInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "paymasterInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "aggregatorInfo", "type": "tuple", "internalType": "struct IEntryPoint.AggregatorStakeInfo", "components": [{ "name": "aggregator", "type": "address", "internalType": "address" }, { "name": "stakeInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }] }] }], "stateMutability": "nonpayable" }, { "type": "event", "name": "PimlicoSimulationDeployed", "inputs": [], "anonymous": false }], "bytecode": { "object": "0x60808060405234603a577f20d4cb4d83077ae7f93cbc84f032f6918d99772c5bb321c4333007d83641ab7e600080a161393e90816100408239f35b600080fdfe60a0604052600436101561001257600080fd5b60006080526080513560e01c8063141eb0331461246b5780632e5a0a93146123fc578063685f602614611ff85780637134990314611eea578063861d9d5914611cea57806390d81dfb14611ad6578063959c4cb7146113aa5780639f2d378914611318578063a4968eab146110f3578063b21b38c814610e57578063de040de114610b40578063ef5bfc37146108a1578063f1143043146108195763fccb5ff6146100bc57600080fd5b346105865760603660031901126105865760043567ffffffffffffffff8111610586576100ed903690600401612889565b906100f6612687565b906100ff61269d565b92610108612bf2565b5061011161322f565b805190680100000000000000008211610801576080515482608051558083106106f1575b5060808051805251949594907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b8383106106cd575050505060805192608051926001600160a01b038060805197169216926040965b8181106102c6578787878251916101a5836126f9565b8252602082015260805154916101ba836127c6565b6101c6825191826127a4565b838152602081019360805160805152602060805120608051955b8287106101fe578486018490528451806101fa8882612a2f565b0390f35b845161020981612715565b8254815285516080516001850180549061022282613277565b80855291600181169081156102a15750600114610263575b5050926002928261025160209460019703826127a4565b838201528152019201960195906101e0565b9091506080515260206080512090608051915b81831061028b5750508101602001828261023a565b6001816020925483868801015201920191610276565b60ff191660208087019190915292151560051b8501909201925084915083905061023a565b87516102d289826127a4565b600181526080515b601f198a01811061065b57506102f182848661362b565b61012081360312610586578951906103088261276a565b610311816126b3565b8252602081013560208301528a81013567ffffffffffffffff81116105865761033d90369083016127fa565b8b830152606081013567ffffffffffffffff81116105865761036290369083016127fa565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff8111610586576103a690369083016127fa565b60e08301526101008101359067ffffffffffffffff8211610586576103cd913691016127fa565b6101008201526103dc82612b9b565b526103e681612b9b565b5084315a91873b15610586578a51907f765e827f000000000000000000000000000000000000000000000000000000008252604482018c600484015281518091526064830190602060648260051b860101930191608051905b82821061058c575050505087602483015281806080519203816080518c5af1908161056d575b5061053f5750506104bd610477613146565b602061048484868861362b565b8b51809481927f22cdde4c0000000000000000000000000000000000000000000000000000000083528460048401526024830190612cb3565b03818a5afa91821561053357608051926104f9575b50600192916104f3918b51916104e783612715565b8252602082015261342a565b0161018f565b90915060203d811161052c575b61051081836127a4565b60208260009281010312610529575051906104f36104d2565b80fd5b503d610506565b8a513d608051823e3d90fd5b9661055b60019398610561610567949b61055b5a8b319e6133fa565b9061341d565b9a6133fa565b956104f3565b608051610579916127a4565b6080516105865738610465565b60805180fd5b909192938f9c9f989e979860209b9e9b61063f81929c9e999c6001946063198b820301875261010061062d6105fd6105eb8d51956001600160a01b03875116865288870151898701526101208188015191870152610120860190612864565b60608601518582036060870152612864565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e0860152612864565b92015190610100818403910152612864565b9601920192019092919e9b9e9d97969d9c999c9a98959a61043f565b6020908a979a99929399989598969496516106758161276a565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c0820152606060e0820152606061010082015282828601015201989598979190979693969492946102da565b60026020826106e26001949b9a9b51866132c8565b01920192019190969596610167565b6001600160ff1b03811681036107e9576001600160ff1b03831683036107e9576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b8181106107715750610135565b6080518155600181018054600292919061078a90613277565b80610798575b505001610764565b601f81116001146107b1575060805190555b3880610790565b6107d29082608051526001601f602060805120920160051c820191016132b1565b6080805182905251602081209181905590556107aa565b634e487b7160e01b6080515260116004526024608051fd5b634e487b7160e01b6080515260416004526024608051fd5b34610586576101fa61088d61087e6108776108696001600160a01b0361083e36612b1b565b61084c979394969197613482565b5060405197889363af32494360e01b6020860152602485016134c5565b03601f1981018652856127a4565b169061364e565b602080825183010191016134eb565b604051918291602083526020830190612abc565b346105865760403660031901126105865760043567ffffffffffffffff8111610586576108d2903690600401612889565b9060243567ffffffffffffffff8111610586576108f3903690600401612889565b838102939192918015818604831417156107e957610910856127c6565b9461091e60405196876127a4565b80865261092d601f19916127c6565b016080515b818110610b2957505060805190815b8181106109b857866040518091602082016020835281518091526020604084019201906080515b818110610976575050500390f35b9193509160206060600192604087516001600160a01b0381511683526001600160a01b0385820151168584015201516040820152019401910191849392610968565b6109cb6109c6828488613607565b613617565b608051906001600160a01b038116915b8681106109ed57505050600101610941565b86898273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03610a1b6109c6848787613607565b1603610a87575050508131905b610a366109c6828a8d613607565b916001600160a01b0360405193610a4c856126f9565b86855216602084015260408301528660001981146107e95787600193610a798e9a86610a8095019b612bbe565b528c612bbe565b50016109db565b610aa16109c66001600160a01b0392602495602095613607565b16604051928380927f70a082310000000000000000000000000000000000000000000000000000000082528860048301525afa908115610b1c5760805191610aeb575b5090610a28565b90506020813d8211610b14575b81610b05602093836127a4565b8101031261058657518b610ae4565b3d9150610af8565b6040513d608051823e3d90fd5b602090610b34612c13565b82828a01015201610932565b3461058657610c5d6108776108696001600160a01b03610b5f36612b1b565b604097939496919751610b718161274e565b604051610b7d8161274e565b6080518152608051602082015260805160408201526080516060820152606060808201528152604051610baf81612715565b60008152600060208201526020820152604051610bcb81612715565b60008152600060208201526040820152604051610be781612715565b60008152600060208201526060820152608060405191610c0683612715565b81518352604051610c1681612715565b6000815260006020820152602084015201526040519788937faec321fb000000000000000000000000000000000000000000000000000000006020860152602485016134c5565b8051810160208101916020818303126105865760208101519067ffffffffffffffff82116105865701808203601f1981019290610140136105865760405190610ca58261274e565b602083015167ffffffffffffffff8111610586578301602081019160a0919003126105865760405190610cd78261274e565b8051825260208101516020830152604081015160408301526060810151606083015260808101519067ffffffffffffffff821161058657610d1a91879101612e2e565b60808201528152610d2e84604084016135df565b9160208201928352610d4385608083016135df565b90604083019182526060610d5a8760c084016135df565b8482019081529560bf19011261058657602080958180959481610e0160808298610da66101409e6101206040519b610d918d612715565b610d9e6101008201612f59565b8d52016135df565b848a01528181019889526040519d848f9e928f938452519201528c61016082519101528c610180858301519101528c6101a060408301519101528c6101c06060830151910152015160a06101e08d01526102008c0190612864565b9851805160408c0152015160608a015251805160808a0152015160a088015251805160c0880152015160e0860152516001600160a01b038151166101008601520151805161012085015201516101408301520390f35b346105865760a03660031901126105865760043567ffffffffffffffff811161058657610120600319823603011261058657610e91612687565b610e9961269d565b9060643567ffffffffffffffff811161058657610eba903690600401612889565b60849491943567ffffffffffffffff811161058657610edd903690600401612889565b6040969196519663ef5bfc3760e01b88526080518880610f038585898960048601613065565b0381305afa978815610b1c576080519861109c575b50610fa794610869610fbf9895610f676001600160a01b0396610f5961087e9b976108779760405195869463ef5bfc3760e01b602087015260248601613065565b03601f1981018352826127a4565b6040519788937f7da0c462000000000000000000000000000000000000000000000000000000006020860152606060248601526084850190600401612cb3565b30604485015283810360231901606485015290612864565b60c0810151156110905760e0610fe091015160208082518301019101612f6d565b90610feb81516131c3565b916080515b825181101561108257806001600160a01b0361100e60019386612bbe565b5151166001600160a01b0360206110258488612bbe565b5101511660406110358488612bbe565b51015160406110448588612bbe565b5101519160405193611055856126c7565b84526020840152604083015260608201526110708287612bbe565b5261107b8186612bbe565b5001610ff0565b604051806101fa86826129c1565b60e00151602081519101fd5b61087791985094610869610fbf9895610f676001600160a01b0396610f5961087e9b976110df610fa79c3d80608051833e6110d781836127a4565b810190612f6d565b9e9750979b50509650509598505094610f18565b3461058657611101366128ba565b604097939592979691965196611116886126f9565b61111e613482565b8852602088019861112d612c32565b8a52604089019761113c612c32565b895261117961087e826111698b610f5960405193849263af32494360e01b60208501528d602485016134c5565b6001600160a01b0388168a61364e565b8a52878787876111be8888888860405198899788977f2e5a0a930000000000000000000000000000000000000000000000000000000089526080519a60048a0161358d565b0381608051305af1908115610b1c57608051916112fc575b508b5260e0810135601e198236030181121561058657810180359067ffffffffffffffff82116105865760208236039101136105865760141115611263575b61123d8a6101fa8b6112508f6040519586956020875251606060208801526080870190612abc565b9051858203601f19016040870152612946565b9051838203601f19016060850152612946565b906112a5939291604099989951998a9788977f9f2d37890000000000000000000000000000000000000000000000000000000089526080519a60048a0161358d565b0381608051305af1918215610b1c5761123d946101fa9361125092608051916112d8575b50835294829387808080611215565b6112f691503d80608051833e6112ee81836127a4565b810190612e70565b876112c9565b61131291503d80608051833e6112ee81836127a4565b8c6111d6565b34610586576101fa6113966113876108696108776001600160a01b0361133d366128ba565b9295809799966113519b959b939293612c32565b506040519b8c977fd72f25930000000000000000000000000000000000000000000000000000000060208a015260248901612dd7565b60208082518301019101612e70565b604051918291602083526020830190612946565b346105865760603660031901126105865760043567ffffffffffffffff8111610586576113db903690600401612889565b906113e4612687565b906113ed61269d565b926113f6612bf2565b506113ff61322f565b805190680100000000000000008211610801576080515482608051558083106119de575b5060808051805251949594907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b8383106119ba575050505060805192608051926001600160a01b038060805197169216926040965b8181106115b057878787825191611493836126f9565b8252602082015260805154916114a8836127c6565b6114b4825191826127a4565b838152602081019360805160805152602060805120608051955b8287106114e8578486018490528451806101fa8882612a2f565b84516114f381612715565b8254815285516080516001850180549061150c82613277565b808552916001811690811561158b575060011461154d575b5050926002928261153b60209460019703826127a4565b838201528152019201960195906114ce565b9091506080515260206080512090608051915b81831061157557505081016020018282611524565b6001816020925483868801015201920191611560565b60ff191660208087019190915292151560051b85019092019250849150839050611524565b87516115bc89826127a4565b600181526080515b601f198a01811061193657506115db8284866133d7565b61016081360312610586578951906115f282612731565b6115fb816126b3565b8252602081013560208301528a81013567ffffffffffffffff81116105865761162790369083016127fa565b8b830152606081013567ffffffffffffffff81116105865761164c90369083016127fa565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013560e083015261010081013561010083015261012081013567ffffffffffffffff8111610586576116a790369083016127fa565b6101208301526101408101359067ffffffffffffffff8211610586576116cf913691016127fa565b6101408201526116de82612b9b565b526116e881612b9b565b5084315a91873b15610586578a51907f1fad948c000000000000000000000000000000000000000000000000000000008252604482018c600484015281518091526064830190602060648260051b860101930191608051905b828210611861575050505087602483015281806080519203816080518c5af19081611848575b506118265750506117bf611779613146565b60206117868486886133d7565b8b51809481927fa6193531000000000000000000000000000000000000000000000000000000008352846004840152602483019061308c565b03818a5afa91821561053357608051926117ef575b50600192916117e9918b51916104e783612715565b0161147d565b90915060203d811161181f575b61180681836127a4565b60208260009281010312610529575051906117e96117d4565b503d6117fc565b9661055b60019398610561611842949b61055b5a8b319e6133fa565b956117e9565b608051611854916127a4565b608051610586578b611767565b909192938f9c9f989e979860209b9e9b61191a81929c9e999c6001946063198b82030187526101406119086118c06105eb8d51956001600160a01b03875116865288870151898701526101608188015191870152610160860190612864565b6080850151608085015260a085015160a085015260c085015160c085015260e085015160e0850152610100850151610100850152610120850151848203610120860152612864565b92015190610140818403910152612864565b9601920192019092919e9b9e9d97969d9c999c9a98959a611741565b6020908a979a999293999895989694965161195081612731565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c082015260805160e08201526080516101008201526060610120820152606061014082015282828601015201989598979190979693969492946115c4565b60026020826119cf6001949b9a9b51866132c8565b01920192019190969596611455565b6001600160ff1b03811681036107e9576001600160ff1b03831683036107e9576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b818110611a5e5750611423565b60805181556001810180546002929190611a7790613277565b80611a85575b505001611a51565b601f8111600114611a9e575060805190555b8980611a7d565b611abf9082608051526001601f602060805120920160051c820191016132b1565b608080518290525160208120918190559055611a97565b346105865760a03660031901126105865760043567ffffffffffffffff811161058657610120600319823603011261058657611b10612687565b611b1861269d565b9060643567ffffffffffffffff811161058657611b39903690600401612889565b608435949167ffffffffffffffff861161058657611bd1611bb394611be7936001600160a01b039893611b718a953690600401612889565b9590996040519b8c9a8b9a7fb21b38c8000000000000000000000000000000000000000000000000000000008c5260a060048d015260a48c0190600401612cb3565b951660248a0152166044880152868303600319016064880152613023565b9060031984830301608485015260805195613023565b0381608051305af18015610b1c5760805190611c0e575b6101fa90604051918291826129c1565b503d80608051833e611c2081836127a4565b8101906020818303126105865780519067ffffffffffffffff821161058657019080601f8301121561058657815191611c58836127c6565b91611c6660405193846127a4565b83835260208084019460071b8301019181831161058657602001935b828510611c96575050506101fa9150611bfe565b608085830312610586576020608091604051611cb1816126c7565b611cba88612f59565b8152611cc7838901612f59565b838201526040880151604082015260608801516060820152815201940193611c82565b346105865760603660031901126105865760043567ffffffffffffffff811161058657611d1b903690600401612889565b906001600160a01b03611d2c612687565b9181611d7b611d3961269d565b92611d42612bf2565b50604051967ffccb5ff6000000000000000000000000000000000000000000000000000000008852606060048901526064880191612d70565b931660248501521660448301528180608051920381608051305af18015610b1c5760805190611db5575b6101fa9060405191829182612a2f565b503d80608051833e611dc781836127a4565b8101906020818303126105865780519067ffffffffffffffff821161058657016060818303126105865760405190611dfe826126f9565b805182526020810151602083015260408101519067ffffffffffffffff8211610586570182601f8201121561058657805190611e39826127c6565b91611e4760405193846127a4565b80835260208084019160051b830101918583116105865760208101915b838310611e7e57505050506101fa92506040820152611da5565b825167ffffffffffffffff8111610586578201906040828903601f1901126105865760405190611ead82612715565b6020830151825260408301519167ffffffffffffffff831161058657611edb8a602080969581960101612e2e565b83820152815201920191611e64565b346105865760e036600319011261058657611f0361266c565b611f0b612687565b60443567ffffffffffffffff811161058657611f2b903690600401612889565b906064359267ffffffffffffffff8411610586576101206003198536030112610586576101fa94611ff361138794611fbe61139697611f68612c32565b50611fa96040519788947facbe911e00000000000000000000000000000000000000000000000000000000602087015260c0602487015260e4860191612d70565b83810360231901604485015290600401612cb3565b6001600160a01b0385166064830152608435608483015260a43560a483015260c43560c483015203601f1981018552846127a4565b61364e565b346105865760803660031901126105865760043567ffffffffffffffff811161058657610160600319823603011261058657612032612687565b9060443567ffffffffffffffff811161058657612053903690600401612889565b909260643567ffffffffffffffff811161058657612075903690600401612889565b6040959195519563ef5bfc3760e01b8752608051878061209b85858a8960048601613065565b0381305afa968715610b1c57608051976123c7575b50916120e36120f1926001600160a01b0395946080515060405197889463ef5bfc3760e01b602087015260248601613065565b03601f1981018552846127a4565b1691823b156105865761215d92612142916040518095819482937fd6383f9400000000000000000000000000000000000000000000000000000000845260606004850152606484019060040161308c565b30602484015282810360031901604484015260805196612864565b0391608051905af190816123b5575b5061237157612179613146565b60048151111561232d576001600160e01b031961219d6121988361385a565b613176565b167f220266b6000000000000000000000000000000000000000000000000000000008114612324577f462c71b20000000000000000000000000000000000000000000000000000000014801561231b575b6123135780516121fd916138d7565b8051810160c08282031261058657612217606083016131b0565b50612224608083016131b0565b5061223160a08301612e21565b9160c08101519167ffffffffffffffff831161058657612258926020809201920101612e2e565b9015612313578060208061227193518301019101612f6d565b9061227c81516131c3565b916080515b825181101561108257806001600160a01b0361229f60019386612bbe565b5151166001600160a01b0360206122b68488612bbe565b5101511660406122c68488612bbe565b51015160406122d58588612bbe565b51015191604051936122e6856126c7565b84526020840152604083015260608201526123018287612bbe565b5261230c8186612bbe565b5001612281565b602081519101fd5b506080516121ee565b50602081519101fd5b606460405162461bcd60e51b815260206004820152601d60248201527f556e657870656374656420726576657274206461746120666f726d61740000006044820152fd5b606460405162461bcd60e51b815260206004820152601c60248201527f73696d756c61746548616e646c654f70206d75737420726576657274000000006044820152fd5b6080516123c1916127a4565b8261216c565b6001600160a01b0394939197506120f1926123f06120e3923d80608051833e6110d781836127a4565b989294955092506120b0565b34610586576101fa6113966113876108696108776001600160a01b03612421366128ba565b9295809799966124359b959b939293612c32565b506040519b8c977f212eccc60000000000000000000000000000000000000000000000000000000060208a015260248901612dd7565b346105865760603660031901126105865761248461266c565b61248c612687565b60443567ffffffffffffffff811161058657366023820112156105865780600401356124b7816127c6565b916124c560405193846127a4565b8183526024602084019260051b820101903682116105865760248101925b82841061263c57505050508051926124fa846127c6565b9361250860405195866127a4565b808552612517601f19916127c6565b016080515b81811061262b5750506001600160a01b036080519316925b82518110156125c257600190606061254c8286612bbe565b5160405161257081610f59602082019463428557b160e11b86528960248401612bd2565b5a608051926080519251918a60805191f1156125a3575b6125918288612bbe565b5261259c8187612bbe565b5001612534565b503d60405190602081830101604052808252608051602083013e612587565b846040518091602082016020835281518091526040830190602060408260051b860101930191608051905b8282106125fc57505050500390f35b9193600191939550602061261b8192603f198a82030186528851612864565b96019201920185949391926125ed565b80606060208093890101520161251c565b833567ffffffffffffffff8111610586576020916126618392602436918701016127fa565b8152019301926124e3565b600435906001600160a01b038216820361268257565b600080fd5b602435906001600160a01b038216820361268257565b604435906001600160a01b038216820361268257565b35906001600160a01b038216820361268257565b6080810190811067ffffffffffffffff8211176126e357604052565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff8211176126e357604052565b6040810190811067ffffffffffffffff8211176126e357604052565b610160810190811067ffffffffffffffff8211176126e357604052565b60a0810190811067ffffffffffffffff8211176126e357604052565b610120810190811067ffffffffffffffff8211176126e357604052565b610100810190811067ffffffffffffffff8211176126e357604052565b90601f8019910116810190811067ffffffffffffffff8211176126e357604052565b67ffffffffffffffff81116126e35760051b60200190565b67ffffffffffffffff81116126e357601f01601f191660200190565b81601f8201121561268257803590612811826127de565b9261281f60405194856127a4565b8284526020838301011161268257816000926020809301838601378301015290565b60005b8381106128545750506000910152565b8181015183820152602001612844565b9060209161287d81518092818552858086019101612841565b601f01601f1916010190565b9181601f840112156126825782359167ffffffffffffffff8311612682576020808501948460051b01011161268257565b60e0600319820112612682576004356001600160a01b038116810361268257916024356001600160a01b0381168103612682579160443567ffffffffffffffff8111612682578161290d91600401612889565b929092916064359067ffffffffffffffff82116126825761012090829003600319011261268257600401906084359060a4359060c43590565b90815160028110156129ab578152608060408061299081602087015160a06020880152805160a08801526020810151151560c08801520151606060e0870152610100860190612864565b94015180518285015260208101516060850152015191015290565b634e487b7160e01b600052602160045260246000fd5b602060408183019282815284518094520192019060005b8181106129e55750505090565b90919260206080600192606087516001600160a01b0381511683526001600160a01b03858201511685840152604081015160408401520151606082015201940191019190916129d8565b602081526040608082019280516020840152602081015182840152015191606080830152825180915260a0820191602060a08360051b8301019401926000915b838310612a7e57505050505090565b9091929394602080612aad600193609f198682030187526040838b518051845201519181858201520190612864565b97019301930191939290612a6f565b9061010060e0612b1893805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e08201520190612864565b90565b6080600319820112612682576004356001600160a01b038116810361268257916024356001600160a01b0381168103612682579160443567ffffffffffffffff81116126825781612b6e91600401612889565b929092916064359067ffffffffffffffff8211612682576101209082900360031901126126825760040190565b805115612ba85760200190565b634e487b7160e01b600052603260045260246000fd5b8051821015612ba85760209160051b010190565b6040906001600160a01b03612b1894931681528160208201520190612864565b60405190612bff826126f9565b606060408360008152600060208201520152565b60405190612c20826126f9565b60006040838281528260208201520152565b60405190612c3f826126f9565b8160008152612c4c612bf2565b60208201526040612c5b612c13565b910152565b9035601e198236030181121561268257016020813591019167ffffffffffffffff821161268257813603831361268257565b908060209392818452848401376000828201840152601f01601f1916010190565b612b18916001600160a01b03612cc8836126b3565b16815260208201356020820152612d61612d55612d1c612d01612cee6040870187612c60565b6101206040880152610120870191612c92565b612d0e6060870187612c60565b908683036060880152612c92565b6080850135608085015260a085013560a085015260c085013560c0850152612d4760e0860186612c60565b9085830360e0870152612c92565b92610100810190612c60565b91610100818503910152612c92565b90602083828152019060208160051b85010193836000915b838310612d985750505050505090565b909192939495601f19828203018652863561011e1984360301811215612682576020612dc960019386839401612cb3565b980196019493019190612d88565b9397969592612e0c90612dfe6001600160a01b039360a0989560c0895260c0890191612d70565b908682036020880152612cb3565b97166040840152606083015260808201520152565b5190811515820361268257565b81601f82011215612682578051612e44816127de565b92612e5260405194856127a4565b8184526020828401011161268257612b189160208085019101612841565b6020818303126126825780519067ffffffffffffffff821161268257018082039160a083126126825760405192612ea6846126f9565b82516002811015612682578452602083015167ffffffffffffffff81116126825783016060818403126126825760405190612ee0826126f9565b80518252612ef060208201612e21565b602083015260408101519367ffffffffffffffff851161268257606094612f179201612e2e565b60408201526020850152603f19011261268257608060405191612f39836126f9565b604081015183526060810151602084015201516040820152604082015290565b51906001600160a01b038216820361268257565b6020818303126126825780519067ffffffffffffffff8211612682570181601f8201121561268257805190612fa1826127c6565b92612faf60405194856127a4565b8284526020606081860194028301019181831161268257602001925b828410612fd9575050505090565b606084830312612682576020606091604051612ff4816126f9565b612ffd87612f59565b815261300a838801612f59565b8382015260408701516040820152815201930192612fcb565b9160209082815201919060005b81811061303d5750505090565b9091926020806001926001600160a01b03613057886126b3565b168152019401929101613030565b929061307e90612b189593604086526040860191613023565b926020818503910152613023565b612b18916001600160a01b036130a1836126b3565b1681526020820135602082015261313761312b6130da612d016130c76040870187612c60565b6101606040880152610160870191612c92565b6080850135608085015260a085013560a085015260c085013560c085015260e085013560e085015261010085013561010085015261311c610120860186612c60565b90858303610120870152612c92565b92610140810190612c60565b91610140818503910152612c92565b3d15613171573d90613157826127de565b9161316560405193846127a4565b82523d6000602084013e565b606090565b90602082519201516001600160e01b031981169260048110613196575050565b6001600160e01b0319929350829060040360031b1b161690565b519065ffffffffffff8216820361268257565b906131cd826127c6565b6131da60405191826127a4565b82815280926131eb601f19916127c6565b019060005b8281106131fc57505050565b60209060405161320b816126c7565b600081526000838201526000604082015260006060820152828285010152016131f0565b6040519061323e6020836127a4565b600080835282815b82811061325257505050565b60209060405161326181612715565b6000815260608382015282828501015201613246565b90600182811c921680156132a7575b602083101461329157565b634e487b7160e01b600052602260045260246000fd5b91607f1691613286565b8181106132bc575050565b600081556001016132b1565b6001602091939293845181550192015191825167ffffffffffffffff81116126e3576132f48254613277565b601f811161339a575b506020601f8211600114613338578192939460009261332d575b50508160011b916000199060031b1c1916179055565b015190503880613317565b601f1982169083600052806000209160005b81811061338257509583600195969710613369575b505050811b019055565b015160001960f88460031b161c1916905538808061335f565b9192602060018192868b01518155019401920161334a565b6133c790836000526020600020601f840160051c810191602085106133cd575b601f0160051c01906132b1565b386132fd565b90915081906133ba565b9190811015612ba85760051b8101359061015e1981360301821215612682570190565b9190820391821161340757565b634e487b7160e01b600052601160045260246000fd5b9190820180921161340757565b60005490680100000000000000008210156126e3576001820180600055821015612ba857600080526134809160011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563016132c8565b565b6040519061348f82612787565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b91612b1893916134dd91604085526040850191612d70565b916020818403910152612cb3565b6020818303126126825780519067ffffffffffffffff8211612682570161010081830312612682576040519161352083612787565b815183526020820151602084015260408201516040840152606082015160608401526080820151608084015260a082015160a084015261356260c08301612e21565b60c084015260e082015167ffffffffffffffff8111612682576135859201612e2e565b60e082015290565b94919260c096999897946001600160a01b036135d095816135c29516895216602088015260e0604088015260e0870191612d70565b908482036060860152612cb3565b95608083015260a08201520152565b9190826040910312612682576040516135f781612715565b6020808294805184520151910152565b9190811015612ba85760051b0190565b356001600160a01b03811681036126825790565b9190811015612ba85760051b8101359061011e1981360301821215612682570190565b60405163428557b160e11b6020820190815260009485948594859261367c9186916108699160248401612bd2565b5a935193f16137f0573d60405191602082840101604052818352602083013e60048151106137865763428557b160e11b6001600160e01b03196136c16121988461385a565b161461371c5780516136d2916138d7565b80518101604082820312612682576136ec60208301612e21565b9160408101519167ffffffffffffffff831161268257613713926020809201920101612e2e565b90156123135790565b608460405162461bcd60e51b815260206004820152603d60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20776974682044656c6567617465416e64526576657274206572726f720000006064820152fd5b608460405162461bcd60e51b815260206004820152602a60248201527f44656c6567617465416e6452657665727420726576657274206461746120697360448201527f20746f6f2073686f7274000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602c60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20617320657870656374656400000000000000000000000000000000000000006064820152fd5b90600091600490606093815160048111156138cf575b80156138c7575b5082811061388457505050565b6040519450918290039101601f8201601f19165b8181015185820152601f19019081156138b15790613898565b5050604081840160006020820152016040528252565b905038613877565b925082613870565b9190600492606093815183811115613900575b60048111156138c7575082811061388457505050565b9250826138ea56fea264697066735822122007bc93c95a8d003fc2510f42ad9d4bc1bb0daddcc41458a2cfbbfcac3584699764736f6c634300081c0033", "sourceMap": "1015:21122:31:-:0;;;;;;;1432:27;;;;1015:21122;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x60a0604052600436101561001257600080fd5b60006080526080513560e01c8063141eb0331461246b5780632e5a0a93146123fc578063685f602614611ff85780637134990314611eea578063861d9d5914611cea57806390d81dfb14611ad6578063959c4cb7146113aa5780639f2d378914611318578063a4968eab146110f3578063b21b38c814610e57578063de040de114610b40578063ef5bfc37146108a1578063f1143043146108195763fccb5ff6146100bc57600080fd5b346105865760603660031901126105865760043567ffffffffffffffff8111610586576100ed903690600401612889565b906100f6612687565b906100ff61269d565b92610108612bf2565b5061011161322f565b805190680100000000000000008211610801576080515482608051558083106106f1575b5060808051805251949594907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b8383106106cd575050505060805192608051926001600160a01b038060805197169216926040965b8181106102c6578787878251916101a5836126f9565b8252602082015260805154916101ba836127c6565b6101c6825191826127a4565b838152602081019360805160805152602060805120608051955b8287106101fe578486018490528451806101fa8882612a2f565b0390f35b845161020981612715565b8254815285516080516001850180549061022282613277565b80855291600181169081156102a15750600114610263575b5050926002928261025160209460019703826127a4565b838201528152019201960195906101e0565b9091506080515260206080512090608051915b81831061028b5750508101602001828261023a565b6001816020925483868801015201920191610276565b60ff191660208087019190915292151560051b8501909201925084915083905061023a565b87516102d289826127a4565b600181526080515b601f198a01811061065b57506102f182848661362b565b61012081360312610586578951906103088261276a565b610311816126b3565b8252602081013560208301528a81013567ffffffffffffffff81116105865761033d90369083016127fa565b8b830152606081013567ffffffffffffffff81116105865761036290369083016127fa565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff8111610586576103a690369083016127fa565b60e08301526101008101359067ffffffffffffffff8211610586576103cd913691016127fa565b6101008201526103dc82612b9b565b526103e681612b9b565b5084315a91873b15610586578a51907f765e827f000000000000000000000000000000000000000000000000000000008252604482018c600484015281518091526064830190602060648260051b860101930191608051905b82821061058c575050505087602483015281806080519203816080518c5af1908161056d575b5061053f5750506104bd610477613146565b602061048484868861362b565b8b51809481927f22cdde4c0000000000000000000000000000000000000000000000000000000083528460048401526024830190612cb3565b03818a5afa91821561053357608051926104f9575b50600192916104f3918b51916104e783612715565b8252602082015261342a565b0161018f565b90915060203d811161052c575b61051081836127a4565b60208260009281010312610529575051906104f36104d2565b80fd5b503d610506565b8a513d608051823e3d90fd5b9661055b60019398610561610567949b61055b5a8b319e6133fa565b9061341d565b9a6133fa565b956104f3565b608051610579916127a4565b6080516105865738610465565b60805180fd5b909192938f9c9f989e979860209b9e9b61063f81929c9e999c6001946063198b820301875261010061062d6105fd6105eb8d51956001600160a01b03875116865288870151898701526101208188015191870152610120860190612864565b60608601518582036060870152612864565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e0860152612864565b92015190610100818403910152612864565b9601920192019092919e9b9e9d97969d9c999c9a98959a61043f565b6020908a979a99929399989598969496516106758161276a565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c0820152606060e0820152606061010082015282828601015201989598979190979693969492946102da565b60026020826106e26001949b9a9b51866132c8565b01920192019190969596610167565b6001600160ff1b03811681036107e9576001600160ff1b03831683036107e9576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b8181106107715750610135565b6080518155600181018054600292919061078a90613277565b80610798575b505001610764565b601f81116001146107b1575060805190555b3880610790565b6107d29082608051526001601f602060805120920160051c820191016132b1565b6080805182905251602081209181905590556107aa565b634e487b7160e01b6080515260116004526024608051fd5b634e487b7160e01b6080515260416004526024608051fd5b34610586576101fa61088d61087e6108776108696001600160a01b0361083e36612b1b565b61084c979394969197613482565b5060405197889363af32494360e01b6020860152602485016134c5565b03601f1981018652856127a4565b169061364e565b602080825183010191016134eb565b604051918291602083526020830190612abc565b346105865760403660031901126105865760043567ffffffffffffffff8111610586576108d2903690600401612889565b9060243567ffffffffffffffff8111610586576108f3903690600401612889565b838102939192918015818604831417156107e957610910856127c6565b9461091e60405196876127a4565b80865261092d601f19916127c6565b016080515b818110610b2957505060805190815b8181106109b857866040518091602082016020835281518091526020604084019201906080515b818110610976575050500390f35b9193509160206060600192604087516001600160a01b0381511683526001600160a01b0385820151168584015201516040820152019401910191849392610968565b6109cb6109c6828488613607565b613617565b608051906001600160a01b038116915b8681106109ed57505050600101610941565b86898273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03610a1b6109c6848787613607565b1603610a87575050508131905b610a366109c6828a8d613607565b916001600160a01b0360405193610a4c856126f9565b86855216602084015260408301528660001981146107e95787600193610a798e9a86610a8095019b612bbe565b528c612bbe565b50016109db565b610aa16109c66001600160a01b0392602495602095613607565b16604051928380927f70a082310000000000000000000000000000000000000000000000000000000082528860048301525afa908115610b1c5760805191610aeb575b5090610a28565b90506020813d8211610b14575b81610b05602093836127a4565b8101031261058657518b610ae4565b3d9150610af8565b6040513d608051823e3d90fd5b602090610b34612c13565b82828a01015201610932565b3461058657610c5d6108776108696001600160a01b03610b5f36612b1b565b604097939496919751610b718161274e565b604051610b7d8161274e565b6080518152608051602082015260805160408201526080516060820152606060808201528152604051610baf81612715565b60008152600060208201526020820152604051610bcb81612715565b60008152600060208201526040820152604051610be781612715565b60008152600060208201526060820152608060405191610c0683612715565b81518352604051610c1681612715565b6000815260006020820152602084015201526040519788937faec321fb000000000000000000000000000000000000000000000000000000006020860152602485016134c5565b8051810160208101916020818303126105865760208101519067ffffffffffffffff82116105865701808203601f1981019290610140136105865760405190610ca58261274e565b602083015167ffffffffffffffff8111610586578301602081019160a0919003126105865760405190610cd78261274e565b8051825260208101516020830152604081015160408301526060810151606083015260808101519067ffffffffffffffff821161058657610d1a91879101612e2e565b60808201528152610d2e84604084016135df565b9160208201928352610d4385608083016135df565b90604083019182526060610d5a8760c084016135df565b8482019081529560bf19011261058657602080958180959481610e0160808298610da66101409e6101206040519b610d918d612715565b610d9e6101008201612f59565b8d52016135df565b848a01528181019889526040519d848f9e928f938452519201528c61016082519101528c610180858301519101528c6101a060408301519101528c6101c06060830151910152015160a06101e08d01526102008c0190612864565b9851805160408c0152015160608a015251805160808a0152015160a088015251805160c0880152015160e0860152516001600160a01b038151166101008601520151805161012085015201516101408301520390f35b346105865760a03660031901126105865760043567ffffffffffffffff811161058657610120600319823603011261058657610e91612687565b610e9961269d565b9060643567ffffffffffffffff811161058657610eba903690600401612889565b60849491943567ffffffffffffffff811161058657610edd903690600401612889565b6040969196519663ef5bfc3760e01b88526080518880610f038585898960048601613065565b0381305afa978815610b1c576080519861109c575b50610fa794610869610fbf9895610f676001600160a01b0396610f5961087e9b976108779760405195869463ef5bfc3760e01b602087015260248601613065565b03601f1981018352826127a4565b6040519788937f7da0c462000000000000000000000000000000000000000000000000000000006020860152606060248601526084850190600401612cb3565b30604485015283810360231901606485015290612864565b60c0810151156110905760e0610fe091015160208082518301019101612f6d565b90610feb81516131c3565b916080515b825181101561108257806001600160a01b0361100e60019386612bbe565b5151166001600160a01b0360206110258488612bbe565b5101511660406110358488612bbe565b51015160406110448588612bbe565b5101519160405193611055856126c7565b84526020840152604083015260608201526110708287612bbe565b5261107b8186612bbe565b5001610ff0565b604051806101fa86826129c1565b60e00151602081519101fd5b61087791985094610869610fbf9895610f676001600160a01b0396610f5961087e9b976110df610fa79c3d80608051833e6110d781836127a4565b810190612f6d565b9e9750979b50509650509598505094610f18565b3461058657611101366128ba565b604097939592979691965196611116886126f9565b61111e613482565b8852602088019861112d612c32565b8a52604089019761113c612c32565b895261117961087e826111698b610f5960405193849263af32494360e01b60208501528d602485016134c5565b6001600160a01b0388168a61364e565b8a52878787876111be8888888860405198899788977f2e5a0a930000000000000000000000000000000000000000000000000000000089526080519a60048a0161358d565b0381608051305af1908115610b1c57608051916112fc575b508b5260e0810135601e198236030181121561058657810180359067ffffffffffffffff82116105865760208236039101136105865760141115611263575b61123d8a6101fa8b6112508f6040519586956020875251606060208801526080870190612abc565b9051858203601f19016040870152612946565b9051838203601f19016060850152612946565b906112a5939291604099989951998a9788977f9f2d37890000000000000000000000000000000000000000000000000000000089526080519a60048a0161358d565b0381608051305af1918215610b1c5761123d946101fa9361125092608051916112d8575b50835294829387808080611215565b6112f691503d80608051833e6112ee81836127a4565b810190612e70565b876112c9565b61131291503d80608051833e6112ee81836127a4565b8c6111d6565b34610586576101fa6113966113876108696108776001600160a01b0361133d366128ba565b9295809799966113519b959b939293612c32565b506040519b8c977fd72f25930000000000000000000000000000000000000000000000000000000060208a015260248901612dd7565b60208082518301019101612e70565b604051918291602083526020830190612946565b346105865760603660031901126105865760043567ffffffffffffffff8111610586576113db903690600401612889565b906113e4612687565b906113ed61269d565b926113f6612bf2565b506113ff61322f565b805190680100000000000000008211610801576080515482608051558083106119de575b5060808051805251949594907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b8383106119ba575050505060805192608051926001600160a01b038060805197169216926040965b8181106115b057878787825191611493836126f9565b8252602082015260805154916114a8836127c6565b6114b4825191826127a4565b838152602081019360805160805152602060805120608051955b8287106114e8578486018490528451806101fa8882612a2f565b84516114f381612715565b8254815285516080516001850180549061150c82613277565b808552916001811690811561158b575060011461154d575b5050926002928261153b60209460019703826127a4565b838201528152019201960195906114ce565b9091506080515260206080512090608051915b81831061157557505081016020018282611524565b6001816020925483868801015201920191611560565b60ff191660208087019190915292151560051b85019092019250849150839050611524565b87516115bc89826127a4565b600181526080515b601f198a01811061193657506115db8284866133d7565b61016081360312610586578951906115f282612731565b6115fb816126b3565b8252602081013560208301528a81013567ffffffffffffffff81116105865761162790369083016127fa565b8b830152606081013567ffffffffffffffff81116105865761164c90369083016127fa565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013560e083015261010081013561010083015261012081013567ffffffffffffffff8111610586576116a790369083016127fa565b6101208301526101408101359067ffffffffffffffff8211610586576116cf913691016127fa565b6101408201526116de82612b9b565b526116e881612b9b565b5084315a91873b15610586578a51907f1fad948c000000000000000000000000000000000000000000000000000000008252604482018c600484015281518091526064830190602060648260051b860101930191608051905b828210611861575050505087602483015281806080519203816080518c5af19081611848575b506118265750506117bf611779613146565b60206117868486886133d7565b8b51809481927fa6193531000000000000000000000000000000000000000000000000000000008352846004840152602483019061308c565b03818a5afa91821561053357608051926117ef575b50600192916117e9918b51916104e783612715565b0161147d565b90915060203d811161181f575b61180681836127a4565b60208260009281010312610529575051906117e96117d4565b503d6117fc565b9661055b60019398610561611842949b61055b5a8b319e6133fa565b956117e9565b608051611854916127a4565b608051610586578b611767565b909192938f9c9f989e979860209b9e9b61191a81929c9e999c6001946063198b82030187526101406119086118c06105eb8d51956001600160a01b03875116865288870151898701526101608188015191870152610160860190612864565b6080850151608085015260a085015160a085015260c085015160c085015260e085015160e0850152610100850151610100850152610120850151848203610120860152612864565b92015190610140818403910152612864565b9601920192019092919e9b9e9d97969d9c999c9a98959a611741565b6020908a979a999293999895989694965161195081612731565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c082015260805160e08201526080516101008201526060610120820152606061014082015282828601015201989598979190979693969492946115c4565b60026020826119cf6001949b9a9b51866132c8565b01920192019190969596611455565b6001600160ff1b03811681036107e9576001600160ff1b03831683036107e9576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b818110611a5e5750611423565b60805181556001810180546002929190611a7790613277565b80611a85575b505001611a51565b601f8111600114611a9e575060805190555b8980611a7d565b611abf9082608051526001601f602060805120920160051c820191016132b1565b608080518290525160208120918190559055611a97565b346105865760a03660031901126105865760043567ffffffffffffffff811161058657610120600319823603011261058657611b10612687565b611b1861269d565b9060643567ffffffffffffffff811161058657611b39903690600401612889565b608435949167ffffffffffffffff861161058657611bd1611bb394611be7936001600160a01b039893611b718a953690600401612889565b9590996040519b8c9a8b9a7fb21b38c8000000000000000000000000000000000000000000000000000000008c5260a060048d015260a48c0190600401612cb3565b951660248a0152166044880152868303600319016064880152613023565b9060031984830301608485015260805195613023565b0381608051305af18015610b1c5760805190611c0e575b6101fa90604051918291826129c1565b503d80608051833e611c2081836127a4565b8101906020818303126105865780519067ffffffffffffffff821161058657019080601f8301121561058657815191611c58836127c6565b91611c6660405193846127a4565b83835260208084019460071b8301019181831161058657602001935b828510611c96575050506101fa9150611bfe565b608085830312610586576020608091604051611cb1816126c7565b611cba88612f59565b8152611cc7838901612f59565b838201526040880151604082015260608801516060820152815201940193611c82565b346105865760603660031901126105865760043567ffffffffffffffff811161058657611d1b903690600401612889565b906001600160a01b03611d2c612687565b9181611d7b611d3961269d565b92611d42612bf2565b50604051967ffccb5ff6000000000000000000000000000000000000000000000000000000008852606060048901526064880191612d70565b931660248501521660448301528180608051920381608051305af18015610b1c5760805190611db5575b6101fa9060405191829182612a2f565b503d80608051833e611dc781836127a4565b8101906020818303126105865780519067ffffffffffffffff821161058657016060818303126105865760405190611dfe826126f9565b805182526020810151602083015260408101519067ffffffffffffffff8211610586570182601f8201121561058657805190611e39826127c6565b91611e4760405193846127a4565b80835260208084019160051b830101918583116105865760208101915b838310611e7e57505050506101fa92506040820152611da5565b825167ffffffffffffffff8111610586578201906040828903601f1901126105865760405190611ead82612715565b6020830151825260408301519167ffffffffffffffff831161058657611edb8a602080969581960101612e2e565b83820152815201920191611e64565b346105865760e036600319011261058657611f0361266c565b611f0b612687565b60443567ffffffffffffffff811161058657611f2b903690600401612889565b906064359267ffffffffffffffff8411610586576101206003198536030112610586576101fa94611ff361138794611fbe61139697611f68612c32565b50611fa96040519788947facbe911e00000000000000000000000000000000000000000000000000000000602087015260c0602487015260e4860191612d70565b83810360231901604485015290600401612cb3565b6001600160a01b0385166064830152608435608483015260a43560a483015260c43560c483015203601f1981018552846127a4565b61364e565b346105865760803660031901126105865760043567ffffffffffffffff811161058657610160600319823603011261058657612032612687565b9060443567ffffffffffffffff811161058657612053903690600401612889565b909260643567ffffffffffffffff811161058657612075903690600401612889565b6040959195519563ef5bfc3760e01b8752608051878061209b85858a8960048601613065565b0381305afa968715610b1c57608051976123c7575b50916120e36120f1926001600160a01b0395946080515060405197889463ef5bfc3760e01b602087015260248601613065565b03601f1981018552846127a4565b1691823b156105865761215d92612142916040518095819482937fd6383f9400000000000000000000000000000000000000000000000000000000845260606004850152606484019060040161308c565b30602484015282810360031901604484015260805196612864565b0391608051905af190816123b5575b5061237157612179613146565b60048151111561232d576001600160e01b031961219d6121988361385a565b613176565b167f220266b6000000000000000000000000000000000000000000000000000000008114612324577f462c71b20000000000000000000000000000000000000000000000000000000014801561231b575b6123135780516121fd916138d7565b8051810160c08282031261058657612217606083016131b0565b50612224608083016131b0565b5061223160a08301612e21565b9160c08101519167ffffffffffffffff831161058657612258926020809201920101612e2e565b9015612313578060208061227193518301019101612f6d565b9061227c81516131c3565b916080515b825181101561108257806001600160a01b0361229f60019386612bbe565b5151166001600160a01b0360206122b68488612bbe565b5101511660406122c68488612bbe565b51015160406122d58588612bbe565b51015191604051936122e6856126c7565b84526020840152604083015260608201526123018287612bbe565b5261230c8186612bbe565b5001612281565b602081519101fd5b506080516121ee565b50602081519101fd5b606460405162461bcd60e51b815260206004820152601d60248201527f556e657870656374656420726576657274206461746120666f726d61740000006044820152fd5b606460405162461bcd60e51b815260206004820152601c60248201527f73696d756c61746548616e646c654f70206d75737420726576657274000000006044820152fd5b6080516123c1916127a4565b8261216c565b6001600160a01b0394939197506120f1926123f06120e3923d80608051833e6110d781836127a4565b989294955092506120b0565b34610586576101fa6113966113876108696108776001600160a01b03612421366128ba565b9295809799966124359b959b939293612c32565b506040519b8c977f212eccc60000000000000000000000000000000000000000000000000000000060208a015260248901612dd7565b346105865760603660031901126105865761248461266c565b61248c612687565b60443567ffffffffffffffff811161058657366023820112156105865780600401356124b7816127c6565b916124c560405193846127a4565b8183526024602084019260051b820101903682116105865760248101925b82841061263c57505050508051926124fa846127c6565b9361250860405195866127a4565b808552612517601f19916127c6565b016080515b81811061262b5750506001600160a01b036080519316925b82518110156125c257600190606061254c8286612bbe565b5160405161257081610f59602082019463428557b160e11b86528960248401612bd2565b5a608051926080519251918a60805191f1156125a3575b6125918288612bbe565b5261259c8187612bbe565b5001612534565b503d60405190602081830101604052808252608051602083013e612587565b846040518091602082016020835281518091526040830190602060408260051b860101930191608051905b8282106125fc57505050500390f35b9193600191939550602061261b8192603f198a82030186528851612864565b96019201920185949391926125ed565b80606060208093890101520161251c565b833567ffffffffffffffff8111610586576020916126618392602436918701016127fa565b8152019301926124e3565b600435906001600160a01b038216820361268257565b600080fd5b602435906001600160a01b038216820361268257565b604435906001600160a01b038216820361268257565b35906001600160a01b038216820361268257565b6080810190811067ffffffffffffffff8211176126e357604052565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff8211176126e357604052565b6040810190811067ffffffffffffffff8211176126e357604052565b610160810190811067ffffffffffffffff8211176126e357604052565b60a0810190811067ffffffffffffffff8211176126e357604052565b610120810190811067ffffffffffffffff8211176126e357604052565b610100810190811067ffffffffffffffff8211176126e357604052565b90601f8019910116810190811067ffffffffffffffff8211176126e357604052565b67ffffffffffffffff81116126e35760051b60200190565b67ffffffffffffffff81116126e357601f01601f191660200190565b81601f8201121561268257803590612811826127de565b9261281f60405194856127a4565b8284526020838301011161268257816000926020809301838601378301015290565b60005b8381106128545750506000910152565b8181015183820152602001612844565b9060209161287d81518092818552858086019101612841565b601f01601f1916010190565b9181601f840112156126825782359167ffffffffffffffff8311612682576020808501948460051b01011161268257565b60e0600319820112612682576004356001600160a01b038116810361268257916024356001600160a01b0381168103612682579160443567ffffffffffffffff8111612682578161290d91600401612889565b929092916064359067ffffffffffffffff82116126825761012090829003600319011261268257600401906084359060a4359060c43590565b90815160028110156129ab578152608060408061299081602087015160a06020880152805160a08801526020810151151560c08801520151606060e0870152610100860190612864565b94015180518285015260208101516060850152015191015290565b634e487b7160e01b600052602160045260246000fd5b602060408183019282815284518094520192019060005b8181106129e55750505090565b90919260206080600192606087516001600160a01b0381511683526001600160a01b03858201511685840152604081015160408401520151606082015201940191019190916129d8565b602081526040608082019280516020840152602081015182840152015191606080830152825180915260a0820191602060a08360051b8301019401926000915b838310612a7e57505050505090565b9091929394602080612aad600193609f198682030187526040838b518051845201519181858201520190612864565b97019301930191939290612a6f565b9061010060e0612b1893805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e08201520190612864565b90565b6080600319820112612682576004356001600160a01b038116810361268257916024356001600160a01b0381168103612682579160443567ffffffffffffffff81116126825781612b6e91600401612889565b929092916064359067ffffffffffffffff8211612682576101209082900360031901126126825760040190565b805115612ba85760200190565b634e487b7160e01b600052603260045260246000fd5b8051821015612ba85760209160051b010190565b6040906001600160a01b03612b1894931681528160208201520190612864565b60405190612bff826126f9565b606060408360008152600060208201520152565b60405190612c20826126f9565b60006040838281528260208201520152565b60405190612c3f826126f9565b8160008152612c4c612bf2565b60208201526040612c5b612c13565b910152565b9035601e198236030181121561268257016020813591019167ffffffffffffffff821161268257813603831361268257565b908060209392818452848401376000828201840152601f01601f1916010190565b612b18916001600160a01b03612cc8836126b3565b16815260208201356020820152612d61612d55612d1c612d01612cee6040870187612c60565b6101206040880152610120870191612c92565b612d0e6060870187612c60565b908683036060880152612c92565b6080850135608085015260a085013560a085015260c085013560c0850152612d4760e0860186612c60565b9085830360e0870152612c92565b92610100810190612c60565b91610100818503910152612c92565b90602083828152019060208160051b85010193836000915b838310612d985750505050505090565b909192939495601f19828203018652863561011e1984360301811215612682576020612dc960019386839401612cb3565b980196019493019190612d88565b9397969592612e0c90612dfe6001600160a01b039360a0989560c0895260c0890191612d70565b908682036020880152612cb3565b97166040840152606083015260808201520152565b5190811515820361268257565b81601f82011215612682578051612e44816127de565b92612e5260405194856127a4565b8184526020828401011161268257612b189160208085019101612841565b6020818303126126825780519067ffffffffffffffff821161268257018082039160a083126126825760405192612ea6846126f9565b82516002811015612682578452602083015167ffffffffffffffff81116126825783016060818403126126825760405190612ee0826126f9565b80518252612ef060208201612e21565b602083015260408101519367ffffffffffffffff851161268257606094612f179201612e2e565b60408201526020850152603f19011261268257608060405191612f39836126f9565b604081015183526060810151602084015201516040820152604082015290565b51906001600160a01b038216820361268257565b6020818303126126825780519067ffffffffffffffff8211612682570181601f8201121561268257805190612fa1826127c6565b92612faf60405194856127a4565b8284526020606081860194028301019181831161268257602001925b828410612fd9575050505090565b606084830312612682576020606091604051612ff4816126f9565b612ffd87612f59565b815261300a838801612f59565b8382015260408701516040820152815201930192612fcb565b9160209082815201919060005b81811061303d5750505090565b9091926020806001926001600160a01b03613057886126b3565b168152019401929101613030565b929061307e90612b189593604086526040860191613023565b926020818503910152613023565b612b18916001600160a01b036130a1836126b3565b1681526020820135602082015261313761312b6130da612d016130c76040870187612c60565b6101606040880152610160870191612c92565b6080850135608085015260a085013560a085015260c085013560c085015260e085013560e085015261010085013561010085015261311c610120860186612c60565b90858303610120870152612c92565b92610140810190612c60565b91610140818503910152612c92565b3d15613171573d90613157826127de565b9161316560405193846127a4565b82523d6000602084013e565b606090565b90602082519201516001600160e01b031981169260048110613196575050565b6001600160e01b0319929350829060040360031b1b161690565b519065ffffffffffff8216820361268257565b906131cd826127c6565b6131da60405191826127a4565b82815280926131eb601f19916127c6565b019060005b8281106131fc57505050565b60209060405161320b816126c7565b600081526000838201526000604082015260006060820152828285010152016131f0565b6040519061323e6020836127a4565b600080835282815b82811061325257505050565b60209060405161326181612715565b6000815260608382015282828501015201613246565b90600182811c921680156132a7575b602083101461329157565b634e487b7160e01b600052602260045260246000fd5b91607f1691613286565b8181106132bc575050565b600081556001016132b1565b6001602091939293845181550192015191825167ffffffffffffffff81116126e3576132f48254613277565b601f811161339a575b506020601f8211600114613338578192939460009261332d575b50508160011b916000199060031b1c1916179055565b015190503880613317565b601f1982169083600052806000209160005b81811061338257509583600195969710613369575b505050811b019055565b015160001960f88460031b161c1916905538808061335f565b9192602060018192868b01518155019401920161334a565b6133c790836000526020600020601f840160051c810191602085106133cd575b601f0160051c01906132b1565b386132fd565b90915081906133ba565b9190811015612ba85760051b8101359061015e1981360301821215612682570190565b9190820391821161340757565b634e487b7160e01b600052601160045260246000fd5b9190820180921161340757565b60005490680100000000000000008210156126e3576001820180600055821015612ba857600080526134809160011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563016132c8565b565b6040519061348f82612787565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b91612b1893916134dd91604085526040850191612d70565b916020818403910152612cb3565b6020818303126126825780519067ffffffffffffffff8211612682570161010081830312612682576040519161352083612787565b815183526020820151602084015260408201516040840152606082015160608401526080820151608084015260a082015160a084015261356260c08301612e21565b60c084015260e082015167ffffffffffffffff8111612682576135859201612e2e565b60e082015290565b94919260c096999897946001600160a01b036135d095816135c29516895216602088015260e0604088015260e0870191612d70565b908482036060860152612cb3565b95608083015260a08201520152565b9190826040910312612682576040516135f781612715565b6020808294805184520151910152565b9190811015612ba85760051b0190565b356001600160a01b03811681036126825790565b9190811015612ba85760051b8101359061011e1981360301821215612682570190565b60405163428557b160e11b6020820190815260009485948594859261367c9186916108699160248401612bd2565b5a935193f16137f0573d60405191602082840101604052818352602083013e60048151106137865763428557b160e11b6001600160e01b03196136c16121988461385a565b161461371c5780516136d2916138d7565b80518101604082820312612682576136ec60208301612e21565b9160408101519167ffffffffffffffff831161268257613713926020809201920101612e2e565b90156123135790565b608460405162461bcd60e51b815260206004820152603d60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20776974682044656c6567617465416e64526576657274206572726f720000006064820152fd5b608460405162461bcd60e51b815260206004820152602a60248201527f44656c6567617465416e6452657665727420726576657274206461746120697360448201527f20746f6f2073686f7274000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602c60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20617320657870656374656400000000000000000000000000000000000000006064820152fd5b90600091600490606093815160048111156138cf575b80156138c7575b5082811061388457505050565b6040519450918290039101601f8201601f19165b8181015185820152601f19019081156138b15790613898565b5050604081840160006020820152016040528252565b905038613877565b925082613870565b9190600492606093815183811115613900575b60048111156138c7575082811061388457505050565b9250826138ea56fea264697066735822122007bc93c95a8d003fc2510f42ad9d4bc1bb0daddcc41458a2cfbbfcac3584699764736f6c634300081c0033", "sourceMap": "1015:21122:31:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;12024:23;;:::i;:::-;1015:21122;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;12240:1035;12260:18;;;;;;1015:21122;;;;;;;;;:::i;:::-;;;;13292:155;;1015:21122;-1:-1:-1;;1015:21122:31;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;13292:155;;;1015:21122;;;;;;;13292:155;1015:21122;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;12280:3;1015:21122;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;12480:10;;;;;;:::i;:::-;1015:21122;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;12461:29;;;:::i;:::-;;;;;:::i;:::-;;12529:19;;12582:9;12610:48;;;;;;1015:21122;;12610:48;1015:21122;12610:48;;1015:21122;;;12610:48;1015:21122;12610:48;;1015:21122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12610:48;;1015:21122;;;12610:48;;;;;;;1015:21122;-1:-1:-1;12606:659:31;;12963:302;;1015:21122;12963:302;;:::i;:::-;1015:21122;13131:10;;;;;:::i;:::-;1015:21122;;13106:36;;;;1015:21122;13106:36;;;1015:21122;13106:36;;1015:21122;;;;;;:::i;:::-;13106:36;;;;;;;;;;1015:21122;;13106:36;;;12606:659;1015:21122;;;;13160:90;1015:21122;;;;;;;:::i;:::-;;;;13181:68;;1015:21122;13160:90;:::i;:::-;1015:21122;12245:13;;13106:36;;;;1015:21122;13106:36;;;;;;;;;;:::i;:::-;1015:21122;13106:36;-1:-1:-1;13106:36:31;;;1015:21122;;;;-1:-1:-1;1015:21122:31;;13160:90;13106:36;;1015:21122;;;13106:36;;;;;;1015:21122;;;;;;;;;;12606:659;12696:9;12919:28;1015:21122;12696:9;;12843:36;12897:50;12696:9;;12859:20;12696:9;12746:19;;12859:20;;:::i;:::-;12843:36;;:::i;:::-;12919:28;;:::i;12897:50::-;12606:659;;;12610:48;1015:21122;;12610:48;;;:::i;:::-;1015:21122;;;;12610:48;;;1015:21122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;-1:-1:-1;1015:21122:31;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1015:21122:31;;;;;;;;;;;-1:-1:-1;;;1015:21122:31;;;;;;;;;;;;;;;10414:64;10338:59;10241:61;;-1:-1:-1;;;;;1015:21122:31;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;10241:61;;;-1:-1:-1;;;10241:61:31;;;;;;;;:::i;:::-;;1015:21122;;10241:61;;;;;;:::i;:::-;1015:21122;10338:59;;:::i;:::-;10241:61;1015:21122;;;10414:64;;;;;;:::i;:::-;1015:21122;;;;;10241:61;1015:21122;;10241:61;1015:21122;;;;:::i;:::-;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1015:21122:31;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;16470:20;;;;;;1015:21122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;16492:3;16526:12;;;;;;:::i;:::-;;:::i;:::-;1015:21122;;;-1:-1:-1;;;;;1015:21122:31;;16553:427;16573:17;;;;;;16492:3;;;1015:21122;;16455:13;;16592:3;16651:9;;;16672:42;-1:-1:-1;;;;;16651:9:31;;;;;;:::i;:::-;1015:21122;16651:64;16672:42;;16748:12;;;;;16647:220;;16938:9;;;;;;:::i;:::-;1015:21122;-1:-1:-1;;;;;1015:21122:31;;;;;;:::i;:::-;;;;;;16905:60;;1015:21122;;16905:60;;1015:21122;16894:7;-1:-1:-1;;1015:21122:31;;;;;;;16885:80;1015:21122;;;16885:80;1015:21122;;16885:80;;:::i;:::-;;;;:::i;:::-;;1015:21122;16558:13;;16647:220;16822:9;;-1:-1:-1;;;;;16822:9:31;1015:21122;16822:9;1015:21122;16822:9;;:::i;:::-;1015:21122;;;16816:32;;;;1015:21122;16816:32;;;1015:21122;16816:32;;1015:21122;16816:32;;;;;;;1015:21122;;16816:32;;;16647:220;16807:41;16647:220;;;16816:32;;;1015:21122;16816:32;;;;;;;;;1015:21122;16816:32;;;:::i;:::-;;;1015:21122;;;;;16816:32;;;;;;-1:-1:-1;16816:32:31;;;1015:21122;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;9651:59;9554:61;;-1:-1:-1;;;;;1015:21122:31;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;9554:61;;;9474:50;1015:21122;9554:61;;;;;;;:::i;9651:59::-;1015:21122;;9727:65;;1015:21122;9727:65;;1015:21122;;;;;;;;;9727:65;;1015:21122;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;-1:-1:-1;1015:21122:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;17891:35;-1:-1:-1;;;17891:35:31;;1015:21122;;17891:35;;;;;;;1015:21122;17891:35;;;:::i;:::-;;:4;;:35;;;;;;;1015:21122;;17891:35;;;1015:21122;;;;;18610:60;1015:21122;;18213:68;-1:-1:-1;;;;;1015:21122:31;18213:68;18396:89;1015:21122;;18062:229;1015:21122;;;18213:68;;;-1:-1:-1;;;1015:21122:31;18213:68;;;1015:21122;18213:68;;;:::i;:::-;;1015:21122;;18213:68;;;;;;:::i;:::-;1015:21122;;18062:229;;;18098:54;1015:21122;18062:229;;;1015:21122;;18062:229;;1015:21122;;;;;;;;:::i;:::-;17891:4;1015:21122;;;;;;;-1:-1:-1;;1015:21122:31;;;;;17891:4;1015:21122;:::i;18610:60::-;18728:29;;;1015:21122;;18723:110;;1015:21122;18934:58;18945:28;;;1015:21122;;;;18934:58;;;;;;:::i;:::-;1015:21122;19072:40;1015:21122;;19072:40;:::i;:::-;1015:21122;;;19170:3;1015:21122;;19143:25;;;;;19243:17;-1:-1:-1;;;;;19243:17:31;1015:21122;19243:17;;;:::i;:::-;;1015:21122;;-1:-1:-1;;;;;1015:21122:31;19290:17;;;;:::i;:::-;;:23;1015:21122;;;19346:17;;;;:::i;:::-;;:24;1015:21122;;19402:16;;;;:::i;:::-;;:23;1015:21122;;;;;;;;:::i;:::-;;;;19207:233;;1015:21122;;19207:233;;1015:21122;;19207:233;;1015:21122;19189:251;;;;:::i;:::-;;;;;;:::i;:::-;;1015:21122;19128:13;;19143:25;1015:21122;;;;19143:25;1015:21122;;:::i;18723:110::-;1015:21122;18793:28;;1015:21122;1712:95:17;;;;;17891:35:31;18062:229;17891:35;;;;1015:21122;18610:60;17891:35;;18213:68;-1:-1:-1;;;;;17891:35:31;18213:68;18396:89;17891:35;;;1015:21122;17891:35;;1015:21122;;;17891:35;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1015:21122;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;5602:64;5507:59;1015:21122;5410:61;1015:21122;5410:61;1015:21122;;5410:61;;;-1:-1:-1;;;1015:21122:31;5410:61;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1015:21122:31;;5507:59;;:::i;5602:64::-;5576:90;;1015:21122;;;;5762:162;1015:21122;;;;;;5762:162;;;;;1015:21122;5762:162;;1015:21122;;5762:162;1015:21122;5762:162;;;:::i;:::-;;1015:21122;;;5762:4;:162;;;;;;;1015:21122;;5762:162;;;1015:21122;5732:192;;;1015:21122;6029:29;;1015:21122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6069:2;-1:-1:-1;6029:42:31;6025:387;;1015:21122;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1015:21122:31;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1015:21122:31;;;;;;:::i;6025:387::-;1015:21122;6126:275;1015:21122;;;;;;;;6126:275;;;;;1015:21122;6126:275;;1015:21122;;6126:275;1015:21122;6126:275;;;:::i;:::-;;1015:21122;;;5762:4;6126:275;;;;;;;1015:21122;;;;;;;;6126:275;;;6025:387;6087:314;;;6025:387;;;;;;;;;6126:275;;;;;1015:21122;;;6126:275;;;;;;:::i;:::-;;;;;:::i;:::-;;;;5762:162;;;;;1015:21122;;;5762:162;;;;;;:::i;:::-;;;;1015:21122;;;;;8166:67;8090:59;7914:140;;-1:-1:-1;;;;;1015:21122:31;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;7914:140;;;7816:68;7914:140;;;;;;;;:::i;8090:59::-;7914:140;1015:21122;;;8166:67;;;;;;:::i;:::-;1015:21122;;;;;7914:140;1015:21122;;7914:140;1015:21122;;;;:::i;:::-;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;13836:23;;:::i;:::-;1015:21122;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;14052:1023;14072:18;;;;;;1015:21122;;;;;;;;;:::i;:::-;;;;15092:155;;1015:21122;-1:-1:-1;;1015:21122:31;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;15092:155;;;1015:21122;;;;;;;15092:155;1015:21122;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;14092:3;1015:21122;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;14280:10;;;;;;:::i;:::-;1015:21122;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;14261:29;;;:::i;:::-;;;;;:::i;:::-;;14329:19;;14382:9;14410:48;;;;;;1015:21122;;14410:48;1015:21122;14410:48;;1015:21122;;;14410:48;1015:21122;14410:48;;1015:21122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14410:48;;1015:21122;;;14410:48;;;;;;;1015:21122;-1:-1:-1;14406:659:31;;14763:302;;1015:21122;14763:302;;:::i;:::-;1015:21122;14931:10;;;;;:::i;:::-;1015:21122;;14906:36;;;;1015:21122;14906:36;;;1015:21122;14906:36;;1015:21122;;;;;;:::i;:::-;14906:36;;;;;;;;;;1015:21122;;14906:36;;;14406:659;1015:21122;;;;14960:90;1015:21122;;;;;;;:::i;14960:90::-;1015:21122;14057:13;;14906:36;;;;1015:21122;14906:36;;;;;;;;;;:::i;:::-;1015:21122;14906:36;-1:-1:-1;14906:36:31;;;1015:21122;;;;-1:-1:-1;1015:21122:31;;14960:90;14906:36;;;;;;;14406:659;14496:9;14719:28;1015:21122;14496:9;;14643:36;14697:50;14496:9;;14659:20;14496:9;14546:19;;14659:20;;:::i;14697:50::-;14406:659;;;14410:48;1015:21122;;14410:48;;;:::i;:::-;1015:21122;;;;14410:48;;;1015:21122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;-1:-1:-1;1015:21122:31;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;:::i;:::-;;;;;;17370:134;;;;;1015:21122;17370:134;;1015:21122;;17370:134;;1015:21122;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;17370:134;1015:21122;;;17370:4;:134;;;;;;1015:21122;;17370:134;;;1015:21122;;;;;;;;;;:::i;17370:134::-;;;1015:21122;;;17370:134;;;;;;:::i;:::-;;;1015:21122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17370:134;;;1015:21122;17370:134;;;;1015:21122;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1015:21122:31;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;11555:74;1015:21122;11555:74;;1015:21122;;11555:74;;1015:21122;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11555:74;;1015:21122;;;11555:4;:74;;;;;;1015:21122;;11555:74;;;1015:21122;;;;;;;;;;:::i;11555:74::-;;;1015:21122;;;11555:74;;;;;;:::i;:::-;;;1015:21122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11555:74;;1015:21122;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;8779:140;8955:59;1015:21122;;9031:67;1015:21122;;;:::i;:::-;;;;;8779:140;;;8698:51;1015:21122;8779:140;;;1015:21122;;8779:140;;1015:21122;;;;;;:::i;:::-;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;8779:140;1015:21122;;8779:140;;;;;;:::i;:::-;8955:59;:::i;1015:21122::-;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;19822:35;-1:-1:-1;;;19822:35:31;;1015:21122;;19822:35;;;;;;;1015:21122;19822:35;;;:::i;:::-;;:4;;:35;;;;;;;1015:21122;;19822:35;;;1015:21122;;;19983:68;;1015:21122;-1:-1:-1;;;;;1015:21122:31;;;;;;;19983:68;;;-1:-1:-1;;;1015:21122:31;19983:68;;;1015:21122;19983:68;;;:::i;:::-;;1015:21122;;19983:68;;;;;;:::i;:::-;1015:21122;20066:59;;;;;;1015:21122;;;;;;20066:59;;;;;;1015:21122;20066:59;;1015:21122;;20066:59;;1015:21122;;;;;;;;:::i;:::-;19822:4;1015:21122;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;:::i;:::-;20066:59;1015:21122;;;20066:59;;;;;;;1015:21122;-1:-1:-1;20062:1579:31;;20190:1451;;:::i;:::-;1015:21122;;;20240:22;;20236:100;;-1:-1:-1;;;;;;20368:30:31;20375:22;;;:::i;:::-;20368:30;:::i;:::-;1015:21122;20476:31;20464:43;;20460:113;;20667:45;20655:57;:104;;;;20062:1579;20634:204;;1015:21122;;20887:38;;;:::i;:::-;1015:21122;;20995:351;;1015:21122;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;20995:351;1015:21122;20995:351;;;1015:21122;;;;:::i;:::-;21419:14;;21415:86;;1015:21122;;;21588:42;1015:21122;;21588:42;;;;;;:::i;:::-;20062:1579;21720:40;1015:21122;;21720:40;:::i;:::-;1015:21122;;;21818:3;1015:21122;;21791:25;;;;;21891:17;-1:-1:-1;;;;;21891:17:31;1015:21122;21891:17;;;:::i;:::-;;1015:21122;;-1:-1:-1;;;;;1015:21122:31;21938:17;;;;:::i;:::-;;:23;1015:21122;;;21994:17;;;;:::i;:::-;;:24;1015:21122;;22050:16;;;;:::i;:::-;;:23;1015:21122;;;;;;;;:::i;:::-;;;;21855:233;;1015:21122;;21855:233;;1015:21122;;21855:233;;1015:21122;21837:251;;;;:::i;:::-;;;;;;:::i;:::-;;1015:21122;21776:13;;21415:86;1015:21122;1712:95:17;;;;;20655:104:31;1015:21122;;;20655:104;;20460:113;1712:95:17;1015:21122:31;1712:95:17;;;;;20236:100:31;1015:21122;;;-1:-1:-1;;;20282:39:31;;1015:21122;;20282:39;;1015:21122;;;;;;;;;;;20282:39;20062:1579;1015:21122;;;-1:-1:-1;;;20140:38:31;;1015:21122;;20140:38;;1015:21122;;;;;;;;;;;20140:38;20066:59;1015:21122;;20066:59;;;:::i;:::-;;;;19822:35;-1:-1:-1;;;;;19822:35:31;;;;;19983:68;19822:35;;19983:68;19822:35;;1015:21122;;;19822:35;;;;;;:::i;:::-;;;;;;;;;;1015:21122;;;;;7241:67;7165:59;6989:140;;-1:-1:-1;;;;;1015:21122:31;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;6989:140;;;6900:59;6989:140;;;;;;;;:::i;1015:21122::-;;;;;;-1:-1:-1;;1015:21122:31;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;2082:468;2119:3;1015:21122;;2102:15;;;;;1015:21122;;;2302:7;1015:21122;2302:7;;:::i;:::-;;1015:21122;;2215:95;;;1015:21122;2215:95;;;-1:-1:-1;;;2215:95:31;;;1015:21122;2215:95;;;:::i;:::-;2374:9;1015:21122;;;;;378:118:17;;1015:21122:31;;;;378:118:17;;2402:8:31;2398:97;;2119:3;2508:31;;;;:::i;:::-;;;;;;:::i;:::-;;1015:21122;2087:13;;2398:97;1204:349:17;;1015:21122:31;1204:349:17;;1015:21122:31;1204:349:17;;;;1015:21122:31;1204:349:17;;;;1015:21122:31;;;1204:349:17;;;2398:97:31;;2102:15;;1015:21122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1015:21122:31;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;1015:21122:31;;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1015:21122:31;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1015:21122:31;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1015:21122:31;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1015:21122:31;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;1015:21122:31;;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;-1:-1:-1;;1015:21122:31;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;-1:-1:-1;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1015:21122:31;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1015:21122:31;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;1015:21122:31;;;;;;;;-1:-1:-1;;1015:21122:31;;;;:::o;:::-;;;-1:-1:-1;;;;;1015:21122:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1015:21122:31;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1015:21122:31;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1015:21122:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1015:21122:31;;;;:::o;:::-;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;;1015:21122:31;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;;1015:21122:31;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;1015:21122:31;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;;;-1:-1:-1;1015:21122:31;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;;1015:21122:31;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;1015:21122:31;;-1:-1:-1;1015:21122:31;;;;-1:-1:-1;1015:21122:31;;;;-1:-1:-1;1015:21122:31;;;;-1:-1:-1;1015:21122:31;;;;-1:-1:-1;1015:21122:31;;;;-1:-1:-1;1015:21122:31;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;1015:21122:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1015:21122:31;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2693:1459::-;1015:21122;;-1:-1:-1;;;2977:60:31;;;;;;-1:-1:-1;;;;;;;;2977:60:31;;1015:21122;;2977:60;;;;;;:::i;:::-;3097:9;378:118:17;;;;-1:-1:-1;;1204:349:17;1015:21122:31;1204:349:17;;2977:60:31;1204:349:17;;;;1015:21122:31;1204:349:17;;;;2977:60:31;1204:349:17;;;2977:60:31;1015:21122;;3369:21;3365:104;;-1:-1:-1;;;;;;;;;3557:30:31;3564:22;;;:::i;3557:30::-;1015:21122;3601:60;3597:162;;1015:21122;;3843:38;;;:::i;:::-;1015:21122;;3961:37;;1015:21122;;;;;;;;2977:60;3961:37;;1015:21122;:::i;:::-;;;;;;;;;;;;;3961:37;2977:60;3961:37;;;1015:21122;;;;:::i;:::-;4013:25;;4009:98;;2693:1459;:::o;3597:162::-;3677:71;1015:21122;;-1:-1:-1;;;3677:71:31;;2977:60;;3677:71;;1015:21122;;2977:60;1015:21122;;;;;;;;;;;;;3677:71;3365:104;3406:52;1015:21122;;-1:-1:-1;;;3406:52:31;;2977:60;;3406:52;;1015:21122;;2977:60;1015:21122;;;;;;;;;;;;;3406:52;3118:174;3227:54;1015:21122;;-1:-1:-1;;;3227:54:31;;2977:60;;3227:54;;1015:21122;;2977:60;1015:21122;;;;;;;;;;;;;3227:54;15689:1115:29;;1015:21122:31;15689:1115:29;1015:21122:31;15801:19:29;1015:21122:31;15879:919:29;;;1015:21122:31;15879:919:29;;;;;15689:1115;15879:919;;;;15689:1115;15879:919;;;;;;15689:1115;;;:::o;15879:919::-;;;;-1:-1:-1;15879:919:29;;;;;;1015:21122:31;15879:919:29;;-1:-1:-1;;15879:919:29;;;;;;;;;;-1:-1:-1;;15879:919:29;;;;;;;;;;;;;;;;1015:21122:31;15879:919:29;;;;;;;;;15689:1115::o;15879:919::-;;;;;;;;-1:-1:-1;15879:919:29;;;15689:1115;;;1015:21122:31;15801:19:29;1015:21122:31;15879:919:29;;;;;;;;;15689:1115;1015:21122:31;15879:919:29;;;;;;;;;;;15689:1115;;;:::o;15879:919::-;;-1:-1:-1;15879:919:29;;", "linkReferences": {} }, "methodIdentifiers": { "binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": "71349903", "binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": "9f2d3789", "binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": "2e5a0a93", "filterOps06((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address,address)": "959c4cb7", "filterOps07((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,address)": "fccb5ff6", "filterOps08((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,address)": "861d9d59", "getBalances(address[],address[])": "ef5bfc37", "simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": "a4968eab", "simulateAssetChange06((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address,address[],address[])": "685f6026", "simulateAssetChange07((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,address,address[],address[])": "b21b38c8", "simulateAssetChange08((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,address,address[],address[])": "90d81dfb", "simulateEntryPointBulk(address,address,bytes[])": "141eb033", "simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "f1143043", "simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "de040de1" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"PimlicoSimulationDeployed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchCallGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchPaymasterVerificationGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchVerificationGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps06\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps07\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps08\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"getBalances\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetBalance[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"simulateAndEstimateGas\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"simulationResult\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"verificationGasLimit\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"tuple\"}],\"internalType\":\"struct PimlicoSimulations.SimulateAndEstimateGasResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"simulateAssetChange06\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetChange[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"entryPointSimulations\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"simulateAssetChange07\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetChange[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"entryPointSimulations\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"simulateAssetChange08\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetChange[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"simulateEntryPointBulk\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"}],\"name\":\"simulateHandleOp\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"}],\"name\":\"simulateValidation\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPoint.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Pimlico (https://github.com/pimlicolabs/alto)\",\"kind\":\"dev\",\"methods\":{},\"title\":\"PimlicoSimulations\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal call gas limit\"},\"binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal paymaster verification gas limit\"},\"binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal verification gas limit\"},\"simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Simulates userOp and estimates verification & paymaster gas limits\"},\"simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Simulates handling of a UserOperation\"},\"simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Simulates validation of a UserOperation\"}},\"notice\":\"An ERC-4337 EntryPoint simulation contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/PimlicoSimulations.sol\":\"PimlicoSimulations\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":@account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":@account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/\",\":@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/\",\":@test-utils/=lib/singleton-paymaster/test/utils/\",\":account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":singleton-paymaster/=lib/singleton-paymaster/src/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"lib/account-abstraction-v6/contracts/core/Helpers.sol\":{\"keccak256\":\"0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746\",\"dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU\"]},\"lib/account-abstraction-v6/contracts/core/NonceManager.sol\":{\"keccak256\":\"0xa17a4a6fde70088ab18ffe6df830f3efa31f1cd0e1a7160336c96e3c94984d25\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b38615df9f80c56282b72888e9ba1eb1a9413fa67a0dbf094deda7af9feb38e7\",\"dweb:/ipfs/QmSzcXetEJRH4UHuUmZiSgX6bFgfqHWfmyuxVnh4NosMk1\"]},\"lib/account-abstraction-v6/contracts/core/SenderCreator.sol\":{\"keccak256\":\"0x44b9449fec82d6cdfb01d52fdd5a72f90099c651316123810cf9633f00b018c2\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a9c0487390e72638681d175c45bc92425c802fffdca4bd0ae8457782ee284612\",\"dweb:/ipfs/QmVbzuehCUWJWqEHyMWuc6cRVbxfcMdFsmGL9o4Wz7WY2x\"]},\"lib/account-abstraction-v6/contracts/core/StakeManager.sol\":{\"keccak256\":\"0x21aa0956382bd000b1b8c3b1d19ca6ebcd6c9029eebb19c612fb38ee5dd2430a\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://0a625c8795354d9f429367f9c1d14eb8af7db9c7f2c2a2033e2066ced76a573a\",\"dweb:/ipfs/Qmd1j6UarUg54q1G2HCNCLQz8XGVZR1qxX7eQ6cytHpQPN\"]},\"lib/account-abstraction-v6/contracts/interfaces/IAccount.sol\":{\"keccak256\":\"0x556a0e5980de18e90b115553ed502408155ba35f58642823010d9288047bc418\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a0f420134b79596db8737173c7b933ae0a33059e107b6327c43aa40d4744a9e4\",\"dweb:/ipfs/QmRo8s1AhXmEMV7uPYnbpYwU19e9Bk6jmYBJTiPx3Fo85W\"]},\"lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b\",\"dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP\"]},\"lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf\",\"dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd\"]},\"lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2\",\"dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b\"]},\"lib/account-abstraction-v6/contracts/interfaces/IPaymaster.sol\":{\"keccak256\":\"0x36858ba8685024974f533530420688da3454d29996ebc42e410673a1ed2ec456\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://616cbcf51778b1961b7f20a547bec7efae6d1d565df0f651926241ed8bde9ad8\",\"dweb:/ipfs/QmaVsgffUUmeUJYgStvRr8cNZ1LBbrc3FYNLW4JT1dVLia\"]},\"lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3\",\"dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ\"]},\"lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol\":{\"keccak256\":\"0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c\",\"dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN\"]},\"lib/account-abstraction-v6/contracts/utils/Exec.sol\":{\"keccak256\":\"0x5b232117afbc2939f3ffc92745614867e9e1d475a3e1e5443adae13c200174f1\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://62e7365379a06ead7b47637945bcaee095d51aab1d3ac00ddec69443e6cbe9fe\",\"dweb:/ipfs/QmctG3aw4U3KMSMeJKoLJ1NJewjMWfppnd1m3kxNTe39Uy\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155\",\"dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5\"]},\"lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9\",\"dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe\"]},\"lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3\",\"dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk\"]},\"lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00\",\"dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj\"]},\"lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be\",\"dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3\"]},\"lib/account-abstraction-v7/contracts/utils/Exec.sol\":{\"keccak256\":\"0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77\",\"dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ\"]},\"lib/account-abstraction-v8/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77\",\"dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT\"]},\"lib/account-abstraction-v8/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x3b0423737e810dd886183ed32cfed9b45edd315f5fb3e1076fc19f86791adc64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c43081efaa2eda581b6249053281bb58cb0c4eeb6bf87efc55d95daaec2fc931\",\"dweb:/ipfs/QmXRN2JnyzWZNeFMHauTnDuc7jhxGY4ZkY37HTtjXKdC87\"]},\"lib/account-abstraction-v8/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xee493ae200b8c675bdc0da66f7ac6bb883ecea33672d7d0a95526b9eecdedf87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://979784a0333ac4ef3cc53ab9323a4b7fa574d929bd511f0eed03d3b0370db22d\",\"dweb:/ipfs/QmeiciN5gs4upM6vfKvrRxWiDBUzMU4uJQRRkJajhim9gX\"]},\"lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol\":{\"keccak256\":\"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570\",\"dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w\"]},\"lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85\",\"dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz\"]},\"lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79\",\"dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010\",\"dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x1c3cdf5158b29b16ba2d2c7ff1f6d4304754605441257e198b46803f0fa9df1a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6ed3d15fd372495ff76439878fb5e007ae0b39da3ce3d9fd877ee8147647bb2\",\"dweb:/ipfs/QmZ1zC91VhPHMXAdcY8SahJMwDsC2B5q9uXFF16R5eHmkV\"]},\"lib/solady/src/utils/LibBytes.sol\":{\"keccak256\":\"0x905f1c122299888350964a3bdd3dccd4b969273389b8d869f9aacb6871ff199e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6cff3ef7090aa48f214b960f373a33c15878f80e617443a3a4d53f130bab862\",\"dweb:/ipfs/QmdMEpK6ZVxUesqSpurqS9UkDnm1kAnjUeJKLN6ZWPNJnT\"]},\"src/IEntryPointSimulations.sol\":{\"keccak256\":\"0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5\",\"dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t\"]},\"src/PimlicoSimulations.sol\":{\"keccak256\":\"0x71bae4ed74fdd0738f48306f1955bbddbc61a25f3ea789301b6e4ef5a71dfa2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e44b92d0f02f4b7cf3949537e1addd246df2961cb5159848a9ed978a644a8454\",\"dweb:/ipfs/QmapaZaNzgJA2H5c4nFkWnQrx73FGwndxRsQFVcVpCM85W\"]},\"src/SimulationOverrideHelper.sol\":{\"keccak256\":\"0x98850f986164c992b840ba8e878814c459be0852debe8ad8d69140c09c6b05c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a57d5979f5557ccbc6947c3f6b5b6ec10f152609b9d11c265b20d925d915b559\",\"dweb:/ipfs/QmcA4kpMCnjCfEyky32w5S8qXzvvchZJhMBvJvmBp5tcep\"]},\"src/v06/EntryPointGasEstimationOverride.sol\":{\"keccak256\":\"0xd543e1dfeb6c3f74ce1964099364ce549563c11ea47c3cb97b02bc7e71e8f46d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://53d579d8654dbed980bb14d08ecafddb30b4f634ffedd4a64a2d30b39803d4f7\",\"dweb:/ipfs/QmTnT9yk1AB2LydP2QWiyuPrTHAZzqFcrLLjkB5Q1z7DpD\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.28+commit.7893614a" }, "language": "Solidity", "output": { "abi": [{ "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "type": "event", "name": "PimlicoSimulationDeployed", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchCallGas", "outputs": [{ "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchPaymasterVerificationGas", "outputs": [{ "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchVerificationGas", "outputs": [{ "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }] }, { "inputs": [{ "internalType": "struct UserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "filterOps06", "outputs": [{ "internalType": "struct PimlicoSimulations.FilterOpsResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "uint256", "name": "balanceChange", "type": "uint256" }, { "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "name": "rejectedUserOps", "type": "tuple[]", "components": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "bytes", "name": "revertReason", "type": "bytes" }] }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "filterOps07", "outputs": [{ "internalType": "struct PimlicoSimulations.FilterOpsResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "uint256", "name": "balanceChange", "type": "uint256" }, { "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "name": "rejectedUserOps", "type": "tuple[]", "components": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "bytes", "name": "revertReason", "type": "bytes" }] }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "filterOps08", "outputs": [{ "internalType": "struct PimlicoSimulations.FilterOpsResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "uint256", "name": "balanceChange", "type": "uint256" }, { "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "name": "rejectedUserOps", "type": "tuple[]", "components": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "bytes", "name": "revertReason", "type": "bytes" }] }] }] }, { "inputs": [{ "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "address[]", "name": "tokens", "type": "address[]" }], "stateMutability": "view", "type": "function", "name": "getBalances", "outputs": [{ "internalType": "struct PimlicoSimulations.AssetBalance[]", "name": "", "type": "tuple[]", "components": [{ "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }] }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateAndEstimateGas", "outputs": [{ "internalType": "struct PimlicoSimulations.SimulateAndEstimateGasResult", "name": "result", "type": "tuple", "components": [{ "internalType": "struct IEntryPointSimulations.ExecutionResult", "name": "simulationResult", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "paid", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "bool", "name": "targetSuccess", "type": "bool" }, { "internalType": "bytes", "name": "targetResult", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "verificationGasLimit", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "paymasterVerificationGasLimit", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }] }] }, { "inputs": [{ "internalType": "struct UserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }, { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "address[]", "name": "tokens", "type": "address[]" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateAssetChange06", "outputs": [{ "internalType": "struct PimlicoSimulations.AssetChange[]", "name": "", "type": "tuple[]", "components": [{ "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "balanceBefore", "type": "uint256" }, { "internalType": "uint256", "name": "balanceAfter", "type": "uint256" }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }, { "internalType": "address", "name": "entryPointSimulations", "type": "address" }, { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "address[]", "name": "tokens", "type": "address[]" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateAssetChange07", "outputs": [{ "internalType": "struct PimlicoSimulations.AssetChange[]", "name": "", "type": "tuple[]", "components": [{ "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "balanceBefore", "type": "uint256" }, { "internalType": "uint256", "name": "balanceAfter", "type": "uint256" }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }, { "internalType": "address", "name": "entryPointSimulations", "type": "address" }, { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "address[]", "name": "tokens", "type": "address[]" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateAssetChange08", "outputs": [{ "internalType": "struct PimlicoSimulations.AssetChange[]", "name": "", "type": "tuple[]", "components": [{ "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "balanceBefore", "type": "uint256" }, { "internalType": "uint256", "name": "balanceAfter", "type": "uint256" }] }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "bytes[]", "name": "data", "type": "bytes[]" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateEntryPointBulk", "outputs": [{ "internalType": "bytes[]", "name": "", "type": "bytes[]" }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateHandleOp", "outputs": [{ "internalType": "struct IEntryPointSimulations.ExecutionResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "paid", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "bool", "name": "targetSuccess", "type": "bool" }, { "internalType": "bytes", "name": "targetResult", "type": "bytes" }] }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateValidation", "outputs": [{ "internalType": "struct IEntryPointSimulations.ValidationResult", "name": "", "type": "tuple", "components": [{ "internalType": "struct IEntryPoint.ReturnInfo", "name": "returnInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterContext", "type": "bytes" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "senderInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "factoryInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "paymasterInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IEntryPoint.AggregatorStakeInfo", "name": "aggregatorInfo", "type": "tuple", "components": [{ "internalType": "address", "name": "aggregator", "type": "address" }, { "internalType": "struct IStakeManager.StakeInfo", "name": "stakeInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }] }] }] }], "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "userdoc": { "kind": "user", "methods": { "binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": { "notice": "Binary search for optimal call gas limit" }, "binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": { "notice": "Binary search for optimal paymaster verification gas limit" }, "binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": { "notice": "Binary search for optimal verification gas limit" }, "simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": { "notice": "Simulates userOp and estimates verification & paymaster gas limits" }, "simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "notice": "Simulates handling of a UserOperation" }, "simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "notice": "Simulates validation of a UserOperation" } }, "version": 1 } }, "settings": { "remappings": ["@account-abstraction-v6/=lib/account-abstraction-v6/contracts/", "@account-abstraction-v7/=lib/account-abstraction-v7/contracts/", "@account-abstraction-v8/=lib/account-abstraction-v8/contracts/", "@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/", "@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/", "@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/", "@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/", "@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/", "@test-utils/=lib/singleton-paymaster/test/utils/", "account-abstraction-v6/=lib/account-abstraction-v6/contracts/", "account-abstraction-v7/=lib/account-abstraction-v7/contracts/", "account-abstraction-v8/=lib/account-abstraction-v8/contracts/", "ds-test/=lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/", "openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/", "openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/", "openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/", "singleton-paymaster/=lib/singleton-paymaster/src/", "solady/=lib/solady/src/"], "optimizer": { "enabled": true, "runs": 1000 }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "src/PimlicoSimulations.sol": "PimlicoSimulations" }, "evmVersion": "london", "libraries": {}, "viaIR": true }, "sources": { "lib/account-abstraction-v6/contracts/core/Helpers.sol": { "keccak256": "0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a", "urls": ["bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746", "dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/core/NonceManager.sol": { "keccak256": "0xa17a4a6fde70088ab18ffe6df830f3efa31f1cd0e1a7160336c96e3c94984d25", "urls": ["bzz-raw://b38615df9f80c56282b72888e9ba1eb1a9413fa67a0dbf094deda7af9feb38e7", "dweb:/ipfs/QmSzcXetEJRH4UHuUmZiSgX6bFgfqHWfmyuxVnh4NosMk1"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/core/SenderCreator.sol": { "keccak256": "0x44b9449fec82d6cdfb01d52fdd5a72f90099c651316123810cf9633f00b018c2", "urls": ["bzz-raw://a9c0487390e72638681d175c45bc92425c802fffdca4bd0ae8457782ee284612", "dweb:/ipfs/QmVbzuehCUWJWqEHyMWuc6cRVbxfcMdFsmGL9o4Wz7WY2x"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/core/StakeManager.sol": { "keccak256": "0x21aa0956382bd000b1b8c3b1d19ca6ebcd6c9029eebb19c612fb38ee5dd2430a", "urls": ["bzz-raw://0a625c8795354d9f429367f9c1d14eb8af7db9c7f2c2a2033e2066ced76a573a", "dweb:/ipfs/Qmd1j6UarUg54q1G2HCNCLQz8XGVZR1qxX7eQ6cytHpQPN"], "license": "GPL-3.0-only" }, "lib/account-abstraction-v6/contracts/interfaces/IAccount.sol": { "keccak256": "0x556a0e5980de18e90b115553ed502408155ba35f58642823010d9288047bc418", "urls": ["bzz-raw://a0f420134b79596db8737173c7b933ae0a33059e107b6327c43aa40d4744a9e4", "dweb:/ipfs/QmRo8s1AhXmEMV7uPYnbpYwU19e9Bk6jmYBJTiPx3Fo85W"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol": { "keccak256": "0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a", "urls": ["bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b", "dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol": { "keccak256": "0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8", "urls": ["bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf", "dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol": { "keccak256": "0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12", "urls": ["bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2", "dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IPaymaster.sol": { "keccak256": "0x36858ba8685024974f533530420688da3454d29996ebc42e410673a1ed2ec456", "urls": ["bzz-raw://616cbcf51778b1961b7f20a547bec7efae6d1d565df0f651926241ed8bde9ad8", "dweb:/ipfs/QmaVsgffUUmeUJYgStvRr8cNZ1LBbrc3FYNLW4JT1dVLia"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f", "urls": ["bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3", "dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ"], "license": "GPL-3.0-only" }, "lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol": { "keccak256": "0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c", "urls": ["bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c", "dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/utils/Exec.sol": { "keccak256": "0x5b232117afbc2939f3ffc92745614867e9e1d475a3e1e5443adae13c200174f1", "urls": ["bzz-raw://62e7365379a06ead7b47637945bcaee095d51aab1d3ac00ddec69443e6cbe9fe", "dweb:/ipfs/QmctG3aw4U3KMSMeJKoLJ1NJewjMWfppnd1m3kxNTe39Uy"], "license": "LGPL-3.0-only" }, "lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol": { "keccak256": "0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588", "urls": ["bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155", "dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol": { "keccak256": "0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4", "urls": ["bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9", "dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol": { "keccak256": "0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb", "urls": ["bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3", "dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04", "urls": ["bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00", "dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj"], "license": "GPL-3.0-only" }, "lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol": { "keccak256": "0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359", "urls": ["bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be", "dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/utils/Exec.sol": { "keccak256": "0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74", "urls": ["bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77", "dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ"], "license": "LGPL-3.0-only" }, "lib/account-abstraction-v8/contracts/interfaces/IAggregator.sol": { "keccak256": "0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf", "urls": ["bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77", "dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/IEntryPoint.sol": { "keccak256": "0x3b0423737e810dd886183ed32cfed9b45edd315f5fb3e1076fc19f86791adc64", "urls": ["bzz-raw://c43081efaa2eda581b6249053281bb58cb0c4eeb6bf87efc55d95daaec2fc931", "dweb:/ipfs/QmXRN2JnyzWZNeFMHauTnDuc7jhxGY4ZkY37HTtjXKdC87"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/INonceManager.sol": { "keccak256": "0xee493ae200b8c675bdc0da66f7ac6bb883ecea33672d7d0a95526b9eecdedf87", "urls": ["bzz-raw://979784a0333ac4ef3cc53ab9323a4b7fa574d929bd511f0eed03d3b0370db22d", "dweb:/ipfs/QmeiciN5gs4upM6vfKvrRxWiDBUzMU4uJQRRkJajhim9gX"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol": { "keccak256": "0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4", "urls": ["bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570", "dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0", "urls": ["bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85", "dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol": { "keccak256": "0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800", "urls": ["bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79", "dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK"], "license": "MIT" }, "lib/openzeppelin-contracts-v4.8.3/contracts/security/ReentrancyGuard.sol": { "keccak256": "0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc", "urls": ["bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010", "dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u"], "license": "MIT" }, "lib/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol": { "keccak256": "0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d", "urls": ["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4", "dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"], "license": "MIT" }, "lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/ERC165.sol": { "keccak256": "0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b", "urls": ["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d", "dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"], "license": "MIT" }, "lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/IERC165.sol": { "keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1", "urls": ["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f", "dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"], "license": "MIT" }, "lib/solady/src/tokens/ERC20.sol": { "keccak256": "0x1c3cdf5158b29b16ba2d2c7ff1f6d4304754605441257e198b46803f0fa9df1a", "urls": ["bzz-raw://f6ed3d15fd372495ff76439878fb5e007ae0b39da3ce3d9fd877ee8147647bb2", "dweb:/ipfs/QmZ1zC91VhPHMXAdcY8SahJMwDsC2B5q9uXFF16R5eHmkV"], "license": "MIT" }, "lib/solady/src/utils/LibBytes.sol": { "keccak256": "0x905f1c122299888350964a3bdd3dccd4b969273389b8d869f9aacb6871ff199e", "urls": ["bzz-raw://b6cff3ef7090aa48f214b960f373a33c15878f80e617443a3a4d53f130bab862", "dweb:/ipfs/QmdMEpK6ZVxUesqSpurqS9UkDnm1kAnjUeJKLN6ZWPNJnT"], "license": "MIT" }, "src/IEntryPointSimulations.sol": { "keccak256": "0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41", "urls": ["bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5", "dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t"], "license": "MIT" }, "src/PimlicoSimulations.sol": { "keccak256": "0x71bae4ed74fdd0738f48306f1955bbddbc61a25f3ea789301b6e4ef5a71dfa2f", "urls": ["bzz-raw://e44b92d0f02f4b7cf3949537e1addd246df2961cb5159848a9ed978a644a8454", "dweb:/ipfs/QmapaZaNzgJA2H5c4nFkWnQrx73FGwndxRsQFVcVpCM85W"], "license": "MIT" }, "src/SimulationOverrideHelper.sol": { "keccak256": "0x98850f986164c992b840ba8e878814c459be0852debe8ad8d69140c09c6b05c5", "urls": ["bzz-raw://a57d5979f5557ccbc6947c3f6b5b6ec10f152609b9d11c265b20d925d915b559", "dweb:/ipfs/QmcA4kpMCnjCfEyky32w5S8qXzvvchZJhMBvJvmBp5tcep"], "license": "MIT" }, "src/v06/EntryPointGasEstimationOverride.sol": { "keccak256": "0xd543e1dfeb6c3f74ce1964099364ce549563c11ea47c3cb97b02bc7e71e8f46d", "urls": ["bzz-raw://53d579d8654dbed980bb14d08ecafddb30b4f634ffedd4a64a2d30b39803d4f7", "dweb:/ipfs/QmTnT9yk1AB2LydP2QWiyuPrTHAZzqFcrLLjkB5Q1z7DpD"], "license": "GPL-3.0" } }, "version": 1 }, "id": 31 }
|
|
1
|
+
{ "abi": [{ "type": "constructor", "inputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "binarySearchCallGas", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "binarySearchPaymasterVerificationGas", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "binarySearchVerificationGas", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "filterOps06", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct UserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct PimlicoSimulations.FilterOpsResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "balanceChange", "type": "uint256", "internalType": "uint256" }, { "name": "rejectedUserOps", "type": "tuple[]", "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "components": [{ "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "revertReason", "type": "bytes", "internalType": "bytes" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "filterOps07", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct PimlicoSimulations.FilterOpsResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "balanceChange", "type": "uint256", "internalType": "uint256" }, { "name": "rejectedUserOps", "type": "tuple[]", "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "components": [{ "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "revertReason", "type": "bytes", "internalType": "bytes" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "filterOps08", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct PimlicoSimulations.FilterOpsResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "balanceChange", "type": "uint256", "internalType": "uint256" }, { "name": "rejectedUserOps", "type": "tuple[]", "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "components": [{ "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "revertReason", "type": "bytes", "internalType": "bytes" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "getBalances", "inputs": [{ "name": "addresses", "type": "address[]", "internalType": "address[]" }, { "name": "tokens", "type": "address[]", "internalType": "address[]" }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct PimlicoSimulations.AssetBalance[]", "components": [{ "name": "addr", "type": "address", "internalType": "address" }, { "name": "token", "type": "address", "internalType": "address" }, { "name": "amount", "type": "uint256", "internalType": "uint256" }] }], "stateMutability": "view" }, { "type": "function", "name": "simulateAndEstimateGas", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "result", "type": "tuple", "internalType": "struct PimlicoSimulations.SimulateAndEstimateGasResult", "components": [{ "name": "simulationResult", "type": "tuple", "internalType": "struct IEntryPointSimulations.ExecutionResult", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "targetSuccess", "type": "bool", "internalType": "bool" }, { "name": "targetResult", "type": "bytes", "internalType": "bytes" }] }, { "name": "verificationGasLimit", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }, { "name": "paymasterVerificationGasLimit", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateAssetChange06", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct UserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }, { "name": "addresses", "type": "address[]", "internalType": "address[]" }, { "name": "tokens", "type": "address[]", "internalType": "address[]" }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct PimlicoSimulations.AssetChange[]", "components": [{ "name": "addr", "type": "address", "internalType": "address" }, { "name": "token", "type": "address", "internalType": "address" }, { "name": "balanceBefore", "type": "uint256", "internalType": "uint256" }, { "name": "balanceAfter", "type": "uint256", "internalType": "uint256" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateAssetChange07", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }, { "name": "entryPointSimulations", "type": "address", "internalType": "address" }, { "name": "addresses", "type": "address[]", "internalType": "address[]" }, { "name": "tokens", "type": "address[]", "internalType": "address[]" }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct PimlicoSimulations.AssetChange[]", "components": [{ "name": "addr", "type": "address", "internalType": "address" }, { "name": "token", "type": "address", "internalType": "address" }, { "name": "balanceBefore", "type": "uint256", "internalType": "uint256" }, { "name": "balanceAfter", "type": "uint256", "internalType": "uint256" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateAssetChange08", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }, { "name": "entryPointSimulations", "type": "address", "internalType": "address" }, { "name": "addresses", "type": "address[]", "internalType": "address[]" }, { "name": "tokens", "type": "address[]", "internalType": "address[]" }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct PimlicoSimulations.AssetChange[]", "components": [{ "name": "addr", "type": "address", "internalType": "address" }, { "name": "token", "type": "address", "internalType": "address" }, { "name": "balanceBefore", "type": "uint256", "internalType": "uint256" }, { "name": "balanceAfter", "type": "uint256", "internalType": "uint256" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateEntryPointBulk", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "data", "type": "bytes[]", "internalType": "bytes[]" }], "outputs": [{ "name": "", "type": "bytes[]", "internalType": "bytes[]" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateHandleOp", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ExecutionResult", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "targetSuccess", "type": "bool", "internalType": "bool" }, { "name": "targetResult", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateValidation", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ValidationResult", "components": [{ "name": "returnInfo", "type": "tuple", "internalType": "struct IEntryPoint.ReturnInfo", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterContext", "type": "bytes", "internalType": "bytes" }] }, { "name": "senderInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "factoryInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "paymasterInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "aggregatorInfo", "type": "tuple", "internalType": "struct IEntryPoint.AggregatorStakeInfo", "components": [{ "name": "aggregator", "type": "address", "internalType": "address" }, { "name": "stakeInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }] }] }], "stateMutability": "nonpayable" }, { "type": "event", "name": "PimlicoSimulationDeployed", "inputs": [], "anonymous": false }], "bytecode": { "object": "0x60808060405234603a577f20d4cb4d83077ae7f93cbc84f032f6918d99772c5bb321c4333007d83641ab7e600080a161389490816100408239f35b600080fdfe60a0604052600436101561001257600080fd5b60006080526080513560e01c8063141eb033146122a75780632e5a0a9314612238578063685f602614611e345780637134990314611d26578063861d9d5914611ac757806390d81dfb146118b3578063959c4cb7146112a75780639f2d378914611215578063a4968eab14610ff0578063b21b38c814610d54578063de040de114610a3d578063ef5bfc371461079e578063f1143043146107165763fccb5ff6146100bc57600080fd5b3461048b57606036600319011261048b5760043567ffffffffffffffff811161048b576100ed9036906004016126c5565b906100f66124c3565b906100ff6124d9565b90610108612a2e565b5061011161306b565b8051906801000000000000000082116106fe576080515482608051558083106105ee575b5060808051805251939493907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b8383106105ca575050505060805192608051916001600160a01b038060805195169216956040945b8181106101c9576101c58787878151926101a884612535565b835260208301526101b76132be565b81830152519182918261286b565b0390f35b85516101d587826125e0565b600181526080515b601f198801811061055c57506101f4828486613581565b6101208136031261048b5787519061020b826125a6565b610214816124ef565b8252602081013560208301528881013567ffffffffffffffff811161048b576102409036908301612636565b89830152606081013567ffffffffffffffff811161048b576102659036908301612636565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff811161048b576102a99036908301612636565b60e08301526101008101359067ffffffffffffffff821161048b576102d091369101612636565b6101008201526102df826129d7565b526102e9816129d7565b5084315a918a3b1561048b578851907f765e827f000000000000000000000000000000000000000000000000000000008252604482018a600484015281518091526064830190602060648260051b860101930191608051905b8282106104915750505050876024830152818c8180608051940391608051905af19081610472575b506104445750506103c261037c612f82565b6020610389848688613581565b8951809481927f22cdde4c0000000000000000000000000000000000000000000000000000000083528460048401526024830190612aef565b03818d5afa91821561043857608051926103fe575b50600192916103f8918951916103ec83612551565b82526020820152613266565b0161018f565b90915060203d8111610431575b61041581836125e0565b6020826000928101031261042e575051906103f86103d7565b80fd5b503d61040b565b88513d608051823e3d90fd5b956104606001939761046661046c949b6104605a8b319e613236565b90613259565b9a613236565b946103f8565b60805161047e916125e0565b60805161048b573861036a565b60805180fd5b909192936020989e9798808f9e9c9f610542909c9e999c6001946063198b82030187526101006105306105006104ee8d51956001600160a01b038751168652888701518987015261012081880151918701526101208601906126a0565b606086015185820360608701526126a0565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526126a0565b920151906101008184039101526126a0565b9601920192019092919d97969d9c999b9c9a98959a610342565b602090889795989992939996949651610574816125a6565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c0820152606060e082015260606101008201528282860101520197919097969395969492946101dd565b60026020826105df6001949a999a5186613104565b01920192019190959495610167565b6001600160ff1b03811681036106e6576001600160ff1b03831683036106e6576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b81811061066e5750610135565b60805181556001810180546002929190610687906130b3565b80610695575b505001610661565b601f81116001146106ae575060805190555b388061068d565b6106cf9082608051526001601f602060805120920160051c820191016130ed565b6080805182905251602081209181905590556106a7565b634e487b7160e01b6080515260116004526024608051fd5b634e487b7160e01b6080515260416004526024608051fd5b3461048b576101c561078a61077b6107746107666001600160a01b0361073b36612957565b6107499793949691976133d8565b5060405197889363af32494360e01b60208601526024850161341b565b03601f1981018652856125e0565b16906135a4565b60208082518301019101613441565b6040519182916020835260208301906128f8565b3461048b57604036600319011261048b5760043567ffffffffffffffff811161048b576107cf9036906004016126c5565b9060243567ffffffffffffffff811161048b576107f09036906004016126c5565b838102939192918015818604831417156106e65761080d85612602565b9461081b60405196876125e0565b80865261082a601f1991612602565b016080515b818110610a2657505060805190815b8181106108b557866040518091602082016020835281518091526020604084019201906080515b818110610873575050500390f35b9193509160206060600192604087516001600160a01b0381511683526001600160a01b0385820151168584015201516040820152019401910191849392610865565b6108c86108c382848861355d565b61356d565b608051906001600160a01b038116915b8681106108ea5750505060010161083e565b86898273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b036109186108c384878761355d565b1603610984575050508131905b6109336108c3828a8d61355d565b916001600160a01b036040519361094985612535565b86855216602084015260408301528660001981146106e657876001936109768e9a8661097d95019b6129fa565b528c6129fa565b50016108d8565b61099e6108c36001600160a01b039260249560209561355d565b16604051928380927f70a082310000000000000000000000000000000000000000000000000000000082528860048301525afa908115610a1957608051916109e8575b5090610925565b90506020813d8211610a11575b81610a02602093836125e0565b8101031261048b57518b6109e1565b3d91506109f5565b6040513d608051823e3d90fd5b602090610a31612a4f565b82828a0101520161082f565b3461048b57610b5a6107746107666001600160a01b03610a5c36612957565b604097939496919751610a6e8161258a565b604051610a7a8161258a565b6080518152608051602082015260805160408201526080516060820152606060808201528152604051610aac81612551565b60008152600060208201526020820152604051610ac881612551565b60008152600060208201526040820152604051610ae481612551565b60008152600060208201526060820152608060405191610b0383612551565b81518352604051610b1381612551565b6000815260006020820152602084015201526040519788937faec321fb0000000000000000000000000000000000000000000000000000000060208601526024850161341b565b80518101602081019160208183031261048b5760208101519067ffffffffffffffff821161048b5701808203601f19810192906101401361048b5760405190610ba28261258a565b602083015167ffffffffffffffff811161048b578301602081019160a09190031261048b5760405190610bd48261258a565b8051825260208101516020830152604081015160408301526060810151606083015260808101519067ffffffffffffffff821161048b57610c1791879101612c6a565b60808201528152610c2b8460408401613535565b9160208201928352610c408560808301613535565b90604083019182526060610c578760c08401613535565b8482019081529560bf19011261048b57602080958180959481610cfe60808298610ca36101409e6101206040519b610c8e8d612551565b610c9b6101008201612d95565b8d5201613535565b848a01528181019889526040519d848f9e928f938452519201528c61016082519101528c610180858301519101528c6101a060408301519101528c6101c06060830151910152015160a06101e08d01526102008c01906126a0565b9851805160408c0152015160608a015251805160808a0152015160a088015251805160c0880152015160e0860152516001600160a01b038151166101008601520151805161012085015201516101408301520390f35b3461048b5760a036600319011261048b5760043567ffffffffffffffff811161048b57610120600319823603011261048b57610d8e6124c3565b610d966124d9565b9060643567ffffffffffffffff811161048b57610db79036906004016126c5565b60849491943567ffffffffffffffff811161048b57610dda9036906004016126c5565b6040969196519663ef5bfc3760e01b88526080518880610e008585898960048601612ea1565b0381305afa978815610a195760805198610f99575b50610ea494610766610ebc9895610e646001600160a01b0396610e5661077b9b976107749760405195869463ef5bfc3760e01b602087015260248601612ea1565b03601f1981018352826125e0565b6040519788937f7da0c462000000000000000000000000000000000000000000000000000000006020860152606060248601526084850190600401612aef565b306044850152838103602319016064850152906126a0565b60c081015115610f8d5760e0610edd91015160208082518301019101612da9565b90610ee88151612fff565b916080515b8251811015610f7f57806001600160a01b03610f0b600193866129fa565b5151166001600160a01b036020610f2284886129fa565b510151166040610f3284886129fa565b5101516040610f4185886129fa565b5101519160405193610f5285612503565b8452602084015260408301526060820152610f6d82876129fa565b52610f7881866129fa565b5001610eed565b604051806101c586826127fd565b60e00151602081519101fd5b61077491985094610766610ebc9895610e646001600160a01b0396610e5661077b9b97610fdc610ea49c3d80608051833e610fd481836125e0565b810190612da9565b9e9750979b50509650509598505094610e15565b3461048b57610ffe366126f6565b60409793959297969196519661101388612535565b61101b6133d8565b8852602088019861102a612a6e565b8a526040890197611039612a6e565b895261107661077b826110668b610e5660405193849263af32494360e01b60208501528d6024850161341b565b6001600160a01b0388168a6135a4565b8a52878787876110bb8888888860405198899788977f2e5a0a930000000000000000000000000000000000000000000000000000000089526080519a60048a016134e3565b0381608051305af1908115610a1957608051916111f9575b508b5260e0810135601e198236030181121561048b57810180359067ffffffffffffffff821161048b57602082360391011361048b5760141115611160575b61113a8a6101c58b61114d8f60405195869560208752516060602088015260808701906128f8565b9051858203601f19016040870152612782565b9051838203601f19016060850152612782565b906111a2939291604099989951998a9788977f9f2d37890000000000000000000000000000000000000000000000000000000089526080519a60048a016134e3565b0381608051305af1918215610a195761113a946101c59361114d92608051916111d5575b50835294829387808080611112565b6111f391503d80608051833e6111eb81836125e0565b810190612cac565b876111c6565b61120f91503d80608051833e6111eb81836125e0565b8c6110d3565b3461048b576101c56112936112846107666107746001600160a01b0361123a366126f6565b92958097999661124e9b959b939293612a6e565b506040519b8c977fd72f25930000000000000000000000000000000000000000000000000000000060208a015260248901612c13565b60208082518301019101612cac565b604051918291602083526020830190612782565b3461048b57606036600319011261048b5760043567ffffffffffffffff811161048b576112d89036906004016126c5565b906112e16124c3565b906112ea6124d9565b906112f3612a2e565b506112fc61306b565b8051906801000000000000000082116106fe576080515482608051558083106117bb575b5060808051805251939493907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b838310611797575050505060805192608051916001600160a01b038060805195169216956040945b818110611393576101c58787878151926101a884612535565b855161139f87826125e0565b600181526080515b601f198801811061171757506113be828486613213565b6101608136031261048b578751906113d58261256d565b6113de816124ef565b8252602081013560208301528881013567ffffffffffffffff811161048b5761140a9036908301612636565b89830152606081013567ffffffffffffffff811161048b5761142f9036908301612636565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013560e083015261010081013561010083015261012081013567ffffffffffffffff811161048b5761148a9036908301612636565b6101208301526101408101359067ffffffffffffffff821161048b576114b291369101612636565b6101408201526114c1826129d7565b526114cb816129d7565b5084315a918a3b1561048b578851907f1fad948c000000000000000000000000000000000000000000000000000000008252604482018a600484015281518091526064830190602060648260051b860101930191608051905b8282106116465750505050876024830152818c8180608051940391608051905af1908161162d575b5061160b5750506115a461155e612f82565b602061156b848688613213565b8951809481927fa61935310000000000000000000000000000000000000000000000000000000083528460048401526024830190612ec8565b03818d5afa91821561043857608051926115d4575b50600192916115ce918951916103ec83612551565b0161137a565b90915060203d8111611604575b6115eb81836125e0565b6020826000928101031261042e575051906115ce6115b9565b503d6115e1565b9561046060019397610466611627949b6104605a8b319e613236565b946115ce565b608051611639916125e0565b60805161048b578b61154c565b909192936020989e9798808f9e9c9f6116fd909c9e999c6001946063198b82030187526101406116eb6116a36104ee8d51956001600160a01b038751168652888701518987015261016081880151918701526101608601906126a0565b6080850151608085015260a085015160a085015260c085015160c085015260e085015160e08501526101008501516101008501526101208501518482036101208601526126a0565b920151906101408184039101526126a0565b9601920192019092919d97969d9c999b9c9a98959a611524565b60209088979598999293999694965161172f8161256d565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c082015260805160e0820152608051610100820152606061012082015260606101408201528282860101520197919097969395969492946113a7565b60026020826117ac6001949a999a5186613104565b01920192019190959495611352565b6001600160ff1b03811681036106e6576001600160ff1b03831683036106e6576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b81811061183b5750611320565b60805181556001810180546002929190611854906130b3565b80611862575b50500161182e565b601f811160011461187b575060805190555b898061185a565b61189c9082608051526001601f602060805120920160051c820191016130ed565b608080518290525160208120918190559055611874565b3461048b5760a036600319011261048b5760043567ffffffffffffffff811161048b57610120600319823603011261048b576118ed6124c3565b6118f56124d9565b9060643567ffffffffffffffff811161048b576119169036906004016126c5565b608435949167ffffffffffffffff861161048b576119ae611990946119c4936001600160a01b03989361194e8a9536906004016126c5565b9590996040519b8c9a8b9a7fb21b38c8000000000000000000000000000000000000000000000000000000008c5260a060048d015260a48c0190600401612aef565b951660248a0152166044880152868303600319016064880152612e5f565b9060031984830301608485015260805195612e5f565b0381608051305af18015610a1957608051906119eb575b6101c590604051918291826127fd565b503d80608051833e6119fd81836125e0565b81019060208183031261048b5780519067ffffffffffffffff821161048b57019080601f8301121561048b57815191611a3583612602565b91611a4360405193846125e0565b83835260208084019460071b8301019181831161048b57602001935b828510611a73575050506101c591506119db565b60808583031261048b576020608091604051611a8e81612503565b611a9788612d95565b8152611aa4838901612d95565b838201526040880151604082015260608801516060820152815201940193611a5f565b3461048b57606036600319011261048b5760043567ffffffffffffffff811161048b57611af89036906004016126c5565b90611b016124c3565b906001600160a01b03611b126124d9565b611b1a612a2e565b501690813b1561048b576040517fd12e825d0000000000000000000000000000000000000000000000000000000081526080518160048183875af1611d0d575b50611b9f6001600160a01b0391604051957ffccb5ff6000000000000000000000000000000000000000000000000000000008752606060048801526064870191612bac565b9216602484015260448301528180608051920381608051305af18015610a195760805190611bd8575b6101c5906040519182918261286b565b503d80608051833e611bea81836125e0565b81019060208183031261048b5780519067ffffffffffffffff821161048b570160608183031261048b5760405190611c2182612535565b805182526020810151602083015260408101519067ffffffffffffffff821161048b570182601f8201121561048b57805190611c5c82612602565b91611c6a60405193846125e0565b80835260208084019160051b8301019185831161048b5760208101915b838310611ca157505050506101c592506040820152611bc8565b825167ffffffffffffffff811161048b578201906040828903601f19011261048b5760405190611cd082612551565b6020830151825260408301519167ffffffffffffffff831161048b57611cfe8a602080969581960101612c6a565b83820152815201920191611c87565b608051611d19916125e0565b60805161048b5784611b5a565b3461048b5760e036600319011261048b57611d3f6124a8565b611d476124c3565b60443567ffffffffffffffff811161048b57611d679036906004016126c5565b906064359267ffffffffffffffff841161048b57610120600319853603011261048b576101c594611e2f61128494611dfa61129397611da4612a6e565b50611de56040519788947facbe911e00000000000000000000000000000000000000000000000000000000602087015260c0602487015260e4860191612bac565b83810360231901604485015290600401612aef565b6001600160a01b0385166064830152608435608483015260a43560a483015260c43560c483015203601f1981018552846125e0565b6135a4565b3461048b57608036600319011261048b5760043567ffffffffffffffff811161048b57610160600319823603011261048b57611e6e6124c3565b9060443567ffffffffffffffff811161048b57611e8f9036906004016126c5565b909260643567ffffffffffffffff811161048b57611eb19036906004016126c5565b6040959195519563ef5bfc3760e01b87526080518780611ed785858a8960048601612ea1565b0381305afa968715610a195760805197612203575b5091611f1f611f2d926001600160a01b0395946080515060405197889463ef5bfc3760e01b602087015260248601612ea1565b03601f1981018552846125e0565b1691823b1561048b57611f9992611f7e916040518095819482937fd6383f94000000000000000000000000000000000000000000000000000000008452606060048501526064840190600401612ec8565b306024840152828103600319016044840152608051966126a0565b0391608051905af190816121f1575b506121ad57611fb5612f82565b600481511115612169576001600160e01b0319611fd9611fd4836137b0565b612fb2565b167f220266b6000000000000000000000000000000000000000000000000000000008114612160577f462c71b200000000000000000000000000000000000000000000000000000000148015612157575b61214f5780516120399161382d565b8051810160c08282031261048b5761205360608301612fec565b5061206060808301612fec565b5061206d60a08301612c5d565b9160c08101519167ffffffffffffffff831161048b57612094926020809201920101612c6a565b901561214f57806020806120ad93518301019101612da9565b906120b88151612fff565b916080515b8251811015610f7f57806001600160a01b036120db600193866129fa565b5151166001600160a01b0360206120f284886129fa565b51015116604061210284886129fa565b510151604061211185886129fa565b510151916040519361212285612503565b845260208401526040830152606082015261213d82876129fa565b5261214881866129fa565b50016120bd565b602081519101fd5b5060805161202a565b50602081519101fd5b606460405162461bcd60e51b815260206004820152601d60248201527f556e657870656374656420726576657274206461746120666f726d61740000006044820152fd5b606460405162461bcd60e51b815260206004820152601c60248201527f73696d756c61746548616e646c654f70206d75737420726576657274000000006044820152fd5b6080516121fd916125e0565b82611fa8565b6001600160a01b039493919750611f2d9261222c611f1f923d80608051833e610fd481836125e0565b98929495509250611eec565b3461048b576101c56112936112846107666107746001600160a01b0361225d366126f6565b9295809799966122719b959b939293612a6e565b506040519b8c977f212eccc60000000000000000000000000000000000000000000000000000000060208a015260248901612c13565b3461048b57606036600319011261048b576122c06124a8565b6122c86124c3565b60443567ffffffffffffffff811161048b573660238201121561048b5780600401356122f381612602565b9161230160405193846125e0565b8183526024602084019260051b8201019036821161048b5760248101925b828410612478575050505080519261233684612602565b9361234460405195866125e0565b808552612353601f1991612602565b016080515b8181106124675750506001600160a01b036080519316925b82518110156123fe57600190606061238882866129fa565b516040516123ac81610e56602082019463428557b160e11b86528960248401612a0e565b5a608051926080519251918a60805191f1156123df575b6123cd82886129fa565b526123d881876129fa565b5001612370565b503d60405190602081830101604052808252608051602083013e6123c3565b846040518091602082016020835281518091526040830190602060408260051b860101930191608051905b82821061243857505050500390f35b919360019193955060206124578192603f198a820301865288516126a0565b9601920192018594939192612429565b806060602080938901015201612358565b833567ffffffffffffffff811161048b5760209161249d839260243691870101612636565b81520193019261231f565b600435906001600160a01b03821682036124be57565b600080fd5b602435906001600160a01b03821682036124be57565b604435906001600160a01b03821682036124be57565b35906001600160a01b03821682036124be57565b6080810190811067ffffffffffffffff82111761251f57604052565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761251f57604052565b6040810190811067ffffffffffffffff82111761251f57604052565b610160810190811067ffffffffffffffff82111761251f57604052565b60a0810190811067ffffffffffffffff82111761251f57604052565b610120810190811067ffffffffffffffff82111761251f57604052565b610100810190811067ffffffffffffffff82111761251f57604052565b90601f8019910116810190811067ffffffffffffffff82111761251f57604052565b67ffffffffffffffff811161251f5760051b60200190565b67ffffffffffffffff811161251f57601f01601f191660200190565b81601f820112156124be5780359061264d8261261a565b9261265b60405194856125e0565b828452602083830101116124be57816000926020809301838601378301015290565b60005b8381106126905750506000910152565b8181015183820152602001612680565b906020916126b98151809281855285808601910161267d565b601f01601f1916010190565b9181601f840112156124be5782359167ffffffffffffffff83116124be576020808501948460051b0101116124be57565b60e06003198201126124be576004356001600160a01b03811681036124be57916024356001600160a01b03811681036124be579160443567ffffffffffffffff81116124be5781612749916004016126c5565b929092916064359067ffffffffffffffff82116124be576101209082900360031901126124be57600401906084359060a4359060c43590565b90815160028110156127e757815260806040806127cc81602087015160a06020880152805160a08801526020810151151560c08801520151606060e08701526101008601906126a0565b94015180518285015260208101516060850152015191015290565b634e487b7160e01b600052602160045260246000fd5b602060408183019282815284518094520192019060005b8181106128215750505090565b90919260206080600192606087516001600160a01b0381511683526001600160a01b0385820151168584015260408101516040840152015160608201520194019101919091612814565b602081526040608082019280516020840152602081015182840152015191606080830152825180915260a0820191602060a08360051b8301019401926000915b8383106128ba57505050505090565b90919293946020806128e9600193609f198682030187526040838b5180518452015191818582015201906126a0565b970193019301919392906128ab565b9061010060e061295493805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e082015201906126a0565b90565b60806003198201126124be576004356001600160a01b03811681036124be57916024356001600160a01b03811681036124be579160443567ffffffffffffffff81116124be57816129aa916004016126c5565b929092916064359067ffffffffffffffff82116124be576101209082900360031901126124be5760040190565b8051156129e45760200190565b634e487b7160e01b600052603260045260246000fd5b80518210156129e45760209160051b010190565b6040906001600160a01b03612954949316815281602082015201906126a0565b60405190612a3b82612535565b606060408360008152600060208201520152565b60405190612a5c82612535565b60006040838281528260208201520152565b60405190612a7b82612535565b8160008152612a88612a2e565b60208201526040612a97612a4f565b910152565b9035601e19823603018112156124be57016020813591019167ffffffffffffffff82116124be5781360383136124be57565b908060209392818452848401376000828201840152601f01601f1916010190565b612954916001600160a01b03612b04836124ef565b16815260208201356020820152612b9d612b91612b58612b3d612b2a6040870187612a9c565b6101206040880152610120870191612ace565b612b4a6060870187612a9c565b908683036060880152612ace565b6080850135608085015260a085013560a085015260c085013560c0850152612b8360e0860186612a9c565b9085830360e0870152612ace565b92610100810190612a9c565b91610100818503910152612ace565b90602083828152019060208160051b85010193836000915b838310612bd45750505050505090565b909192939495601f19828203018652863561011e19843603018112156124be576020612c0560019386839401612aef565b980196019493019190612bc4565b9397969592612c4890612c3a6001600160a01b039360a0989560c0895260c0890191612bac565b908682036020880152612aef565b97166040840152606083015260808201520152565b519081151582036124be57565b81601f820112156124be578051612c808161261a565b92612c8e60405194856125e0565b818452602082840101116124be57612954916020808501910161267d565b6020818303126124be5780519067ffffffffffffffff82116124be57018082039160a083126124be5760405192612ce284612535565b825160028110156124be578452602083015167ffffffffffffffff81116124be5783016060818403126124be5760405190612d1c82612535565b80518252612d2c60208201612c5d565b602083015260408101519367ffffffffffffffff85116124be57606094612d539201612c6a565b60408201526020850152603f1901126124be57608060405191612d7583612535565b604081015183526060810151602084015201516040820152604082015290565b51906001600160a01b03821682036124be57565b6020818303126124be5780519067ffffffffffffffff82116124be570181601f820112156124be57805190612ddd82612602565b92612deb60405194856125e0565b828452602060608186019402830101918183116124be57602001925b828410612e15575050505090565b6060848303126124be576020606091604051612e3081612535565b612e3987612d95565b8152612e46838801612d95565b8382015260408701516040820152815201930192612e07565b9160209082815201919060005b818110612e795750505090565b9091926020806001926001600160a01b03612e93886124ef565b168152019401929101612e6c565b9290612eba906129549593604086526040860191612e5f565b926020818503910152612e5f565b612954916001600160a01b03612edd836124ef565b16815260208201356020820152612f73612f67612f16612b3d612f036040870187612a9c565b6101606040880152610160870191612ace565b6080850135608085015260a085013560a085015260c085013560c085015260e085013560e0850152610100850135610100850152612f58610120860186612a9c565b90858303610120870152612ace565b92610140810190612a9c565b91610140818503910152612ace565b3d15612fad573d90612f938261261a565b91612fa160405193846125e0565b82523d6000602084013e565b606090565b90602082519201516001600160e01b031981169260048110612fd2575050565b6001600160e01b0319929350829060040360031b1b161690565b519065ffffffffffff821682036124be57565b9061300982612602565b61301660405191826125e0565b8281528092613027601f1991612602565b019060005b82811061303857505050565b60209060405161304781612503565b6000815260008382015260006040820152600060608201528282850101520161302c565b6040519061307a6020836125e0565b600080835282815b82811061308e57505050565b60209060405161309d81612551565b6000815260608382015282828501015201613082565b90600182811c921680156130e3575b60208310146130cd57565b634e487b7160e01b600052602260045260246000fd5b91607f16916130c2565b8181106130f8575050565b600081556001016130ed565b6001602091939293845181550192015191825167ffffffffffffffff811161251f5761313082546130b3565b601f81116131d6575b506020601f82116001146131745781929394600092613169575b50508160011b916000199060031b1c1916179055565b015190503880613153565b601f1982169083600052806000209160005b8181106131be575095836001959697106131a5575b505050811b019055565b015160001960f88460031b161c1916905538808061319b565b9192602060018192868b015181550194019201613186565b61320390836000526020600020601f840160051c81019160208510613209575b601f0160051c01906130ed565b38613139565b90915081906131f6565b91908110156129e45760051b8101359061015e19813603018212156124be570190565b9190820391821161324357565b634e487b7160e01b600052601160045260246000fd5b9190820180921161324357565b600054906801000000000000000082101561251f5760018201806000558210156129e457600080526132bc9160011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301613104565b565b600054906132cb82612602565b916132d960405193846125e0565b8083526000808052907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563602085015b8284106133155750505050565b60405161332181612551565b8254815260405160018401805460009161333a826130b3565b80855291600181169081156133b3575060011461337b575b5050926002928261336960209460019703826125e0565b83820152815201920193019290613308565b6000908152602081209092505b81831061339d57505081016020018282613352565b6001816020925483868801015201920191613388565b60ff191660208087019190915292151560051b85019092019250849150839050613352565b604051906133e5826125c3565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b91612954939161343391604085526040850191612bac565b916020818403910152612aef565b6020818303126124be5780519067ffffffffffffffff82116124be5701610100818303126124be5760405191613476836125c3565b815183526020820151602084015260408201516040840152606082015160608401526080820151608084015260a082015160a08401526134b860c08301612c5d565b60c084015260e082015167ffffffffffffffff81116124be576134db9201612c6a565b60e082015290565b94919260c096999897946001600160a01b0361352695816135189516895216602088015260e0604088015260e0870191612bac565b908482036060860152612aef565b95608083015260a08201520152565b91908260409103126124be5760405161354d81612551565b6020808294805184520151910152565b91908110156129e45760051b0190565b356001600160a01b03811681036124be5790565b91908110156129e45760051b8101359061011e19813603018212156124be570190565b60405163428557b160e11b602082019081526000948594859485926135d29186916107669160248401612a0e565b5a935193f1613746573d60405191602082840101604052818352602083013e60048151106136dc5763428557b160e11b6001600160e01b0319613617611fd4846137b0565b16146136725780516136289161382d565b805181016040828203126124be5761364260208301612c5d565b9160408101519167ffffffffffffffff83116124be57613669926020809201920101612c6a565b901561214f5790565b608460405162461bcd60e51b815260206004820152603d60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20776974682044656c6567617465416e64526576657274206572726f720000006064820152fd5b608460405162461bcd60e51b815260206004820152602a60248201527f44656c6567617465416e6452657665727420726576657274206461746120697360448201527f20746f6f2073686f7274000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602c60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20617320657870656374656400000000000000000000000000000000000000006064820152fd5b9060009160049060609381516004811115613825575b801561381d575b508281106137da57505050565b6040519450918290039101601f8201601f19165b8181015185820152601f190190811561380757906137ee565b5050604081840160006020820152016040528252565b9050386137cd565b9250826137c6565b9190600492606093815183811115613856575b600481111561381d57508281106137da57505050565b92508261384056fea264697066735822122009caf59aef2a8f6b905bb01a48e94f24bdc56d6ddb903e3cbe51b67fc7fde99864736f6c634300081c0033", "sourceMap": "1102:21517:31:-:0;;;;;;;1519:27;;;;1102:21517;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x60a0604052600436101561001257600080fd5b60006080526080513560e01c8063141eb033146122a75780632e5a0a9314612238578063685f602614611e345780637134990314611d26578063861d9d5914611ac757806390d81dfb146118b3578063959c4cb7146112a75780639f2d378914611215578063a4968eab14610ff0578063b21b38c814610d54578063de040de114610a3d578063ef5bfc371461079e578063f1143043146107165763fccb5ff6146100bc57600080fd5b3461048b57606036600319011261048b5760043567ffffffffffffffff811161048b576100ed9036906004016126c5565b906100f66124c3565b906100ff6124d9565b90610108612a2e565b5061011161306b565b8051906801000000000000000082116106fe576080515482608051558083106105ee575b5060808051805251939493907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b8383106105ca575050505060805192608051916001600160a01b038060805195169216956040945b8181106101c9576101c58787878151926101a884612535565b835260208301526101b76132be565b81830152519182918261286b565b0390f35b85516101d587826125e0565b600181526080515b601f198801811061055c57506101f4828486613581565b6101208136031261048b5787519061020b826125a6565b610214816124ef565b8252602081013560208301528881013567ffffffffffffffff811161048b576102409036908301612636565b89830152606081013567ffffffffffffffff811161048b576102659036908301612636565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff811161048b576102a99036908301612636565b60e08301526101008101359067ffffffffffffffff821161048b576102d091369101612636565b6101008201526102df826129d7565b526102e9816129d7565b5084315a918a3b1561048b578851907f765e827f000000000000000000000000000000000000000000000000000000008252604482018a600484015281518091526064830190602060648260051b860101930191608051905b8282106104915750505050876024830152818c8180608051940391608051905af19081610472575b506104445750506103c261037c612f82565b6020610389848688613581565b8951809481927f22cdde4c0000000000000000000000000000000000000000000000000000000083528460048401526024830190612aef565b03818d5afa91821561043857608051926103fe575b50600192916103f8918951916103ec83612551565b82526020820152613266565b0161018f565b90915060203d8111610431575b61041581836125e0565b6020826000928101031261042e575051906103f86103d7565b80fd5b503d61040b565b88513d608051823e3d90fd5b956104606001939761046661046c949b6104605a8b319e613236565b90613259565b9a613236565b946103f8565b60805161047e916125e0565b60805161048b573861036a565b60805180fd5b909192936020989e9798808f9e9c9f610542909c9e999c6001946063198b82030187526101006105306105006104ee8d51956001600160a01b038751168652888701518987015261012081880151918701526101208601906126a0565b606086015185820360608701526126a0565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526126a0565b920151906101008184039101526126a0565b9601920192019092919d97969d9c999b9c9a98959a610342565b602090889795989992939996949651610574816125a6565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c0820152606060e082015260606101008201528282860101520197919097969395969492946101dd565b60026020826105df6001949a999a5186613104565b01920192019190959495610167565b6001600160ff1b03811681036106e6576001600160ff1b03831683036106e6576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b81811061066e5750610135565b60805181556001810180546002929190610687906130b3565b80610695575b505001610661565b601f81116001146106ae575060805190555b388061068d565b6106cf9082608051526001601f602060805120920160051c820191016130ed565b6080805182905251602081209181905590556106a7565b634e487b7160e01b6080515260116004526024608051fd5b634e487b7160e01b6080515260416004526024608051fd5b3461048b576101c561078a61077b6107746107666001600160a01b0361073b36612957565b6107499793949691976133d8565b5060405197889363af32494360e01b60208601526024850161341b565b03601f1981018652856125e0565b16906135a4565b60208082518301019101613441565b6040519182916020835260208301906128f8565b3461048b57604036600319011261048b5760043567ffffffffffffffff811161048b576107cf9036906004016126c5565b9060243567ffffffffffffffff811161048b576107f09036906004016126c5565b838102939192918015818604831417156106e65761080d85612602565b9461081b60405196876125e0565b80865261082a601f1991612602565b016080515b818110610a2657505060805190815b8181106108b557866040518091602082016020835281518091526020604084019201906080515b818110610873575050500390f35b9193509160206060600192604087516001600160a01b0381511683526001600160a01b0385820151168584015201516040820152019401910191849392610865565b6108c86108c382848861355d565b61356d565b608051906001600160a01b038116915b8681106108ea5750505060010161083e565b86898273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b036109186108c384878761355d565b1603610984575050508131905b6109336108c3828a8d61355d565b916001600160a01b036040519361094985612535565b86855216602084015260408301528660001981146106e657876001936109768e9a8661097d95019b6129fa565b528c6129fa565b50016108d8565b61099e6108c36001600160a01b039260249560209561355d565b16604051928380927f70a082310000000000000000000000000000000000000000000000000000000082528860048301525afa908115610a1957608051916109e8575b5090610925565b90506020813d8211610a11575b81610a02602093836125e0565b8101031261048b57518b6109e1565b3d91506109f5565b6040513d608051823e3d90fd5b602090610a31612a4f565b82828a0101520161082f565b3461048b57610b5a6107746107666001600160a01b03610a5c36612957565b604097939496919751610a6e8161258a565b604051610a7a8161258a565b6080518152608051602082015260805160408201526080516060820152606060808201528152604051610aac81612551565b60008152600060208201526020820152604051610ac881612551565b60008152600060208201526040820152604051610ae481612551565b60008152600060208201526060820152608060405191610b0383612551565b81518352604051610b1381612551565b6000815260006020820152602084015201526040519788937faec321fb0000000000000000000000000000000000000000000000000000000060208601526024850161341b565b80518101602081019160208183031261048b5760208101519067ffffffffffffffff821161048b5701808203601f19810192906101401361048b5760405190610ba28261258a565b602083015167ffffffffffffffff811161048b578301602081019160a09190031261048b5760405190610bd48261258a565b8051825260208101516020830152604081015160408301526060810151606083015260808101519067ffffffffffffffff821161048b57610c1791879101612c6a565b60808201528152610c2b8460408401613535565b9160208201928352610c408560808301613535565b90604083019182526060610c578760c08401613535565b8482019081529560bf19011261048b57602080958180959481610cfe60808298610ca36101409e6101206040519b610c8e8d612551565b610c9b6101008201612d95565b8d5201613535565b848a01528181019889526040519d848f9e928f938452519201528c61016082519101528c610180858301519101528c6101a060408301519101528c6101c06060830151910152015160a06101e08d01526102008c01906126a0565b9851805160408c0152015160608a015251805160808a0152015160a088015251805160c0880152015160e0860152516001600160a01b038151166101008601520151805161012085015201516101408301520390f35b3461048b5760a036600319011261048b5760043567ffffffffffffffff811161048b57610120600319823603011261048b57610d8e6124c3565b610d966124d9565b9060643567ffffffffffffffff811161048b57610db79036906004016126c5565b60849491943567ffffffffffffffff811161048b57610dda9036906004016126c5565b6040969196519663ef5bfc3760e01b88526080518880610e008585898960048601612ea1565b0381305afa978815610a195760805198610f99575b50610ea494610766610ebc9895610e646001600160a01b0396610e5661077b9b976107749760405195869463ef5bfc3760e01b602087015260248601612ea1565b03601f1981018352826125e0565b6040519788937f7da0c462000000000000000000000000000000000000000000000000000000006020860152606060248601526084850190600401612aef565b306044850152838103602319016064850152906126a0565b60c081015115610f8d5760e0610edd91015160208082518301019101612da9565b90610ee88151612fff565b916080515b8251811015610f7f57806001600160a01b03610f0b600193866129fa565b5151166001600160a01b036020610f2284886129fa565b510151166040610f3284886129fa565b5101516040610f4185886129fa565b5101519160405193610f5285612503565b8452602084015260408301526060820152610f6d82876129fa565b52610f7881866129fa565b5001610eed565b604051806101c586826127fd565b60e00151602081519101fd5b61077491985094610766610ebc9895610e646001600160a01b0396610e5661077b9b97610fdc610ea49c3d80608051833e610fd481836125e0565b810190612da9565b9e9750979b50509650509598505094610e15565b3461048b57610ffe366126f6565b60409793959297969196519661101388612535565b61101b6133d8565b8852602088019861102a612a6e565b8a526040890197611039612a6e565b895261107661077b826110668b610e5660405193849263af32494360e01b60208501528d6024850161341b565b6001600160a01b0388168a6135a4565b8a52878787876110bb8888888860405198899788977f2e5a0a930000000000000000000000000000000000000000000000000000000089526080519a60048a016134e3565b0381608051305af1908115610a1957608051916111f9575b508b5260e0810135601e198236030181121561048b57810180359067ffffffffffffffff821161048b57602082360391011361048b5760141115611160575b61113a8a6101c58b61114d8f60405195869560208752516060602088015260808701906128f8565b9051858203601f19016040870152612782565b9051838203601f19016060850152612782565b906111a2939291604099989951998a9788977f9f2d37890000000000000000000000000000000000000000000000000000000089526080519a60048a016134e3565b0381608051305af1918215610a195761113a946101c59361114d92608051916111d5575b50835294829387808080611112565b6111f391503d80608051833e6111eb81836125e0565b810190612cac565b876111c6565b61120f91503d80608051833e6111eb81836125e0565b8c6110d3565b3461048b576101c56112936112846107666107746001600160a01b0361123a366126f6565b92958097999661124e9b959b939293612a6e565b506040519b8c977fd72f25930000000000000000000000000000000000000000000000000000000060208a015260248901612c13565b60208082518301019101612cac565b604051918291602083526020830190612782565b3461048b57606036600319011261048b5760043567ffffffffffffffff811161048b576112d89036906004016126c5565b906112e16124c3565b906112ea6124d9565b906112f3612a2e565b506112fc61306b565b8051906801000000000000000082116106fe576080515482608051558083106117bb575b5060808051805251939493907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b838310611797575050505060805192608051916001600160a01b038060805195169216956040945b818110611393576101c58787878151926101a884612535565b855161139f87826125e0565b600181526080515b601f198801811061171757506113be828486613213565b6101608136031261048b578751906113d58261256d565b6113de816124ef565b8252602081013560208301528881013567ffffffffffffffff811161048b5761140a9036908301612636565b89830152606081013567ffffffffffffffff811161048b5761142f9036908301612636565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013560e083015261010081013561010083015261012081013567ffffffffffffffff811161048b5761148a9036908301612636565b6101208301526101408101359067ffffffffffffffff821161048b576114b291369101612636565b6101408201526114c1826129d7565b526114cb816129d7565b5084315a918a3b1561048b578851907f1fad948c000000000000000000000000000000000000000000000000000000008252604482018a600484015281518091526064830190602060648260051b860101930191608051905b8282106116465750505050876024830152818c8180608051940391608051905af1908161162d575b5061160b5750506115a461155e612f82565b602061156b848688613213565b8951809481927fa61935310000000000000000000000000000000000000000000000000000000083528460048401526024830190612ec8565b03818d5afa91821561043857608051926115d4575b50600192916115ce918951916103ec83612551565b0161137a565b90915060203d8111611604575b6115eb81836125e0565b6020826000928101031261042e575051906115ce6115b9565b503d6115e1565b9561046060019397610466611627949b6104605a8b319e613236565b946115ce565b608051611639916125e0565b60805161048b578b61154c565b909192936020989e9798808f9e9c9f6116fd909c9e999c6001946063198b82030187526101406116eb6116a36104ee8d51956001600160a01b038751168652888701518987015261016081880151918701526101608601906126a0565b6080850151608085015260a085015160a085015260c085015160c085015260e085015160e08501526101008501516101008501526101208501518482036101208601526126a0565b920151906101408184039101526126a0565b9601920192019092919d97969d9c999b9c9a98959a611524565b60209088979598999293999694965161172f8161256d565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c082015260805160e0820152608051610100820152606061012082015260606101408201528282860101520197919097969395969492946113a7565b60026020826117ac6001949a999a5186613104565b01920192019190959495611352565b6001600160ff1b03811681036106e6576001600160ff1b03831683036106e6576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b81811061183b5750611320565b60805181556001810180546002929190611854906130b3565b80611862575b50500161182e565b601f811160011461187b575060805190555b898061185a565b61189c9082608051526001601f602060805120920160051c820191016130ed565b608080518290525160208120918190559055611874565b3461048b5760a036600319011261048b5760043567ffffffffffffffff811161048b57610120600319823603011261048b576118ed6124c3565b6118f56124d9565b9060643567ffffffffffffffff811161048b576119169036906004016126c5565b608435949167ffffffffffffffff861161048b576119ae611990946119c4936001600160a01b03989361194e8a9536906004016126c5565b9590996040519b8c9a8b9a7fb21b38c8000000000000000000000000000000000000000000000000000000008c5260a060048d015260a48c0190600401612aef565b951660248a0152166044880152868303600319016064880152612e5f565b9060031984830301608485015260805195612e5f565b0381608051305af18015610a1957608051906119eb575b6101c590604051918291826127fd565b503d80608051833e6119fd81836125e0565b81019060208183031261048b5780519067ffffffffffffffff821161048b57019080601f8301121561048b57815191611a3583612602565b91611a4360405193846125e0565b83835260208084019460071b8301019181831161048b57602001935b828510611a73575050506101c591506119db565b60808583031261048b576020608091604051611a8e81612503565b611a9788612d95565b8152611aa4838901612d95565b838201526040880151604082015260608801516060820152815201940193611a5f565b3461048b57606036600319011261048b5760043567ffffffffffffffff811161048b57611af89036906004016126c5565b90611b016124c3565b906001600160a01b03611b126124d9565b611b1a612a2e565b501690813b1561048b576040517fd12e825d0000000000000000000000000000000000000000000000000000000081526080518160048183875af1611d0d575b50611b9f6001600160a01b0391604051957ffccb5ff6000000000000000000000000000000000000000000000000000000008752606060048801526064870191612bac565b9216602484015260448301528180608051920381608051305af18015610a195760805190611bd8575b6101c5906040519182918261286b565b503d80608051833e611bea81836125e0565b81019060208183031261048b5780519067ffffffffffffffff821161048b570160608183031261048b5760405190611c2182612535565b805182526020810151602083015260408101519067ffffffffffffffff821161048b570182601f8201121561048b57805190611c5c82612602565b91611c6a60405193846125e0565b80835260208084019160051b8301019185831161048b5760208101915b838310611ca157505050506101c592506040820152611bc8565b825167ffffffffffffffff811161048b578201906040828903601f19011261048b5760405190611cd082612551565b6020830151825260408301519167ffffffffffffffff831161048b57611cfe8a602080969581960101612c6a565b83820152815201920191611c87565b608051611d19916125e0565b60805161048b5784611b5a565b3461048b5760e036600319011261048b57611d3f6124a8565b611d476124c3565b60443567ffffffffffffffff811161048b57611d679036906004016126c5565b906064359267ffffffffffffffff841161048b57610120600319853603011261048b576101c594611e2f61128494611dfa61129397611da4612a6e565b50611de56040519788947facbe911e00000000000000000000000000000000000000000000000000000000602087015260c0602487015260e4860191612bac565b83810360231901604485015290600401612aef565b6001600160a01b0385166064830152608435608483015260a43560a483015260c43560c483015203601f1981018552846125e0565b6135a4565b3461048b57608036600319011261048b5760043567ffffffffffffffff811161048b57610160600319823603011261048b57611e6e6124c3565b9060443567ffffffffffffffff811161048b57611e8f9036906004016126c5565b909260643567ffffffffffffffff811161048b57611eb19036906004016126c5565b6040959195519563ef5bfc3760e01b87526080518780611ed785858a8960048601612ea1565b0381305afa968715610a195760805197612203575b5091611f1f611f2d926001600160a01b0395946080515060405197889463ef5bfc3760e01b602087015260248601612ea1565b03601f1981018552846125e0565b1691823b1561048b57611f9992611f7e916040518095819482937fd6383f94000000000000000000000000000000000000000000000000000000008452606060048501526064840190600401612ec8565b306024840152828103600319016044840152608051966126a0565b0391608051905af190816121f1575b506121ad57611fb5612f82565b600481511115612169576001600160e01b0319611fd9611fd4836137b0565b612fb2565b167f220266b6000000000000000000000000000000000000000000000000000000008114612160577f462c71b200000000000000000000000000000000000000000000000000000000148015612157575b61214f5780516120399161382d565b8051810160c08282031261048b5761205360608301612fec565b5061206060808301612fec565b5061206d60a08301612c5d565b9160c08101519167ffffffffffffffff831161048b57612094926020809201920101612c6a565b901561214f57806020806120ad93518301019101612da9565b906120b88151612fff565b916080515b8251811015610f7f57806001600160a01b036120db600193866129fa565b5151166001600160a01b0360206120f284886129fa565b51015116604061210284886129fa565b510151604061211185886129fa565b510151916040519361212285612503565b845260208401526040830152606082015261213d82876129fa565b5261214881866129fa565b50016120bd565b602081519101fd5b5060805161202a565b50602081519101fd5b606460405162461bcd60e51b815260206004820152601d60248201527f556e657870656374656420726576657274206461746120666f726d61740000006044820152fd5b606460405162461bcd60e51b815260206004820152601c60248201527f73696d756c61746548616e646c654f70206d75737420726576657274000000006044820152fd5b6080516121fd916125e0565b82611fa8565b6001600160a01b039493919750611f2d9261222c611f1f923d80608051833e610fd481836125e0565b98929495509250611eec565b3461048b576101c56112936112846107666107746001600160a01b0361225d366126f6565b9295809799966122719b959b939293612a6e565b506040519b8c977f212eccc60000000000000000000000000000000000000000000000000000000060208a015260248901612c13565b3461048b57606036600319011261048b576122c06124a8565b6122c86124c3565b60443567ffffffffffffffff811161048b573660238201121561048b5780600401356122f381612602565b9161230160405193846125e0565b8183526024602084019260051b8201019036821161048b5760248101925b828410612478575050505080519261233684612602565b9361234460405195866125e0565b808552612353601f1991612602565b016080515b8181106124675750506001600160a01b036080519316925b82518110156123fe57600190606061238882866129fa565b516040516123ac81610e56602082019463428557b160e11b86528960248401612a0e565b5a608051926080519251918a60805191f1156123df575b6123cd82886129fa565b526123d881876129fa565b5001612370565b503d60405190602081830101604052808252608051602083013e6123c3565b846040518091602082016020835281518091526040830190602060408260051b860101930191608051905b82821061243857505050500390f35b919360019193955060206124578192603f198a820301865288516126a0565b9601920192018594939192612429565b806060602080938901015201612358565b833567ffffffffffffffff811161048b5760209161249d839260243691870101612636565b81520193019261231f565b600435906001600160a01b03821682036124be57565b600080fd5b602435906001600160a01b03821682036124be57565b604435906001600160a01b03821682036124be57565b35906001600160a01b03821682036124be57565b6080810190811067ffffffffffffffff82111761251f57604052565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761251f57604052565b6040810190811067ffffffffffffffff82111761251f57604052565b610160810190811067ffffffffffffffff82111761251f57604052565b60a0810190811067ffffffffffffffff82111761251f57604052565b610120810190811067ffffffffffffffff82111761251f57604052565b610100810190811067ffffffffffffffff82111761251f57604052565b90601f8019910116810190811067ffffffffffffffff82111761251f57604052565b67ffffffffffffffff811161251f5760051b60200190565b67ffffffffffffffff811161251f57601f01601f191660200190565b81601f820112156124be5780359061264d8261261a565b9261265b60405194856125e0565b828452602083830101116124be57816000926020809301838601378301015290565b60005b8381106126905750506000910152565b8181015183820152602001612680565b906020916126b98151809281855285808601910161267d565b601f01601f1916010190565b9181601f840112156124be5782359167ffffffffffffffff83116124be576020808501948460051b0101116124be57565b60e06003198201126124be576004356001600160a01b03811681036124be57916024356001600160a01b03811681036124be579160443567ffffffffffffffff81116124be5781612749916004016126c5565b929092916064359067ffffffffffffffff82116124be576101209082900360031901126124be57600401906084359060a4359060c43590565b90815160028110156127e757815260806040806127cc81602087015160a06020880152805160a08801526020810151151560c08801520151606060e08701526101008601906126a0565b94015180518285015260208101516060850152015191015290565b634e487b7160e01b600052602160045260246000fd5b602060408183019282815284518094520192019060005b8181106128215750505090565b90919260206080600192606087516001600160a01b0381511683526001600160a01b0385820151168584015260408101516040840152015160608201520194019101919091612814565b602081526040608082019280516020840152602081015182840152015191606080830152825180915260a0820191602060a08360051b8301019401926000915b8383106128ba57505050505090565b90919293946020806128e9600193609f198682030187526040838b5180518452015191818582015201906126a0565b970193019301919392906128ab565b9061010060e061295493805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e082015201906126a0565b90565b60806003198201126124be576004356001600160a01b03811681036124be57916024356001600160a01b03811681036124be579160443567ffffffffffffffff81116124be57816129aa916004016126c5565b929092916064359067ffffffffffffffff82116124be576101209082900360031901126124be5760040190565b8051156129e45760200190565b634e487b7160e01b600052603260045260246000fd5b80518210156129e45760209160051b010190565b6040906001600160a01b03612954949316815281602082015201906126a0565b60405190612a3b82612535565b606060408360008152600060208201520152565b60405190612a5c82612535565b60006040838281528260208201520152565b60405190612a7b82612535565b8160008152612a88612a2e565b60208201526040612a97612a4f565b910152565b9035601e19823603018112156124be57016020813591019167ffffffffffffffff82116124be5781360383136124be57565b908060209392818452848401376000828201840152601f01601f1916010190565b612954916001600160a01b03612b04836124ef565b16815260208201356020820152612b9d612b91612b58612b3d612b2a6040870187612a9c565b6101206040880152610120870191612ace565b612b4a6060870187612a9c565b908683036060880152612ace565b6080850135608085015260a085013560a085015260c085013560c0850152612b8360e0860186612a9c565b9085830360e0870152612ace565b92610100810190612a9c565b91610100818503910152612ace565b90602083828152019060208160051b85010193836000915b838310612bd45750505050505090565b909192939495601f19828203018652863561011e19843603018112156124be576020612c0560019386839401612aef565b980196019493019190612bc4565b9397969592612c4890612c3a6001600160a01b039360a0989560c0895260c0890191612bac565b908682036020880152612aef565b97166040840152606083015260808201520152565b519081151582036124be57565b81601f820112156124be578051612c808161261a565b92612c8e60405194856125e0565b818452602082840101116124be57612954916020808501910161267d565b6020818303126124be5780519067ffffffffffffffff82116124be57018082039160a083126124be5760405192612ce284612535565b825160028110156124be578452602083015167ffffffffffffffff81116124be5783016060818403126124be5760405190612d1c82612535565b80518252612d2c60208201612c5d565b602083015260408101519367ffffffffffffffff85116124be57606094612d539201612c6a565b60408201526020850152603f1901126124be57608060405191612d7583612535565b604081015183526060810151602084015201516040820152604082015290565b51906001600160a01b03821682036124be57565b6020818303126124be5780519067ffffffffffffffff82116124be570181601f820112156124be57805190612ddd82612602565b92612deb60405194856125e0565b828452602060608186019402830101918183116124be57602001925b828410612e15575050505090565b6060848303126124be576020606091604051612e3081612535565b612e3987612d95565b8152612e46838801612d95565b8382015260408701516040820152815201930192612e07565b9160209082815201919060005b818110612e795750505090565b9091926020806001926001600160a01b03612e93886124ef565b168152019401929101612e6c565b9290612eba906129549593604086526040860191612e5f565b926020818503910152612e5f565b612954916001600160a01b03612edd836124ef565b16815260208201356020820152612f73612f67612f16612b3d612f036040870187612a9c565b6101606040880152610160870191612ace565b6080850135608085015260a085013560a085015260c085013560c085015260e085013560e0850152610100850135610100850152612f58610120860186612a9c565b90858303610120870152612ace565b92610140810190612a9c565b91610140818503910152612ace565b3d15612fad573d90612f938261261a565b91612fa160405193846125e0565b82523d6000602084013e565b606090565b90602082519201516001600160e01b031981169260048110612fd2575050565b6001600160e01b0319929350829060040360031b1b161690565b519065ffffffffffff821682036124be57565b9061300982612602565b61301660405191826125e0565b8281528092613027601f1991612602565b019060005b82811061303857505050565b60209060405161304781612503565b6000815260008382015260006040820152600060608201528282850101520161302c565b6040519061307a6020836125e0565b600080835282815b82811061308e57505050565b60209060405161309d81612551565b6000815260608382015282828501015201613082565b90600182811c921680156130e3575b60208310146130cd57565b634e487b7160e01b600052602260045260246000fd5b91607f16916130c2565b8181106130f8575050565b600081556001016130ed565b6001602091939293845181550192015191825167ffffffffffffffff811161251f5761313082546130b3565b601f81116131d6575b506020601f82116001146131745781929394600092613169575b50508160011b916000199060031b1c1916179055565b015190503880613153565b601f1982169083600052806000209160005b8181106131be575095836001959697106131a5575b505050811b019055565b015160001960f88460031b161c1916905538808061319b565b9192602060018192868b015181550194019201613186565b61320390836000526020600020601f840160051c81019160208510613209575b601f0160051c01906130ed565b38613139565b90915081906131f6565b91908110156129e45760051b8101359061015e19813603018212156124be570190565b9190820391821161324357565b634e487b7160e01b600052601160045260246000fd5b9190820180921161324357565b600054906801000000000000000082101561251f5760018201806000558210156129e457600080526132bc9160011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301613104565b565b600054906132cb82612602565b916132d960405193846125e0565b8083526000808052907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563602085015b8284106133155750505050565b60405161332181612551565b8254815260405160018401805460009161333a826130b3565b80855291600181169081156133b3575060011461337b575b5050926002928261336960209460019703826125e0565b83820152815201920193019290613308565b6000908152602081209092505b81831061339d57505081016020018282613352565b6001816020925483868801015201920191613388565b60ff191660208087019190915292151560051b85019092019250849150839050613352565b604051906133e5826125c3565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b91612954939161343391604085526040850191612bac565b916020818403910152612aef565b6020818303126124be5780519067ffffffffffffffff82116124be5701610100818303126124be5760405191613476836125c3565b815183526020820151602084015260408201516040840152606082015160608401526080820151608084015260a082015160a08401526134b860c08301612c5d565b60c084015260e082015167ffffffffffffffff81116124be576134db9201612c6a565b60e082015290565b94919260c096999897946001600160a01b0361352695816135189516895216602088015260e0604088015260e0870191612bac565b908482036060860152612aef565b95608083015260a08201520152565b91908260409103126124be5760405161354d81612551565b6020808294805184520151910152565b91908110156129e45760051b0190565b356001600160a01b03811681036124be5790565b91908110156129e45760051b8101359061011e19813603018212156124be570190565b60405163428557b160e11b602082019081526000948594859485926135d29186916107669160248401612a0e565b5a935193f1613746573d60405191602082840101604052818352602083013e60048151106136dc5763428557b160e11b6001600160e01b0319613617611fd4846137b0565b16146136725780516136289161382d565b805181016040828203126124be5761364260208301612c5d565b9160408101519167ffffffffffffffff83116124be57613669926020809201920101612c6a565b901561214f5790565b608460405162461bcd60e51b815260206004820152603d60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20776974682044656c6567617465416e64526576657274206572726f720000006064820152fd5b608460405162461bcd60e51b815260206004820152602a60248201527f44656c6567617465416e6452657665727420726576657274206461746120697360448201527f20746f6f2073686f7274000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602c60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20617320657870656374656400000000000000000000000000000000000000006064820152fd5b9060009160049060609381516004811115613825575b801561381d575b508281106137da57505050565b6040519450918290039101601f8201601f19165b8181015185820152601f190190811561380757906137ee565b5050604081840160006020820152016040528252565b9050386137cd565b9250826137c6565b9190600492606093815183811115613856575b600481111561381d57508281106137da57505050565b92508261384056fea264697066735822122009caf59aef2a8f6b905bb01a48e94f24bdc56d6ddb903e3cbe51b67fc7fde99864736f6c634300081c0033", "sourceMap": "1102:21517:31:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;12506:23;;:::i;:::-;1102:21517;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;12722:1035;12742:18;;;;;;1102:21517;;;;;;;;;;:::i;:::-;;;;13774:155;;1102:21517;;;:::i;:::-;13774:155;;;1102:21517;;;;;;;:::i;:::-;;;;12762:3;1102:21517;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;12962:10;;;;;;:::i;:::-;1102:21517;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;12943:29;;;:::i;:::-;;;;;:::i;:::-;;13011:19;;13064:9;13092:48;;;;;;1102:21517;;13092:48;1102:21517;13092:48;;1102:21517;;;13092:48;1102:21517;13092:48;;1102:21517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13092:48;;1102:21517;;;13092:48;;;;;;;1102:21517;-1:-1:-1;13088:659:31;;13445:302;;1102:21517;13445:302;;:::i;:::-;1102:21517;13613:10;;;;;:::i;:::-;1102:21517;;13588:36;;;;1102:21517;13588:36;;;1102:21517;13588:36;;1102:21517;;;;;;:::i;:::-;13588:36;;;;;;;;;;1102:21517;;13588:36;;;13088:659;1102:21517;;;;13642:90;1102:21517;;;;;;;:::i;:::-;;;;13663:68;;1102:21517;13642:90;:::i;:::-;1102:21517;12727:13;;13588:36;;;;1102:21517;13588:36;;;;;;;;;;:::i;:::-;1102:21517;13588:36;-1:-1:-1;13588:36:31;;;1102:21517;;;;-1:-1:-1;1102:21517:31;;13642:90;13588:36;;1102:21517;;;13588:36;;;;;;1102:21517;;;;;;;;;;13088:659;13178:9;13401:28;1102:21517;13178:9;;13325:36;13379:50;13178:9;;13341:20;13178:9;13228:19;;13341:20;;:::i;:::-;13325:36;;:::i;:::-;13401:28;;:::i;13379:50::-;13088:659;;;13092:48;1102:21517;;13092:48;;;:::i;:::-;1102:21517;;;;13092:48;;;1102:21517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;-1:-1:-1;1102:21517:31;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1102:21517:31;;;;;;;;;;;-1:-1:-1;;;1102:21517:31;;;;;;;;;;;;;;;10501:64;10425:59;10328:61;;-1:-1:-1;;;;;1102:21517:31;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;10328:61;;;-1:-1:-1;;;10328:61:31;;;;;;;;:::i;:::-;;1102:21517;;10328:61;;;;;;:::i;:::-;1102:21517;10425:59;;:::i;:::-;10328:61;1102:21517;;;10501:64;;;;;;:::i;:::-;1102:21517;;;;;10328:61;1102:21517;;10328:61;1102:21517;;;;:::i;:::-;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1102:21517:31;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;16952:20;;;;;;1102:21517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;16974:3;17008:12;;;;;;:::i;:::-;;:::i;:::-;1102:21517;;;-1:-1:-1;;;;;1102:21517:31;;17035:427;17055:17;;;;;;16974:3;;;1102:21517;;16937:13;;17074:3;17133:9;;;17154:42;-1:-1:-1;;;;;17133:9:31;;;;;;:::i;:::-;1102:21517;17133:64;17154:42;;17230:12;;;;;17129:220;;17420:9;;;;;;:::i;:::-;1102:21517;-1:-1:-1;;;;;1102:21517:31;;;;;;:::i;:::-;;;;;;17387:60;;1102:21517;;17387:60;;1102:21517;17376:7;-1:-1:-1;;1102:21517:31;;;;;;;17367:80;1102:21517;;;17367:80;1102:21517;;17367:80;;:::i;:::-;;;;:::i;:::-;;1102:21517;17040:13;;17129:220;17304:9;;-1:-1:-1;;;;;17304:9:31;1102:21517;17304:9;1102:21517;17304:9;;:::i;:::-;1102:21517;;;17298:32;;;;1102:21517;17298:32;;;1102:21517;17298:32;;1102:21517;17298:32;;;;;;;1102:21517;;17298:32;;;17129:220;17289:41;17129:220;;;17298:32;;;1102:21517;17298:32;;;;;;;;;1102:21517;17298:32;;;:::i;:::-;;;1102:21517;;;;;17298:32;;;;;;-1:-1:-1;17298:32:31;;;1102:21517;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;9738:59;9641:61;;-1:-1:-1;;;;;1102:21517:31;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;9641:61;;;9561:50;1102:21517;9641:61;;;;;;;:::i;9738:59::-;1102:21517;;9814:65;;1102:21517;9814:65;;1102:21517;;;;;;;;;9814:65;;1102:21517;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;-1:-1:-1;1102:21517:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;18373:35;-1:-1:-1;;;18373:35:31;;1102:21517;;18373:35;;;;;;;1102:21517;18373:35;;;:::i;:::-;;:4;;:35;;;;;;;1102:21517;;18373:35;;;1102:21517;;;;;19092:60;1102:21517;;18695:68;-1:-1:-1;;;;;1102:21517:31;18695:68;18878:89;1102:21517;;18544:229;1102:21517;;;18695:68;;;-1:-1:-1;;;1102:21517:31;18695:68;;;1102:21517;18695:68;;;:::i;:::-;;1102:21517;;18695:68;;;;;;:::i;:::-;1102:21517;;18544:229;;;18580:54;1102:21517;18544:229;;;1102:21517;;18544:229;;1102:21517;;;;;;;;:::i;:::-;18373:4;1102:21517;;;;;;;-1:-1:-1;;1102:21517:31;;;;;18373:4;1102:21517;:::i;19092:60::-;19210:29;;;1102:21517;;19205:110;;1102:21517;19416:58;19427:28;;;1102:21517;;;;19416:58;;;;;;:::i;:::-;1102:21517;19554:40;1102:21517;;19554:40;:::i;:::-;1102:21517;;;19652:3;1102:21517;;19625:25;;;;;19725:17;-1:-1:-1;;;;;19725:17:31;1102:21517;19725:17;;;:::i;:::-;;1102:21517;;-1:-1:-1;;;;;1102:21517:31;19772:17;;;;:::i;:::-;;:23;1102:21517;;;19828:17;;;;:::i;:::-;;:24;1102:21517;;19884:16;;;;:::i;:::-;;:23;1102:21517;;;;;;;;:::i;:::-;;;;19689:233;;1102:21517;;19689:233;;1102:21517;;19689:233;;1102:21517;19671:251;;;;:::i;:::-;;;;;;:::i;:::-;;1102:21517;19610:13;;19625:25;1102:21517;;;;19625:25;1102:21517;;:::i;19205:110::-;1102:21517;19275:28;;1102:21517;1712:95:17;;;;;18373:35:31;18544:229;18373:35;;;;1102:21517;19092:60;18373:35;;18695:68;-1:-1:-1;;;;;18373:35:31;18695:68;18878:89;18373:35;;;1102:21517;18373:35;;1102:21517;;;18373:35;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1102:21517;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;5689:64;5594:59;1102:21517;5497:61;1102:21517;5497:61;1102:21517;;5497:61;;;-1:-1:-1;;;1102:21517:31;5497:61;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1102:21517:31;;5594:59;;:::i;5689:64::-;5663:90;;1102:21517;;;;5849:162;1102:21517;;;;;;5849:162;;;;;1102:21517;5849:162;;1102:21517;;5849:162;1102:21517;5849:162;;;:::i;:::-;;1102:21517;;;5849:4;:162;;;;;;;1102:21517;;5849:162;;;1102:21517;5819:192;;;1102:21517;6116:29;;1102:21517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6156:2;-1:-1:-1;6116:42:31;6112:387;;1102:21517;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1102:21517:31;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1102:21517:31;;;;;;:::i;6112:387::-;1102:21517;6213:275;1102:21517;;;;;;;;6213:275;;;;;1102:21517;6213:275;;1102:21517;;6213:275;1102:21517;6213:275;;;:::i;:::-;;1102:21517;;;5849:4;6213:275;;;;;;;1102:21517;;;;;;;;6213:275;;;6112:387;6174:314;;;6112:387;;;;;;;;;6213:275;;;;;1102:21517;;;6213:275;;;;;;:::i;:::-;;;;;:::i;:::-;;;;5849:162;;;;;1102:21517;;;5849:162;;;;;;:::i;:::-;;;;1102:21517;;;;;8253:67;8177:59;8001:140;;-1:-1:-1;;;;;1102:21517:31;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;8001:140;;;7903:68;8001:140;;;;;;;;:::i;8177:59::-;8001:140;1102:21517;;;8253:67;;;;;;:::i;:::-;1102:21517;;;;;8001:140;1102:21517;;8001:140;1102:21517;;;;:::i;:::-;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;14318:23;;:::i;:::-;1102:21517;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;14534:1023;14554:18;;;;;;1102:21517;;;;;;;;;;:::i;14574:3::-;1102:21517;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;14762:10;;;;;;:::i;:::-;1102:21517;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;14743:29;;;:::i;:::-;;;;;:::i;:::-;;14811:19;;14864:9;14892:48;;;;;;1102:21517;;14892:48;1102:21517;14892:48;;1102:21517;;;14892:48;1102:21517;14892:48;;1102:21517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14892:48;;1102:21517;;;14892:48;;;;;;;1102:21517;-1:-1:-1;14888:659:31;;15245:302;;1102:21517;15245:302;;:::i;:::-;1102:21517;15413:10;;;;;:::i;:::-;1102:21517;;15388:36;;;;1102:21517;15388:36;;;1102:21517;15388:36;;1102:21517;;;;;;:::i;:::-;15388:36;;;;;;;;;;1102:21517;;15388:36;;;14888:659;1102:21517;;;;15442:90;1102:21517;;;;;;;:::i;15442:90::-;1102:21517;14539:13;;15388:36;;;;1102:21517;15388:36;;;;;;;;;;:::i;:::-;1102:21517;15388:36;-1:-1:-1;15388:36:31;;;1102:21517;;;;-1:-1:-1;1102:21517:31;;15442:90;15388:36;;;;;;;14888:659;14978:9;15201:28;1102:21517;14978:9;;15125:36;15179:50;14978:9;;15141:20;14978:9;15028:19;;15141:20;;:::i;15179:50::-;14888:659;;;14892:48;1102:21517;;14892:48;;;:::i;:::-;1102:21517;;;;14892:48;;;1102:21517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;-1:-1:-1;1102:21517:31;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;:::i;:::-;;;;;;17852:134;;;;;1102:21517;17852:134;;1102:21517;;17852:134;;1102:21517;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;17852:134;1102:21517;;;17852:4;:134;;;;;;1102:21517;;17852:134;;;1102:21517;;;;;;;;;;:::i;17852:134::-;;;1102:21517;;;17852:134;;;;;;:::i;:::-;;;1102:21517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17852:134;;;1102:21517;17852:134;;;;1102:21517;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;-1:-1:-1;;;;;1102:21517:31;;:::i;:::-;;;:::i;:::-;;;11875:82;;;;;;1102:21517;;;11875:82;;1102:21517;;;;;;11875:82;;;;;1102:21517;;;-1:-1:-1;;;;;1102:21517:31;;;12037:74;1102:21517;12037:74;;1102:21517;;12037:74;;1102:21517;;;;;;:::i;:::-;;;;;;;;;;;;;;;12037:74;;1102:21517;;;12037:4;:74;;;;;;1102:21517;;12037:74;;;1102:21517;;;;;;;;;;:::i;12037:74::-;;;1102:21517;;;12037:74;;;;;;:::i;:::-;;;1102:21517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12037:74;;1102:21517;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11875:82;1102:21517;;11875:82;;;:::i;:::-;1102:21517;;;;11875:82;;;1102:21517;;;;;;-1:-1:-1;;1102:21517:31;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;8866:140;9042:59;1102:21517;;9118:67;1102:21517;;;:::i;:::-;;;;;8866:140;;;8785:51;1102:21517;8866:140;;;1102:21517;;8866:140;;1102:21517;;;;;;:::i;:::-;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;8866:140;1102:21517;;8866:140;;;;;;:::i;:::-;9042:59;:::i;1102:21517::-;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;20304:35;-1:-1:-1;;;20304:35:31;;1102:21517;;20304:35;;;;;;;1102:21517;20304:35;;;:::i;:::-;;:4;;:35;;;;;;;1102:21517;;20304:35;;;1102:21517;;;20465:68;;1102:21517;-1:-1:-1;;;;;1102:21517:31;;;;;;;20465:68;;;-1:-1:-1;;;1102:21517:31;20465:68;;;1102:21517;20465:68;;;:::i;:::-;;1102:21517;;20465:68;;;;;;:::i;:::-;1102:21517;20548:59;;;;;;1102:21517;;;;;;20548:59;;;;;;1102:21517;20548:59;;1102:21517;;20548:59;;1102:21517;;;;;;;;:::i;:::-;20304:4;1102:21517;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;:::i;:::-;20548:59;1102:21517;;;20548:59;;;;;;;1102:21517;-1:-1:-1;20544:1579:31;;20672:1451;;:::i;:::-;1102:21517;;;20722:22;;20718:100;;-1:-1:-1;;;;;;20850:30:31;20857:22;;;:::i;:::-;20850:30;:::i;:::-;1102:21517;20958:31;20946:43;;20942:113;;21149:45;21137:57;:104;;;;20544:1579;21116:204;;1102:21517;;21369:38;;;:::i;:::-;1102:21517;;21477:351;;1102:21517;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;21477:351;1102:21517;21477:351;;;1102:21517;;;;:::i;:::-;21901:14;;21897:86;;1102:21517;;;22070:42;1102:21517;;22070:42;;;;;;:::i;:::-;20544:1579;22202:40;1102:21517;;22202:40;:::i;:::-;1102:21517;;;22300:3;1102:21517;;22273:25;;;;;22373:17;-1:-1:-1;;;;;22373:17:31;1102:21517;22373:17;;;:::i;:::-;;1102:21517;;-1:-1:-1;;;;;1102:21517:31;22420:17;;;;:::i;:::-;;:23;1102:21517;;;22476:17;;;;:::i;:::-;;:24;1102:21517;;22532:16;;;;:::i;:::-;;:23;1102:21517;;;;;;;;:::i;:::-;;;;22337:233;;1102:21517;;22337:233;;1102:21517;;22337:233;;1102:21517;22319:251;;;;:::i;:::-;;;;;;:::i;:::-;;1102:21517;22258:13;;21897:86;1102:21517;1712:95:17;;;;;21137:104:31;1102:21517;;;21137:104;;20942:113;1712:95:17;1102:21517:31;1712:95:17;;;;;20718:100:31;1102:21517;;;-1:-1:-1;;;20764:39:31;;1102:21517;;20764:39;;1102:21517;;;;;;;;;;;20764:39;20544:1579;1102:21517;;;-1:-1:-1;;;20622:38:31;;1102:21517;;20622:38;;1102:21517;;;;;;;;;;;20622:38;20548:59;1102:21517;;20548:59;;;:::i;:::-;;;;20304:35;-1:-1:-1;;;;;20304:35:31;;;;;20465:68;20304:35;;20465:68;20304:35;;1102:21517;;;20304:35;;;;;;:::i;:::-;;;;;;;;;;1102:21517;;;;;7328:67;7252:59;7076:140;;-1:-1:-1;;;;;1102:21517:31;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;7076:140;;;6987:59;7076:140;;;;;;;;:::i;1102:21517::-;;;;;;-1:-1:-1;;1102:21517:31;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;2169:468;2206:3;1102:21517;;2189:15;;;;;1102:21517;;;2389:7;1102:21517;2389:7;;:::i;:::-;;1102:21517;;2302:95;;;1102:21517;2302:95;;;-1:-1:-1;;;2302:95:31;;;1102:21517;2302:95;;;:::i;:::-;2461:9;1102:21517;;;;;378:118:17;;1102:21517:31;;;;378:118:17;;2489:8:31;2485:97;;2206:3;2595:31;;;;:::i;:::-;;;;;;:::i;:::-;;1102:21517;2174:13;;2485:97;1204:349:17;;1102:21517:31;1204:349:17;;1102:21517:31;1204:349:17;;;;1102:21517:31;1204:349:17;;;;1102:21517:31;;;1204:349:17;;;2485:97:31;;2189:15;;1102:21517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1102:21517:31;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;1102:21517:31;;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1102:21517:31;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1102:21517:31;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1102:21517:31;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1102:21517:31;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;1102:21517:31;;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;-1:-1:-1;;1102:21517:31;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;-1:-1:-1;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1102:21517:31;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1102:21517:31;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;1102:21517:31;;;;;;;;-1:-1:-1;;1102:21517:31;;;;:::o;:::-;;;-1:-1:-1;;;;;1102:21517:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1102:21517:31;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1102:21517:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1102:21517:31;;;;:::o;:::-;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;;1102:21517:31;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;;1102:21517:31;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;1102:21517:31;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;;;-1:-1:-1;1102:21517:31;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;;1102:21517:31;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1102:21517:31;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;;;;;;;;:::i;:::-;;;;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;;;-1:-1:-1;1102:21517:31;;;;-1:-1:-1;1102:21517:31;;;;-1:-1:-1;1102:21517:31;;;;-1:-1:-1;1102:21517:31;;;;-1:-1:-1;1102:21517:31;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1102:21517:31;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2780:1459::-;1102:21517;;-1:-1:-1;;;3064:60:31;;;;;;-1:-1:-1;;;;;;;;3064:60:31;;1102:21517;;3064:60;;;;;;:::i;:::-;3184:9;378:118:17;;;;-1:-1:-1;;1204:349:17;1102:21517:31;1204:349:17;;3064:60:31;1204:349:17;;;;1102:21517:31;1204:349:17;;;;3064:60:31;1204:349:17;;;3064:60:31;1102:21517;;3456:21;3452:104;;-1:-1:-1;;;;;;;;;3644:30:31;3651:22;;;:::i;3644:30::-;1102:21517;3688:60;3684:162;;1102:21517;;3930:38;;;:::i;:::-;1102:21517;;4048:37;;1102:21517;;;;;;;;3064:60;4048:37;;1102:21517;:::i;:::-;;;;;;;;;;;;;4048:37;3064:60;4048:37;;;1102:21517;;;;:::i;:::-;4100:25;;4096:98;;2780:1459;:::o;3684:162::-;3764:71;1102:21517;;-1:-1:-1;;;3764:71:31;;3064:60;;3764:71;;1102:21517;;3064:60;1102:21517;;;;;;;;;;;;;3764:71;3452:104;3493:52;1102:21517;;-1:-1:-1;;;3493:52:31;;3064:60;;3493:52;;1102:21517;;3064:60;1102:21517;;;;;;;;;;;;;3493:52;3205:174;3314:54;1102:21517;;-1:-1:-1;;;3314:54:31;;3064:60;;3314:54;;1102:21517;;3064:60;1102:21517;;;;;;;;;;;;;3314:54;15689:1115:29;;1102:21517:31;15689:1115:29;1102:21517:31;15801:19:29;1102:21517:31;15879:919:29;;;1102:21517:31;15879:919:29;;;;;15689:1115;15879:919;;;;15689:1115;15879:919;;;;;;15689:1115;;;:::o;15879:919::-;;;;-1:-1:-1;15879:919:29;;;;;;1102:21517:31;15879:919:29;;-1:-1:-1;;15879:919:29;;;;;;;;;;-1:-1:-1;;15879:919:29;;;;;;;;;;;;;;;;1102:21517:31;15879:919:29;;;;;;;;;15689:1115::o;15879:919::-;;;;;;;;-1:-1:-1;15879:919:29;;;15689:1115;;;1102:21517:31;15801:19:29;1102:21517:31;15879:919:29;;;;;;;;;15689:1115;1102:21517:31;15879:919:29;;;;;;;;;;;15689:1115;;;:::o;15879:919::-;;-1:-1:-1;15879:919:29;;", "linkReferences": {} }, "methodIdentifiers": { "binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": "71349903", "binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": "9f2d3789", "binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": "2e5a0a93", "filterOps06((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address,address)": "959c4cb7", "filterOps07((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,address)": "fccb5ff6", "filterOps08((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,address)": "861d9d59", "getBalances(address[],address[])": "ef5bfc37", "simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": "a4968eab", "simulateAssetChange06((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address,address[],address[])": "685f6026", "simulateAssetChange07((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,address,address[],address[])": "b21b38c8", "simulateAssetChange08((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,address,address[],address[])": "90d81dfb", "simulateEntryPointBulk(address,address,bytes[])": "141eb033", "simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "f1143043", "simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "de040de1" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"PimlicoSimulationDeployed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchCallGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchPaymasterVerificationGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchVerificationGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps06\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps07\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps08\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"getBalances\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetBalance[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"simulateAndEstimateGas\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"simulationResult\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"verificationGasLimit\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"tuple\"}],\"internalType\":\"struct PimlicoSimulations.SimulateAndEstimateGasResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"simulateAssetChange06\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetChange[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"entryPointSimulations\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"simulateAssetChange07\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetChange[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"entryPointSimulations\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"simulateAssetChange08\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetChange[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"simulateEntryPointBulk\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"}],\"name\":\"simulateHandleOp\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"}],\"name\":\"simulateValidation\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPoint.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Pimlico (https://github.com/pimlicolabs/alto)\",\"kind\":\"dev\",\"methods\":{},\"title\":\"PimlicoSimulations\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal call gas limit\"},\"binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal paymaster verification gas limit\"},\"binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal verification gas limit\"},\"simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Simulates userOp and estimates verification & paymaster gas limits\"},\"simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Simulates handling of a UserOperation\"},\"simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Simulates validation of a UserOperation\"}},\"notice\":\"An ERC-4337 EntryPoint simulation contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/PimlicoSimulations.sol\":\"PimlicoSimulations\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":@account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":@account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/\",\":@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/\",\":@test-utils/=lib/singleton-paymaster/test/utils/\",\":account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":singleton-paymaster/=lib/singleton-paymaster/src/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"lib/account-abstraction-v6/contracts/core/Helpers.sol\":{\"keccak256\":\"0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746\",\"dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU\"]},\"lib/account-abstraction-v6/contracts/core/NonceManager.sol\":{\"keccak256\":\"0xa17a4a6fde70088ab18ffe6df830f3efa31f1cd0e1a7160336c96e3c94984d25\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b38615df9f80c56282b72888e9ba1eb1a9413fa67a0dbf094deda7af9feb38e7\",\"dweb:/ipfs/QmSzcXetEJRH4UHuUmZiSgX6bFgfqHWfmyuxVnh4NosMk1\"]},\"lib/account-abstraction-v6/contracts/core/SenderCreator.sol\":{\"keccak256\":\"0x44b9449fec82d6cdfb01d52fdd5a72f90099c651316123810cf9633f00b018c2\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a9c0487390e72638681d175c45bc92425c802fffdca4bd0ae8457782ee284612\",\"dweb:/ipfs/QmVbzuehCUWJWqEHyMWuc6cRVbxfcMdFsmGL9o4Wz7WY2x\"]},\"lib/account-abstraction-v6/contracts/core/StakeManager.sol\":{\"keccak256\":\"0x21aa0956382bd000b1b8c3b1d19ca6ebcd6c9029eebb19c612fb38ee5dd2430a\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://0a625c8795354d9f429367f9c1d14eb8af7db9c7f2c2a2033e2066ced76a573a\",\"dweb:/ipfs/Qmd1j6UarUg54q1G2HCNCLQz8XGVZR1qxX7eQ6cytHpQPN\"]},\"lib/account-abstraction-v6/contracts/interfaces/IAccount.sol\":{\"keccak256\":\"0x556a0e5980de18e90b115553ed502408155ba35f58642823010d9288047bc418\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a0f420134b79596db8737173c7b933ae0a33059e107b6327c43aa40d4744a9e4\",\"dweb:/ipfs/QmRo8s1AhXmEMV7uPYnbpYwU19e9Bk6jmYBJTiPx3Fo85W\"]},\"lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b\",\"dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP\"]},\"lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf\",\"dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd\"]},\"lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2\",\"dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b\"]},\"lib/account-abstraction-v6/contracts/interfaces/IPaymaster.sol\":{\"keccak256\":\"0x36858ba8685024974f533530420688da3454d29996ebc42e410673a1ed2ec456\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://616cbcf51778b1961b7f20a547bec7efae6d1d565df0f651926241ed8bde9ad8\",\"dweb:/ipfs/QmaVsgffUUmeUJYgStvRr8cNZ1LBbrc3FYNLW4JT1dVLia\"]},\"lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3\",\"dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ\"]},\"lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol\":{\"keccak256\":\"0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c\",\"dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN\"]},\"lib/account-abstraction-v6/contracts/utils/Exec.sol\":{\"keccak256\":\"0x5b232117afbc2939f3ffc92745614867e9e1d475a3e1e5443adae13c200174f1\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://62e7365379a06ead7b47637945bcaee095d51aab1d3ac00ddec69443e6cbe9fe\",\"dweb:/ipfs/QmctG3aw4U3KMSMeJKoLJ1NJewjMWfppnd1m3kxNTe39Uy\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155\",\"dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5\"]},\"lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9\",\"dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe\"]},\"lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3\",\"dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk\"]},\"lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00\",\"dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj\"]},\"lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be\",\"dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3\"]},\"lib/account-abstraction-v7/contracts/utils/Exec.sol\":{\"keccak256\":\"0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77\",\"dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ\"]},\"lib/account-abstraction-v8/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77\",\"dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT\"]},\"lib/account-abstraction-v8/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x3b0423737e810dd886183ed32cfed9b45edd315f5fb3e1076fc19f86791adc64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c43081efaa2eda581b6249053281bb58cb0c4eeb6bf87efc55d95daaec2fc931\",\"dweb:/ipfs/QmXRN2JnyzWZNeFMHauTnDuc7jhxGY4ZkY37HTtjXKdC87\"]},\"lib/account-abstraction-v8/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xee493ae200b8c675bdc0da66f7ac6bb883ecea33672d7d0a95526b9eecdedf87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://979784a0333ac4ef3cc53ab9323a4b7fa574d929bd511f0eed03d3b0370db22d\",\"dweb:/ipfs/QmeiciN5gs4upM6vfKvrRxWiDBUzMU4uJQRRkJajhim9gX\"]},\"lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol\":{\"keccak256\":\"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570\",\"dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w\"]},\"lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85\",\"dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz\"]},\"lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79\",\"dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010\",\"dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x1c3cdf5158b29b16ba2d2c7ff1f6d4304754605441257e198b46803f0fa9df1a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6ed3d15fd372495ff76439878fb5e007ae0b39da3ce3d9fd877ee8147647bb2\",\"dweb:/ipfs/QmZ1zC91VhPHMXAdcY8SahJMwDsC2B5q9uXFF16R5eHmkV\"]},\"lib/solady/src/utils/LibBytes.sol\":{\"keccak256\":\"0x905f1c122299888350964a3bdd3dccd4b969273389b8d869f9aacb6871ff199e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6cff3ef7090aa48f214b960f373a33c15878f80e617443a3a4d53f130bab862\",\"dweb:/ipfs/QmdMEpK6ZVxUesqSpurqS9UkDnm1kAnjUeJKLN6ZWPNJnT\"]},\"src/IEntryPointSimulations.sol\":{\"keccak256\":\"0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5\",\"dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t\"]},\"src/PimlicoSimulations.sol\":{\"keccak256\":\"0x3d913acd6e8ab62d56ae45469cfcde670861714a2e6e324ddb6e0b7d91852097\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5c3ec1240874eec9a3eca32c51ddc14a54597217be1df2ad827240be4f18901d\",\"dweb:/ipfs/Qmb1zSVZ4vT2grDYWFAHMYtK7XW4SBX1aWJEHFu1Y5PiW5\"]},\"src/SimulationOverrideHelper.sol\":{\"keccak256\":\"0x98850f986164c992b840ba8e878814c459be0852debe8ad8d69140c09c6b05c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a57d5979f5557ccbc6947c3f6b5b6ec10f152609b9d11c265b20d925d915b559\",\"dweb:/ipfs/QmcA4kpMCnjCfEyky32w5S8qXzvvchZJhMBvJvmBp5tcep\"]},\"src/v06/EntryPointGasEstimationOverride.sol\":{\"keccak256\":\"0xd543e1dfeb6c3f74ce1964099364ce549563c11ea47c3cb97b02bc7e71e8f46d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://53d579d8654dbed980bb14d08ecafddb30b4f634ffedd4a64a2d30b39803d4f7\",\"dweb:/ipfs/QmTnT9yk1AB2LydP2QWiyuPrTHAZzqFcrLLjkB5Q1z7DpD\"]},\"src/v08/IEntryPointFilterOpsOverride.sol\":{\"keccak256\":\"0xe069a104d10fd2a44eaa5fb8e5b42c88db1b79e2fb158d479baf1d037100aa0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f1440a823d770d3b70e73c769ac97039facc8b9cdb3f41debd37ae7a12ef5e9b\",\"dweb:/ipfs/QmahuKjkumBBkJEgfogRM2Pa3sSFLQ6mkyXBao87G4EF4T\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.28+commit.7893614a" }, "language": "Solidity", "output": { "abi": [{ "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "type": "event", "name": "PimlicoSimulationDeployed", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchCallGas", "outputs": [{ "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchPaymasterVerificationGas", "outputs": [{ "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchVerificationGas", "outputs": [{ "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }] }, { "inputs": [{ "internalType": "struct UserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "filterOps06", "outputs": [{ "internalType": "struct PimlicoSimulations.FilterOpsResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "uint256", "name": "balanceChange", "type": "uint256" }, { "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "name": "rejectedUserOps", "type": "tuple[]", "components": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "bytes", "name": "revertReason", "type": "bytes" }] }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "filterOps07", "outputs": [{ "internalType": "struct PimlicoSimulations.FilterOpsResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "uint256", "name": "balanceChange", "type": "uint256" }, { "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "name": "rejectedUserOps", "type": "tuple[]", "components": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "bytes", "name": "revertReason", "type": "bytes" }] }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "filterOps08", "outputs": [{ "internalType": "struct PimlicoSimulations.FilterOpsResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "uint256", "name": "balanceChange", "type": "uint256" }, { "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "name": "rejectedUserOps", "type": "tuple[]", "components": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "bytes", "name": "revertReason", "type": "bytes" }] }] }] }, { "inputs": [{ "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "address[]", "name": "tokens", "type": "address[]" }], "stateMutability": "view", "type": "function", "name": "getBalances", "outputs": [{ "internalType": "struct PimlicoSimulations.AssetBalance[]", "name": "", "type": "tuple[]", "components": [{ "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }] }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateAndEstimateGas", "outputs": [{ "internalType": "struct PimlicoSimulations.SimulateAndEstimateGasResult", "name": "result", "type": "tuple", "components": [{ "internalType": "struct IEntryPointSimulations.ExecutionResult", "name": "simulationResult", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "paid", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "bool", "name": "targetSuccess", "type": "bool" }, { "internalType": "bytes", "name": "targetResult", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "verificationGasLimit", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "paymasterVerificationGasLimit", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }] }] }, { "inputs": [{ "internalType": "struct UserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }, { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "address[]", "name": "tokens", "type": "address[]" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateAssetChange06", "outputs": [{ "internalType": "struct PimlicoSimulations.AssetChange[]", "name": "", "type": "tuple[]", "components": [{ "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "balanceBefore", "type": "uint256" }, { "internalType": "uint256", "name": "balanceAfter", "type": "uint256" }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }, { "internalType": "address", "name": "entryPointSimulations", "type": "address" }, { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "address[]", "name": "tokens", "type": "address[]" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateAssetChange07", "outputs": [{ "internalType": "struct PimlicoSimulations.AssetChange[]", "name": "", "type": "tuple[]", "components": [{ "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "balanceBefore", "type": "uint256" }, { "internalType": "uint256", "name": "balanceAfter", "type": "uint256" }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }, { "internalType": "address", "name": "entryPointSimulations", "type": "address" }, { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "address[]", "name": "tokens", "type": "address[]" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateAssetChange08", "outputs": [{ "internalType": "struct PimlicoSimulations.AssetChange[]", "name": "", "type": "tuple[]", "components": [{ "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "balanceBefore", "type": "uint256" }, { "internalType": "uint256", "name": "balanceAfter", "type": "uint256" }] }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "bytes[]", "name": "data", "type": "bytes[]" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateEntryPointBulk", "outputs": [{ "internalType": "bytes[]", "name": "", "type": "bytes[]" }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateHandleOp", "outputs": [{ "internalType": "struct IEntryPointSimulations.ExecutionResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "paid", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "bool", "name": "targetSuccess", "type": "bool" }, { "internalType": "bytes", "name": "targetResult", "type": "bytes" }] }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateValidation", "outputs": [{ "internalType": "struct IEntryPointSimulations.ValidationResult", "name": "", "type": "tuple", "components": [{ "internalType": "struct IEntryPoint.ReturnInfo", "name": "returnInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterContext", "type": "bytes" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "senderInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "factoryInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "paymasterInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IEntryPoint.AggregatorStakeInfo", "name": "aggregatorInfo", "type": "tuple", "components": [{ "internalType": "address", "name": "aggregator", "type": "address" }, { "internalType": "struct IStakeManager.StakeInfo", "name": "stakeInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }] }] }] }], "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "userdoc": { "kind": "user", "methods": { "binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": { "notice": "Binary search for optimal call gas limit" }, "binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": { "notice": "Binary search for optimal paymaster verification gas limit" }, "binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": { "notice": "Binary search for optimal verification gas limit" }, "simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)": { "notice": "Simulates userOp and estimates verification & paymaster gas limits" }, "simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "notice": "Simulates handling of a UserOperation" }, "simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "notice": "Simulates validation of a UserOperation" } }, "version": 1 } }, "settings": { "remappings": ["@account-abstraction-v6/=lib/account-abstraction-v6/contracts/", "@account-abstraction-v7/=lib/account-abstraction-v7/contracts/", "@account-abstraction-v8/=lib/account-abstraction-v8/contracts/", "@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/", "@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/", "@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/", "@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/", "@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/", "@test-utils/=lib/singleton-paymaster/test/utils/", "account-abstraction-v6/=lib/account-abstraction-v6/contracts/", "account-abstraction-v7/=lib/account-abstraction-v7/contracts/", "account-abstraction-v8/=lib/account-abstraction-v8/contracts/", "ds-test/=lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/", "openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/", "openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/", "openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/", "singleton-paymaster/=lib/singleton-paymaster/src/", "solady/=lib/solady/src/"], "optimizer": { "enabled": true, "runs": 1000 }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "src/PimlicoSimulations.sol": "PimlicoSimulations" }, "evmVersion": "london", "libraries": {}, "viaIR": true }, "sources": { "lib/account-abstraction-v6/contracts/core/Helpers.sol": { "keccak256": "0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a", "urls": ["bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746", "dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/core/NonceManager.sol": { "keccak256": "0xa17a4a6fde70088ab18ffe6df830f3efa31f1cd0e1a7160336c96e3c94984d25", "urls": ["bzz-raw://b38615df9f80c56282b72888e9ba1eb1a9413fa67a0dbf094deda7af9feb38e7", "dweb:/ipfs/QmSzcXetEJRH4UHuUmZiSgX6bFgfqHWfmyuxVnh4NosMk1"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/core/SenderCreator.sol": { "keccak256": "0x44b9449fec82d6cdfb01d52fdd5a72f90099c651316123810cf9633f00b018c2", "urls": ["bzz-raw://a9c0487390e72638681d175c45bc92425c802fffdca4bd0ae8457782ee284612", "dweb:/ipfs/QmVbzuehCUWJWqEHyMWuc6cRVbxfcMdFsmGL9o4Wz7WY2x"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/core/StakeManager.sol": { "keccak256": "0x21aa0956382bd000b1b8c3b1d19ca6ebcd6c9029eebb19c612fb38ee5dd2430a", "urls": ["bzz-raw://0a625c8795354d9f429367f9c1d14eb8af7db9c7f2c2a2033e2066ced76a573a", "dweb:/ipfs/Qmd1j6UarUg54q1G2HCNCLQz8XGVZR1qxX7eQ6cytHpQPN"], "license": "GPL-3.0-only" }, "lib/account-abstraction-v6/contracts/interfaces/IAccount.sol": { "keccak256": "0x556a0e5980de18e90b115553ed502408155ba35f58642823010d9288047bc418", "urls": ["bzz-raw://a0f420134b79596db8737173c7b933ae0a33059e107b6327c43aa40d4744a9e4", "dweb:/ipfs/QmRo8s1AhXmEMV7uPYnbpYwU19e9Bk6jmYBJTiPx3Fo85W"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol": { "keccak256": "0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a", "urls": ["bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b", "dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol": { "keccak256": "0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8", "urls": ["bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf", "dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol": { "keccak256": "0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12", "urls": ["bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2", "dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IPaymaster.sol": { "keccak256": "0x36858ba8685024974f533530420688da3454d29996ebc42e410673a1ed2ec456", "urls": ["bzz-raw://616cbcf51778b1961b7f20a547bec7efae6d1d565df0f651926241ed8bde9ad8", "dweb:/ipfs/QmaVsgffUUmeUJYgStvRr8cNZ1LBbrc3FYNLW4JT1dVLia"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f", "urls": ["bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3", "dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ"], "license": "GPL-3.0-only" }, "lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol": { "keccak256": "0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c", "urls": ["bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c", "dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/utils/Exec.sol": { "keccak256": "0x5b232117afbc2939f3ffc92745614867e9e1d475a3e1e5443adae13c200174f1", "urls": ["bzz-raw://62e7365379a06ead7b47637945bcaee095d51aab1d3ac00ddec69443e6cbe9fe", "dweb:/ipfs/QmctG3aw4U3KMSMeJKoLJ1NJewjMWfppnd1m3kxNTe39Uy"], "license": "LGPL-3.0-only" }, "lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol": { "keccak256": "0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588", "urls": ["bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155", "dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol": { "keccak256": "0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4", "urls": ["bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9", "dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol": { "keccak256": "0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb", "urls": ["bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3", "dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04", "urls": ["bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00", "dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj"], "license": "GPL-3.0-only" }, "lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol": { "keccak256": "0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359", "urls": ["bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be", "dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/utils/Exec.sol": { "keccak256": "0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74", "urls": ["bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77", "dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ"], "license": "LGPL-3.0-only" }, "lib/account-abstraction-v8/contracts/interfaces/IAggregator.sol": { "keccak256": "0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf", "urls": ["bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77", "dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/IEntryPoint.sol": { "keccak256": "0x3b0423737e810dd886183ed32cfed9b45edd315f5fb3e1076fc19f86791adc64", "urls": ["bzz-raw://c43081efaa2eda581b6249053281bb58cb0c4eeb6bf87efc55d95daaec2fc931", "dweb:/ipfs/QmXRN2JnyzWZNeFMHauTnDuc7jhxGY4ZkY37HTtjXKdC87"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/INonceManager.sol": { "keccak256": "0xee493ae200b8c675bdc0da66f7ac6bb883ecea33672d7d0a95526b9eecdedf87", "urls": ["bzz-raw://979784a0333ac4ef3cc53ab9323a4b7fa574d929bd511f0eed03d3b0370db22d", "dweb:/ipfs/QmeiciN5gs4upM6vfKvrRxWiDBUzMU4uJQRRkJajhim9gX"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol": { "keccak256": "0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4", "urls": ["bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570", "dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0", "urls": ["bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85", "dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol": { "keccak256": "0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800", "urls": ["bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79", "dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK"], "license": "MIT" }, "lib/openzeppelin-contracts-v4.8.3/contracts/security/ReentrancyGuard.sol": { "keccak256": "0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc", "urls": ["bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010", "dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u"], "license": "MIT" }, "lib/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol": { "keccak256": "0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d", "urls": ["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4", "dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"], "license": "MIT" }, "lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/ERC165.sol": { "keccak256": "0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b", "urls": ["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d", "dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"], "license": "MIT" }, "lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/IERC165.sol": { "keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1", "urls": ["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f", "dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"], "license": "MIT" }, "lib/solady/src/tokens/ERC20.sol": { "keccak256": "0x1c3cdf5158b29b16ba2d2c7ff1f6d4304754605441257e198b46803f0fa9df1a", "urls": ["bzz-raw://f6ed3d15fd372495ff76439878fb5e007ae0b39da3ce3d9fd877ee8147647bb2", "dweb:/ipfs/QmZ1zC91VhPHMXAdcY8SahJMwDsC2B5q9uXFF16R5eHmkV"], "license": "MIT" }, "lib/solady/src/utils/LibBytes.sol": { "keccak256": "0x905f1c122299888350964a3bdd3dccd4b969273389b8d869f9aacb6871ff199e", "urls": ["bzz-raw://b6cff3ef7090aa48f214b960f373a33c15878f80e617443a3a4d53f130bab862", "dweb:/ipfs/QmdMEpK6ZVxUesqSpurqS9UkDnm1kAnjUeJKLN6ZWPNJnT"], "license": "MIT" }, "src/IEntryPointSimulations.sol": { "keccak256": "0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41", "urls": ["bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5", "dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t"], "license": "MIT" }, "src/PimlicoSimulations.sol": { "keccak256": "0x3d913acd6e8ab62d56ae45469cfcde670861714a2e6e324ddb6e0b7d91852097", "urls": ["bzz-raw://5c3ec1240874eec9a3eca32c51ddc14a54597217be1df2ad827240be4f18901d", "dweb:/ipfs/Qmb1zSVZ4vT2grDYWFAHMYtK7XW4SBX1aWJEHFu1Y5PiW5"], "license": "MIT" }, "src/SimulationOverrideHelper.sol": { "keccak256": "0x98850f986164c992b840ba8e878814c459be0852debe8ad8d69140c09c6b05c5", "urls": ["bzz-raw://a57d5979f5557ccbc6947c3f6b5b6ec10f152609b9d11c265b20d925d915b559", "dweb:/ipfs/QmcA4kpMCnjCfEyky32w5S8qXzvvchZJhMBvJvmBp5tcep"], "license": "MIT" }, "src/v06/EntryPointGasEstimationOverride.sol": { "keccak256": "0xd543e1dfeb6c3f74ce1964099364ce549563c11ea47c3cb97b02bc7e71e8f46d", "urls": ["bzz-raw://53d579d8654dbed980bb14d08ecafddb30b4f634ffedd4a64a2d30b39803d4f7", "dweb:/ipfs/QmTnT9yk1AB2LydP2QWiyuPrTHAZzqFcrLLjkB5Q1z7DpD"], "license": "GPL-3.0" }, "src/v08/IEntryPointFilterOpsOverride.sol": { "keccak256": "0xe069a104d10fd2a44eaa5fb8e5b42c88db1b79e2fb158d479baf1d037100aa0e", "urls": ["bzz-raw://f1440a823d770d3b70e73c769ac97039facc8b9cdb3f41debd37ae7a12ef5e9b", "dweb:/ipfs/QmahuKjkumBBkJEgfogRM2Pa3sSFLQ6mkyXBao87G4EF4T"], "license": "MIT" } }, "version": 1 }, "id": 31 }
|