@pimlico/alto 0.0.0-main.20250611T112507 → 0.0.0-main.20250612T142144

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/contracts/EIP712.sol/EIP712.json +1 -1
  2. package/contracts/ERC165.sol/ERC165.json +1 -1
  3. package/contracts/Eip7702Support.sol/Eip7702Support.json +1 -1
  4. package/contracts/EntryPoint.sol/EntryPoint.json +1 -1
  5. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
  6. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
  7. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
  8. package/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
  9. package/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
  10. package/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
  11. package/contracts/Exec.sol/Exec.json +1 -1
  12. package/contracts/IAccount.sol/IAccount.json +1 -1
  13. package/contracts/IAccountExecute.sol/IAccountExecute.json +1 -1
  14. package/contracts/IAggregator.sol/IAggregator.json +1 -1
  15. package/contracts/IERC165.sol/IERC165.json +1 -1
  16. package/contracts/IERC5267.sol/IERC5267.json +1 -1
  17. package/contracts/IEntryPoint.sol/IEntryPoint.json +1 -1
  18. package/contracts/IEntryPointSimulations.sol/IEntryPointSimulations.json +1 -1
  19. package/contracts/INonceManager.sol/INonceManager.json +1 -1
  20. package/contracts/IPaymaster.sol/IPaymaster.json +1 -1
  21. package/contracts/ISenderCreator.sol/ISenderCreator.json +1 -1
  22. package/contracts/IStakeManager.sol/IStakeManager.json +1 -1
  23. package/contracts/LibBytes.sol/LibBytes.json +1 -1
  24. package/contracts/Math.sol/Math.json +1 -1
  25. package/contracts/MessageHashUtils.sol/MessageHashUtils.json +1 -1
  26. package/contracts/NonceManager.sol/NonceManager.json +1 -1
  27. package/contracts/Panic.sol/Panic.json +1 -1
  28. package/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
  29. package/contracts/ReentrancyGuard.sol/ReentrancyGuard.json +1 -1
  30. package/contracts/ReentrancyGuardTransient.sol/ReentrancyGuardTransient.json +1 -1
  31. package/contracts/SafeCast.sol/SafeCast.json +1 -1
  32. package/contracts/SenderCreator.sol/SenderCreator.json +1 -1
  33. package/contracts/ShortStrings.sol/ShortStrings.json +1 -1
  34. package/contracts/SignedMath.sol/SignedMath.json +1 -1
  35. package/contracts/StakeManager.sol/StakeManager.json +1 -1
  36. package/contracts/StorageSlot.sol/StorageSlot.json +1 -1
  37. package/contracts/Strings.sol/Strings.json +1 -1
  38. package/contracts/TransientSlot.sol/TransientSlot.json +1 -1
  39. package/contracts/UserOperation.sol/UserOperationLib.json +1 -1
  40. package/contracts/UserOperationLib.sol/UserOperationLib.json +1 -1
  41. package/contracts/build-info/{ad2dc60de86c0e4f.json → 10cf9b18fcc1598e.json} +1 -1
  42. package/contracts/build-info/{4a223f6420e18feb.json → 257ff8e2b1124ead.json} +1 -1
  43. package/contracts/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
  44. package/contracts/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
  45. package/contracts/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
  46. package/contracts/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
  47. package/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
  48. package/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
  49. package/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
  50. package/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
  51. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
  52. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
  53. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
  54. package/esm/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
  55. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
  56. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
  57. package/esm/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
  58. package/esm/rpc/methods/boost_sendUserOperation.js +7 -1
  59. package/esm/rpc/methods/boost_sendUserOperation.js.map +1 -1
  60. package/esm/rpc/methods/eth_estimateUserOperationGas.js +31 -8
  61. package/esm/rpc/methods/eth_estimateUserOperationGas.js.map +1 -1
  62. package/esm/rpc/methods/eth_sendUserOperation.d.ts +7 -1
  63. package/esm/rpc/methods/eth_sendUserOperation.js +7 -2
  64. package/esm/rpc/methods/eth_sendUserOperation.js.map +1 -1
  65. package/esm/rpc/rpcHandler.js +11 -3
  66. package/esm/rpc/rpcHandler.js.map +1 -1
  67. package/package.json +1 -1
@@ -1 +1 @@
1
- { "abi": [{ "type": "constructor", "inputs": [], "stateMutability": "nonpayable" }, { "type": "receive", "stateMutability": "payable" }, { "type": "function", "name": "_accountValidation", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOpInfo", "type": "tuple", "internalType": "struct EntryPoint.UserOpInfo", "components": [{ "name": "mUserOp", "type": "tuple", "internalType": "struct EntryPoint.MemoryUserOp", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymaster", "type": "address", "internalType": "address" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "contextOffset", "type": "uint256", "internalType": "uint256" }, { "name": "preOpGas", "type": "uint256", "internalType": "uint256" }] }], "outputs": [{ "name": "validationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "_paymasterValidation", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOpInfo", "type": "tuple", "internalType": "struct EntryPoint.UserOpInfo", "components": [{ "name": "mUserOp", "type": "tuple", "internalType": "struct EntryPoint.MemoryUserOp", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymaster", "type": "address", "internalType": "address" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "contextOffset", "type": "uint256", "internalType": "uint256" }, { "name": "preOpGas", "type": "uint256", "internalType": "uint256" }] }], "outputs": [{ "name": "validationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "_validatePrepayment", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOpInfo", "type": "tuple", "internalType": "struct EntryPoint.UserOpInfo", "components": [{ "name": "mUserOp", "type": "tuple", "internalType": "struct EntryPoint.MemoryUserOp", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymaster", "type": "address", "internalType": "address" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "contextOffset", "type": "uint256", "internalType": "uint256" }, { "name": "preOpGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "validatePaymasterPrepayment", "type": "bool", "internalType": "bool" }], "outputs": [{ "name": "validationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "addStake", "inputs": [{ "name": "unstakeDelaySec", "type": "uint32", "internalType": "uint32" }], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "balanceOf", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "binarySearchCallGasLimit", "inputs": [{ "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct SimulationArgs[]", "components": [{ "name": "op", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct SimulationArgs", "components": [{ "name": "op", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "address" }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.TargetCallResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "binarySearchPaymasterVerificationGasLimit", "inputs": [{ "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct SimulationArgs[]", "components": [{ "name": "op", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct SimulationArgs", "components": [{ "name": "op", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "address" }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.TargetCallResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "binarySearchVerificationGasLimit", "inputs": [{ "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct SimulationArgs[]", "components": [{ "name": "op", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct SimulationArgs", "components": [{ "name": "op", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "address" }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.TargetCallResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "delegateAndRevert", "inputs": [{ "name": "target", "type": "address", "internalType": "address" }, { "name": "data", "type": "bytes", "internalType": "bytes" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "depositTo", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "eip712Domain", "inputs": [], "outputs": [{ "name": "fields", "type": "bytes1", "internalType": "bytes1" }, { "name": "name", "type": "string", "internalType": "string" }, { "name": "version", "type": "string", "internalType": "string" }, { "name": "chainId", "type": "uint256", "internalType": "uint256" }, { "name": "verifyingContract", "type": "address", "internalType": "address" }, { "name": "salt", "type": "bytes32", "internalType": "bytes32" }, { "name": "extensions", "type": "uint256[]", "internalType": "uint256[]" }], "stateMutability": "view" }, { "type": "function", "name": "getDepositInfo", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [{ "name": "info", "type": "tuple", "internalType": "struct IStakeManager.DepositInfo", "components": [{ "name": "deposit", "type": "uint256", "internalType": "uint256" }, { "name": "staked", "type": "bool", "internalType": "bool" }, { "name": "stake", "type": "uint112", "internalType": "uint112" }, { "name": "unstakeDelaySec", "type": "uint32", "internalType": "uint32" }, { "name": "withdrawTime", "type": "uint48", "internalType": "uint48" }] }], "stateMutability": "view" }, { "type": "function", "name": "getDomainSeparatorV4", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "getNonce", "inputs": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "key", "type": "uint192", "internalType": "uint192" }], "outputs": [{ "name": "nonce", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "getPackedUserOpTypeHash", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "pure" }, { "type": "function", "name": "getUserOpHash", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "incrementNonce", "inputs": [{ "name": "key", "type": "uint192", "internalType": "uint192" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "innerHandleOp", "inputs": [{ "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "opInfo", "type": "tuple", "internalType": "struct EntryPoint.UserOpInfo", "components": [{ "name": "mUserOp", "type": "tuple", "internalType": "struct EntryPoint.MemoryUserOp", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymaster", "type": "address", "internalType": "address" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "contextOffset", "type": "uint256", "internalType": "uint256" }, { "name": "preOpGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "context", "type": "bytes", "internalType": "bytes" }, { "name": "preGas", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "actualGasCost", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "nonceSequenceNumber", "inputs": [{ "name": "", "type": "address", "internalType": "address" }, { "name": "", "type": "uint192", "internalType": "uint192" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "senderCreator", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "contract ISenderCreator" }], "stateMutability": "view" }, { "type": "function", "name": "simulateCall", "inputs": [{ "name": "entryPoint", "type": "address", "internalType": "address" }, { "name": "payload", "type": "bytes", "internalType": "bytes" }, { "name": "gas", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "success", "type": "bool", "internalType": "bool" }, { "name": "result", "type": "bytes", "internalType": "bytes" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateCallAndRevert", "inputs": [{ "name": "target", "type": "address", "internalType": "address" }, { "name": "data", "type": "bytes", "internalType": "bytes" }, { "name": "gas", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateHandleOp", "inputs": [{ "name": "op", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ExecutionResult", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "targetSuccess", "type": "bool", "internalType": "bool" }, { "name": "targetResult", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateHandleOpBulk", "inputs": [{ "name": "ops", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct IEntryPointSimulations.ExecutionResult[]", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "targetSuccess", "type": "bool", "internalType": "bool" }, { "name": "targetResult", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateHandleOpLast", "inputs": [{ "name": "ops", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ExecutionResult", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "targetSuccess", "type": "bool", "internalType": "bool" }, { "name": "targetResult", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateValidation", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ValidationResult", "components": [{ "name": "returnInfo", "type": "tuple", "internalType": "struct IEntryPoint.ReturnInfo", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterContext", "type": "bytes", "internalType": "bytes" }] }, { "name": "senderInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "factoryInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "paymasterInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "aggregatorInfo", "type": "tuple", "internalType": "struct IEntryPointSimulations.AggregatorStakeInfo", "components": [{ "name": "aggregator", "type": "address", "internalType": "address" }, { "name": "stakeInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateValidationBulk", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct IEntryPointSimulations.ValidationResult[]", "components": [{ "name": "returnInfo", "type": "tuple", "internalType": "struct IEntryPoint.ReturnInfo", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterContext", "type": "bytes", "internalType": "bytes" }] }, { "name": "senderInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "factoryInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "paymasterInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "aggregatorInfo", "type": "tuple", "internalType": "struct IEntryPointSimulations.AggregatorStakeInfo", "components": [{ "name": "aggregator", "type": "address", "internalType": "address" }, { "name": "stakeInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateValidationLast", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ValidationResult", "components": [{ "name": "returnInfo", "type": "tuple", "internalType": "struct IEntryPoint.ReturnInfo", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterContext", "type": "bytes", "internalType": "bytes" }] }, { "name": "senderInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "factoryInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "paymasterInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "aggregatorInfo", "type": "tuple", "internalType": "struct IEntryPointSimulations.AggregatorStakeInfo", "components": [{ "name": "aggregator", "type": "address", "internalType": "address" }, { "name": "stakeInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "unlockStake", "inputs": [], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "withdrawStake", "inputs": [{ "name": "withdrawAddress", "type": "address", "internalType": "address payable" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "withdrawTo", "inputs": [{ "name": "withdrawAddress", "type": "address", "internalType": "address payable" }, { "name": "withdrawAmount", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "event", "name": "AccountDeployed", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "factory", "type": "address", "indexed": false, "internalType": "address" }, { "name": "paymaster", "type": "address", "indexed": false, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "BeforeExecution", "inputs": [], "anonymous": false }, { "type": "event", "name": "Deposited", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "totalDeposit", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "EIP712DomainChanged", "inputs": [], "anonymous": false }, { "type": "event", "name": "PostOpRevertReason", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "revertReason", "type": "bytes", "indexed": false, "internalType": "bytes" }], "anonymous": false }, { "type": "event", "name": "SignatureAggregatorChanged", "inputs": [{ "name": "aggregator", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "StakeLocked", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "totalStaked", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "StakeUnlocked", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "withdrawTime", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "StakeWithdrawn", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "withdrawAddress", "type": "address", "indexed": false, "internalType": "address" }, { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "UserOperationEvent", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "paymaster", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "success", "type": "bool", "indexed": false, "internalType": "bool" }, { "name": "actualGasCost", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "actualGasUsed", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "UserOperationPrefundTooLow", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "UserOperationRevertReason", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "revertReason", "type": "bytes", "indexed": false, "internalType": "bytes" }], "anonymous": false }, { "type": "event", "name": "Withdrawn", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "withdrawAddress", "type": "address", "indexed": false, "internalType": "address" }, { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "error", "name": "CallPhaseReverted", "inputs": [{ "name": "reason", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "DelegateAndRevert", "inputs": [{ "name": "success", "type": "bool", "internalType": "bool" }, { "name": "ret", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "FailedOp", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "reason", "type": "string", "internalType": "string" }] }, { "type": "error", "name": "FailedOpWithRevert", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "reason", "type": "string", "internalType": "string" }, { "name": "inner", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "InvalidShortString", "inputs": [] }, { "type": "error", "name": "PostOpReverted", "inputs": [{ "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "ReentrancyGuardReentrantCall", "inputs": [] }, { "type": "error", "name": "SenderAddressResult", "inputs": [{ "name": "sender", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "SignatureValidationFailed", "inputs": [{ "name": "aggregator", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "SimulationOutOfGas", "inputs": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "StringTooLong", "inputs": [{ "name": "str", "type": "string", "internalType": "string" }] }, { "type": "error", "name": "innerCallResult", "inputs": [{ "name": "remainingGas", "type": "uint256", "internalType": "uint256" }] }], "bytecode": { "object": "0x610180604052346101b8576040516100186040826101eb565b600781526020810190664552433433333760c81b82526040519161003d6040846101eb565b600183526020830191603160f81b83526100568161020e565b61012052610063846103a9565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a081526100cc60c0826101eb565b5190206080523060c05230610160526040516100e7816101bc565b5f815260208101905f8252806020604051610101816101bc565b5f81520152600480546001600160a01b031916905551600555516006556040516156cf90816104e2823960805181613fd8015260a05181614095015260c05181613fa9015260e051816140270152610100518161404d015261012051816114c1015261014051816114ea015261016051818181613200015281816137ef0152818161384a01528181613a0f01528181613ac501528181613b1f01528181613c3301528181613ce901528181613d430152613e570152f35b5f80fd5b604081019081106001600160401b038211176101d757604052565b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b038211908210176101d757604052565b908151602081105f14610288575090601f815111610248576020815191015160208210610239571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b0381116101d757600254600181811c9116801561039f575b602082101461038b57601f8111610358575b50602092601f82116001146102f757928192935f926102ec575b50508160011b915f199060031b1c19161760025560ff90565b015190505f806102d3565b601f1982169360025f52805f20915f5b8681106103405750836001959610610328575b505050811b0160025560ff90565b01515f1960f88460031b161c191690555f808061031a565b91926020600181928685015181550194019201610307565b60025f52601f60205f20910160051c810190601f830160051c015b81811061038057506102b9565b5f8155600101610373565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102a7565b908151602081105f146103d4575090601f815111610248576020815191015160208210610239571790565b6001600160401b0381116101d757600354600181811c911680156104d7575b602082101461038b57601f81116104a4575b50602092601f821160011461044357928192935f92610438575b50508160011b915f199060031b1c19161760035560ff90565b015190505f8061041f565b601f1982169360035f52805f20915f5b86811061048c5750836001959610610474575b505050811b0160035560ff90565b01515f1960f88460031b161c191690555f8080610466565b91926020600181928685015181550194019201610453565b60035f52601f60205f20910160051c810190601f830160051c015b8181106104cc5750610405565b5f81556001016104bf565b90607f16906103f356fe60806040526004361015610022575b3615610018575f80fd5b6100206132f5565b005b5f3560e01c80630396cb601461021157806303d1dcaf1461020c57806309ccb880146102075780630bd28e3b146102025780630da82661146101fd5780630dbfc6bd146101f857806313c65a6e146101f3578063154e58dc146101ee5780631b2e01b8146101e9578063205c2878146101e457806321e60b37146101df57806322cdde4c146101da578063263934db146101d557806330ec25d1146101d057806335567e1a146101cb57806344403473146101c65780635287ce12146101c157806369683cfa146101bc57806370a08231146101b75780637472949c146101b257806376ad6123146101ad57806384b0196e146101a8578063850aaf62146101a357806397b2dcb91461019e578063b760faf914610199578063bb9fe6bf14610194578063c23a5cea1461018f578063c3bce0091461018a578063c579f76b14610185578063f7e426e8146101805763fe2171cb0361000e57611c43565b611c0a565b611aea565b611ab3565b611990565b61186d565b61184d565b6115fe565b6115c2565b6114a9565b611470565b611450565b611415565b611241565b611134565b6110ef565b611013565b610f96565b610e80565b610e57565b610c8e565b610a9c565b610a3f565b610a05565b6109e3565b610966565b6107b8565b6105ea565b6105a9565b610518565b60203660031901126104005760043563ffffffff811690818103610400576103fb7fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01916103dd6102cf6102bf610277336001600160a01b03165f525f60205260405f2090565b96610283811515611c92565b6102b06001890154916102a96102a08463ffffffff9060781c1690565b63ffffffff1690565b1115611cdd565b60081c6001600160701b031690565b6001600160701b03349116611d59565b946102db861515611d66565b6102ee6001600160701b03871115611db1565b546102f76106ee565b908152600160208201526001600160701b038616604082015263ffffffff831660608201525f608082015261033c336001600160a01b03165f525f60205260405f2090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b5f80fd5b9181601f840112156104005782359167ffffffffffffffff8311610400576020808501948460051b01011161040057565b6001600160a01b0381160361040057565b359061045182610435565b565b60c06003198201126104005760043567ffffffffffffffff8111610400578161047e91600401610404565b929092916024359067ffffffffffffffff821161040057606090829003600319011261040057600401906044356104b481610435565b90606435906084359060a43590565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60806040610515936020845280516020850152602081015115158285015201519160608082015201906104c3565b90565b346104005761059b61058f61057861052f36610453565b969194909561053f949394611dfc565b5061057261054b611e1b565b6105606105588780611e8a565b825190613394565b61056a8680611e8a565b905a91613482565b50613648565b61058a6105858280611e8a565b613704565b613796565b604051918291826104e7565b0390f35b5f91031261040057565b34610400575f3660031901126104005760206105c3611eab565b6001600160a01b0360405191168152f35b602435906001600160c01b038216820361040057565b34610400576020366003190112610400576004356001600160c01b03811681036104005761063490335f52600160205260405f20906001600160c01b03165f5260205260405f2090565b61063e8154611f25565b9055005b634e487b7160e01b5f52604160045260245ffd5b60a0810190811067ffffffffffffffff82111761067257604052565b610642565b6060810190811067ffffffffffffffff82111761067257604052565b610140810190811067ffffffffffffffff82111761067257604052565b6040810190811067ffffffffffffffff82111761067257604052565b90601f8019910116810190811067ffffffffffffffff82111761067257604052565b6040519061045160a0836106cc565b60405190610451610140836106cc565b60405190610451610100836106cc565b604051906104516040836106cc565b604051906104516060836106cc565b60405190610451610120836106cc565b67ffffffffffffffff811161067257601f01601f191660200190565b9291926107738261074b565b9161078160405193846106cc565b829481845281830111610400578281602093845f960137010152565b9080601f830112156104005781602061051593359101610767565b34610400576102203660031901126104005760043567ffffffffffffffff8111610400576107ea90369060040161079d565b3660231901906101c08212610400576101406040519261080984610656565b12610400576108166106fd565b6108206024610446565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c082015261085d610104610446565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359067ffffffffffffffff8211610400576040926108c46108cf93369060040161079d565b906102043592611f33565b82519182526020820152f35b6020600319820112610400576004359067ffffffffffffffff82116104005761090691600401610404565b9091565b9061010060e061051593805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e082015201906104c3565b346104005761097d610977366108db565b90612296565b6040518091602082016020835281518091526040830190602060408260051b8601019301915f905b8282106109b457505050500390f35b919360019193955060206109d38192603f198a8203018652885161090a565b96019201920185949391926109a5565b34610400575f3660031901126104005760206109fd613f9f565b604051908152f35b34610400575f3660031901126104005760206040517f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e8152f35b34610400576040366003190112610400576020610a93600435610a6181610435565b6001600160a01b03610a716105d4565b91165f526001835260405f20906001600160c01b03165f5260205260405f2090565b54604051908152f35b3461040057604036600319011261040057600435610ab981610435565b602435335f525f60205260405f2091825490818311610b3d575f8080856001600160a01b03829589610aee846100209a61245d565b9055604080516001600160a01b03831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af1610b3761246a565b50612499565b606460405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b90816101209103126104005790565b610200600319820112610400576004359160243567ffffffffffffffff81116104005782610bc091600401610b81565b916043190160446101c082126104005761014060405192610be084610656565b12610400576101a090610bf16106fd565b610bfa82610446565b81526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c0820152610c4460e08301610446565b60e082015261010082013561010082015261012082013561012082015283526101408101356020840152610160810135604084015261018081013560608401520135608082015290565b3461040057610c9c36610b90565b90915f91805193610cad8582613394565b610cb6816124e4565b60208301526001600160a01b0360e0610cf087610100604082015160608301510160808301510160a08301510160c0830151019101510290565b96876040860152015116610d1a575b604080515f8082526020820187905291810191909152606090f35b909192505a93610d398351916001600160a01b0360e084015116614acc565b15610de057906080610d5092015192839185615171565b9390505a900311610d68575061059b905f8080610cff565b60408051631101335b60e11b815260048101929092526024820152602760448201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760648201527f61734c696d69740000000000000000000000000000000000000000000000000060848201528060a481015b0390fd5b60848460405190631101335b60e11b8252600482015260406024820152601e60448201527f41413331207061796d6173746572206465706f73697420746f6f206c6f7700006064820152fd5b6020600319820112610400576004359067ffffffffffffffff82116104005761051591600401610b81565b346104005760206109fd610e6a36610e2c565b6124e4565b90602061051592818152019061090a565b3461040057610eac610e91366108db565b809291610e9c6121a1565b50610ea6826121ef565b50612296565b5f198201918211610ed95761059b91610ec491612282565b5160405191829160208352602083019061090a565b611d28565b906105159060e06080610f30818651610140865280516101408701526020810151610160870152604081015161018087015260608101516101a0870152015160a06101c08601526101e08501906104c3565b60208087015180518683015201516040850152946040810151805160608601526020015160808501526060810151805160a08601526020015160c0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b3461040057610fad610fa7366108db565b906126cb565b6040518091602082016020835281518091526040830190602060408260051b8601019301915f905b828210610fe457505050500390f35b919360019193955060206110038192603f198a82030186528851610ede565b9601920192018594939192610fd5565b3461040057604036600319011261040057602060043561103281610435565b6001600160a01b036110426105d4565b91165f52600182526110688160405f20906001600160c01b03165f5260205260405f2090565b546040805192901b67ffffffffffffffff1916178152f35b9181601f840112156104005782359167ffffffffffffffff8311610400576020838186019501011161040057565b906060600319830112610400576004356110c781610435565b916024359067ffffffffffffffff8211610400576110e791600401611080565b909160443590565b34610400575f8080611100366110ae565b939181604094929451948592833781018381520393f161111e61246a565b901561112657005b805190811561040057602001fd5b34610400576020366003190112610400576001600160a01b0360043561115981610435565b5f608060405161116881610656565b8281528260208201528260408201528260608201520152165f525f60205261059b60405f206111ed65ffffffffffff6001604051936111a685610656565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b346104005761124f36610b90565b9190915a928151936112618583613394565b61126a826124e4565b60208401526040850151936112b66effffffffffffffffffffffffffffff8660c08901511760608901511760808901511760a0890151176101008901511761012089015117111561275d565b6112e186610100604082015160608301510160808301510160a08301510160c0830151019101510290565b946113166113126112f55a89898988613565565b98602061130982516001600160a01b031690565b9101519061420a565b1590565b6113c0575a8303116113735750926113579260806113529360a061135e975a9560408601526060808601525a9003910135019101525a9061245d565b6127a9565b6064900490565b604080519283525f6020840152820152606090f35b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d697400006064820152608490fd5b610ddc82604051918291631101335b60e11b835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b34610400576020366003190112610400576001600160a01b0360043561143a81610435565b165f525f602052602060405f2054604051908152f35b346104005761059b61058f61146436610453565b95949094939193612816565b346104005761059b61058f61149761148736610453565b9691949095610572949394611dfc565b6114a46105858280611e8a565b613a8a565b34610400575f366003190112610400576115696114e57f00000000000000000000000000000000000000000000000000000000000000006153ac565b61150e7f0000000000000000000000000000000000000000000000000000000000000000615492565b602060405161151d82826106cc565b5f81528161157781830194601f1983013687376040519788977f0f00000000000000000000000000000000000000000000000000000000000000895260e0858a015260e08901906104c3565b9087820360408901526104c3565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b8281106115ab57505050500390f35b83518552869550938101939281019260010161159c565b34610400576040366003190112610400576115de600435610435565b60243567ffffffffffffffff811161040057610020903690600401611080565b346104005760603660031901126104005760043567ffffffffffffffff81116104005761162f903690600401610b81565b6024359061163c82610435565b60443567ffffffffffffffff81116104005761165c90369060040161079d565b906116656121a1565b507f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6118255761059b9260017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d6116bc611e1b565b926116c683613704565b6116d08484612d98565b9091945a6060880151886116e76060850185612a8f565b5f6003821161181d575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361180457505061175561176961176e956020840151604051938492638dd7712f60e01b60208501526040602485015260648401906142af565b90604483015203601f1981018352826106cc565b611f33565b9290965b5f946060966001600160a01b0381166117d9575b50509560806117c0969701519761179b61070d565b988952602089015260408801526060870152608086015260a0850152151560c0840152565b60e08201526117cd614258565b60405191829182610e6f565b6117c097505f92965090829182602083519301915af19560806117fa61246a565b9795919796611786565b611815955090611769913691610767565b929096611772565b5081356116f1565b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b60203660031901126104005761002060043561186881610435565b6128a1565b34610400575f36600319011261040057335f525f602052600160405f2001805463ffffffff8160781c161561194c576118d56118c76102a0836118bb6118b661190f9660ff1690565b6128fa565b60781c63ffffffff1690565b65ffffffffffff4216612945565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a9080602081016103fb565b606460405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b34610400576020366003190112610400576100205f8080806004356119b481610435565b6001600160a01b0360016119d8336001600160a01b03165f525f60205260405f2090565b0191611a66835493611a3e65ffffffffffff611a2a611a10611a04896001600160701b039060081c1690565b6001600160701b031690565b97611a1c891515612963565b60981c65ffffffffffff1690565b16611a368115156129ae565b4210156129f9565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03831681526020810185905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2165af1611aad61246a565b50612a44565b346104005761059b611acc611ac736610e2c565b612b84565b604051918291602083526020830190610ede565b8015150361040057565b34610400576102203660031901126104005760043560243567ffffffffffffffff811161040057611b1f903690600401610b81565b3660431901916101c083126104005761014060405193611b3e85610656565b126104005761059b92611bed92611b536106fd565b611b5d6044610446565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c0820152611b9b610124610446565b60e0820152610144356101008201526101643561012082015282526101843560208301526101a43560408301526101c43560608301526101e43560808301526102043592611be884611ae0565b612f73565b604080519384526020840192909252908201529081906060820190565b3461040057611c24611c1b366110ae565b929190916131ab565b9061059b604051928392151583526040602084015260408301906104c3565b3461040057611c65611c54366108db565b809291611c5f612649565b506126cb565b5f198201918211610ed95761059b91611c7d91612282565b51604051918291602083526020830190610ede565b15611c9957565b606460405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b15611ce457565b606460405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b634e487b7160e01b5f52601160045260245ffd5b906113888201809211610ed957565b9060018201809211610ed957565b91908201809211610ed957565b15611d6d57565b606460405162461bcd60e51b815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611db857565b606460405162461bcd60e51b815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b60405190611e0982610677565b60606040835f81525f60208201520152565b60405190611e2882610656565b5f608083604051611e3881610693565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b90359061011e1981360301821215610400570190565b6040513d5f823e3d90fd5b6040517f09ccb880000000000000000000000000000000000000000000000000000000008152602081600481305afa908115611f20575f91611eeb575090565b90506020813d602011611f18575b81611f06602093836106cc565b81010312610400575161051581610435565b3d9150611ef9565b611ea0565b5f198114610ed95760010190565b9392909193825190606082015181519081612120575b505050505a9003608082015101925f935a91835191611f67836150e7565b92611f7c60e08201516001600160a01b031690565b91611f9260808801518203606084015190615107565b01925f926001600160a01b03811690816120375750505090611fbf6040949392516001600160a01b031690565b945b5a9003010102920151908282105f1461200557611fdd5f613f13565b7fdeadaa51000000000000000000000000000000000000000000000000000000005f5260205ffd5b826120299203906001600160a01b03165f525f60205260405f209081540180915590565b506120335f613f13565b9190565b9692825161204e575b505050906040939291611fc1565b919950949392505a986120605f613f13565b60a05a920195865191813b15610400578692835f8094896120b3604051988997889687947f7c627b2100000000000000000000000000000000000000000000000000000000865202908660048601613f22565b0393f19081612106575b506120e657610ddc6120cd613ed2565b6040519182916365c8fd4d60e01b835260048301613f54565b6040946120fc915a9003995a9003905190615107565b9192935f80612040565b806121145f61211a936106cc565b8061059f565b5f6120bd565b5f80949360206001600160a01b0383965116910192f115612144575f808080611f49565b610ddc61214f613ed2565b6040519182917f462c71b20000000000000000000000000000000000000000000000000000000083526020600484015260248301906104c3565b67ffffffffffffffff81116106725760051b60200190565b60405190610100820182811067ffffffffffffffff82111761067257604052606060e0835f81525f60208201525f60408201525f838201525f60808201525f60a08201525f60c08201520152565b906121f982612189565b61220660405191826106cc565b8281528092612217601f1991612189565b01905f5b82811061222757505050565b6020906122326121a1565b8282850101520161221b565b634e487b7160e01b5f52603260045260245ffd5b90821015612269576105159160051b810190611e8a565b61223e565b6040519061227d6020836106cc565b5f8252565b80518210156122695760209160051b010190565b61229f826121ef565b915f5b8181106122af5750505090565b6122ba818385612252565b9060205f6040516122cb83826106cc565b526122d46121a1565b507f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c61182557600192837f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d612329611e1b565b9061233381613704565b8261233e8383612d98565b929091935a90866060810151916123586060820182612a8f565b5f60038211612438575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361242057505061176985638dd7712f60e01b926117556123c598860151916040519586948501526040602485015260648401906142af565b93905b60806060960151966123d861070d565b978852870152604086015283850152608084015260a08301525f60c083015260e0820152612404614258565b61240e8287612282565b526124198186612282565b50016122a2565b612431965061176992503691610767565b93906123c8565b508135612362565b600319810191908211610ed957565b5f19810191908211610ed957565b91908203918211610ed957565b3d15612494573d9061247b8261074b565b9161248960405193846106cc565b82523d5f602084013e565b606090565b156124a057565b606460405162461bcd60e51b815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b610515906124f181614177565b6124f9613f9f565b916125d581359261250984610435565b6020830135908015612611576125c790935b61253161252b6060830183612a8f565b90615637565b90608081013560a08201359061255361252b60c08501359460e0810190612a8f565b93604051988997602089019b8c94919261010096939998979491996001600160a01b0361012088019b7f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e895216602088015260408701526060860152608085015260a084015260c083015260e08201520152565b03601f1981018352826106cc565b51902090604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b506125c76126226040850185612a8f565b9081604051918237209361251b565b6040519061263e826106b0565b5f6020838281520152565b6040519061265682610656565b8160405161266381610656565b5f81525f60208201525f60408201525f6060820152606060808201528152612689612631565b6020820152612696612631565b60408201526126a3612631565b60608201526080604051916126b7836106b0565b5f83526126c2612631565b60208401520152565b6126d482612189565b916126e260405193846106cc565b808352601f196126f182612189565b015f5b8181106127395750505f5b81811061270c5750505090565b8061271d611ac76001938587612252565b6127278287612282565b526127328186612282565b50016126ff565b602090612744612649565b828288010152016126f4565b908092918237015f815290565b1561276457565b60405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152606490fd5b90607382029180830460731490151715610ed957565b3561051581610435565b604051906127d86020836106cc565b5f808352366020840137565b906127ee8261074b565b6127fb60405191826106cc565b828152809261280c601f199161074b565b0190602036910137565b9061282991969594939296610572611dfc565b6001600160a01b0361283b8680611e8a565b61286460208801359161284d83610435565b612855611e1b565b9061285f81613704565b612d98565b50505016156128765761051594613cae565b50505050506128836127c9565b6040519061289082610677565b5f82525f6020830152604082015290565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b036128ee34856001600160a01b03165f525f60205260405f209081540180915590565b936040519485521692a2565b1561290157565b606460405162461bcd60e51b815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b9065ffffffffffff8091169116019065ffffffffffff8211610ed957565b1561296a57565b606460405162461bcd60e51b815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b156129b557565b606460405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b15612a0057565b606460405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b15612a4b57565b606460405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b903590601e1981360301821215610400570180359067ffffffffffffffff82116104005760200191813603831361040057565b906014116104005790601490565b909291928360141161040057831161040057601401916013190190565b909291928360341161040057831161040057603401916033190190565b356bffffffffffffffffffffffff19811692919060148210612b2a575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b60405190612b57826106b0565b6004546001600160a01b03168252604051602083612b74836106b0565b6005548352600654828401520152565b612b8c612649565b50612b95611e1b565b90612b9f81613704565b612ba98282612d98565b50919092612bb78385614372565b612bd4612bcf60e0835101516001600160a01b031690565b61451c565b91612c02612bee612bcf84516001600160a01b0390511690565b91612bf7612631565b506040810190612a8f565b9060148210612cdd57612c24612c1e612c2a93612bcf93612ac2565b90612b0a565b60601c90565b916001600160a01b038616946080820151966060604084015193015192612c4f6106ee565b9889526020890152604088015260608701526080860152612c6e612b4a565b9380151580612cd2575b612ca0575b50612c866106ee565b948552602085015260408401526060830152608082015290565b909350612cac8161451c565b612cc6612cb761071d565b6001600160a01b039093168352565b6020820152925f612c7d565b506001811415612c78565b5050612c2a5f61451c565b15612cf05750565b60405190631101335b60e11b825260048201526040602482015280610ddc60448201604090601881527f41413934206761732076616c756573206f766572666c6f77000000000000000060208201520190565b15612d4b5750565b60408051631101335b60e11b815260048101929092526024820152601a60448201527f4141323520696e76616c6964206163636f756e74206e6f6e63650000000000006064820152608490fd5b9190915f915a93805192612dac8482613394565b612dc5604051612dbb836124e4565b6020850152604052565b604084015195612e0d5f6effffffffffffffffffffffffffffff8960c08901511760608901511760808901511760a08901511761010089015117610120890151171115612ce8565b612e58612e3b86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b806040860152612e4f608085013560801c90565b9085855f613565565b96612e815f612e7c612e7189516001600160a01b031690565b60208a01519061420a565b612d43565b5a820311612f20576060946001600160a01b03612ea960e05a9301516001600160a01b031690565b16151580612f18575b612ee0575b60809291612ece61135761135260a0945a9061245d565b9660608601525a900391013501910152565b945061135295509060a0608092612ef68361455c565b50612ece611357612f0887865f6140bb565b9a90999450505050919250612eb7565b506001612eb2565b604051631101335b60e11b815280610ddc5f60048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b939092915f935a8251612f868184613394565b612f9f604051612f95856124e4565b6020870152604052565b604081015197612fe7816effffffffffffffffffffffffffffff8b60c08601511760608601511760808601511760a08601511761010086015117610120860151171115612ce8565b61303261301583610100604082015160608301510160808301510160a08301510160c0830151019101510290565b806040880152613029608087013560801c90565b90878785613565565b9861305682612e7c61304b86516001600160a01b031690565b60208701519061420a565b5a840311611373576060966001600160a01b0361307e60e05a9501516001600160a01b031690565b16151590816130de575b506130a6575b5060809291612ece61135761135260a0945a9061245d565b611352975060a091965091612ece6113576130cf878780976130c960809a61455c565b506140bb565b9a90999450505050919261308e565b90505f613088565b908060209392818452848401375f828201840152601f01601f1916010190565b6040906001600160a01b03610515959316815281602082015201916130e6565b908151811015612269570160200190565b919060408382031261040057825161314e81611ae0565b9260208101519067ffffffffffffffff8211610400570181601f820112156104005780519061317c8261074b565b9261318a60405194856106cc565b8284526020838301011161040057815f9260208093018386015e8301015290565b91925f936001600160a01b036060941691823b1561040057613229935f80946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501613106565b0393f190816132e1575b5061090657505061324261246a565b9060048251106132d35761325e6132598351612440565b6127e4565b60045b83518110156132bd57806132a061327a60019387613126565b517fff000000000000000000000000000000000000000000000000000000000000001690565b6132b66132ac83612440565b915f1a9185613126565b5301613261565b5061090691925060208082518301019101613137565b90506132dd6127c9565b5f91565b806121145f6132ef936106cc565b5f613233565b610451336128a1565b1561330557565b606460405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b1561335057565b606460405162461bcd60e51b815260206004820152601660248201527f4141393820696e76616c6964207061796d6173746572000000000000000000006044820152fd5b61342b906133b16133a4826127bf565b6001600160a01b03168452565b602081013560208401526133de6080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c084015261341560c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e0810190612a8f565b8092919261343857505050565b613454816104519461344f603460e09510156132fe565b61457b565b60a08501526080840152916134736001600160a01b0384161515613349565b01906001600160a01b03169052565b92916134c6908251926001600160a01b0360e081865116956134b26134aa60408b018b612a8f565b90865f6145d9565b015116905f91159687613532575b5f6149c5565b926134ce5750565b5f6134d891614acc565b156134df57565b604051631101335b60e11b815280610ddc5f60048301608091815260406020820152601760408201527f41413231206469646e2774207061792070726566756e6400000000000000000060608201520190565b915061354e856001600160a01b03165f525f60205260405f2090565b54801561355e57505f5b916134c0565b5f03613558565b929094936135ab908351936001600160a01b0360e0818751169661359761358f60408d018d612a8f565b90868c6145d9565b015116905f91159889613613575b876149c5565b946135b557505050565b6135be91614acc565b156135c65750565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b915061362f866001600160a01b03165f525f60205260405f2090565b548581111561364157505f5b916135a5565b850361363b565b915f5b828110156136fe5761365b611e1b565b908060051b85013591605e1986360301831215610400576136926001938701916136886105858480611e8a565b61285f8380611e8a565b505050602081016136b16136a5826127bf565b6001600160a01b031690565b156136f7575f91826136d16136c682946127bf565b926040810190612a8f565b91906136e260405180948193612750565b03925af1506136ef61246a565b505b0161364b565b50506136f1565b50915050565b613737906137156040820182612a8f565b9161372f81359161372583610435565b60e0810190612a8f565b939092614af1565b80516137405750565b610ddc90604051918291631101335b60e11b83525f60048401526040602484015260448301906104c3565b939291613791906001600160a01b036040931686526060602087015260608601906104c3565b930152565b939490946137a2611dfc565b5082156139ed576137e2926137b561226e565b50915f6137c45a886002614e86565b5a906040519687928392631efc84dd60e31b84528c6004850161376b565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215611f20575f945f936139cb575b508294809381156139a957505061383f909592919394955b85611d59565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b84613877888561245d565b1061397f575a61388688611d3c565b116139485791869593918995935f8c8b6138b86138af6138a9886138d89f611d59565b60011c90565b809b6002614e86565b835a936040519e8f9586948593631efc84dd60e31b85526004850161376b565b03925af1988915611f20575f905f9a613921575b501561390c575050506138fe8461244f565b95915b93909294959161386c565b9396509461391b919750611d4b565b94613901565b90506139409199503d805f833e61393881836106cc565b810190613137565b98905f6138ec565b7fe2c4d0be000000000000000000000000000000000000000000000000000000005f5260048290526024879052604483905260645ffd5b9650965050919550506139a1915061399561072c565b93845215156020840152565b604082015290565b965096505095505050506139a16139be61072c565b5f81529215156020840152565b9092506139e39194503d805f833e61393881836106cc565b939093915f613821565b90613a0292505a905f6137c45a886002614e86565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611f20575f945f94613a68575b508394613a5081945a9061245d565b9481156139a957505061383f90959291939495613839565b909350613a809194503d805f833e61393881836106cc565b939093925f613a41565b93949094613a96611dfc565b508215613c1157613ab892613aa961226e565b50915f6137c45a886003614e86565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215611f20575f945f93613bef575b508294809381156139a9575050613b149095929193949585611d59565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b84613b4c888561245d565b1061397f575a613b5b88611d3c565b116139485791869593918995935f8c8b6138b8613b7e6138a988613b879f611d59565b809b6003614e86565b03925af1988915611f20575f905f9a613bd0575b5015613bbb57505050613bad8461244f565b95915b939092949591613b41565b93965094613bca919750611d4b565b94613bb0565b9050613be79199503d805f833e61393881836106cc565b98905f613b9b565b909250613c079194503d805f833e61393881836106cc565b939093915f613af7565b90613c2692505a905f6137c45a886003614e86565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611f20575f945f94613c8c575b508394613c7481945a9061245d565b9481156139a9575050613b1490959291939495613839565b909350613ca49194503d805f833e61393881836106cc565b939093925f613c65565b93949094613cba611dfc565b508215613e3557613cdc92613ccd61226e565b50915f6137c45a886001614e86565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215611f20575f945f93613e13575b508294809381156139a9575050613d389095929193949585611d59565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b84613d70888561245d565b1061397f575a613d7f88611d3c565b116139485791869593918995935f8c8b6138b8613da26138a988613dab9f611d59565b809b6001614e86565b03925af1988915611f20575f905f9a613df4575b5015613ddf57505050613dd18461244f565b95915b939092949591613d65565b93965094613dee919750611d4b565b94613dd4565b9050613e0b9199503d805f833e61393881836106cc565b98905f613dbf565b909250613e2b9194503d805f833e61393881836106cc565b939093915f613d1b565b90613e4a92505a905f6137c45a886001614e86565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611f20575f945f94613eb0575b508394613e9881945a9061245d565b9481156139a9575050613d3890959291939495613839565b909350613ec89194503d805f833e61393881836106cc565b939093925f613e89565b3d6108008111613ef6575b604051906020818301016040528082525f602083013e90565b50610800613edd565b634e487b7160e01b5f52602160045260245ffd5b60031115613f1d57565b613eff565b90949392946003811015613f1d57606092613f4a9183526080602084015260808301906104c3565b9460408201520152565b9060a0610515925f815260606020820152601460608201527f4141353020706f73744f70207265766572746564000000000000000000000000608082015281604082015201906104c3565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016301480614092575b15613ffa577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261408c60c0826106cc565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614613fd1565b9290925a9383516140de6001600160a01b0360e083015116604087015190614acc565b15614103579060806140f592015194859184615171565b9390945a900311610d685750565b60848360405190631101335b60e11b8252600482015260406024820152601e60448201527f41413331207061796d6173746572206465706f73697420746f6f206c6f7700006064820152fd5b909280926014946bffffffffffffffffffffffff199060601b1683528483013701015f815290565b6141846040820182612a8f565b90916141936113128385615266565b614203576141a36141a8916127bf565b6152a8565b91601482116141df57505060405161408c816125c76020820194856014916bffffffffffffffffffffffff199060601b1681520190565b8161408c926141ed92612ad0565b91906125c760405193849260208401968761414f565b5050505f90565b6001600160a01b03165f52600160205267ffffffffffffffff6142448260401c60405f20906001600160c01b03165f5260205260405f2090565b9182549261425184611f25565b9055161490565b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d565b9035601e198236030181121561040057016020813591019167ffffffffffffffff821161040057813603831361040057565b610515916142cd816142c084610446565b6001600160a01b03169052565b6020820135602082015261436361435761431e6143036142f0604087018761427d565b61012060408801526101208701916130e6565b614310606087018761427d565b9086830360608801526130e6565b6080850135608085015260a085013560a085015260c085013560c085015261434960e086018661427d565b9085830360e08701526130e6565b9261010081019061427d565b916101008185039101526130e6565b6143836001600160a01b039161554a565b91166144c9576144765761439e6001600160a01b039161554a565b9116614423576143aa57565b604051631101335b60e11b815280610ddc5f6004830160a091815260406020820152602160408201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560608201527f650000000000000000000000000000000000000000000000000000000000000060808201520190565b604051631101335b60e11b815280610ddc5f60048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b604051631101335b60e11b815280610ddc5f60048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b604051631101335b60e11b815280610ddc5f60048301608091815260406020820152601460408201527f41413234207369676e6174757265206572726f7200000000000000000000000060608201520190565b906001600160a01b0361452d612631565b92165f525f60205263ffffffff600160405f2001546001600160701b038160081c16845260781c166020830152565b61456a9060e0810190612a8f565b602411610400576014013560801c90565b9091826014116104005781359183602411610400576014810135936034116104005760609290921c92608090811c9260240135901c90565b90816020910312610400575161051581610435565b9160206105159381815201916130e6565b929091816145e8575b50505050565b8251516001600160a01b0316936145ff8383615266565b6148bc57843b61486f5760148310614822575f602061461f6136a5611eab565b604087510151604051809481937f570e1a360000000000000000000000000000000000000000000000000000000083528261465e8b8b600484016145c8565b0393f1908115611f20575f916147f3575b506001600160a01b03811695861561479e576001600160a01b0316809603614749573b156146fc5750612c24612c1e7fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d936146c993612ac2565b602083810151935160e00151604080516001600160a01b039485168152939091169183019190915290a35f8080806145e2565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b610ddc82604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b610ddc83604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b614815915060203d60201161481b575b61480d81836106cc565b8101906145b3565b5f61466f565b503d614803565b60408051631101335b60e11b815260048101929092526024820152601760448201527f4141393920696e6974436f646520746f6f20736d616c6c0000000000000000006064820152608490fd5b60408051631101335b60e11b815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b5090601481116148cc5750505050565b806148e89160406148de6136a5611eab565b9551015193612ad0565b9190833b15610400575f809461492e96604051978896879586937fc09ad0d900000000000000000000000000000000000000000000000000000000855260048501613106565b0393f18015611f2057614944575b8080806145e2565b806121145f614952936106cc565b5f61493c565b614970604092959493956060835260608301906142af565b9460208201520152565b60a0906105159392815260606020820152600d60608201527f4141323320726576657274656400000000000000000000000000000000000000608082015281604082015201906104c3565b9291602095948692614a2f5f93614a216149e882516001600160a01b0390511690565b976040519b8c930151888401957f19822f7c00000000000000000000000000000000000000000000000000000000875260248501614958565b03601f1981018a52896106cc565b8285895193f15f519460203d03614ac4575b60405215614a4d575050565b3b614a9f5760408051631101335b60e11b815260048101929092526024820152601960448201527f41413230206163636f756e74206e6f74206465706c6f796564000000000000006064820152608490fd5b614aa7613ed2565b90610ddc6040519283926365c8fd4d60e01b84526004840161497a565b5f9150614a41565b6001600160a01b03165f525f60205260405f2090815481811061420357039055600190565b50929192159081614ba6575b50614b69576014811015614b16575b505061051561226e565b601411610400573560601c3b15614b2e575f80614b0c565b604051614b3c6040826106cc565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b5050604051614b796040826106cc565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b155f614afd565b6101208136031261040057614bc361073b565b90614bcd81610446565b825260208101356020830152604081013567ffffffffffffffff811161040057614bfa903690830161079d565b6040830152606081013567ffffffffffffffff811161040057614c20903690830161079d565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff811161040057614c64903690830161079d565b60e08301526101008101359067ffffffffffffffff821161040057614c8b9136910161079d565b61010082015290565b60041115613f1d57565b916020936fffffffffffffffffffffffffffffffff198092603497946bffffffffffffffffffffffff199060601b1686521660148501521660248301528051928391018483015e01015f815290565b80516001600160a01b031682526105159160208201516020820152610100614d6e614d3e614d2c604086015161012060408701526101208601906104c3565b606086015185820360608701526104c3565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526104c3565b920151906101008184039101526104c3565b60806101a0916101208151614d9e8682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c0870152614df260e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b614e5d614e5261020093969594965f84526102206020850152610220840190614ced565b956040830190614d80565b0152565b61020090614e5d614e525f949695968584526102206020850152610220840190614ced565b614e8e611e1b565b614ea0614e9b8480611e8a565b614bb0565b614ea983614c94565b6002831461500257614eba83614c94565b60038314614f7b57505080614ed0600192614c94565b14614f1a5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b806125c7614f45614f3e614f33602061051596016127bf565b936040810190612a8f565b3691610767565b936040519485937f444034730000000000000000000000000000000000000000000000000000000060208601526024850161376b565b9150926fffffffffffffffffffffffffffffffff614fc2614fbb614fa28661051597611e8a565b608001356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526125c76040519384927fc579f76b00000000000000000000000000000000000000000000000000000000602085015260248401614e61565b9150926125c7906fffffffffffffffffffffffffffffffff198461508d61507f61503b615035613725856105159b611e8a565b9061457b565b9291905060609060e08a01956034875151116150c3575b5060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b169060208601614c9e565b03601f1981018452836106cc565b526040519485937f21e60b3700000000000000000000000000000000000000000000000000000000602086015260248501614e2e565b6150e09192506150d961372582614f3e93611e8a565b8091612aed565b905f615052565b61012061010082015191015148018082105f14615102575090565b905090565b90619c40820181111561512057606491600a9103020490565b50505f90565b60a0906105159392815260606020820152600d60608201527f4141333320726576657274656400000000000000000000000000000000000000608082015281604082015201906104c3565b925f80919593929560405196826151e660e06020880151976151d78c6151c86040840151602083019c8d997f52b7512c000000000000000000000000000000000000000000000000000000008b5260248501614958565b038d601f19820190528d6106cc565b5101516001600160a01b031690565b895193f1933d91825f833e5193815160408301968751901591821561525a575b508115615248575b506152235750601f909101601f191601604052565b61522b613ed2565b90610ddc6040519283926365c8fd4d60e01b845260048401615126565b9050601f605f1985019101105f61520e565b6040141591505f615206565b906002116152a357356bffffffffffffffffffffffff19167f77020000000000000000000000000000000000000000000000000000000000001490565b505f90565b60175f80833c5f51907fef010000000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000083160361531d5750612c2461530b6105159260181b90565b6bffffffffffffffffffffffff191690565b3b156153685760405162461bcd60e51b815260206004820152601860248201527f6e6f7420616e204549502d373730322064656c656761746500000000000000006044820152606490fd5b606460405162461bcd60e51b815260206004820152601260248201527f73656e64657220686173206e6f20636f646500000000000000000000000000006044820152fd5b60ff81146153bd5761051590615642565b506040515f6002548060011c91600182168015615488575b602084108114615474578385528492602084019190811561545b5750600114615406575b50610515925003826106cc565b60025f90815291507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b84831061544457506105159350015f6153f9565b805482840152859350602090920191600101615430565b60ff191682525061051593151560051b0190505f6153f9565b634e487b7160e01b5f52602260045260245ffd5b92607f16926153d5565b60ff81146154a35761051590615642565b506040515f6003548060011c91600182168015615540575b602084108114615474578385528492602084019190811561545b57506001146154eb5750610515925003826106cc565b60035f90815291507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b84831061552957506105159350015f6153f9565b805482840152859350602090920191600101615515565b92607f16926154bb565b8015615630575f6040805161555e81610677565b828152826020820152015265ffffffffffff8160a01c168015615623575b615604906155eb61559361559e6155938660d01c90565b65ffffffffffff1690565b926155c36001600160a01b036155b261072c565b971687906001600160a01b03169052565b6155d96020870194859065ffffffffffff169052565b65ffffffffffff166040860181905290565b4211908115615607575b5091516001600160a01b031690565b91565b5161561a915065ffffffffffff16615593565b4211155f6155f5565b5065ffffffffffff61557c565b505f905f90565b816040519182372090565b60ff811690601f8211615671576040519161565e6040846106cc565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffdfea2646970667358221220df23d422dd06bc381b24a42184c749c3affb67d16eee99a93c98761163b3648864736f6c634300081c0033", "sourceMap": "938:15711:28:-:0;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;:::i;:::-;1964:9:27;938:15711:28;;;1964:9:27;;;-1:-1:-1;;;1964:9:27;;3401:45:21;;;:::i;:::-;3393:53;;3467:51;;;:::i;:::-;3456:62;;938:15711:28;3542:22:21;;3528:36;;;;938:15711:28;3591:25:21;;3574:42;;;3644:13;3627:30;;938:15711:28;;4204:80:21;938:15711:28;4204:80:21;;2079:95;;;;938:15711:28;2079:95:21;;;;;;;3644:13;2079:95;;;;4278:4;3627:30;2079:95;;;3627:30;4204:80;;;;;;:::i;:::-;938:15711:28;4194:91:21;;2079:95;3667:48;4278:4;4204:80;3725:27;4278:4;1064::28;;938:15711;;;;;:::i;:::-;-1:-1:-1;938:15711:28;;;1151:15;;938:15711;-1:-1:-1;938:15711:28;;;;;;;;;:::i;:::-;-1:-1:-1;938:15711:28;;1119:48;938:15711;1119:48;938:15711;;-1:-1:-1;;;;;;938:15711:28;;;;;;;;;;;;;;;;;2079:95:21;938:15711:28;;;;;3627:30:21;938:15711:28;;;;;4204:80:21;938:15711:28;;;;;3528:36:21;938:15711:28;;;;;3574:42:21;938:15711:28;;;;;3393:53:21;938:15711:28;;;;;3456:62:21;938:15711:28;;;;;1064:4;938:15711;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15711:28;;;;;;;:::o;:::-;;;;-1:-1:-1;938:15711:28;;;;;-1:-1:-1;938:15711:28;;;;;;-1:-1:-1;;938:15711:28;;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;:::o;2887:340:17:-;;938:15711:28;;3032:2:17;3010:24;;3006:215;3032:2;;;938:15711:28;;1854:2:17;938:15711:28;;1840:16:17;1836:72;;3032:2;938:15711:28;;;;2079:95:21;3032:2:17;938:15711:28;;;;1949:36:17;3050:27;:::o;938:15711:28:-;;;;3032:2:17;938:15711:28;;;;;1949:36:17;3050:27;:::o;1836:72::-;938:15711:28;3032:2:17;938:15711:28;;;1879:18:17;;;;;;;;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;1854:2:17;938:15711:28;-1:-1:-1;;938:15711:28;;;1879:18:17;;;;3006:215;-1:-1:-1;;;;;938:15711:28;;;;3432:13:21;938:15711:28;;;;;;;;;;;3006:215:17;3032:2;938:15711:28;;;;;;;;;;3006:215:17;938:15711:28;3032:2:17;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3432:13:21;938:15711:28;1390:66:17;3168:42;:::o;938:15711:28:-;;;;-1:-1:-1;938:15711:28;;;;;;;;;;3432:13:21;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;3432:13:21;938:15711:28;1390:66:17;3168:42;:::o;938:15711:28:-;;;;;;;;;;;;;;;;;;;;;;;3032:2:17;938:15711:28;;;;;;;;;;;;;;;;;3432:13:21;938:15711:28;;;3032:2:17;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2887:340:17;;938:15711:28;;3032:2:17;3010:24;;3006:215;3032:2;;;938:15711:28;;1854:2:17;938:15711:28;;1840:16:17;1836:72;;3032:2;938:15711:28;;;;2079:95:21;3032:2:17;938:15711:28;;;;1949:36:17;3050:27;:::o;3006:215::-;-1:-1:-1;;;;;938:15711:28;;;;3501:16:21;938:15711:28;;;;;;;;;;;3006:215:17;3032:2;938:15711:28;;;;;;;;;;3006:215:17;938:15711:28;3032:2:17;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;3501:16:21;938:15711:28;;;;;3501:16:21;938:15711:28;1390:66:17;3168:42;:::o;938:15711:28:-;;;;-1:-1:-1;938:15711:28;;;;;;;;;;3501:16:21;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;3501:16:21;938:15711:28;1390:66:17;3168:42;:::o;938:15711:28:-;;;;;;;3501:16:21;938:15711:28;;;;;;;;;;;;;;;3032:2:17;938:15711:28;;;;;;;;;;;;;;;;;3501:16:21;938:15711:28;;;3032:2:17;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x60806040526004361015610022575b3615610018575f80fd5b6100206132f5565b005b5f3560e01c80630396cb601461021157806303d1dcaf1461020c57806309ccb880146102075780630bd28e3b146102025780630da82661146101fd5780630dbfc6bd146101f857806313c65a6e146101f3578063154e58dc146101ee5780631b2e01b8146101e9578063205c2878146101e457806321e60b37146101df57806322cdde4c146101da578063263934db146101d557806330ec25d1146101d057806335567e1a146101cb57806344403473146101c65780635287ce12146101c157806369683cfa146101bc57806370a08231146101b75780637472949c146101b257806376ad6123146101ad57806384b0196e146101a8578063850aaf62146101a357806397b2dcb91461019e578063b760faf914610199578063bb9fe6bf14610194578063c23a5cea1461018f578063c3bce0091461018a578063c579f76b14610185578063f7e426e8146101805763fe2171cb0361000e57611c43565b611c0a565b611aea565b611ab3565b611990565b61186d565b61184d565b6115fe565b6115c2565b6114a9565b611470565b611450565b611415565b611241565b611134565b6110ef565b611013565b610f96565b610e80565b610e57565b610c8e565b610a9c565b610a3f565b610a05565b6109e3565b610966565b6107b8565b6105ea565b6105a9565b610518565b60203660031901126104005760043563ffffffff811690818103610400576103fb7fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01916103dd6102cf6102bf610277336001600160a01b03165f525f60205260405f2090565b96610283811515611c92565b6102b06001890154916102a96102a08463ffffffff9060781c1690565b63ffffffff1690565b1115611cdd565b60081c6001600160701b031690565b6001600160701b03349116611d59565b946102db861515611d66565b6102ee6001600160701b03871115611db1565b546102f76106ee565b908152600160208201526001600160701b038616604082015263ffffffff831660608201525f608082015261033c336001600160a01b03165f525f60205260405f2090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b5f80fd5b9181601f840112156104005782359167ffffffffffffffff8311610400576020808501948460051b01011161040057565b6001600160a01b0381160361040057565b359061045182610435565b565b60c06003198201126104005760043567ffffffffffffffff8111610400578161047e91600401610404565b929092916024359067ffffffffffffffff821161040057606090829003600319011261040057600401906044356104b481610435565b90606435906084359060a43590565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60806040610515936020845280516020850152602081015115158285015201519160608082015201906104c3565b90565b346104005761059b61058f61057861052f36610453565b969194909561053f949394611dfc565b5061057261054b611e1b565b6105606105588780611e8a565b825190613394565b61056a8680611e8a565b905a91613482565b50613648565b61058a6105858280611e8a565b613704565b613796565b604051918291826104e7565b0390f35b5f91031261040057565b34610400575f3660031901126104005760206105c3611eab565b6001600160a01b0360405191168152f35b602435906001600160c01b038216820361040057565b34610400576020366003190112610400576004356001600160c01b03811681036104005761063490335f52600160205260405f20906001600160c01b03165f5260205260405f2090565b61063e8154611f25565b9055005b634e487b7160e01b5f52604160045260245ffd5b60a0810190811067ffffffffffffffff82111761067257604052565b610642565b6060810190811067ffffffffffffffff82111761067257604052565b610140810190811067ffffffffffffffff82111761067257604052565b6040810190811067ffffffffffffffff82111761067257604052565b90601f8019910116810190811067ffffffffffffffff82111761067257604052565b6040519061045160a0836106cc565b60405190610451610140836106cc565b60405190610451610100836106cc565b604051906104516040836106cc565b604051906104516060836106cc565b60405190610451610120836106cc565b67ffffffffffffffff811161067257601f01601f191660200190565b9291926107738261074b565b9161078160405193846106cc565b829481845281830111610400578281602093845f960137010152565b9080601f830112156104005781602061051593359101610767565b34610400576102203660031901126104005760043567ffffffffffffffff8111610400576107ea90369060040161079d565b3660231901906101c08212610400576101406040519261080984610656565b12610400576108166106fd565b6108206024610446565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c082015261085d610104610446565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359067ffffffffffffffff8211610400576040926108c46108cf93369060040161079d565b906102043592611f33565b82519182526020820152f35b6020600319820112610400576004359067ffffffffffffffff82116104005761090691600401610404565b9091565b9061010060e061051593805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e082015201906104c3565b346104005761097d610977366108db565b90612296565b6040518091602082016020835281518091526040830190602060408260051b8601019301915f905b8282106109b457505050500390f35b919360019193955060206109d38192603f198a8203018652885161090a565b96019201920185949391926109a5565b34610400575f3660031901126104005760206109fd613f9f565b604051908152f35b34610400575f3660031901126104005760206040517f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e8152f35b34610400576040366003190112610400576020610a93600435610a6181610435565b6001600160a01b03610a716105d4565b91165f526001835260405f20906001600160c01b03165f5260205260405f2090565b54604051908152f35b3461040057604036600319011261040057600435610ab981610435565b602435335f525f60205260405f2091825490818311610b3d575f8080856001600160a01b03829589610aee846100209a61245d565b9055604080516001600160a01b03831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af1610b3761246a565b50612499565b606460405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b90816101209103126104005790565b610200600319820112610400576004359160243567ffffffffffffffff81116104005782610bc091600401610b81565b916043190160446101c082126104005761014060405192610be084610656565b12610400576101a090610bf16106fd565b610bfa82610446565b81526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c0820152610c4460e08301610446565b60e082015261010082013561010082015261012082013561012082015283526101408101356020840152610160810135604084015261018081013560608401520135608082015290565b3461040057610c9c36610b90565b90915f91805193610cad8582613394565b610cb6816124e4565b60208301526001600160a01b0360e0610cf087610100604082015160608301510160808301510160a08301510160c0830151019101510290565b96876040860152015116610d1a575b604080515f8082526020820187905291810191909152606090f35b909192505a93610d398351916001600160a01b0360e084015116614acc565b15610de057906080610d5092015192839185615171565b9390505a900311610d68575061059b905f8080610cff565b60408051631101335b60e11b815260048101929092526024820152602760448201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760648201527f61734c696d69740000000000000000000000000000000000000000000000000060848201528060a481015b0390fd5b60848460405190631101335b60e11b8252600482015260406024820152601e60448201527f41413331207061796d6173746572206465706f73697420746f6f206c6f7700006064820152fd5b6020600319820112610400576004359067ffffffffffffffff82116104005761051591600401610b81565b346104005760206109fd610e6a36610e2c565b6124e4565b90602061051592818152019061090a565b3461040057610eac610e91366108db565b809291610e9c6121a1565b50610ea6826121ef565b50612296565b5f198201918211610ed95761059b91610ec491612282565b5160405191829160208352602083019061090a565b611d28565b906105159060e06080610f30818651610140865280516101408701526020810151610160870152604081015161018087015260608101516101a0870152015160a06101c08601526101e08501906104c3565b60208087015180518683015201516040850152946040810151805160608601526020015160808501526060810151805160a08601526020015160c0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b3461040057610fad610fa7366108db565b906126cb565b6040518091602082016020835281518091526040830190602060408260051b8601019301915f905b828210610fe457505050500390f35b919360019193955060206110038192603f198a82030186528851610ede565b9601920192018594939192610fd5565b3461040057604036600319011261040057602060043561103281610435565b6001600160a01b036110426105d4565b91165f52600182526110688160405f20906001600160c01b03165f5260205260405f2090565b546040805192901b67ffffffffffffffff1916178152f35b9181601f840112156104005782359167ffffffffffffffff8311610400576020838186019501011161040057565b906060600319830112610400576004356110c781610435565b916024359067ffffffffffffffff8211610400576110e791600401611080565b909160443590565b34610400575f8080611100366110ae565b939181604094929451948592833781018381520393f161111e61246a565b901561112657005b805190811561040057602001fd5b34610400576020366003190112610400576001600160a01b0360043561115981610435565b5f608060405161116881610656565b8281528260208201528260408201528260608201520152165f525f60205261059b60405f206111ed65ffffffffffff6001604051936111a685610656565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b346104005761124f36610b90565b9190915a928151936112618583613394565b61126a826124e4565b60208401526040850151936112b66effffffffffffffffffffffffffffff8660c08901511760608901511760808901511760a0890151176101008901511761012089015117111561275d565b6112e186610100604082015160608301510160808301510160a08301510160c0830151019101510290565b946113166113126112f55a89898988613565565b98602061130982516001600160a01b031690565b9101519061420a565b1590565b6113c0575a8303116113735750926113579260806113529360a061135e975a9560408601526060808601525a9003910135019101525a9061245d565b6127a9565b6064900490565b604080519283525f6020840152820152606090f35b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d697400006064820152608490fd5b610ddc82604051918291631101335b60e11b835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b34610400576020366003190112610400576001600160a01b0360043561143a81610435565b165f525f602052602060405f2054604051908152f35b346104005761059b61058f61146436610453565b95949094939193612816565b346104005761059b61058f61149761148736610453565b9691949095610572949394611dfc565b6114a46105858280611e8a565b613a8a565b34610400575f366003190112610400576115696114e57f00000000000000000000000000000000000000000000000000000000000000006153ac565b61150e7f0000000000000000000000000000000000000000000000000000000000000000615492565b602060405161151d82826106cc565b5f81528161157781830194601f1983013687376040519788977f0f00000000000000000000000000000000000000000000000000000000000000895260e0858a015260e08901906104c3565b9087820360408901526104c3565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b8281106115ab57505050500390f35b83518552869550938101939281019260010161159c565b34610400576040366003190112610400576115de600435610435565b60243567ffffffffffffffff811161040057610020903690600401611080565b346104005760603660031901126104005760043567ffffffffffffffff81116104005761162f903690600401610b81565b6024359061163c82610435565b60443567ffffffffffffffff81116104005761165c90369060040161079d565b906116656121a1565b507f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6118255761059b9260017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d6116bc611e1b565b926116c683613704565b6116d08484612d98565b9091945a6060880151886116e76060850185612a8f565b5f6003821161181d575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361180457505061175561176961176e956020840151604051938492638dd7712f60e01b60208501526040602485015260648401906142af565b90604483015203601f1981018352826106cc565b611f33565b9290965b5f946060966001600160a01b0381166117d9575b50509560806117c0969701519761179b61070d565b988952602089015260408801526060870152608086015260a0850152151560c0840152565b60e08201526117cd614258565b60405191829182610e6f565b6117c097505f92965090829182602083519301915af19560806117fa61246a565b9795919796611786565b611815955090611769913691610767565b929096611772565b5081356116f1565b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b60203660031901126104005761002060043561186881610435565b6128a1565b34610400575f36600319011261040057335f525f602052600160405f2001805463ffffffff8160781c161561194c576118d56118c76102a0836118bb6118b661190f9660ff1690565b6128fa565b60781c63ffffffff1690565b65ffffffffffff4216612945565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a9080602081016103fb565b606460405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b34610400576020366003190112610400576100205f8080806004356119b481610435565b6001600160a01b0360016119d8336001600160a01b03165f525f60205260405f2090565b0191611a66835493611a3e65ffffffffffff611a2a611a10611a04896001600160701b039060081c1690565b6001600160701b031690565b97611a1c891515612963565b60981c65ffffffffffff1690565b16611a368115156129ae565b4210156129f9565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03831681526020810185905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2165af1611aad61246a565b50612a44565b346104005761059b611acc611ac736610e2c565b612b84565b604051918291602083526020830190610ede565b8015150361040057565b34610400576102203660031901126104005760043560243567ffffffffffffffff811161040057611b1f903690600401610b81565b3660431901916101c083126104005761014060405193611b3e85610656565b126104005761059b92611bed92611b536106fd565b611b5d6044610446565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c0820152611b9b610124610446565b60e0820152610144356101008201526101643561012082015282526101843560208301526101a43560408301526101c43560608301526101e43560808301526102043592611be884611ae0565b612f73565b604080519384526020840192909252908201529081906060820190565b3461040057611c24611c1b366110ae565b929190916131ab565b9061059b604051928392151583526040602084015260408301906104c3565b3461040057611c65611c54366108db565b809291611c5f612649565b506126cb565b5f198201918211610ed95761059b91611c7d91612282565b51604051918291602083526020830190610ede565b15611c9957565b606460405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b15611ce457565b606460405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b634e487b7160e01b5f52601160045260245ffd5b906113888201809211610ed957565b9060018201809211610ed957565b91908201809211610ed957565b15611d6d57565b606460405162461bcd60e51b815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611db857565b606460405162461bcd60e51b815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b60405190611e0982610677565b60606040835f81525f60208201520152565b60405190611e2882610656565b5f608083604051611e3881610693565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b90359061011e1981360301821215610400570190565b6040513d5f823e3d90fd5b6040517f09ccb880000000000000000000000000000000000000000000000000000000008152602081600481305afa908115611f20575f91611eeb575090565b90506020813d602011611f18575b81611f06602093836106cc565b81010312610400575161051581610435565b3d9150611ef9565b611ea0565b5f198114610ed95760010190565b9392909193825190606082015181519081612120575b505050505a9003608082015101925f935a91835191611f67836150e7565b92611f7c60e08201516001600160a01b031690565b91611f9260808801518203606084015190615107565b01925f926001600160a01b03811690816120375750505090611fbf6040949392516001600160a01b031690565b945b5a9003010102920151908282105f1461200557611fdd5f613f13565b7fdeadaa51000000000000000000000000000000000000000000000000000000005f5260205ffd5b826120299203906001600160a01b03165f525f60205260405f209081540180915590565b506120335f613f13565b9190565b9692825161204e575b505050906040939291611fc1565b919950949392505a986120605f613f13565b60a05a920195865191813b15610400578692835f8094896120b3604051988997889687947f7c627b2100000000000000000000000000000000000000000000000000000000865202908660048601613f22565b0393f19081612106575b506120e657610ddc6120cd613ed2565b6040519182916365c8fd4d60e01b835260048301613f54565b6040946120fc915a9003995a9003905190615107565b9192935f80612040565b806121145f61211a936106cc565b8061059f565b5f6120bd565b5f80949360206001600160a01b0383965116910192f115612144575f808080611f49565b610ddc61214f613ed2565b6040519182917f462c71b20000000000000000000000000000000000000000000000000000000083526020600484015260248301906104c3565b67ffffffffffffffff81116106725760051b60200190565b60405190610100820182811067ffffffffffffffff82111761067257604052606060e0835f81525f60208201525f60408201525f838201525f60808201525f60a08201525f60c08201520152565b906121f982612189565b61220660405191826106cc565b8281528092612217601f1991612189565b01905f5b82811061222757505050565b6020906122326121a1565b8282850101520161221b565b634e487b7160e01b5f52603260045260245ffd5b90821015612269576105159160051b810190611e8a565b61223e565b6040519061227d6020836106cc565b5f8252565b80518210156122695760209160051b010190565b61229f826121ef565b915f5b8181106122af5750505090565b6122ba818385612252565b9060205f6040516122cb83826106cc565b526122d46121a1565b507f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c61182557600192837f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d612329611e1b565b9061233381613704565b8261233e8383612d98565b929091935a90866060810151916123586060820182612a8f565b5f60038211612438575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361242057505061176985638dd7712f60e01b926117556123c598860151916040519586948501526040602485015260648401906142af565b93905b60806060960151966123d861070d565b978852870152604086015283850152608084015260a08301525f60c083015260e0820152612404614258565b61240e8287612282565b526124198186612282565b50016122a2565b612431965061176992503691610767565b93906123c8565b508135612362565b600319810191908211610ed957565b5f19810191908211610ed957565b91908203918211610ed957565b3d15612494573d9061247b8261074b565b9161248960405193846106cc565b82523d5f602084013e565b606090565b156124a057565b606460405162461bcd60e51b815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b610515906124f181614177565b6124f9613f9f565b916125d581359261250984610435565b6020830135908015612611576125c790935b61253161252b6060830183612a8f565b90615637565b90608081013560a08201359061255361252b60c08501359460e0810190612a8f565b93604051988997602089019b8c94919261010096939998979491996001600160a01b0361012088019b7f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e895216602088015260408701526060860152608085015260a084015260c083015260e08201520152565b03601f1981018352826106cc565b51902090604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b506125c76126226040850185612a8f565b9081604051918237209361251b565b6040519061263e826106b0565b5f6020838281520152565b6040519061265682610656565b8160405161266381610656565b5f81525f60208201525f60408201525f6060820152606060808201528152612689612631565b6020820152612696612631565b60408201526126a3612631565b60608201526080604051916126b7836106b0565b5f83526126c2612631565b60208401520152565b6126d482612189565b916126e260405193846106cc565b808352601f196126f182612189565b015f5b8181106127395750505f5b81811061270c5750505090565b8061271d611ac76001938587612252565b6127278287612282565b526127328186612282565b50016126ff565b602090612744612649565b828288010152016126f4565b908092918237015f815290565b1561276457565b60405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152606490fd5b90607382029180830460731490151715610ed957565b3561051581610435565b604051906127d86020836106cc565b5f808352366020840137565b906127ee8261074b565b6127fb60405191826106cc565b828152809261280c601f199161074b565b0190602036910137565b9061282991969594939296610572611dfc565b6001600160a01b0361283b8680611e8a565b61286460208801359161284d83610435565b612855611e1b565b9061285f81613704565b612d98565b50505016156128765761051594613cae565b50505050506128836127c9565b6040519061289082610677565b5f82525f6020830152604082015290565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b036128ee34856001600160a01b03165f525f60205260405f209081540180915590565b936040519485521692a2565b1561290157565b606460405162461bcd60e51b815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b9065ffffffffffff8091169116019065ffffffffffff8211610ed957565b1561296a57565b606460405162461bcd60e51b815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b156129b557565b606460405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b15612a0057565b606460405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b15612a4b57565b606460405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b903590601e1981360301821215610400570180359067ffffffffffffffff82116104005760200191813603831361040057565b906014116104005790601490565b909291928360141161040057831161040057601401916013190190565b909291928360341161040057831161040057603401916033190190565b356bffffffffffffffffffffffff19811692919060148210612b2a575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b60405190612b57826106b0565b6004546001600160a01b03168252604051602083612b74836106b0565b6005548352600654828401520152565b612b8c612649565b50612b95611e1b565b90612b9f81613704565b612ba98282612d98565b50919092612bb78385614372565b612bd4612bcf60e0835101516001600160a01b031690565b61451c565b91612c02612bee612bcf84516001600160a01b0390511690565b91612bf7612631565b506040810190612a8f565b9060148210612cdd57612c24612c1e612c2a93612bcf93612ac2565b90612b0a565b60601c90565b916001600160a01b038616946080820151966060604084015193015192612c4f6106ee565b9889526020890152604088015260608701526080860152612c6e612b4a565b9380151580612cd2575b612ca0575b50612c866106ee565b948552602085015260408401526060830152608082015290565b909350612cac8161451c565b612cc6612cb761071d565b6001600160a01b039093168352565b6020820152925f612c7d565b506001811415612c78565b5050612c2a5f61451c565b15612cf05750565b60405190631101335b60e11b825260048201526040602482015280610ddc60448201604090601881527f41413934206761732076616c756573206f766572666c6f77000000000000000060208201520190565b15612d4b5750565b60408051631101335b60e11b815260048101929092526024820152601a60448201527f4141323520696e76616c6964206163636f756e74206e6f6e63650000000000006064820152608490fd5b9190915f915a93805192612dac8482613394565b612dc5604051612dbb836124e4565b6020850152604052565b604084015195612e0d5f6effffffffffffffffffffffffffffff8960c08901511760608901511760808901511760a08901511761010089015117610120890151171115612ce8565b612e58612e3b86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b806040860152612e4f608085013560801c90565b9085855f613565565b96612e815f612e7c612e7189516001600160a01b031690565b60208a01519061420a565b612d43565b5a820311612f20576060946001600160a01b03612ea960e05a9301516001600160a01b031690565b16151580612f18575b612ee0575b60809291612ece61135761135260a0945a9061245d565b9660608601525a900391013501910152565b945061135295509060a0608092612ef68361455c565b50612ece611357612f0887865f6140bb565b9a90999450505050919250612eb7565b506001612eb2565b604051631101335b60e11b815280610ddc5f60048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b939092915f935a8251612f868184613394565b612f9f604051612f95856124e4565b6020870152604052565b604081015197612fe7816effffffffffffffffffffffffffffff8b60c08601511760608601511760808601511760a08601511761010086015117610120860151171115612ce8565b61303261301583610100604082015160608301510160808301510160a08301510160c0830151019101510290565b806040880152613029608087013560801c90565b90878785613565565b9861305682612e7c61304b86516001600160a01b031690565b60208701519061420a565b5a840311611373576060966001600160a01b0361307e60e05a9501516001600160a01b031690565b16151590816130de575b506130a6575b5060809291612ece61135761135260a0945a9061245d565b611352975060a091965091612ece6113576130cf878780976130c960809a61455c565b506140bb565b9a90999450505050919261308e565b90505f613088565b908060209392818452848401375f828201840152601f01601f1916010190565b6040906001600160a01b03610515959316815281602082015201916130e6565b908151811015612269570160200190565b919060408382031261040057825161314e81611ae0565b9260208101519067ffffffffffffffff8211610400570181601f820112156104005780519061317c8261074b565b9261318a60405194856106cc565b8284526020838301011161040057815f9260208093018386015e8301015290565b91925f936001600160a01b036060941691823b1561040057613229935f80946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501613106565b0393f190816132e1575b5061090657505061324261246a565b9060048251106132d35761325e6132598351612440565b6127e4565b60045b83518110156132bd57806132a061327a60019387613126565b517fff000000000000000000000000000000000000000000000000000000000000001690565b6132b66132ac83612440565b915f1a9185613126565b5301613261565b5061090691925060208082518301019101613137565b90506132dd6127c9565b5f91565b806121145f6132ef936106cc565b5f613233565b610451336128a1565b1561330557565b606460405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b1561335057565b606460405162461bcd60e51b815260206004820152601660248201527f4141393820696e76616c6964207061796d6173746572000000000000000000006044820152fd5b61342b906133b16133a4826127bf565b6001600160a01b03168452565b602081013560208401526133de6080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c084015261341560c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e0810190612a8f565b8092919261343857505050565b613454816104519461344f603460e09510156132fe565b61457b565b60a08501526080840152916134736001600160a01b0384161515613349565b01906001600160a01b03169052565b92916134c6908251926001600160a01b0360e081865116956134b26134aa60408b018b612a8f565b90865f6145d9565b015116905f91159687613532575b5f6149c5565b926134ce5750565b5f6134d891614acc565b156134df57565b604051631101335b60e11b815280610ddc5f60048301608091815260406020820152601760408201527f41413231206469646e2774207061792070726566756e6400000000000000000060608201520190565b915061354e856001600160a01b03165f525f60205260405f2090565b54801561355e57505f5b916134c0565b5f03613558565b929094936135ab908351936001600160a01b0360e0818751169661359761358f60408d018d612a8f565b90868c6145d9565b015116905f91159889613613575b876149c5565b946135b557505050565b6135be91614acc565b156135c65750565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b915061362f866001600160a01b03165f525f60205260405f2090565b548581111561364157505f5b916135a5565b850361363b565b915f5b828110156136fe5761365b611e1b565b908060051b85013591605e1986360301831215610400576136926001938701916136886105858480611e8a565b61285f8380611e8a565b505050602081016136b16136a5826127bf565b6001600160a01b031690565b156136f7575f91826136d16136c682946127bf565b926040810190612a8f565b91906136e260405180948193612750565b03925af1506136ef61246a565b505b0161364b565b50506136f1565b50915050565b613737906137156040820182612a8f565b9161372f81359161372583610435565b60e0810190612a8f565b939092614af1565b80516137405750565b610ddc90604051918291631101335b60e11b83525f60048401526040602484015260448301906104c3565b939291613791906001600160a01b036040931686526060602087015260608601906104c3565b930152565b939490946137a2611dfc565b5082156139ed576137e2926137b561226e565b50915f6137c45a886002614e86565b5a906040519687928392631efc84dd60e31b84528c6004850161376b565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215611f20575f945f936139cb575b508294809381156139a957505061383f909592919394955b85611d59565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b84613877888561245d565b1061397f575a61388688611d3c565b116139485791869593918995935f8c8b6138b86138af6138a9886138d89f611d59565b60011c90565b809b6002614e86565b835a936040519e8f9586948593631efc84dd60e31b85526004850161376b565b03925af1988915611f20575f905f9a613921575b501561390c575050506138fe8461244f565b95915b93909294959161386c565b9396509461391b919750611d4b565b94613901565b90506139409199503d805f833e61393881836106cc565b810190613137565b98905f6138ec565b7fe2c4d0be000000000000000000000000000000000000000000000000000000005f5260048290526024879052604483905260645ffd5b9650965050919550506139a1915061399561072c565b93845215156020840152565b604082015290565b965096505095505050506139a16139be61072c565b5f81529215156020840152565b9092506139e39194503d805f833e61393881836106cc565b939093915f613821565b90613a0292505a905f6137c45a886002614e86565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611f20575f945f94613a68575b508394613a5081945a9061245d565b9481156139a957505061383f90959291939495613839565b909350613a809194503d805f833e61393881836106cc565b939093925f613a41565b93949094613a96611dfc565b508215613c1157613ab892613aa961226e565b50915f6137c45a886003614e86565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215611f20575f945f93613bef575b508294809381156139a9575050613b149095929193949585611d59565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b84613b4c888561245d565b1061397f575a613b5b88611d3c565b116139485791869593918995935f8c8b6138b8613b7e6138a988613b879f611d59565b809b6003614e86565b03925af1988915611f20575f905f9a613bd0575b5015613bbb57505050613bad8461244f565b95915b939092949591613b41565b93965094613bca919750611d4b565b94613bb0565b9050613be79199503d805f833e61393881836106cc565b98905f613b9b565b909250613c079194503d805f833e61393881836106cc565b939093915f613af7565b90613c2692505a905f6137c45a886003614e86565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611f20575f945f94613c8c575b508394613c7481945a9061245d565b9481156139a9575050613b1490959291939495613839565b909350613ca49194503d805f833e61393881836106cc565b939093925f613c65565b93949094613cba611dfc565b508215613e3557613cdc92613ccd61226e565b50915f6137c45a886001614e86565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215611f20575f945f93613e13575b508294809381156139a9575050613d389095929193949585611d59565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b84613d70888561245d565b1061397f575a613d7f88611d3c565b116139485791869593918995935f8c8b6138b8613da26138a988613dab9f611d59565b809b6001614e86565b03925af1988915611f20575f905f9a613df4575b5015613ddf57505050613dd18461244f565b95915b939092949591613d65565b93965094613dee919750611d4b565b94613dd4565b9050613e0b9199503d805f833e61393881836106cc565b98905f613dbf565b909250613e2b9194503d805f833e61393881836106cc565b939093915f613d1b565b90613e4a92505a905f6137c45a886001614e86565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611f20575f945f94613eb0575b508394613e9881945a9061245d565b9481156139a9575050613d3890959291939495613839565b909350613ec89194503d805f833e61393881836106cc565b939093925f613e89565b3d6108008111613ef6575b604051906020818301016040528082525f602083013e90565b50610800613edd565b634e487b7160e01b5f52602160045260245ffd5b60031115613f1d57565b613eff565b90949392946003811015613f1d57606092613f4a9183526080602084015260808301906104c3565b9460408201520152565b9060a0610515925f815260606020820152601460608201527f4141353020706f73744f70207265766572746564000000000000000000000000608082015281604082015201906104c3565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016301480614092575b15613ffa577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261408c60c0826106cc565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614613fd1565b9290925a9383516140de6001600160a01b0360e083015116604087015190614acc565b15614103579060806140f592015194859184615171565b9390945a900311610d685750565b60848360405190631101335b60e11b8252600482015260406024820152601e60448201527f41413331207061796d6173746572206465706f73697420746f6f206c6f7700006064820152fd5b909280926014946bffffffffffffffffffffffff199060601b1683528483013701015f815290565b6141846040820182612a8f565b90916141936113128385615266565b614203576141a36141a8916127bf565b6152a8565b91601482116141df57505060405161408c816125c76020820194856014916bffffffffffffffffffffffff199060601b1681520190565b8161408c926141ed92612ad0565b91906125c760405193849260208401968761414f565b5050505f90565b6001600160a01b03165f52600160205267ffffffffffffffff6142448260401c60405f20906001600160c01b03165f5260205260405f2090565b9182549261425184611f25565b9055161490565b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d565b9035601e198236030181121561040057016020813591019167ffffffffffffffff821161040057813603831361040057565b610515916142cd816142c084610446565b6001600160a01b03169052565b6020820135602082015261436361435761431e6143036142f0604087018761427d565b61012060408801526101208701916130e6565b614310606087018761427d565b9086830360608801526130e6565b6080850135608085015260a085013560a085015260c085013560c085015261434960e086018661427d565b9085830360e08701526130e6565b9261010081019061427d565b916101008185039101526130e6565b6143836001600160a01b039161554a565b91166144c9576144765761439e6001600160a01b039161554a565b9116614423576143aa57565b604051631101335b60e11b815280610ddc5f6004830160a091815260406020820152602160408201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560608201527f650000000000000000000000000000000000000000000000000000000000000060808201520190565b604051631101335b60e11b815280610ddc5f60048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b604051631101335b60e11b815280610ddc5f60048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b604051631101335b60e11b815280610ddc5f60048301608091815260406020820152601460408201527f41413234207369676e6174757265206572726f7200000000000000000000000060608201520190565b906001600160a01b0361452d612631565b92165f525f60205263ffffffff600160405f2001546001600160701b038160081c16845260781c166020830152565b61456a9060e0810190612a8f565b602411610400576014013560801c90565b9091826014116104005781359183602411610400576014810135936034116104005760609290921c92608090811c9260240135901c90565b90816020910312610400575161051581610435565b9160206105159381815201916130e6565b929091816145e8575b50505050565b8251516001600160a01b0316936145ff8383615266565b6148bc57843b61486f5760148310614822575f602061461f6136a5611eab565b604087510151604051809481937f570e1a360000000000000000000000000000000000000000000000000000000083528261465e8b8b600484016145c8565b0393f1908115611f20575f916147f3575b506001600160a01b03811695861561479e576001600160a01b0316809603614749573b156146fc5750612c24612c1e7fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d936146c993612ac2565b602083810151935160e00151604080516001600160a01b039485168152939091169183019190915290a35f8080806145e2565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b610ddc82604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b610ddc83604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b614815915060203d60201161481b575b61480d81836106cc565b8101906145b3565b5f61466f565b503d614803565b60408051631101335b60e11b815260048101929092526024820152601760448201527f4141393920696e6974436f646520746f6f20736d616c6c0000000000000000006064820152608490fd5b60408051631101335b60e11b815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b5090601481116148cc5750505050565b806148e89160406148de6136a5611eab565b9551015193612ad0565b9190833b15610400575f809461492e96604051978896879586937fc09ad0d900000000000000000000000000000000000000000000000000000000855260048501613106565b0393f18015611f2057614944575b8080806145e2565b806121145f614952936106cc565b5f61493c565b614970604092959493956060835260608301906142af565b9460208201520152565b60a0906105159392815260606020820152600d60608201527f4141323320726576657274656400000000000000000000000000000000000000608082015281604082015201906104c3565b9291602095948692614a2f5f93614a216149e882516001600160a01b0390511690565b976040519b8c930151888401957f19822f7c00000000000000000000000000000000000000000000000000000000875260248501614958565b03601f1981018a52896106cc565b8285895193f15f519460203d03614ac4575b60405215614a4d575050565b3b614a9f5760408051631101335b60e11b815260048101929092526024820152601960448201527f41413230206163636f756e74206e6f74206465706c6f796564000000000000006064820152608490fd5b614aa7613ed2565b90610ddc6040519283926365c8fd4d60e01b84526004840161497a565b5f9150614a41565b6001600160a01b03165f525f60205260405f2090815481811061420357039055600190565b50929192159081614ba6575b50614b69576014811015614b16575b505061051561226e565b601411610400573560601c3b15614b2e575f80614b0c565b604051614b3c6040826106cc565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b5050604051614b796040826106cc565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b155f614afd565b6101208136031261040057614bc361073b565b90614bcd81610446565b825260208101356020830152604081013567ffffffffffffffff811161040057614bfa903690830161079d565b6040830152606081013567ffffffffffffffff811161040057614c20903690830161079d565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff811161040057614c64903690830161079d565b60e08301526101008101359067ffffffffffffffff821161040057614c8b9136910161079d565b61010082015290565b60041115613f1d57565b916020936fffffffffffffffffffffffffffffffff198092603497946bffffffffffffffffffffffff199060601b1686521660148501521660248301528051928391018483015e01015f815290565b80516001600160a01b031682526105159160208201516020820152610100614d6e614d3e614d2c604086015161012060408701526101208601906104c3565b606086015185820360608701526104c3565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526104c3565b920151906101008184039101526104c3565b60806101a0916101208151614d9e8682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c0870152614df260e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b614e5d614e5261020093969594965f84526102206020850152610220840190614ced565b956040830190614d80565b0152565b61020090614e5d614e525f949695968584526102206020850152610220840190614ced565b614e8e611e1b565b614ea0614e9b8480611e8a565b614bb0565b614ea983614c94565b6002831461500257614eba83614c94565b60038314614f7b57505080614ed0600192614c94565b14614f1a5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b806125c7614f45614f3e614f33602061051596016127bf565b936040810190612a8f565b3691610767565b936040519485937f444034730000000000000000000000000000000000000000000000000000000060208601526024850161376b565b9150926fffffffffffffffffffffffffffffffff614fc2614fbb614fa28661051597611e8a565b608001356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526125c76040519384927fc579f76b00000000000000000000000000000000000000000000000000000000602085015260248401614e61565b9150926125c7906fffffffffffffffffffffffffffffffff198461508d61507f61503b615035613725856105159b611e8a565b9061457b565b9291905060609060e08a01956034875151116150c3575b5060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b169060208601614c9e565b03601f1981018452836106cc565b526040519485937f21e60b3700000000000000000000000000000000000000000000000000000000602086015260248501614e2e565b6150e09192506150d961372582614f3e93611e8a565b8091612aed565b905f615052565b61012061010082015191015148018082105f14615102575090565b905090565b90619c40820181111561512057606491600a9103020490565b50505f90565b60a0906105159392815260606020820152600d60608201527f4141333320726576657274656400000000000000000000000000000000000000608082015281604082015201906104c3565b925f80919593929560405196826151e660e06020880151976151d78c6151c86040840151602083019c8d997f52b7512c000000000000000000000000000000000000000000000000000000008b5260248501614958565b038d601f19820190528d6106cc565b5101516001600160a01b031690565b895193f1933d91825f833e5193815160408301968751901591821561525a575b508115615248575b506152235750601f909101601f191601604052565b61522b613ed2565b90610ddc6040519283926365c8fd4d60e01b845260048401615126565b9050601f605f1985019101105f61520e565b6040141591505f615206565b906002116152a357356bffffffffffffffffffffffff19167f77020000000000000000000000000000000000000000000000000000000000001490565b505f90565b60175f80833c5f51907fef010000000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000083160361531d5750612c2461530b6105159260181b90565b6bffffffffffffffffffffffff191690565b3b156153685760405162461bcd60e51b815260206004820152601860248201527f6e6f7420616e204549502d373730322064656c656761746500000000000000006044820152606490fd5b606460405162461bcd60e51b815260206004820152601260248201527f73656e64657220686173206e6f20636f646500000000000000000000000000006044820152fd5b60ff81146153bd5761051590615642565b506040515f6002548060011c91600182168015615488575b602084108114615474578385528492602084019190811561545b5750600114615406575b50610515925003826106cc565b60025f90815291507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b84831061544457506105159350015f6153f9565b805482840152859350602090920191600101615430565b60ff191682525061051593151560051b0190505f6153f9565b634e487b7160e01b5f52602260045260245ffd5b92607f16926153d5565b60ff81146154a35761051590615642565b506040515f6003548060011c91600182168015615540575b602084108114615474578385528492602084019190811561545b57506001146154eb5750610515925003826106cc565b60035f90815291507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b84831061552957506105159350015f6153f9565b805482840152859350602090920191600101615515565b92607f16926154bb565b8015615630575f6040805161555e81610677565b828152826020820152015265ffffffffffff8160a01c168015615623575b615604906155eb61559361559e6155938660d01c90565b65ffffffffffff1690565b926155c36001600160a01b036155b261072c565b971687906001600160a01b03169052565b6155d96020870194859065ffffffffffff169052565b65ffffffffffff166040860181905290565b4211908115615607575b5091516001600160a01b031690565b91565b5161561a915065ffffffffffff16615593565b4211155f6155f5565b5065ffffffffffff61557c565b505f905f90565b816040519182372090565b60ff811690601f8211615671576040519161565e6040846106cc565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffdfea2646970667358221220df23d422dd06bc381b24a42184c749c3affb67d16eee99a93c98761163b3648864736f6c634300081c0033", "sourceMap": "938:15711:28:-:0;;;;;;;;;-1:-1:-1;938:15711:28;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;;3443:47:2;;2894:10;938:15711:28;3123:22:2;938:15711:28;2885:20:2;2894:10;-1:-1:-1;;;;;938:15711:28;2885:8:2;938:15711:28;2885:8:2;938:15711:28;;;2885:8:2;938:15711:28;;;2885:20:2;2923:19;2915:58;2923:19;;;2915:58;:::i;:::-;2983:114;3023:20;;;938:15711:28;;3004:39:2;938:15711:28;;;;;;;;;;;;;;3004:39:2;-1:-1:-1;3004:39:2;2983:114;:::i;:::-;938:15711:28;;-1:-1:-1;;;;;938:15711:28;;;;-1:-1:-1;;;;;3136:9:2;938:15711:28;;3123:22:2;:::i;:::-;3163:9;3155:40;3163:9;;;3155:40;:::i;:::-;3205:53;-1:-1:-1;;;;;3213:26:2;;;3205:53;:::i;:::-;938:15711:28;;;:::i;:::-;;;;3023:20:2;938:15711:28;3291:137:2;;938:15711:28;-1:-1:-1;;;;;938:15711:28;;3291:137:2;;;938:15711:28;;;;3291:137:2;;;938:15711:28;;3291:137:2;;;938:15711:28;3268:20:2;2894:10;-1:-1:-1;;;;;938:15711:28;2885:8:2;938:15711:28;2885:8:2;938:15711:28;;;2885:8:2;938:15711:28;;;3268:20:2;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;938:15711:28;;;;;;3291:137:2;938:15711:28;;;;;;;;;;;;;2894:10:2;;938:15711:28;;;;;;;3443:47:2;;;;938:15711:28;;-1:-1:-1;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;938:15711:28;;;;;:::o;:::-;;;;;;:::i;:::-;:::o;:::-;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;938:15711:28;;;;;;;;-1:-1:-1;;938:15711:28;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;10874:221;10789:13;938:15711;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;10649:73;938:15711;;:::i;:::-;10619:19;10602:15;;;;:::i;:::-;10619:19;;;;:::i;:::-;10679:15;;;;:::i;:::-;10712:9;;10649:73;;:::i;:::-;;10789:13;:::i;:::-;10840:15;;;;;:::i;:::-;;:::i;:::-;10874:221;:::i;:::-;938:15711;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;938:15711:28;;;;;;;:::i;:::-;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;-1:-1:-1;;;;;938:15711:28;;;;;;:::o;:::-;;;;;;-1:-1:-1;;938:15711:28;;;;;;-1:-1:-1;;;;;938:15711:28;;;;;;674:36:1;694:10;;-1:-1:-1;938:15711:28;674:19:1;938:15711:28;;;-1:-1:-1;938:15711:28;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;674:36:1;:38;938:15711:28;;674:38:1;:::i;:::-;938:15711:28;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;2441:15;938:15711;;;2441:15;938:15711;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;938:15711:28;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;938:15711:28;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15711:28;;;;;2915:20:27;;:::i;:::-;938:15711:28;;;;;;;;;;;;-1:-1:-1;;938:15711:28;;;;;;;1065:197:3;938:15711:28;;;;;;;;;-1:-1:-1;;938:15711:28;;;;;279:74:1;938:15711:28;;;;;:::i;:::-;-1:-1:-1;;;;;938:15711:28;;:::i;:::-;;;-1:-1:-1;938:15711:28;279:74:1;938:15711:28;;;-1:-1:-1;938:15711:28;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;279:74:1;938:15711:28;;;;;;;;;;;;;-1:-1:-1;;938:15711:28;;;;;;;;;:::i;:::-;;;4863:10:2;-1:-1:-1;938:15711:28;-1:-1:-1;938:15711:28;;;-1:-1:-1;938:15711:28;;;;4939:32:2;;;;938:15711:28;;-1:-1:-1;5026:31:2;;;-1:-1:-1;;;;;5026:31:2;;;;;5211:38;5026:31;;:::i;:::-;938:15711:28;;;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;4863:10:2;;5072:54;;;938:15711:28;5154:47:2;;;;:::i;:::-;;5211:38;:::i;938:15711:28:-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;13352:17:27;;;13407:7;;;;;:::i;:::-;13448:21;;;:::i;:::-;13425:20;;;938:15711:28;-1:-1:-1;;;;;13542:17:27;13500:28;;9490:20;9273:28;;;938:15711:28;9304:20:27;;;938:15711:28;1666:4:27;9343:37;;;938:15711:28;1666:4:27;9383:31;;;938:15711:28;1666:4:27;9417:26;;;938:15711:28;1666:4:27;9490:20;;938:15711:28;;9103:424:27;;13500:28;13480:17;;;;;938:15711:28;13542:17:27;938:15711:28;;13538:166:27;;938:15711:28;13480:17:27;938:15711:28;;;;;;;;;;;;;;;;;;;;;;13538:166:27;16432:9;;;;;16485:14;16623:48;16485:14;;16533:17;-1:-1:-1;;;;;13542:17:27;16533;;938:15711:28;;16623:48:27;:::i;:::-;16622:49;16618:146;;16810:37;;16889:73;16810:37;;938:15711:28;16889:73:27;;;;;:::i;:::-;16989:9;;;;1666:4;;16980:43;16976:149;;13589:104;938:15711:28;13589:104:27;13538:166;;;;;16976:149;13480:17;938:15711:28;;-1:-1:-1;;;17050:60:27;;938:15711:28;17050:60:27;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;17050:60:27;;;;16618:146;16698:51;938:15711:28;13480:17:27;938:15711:28;16698:51:27;-1:-1:-1;;;16698:51:27;;938:15711:28;16698:51:27;;938:15711:28;13480:17:27;938:15711:28;;;;;;;;;;;;;;16698:51:27;938:15711:28;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;15098:25;938:15711;;;:::i;:::-;;;;;;:::i;:::-;;15044:33;;;:::i;:::-;;15098:25;:::i;:::-;-1:-1:-1;;938:15711:28;;;;;;;;15141:23;;;;:::i;:::-;;938:15711;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15711:28;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;938:15711:28;;:::i;:::-;;;-1:-1:-1;938:15711:28;507:19:1;938:15711:28;;507:32:1;938:15711:28;;-1:-1:-1;938:15711:28;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;507:32:1;938:15711:28;;;;;;;-1:-1:-1;;938:15711:28;507:55:1;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;938:15711:28;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;-1:-1:-1;938:15711:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6020:27;;;;;:::i;:::-;6061:8;;6057:175;;938:15711;6057:175;938:15711;;6089:22;;;6085:36;;6135:87;;;938:15711;;;;;;-1:-1:-1;;938:15711:28;;;;-1:-1:-1;;;;;938:15711:28;;;;;:::i;:::-;-1:-1:-1;938:15711:28;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15711:28;-1:-1:-1;938:15711:28;;;;-1:-1:-1;938:15711:28;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25110:9:27;;;;25159:17;;;25214:7;;;;;:::i;:::-;25255:21;;;:::i;:::-;25232:20;;;938:15711:28;25471:28:27;;;938:15711:28;25532:26:27;25766:70;938:15711:28;25532:26:27;;;;938:15711:28;25532:49:27;25584:20;;;938:15711:28;25532:72:27;25619:37;;;938:15711:28;25532:124:27;25659:31;;;938:15711:28;25532:158:27;25693:20;;;938:15711:28;25532:181:27;25728:28;;;938:15711:28;25532:224:27;25774:33;;25766:70;:::i;:::-;25873:28;;9490:20;9273:28;;;938:15711:28;9304:20:27;;;938:15711:28;1666:4:27;9343:37;;;938:15711:28;1666:4:27;9383:31;;;938:15711:28;1666:4:27;9417:26;;;938:15711:28;1666:4:27;9490:20;;938:15711:28;;9103:424:27;;25873:28;26000:9;26025:55;26026:54;25928:82;26000:9;25928:82;;;;;:::i;:::-;938:15711:28;25232:20:27;938:15711:28;;;-1:-1:-1;;;;;938:15711:28;;;;26066:13:27;;938:15711:28;26026:54:27;;:::i;:::-;26025:55;;938:15711:28;26025:55:27;26021:140;;26208:9;1666:4;;26199:41;26195:138;;26406:9;;26738:32;26406:9;25619:37;26739:24;26406:9;25659:31;26737:40;26406:9;;26497:17;25471:28;26497:17;;938:15711:28;25584:20:27;26546:23;;;938:15711:28;26648:9:27;1666:4;;26660:25;;938:15711:28;1666:4:27;26618:18;;938:15711:28;26754:9:27;26739:24;;:::i;:::-;26738:32;:::i;:::-;26774:3;938:15711:28;;;;26737:40:27;25471:28;938:15711:28;;;;;;;;;;;;;;;;26195:138:27;25471:28;938:15711:28;;-1:-1:-1;;;26267:51:27;;938:15711:28;26267:51:27;;938:15711:28;;;;;;;;;;;;;;;;;;;;17050:60:27;26021:140;26103:47;938:15711:28;25471:28:27;938:15711:28;26103:47:27;;;-1:-1:-1;;;26103:47:27;;938:15711:28;26103:47:27;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15711:28;;;;-1:-1:-1;;;;;938:15711:28;;;;;:::i;:::-;;-1:-1:-1;938:15711:28;-1:-1:-1;938:15711:28;;;;-1:-1:-1;938:15711:28;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;11564:152;11479:13;938:15711;;;:::i;:::-;;;;;;;;;;;:::i;11479:13::-;11530:15;;;;;:::i;:::-;11564:152;:::i;938:15711::-;;;;;;-1:-1:-1;;938:15711:28;;;;;6099:41:21;:5;:41;:::i;:::-;6554:47;:8;:47;:::i;:::-;938:15711:28;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5590:13:21;;938:15711:28;;;;5625:4:21;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15711:28;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15711:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;637:66:16;3321:69:20;1413:93:16;;938:15711:28;3550:68:20;1624:4:16;637:66;3550:68:20;938:15711:28;;:::i;:::-;13747:2;;;;:::i;:::-;13871:40;;;;:::i;:::-;3193:1327:27;;;3449:9;3517:20;;;938:15711:28;3610:15:27;;3517:20;3610:15;;;;:::i;:::-;-1:-1:-1;3705:160:27;;;;;938:15711:28;;;-1:-1:-1;;;3882:51:27;3895:38;;4037:17;;938:15711:28;3982:74:27;4113:53;4037:17;;;;938:15711:28;;;3982:74:27;;;-1:-1:-1;;;4037:17:27;3982:74;;;938:15711:28;3982:74:27;;;938:15711:28;;;;;;:::i;:::-;;;;;;3982:74:27;938:15711:28;;3982:74:27;;;;;;:::i;:::-;4113:53;:::i;:::-;4074:92;;3878:626;;-1:-1:-1;14040:25:28;3517:20:27;938:15711:28;-1:-1:-1;;;;;938:15711:28;;14075:110;;3878:626:27;14231:15:28;;;;14202:270;14231:15;;;938:15711;;;;:::i;:::-;;;;14202:270;;;938:15711;14202:270;;;938:15711;3517:20:27;14202:270:28;;938:15711;14231:15;14202:270;;938:15711;14202:270;;;938:15711;;;14202:270;;;938:15711;;14202:270;;;;938:15711;1246:1:16;;:::i;:::-;938:15711:28;;;;;;;:::i;14075:110::-;14202:270;14147:27;;-1:-1:-1;14147:27:28;;;;;;;;;;;;;;;;14231:15;14147:27;;:::i;:::-;14115:59;14075:110;;;;;;3878:626:27;4345:48;938:15711:28;;;;;;;;:::i;4345:48:27:-;4306:87;;3878:626;;;3705:160;-1:-1:-1;3705:160:27;;;;1413:93:16;1465:30;-1:-1:-1;1465:30:16;;-1:-1:-1;1465:30:16;938:15711:28;;;-1:-1:-1;;938:15711:28;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;938:15711:28;;;;3615:10:2;938:15711:28;;;;;3644:20:2;938:15711:28;;;3644:20:2;938:15711:28;;;;;;;3644:25:2;938:15711:28;;3767:46:2;;938:15711:28;;3694:41:2;938:15711:28;3865:19:2;938:15711:28;;;;;;3694:41:2;:::i;:::-;938:15711:28;;;;;;3767:46:2;938:15711:28;3774:15:2;938:15711:28;3767:46:2;:::i;:::-;938:15711:28;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;3865:19:2;938:15711:28;;;;;;;;3615:10:2;;3899:39;;938:15711:28;;;;3899:39:2;938:15711:28;;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15711:28;;;;4618:44:2;-1:-1:-1;938:15711:28;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4133:10:2;4087:20;4096:10;-1:-1:-1;;;;;938:15711:28;2885:8:2;938:15711:28;2885:8:2;938:15711:28;;;2885:8:2;938:15711:28;;;4087:20:2;4133:10;938:15711:28;4463:14:2;938:15711:28;;;4278:110:2;938:15711:28;;4117:26:2;938:15711:28;;-1:-1:-1;;;;;938:15711:28;;;;;;;-1:-1:-1;;;;;938:15711:28;;;4117:26:2;4161:9;4153:42;4161:9;;;4153:42;:::i;:::-;938:15711:28;;;;;;;;4205:63:2;4213:21;;;4205:63;:::i;:::-;4320:15;-1:-1:-1;4299:36:2;4278:110;:::i;:::-;938:15711:28;;;;;;;4463:14:2;938:15711:28;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;4096:10:2;;4492:50;;;938:15711:28;4570:38:2;;;;:::i;:::-;;4618:44;:::i;938:15711:28:-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5790:31;938:15711;;;:::i;:::-;;;;;;:::i;:::-;;5790:31;:::i;:::-;-1:-1:-1;;938:15711:28;;;;;;;;5838:27;;;;:::i;:::-;;938:15711;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;9393:5;938:15711;;;;;;;:::o;:::-;;10106:1;938:15711;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;938:15711:28;;-1:-1:-1;938:15711:28;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;938:15711:28;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;2459:114:27;938:15711:28;;;2546:20:27;;;:4;:20;:4;;:20;;;;;;;-1:-1:-1;2546:20:27;;;2539:27;2459:114;:::o;2546:20::-;;;;;;;;;;;;;;;;;:::i;:::-;;;938:15711:28;;;;;;;;:::i;2546:20:27:-;;;-1:-1:-1;2546:20:27;;;;:::i;938:15711:28:-;-1:-1:-1;;938:15711:28;;;;;;;:::o;5973:1650:27:-;;;;;;6290:14;;6338:20;;;;938:15711:28;;;6748:19:27;;6744:703;;5973:1650;7510:9;;;;;1666:4;;7522:15;;;938:15711:28;1666:4:27;7558:48;-1:-1:-1;27760:9:27;;27803:21;27868:14;;27915:27;;;;:::i;:::-;27977:17;938:15711:28;27977:17:27;;;938:15711:28;-1:-1:-1;;;;;938:15711:28;;;;28127:15:27;28289:60;28127:15;;;938:15711:28;1666:4:27;;28328:20;;;938:15711:28;28289:60:27;;:::i;:::-;1666:4;;-1:-1:-1;;;;;;;938:15711:28;;;28425:23:27;938:15711:28;;;;;;;30418:14:27;938:15711:28;;;;-1:-1:-1;;;;;938:15711:28;;;;28421:1846:27;;30302:9;1666:4;;;;938:15711:28;30418:14:27;;938:15711:28;30450:23:27;;;;30446:626;30450:23;;;938:15711:28;6290:14:27;938:15711:28;:::i;:::-;30683:146:27;6290:14;30683:146;;6290:14;30683:146;30446:626;1666:4;30943:40;1666:4;;30943:40;-1:-1:-1;;;;;938:15711:28;1706:8:2;938:15711:28;1706:8:2;938:15711:28;;;1706:8:2;938:15711:28;;;;1666:4:27;938:15711:28;;;1558:305:2;;30943:40:27;;938:15711:28;6290:14:27;938:15711:28;:::i;:::-;7551:55:27;5973:1650;:::o;28421:1846::-;28537:25;;938:15711:28;;28580:1673:27;;28421:1846;;;;;30418:14;28421:1846;;;;;28580:1673;28707:9;;;;;;;;938:15711:28;;-1:-1:-1;938:15711:28;:::i;:::-;28910:31:27;28837:9;28910:31;;938:15711:28;;;28876:160:27;;;;;;938:15711:28;;;-1:-1:-1;938:15711:28;;;28876:160:27;938:15711:28;;28876:160:27;;;;;;;938:15711:28;28876:160:27;;938:15711:28;28876:160:27;;;;;;:::i;:::-;;;;;;;;28580:1673;-1:-1:-1;28872:901:27;;29596:150;29675:41;;:::i;:::-;938:15711:28;;29596:150:27;;;-1:-1:-1;;;29596:150:27;;28876:160;29596:150;;;:::i;28872:901::-;30418:14;28872:901;30166:68;28872:901;29839:9;1666:4;;30110:9;;1666:4;;938:15711:28;;30166:68:27;;:::i;:::-;28580:1673;;;;;;;28876:160;;;-1:-1:-1;28876:160:27;;;:::i;:::-;;;:::i;:::-;;;;6744:703;-1:-1:-1;938:15711:28;;;368:118:13;-1:-1:-1;;;;;938:15711:28;;;;368:118:13;;;;6868:8:27;6864:573;;6744:703;;;;;;6864:573;1666:4;6918:41;;:::i;:::-;938:15711:28;;6984:25:27;;;;;;368:118:13;6984:25:27;;;1666:4;;;;;;:::i;938:15711:28:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15711:28;;-1:-1:-1;938:15711:28;;;;-1:-1:-1;938:15711:28;;;;-1:-1:-1;938:15711:28;;;;-1:-1:-1;938:15711:28;;;;-1:-1:-1;938:15711:28;;;;-1:-1:-1;938:15711:28;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;938:15711:28;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;938:15711:28;;:::o;:::-;;;;;;;;;;;;;;;:::o;14485:400::-;14638:33;;;:::i;:::-;14687:13;14699:1;14702:14;;;;;;14864;;;14485:400;:::o;14718:3::-;14786:6;;;;;:::i;:::-;938:15711;;14699:1;938:15711;;;;;;:::i;:::-;;;;:::i;:::-;;637:66:16;3321:69:20;1413:93:16;;938:15711:28;3550:68:20;;637:66:16;3550:68:20;938:15711:28;;:::i;:::-;13747:2;;;;:::i;:::-;13871:40;;;;;:::i;:::-;3193:1327:27;;;;3449:9;3517:20;;;;;938:15711:28;3610:15:27;;3517:20;3610:15;;;;:::i;:::-;14699:1:28;3705:160:27;;;;;14718:3:28;938:15711;;-1:-1:-1;;;3882:51:27;3895:38;;4037:17;;3982:74;4037:17;-1:-1:-1;;;4037:17:27;938:15711:28;4113:53:27;4037:17;;;938:15711:28;;;;3982:74:27;;;;;;938:15711:28;3982:74:27;;;938:15711:28;;;;;;:::i;4113:53:27:-;4074:92;;3878:626;14231:15:28;3517:20:27;14231:15:28;;938:15711;;;;:::i;:::-;;;;14202:270;;938:15711;;14202:270;;938:15711;14202:270;;;938:15711;14231:15;14202:270;;938:15711;14202:270;;;938:15711;-1:-1:-1;14202:270:28;;;938:15711;14202:270;;;938:15711;1246:1:16;;:::i;:::-;14824:19:28;;;;:::i;:::-;;;;;;:::i;:::-;;938:15711;14687:13;;3878:626:27;4345:48;938:15711:28;;;;;;;;:::i;4345:48:27:-;4306:87;;3878:626;;3705:160;-1:-1:-1;3705:160:27;;;;938:15711:28;-1:-1:-1;;938:15711:28;;;;;;;;:::o;:::-;-1:-1:-1;;938:15711:28;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;938:15711:28;;;;:::o;:::-;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;2121:300:27;2323:91;2121:300;2252:54;;;:::i;:::-;2915:20;;:::i;:::-;938:15711:28;2162:233:3;938:15711:28;;;;;;:::i;:::-;1707:12:3;;;938:15711:28;;1752:25:3;;;;2162:233;1752:82;;;1867:31;1882:15;;;;;;:::i;:::-;1867:31;;:::i;:::-;1935:23;;;;938:15711:28;1997:25:3;;;938:15711:28;2050:14:3;2105:39;2120:23;2050:14;;;938:15711:28;2120:23:3;;;;;;:::i;2105:39::-;938:15711:28;;;2162:233:3;;;1707:12;2162:233;;;;938:15711:28;;;;;;;;;;;;-1:-1:-1;;;;;938:15711:28;;;;1065:197:3;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2162:233:3;;938:15711:28;;2162:233:3;;;;;;:::i;:::-;938:15711:28;4988:47:3;;2323:91:27;3445:249:22;3326:374;3445:249;;;;;;;;;;;;;;;3326:374;;1752:82:3;1818:15;2162:233;1818:15;;;;;;:::i;:::-;3287:193:0;;1818:15:3;3287:193:0;;;;;1752:82:3;;;938:15711:28;;;;;;;:::i;:::-;-1:-1:-1;938:15711:28;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;938:15711:28;;-1:-1:-1;938:15711:28;;;;-1:-1:-1;938:15711:28;;;;-1:-1:-1;938:15711:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;938:15711:28;;;;:::i;:::-;;;;;;;:::o;5176:427::-;938:15711;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;938:15711:28;;;:::i;:::-;;-1:-1:-1;938:15711:28;;;;;;5411:13;;-1:-1:-1;5426:18:28;;;;;;5582:14;;;5176:427;:::o;5446:3::-;5517:10;5498:30;5517:10;938:15711;5517:10;;;;:::i;5498:30::-;5542:19;;;;:::i;:::-;;;;;;:::i;:::-;;938:15711;5411:13;;938:15711;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;17050:60:27;938:15711:28;;26767:3:27;938:15711:28;;;;;;26767:3:27;938:15711:28;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;12938:15;938:15711;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;12497:945::-;;12825:13;12497:945;;;;;;;938:15711;;:::i;12825:13::-;-1:-1:-1;;;;;12938:15:28;;;;:::i;:::-;13125:40;12980:19;;;938:15711;;;;;:::i;:::-;;;:::i;:::-;13112:2;;;;:::i;:::-;13125:40;:::i;:::-;938:15711;;;;13180:20;13176:98;;13291:144;;;:::i;13176:98::-;13250:12;;;;;;;:::i;:::-;938:15711;;;;;;:::i;:::-;-1:-1:-1;938:15711:28;;-1:-1:-1;12980:19:28;13223:40;;938:15711;;13223:40;;938:15711;13216:47;:::o;2570:179:2:-;2712:30;938:15711:28;-1:-1:-1;;;;;2660:37:2;2687:9;2660:37;-1:-1:-1;;;;;938:15711:28;1706:8:2;938:15711:28;1706:8:2;938:15711:28;;;1706:8:2;938:15711:28;;;;1666:4:27;938:15711:28;;;1558:305:2;;2660:37;938:15711:28;;;;;;;2712:30:2;;2570:179::o;938:15711:28:-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;2507:2;938:15711;;;;2507:2;938:15711;:::o;:::-;;;;;;1129:2:26;938:15711:28;;;;;;;1129:2:26;938:15711:28;;-1:-1:-1;;938:15711:28;;:::o;:::-;;;;;;486:2:3;938:15711:28;;;;;;;486:2:3;938:15711:28;;-1:-1:-1;;938:15711:28;;:::o;:::-;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;-1:-1:-1;938:15711:28:o;:::-;;;;;;;:::i;:::-;2989:14;938:15711;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;1698:1621::-;938:15711;;:::i;:::-;;;;:::i;:::-;1879:6;;;;:::i;:::-;2032:47;;;;:::i;:::-;2090:98;;;;;;;;:::i;:::-;2232:42;938:15711;2246:27;:17;;:27;938:15711;-1:-1:-1;;;;;938:15711:28;;;;2232:42;:::i;:::-;2328:17;2441:15;2314:39;2328:24;:17;;-1:-1:-1;;;;;938:15711:28;;;;;2314:39;938:15711;;;:::i;:::-;;2441:15;;;;;:::i;:::-;2488:69;2507:2;2488:21;;2507:2;;2520:23;2528:14;2585:22;2528:14;2512:32;2528:14;;:::i;:::-;2520:23;;:::i;:::-;938:15711;;;;2585:22;938:15711;-1:-1:-1;;;;;938:15711:28;;2746:18;;;;938:15711;2778:17;2900:23;2441:15;2778:17;;938:15711;2900:23;;938:15711;;;;:::i;:::-;;;;2722:212;;;938:15711;2441:15;2722:212;;938:15711;2900:23;2722:212;;938:15711;2746:18;2722:212;;938:15711;;;:::i;:::-;3017:45;;;;:93;;;2488:69;3013:199;;2488:69;938:15711;;;:::i;:::-;;;;2722:212;3228:84;;938:15711;2441:15;3228:84;;938:15711;2900:23;3228:84;;938:15711;2746:18;3228:84;;938:15711;1698:1621;:::o;3013:199::-;3175:25;;;;;;:::i;:::-;3143:58;938:15711;;:::i;:::-;-1:-1:-1;;;;;938:15711:28;;;;;;3143:58;2722:212;3143:58;;938:15711;3013:199;;;;3017:93;3066:44;2074:4;3066:44;;;3017:93;;2488:69;;;2585:22;-1:-1:-1;2585:22:28;:::i;938:15711::-;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;17050:60:27;22408:2426;;;;12938:15:28;22767:9:27;;22816:17;;;22871:7;;;;;:::i;:::-;23083;32687:67;;23036:21;;;:::i;:::-;23013:20;;;938:15711:28;32970:66:27;;32908:134;23083:7;32687:67;23286:28;;938:15711:28;23347:26:27;23581:89;12938:15:28;938:15711;23347:26:27;;;;938:15711:28;23347:49:27;23399:20;;;938:15711:28;23347:72:27;23434:37;;;938:15711:28;23347:124:27;23474:31;;;938:15711:28;23347:158:27;23508:20;;;938:15711:28;23347:181:27;23543:28;;;938:15711:28;23347:224:27;23589:33;;23581:89;:::i;:::-;23819:108;23707:28;;9490:20;9273:28;;;938:15711:28;9304:20:27;;;938:15711:28;1666:4:27;9343:37;;;938:15711:28;1666:4:27;9383:31;;;938:15711:28;1666:4:27;9417:26;;;938:15711:28;1666:4:27;9490:20;;938:15711:28;;9103:424:27;;23707:28;23745:17;32687:67;23745:17;;938:15711:28;3403:38:3;23434:37:27;3417:23:3;;938:15711:28;430:2:3;;;;3403:38;23819:108:27;;;12938:15:28;23819:108:27;:::i;:::-;938:15711:28;23938:112:27;12938:15:28;23946:54:27;938:15711:28;;;-1:-1:-1;;;;;938:15711:28;;;;23013:20:27;23986:13;;938:15711:28;23946:54:27;;:::i;:::-;23938:112;:::i;:::-;24098:9;1666:4;;24089:41;24085:138;;23399:20;24296:9;-1:-1:-1;;;;;938:15711:28;24319:17:27;24296:9;24319:17;;938:15711:28;-1:-1:-1;;;;;938:15711:28;;;;;24319:31:27;;:62;;;22408:2426;24315:248;;22408:2426;23434:37;24621:9;;24604:40;24605:32;24606:24;23474:31;24621:9;;24606:24;;:::i;24604:40::-;24678:23;23399:20;24678:23;;938:15711:28;24780:9:27;1666:4;;24792:25;;938:15711:28;1666:4:27;24750:18;;938:15711:28;22408:2426:27:o;24315:248::-;24507:44;;24606:24;24507:44;;;23474:31;23434:37;24507:44;;;;:::i;:::-;;24604:40;24605:32;16125:1016;;;12938:15:28;16125:1016:27;:::i;:::-;24397:155;;24315:248;;;;;;;;;;;24319:62;;13160:4:28;24319:62:27;;24085:138;32687:67;938:15711:28;-1:-1:-1;;;24157:51:27;;;;12938:15:28;24157:51:27;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;22408:2426:27;;;;;938:15711:28;22767:9:27;;22816:17;;22871:7;;;;:::i;:::-;23083;32687:67;;23036:21;;;:::i;:::-;23013:20;;;938:15711:28;32970:66:27;;32908:134;23083:7;32687:67;23286:28;;938:15711:28;23347:26:27;23581:89;23347:26;938:15711:28;23347:26:27;;;;938:15711:28;23347:49:27;23399:20;;;938:15711:28;23347:72:27;23434:37;;;938:15711:28;23347:124:27;23474:31;;;938:15711:28;23347:158:27;23508:20;;;938:15711:28;23347:181:27;23543:28;;;938:15711:28;23347:224:27;23589:33;;23581:89;:::i;:::-;23819:108;23707:28;;9490:20;9273:28;;;938:15711:28;9304:20:27;;;938:15711:28;1666:4:27;9343:37;;;938:15711:28;1666:4:27;9383:31;;;938:15711:28;1666:4:27;9417:26;;;938:15711:28;1666:4:27;9490:20;;938:15711:28;;9103:424:27;;23707:28;23745:17;32687:67;23745:17;;938:15711:28;3403:38:3;23434:37:27;3417:23:3;;938:15711:28;430:2:3;;;;3403:38;23819:108:27;;;;;:::i;:::-;938:15711:28;23938:112:27;938:15711:28;23946:54:27;938:15711:28;;;-1:-1:-1;;;;;938:15711:28;;;;23013:20:27;23986:13;;938:15711:28;23946:54:27;;:::i;23938:112::-;24098:9;1666:4;;24089:41;24085:138;;23399:20;24296:9;-1:-1:-1;;;;;938:15711:28;24319:17:27;24296:9;24319:17;;938:15711:28;-1:-1:-1;;;;;938:15711:28;;;;;24319:31:27;;:62;;;;22408:2426;24315:248;;;22408:2426;24621:9;23434:37;24621:9;;24604:40;24605:32;24606:24;23474:31;24621:9;;24606:24;;:::i;24315:248::-;24606:24;24507:44;;23474:31;24507:44;;;;24604:40;24605:32;16125:1016;24507:44;;;;;23434:37;24507:44;;:::i;:::-;;16125:1016;:::i;:::-;24397:155;;24315:248;;;;;;;;;;24319:62;;;;;;938:15711:28;;;;;;;;;;;;;-1:-1:-1;938:15711:28;;;;;;;;-1:-1:-1;;938:15711:28;;;;:::o;:::-;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;938:15711:28;;;;;;;;;;;;;;:::o;6332:742::-;;;938:15711;6459:19;-1:-1:-1;;;;;938:15711:28;;;6498:83;;;;;;;938:15711;;;;;;6498:83;;;;;;938:15711;6498:83;;-1:-1:-1;;;;;6558:12:28;938:15711;6498:83;;;;:::i;:::-;;;;;;;;6332:742;-1:-1:-1;6494:574:28;;6593:475;;;;:::i;:::-;938:15711;6498:83;938:15711;;6639:17;6635:164;;6839:28;6849:17;938:15711;;6849:17;:::i;:::-;6839:28;:::i;:::-;6498:83;6920:3;938:15711;;6901:17;;;;;6963:9;;;938:15711;6963:9;;;:::i;:::-;938:15711;;;;;6963:9;6943:29;6954:5;;;:::i;:::-;6943:29;938:15711;6943:29;;;;:::i;:::-;;938:15711;6886:13;;6901:17;;7020:37;6901:17;;;7020:37;938:15711;;;7020:37;;;;;;:::i;6635:164::-;6771:12;;;;:::i;:::-;938:15711;;6756:28::o;6498:83::-;;;938:15711;6498:83;;;:::i;:::-;;;;1277:65:2;1324:10;;;:::i;486:2:3:-;;;;:::o;:::-;;938:15711:28;;-1:-1:-1;;;486:2:3;;;;;;;;;;;938:15711:28;486:2:3;938:15711:28;;;486:2:3;;;;;;:::o;:::-;;938:15711:28;;-1:-1:-1;;;486:2:3;;;;;;;;;;;938:15711:28;486:2:3;938:15711:28;;;486:2:3;;7813:1086:27;8371:23;7813:1086;7968:30;7985:13;;;:::i;:::-;-1:-1:-1;;;;;938:15711:28;;;;7968:30:27;8024:12;;;938:15711:28;8024:12:27;8008:13;;938:15711:28;8101:53:27;8130:23;;;938:15711:28;2408:176:3;430:2;;;;;;2408:176;;8101:53:27;8077:20;;;938:15711:28;8047:28:27;;;938:15711:28;8193:25:27;;;938:15711:28;8164:26:27;;;938:15711:28;8283:44:27;8164:26;8312:14;;938:15711:28;2408:176:3;430:2;;;;;;2408:176;;8283:44:27;8259:20;;;938:15711:28;8229:28:27;;;938:15711:28;8371:23:27;;;;;:::i;:::-;8408:27;;;;8404:489;;7813:1086;;;:::o;8404:489::-;8705:62;8459:65;8853:29;8459:65;8451:107;486:2:3;8371:23:27;8459:65;;;8451:107;:::i;:::-;8705:62;:::i;:::-;8193:25;8654:31;;938:15711:28;8130:23:27;8615:37;;938:15711:28;8654:31:27;8781:58;-1:-1:-1;;;;;938:15711:28;;8789:23:27;;8781:58;:::i;:::-;8853:17;938:15711:28;-1:-1:-1;;;;;938:15711:28;;;;11939:1091:27;;;12712:83;11939:1091;12266:14;;938:15711:28;-1:-1:-1;;;;;12424:17:27;938:15711:28;;;;12378:11:27;;;;;;;;:::i;:::-;;;-1:-1:-1;12378:11:27;:::i;:::-;12424:17;938:15711:28;;12455:31:27;-1:-1:-1;12504:23:27;;12500:182;;;;11939:1091;-1:-1:-1;12712:83:27;:::i;:::-;12809:205;;;11939:1091;:::o;12809:205::-;-1:-1:-1;12861:45:27;;;:::i;:::-;12860:46;12856:144;;11939:1091::o;12856:144::-;12378:11;938:15711:28;-1:-1:-1;;;12937:44:27;;;;-1:-1:-1;12937:44:27;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;12500:182:27;1239:17:2;;;;-1:-1:-1;;;;;938:15711:28;2885:8:2;938:15711:28;2885:8:2;938:15711:28;;;2885:8:2;938:15711:28;;;1239:17:2;938:15711:28;12618:21:27;;;;:49;-1:-1:-1;12618:49:27;12500:182;;;12618:49;-1:-1:-1;1666:4:27;12618:49;;11939:1091;;;;;12712:83;11939:1091;12266:14;;938:15711:28;-1:-1:-1;;;;;12424:17:27;938:15711:28;;;;12378:11:27;;;;;;;;:::i;:::-;;;;;:::i;:::-;12424:17;938:15711:28;;12455:31:27;-1:-1:-1;12504:23:27;;12500:182;;;;11939:1091;12712:83;;:::i;:::-;12809:205;;;11939:1091;;;:::o;12809:205::-;12861:45;;;:::i;:::-;12860:46;12856:144;;11939:1091;:::o;12856:144::-;12378:11;938:15711:28;;-1:-1:-1;;;12937:44:27;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;17050:60:27;12500:182;1239:17:2;;;;-1:-1:-1;;;;;938:15711:28;2885:8:2;938:15711:28;2885:8:2;938:15711:28;;;2885:8:2;938:15711:28;;;1239:17:2;938:15711:28;12618:21:27;;;;;;:49;-1:-1:-1;12618:49:27;12500:182;;;12618:49;1666:4;;12618:49;;7080:602:28;;7274:1;7303:3;7277:24;;;;;;938:15711;;:::i;:::-;;;;;;;;;;;;;;;;;;;;7476:51;938:15711;;;;7454:7;;;;;;:::i;:::-;7499;;;;:::i;7476:51::-;7546:11;;;;;;:25;:11;;;:::i;:::-;-1:-1:-1;;;;;938:15711:28;;;7546:25;;7542:72;;7274:1;7628:11;;7645:19;7628:11;;;;:::i;:::-;7645:19;;;;;;:::i;:::-;938:15711;;;7645:19;938:15711;;;;;;:::i;:::-;7628:37;;;;;;;:::i;:::-;;7262:13;938:15711;7262:13;;7542:72;7591:8;;;;7277:24;;;;;7080:602::o;15177:332::-;15315:84;15177:332;15343:15;;;;;;:::i;:::-;938:15711;15375:23;938:15711;;;;;;:::i;:::-;15375:23;;;;;:::i;:::-;15315:84;;;;:::i;:::-;938:15711;;15409:94;;15177:332;:::o;15409:94::-;938:15711;;15343:15;938:15711;15467:25;;;-1:-1:-1;;;15467:25:28;;-1:-1:-1;15467:25:28;;;938:15711;15343:15;938:15711;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;7688:2525::-;;;;;938:15711;;:::i;:::-;-1:-1:-1;8067:17:28;;;;8331:57;938:15711;;;:::i;:::-;;8275:9;-1:-1:-1;8228:57:28;8275:9;8228:57;10908:46;8228:57;:::i;:::-;8378:9;938:15711;;;8331:57;;;;;-1:-1:-1;;;8331:57:28;;;;;;;:::i;:::-;;:12;;-1:-1:-1;;;;;8331:12:28;938:15711;8331:57;;;;;;;-1:-1:-1;;;8331:57:28;;;8063:1101;8299:89;;;;8468:14;;;8464:108;;8063:1101;;9191:21;8063:1101;;;;;;;;9191:21;;:::i;:::-;9222:27;-1:-1:-1;;;;;9682:12:28;938:15711;9260:872;;9268:15;;;;;:::i;:::-;9267:35;;;9372:9;9384:14;;;:::i;:::-;-1:-1:-1;9368:118:28;;9518:15;;;;;;;;-1:-1:-1;9518:15:28;;9576:54;9517:21;9518:15;;9682:57;9518:15;;:::i;:::-;938:15711;;;;9517:21;9576:54;;10908:46;9576:54;:::i;:::-;9729:9;;938:15711;;;9682:57;;;;;;;-1:-1:-1;;;9682:57:28;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;9682:57:28;;;9260:872;-1:-1:-1;9754:368:28;;;9881:19;;;9927:10;9881:19;9927:10;:::i;:::-;9955:21;9754:368;;9260:872;;;;;;;;9754:368;10097:10;;;;;;;;;:::i;:::-;9754:368;;;9682:57;;;;;;;;;-1:-1:-1;9682:57:28;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;9368:118;9425:46;-1:-1:-1;9425:46:28;9682:57;938:15711;;;;;;;;;;;;-1:-1:-1;9425:46:28;9267:35;;;;;;;;;;10149:57;9267:35;;938:15711;;:::i;:::-;;;;;;10149:57;;;938:15711;;10149:57;938:15711;10149:57;;938:15711;7688:2525;:::o;8464:108::-;938:15711;;;;;;;;;;8509:48;938:15711;;:::i;:::-;-1:-1:-1;938:15711:28;;;;;8509:48;;;938:15711;;8331:57;;;;;;;;;;-1:-1:-1;8331:57:28;;;;;;:::i;:::-;;;;;;;;8063:1101;8717:9;8866:57;8717:9;;;8810;-1:-1:-1;8763:57:28;8810:9;8763:57;10908:46;8763:57;:::i;8866:::-;;:12;;-1:-1:-1;;;;;8866:12:28;938:15711;8866:57;;;;;;;-1:-1:-1;;;8866:57:28;;;8063:1101;8834:89;;;8946:24;8834:89;8961:9;;8946:24;;:::i;:::-;9050:14;;;9046:108;;8063:1101;;9191:21;8063:1101;;;;;;;;;8866:57;;;;;;;;;;-1:-1:-1;8866:57:28;;;;;;:::i;:::-;;;;;;;;7688:2525;;;;;938:15711;;:::i;:::-;-1:-1:-1;8067:17:28;;;;8331:57;938:15711;;;:::i;:::-;;8275:9;-1:-1:-1;8228:57:28;8275:9;8228:57;11598:37;8228:57;:::i;8331:::-;;:12;;-1:-1:-1;;;;;8331:12:28;938:15711;8331:57;;;;;;;-1:-1:-1;;;8331:57:28;;;8063:1101;8299:89;;;;8468:14;;;8464:108;;8063:1101;;9191:21;8063:1101;;;;;;;9191:21;;:::i;:::-;9222:27;-1:-1:-1;;;;;9682:12:28;938:15711;9260:872;;9268:15;;;;;:::i;:::-;9267:35;;;9372:9;9384:14;;;:::i;:::-;-1:-1:-1;9368:118:28;;9518:15;;;;;;;;-1:-1:-1;9518:15:28;;9576:54;9517:21;9518:15;;9682:57;9518:15;;:::i;9517:21::-;9576:54;;11598:37;9576:54;:::i;9682:57::-;;;;;;;;;;-1:-1:-1;;;9682:57:28;;;9260:872;-1:-1:-1;9754:368:28;;;9881:19;;;9927:10;9881:19;9927:10;:::i;:::-;9955:21;9754:368;;9260:872;;;;;;;;9754:368;10097:10;;;;;;;;;:::i;:::-;9754:368;;;9682:57;;;;;;;;;-1:-1:-1;9682:57:28;;;;;;:::i;:::-;;;;;;8331;;;;;;;;;;-1:-1:-1;8331:57:28;;;;;;:::i;:::-;;;;;;;;8063:1101;8717:9;8866:57;8717:9;;;8810;-1:-1:-1;8763:57:28;8810:9;8763:57;11598:37;8763:57;:::i;8866:::-;;:12;;-1:-1:-1;;;;;8866:12:28;938:15711;8866:57;;;;;;;-1:-1:-1;;;8866:57:28;;;8063:1101;8834:89;;;8946:24;8834:89;8961:9;;8946:24;;:::i;:::-;9050:14;;;9046:108;;8063:1101;;9191:21;8063:1101;;;;;;;;;8866:57;;;;;;;;;;-1:-1:-1;8866:57:28;;;;;;:::i;:::-;;;;;;;;7688:2525;;;;;938:15711;;:::i;:::-;-1:-1:-1;8067:17:28;;;;8331:57;938:15711;;;:::i;:::-;;8275:9;-1:-1:-1;8228:57:28;8275:9;8228:57;13160:4;8228:57;:::i;8331:::-;;:12;;-1:-1:-1;;;;;8331:12:28;938:15711;8331:57;;;;;;;-1:-1:-1;;;8331:57:28;;;8063:1101;8299:89;;;;8468:14;;;8464:108;;8063:1101;;9191:21;8063:1101;;;;;;;9191:21;;:::i;:::-;9222:27;-1:-1:-1;;;;;9682:12:28;938:15711;9260:872;;9268:15;;;;;:::i;:::-;9267:35;;;9372:9;9384:14;;;:::i;:::-;-1:-1:-1;9368:118:28;;9518:15;;;;;;;;-1:-1:-1;9518:15:28;;9576:54;9517:21;9518:15;;9682:57;9518:15;;:::i;9517:21::-;9576:54;;13160:4;9576:54;:::i;9682:57::-;;;;;;;;;;-1:-1:-1;;;9682:57:28;;;9260:872;-1:-1:-1;9754:368:28;;;9881:19;;;9927:10;9881:19;9927:10;:::i;:::-;9955:21;9754:368;;9260:872;;;;;;;;9754:368;10097:10;;;;;;;;;:::i;:::-;9754:368;;;9682:57;;;;;;;;;-1:-1:-1;9682:57:28;;;;;;:::i;:::-;;;;;;8331;;;;;;;;;;-1:-1:-1;8331:57:28;;;;;;:::i;:::-;;;;;;;;8063:1101;8717:9;8866:57;8717:9;;;8810;-1:-1:-1;8763:57:28;8810:9;8763:57;13160:4;8763:57;:::i;8866:::-;;:12;;-1:-1:-1;;;;;8866:12:28;938:15711;8866:57;;;;;;;-1:-1:-1;;;8866:57:28;;;8063:1101;8834:89;;;8946:24;8834:89;8961:9;;8946:24;;:::i;:::-;9050:14;;;9046:108;;8063:1101;;9191:21;8063:1101;;;;;;;;;8866:57;;;;;;;;;;-1:-1:-1;8866:57:28;;;;;;:::i;:::-;;;;;;;;1176:508:13;1273:405;1666:4:27;1273:405:13;;;;1176:508;1273:405;;;;;;;;;;;;;;;;;;1176:508;:::o;1273:405::-;;1666:4:27;1273:405:13;;938:15711:28;-1:-1:-1;;;938:15711:28;;;;;;;;;;-1:-1:-1;938:15711:28;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3845:262:21:-;-1:-1:-1;;;;;3938:11:21;938:15711:28;3929:4:21;3921:28;:63;;;3845:262;3917:184;;;4007:22;4000:29;:::o;3917:184::-;938:15711:28;;4204:80:21;;;938:15711:28;2079:95:21;938:15711:28;;4226:11:21;938:15711:28;2079:95:21;;938:15711:28;4239:14:21;2079:95;;;938:15711:28;4255:13:21;2079:95;;;938:15711:28;3929:4:21;2079:95;;;938:15711:28;2079:95:21;4204:80;;;;;;:::i;:::-;938:15711:28;4194:91:21;;4060:30;:::o;3921:63::-;3970:14;;3953:13;:31;3921:63;;16125:1016:27;;;;16432:9;16485:14;;;16623:48;-1:-1:-1;;;;;16533:17:27;;;938:15711:28;;16590:14:27;;;938:15711:28;16623:48:27;;:::i;:::-;16622:49;16618:146;;16810:37;;16889:73;16810:37;;938:15711:28;16889:73:27;;;;;:::i;:::-;16861:101;;16989:9;;1666:4;;16980:43;16976:149;;16125:1016;:::o;16618:146::-;16698:51;938:15711:28;16590:14:27;938:15711:28;16698:51:27;-1:-1:-1;;;16698:51:27;;;;;938:15711:28;16590:14:27;938:15711:28;;;;;;;;;;;;;;16698:51:27;938:15711:28;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15711:28;;;:::o;795:503:26:-;941:15;;;;;;:::i;:::-;971:28;;970:29;971:28;;;;:::i;970:29::-;966:68;;1082:13;1062:34;1082:13;;:::i;:::-;1062:34;:::i;:::-;1110:21;1129:2;1110:21;;1129:2;;938:15711:28;;941:15:26;938:15711:28;1164:26:26;;;;;;;;938:15711:28;;;;;;;;;;;;;1106:186:26;1266:13;1239:41;1266:13;;;;:::i;:::-;938:15711:28;;1239:41:26;941:15;938:15711:28;1239:41:26;;;;;;;;;:::i;966:68::-;1015:8;;;938:15711:28;1015:8:26;:::o;968:234:1:-;-1:-1:-1;;;;;938:15711:28;-1:-1:-1;938:15711:28;1154:19:1;938:15711:28;;;1154:32:1;938:15711:28;1098:2:1;938:15711:28;1098:2:1;-1:-1:-1;938:15711:28;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;1154:32:1;938:15711:28;;;1154:34:1;;;;:::i;:::-;938:15711:28;;;1154:41:1;968:234;:::o;1642:105:16:-;-1:-1:-1;637:66:16;3550:68:20;1642:105:16:o;938:15711:28:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;19785:1109:27:-;20053:34;-1:-1:-1;;;;;19785:1109:27;20053:34;:::i;:::-;938:15711:28;;20097:111:27;;20217:96;;20615:43;-1:-1:-1;;;;;20615:43:27;;:::i;:::-;938:15711:28;;20668:105:27;;20782:106;;19785:1109::o;20782:106::-;938:15711:28;;-1:-1:-1;;;20823:54:27;;;;-1:-1:-1;20823:54:27;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;20668:105:27;938:15711:28;;-1:-1:-1;;;20721:41:27;;;;-1:-1:-1;20721:41:27;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;20217:96:27;938:15711:28;;-1:-1:-1;;;20258:44:27;;;;-1:-1:-1;20258:44:27;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;20097:111:27;938:15711:28;;-1:-1:-1;;;20156:41:27;;;;-1:-1:-1;20156:41:27;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;854:262:2;;-1:-1:-1;;;;;938:15711:28;;:::i;:::-;;;995:8:2;938:15711:28;995:8:2;938:15711:28;;;1032:17:2;938:15711:28;995:8:2;938:15711:28;1032:17:2;938:15711:28;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;1059:20:2;;938:15711:28;854:262:2:o;3622:246:3:-;3773:23;3622:246;3773:23;;;;;:::i;:::-;430:2;938:15711:28;;;368:2:3;938:15711:28;430:2:3;;;;3622:246::o;4101:507::-;;;938:15711:28;368:2:3;938:15711:28;;;;;;;430:2:3;938:15711:28;;;368:2:3;938:15711:28;;430:2:3;;486;938:15711:28;;;;;;;;;430:2:3;;;;;;938:15711:28;430:2:3;;;;4101:507::o;938:15711:28:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;9781:1671:27:-;;;;9931:20;9927:1519;;9781:1671;;;;;:::o;9927:1519::-;9984:14;;938:15711:28;-1:-1:-1;;;;;938:15711:28;10023:43:27;;;;;:::i;:::-;10019:495;;10531:18;;10527:121;;10683:2;10665:20;;10661:110;;9950:1;10802:80;:28;:15;;:::i;:28::-;10836:35;:14;;:35;938:15711:28;10836:35:27;938:15711:28;10802:80:27;;;;938:15711:28;10802:80:27;;;;;;;;;;:::i;:::-;;;;;;;;;9950:1;10802:80;;;9927:1519;938:15711:28;-1:-1:-1;;;;;938:15711:28;;10900:21:27;;;10896:115;;-1:-1:-1;;;;;938:15711:28;11028:17:27;;;11024:116;;11157:19;:24;11153:123;;11323:14;11315:23;11323:14;11358:77;11323:14;11307:32;11323:14;;:::i;11307:32::-;10802:80;11374:17;;;938:15711:28;11410:14:27;;938:15711:28;11410:24:27;938:15711:28;10836:35:27;938:15711:28;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;;;;;10836:35:27;11358:77;9927:1519;;;;;;11153:123;10836:35;938:15711:28;;-1:-1:-1;;;11208:53:27;;10802:80;11208:53;;938:15711:28;;;;;;;;;;;;;;;;;;;;17050:60:27;11024:116;11072:53;938:15711:28;10836:35:27;938:15711:28;11072:53:27;;;-1:-1:-1;;;11072:53:27;;10802:80;11072:53;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;10896:115:27;10948:48;938:15711:28;10836:35:27;938:15711:28;10948:48:27;;;-1:-1:-1;;;10948:48:27;;10802:80;10948:48;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;10802:80:27;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10661:110;938:15711:28;;;-1:-1:-1;;;10712:44:27;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;17050:60:27;10527:121;938:15711:28;;;-1:-1:-1;;;10581:52:27;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;17050:60:27;10019:495;10090:20;;10108:2;10090:20;;10086:390;;10493:7;;;;:::o;10086:390::-;10359:15;10443:13;10359:15;10398:35;10359:33;:15;;:::i;:33::-;10398:14;;:35;938:15711:28;10443:13:27;;:::i;:::-;10359:98;;;;;;;9950:1;938:15711:28;;10359:98:27;938:15711:28;10398:35:27;938:15711:28;10359:98:27;;;;;;;938:15711:28;10359:98:27;;;;;;:::i;:::-;;;;;;;;;;10086:390;;;;;;10359:98;;;9950:1;10359:98;;;:::i;:::-;;;;938:15711:28;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14163:1270:27:-;;;14700:17;14163:1270;;;;14655:85;14499:14;14163:1270;14655:85;14499:21;:14;;-1:-1:-1;;;;;938:15711:28;;;;;14499:21:27;14530:12;32687:67;;14700:17;;;;938:15711:28;14655:85:27;;;;;;;;;;;:::i;:::-;;938:15711:28;;14655:85:27;;;;;;:::i;:::-;14754:326;;;;;;14499:14;14754:326;;14700:17;14754:326;;;;14163:1270;32970:66;;15145:8;15141:286;;14163:1270;;:::o;15141:286::-;15173:18;;;32687:67;938:15711:28;;-1:-1:-1;;;15223:46:27;;14655:85;15223:46;;938:15711:28;;;;;;;;;;;;;;;;;;;;17050:60:27;15169:248;15360:41;;:::i;:::-;938:15711:28;15315:87:27;32687:67;938:15711:28;15315:87:27;;;-1:-1:-1;;;15315:87:27;;14655:85;15315:87;;;:::i;14754:326::-;14499:14;;-1:-1:-1;14754:326:27;;2134:396:2;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;2367:23:2;;;2363:74;;1666:4:27;938:15711:28;;2509:4:2;2134:396;:::o;15906:741:28:-;;;;;16097:20;:47;;;;15906:741;16093:183;;;16316:2;16289:29;;;16285:310;;15906:741;938:15711;;;;:::i;16285:310::-;16316:2;938:15711;;;;;;16412:21;:26;16408:177;;16285:310;;;;16408:177;938:15711;;;;;;:::i;:::-;;;;;;;;;16532:38;:::o;16093:183::-;938:15711;;;;;;;;:::i;:::-;;;;;;;;;16229:36;:::o;16097:47::-;16121:18;;;:23;16097:47;;;938:15711;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;-1:-1:-1;938:15711:28;;;:::o;:::-;;;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;430:2:3;938:15711:28;;;;430:2:3;938:15711:28;;;;;;;;;;;;;;;;-1:-1:-1;938:15711:28;;;:::o;:::-;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;938:15711:28;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;:::o;:::-;;;;;-1:-1:-1;938:15711:28;;;;;;;;;;;;;;;;;:::i;3325:1845::-;938:15711;;:::i;:::-;3544:47;3576:15;;;;:::i;:::-;3544:47;:::i;:::-;938:15711;;;:::i;:::-;3614:46;3606:54;;3602:843;;938:15711;;;:::i;:::-;4467:37;4459:45;;4455:382;;938:15711;;;;4859:29;938:15711;;:::i;:::-;4851:37;4847:284;;938:15711;;-1:-1:-1;;;5141:22:28;;938:15711;5141:22;;;938:15711;;;;;;;;;;;;;17050:60:27;4847:284:28;4921:19;5032:88;938:15711;4984:27;4921:19;;5032:88;4921:19;;;:::i;:::-;4984:27;;;;;;:::i;:::-;938:15711;;;:::i;:::-;;4984:27;938:15711;5032:88;;;938:15711;4921:19;5032:88;;;;;;;:::i;4455:382::-;4543:15;;;430:2:3;4629:19:28;4543:36;:15;;4747:79;4543:15;;:::i;:::-;3585:23:3;;938:15711:28;430:2:3;;;3454:162;4543:36:28;4629:19;938:15711;;;;4629:19;430:2:3;;4628:45:28;4645:3;4688:19;;938:15711;4747:79;938:15711;;4747:79;;;938:15711;4747:79;;;;;;;;:::i;3602:843::-;3784:15;;;4356:78;3784:15;-1:-1:-1;;3784:15:28;4235:99;;3739:78;3784:32;:15;;4356:78;3784:15;;:::i;:32::-;3739:78;;:::i;:::-;3866:26;;;;938:15711;3910:19;3784:32;3910:19;;;486:2:3;3910:19:28;;938:15711;3910:67;3906:195;;3602:843;938:15711;;;;;;;;;;-1:-1:-1;;938:15711:28;;;;4235:99;;;;;:::i;:::-;;938:15711;;4235:99;;;;;;:::i;:::-;4197:137;938:15711;;4356:78;;;938:15711;4235:99;4356:78;;;;;;;:::i;3906:195::-;938:15711;4013:15;;;:32;:15;;:73;:15;;:::i;:32::-;:73;;;:::i;938:15711::-;3906:195;;;;31344:332:27;31555:28;31490:20;;;938:15711:28;31555:28:27;;938:15711:28;31645:13:27;1666:4;3696:5:0;;;:13;:5;;;:13;31344:332:27;:::o;3696:13:0:-;;;31344:332:27;:::o;33048:413::-;;1913:5;1666:4;;33183:43;;;33179:90;;33404:3;1666:4;1799:2;1666:4;;938:15711:28;;33048:413:27;:::o;33179:90::-;33246:8;;938:15711:28;33246:8:27;:::o;938:15711:28:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17147:2265:27:-;;-1:-1:-1;17147:2265:27;;;;;;32687:67;;17551:17;;938:15711:28;17616:24:27;17551:17;;;938:15711:28;17570:14:27;17495:91;17570:14;17495:91;32687:67;17570:14;;938:15711:28;17551:17:27;17495:91;;;;;;;;;;;;:::i;:::-;;938:15711:28;;;17495:91:27;;;;;;:::i;:::-;17616:14;:24;938:15711:28;-1:-1:-1;;;;;938:15711:28;;;;17886:1229:27;;;;;;;;-1:-1:-1;17886:1229:27;;;;;;32687:67;17886:1229;;;;;19153:8;;938:15711:28;;;19153:31:27;;17147:2265;19153:72;;;;;17147:2265;19149:205;;;-1:-1:-1;938:15711:28;;;;-1:-1:-1;;938:15711:28;4020:413:0;;;938:15711:28:o;19149:205:27:-;19297:41;;:::i;:::-;938:15711:28;19252:87:27;32687:67;938:15711:28;19252:87:27;;;-1:-1:-1;;;19252:87:27;;17495:91;19252:87;;;:::i;19153:72::-;17886:1229;;19204:2;17886:1229;;;;1666:4;;19188:37;19153:72;;;:31;32687:67;19165:19;;;-1:-1:-1;19153:31:27;;;1611:551:26;;1725:1;-1:-1:-1;1703:62:26;;1914:95;-1:-1:-1;;938:15711:28;;2106:49:26;;1611:551::o;1703:62::-;1742:12;938:15711:28;1742:12:26;:::o;2471:661::-;2587:113;-1:-1:-1;2587:113:26;;;-1:-1:-1;2587:113:26;938:15711:28;;;;;2838:36:26;2834:241;;3107:16;3099:25;3107:16;3091:34;3107:16;938:15711:28;;;;3107:16:26;-1:-1:-1;;938:15711:28;;348:8:26;2834:241;2971:18;:22;348:8;;938:15711:28;;-1:-1:-1;;;3030:34:26;;348:8;3030:34;;;348:8;;;;;938:15711:28;348:8:26;938:15711:28;;;348:8:26;;;3030:34;348:8;;938:15711:28;;-1:-1:-1;;;348:8:26;;;;;;;;;;;938:15711:28;348:8:26;938:15711:28;;;348:8:26;;3358:267:17;1390:66;3481:46;;1390:66;;3550:15;;;:::i;3477:142::-;938:15711:28;;;-1:-1:-1;6126:13:21;1390:66:17;;;;;;;;;;;;3477:142;1390:66;;;;;;;938:15711:28;;;1390:66:17;;938:15711:28;;;1390:66:17;;;;;;;;;;;;;;;;;;;:::i;:::-;6126:13:21;1390:66:17;;;;;-1:-1:-1;1390:66:17;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:17;;;;;;;;;;-1:-1:-1;;1390:66:17;;;-1:-1:-1;1390:66:17;;;;;;;;-1:-1:-1;1390:66:17;;;;-1:-1:-1;;;;1390:66:17;;;;;-1:-1:-1;1390:66:17;;;;;;;;3358:267;1390:66;3481:46;;1390:66;;3550:15;;;:::i;3477:142::-;938:15711:28;;;-1:-1:-1;6584:16:21;1390:66:17;;;;;;;;;;;;3477:142;1390:66;;;;;;;938:15711:28;;;1390:66:17;;938:15711:28;;;1390:66:17;;;;;;;;;;;;;;;;;;:::i;:::-;6584:16:21;1390:66:17;;;;;-1:-1:-1;1390:66:17;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:17;;;;;;;;;;;;;;;;21224:517:27;21398:19;;21394:76;;21416:1;938:15711:28;;;;;;:::i;:::-;;;;;;;;;;;;;1666:3:0;938:15711:28;;1680:15:0;;1676:67;;21224:517:27;938:15711:28;1775:28:0;21625:33:27;938:15711:28;1768:36:0;1775:28;;938:15711:28;;;;1775:28:0;938:15711:28;;;;1768:36:0;938:15711:28;1817:50:0;-1:-1:-1;;;;;938:15711:28;;:::i;:::-;;;1817:50:0;938:15711:28;-1:-1:-1;;;;;938:15711:28;;;;1817:50:0;;938:15711:28;1817:50:0;;;;938:15711:28;;;;;;1817:50:0;938:15711:28;;;1817:50:0;;938:15711:28;;;;;21625:33:27;:15;:33;:71;;;;;21224:517;21608:88;938:15711:28;;-1:-1:-1;;;;;938:15711:28;;;;21224:517:27;:::o;21625:71::-;938:15711:28;21662:34:27;;-1:-1:-1;938:15711:28;;;;21662:34:27;21625:15;21662:34;;21625:71;;;1676:67:0;-1:-1:-1;938:15711:28;1676:67:0;;21394:76:27;21433:26;21416:1;21433:26;21416:1;21433:26;:::o;3205:281:0:-;3287:193;;;;;;;3205:281;:::o;2078:378:17:-;2661:4;2625:40;;2679:11;2688:2;2679:11;;2675:69;;938:15711:28;;;;;;;:::i;:::-;2311:2:17;938:15711:28;;;;;;;;;;;2324:106:17;;;2078:378;:::o;2675:69::-;2713:20;-1:-1:-1;2713:20:17;;-1:-1:-1;2713:20:17", "linkReferences": {}, "immutableReferences": { "2617": [{ "start": 16344, "length": 32 }], "2619": [{ "start": 16533, "length": 32 }], "2621": [{ "start": 16297, "length": 32 }], "2623": [{ "start": 16423, "length": 32 }], "2625": [{ "start": 16461, "length": 32 }], "2628": [{ "start": 5313, "length": 32 }], "2631": [{ "start": 5354, "length": 32 }], "8494": [{ "start": 12800, "length": 32 }, { "start": 14319, "length": 32 }, { "start": 14410, "length": 32 }, { "start": 14863, "length": 32 }, { "start": 15045, "length": 32 }, { "start": 15135, "length": 32 }, { "start": 15411, "length": 32 }, { "start": 15593, "length": 32 }, { "start": 15683, "length": 32 }, { "start": 15959, "length": 32 }] } }, "methodIdentifiers": { "_accountValidation(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256))": "69683cfa", "_paymasterValidation(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256))": "21e60b37", "_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)": "c579f76b", "addStake(uint32)": "0396cb60", "balanceOf(address)": "70a08231", "binarySearchCallGasLimit(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)[],((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes),address,uint256,uint256,uint256)": "7472949c", "binarySearchPaymasterVerificationGasLimit(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)[],((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes),address,uint256,uint256,uint256)": "03d1dcaf", "binarySearchVerificationGasLimit(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)[],((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes),address,uint256,uint256,uint256)": "76ad6123", "delegateAndRevert(address,bytes)": "850aaf62", "depositTo(address)": "b760faf9", "eip712Domain()": "84b0196e", "getDepositInfo(address)": "5287ce12", "getDomainSeparatorV4()": "13c65a6e", "getNonce(address,uint192)": "35567e1a", "getPackedUserOpTypeHash()": "154e58dc", "getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "22cdde4c", "incrementNonce(uint192)": "0bd28e3b", "innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)": "0da82661", "nonceSequenceNumber(address,uint192)": "1b2e01b8", "senderCreator()": "09ccb880", "simulateCall(address,bytes,uint256)": "f7e426e8", "simulateCallAndRevert(address,bytes,uint256)": "44403473", "simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)": "97b2dcb9", "simulateHandleOpBulk((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[])": "0dbfc6bd", "simulateHandleOpLast((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[])": "263934db", "simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "c3bce009", "simulateValidationBulk((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[])": "30ec25d1", "simulateValidationLast((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[])": "fe2171cb", "unlockStake()": "bb9fe6bf", "withdrawStake(address)": "c23a5cea", "withdrawTo(address,uint256)": "205c2878" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"CallPhaseReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"ret\",\"type\":\"bytes\"}],\"name\":\"DelegateAndRevert\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailedOp\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"inner\",\"type\":\"bytes\"}],\"name\":\"FailedOpWithRevert\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"PostOpReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SenderAddressResult\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"}],\"name\":\"SignatureValidationFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"name\":\"SimulationOutOfGas\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"remainingGas\",\"type\":\"uint256\"}],\"name\":\"innerCallResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"}],\"name\":\"AccountDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"BeforeExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalDeposit\",\"type\":\"uint256\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"PostOpRevertReason\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"}],\"name\":\"SignatureAggregatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalStaked\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"name\":\"StakeLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawTime\",\"type\":\"uint256\"}],\"name\":\"StakeUnlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"StakeWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualGasUsed\",\"type\":\"uint256\"}],\"name\":\"UserOperationEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"UserOperationPrefundTooLow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"UserOperationRevertReason\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"}],\"name\":\"_accountValidation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"}],\"name\":\"_paymasterValidation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"validatePaymasterPrepayment\",\"type\":\"bool\"}],\"name\":\"_validatePrepayment\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"}],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchCallGasLimit\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.TargetCallResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchPaymasterVerificationGasLimit\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.TargetCallResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchVerificationGasLimit\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.TargetCallResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"delegateAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"depositTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getDepositInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"staked\",\"type\":\"bool\"},{\"internalType\":\"uint112\",\"name\":\"stake\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"withdrawTime\",\"type\":\"uint48\"}],\"internalType\":\"struct IStakeManager.DepositInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainSeparatorV4\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPackedUserOpTypeHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"}],\"name\":\"getUserOpHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"incrementNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"opInfo\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preGas\",\"type\":\"uint256\"}],\"name\":\"innerHandleOp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"\",\"type\":\"uint192\"}],\"name\":\"nonceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"senderCreator\",\"outputs\":[{\"internalType\":\"contract ISenderCreator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"simulateCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"simulateCallAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"name\":\"simulateHandleOp\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"ops\",\"type\":\"tuple[]\"}],\"name\":\"simulateHandleOpBulk\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"ops\",\"type\":\"tuple[]\"}],\"name\":\"simulateHandleOpLast\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"}],\"name\":\"simulateValidation\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"}],\"name\":\"simulateValidationBulk\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"}],\"name\":\"simulateValidationLast\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unlockStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"}],\"name\":\"withdrawStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"withdrawAmount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"FailedOp(uint256,string)\":[{\"params\":{\"opIndex\":\"- Index into the array of ops to the failed one (in simulateValidation, this is always zero).\",\"reason\":\"- Revert reason. The string starts with a unique code \\\"AAmn\\\", where \\\"m\\\" is \\\"1\\\" for factory, \\\"2\\\" for account and \\\"3\\\" for paymaster issues, so a failure can be attributed to the correct entity.\"}}],\"FailedOpWithRevert(uint256,string,bytes)\":[{\"details\":\"note that inner is truncated to 2048 bytes\",\"params\":{\"inner\":\"- data from inner cought revert reason\",\"opIndex\":\"- Index into the array of ops to the failed one (in simulateValidation, this is always zero).\",\"reason\":\"- Revert reason. see FailedOp(uint256,string), above\"}}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SignatureValidationFailed(address)\":[{\"params\":{\"aggregator\":\"The aggregator that failed to verify the signature\"}}]},\"events\":{\"AccountDeployed(bytes32,address,address,address)\":{\"params\":{\"factory\":\"- The factory used to deploy this account (in the initCode)\",\"paymaster\":\"- The paymaster used by this UserOp\",\"sender\":\"- The account that is deployed\",\"userOpHash\":\"- The userOp that deployed this account. UserOperationEvent will follow.\"}},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"PostOpRevertReason(bytes32,address,uint256,bytes)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"revertReason\":\"- The return bytes from the reverted call to \\\"postOp\\\".\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}},\"SignatureAggregatorChanged(address)\":{\"params\":{\"aggregator\":\"- The aggregator used for the following UserOperationEvents.\"}},\"UserOperationEvent(bytes32,address,address,uint256,bool,uint256,uint256)\":{\"params\":{\"actualGasCost\":\"- Actual amount paid (by account or paymaster) for this UserOperation.\",\"actualGasUsed\":\"- Total gas used by this UserOperation (including preVerification, creation, validation and execution).\",\"nonce\":\"- The nonce value from the request.\",\"paymaster\":\"- If non-null, the paymaster that pays for this request.\",\"sender\":\"- The account that generates this request.\",\"success\":\"- True if the sender transaction succeeded, false if reverted.\",\"userOpHash\":\"- Unique identifier for the request (hash its entire content, except signature).\"}},\"UserOperationPrefundTooLow(bytes32,address,uint256)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"revertReason\":\"- The return bytes from the reverted \\\"callData\\\" call.\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}}},\"kind\":\"dev\",\"methods\":{\"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)\":{\"params\":{\"opIndex\":\"- The index of this userOp into the \\\"opInfos\\\" array.\",\"outOpInfo\":\"- The empty unpacked in-memory UserOperation structure that will be filled in here.\",\"userOp\":\"- The packed calldata UserOperation structure to validate.\"},\"returns\":{\"paymasterValidationData\":\"- The paymaster's validationData.\",\"validationData\":\" - The account's validationData.\"}},\"addStake(uint32)\":{\"params\":{\"unstakeDelaySec\":\"- The new lock duration before the deposit can be withdrawn.\"}},\"balanceOf(address)\":{\"params\":{\"account\":\"- The account to query.\"},\"returns\":{\"_0\":\"- The deposit (for gas payment) of the account.\"}},\"delegateAndRevert(address,bytes)\":{\"details\":\"calling this method, the EntryPoint will make a delegatecall to the given data, and report (via revert) the result. The method always revert, so is only useful off-chain for dry run calls, in cases where state-override to replace actual EntryPoint code is less convenient.\",\"params\":{\"data\":\"data to pass to target in a delegatecall\",\"target\":\"a target contract to make a delegatecall from entrypoint\"}},\"depositTo(address)\":{\"params\":{\"account\":\"- The account to add to.\"}},\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"getDepositInfo(address)\":{\"params\":{\"account\":\"- The account to query.\"},\"returns\":{\"info\":\" - Full deposit information of given account.\"}},\"getNonce(address,uint192)\":{\"params\":{\"key\":\"the high 192 bit of the nonce\",\"sender\":\"the account address\"},\"returns\":{\"nonce\":\"a full nonce to pass for next UserOp with this sender.\"}},\"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"params\":{\"userOp\":\"- The user operation to generate the request ID for.\"},\"returns\":{\"_0\":\"hash the hash of this UserOperation\"}},\"incrementNonce(uint192)\":{\"params\":{\"key\":\"- the \\\"nonce key\\\" to increment the \\\"nonce sequence\\\" for.\"}},\"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)\":{\"params\":{\"callData\":\"- The callData to execute.\",\"context\":\"- The context bytes.\",\"opInfo\":\"- The UserOpInfo struct.\"},\"returns\":{\"actualGasCost\":\"- the actual cost in eth this UserOperation paid for gas\"}},\"simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)\":{\"params\":{\"op\":\"The UserOperation to simulate.\"},\"returns\":{\"_0\":\"the execution result structure\"}},\"simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"details\":\"The node must also verify it doesn't use banned opcodes, and that it doesn't reference storage outside the account's data.\",\"params\":{\"userOp\":\"- The user operation to validate.\"},\"returns\":{\"_0\":\"the validation result structure\"}},\"withdrawStake(address)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\"}},\"withdrawTo(address,uint256)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\",\"withdrawAmount\":\"- The amount to withdraw.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"FailedOp(uint256,string)\":[{\"notice\":\"A custom revert error of handleOps andhandleAggregatedOps, to identify the offending op. Should be caught in off-chain handleOps/handleAggregatedOps simulation and not happen on-chain. Useful for mitigating DoS attempts against batchers or for troubleshooting of factory/account/paymaster reverts. NOTE: If simulateValidation passes successfully, there should be no reason for handleOps to fail on it.\"}],\"FailedOpWithRevert(uint256,string,bytes)\":[{\"notice\":\"A custom revert error of handleOps and handleAggregatedOps, to report a revert by account or paymaster.\"}],\"SignatureValidationFailed(address)\":[{\"notice\":\"Error case when a signature aggregator fails to verify the aggregated signature it had created.\"}]},\"events\":{\"AccountDeployed(bytes32,address,address,address)\":{\"notice\":\"Account \\\"sender\\\" was deployed.\"},\"BeforeExecution()\":{\"notice\":\"An event emitted by handleOps() and handleAggregatedOps(), before starting the execution loop. Any event emitted before this event, is part of the validation.\"},\"PostOpRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation Paymaster's \\\"postOp\\\" call reverted with non-zero length.\"},\"SignatureAggregatorChanged(address)\":{\"notice\":\"Signature aggregator used by the following UserOperationEvents within this bundle.\"},\"UserOperationEvent(bytes32,address,address,uint256,bool,uint256,uint256)\":{\"notice\":\"An event emitted after each successful request.\"},\"UserOperationPrefundTooLow(bytes32,address,uint256)\":{\"notice\":\"UserOp consumed more than prefund. The UserOperation is reverted, and no refund is made.\"},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation \\\"callData\\\" reverted with non-zero length.\"}},\"kind\":\"user\",\"methods\":{\"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)\":{\"notice\":\"Validate account and paymaster (if defined) and also make sure total validation doesn't exceed verificationGasLimit. This method is called off-chain (simulateValidation()) and on-chain (from handleOps)\"},\"addStake(uint32)\":{\"notice\":\"Add to the account's stake - amount and delay any pending unstake is first cancelled.\"},\"balanceOf(address)\":{\"notice\":\"Get account balance.\"},\"constructor\":{\"notice\":\"simulation contract should not be deployed, and specifically, accounts should not trust it as entrypoint, since the simulation functions don't check the signatures\"},\"delegateAndRevert(address,bytes)\":{\"notice\":\"Helper method for dry-run testing.\"},\"depositTo(address)\":{\"notice\":\"Add to the deposit of the given account.\"},\"getDepositInfo(address)\":{\"notice\":\"Get deposit info.\"},\"getNonce(address,uint192)\":{\"notice\":\"Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order.\"},\"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Generate a request Id - unique identifier for this request. The request ID is a hash over the content of the userOp (except the signature), entrypoint address, chainId and (optionally) 7702 delegate address\"},\"incrementNonce(uint192)\":{\"notice\":\"Manually increment the nonce of the sender. This method is exposed just for completeness.. Account does NOT need to call it, neither during validation, nor elsewhere, as the EntryPoint will update the nonce regardless. Possible use-case is call it with various keys to \\\"initialize\\\" their nonces to one, so that future UserOperations will not pay extra for the first transaction with a given key.\"},\"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)\":{\"notice\":\"Inner function to handle a UserOperation. Must be declared \\\"external\\\" to open a call context, but it can only be called by handleOps.\"},\"nonceSequenceNumber(address,uint192)\":{\"notice\":\"The next valid sequence number for a given nonce key.\"},\"senderCreator()\":{\"notice\":\"Retrieves the immutable SenderCreator contract which is responsible for deployment of sender contracts.\"},\"simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)\":{\"notice\":\"Simulate full execution of a UserOperation (including both validation and target execution) It performs full validation of the UserOperation, but ignores signature error. An optional target address is called after the userop succeeds, and its value is returned (before the entire call is reverted). Note that in order to collect the the success/failure of the target call, it must be executed with trace enabled to track the emitted events.\"},\"simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Simulate a call to account.validateUserOp and paymaster.validatePaymasterUserOp.\"},\"unlockStake()\":{\"notice\":\"Attempt to unlock the stake. The value can be withdrawn (using withdrawStake) after the unstake delay.\"},\"withdrawStake(address)\":{\"notice\":\"Withdraw from the (unlocked) stake. Must first call unlockStake and wait for the unstakeDelay to pass.\"},\"withdrawTo(address,uint256)\":{\"notice\":\"Withdraw from the deposit.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/v08/EntryPointSimulations.sol\":\"EntryPointSimulations08\"},\"evmVersion\":\"cancun\",\"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-v8/contracts/core/Helpers.sol\":{\"keccak256\":\"0x42b948af5fa14a96149611595df1186800c7558b2de8762e4b45a7c45c16f65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737a7908131ece48a5df1faaa3d0be79c42792379c27f5615dae6aa14cd68c2f\",\"dweb:/ipfs/QmPAxGMDxuek7XWSUVfZpvYE8bustfsjTDVDK8hmE88e1f\"]},\"lib/account-abstraction-v8/contracts/core/NonceManager.sol\":{\"keccak256\":\"0x83fc7ce846063465d394b690c377beba26806e7564c77127d8a91b77ca64597c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ed8c369c25b26518b1c8ca43c6c3dddf7ea07c073f2b92408743f61e655dc01\",\"dweb:/ipfs/QmZuWagAa78Wvi8RKD1J1E48YxxW8SJxB6aKeT3EFz72HE\"]},\"lib/account-abstraction-v8/contracts/core/StakeManager.sol\":{\"keccak256\":\"0x98b727e4093595bf57eb09d45a9a181a26fca46591fc58601e8eae894d8f931a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://99d933ae3257d8aad0d32a60f021e37dd0dcedcd94edab905ec7523f34656ef2\",\"dweb:/ipfs/Qme8P8tZ37cexrxjTgrLoXXgbW1nqH8rQp5SLTW99aFsi5\"]},\"lib/account-abstraction-v8/contracts/core/UserOperationLib.sol\":{\"keccak256\":\"0x2d3450fa3906422b6fdbbe7f2a2a9e36d6f3751bfa9cd80af88befd6a5be78c1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://292a0ef5295d7f2016e99d2c228958f7f6de94f5bd9652d8696af15af0094a99\",\"dweb:/ipfs/QmVg4fhkZbUB7AopGcaVPmTdvChq7W9ga8fjrc3XaJNTM2\"]},\"lib/account-abstraction-v8/contracts/interfaces/IAccount.sol\":{\"keccak256\":\"0x1030b464b49ce80da46b5b6c9af357c2d526f308de61391db6a4ec767d33b864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://671945f8e18e7305797312b5a209506be3c9bd1d9b9b561c1e8863bccfa61319\",\"dweb:/ipfs/QmVanLK5Aenrb7J94doiE1C9oHwo86jvv8NrpDeNHwvnii\"]},\"lib/account-abstraction-v8/contracts/interfaces/IAccountExecute.sol\":{\"keccak256\":\"0xc313afc1e1b6823126be317611c3a868dc69eb29df43c658464b7188890c40e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3c2a7fac3764500a7e57cf4b9a610b14125edc4d87371772ec1b3407e89eced\",\"dweb:/ipfs/Qmc2Au3LvywAB5uaEc8ttuGVRZU4Mrgn1XWyqDa2zxtCHp\"]},\"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/IPaymaster.sol\":{\"keccak256\":\"0x6be37abc0760d60a41124e2e3f46185a0d3df48b32bd73174790981f76fbdae8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c144ba15a63883c7da41fc0729a46108f7d5487dbac2da0bde00aed67f5a2f00\",\"dweb:/ipfs/Qmdh7MzQmCQLh7wz719xMuG2yvMUkKDVwyN44P7pLofJfS\"]},\"lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol\":{\"keccak256\":\"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570\",\"dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w\"]},\"lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85\",\"dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz\"]},\"lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79\",\"dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK\"]},\"lib/account-abstraction-v8/contracts/utils/Exec.sol\":{\"keccak256\":\"0x9c724ee22011193ea7f92d3c3c467ee6aa27139d3ddc225c7f1254d241e6ccdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96cc246fe944a212cbb9ba82065b2d380ec80954fcdb5d8d982b476bd5b72868\",\"dweb:/ipfs/QmZ25eFixEhukbfWGz5TBjsp7YohxUqD5i2rxhaghfvHt8\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79\",\"dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/v08/Eip7702Support.sol\":{\"keccak256\":\"0x97dcf8077b21e11a00d0f4f04dc057a776257170f036d3d154119e5f210e8683\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb756013b769ae894aa8a5286b4a53964325944b1ef20114bcb0c62deb30119b\",\"dweb:/ipfs/QmSKopMsb23HAB8Dt7ahjenh7oBBDcFWewqLr615dpuLcA\"]},\"src/v08/EntryPoint.sol\":{\"keccak256\":\"0x440c3d8bc6bb39fa808c10bd677b1a1522e3ef42cb396ad6a3f43b64047f5851\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f3585dc925650135eb90ff0d75498eb7022e81678cb4747e9329a4fe98648f24\",\"dweb:/ipfs/QmcRMabUCajJ3BMejvxcKm7WXHgFrfNh2BA5We7KHkWTU9\"]},\"src/v08/EntryPointSimulations.sol\":{\"keccak256\":\"0x9ecd2875d386b94c703d6fae5d7184f4374c410bbffad03f22773ecda8e07554\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://90efcf58189147bc48167f776dae7c75050ab40b4980176c663a58cc6cc555aa\",\"dweb:/ipfs/QmQ651WqHq5xV1fLe22nYGdhNEFQnrMB1o8N5dxm4naukQ\"]},\"src/v08/IEntryPoint.sol\":{\"keccak256\":\"0x6ef27685ec58a67709de077a73667b0184aeb123643e7ef21ca9c95ad0122c71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e69b2738ebf45d63e7607ef67293d897ce08a39f499b0cb0234733b9f1bac1\",\"dweb:/ipfs/QmdxBsJtzPiyWuGuxf3NFynrcLibXXrXf1CZ79HNaRnh7K\"]},\"src/v08/IEntryPointSimulations.sol\":{\"keccak256\":\"0x3486ad6d4e9ef01e1809b43b4bf3dace06e5733ee7bec11febd7309d4c605236\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://79b06eb4c98ecaebf7cf2c54322b7fe07b418c828169536c380820d4bdf56abb\",\"dweb:/ipfs/Qmdiagf27geeJ73wPkYCRErpoHUwgFLvq24aJ3HBD5rM8L\"]},\"src/v08/SenderCreator.sol\":{\"keccak256\":\"0x1e2fb812c446c6041c6d692bbdf1228ad60eec9779ffd7b318e680bb241d71d5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://34db2b82ee8e7140298bcbd1dcabf06b3bbcb60fd597f81b5b9e53b25c30b447\",\"dweb:/ipfs/QmT4WcNu6NCaxxJ6FWGFpjadfXsMPVhgLMQfGWsW9rWZAZ\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.28+commit.7893614a" }, "language": "Solidity", "output": { "abi": [{ "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [{ "internalType": "bytes", "name": "reason", "type": "bytes" }], "type": "error", "name": "CallPhaseReverted" }, { "inputs": [{ "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "ret", "type": "bytes" }], "type": "error", "name": "DelegateAndRevert" }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "internalType": "string", "name": "reason", "type": "string" }], "type": "error", "name": "FailedOp" }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "internalType": "string", "name": "reason", "type": "string" }, { "internalType": "bytes", "name": "inner", "type": "bytes" }], "type": "error", "name": "FailedOpWithRevert" }, { "inputs": [], "type": "error", "name": "InvalidShortString" }, { "inputs": [{ "internalType": "bytes", "name": "returnData", "type": "bytes" }], "type": "error", "name": "PostOpReverted" }, { "inputs": [], "type": "error", "name": "ReentrancyGuardReentrantCall" }, { "inputs": [{ "internalType": "address", "name": "sender", "type": "address" }], "type": "error", "name": "SenderAddressResult" }, { "inputs": [{ "internalType": "address", "name": "aggregator", "type": "address" }], "type": "error", "name": "SignatureValidationFailed" }, { "inputs": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }], "type": "error", "name": "SimulationOutOfGas" }, { "inputs": [{ "internalType": "string", "name": "str", "type": "string" }], "type": "error", "name": "StringTooLong" }, { "inputs": [{ "internalType": "uint256", "name": "remainingGas", "type": "uint256" }], "type": "error", "name": "innerCallResult" }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "address", "name": "factory", "type": "address", "indexed": false }, { "internalType": "address", "name": "paymaster", "type": "address", "indexed": false }], "type": "event", "name": "AccountDeployed", "anonymous": false }, { "inputs": [], "type": "event", "name": "BeforeExecution", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "totalDeposit", "type": "uint256", "indexed": false }], "type": "event", "name": "Deposited", "anonymous": false }, { "inputs": [], "type": "event", "name": "EIP712DomainChanged", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "nonce", "type": "uint256", "indexed": false }, { "internalType": "bytes", "name": "revertReason", "type": "bytes", "indexed": false }], "type": "event", "name": "PostOpRevertReason", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "aggregator", "type": "address", "indexed": true }], "type": "event", "name": "SignatureAggregatorChanged", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "totalStaked", "type": "uint256", "indexed": false }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256", "indexed": false }], "type": "event", "name": "StakeLocked", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "withdrawTime", "type": "uint256", "indexed": false }], "type": "event", "name": "StakeUnlocked", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "address", "name": "withdrawAddress", "type": "address", "indexed": false }, { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false }], "type": "event", "name": "StakeWithdrawn", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "address", "name": "paymaster", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "nonce", "type": "uint256", "indexed": false }, { "internalType": "bool", "name": "success", "type": "bool", "indexed": false }, { "internalType": "uint256", "name": "actualGasCost", "type": "uint256", "indexed": false }, { "internalType": "uint256", "name": "actualGasUsed", "type": "uint256", "indexed": false }], "type": "event", "name": "UserOperationEvent", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "nonce", "type": "uint256", "indexed": false }], "type": "event", "name": "UserOperationPrefundTooLow", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "nonce", "type": "uint256", "indexed": false }, { "internalType": "bytes", "name": "revertReason", "type": "bytes", "indexed": false }], "type": "event", "name": "UserOperationRevertReason", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "address", "name": "withdrawAddress", "type": "address", "indexed": false }, { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false }], "type": "event", "name": "Withdrawn", "anonymous": false }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct EntryPoint.UserOpInfo", "name": "outOpInfo", "type": "tuple", "components": [{ "internalType": "struct EntryPoint.MemoryUserOp", "name": "mUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "address", "name": "paymaster", "type": "address" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }] }, { "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "contextOffset", "type": "uint256" }, { "internalType": "uint256", "name": "preOpGas", "type": "uint256" }] }], "stateMutability": "nonpayable", "type": "function", "name": "_accountValidation", "outputs": [{ "internalType": "uint256", "name": "validationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }] }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct EntryPoint.UserOpInfo", "name": "outOpInfo", "type": "tuple", "components": [{ "internalType": "struct EntryPoint.MemoryUserOp", "name": "mUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "address", "name": "paymaster", "type": "address" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }] }, { "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "contextOffset", "type": "uint256" }, { "internalType": "uint256", "name": "preOpGas", "type": "uint256" }] }], "stateMutability": "nonpayable", "type": "function", "name": "_paymasterValidation", "outputs": [{ "internalType": "uint256", "name": "validationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }] }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct EntryPoint.UserOpInfo", "name": "outOpInfo", "type": "tuple", "components": [{ "internalType": "struct EntryPoint.MemoryUserOp", "name": "mUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "address", "name": "paymaster", "type": "address" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }] }, { "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "contextOffset", "type": "uint256" }, { "internalType": "uint256", "name": "preOpGas", "type": "uint256" }] }, { "internalType": "bool", "name": "validatePaymasterPrepayment", "type": "bool" }], "stateMutability": "nonpayable", "type": "function", "name": "_validatePrepayment", "outputs": [{ "internalType": "uint256", "name": "validationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }] }, { "inputs": [{ "internalType": "uint32", "name": "unstakeDelaySec", "type": "uint32" }], "stateMutability": "payable", "type": "function", "name": "addStake" }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "stateMutability": "view", "type": "function", "name": "balanceOf", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [{ "internalType": "struct SimulationArgs[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "struct PackedUserOperation", "name": "op", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }] }, { "internalType": "struct SimulationArgs", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "struct PackedUserOperation", "name": "op", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }] }, { "internalType": "address", "name": "entryPoint", "type": "address" }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchCallGasLimit", "outputs": [{ "internalType": "struct IEntryPointSimulations.TargetCallResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }] }, { "inputs": [{ "internalType": "struct SimulationArgs[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "struct PackedUserOperation", "name": "op", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }] }, { "internalType": "struct SimulationArgs", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "struct PackedUserOperation", "name": "op", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }] }, { "internalType": "address", "name": "entryPoint", "type": "address" }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchPaymasterVerificationGasLimit", "outputs": [{ "internalType": "struct IEntryPointSimulations.TargetCallResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }] }, { "inputs": [{ "internalType": "struct SimulationArgs[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "struct PackedUserOperation", "name": "op", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }] }, { "internalType": "struct SimulationArgs", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "struct PackedUserOperation", "name": "op", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }] }, { "internalType": "address", "name": "entryPoint", "type": "address" }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchVerificationGasLimit", "outputs": [{ "internalType": "struct IEntryPointSimulations.TargetCallResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }] }, { "inputs": [{ "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }], "stateMutability": "nonpayable", "type": "function", "name": "delegateAndRevert" }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "stateMutability": "payable", "type": "function", "name": "depositTo" }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "eip712Domain", "outputs": [{ "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" }] }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "stateMutability": "view", "type": "function", "name": "getDepositInfo", "outputs": [{ "internalType": "struct IStakeManager.DepositInfo", "name": "info", "type": "tuple", "components": [{ "internalType": "uint256", "name": "deposit", "type": "uint256" }, { "internalType": "bool", "name": "staked", "type": "bool" }, { "internalType": "uint112", "name": "stake", "type": "uint112" }, { "internalType": "uint32", "name": "unstakeDelaySec", "type": "uint32" }, { "internalType": "uint48", "name": "withdrawTime", "type": "uint48" }] }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getDomainSeparatorV4", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] }, { "inputs": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint192", "name": "key", "type": "uint192" }], "stateMutability": "view", "type": "function", "name": "getNonce", "outputs": [{ "internalType": "uint256", "name": "nonce", "type": "uint256" }] }, { "inputs": [], "stateMutability": "pure", "type": "function", "name": "getPackedUserOpTypeHash", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] }, { "inputs": [{ "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "view", "type": "function", "name": "getUserOpHash", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] }, { "inputs": [{ "internalType": "uint192", "name": "key", "type": "uint192" }], "stateMutability": "nonpayable", "type": "function", "name": "incrementNonce" }, { "inputs": [{ "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "struct EntryPoint.UserOpInfo", "name": "opInfo", "type": "tuple", "components": [{ "internalType": "struct EntryPoint.MemoryUserOp", "name": "mUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "address", "name": "paymaster", "type": "address" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }] }, { "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "contextOffset", "type": "uint256" }, { "internalType": "uint256", "name": "preOpGas", "type": "uint256" }] }, { "internalType": "bytes", "name": "context", "type": "bytes" }, { "internalType": "uint256", "name": "preGas", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "innerHandleOp", "outputs": [{ "internalType": "uint256", "name": "actualGasCost", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }] }, { "inputs": [{ "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint192", "name": "", "type": "uint192" }], "stateMutability": "view", "type": "function", "name": "nonceSequenceNumber", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "senderCreator", "outputs": [{ "internalType": "contract ISenderCreator", "name": "", "type": "address" }] }, { "inputs": [{ "internalType": "address", "name": "entryPoint", "type": "address" }, { "internalType": "bytes", "name": "payload", "type": "bytes" }, { "internalType": "uint256", "name": "gas", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateCall", "outputs": [{ "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "result", "type": "bytes" }] }, { "inputs": [{ "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "uint256", "name": "gas", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateCallAndRevert" }, { "inputs": [{ "internalType": "struct PackedUserOperation", "name": "op", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateHandleOp", "outputs": [{ "internalType": "struct IEntryPointSimulations.ExecutionResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "paid", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "bool", "name": "targetSuccess", "type": "bool" }, { "internalType": "bytes", "name": "targetResult", "type": "bytes" }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "ops", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateHandleOpBulk", "outputs": [{ "internalType": "struct IEntryPointSimulations.ExecutionResult[]", "name": "", "type": "tuple[]", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "paid", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "bool", "name": "targetSuccess", "type": "bool" }, { "internalType": "bytes", "name": "targetResult", "type": "bytes" }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "ops", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateHandleOpLast", "outputs": [{ "internalType": "struct IEntryPointSimulations.ExecutionResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "paid", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "bool", "name": "targetSuccess", "type": "bool" }, { "internalType": "bytes", "name": "targetResult", "type": "bytes" }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateValidation", "outputs": [{ "internalType": "struct IEntryPointSimulations.ValidationResult", "name": "", "type": "tuple", "components": [{ "internalType": "struct IEntryPoint.ReturnInfo", "name": "returnInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterContext", "type": "bytes" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "senderInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "factoryInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "paymasterInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IEntryPointSimulations.AggregatorStakeInfo", "name": "aggregatorInfo", "type": "tuple", "components": [{ "internalType": "address", "name": "aggregator", "type": "address" }, { "internalType": "struct IStakeManager.StakeInfo", "name": "stakeInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }] }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateValidationBulk", "outputs": [{ "internalType": "struct IEntryPointSimulations.ValidationResult[]", "name": "", "type": "tuple[]", "components": [{ "internalType": "struct IEntryPoint.ReturnInfo", "name": "returnInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterContext", "type": "bytes" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "senderInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "factoryInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "paymasterInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IEntryPointSimulations.AggregatorStakeInfo", "name": "aggregatorInfo", "type": "tuple", "components": [{ "internalType": "address", "name": "aggregator", "type": "address" }, { "internalType": "struct IStakeManager.StakeInfo", "name": "stakeInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }] }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateValidationLast", "outputs": [{ "internalType": "struct IEntryPointSimulations.ValidationResult", "name": "", "type": "tuple", "components": [{ "internalType": "struct IEntryPoint.ReturnInfo", "name": "returnInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterContext", "type": "bytes" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "senderInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "factoryInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "paymasterInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IEntryPointSimulations.AggregatorStakeInfo", "name": "aggregatorInfo", "type": "tuple", "components": [{ "internalType": "address", "name": "aggregator", "type": "address" }, { "internalType": "struct IStakeManager.StakeInfo", "name": "stakeInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }] }] }] }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "unlockStake" }, { "inputs": [{ "internalType": "address payable", "name": "withdrawAddress", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "withdrawStake" }, { "inputs": [{ "internalType": "address payable", "name": "withdrawAddress", "type": "address" }, { "internalType": "uint256", "name": "withdrawAmount", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "withdrawTo" }, { "inputs": [], "stateMutability": "payable", "type": "receive" }], "devdoc": { "kind": "dev", "methods": { "_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)": { "params": { "opIndex": "- The index of this userOp into the \"opInfos\" array.", "outOpInfo": "- The empty unpacked in-memory UserOperation structure that will be filled in here.", "userOp": "- The packed calldata UserOperation structure to validate." }, "returns": { "paymasterValidationData": "- The paymaster's validationData.", "validationData": " - The account's validationData." } }, "addStake(uint32)": { "params": { "unstakeDelaySec": "- The new lock duration before the deposit can be withdrawn." } }, "balanceOf(address)": { "params": { "account": "- The account to query." }, "returns": { "_0": "- The deposit (for gas payment) of the account." } }, "delegateAndRevert(address,bytes)": { "details": "calling this method, the EntryPoint will make a delegatecall to the given data, and report (via revert) the result. The method always revert, so is only useful off-chain for dry run calls, in cases where state-override to replace actual EntryPoint code is less convenient.", "params": { "data": "data to pass to target in a delegatecall", "target": "a target contract to make a delegatecall from entrypoint" } }, "depositTo(address)": { "params": { "account": "- The account to add to." } }, "eip712Domain()": { "details": "See {IERC-5267}." }, "getDepositInfo(address)": { "params": { "account": "- The account to query." }, "returns": { "info": " - Full deposit information of given account." } }, "getNonce(address,uint192)": { "params": { "key": "the high 192 bit of the nonce", "sender": "the account address" }, "returns": { "nonce": "a full nonce to pass for next UserOp with this sender." } }, "getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "params": { "userOp": "- The user operation to generate the request ID for." }, "returns": { "_0": "hash the hash of this UserOperation" } }, "incrementNonce(uint192)": { "params": { "key": "- the \"nonce key\" to increment the \"nonce sequence\" for." } }, "innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)": { "params": { "callData": "- The callData to execute.", "context": "- The context bytes.", "opInfo": "- The UserOpInfo struct." }, "returns": { "actualGasCost": "- the actual cost in eth this UserOperation paid for gas" } }, "simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)": { "params": { "op": "The UserOperation to simulate." }, "returns": { "_0": "the execution result structure" } }, "simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "details": "The node must also verify it doesn't use banned opcodes, and that it doesn't reference storage outside the account's data.", "params": { "userOp": "- The user operation to validate." }, "returns": { "_0": "the validation result structure" } }, "withdrawStake(address)": { "params": { "withdrawAddress": "- The address to send withdrawn value." } }, "withdrawTo(address,uint256)": { "params": { "withdrawAddress": "- The address to send withdrawn value.", "withdrawAmount": "- The amount to withdraw." } } }, "version": 1 }, "userdoc": { "kind": "user", "methods": { "_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)": { "notice": "Validate account and paymaster (if defined) and also make sure total validation doesn't exceed verificationGasLimit. This method is called off-chain (simulateValidation()) and on-chain (from handleOps)" }, "addStake(uint32)": { "notice": "Add to the account's stake - amount and delay any pending unstake is first cancelled." }, "balanceOf(address)": { "notice": "Get account balance." }, "constructor": { "notice": "simulation contract should not be deployed, and specifically, accounts should not trust it as entrypoint, since the simulation functions don't check the signatures" }, "delegateAndRevert(address,bytes)": { "notice": "Helper method for dry-run testing." }, "depositTo(address)": { "notice": "Add to the deposit of the given account." }, "getDepositInfo(address)": { "notice": "Get deposit info." }, "getNonce(address,uint192)": { "notice": "Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order." }, "getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "notice": "Generate a request Id - unique identifier for this request. The request ID is a hash over the content of the userOp (except the signature), entrypoint address, chainId and (optionally) 7702 delegate address" }, "incrementNonce(uint192)": { "notice": "Manually increment the nonce of the sender. This method is exposed just for completeness.. Account does NOT need to call it, neither during validation, nor elsewhere, as the EntryPoint will update the nonce regardless. Possible use-case is call it with various keys to \"initialize\" their nonces to one, so that future UserOperations will not pay extra for the first transaction with a given key." }, "innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)": { "notice": "Inner function to handle a UserOperation. Must be declared \"external\" to open a call context, but it can only be called by handleOps." }, "nonceSequenceNumber(address,uint192)": { "notice": "The next valid sequence number for a given nonce key." }, "senderCreator()": { "notice": "Retrieves the immutable SenderCreator contract which is responsible for deployment of sender contracts." }, "simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)": { "notice": "Simulate full execution of a UserOperation (including both validation and target execution) It performs full validation of the UserOperation, but ignores signature error. An optional target address is called after the userop succeeds, and its value is returned (before the entire call is reverted). Note that in order to collect the the success/failure of the target call, it must be executed with trace enabled to track the emitted events." }, "simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "notice": "Simulate a call to account.validateUserOp and paymaster.validatePaymasterUserOp." }, "unlockStake()": { "notice": "Attempt to unlock the stake. The value can be withdrawn (using withdrawStake) after the unstake delay." }, "withdrawStake(address)": { "notice": "Withdraw from the (unlocked) stake. Must first call unlockStake and wait for the unstakeDelay to pass." }, "withdrawTo(address,uint256)": { "notice": "Withdraw from the deposit." } }, "version": 1 } }, "settings": { "remappings": ["@account-abstraction-v6/=lib/account-abstraction-v6/contracts/", "@account-abstraction-v7/=lib/account-abstraction-v7/contracts/", "@account-abstraction-v8/=lib/account-abstraction-v8/contracts/", "@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/", "@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/", "@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/", "@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.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/v08/EntryPointSimulations.sol": "EntryPointSimulations08" }, "evmVersion": "cancun", "libraries": {}, "viaIR": true }, "sources": { "lib/account-abstraction-v8/contracts/core/Helpers.sol": { "keccak256": "0x42b948af5fa14a96149611595df1186800c7558b2de8762e4b45a7c45c16f65e", "urls": ["bzz-raw://737a7908131ece48a5df1faaa3d0be79c42792379c27f5615dae6aa14cd68c2f", "dweb:/ipfs/QmPAxGMDxuek7XWSUVfZpvYE8bustfsjTDVDK8hmE88e1f"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/core/NonceManager.sol": { "keccak256": "0x83fc7ce846063465d394b690c377beba26806e7564c77127d8a91b77ca64597c", "urls": ["bzz-raw://7ed8c369c25b26518b1c8ca43c6c3dddf7ea07c073f2b92408743f61e655dc01", "dweb:/ipfs/QmZuWagAa78Wvi8RKD1J1E48YxxW8SJxB6aKeT3EFz72HE"], "license": "GPL-3.0" }, "lib/account-abstraction-v8/contracts/core/StakeManager.sol": { "keccak256": "0x98b727e4093595bf57eb09d45a9a181a26fca46591fc58601e8eae894d8f931a", "urls": ["bzz-raw://99d933ae3257d8aad0d32a60f021e37dd0dcedcd94edab905ec7523f34656ef2", "dweb:/ipfs/Qme8P8tZ37cexrxjTgrLoXXgbW1nqH8rQp5SLTW99aFsi5"], "license": "GPL-3.0" }, "lib/account-abstraction-v8/contracts/core/UserOperationLib.sol": { "keccak256": "0x2d3450fa3906422b6fdbbe7f2a2a9e36d6f3751bfa9cd80af88befd6a5be78c1", "urls": ["bzz-raw://292a0ef5295d7f2016e99d2c228958f7f6de94f5bd9652d8696af15af0094a99", "dweb:/ipfs/QmVg4fhkZbUB7AopGcaVPmTdvChq7W9ga8fjrc3XaJNTM2"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/IAccount.sol": { "keccak256": "0x1030b464b49ce80da46b5b6c9af357c2d526f308de61391db6a4ec767d33b864", "urls": ["bzz-raw://671945f8e18e7305797312b5a209506be3c9bd1d9b9b561c1e8863bccfa61319", "dweb:/ipfs/QmVanLK5Aenrb7J94doiE1C9oHwo86jvv8NrpDeNHwvnii"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/IAccountExecute.sol": { "keccak256": "0xc313afc1e1b6823126be317611c3a868dc69eb29df43c658464b7188890c40e0", "urls": ["bzz-raw://f3c2a7fac3764500a7e57cf4b9a610b14125edc4d87371772ec1b3407e89eced", "dweb:/ipfs/Qmc2Au3LvywAB5uaEc8ttuGVRZU4Mrgn1XWyqDa2zxtCHp"], "license": "MIT" }, "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/IPaymaster.sol": { "keccak256": "0x6be37abc0760d60a41124e2e3f46185a0d3df48b32bd73174790981f76fbdae8", "urls": ["bzz-raw://c144ba15a63883c7da41fc0729a46108f7d5487dbac2da0bde00aed67f5a2f00", "dweb:/ipfs/Qmdh7MzQmCQLh7wz719xMuG2yvMUkKDVwyN44P7pLofJfS"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol": { "keccak256": "0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4", "urls": ["bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570", "dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0", "urls": ["bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85", "dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol": { "keccak256": "0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800", "urls": ["bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79", "dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/utils/Exec.sol": { "keccak256": "0x9c724ee22011193ea7f92d3c3c467ee6aa27139d3ddc225c7f1254d241e6ccdd", "urls": ["bzz-raw://96cc246fe944a212cbb9ba82065b2d380ec80954fcdb5d8d982b476bd5b72868", "dweb:/ipfs/QmZ25eFixEhukbfWGz5TBjsp7YohxUqD5i2rxhaghfvHt8"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/interfaces/IERC5267.sol": { "keccak256": "0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92", "urls": ["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a", "dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/Panic.sol": { "keccak256": "0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a", "urls": ["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a", "dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/ReentrancyGuardTransient.sol": { "keccak256": "0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b", "urls": ["bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79", "dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/ShortStrings.sol": { "keccak256": "0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549", "urls": ["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a", "dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/StorageSlot.sol": { "keccak256": "0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97", "urls": ["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b", "dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/Strings.sol": { "keccak256": "0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed", "urls": ["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0", "dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/TransientSlot.sol": { "keccak256": "0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1", "urls": ["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889", "dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/EIP712.sol": { "keccak256": "0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d", "urls": ["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c", "dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/MessageHashUtils.sol": { "keccak256": "0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575", "urls": ["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e", "dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/Math.sol": { "keccak256": "0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea", "urls": ["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d", "dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SafeCast.sol": { "keccak256": "0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54", "urls": ["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8", "dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SignedMath.sol": { "keccak256": "0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3", "urls": ["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03", "dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"], "license": "MIT" }, "src/v08/Eip7702Support.sol": { "keccak256": "0x97dcf8077b21e11a00d0f4f04dc057a776257170f036d3d154119e5f210e8683", "urls": ["bzz-raw://bb756013b769ae894aa8a5286b4a53964325944b1ef20114bcb0c62deb30119b", "dweb:/ipfs/QmSKopMsb23HAB8Dt7ahjenh7oBBDcFWewqLr615dpuLcA"], "license": "MIT" }, "src/v08/EntryPoint.sol": { "keccak256": "0x440c3d8bc6bb39fa808c10bd677b1a1522e3ef42cb396ad6a3f43b64047f5851", "urls": ["bzz-raw://f3585dc925650135eb90ff0d75498eb7022e81678cb4747e9329a4fe98648f24", "dweb:/ipfs/QmcRMabUCajJ3BMejvxcKm7WXHgFrfNh2BA5We7KHkWTU9"], "license": "GPL-3.0" }, "src/v08/EntryPointSimulations.sol": { "keccak256": "0x9ecd2875d386b94c703d6fae5d7184f4374c410bbffad03f22773ecda8e07554", "urls": ["bzz-raw://90efcf58189147bc48167f776dae7c75050ab40b4980176c663a58cc6cc555aa", "dweb:/ipfs/QmQ651WqHq5xV1fLe22nYGdhNEFQnrMB1o8N5dxm4naukQ"], "license": "GPL-3.0" }, "src/v08/IEntryPoint.sol": { "keccak256": "0x6ef27685ec58a67709de077a73667b0184aeb123643e7ef21ca9c95ad0122c71", "urls": ["bzz-raw://66e69b2738ebf45d63e7607ef67293d897ce08a39f499b0cb0234733b9f1bac1", "dweb:/ipfs/QmdxBsJtzPiyWuGuxf3NFynrcLibXXrXf1CZ79HNaRnh7K"], "license": "MIT" }, "src/v08/IEntryPointSimulations.sol": { "keccak256": "0x3486ad6d4e9ef01e1809b43b4bf3dace06e5733ee7bec11febd7309d4c605236", "urls": ["bzz-raw://79b06eb4c98ecaebf7cf2c54322b7fe07b418c828169536c380820d4bdf56abb", "dweb:/ipfs/Qmdiagf27geeJ73wPkYCRErpoHUwgFLvq24aJ3HBD5rM8L"], "license": "GPL-3.0" }, "src/v08/SenderCreator.sol": { "keccak256": "0x1e2fb812c446c6041c6d692bbdf1228ad60eec9779ffd7b318e680bb241d71d5", "urls": ["bzz-raw://34db2b82ee8e7140298bcbd1dcabf06b3bbcb60fd597f81b5b9e53b25c30b447", "dweb:/ipfs/QmT4WcNu6NCaxxJ6FWGFpjadfXsMPVhgLMQfGWsW9rWZAZ"], "license": "GPL-3.0" } }, "version": 1 }, "id": 28 }
1
+ { "abi": [{ "type": "constructor", "inputs": [], "stateMutability": "nonpayable" }, { "type": "receive", "stateMutability": "payable" }, { "type": "function", "name": "_accountValidation", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOpInfo", "type": "tuple", "internalType": "struct EntryPoint.UserOpInfo", "components": [{ "name": "mUserOp", "type": "tuple", "internalType": "struct EntryPoint.MemoryUserOp", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymaster", "type": "address", "internalType": "address" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "contextOffset", "type": "uint256", "internalType": "uint256" }, { "name": "preOpGas", "type": "uint256", "internalType": "uint256" }] }], "outputs": [{ "name": "validationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "_paymasterValidation", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOpInfo", "type": "tuple", "internalType": "struct EntryPoint.UserOpInfo", "components": [{ "name": "mUserOp", "type": "tuple", "internalType": "struct EntryPoint.MemoryUserOp", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymaster", "type": "address", "internalType": "address" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "contextOffset", "type": "uint256", "internalType": "uint256" }, { "name": "preOpGas", "type": "uint256", "internalType": "uint256" }] }], "outputs": [{ "name": "validationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "_validatePrepayment", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOpInfo", "type": "tuple", "internalType": "struct EntryPoint.UserOpInfo", "components": [{ "name": "mUserOp", "type": "tuple", "internalType": "struct EntryPoint.MemoryUserOp", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymaster", "type": "address", "internalType": "address" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "contextOffset", "type": "uint256", "internalType": "uint256" }, { "name": "preOpGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "validatePaymasterPrepayment", "type": "bool", "internalType": "bool" }], "outputs": [{ "name": "validationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "addStake", "inputs": [{ "name": "unstakeDelaySec", "type": "uint32", "internalType": "uint32" }], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "balanceOf", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "binarySearchCallGasLimit", "inputs": [{ "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct SimulationArgs[]", "components": [{ "name": "op", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct SimulationArgs", "components": [{ "name": "op", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "address" }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.TargetCallResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "binarySearchPaymasterVerificationGasLimit", "inputs": [{ "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct SimulationArgs[]", "components": [{ "name": "op", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct SimulationArgs", "components": [{ "name": "op", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "address" }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.TargetCallResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "binarySearchVerificationGasLimit", "inputs": [{ "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct SimulationArgs[]", "components": [{ "name": "op", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct SimulationArgs", "components": [{ "name": "op", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "address" }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.TargetCallResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "delegateAndRevert", "inputs": [{ "name": "target", "type": "address", "internalType": "address" }, { "name": "data", "type": "bytes", "internalType": "bytes" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "depositTo", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "eip712Domain", "inputs": [], "outputs": [{ "name": "fields", "type": "bytes1", "internalType": "bytes1" }, { "name": "name", "type": "string", "internalType": "string" }, { "name": "version", "type": "string", "internalType": "string" }, { "name": "chainId", "type": "uint256", "internalType": "uint256" }, { "name": "verifyingContract", "type": "address", "internalType": "address" }, { "name": "salt", "type": "bytes32", "internalType": "bytes32" }, { "name": "extensions", "type": "uint256[]", "internalType": "uint256[]" }], "stateMutability": "view" }, { "type": "function", "name": "getDepositInfo", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [{ "name": "info", "type": "tuple", "internalType": "struct IStakeManager.DepositInfo", "components": [{ "name": "deposit", "type": "uint256", "internalType": "uint256" }, { "name": "staked", "type": "bool", "internalType": "bool" }, { "name": "stake", "type": "uint112", "internalType": "uint112" }, { "name": "unstakeDelaySec", "type": "uint32", "internalType": "uint32" }, { "name": "withdrawTime", "type": "uint48", "internalType": "uint48" }] }], "stateMutability": "view" }, { "type": "function", "name": "getDomainSeparatorV4", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "getNonce", "inputs": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "key", "type": "uint192", "internalType": "uint192" }], "outputs": [{ "name": "nonce", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "getPackedUserOpTypeHash", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "pure" }, { "type": "function", "name": "getUserOpHash", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "incrementNonce", "inputs": [{ "name": "key", "type": "uint192", "internalType": "uint192" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "innerHandleOp", "inputs": [{ "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "opInfo", "type": "tuple", "internalType": "struct EntryPoint.UserOpInfo", "components": [{ "name": "mUserOp", "type": "tuple", "internalType": "struct EntryPoint.MemoryUserOp", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymaster", "type": "address", "internalType": "address" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "contextOffset", "type": "uint256", "internalType": "uint256" }, { "name": "preOpGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "context", "type": "bytes", "internalType": "bytes" }, { "name": "preGas", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "actualGasCost", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "nonceSequenceNumber", "inputs": [{ "name": "", "type": "address", "internalType": "address" }, { "name": "", "type": "uint192", "internalType": "uint192" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "senderCreator", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "contract ISenderCreator" }], "stateMutability": "view" }, { "type": "function", "name": "simulateCall", "inputs": [{ "name": "entryPoint", "type": "address", "internalType": "address" }, { "name": "payload", "type": "bytes", "internalType": "bytes" }, { "name": "gas", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "success", "type": "bool", "internalType": "bool" }, { "name": "result", "type": "bytes", "internalType": "bytes" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateCallAndRevert", "inputs": [{ "name": "target", "type": "address", "internalType": "address" }, { "name": "data", "type": "bytes", "internalType": "bytes" }, { "name": "gas", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateHandleOp", "inputs": [{ "name": "op", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ExecutionResult", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "targetSuccess", "type": "bool", "internalType": "bool" }, { "name": "targetResult", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateHandleOpBulk", "inputs": [{ "name": "ops", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct IEntryPointSimulations.ExecutionResult[]", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "targetSuccess", "type": "bool", "internalType": "bool" }, { "name": "targetResult", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateHandleOpLast", "inputs": [{ "name": "ops", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ExecutionResult", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "targetSuccess", "type": "bool", "internalType": "bool" }, { "name": "targetResult", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateValidation", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ValidationResult", "components": [{ "name": "returnInfo", "type": "tuple", "internalType": "struct IEntryPoint.ReturnInfo", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterContext", "type": "bytes", "internalType": "bytes" }] }, { "name": "senderInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "factoryInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "paymasterInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "aggregatorInfo", "type": "tuple", "internalType": "struct IEntryPointSimulations.AggregatorStakeInfo", "components": [{ "name": "aggregator", "type": "address", "internalType": "address" }, { "name": "stakeInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateValidationBulk", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple[]", "internalType": "struct IEntryPointSimulations.ValidationResult[]", "components": [{ "name": "returnInfo", "type": "tuple", "internalType": "struct IEntryPoint.ReturnInfo", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterContext", "type": "bytes", "internalType": "bytes" }] }, { "name": "senderInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "factoryInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "paymasterInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "aggregatorInfo", "type": "tuple", "internalType": "struct IEntryPointSimulations.AggregatorStakeInfo", "components": [{ "name": "aggregator", "type": "address", "internalType": "address" }, { "name": "stakeInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateValidationLast", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ValidationResult", "components": [{ "name": "returnInfo", "type": "tuple", "internalType": "struct IEntryPoint.ReturnInfo", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterContext", "type": "bytes", "internalType": "bytes" }] }, { "name": "senderInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "factoryInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "paymasterInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "aggregatorInfo", "type": "tuple", "internalType": "struct IEntryPointSimulations.AggregatorStakeInfo", "components": [{ "name": "aggregator", "type": "address", "internalType": "address" }, { "name": "stakeInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "unlockStake", "inputs": [], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "withdrawStake", "inputs": [{ "name": "withdrawAddress", "type": "address", "internalType": "address payable" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "withdrawTo", "inputs": [{ "name": "withdrawAddress", "type": "address", "internalType": "address payable" }, { "name": "withdrawAmount", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "event", "name": "AccountDeployed", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "factory", "type": "address", "indexed": false, "internalType": "address" }, { "name": "paymaster", "type": "address", "indexed": false, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "BeforeExecution", "inputs": [], "anonymous": false }, { "type": "event", "name": "Deposited", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "totalDeposit", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "EIP712DomainChanged", "inputs": [], "anonymous": false }, { "type": "event", "name": "PostOpRevertReason", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "revertReason", "type": "bytes", "indexed": false, "internalType": "bytes" }], "anonymous": false }, { "type": "event", "name": "SignatureAggregatorChanged", "inputs": [{ "name": "aggregator", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "StakeLocked", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "totalStaked", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "StakeUnlocked", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "withdrawTime", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "StakeWithdrawn", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "withdrawAddress", "type": "address", "indexed": false, "internalType": "address" }, { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "UserOperationEvent", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "paymaster", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "success", "type": "bool", "indexed": false, "internalType": "bool" }, { "name": "actualGasCost", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "actualGasUsed", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "UserOperationPrefundTooLow", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "UserOperationRevertReason", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "revertReason", "type": "bytes", "indexed": false, "internalType": "bytes" }], "anonymous": false }, { "type": "event", "name": "Withdrawn", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "withdrawAddress", "type": "address", "indexed": false, "internalType": "address" }, { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "error", "name": "CallPhaseReverted", "inputs": [{ "name": "reason", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "DelegateAndRevert", "inputs": [{ "name": "success", "type": "bool", "internalType": "bool" }, { "name": "ret", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "FailedOp", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "reason", "type": "string", "internalType": "string" }] }, { "type": "error", "name": "FailedOpWithRevert", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "reason", "type": "string", "internalType": "string" }, { "name": "inner", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "InvalidShortString", "inputs": [] }, { "type": "error", "name": "PostOpReverted", "inputs": [{ "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "ReentrancyGuardReentrantCall", "inputs": [] }, { "type": "error", "name": "SenderAddressResult", "inputs": [{ "name": "sender", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "SignatureValidationFailed", "inputs": [{ "name": "aggregator", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "SimulationOutOfGas", "inputs": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "StringTooLong", "inputs": [{ "name": "str", "type": "string", "internalType": "string" }] }, { "type": "error", "name": "innerCallResult", "inputs": [{ "name": "remainingGas", "type": "uint256", "internalType": "uint256" }] }], "bytecode": { "object": "0x610180604052346101b8576040516100186040826101eb565b600781526020810190664552433433333760c81b82526040519161003d6040846101eb565b600183526020830191603160f81b83526100568161020e565b61012052610063846103a9565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a081526100cc60c0826101eb565b5190206080523060c05230610160526040516100e7816101bc565b5f815260208101905f8252806020604051610101816101bc565b5f81520152600480546001600160a01b031916905551600555516006556040516156cf90816104e2823960805181613fd8015260a05181614095015260c05181613fa9015260e051816140270152610100518161404d015261012051816114c1015261014051816114ea015261016051818181613200015281816137ef0152818161384a01528181613a0f01528181613ac501528181613b1f01528181613c3301528181613ce901528181613d430152613e570152f35b5f80fd5b604081019081106001600160401b038211176101d757604052565b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b038211908210176101d757604052565b908151602081105f14610288575090601f815111610248576020815191015160208210610239571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b0381116101d757600254600181811c9116801561039f575b602082101461038b57601f8111610358575b50602092601f82116001146102f757928192935f926102ec575b50508160011b915f199060031b1c19161760025560ff90565b015190505f806102d3565b601f1982169360025f52805f20915f5b8681106103405750836001959610610328575b505050811b0160025560ff90565b01515f1960f88460031b161c191690555f808061031a565b91926020600181928685015181550194019201610307565b60025f52601f60205f20910160051c810190601f830160051c015b81811061038057506102b9565b5f8155600101610373565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102a7565b908151602081105f146103d4575090601f815111610248576020815191015160208210610239571790565b6001600160401b0381116101d757600354600181811c911680156104d7575b602082101461038b57601f81116104a4575b50602092601f821160011461044357928192935f92610438575b50508160011b915f199060031b1c19161760035560ff90565b015190505f8061041f565b601f1982169360035f52805f20915f5b86811061048c5750836001959610610474575b505050811b0160035560ff90565b01515f1960f88460031b161c191690555f8080610466565b91926020600181928685015181550194019201610453565b60035f52601f60205f20910160051c810190601f830160051c015b8181106104cc5750610405565b5f81556001016104bf565b90607f16906103f356fe60806040526004361015610022575b3615610018575f80fd5b6100206132f5565b005b5f3560e01c80630396cb601461021157806303d1dcaf1461020c57806309ccb880146102075780630bd28e3b146102025780630da82661146101fd5780630dbfc6bd146101f857806313c65a6e146101f3578063154e58dc146101ee5780631b2e01b8146101e9578063205c2878146101e457806321e60b37146101df57806322cdde4c146101da578063263934db146101d557806330ec25d1146101d057806335567e1a146101cb57806344403473146101c65780635287ce12146101c157806369683cfa146101bc57806370a08231146101b75780637472949c146101b257806376ad6123146101ad57806384b0196e146101a8578063850aaf62146101a357806397b2dcb91461019e578063b760faf914610199578063bb9fe6bf14610194578063c23a5cea1461018f578063c3bce0091461018a578063c579f76b14610185578063f7e426e8146101805763fe2171cb0361000e57611c43565b611c0a565b611aea565b611ab3565b611990565b61186d565b61184d565b6115fe565b6115c2565b6114a9565b611470565b611450565b611415565b611241565b611134565b6110ef565b611013565b610f96565b610e80565b610e57565b610c8e565b610a9c565b610a3f565b610a05565b6109e3565b610966565b6107b8565b6105ea565b6105a9565b610518565b60203660031901126104005760043563ffffffff811690818103610400576103fb7fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01916103dd6102cf6102bf610277336001600160a01b03165f525f60205260405f2090565b96610283811515611c92565b6102b06001890154916102a96102a08463ffffffff9060781c1690565b63ffffffff1690565b1115611cdd565b60081c6001600160701b031690565b6001600160701b03349116611d59565b946102db861515611d66565b6102ee6001600160701b03871115611db1565b546102f76106ee565b908152600160208201526001600160701b038616604082015263ffffffff831660608201525f608082015261033c336001600160a01b03165f525f60205260405f2090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b5f80fd5b9181601f840112156104005782359167ffffffffffffffff8311610400576020808501948460051b01011161040057565b6001600160a01b0381160361040057565b359061045182610435565b565b60c06003198201126104005760043567ffffffffffffffff8111610400578161047e91600401610404565b929092916024359067ffffffffffffffff821161040057606090829003600319011261040057600401906044356104b481610435565b90606435906084359060a43590565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60806040610515936020845280516020850152602081015115158285015201519160608082015201906104c3565b90565b346104005761059b61058f61057861052f36610453565b969194909561053f949394611dfc565b5061057261054b611e1b565b6105606105588780611e8a565b825190613394565b61056a8680611e8a565b905a91613482565b50613648565b61058a6105858280611e8a565b613704565b613796565b604051918291826104e7565b0390f35b5f91031261040057565b34610400575f3660031901126104005760206105c3611eab565b6001600160a01b0360405191168152f35b602435906001600160c01b038216820361040057565b34610400576020366003190112610400576004356001600160c01b03811681036104005761063490335f52600160205260405f20906001600160c01b03165f5260205260405f2090565b61063e8154611f25565b9055005b634e487b7160e01b5f52604160045260245ffd5b60a0810190811067ffffffffffffffff82111761067257604052565b610642565b6060810190811067ffffffffffffffff82111761067257604052565b610140810190811067ffffffffffffffff82111761067257604052565b6040810190811067ffffffffffffffff82111761067257604052565b90601f8019910116810190811067ffffffffffffffff82111761067257604052565b6040519061045160a0836106cc565b60405190610451610140836106cc565b60405190610451610100836106cc565b604051906104516040836106cc565b604051906104516060836106cc565b60405190610451610120836106cc565b67ffffffffffffffff811161067257601f01601f191660200190565b9291926107738261074b565b9161078160405193846106cc565b829481845281830111610400578281602093845f960137010152565b9080601f830112156104005781602061051593359101610767565b34610400576102203660031901126104005760043567ffffffffffffffff8111610400576107ea90369060040161079d565b3660231901906101c08212610400576101406040519261080984610656565b12610400576108166106fd565b6108206024610446565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c082015261085d610104610446565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359067ffffffffffffffff8211610400576040926108c46108cf93369060040161079d565b906102043592611f33565b82519182526020820152f35b6020600319820112610400576004359067ffffffffffffffff82116104005761090691600401610404565b9091565b9061010060e061051593805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e082015201906104c3565b346104005761097d610977366108db565b90612296565b6040518091602082016020835281518091526040830190602060408260051b8601019301915f905b8282106109b457505050500390f35b919360019193955060206109d38192603f198a8203018652885161090a565b96019201920185949391926109a5565b34610400575f3660031901126104005760206109fd613f9f565b604051908152f35b34610400575f3660031901126104005760206040517f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e8152f35b34610400576040366003190112610400576020610a93600435610a6181610435565b6001600160a01b03610a716105d4565b91165f526001835260405f20906001600160c01b03165f5260205260405f2090565b54604051908152f35b3461040057604036600319011261040057600435610ab981610435565b602435335f525f60205260405f2091825490818311610b3d575f8080856001600160a01b03829589610aee846100209a61245d565b9055604080516001600160a01b03831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af1610b3761246a565b50612499565b606460405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b90816101209103126104005790565b610200600319820112610400576004359160243567ffffffffffffffff81116104005782610bc091600401610b81565b916043190160446101c082126104005761014060405192610be084610656565b12610400576101a090610bf16106fd565b610bfa82610446565b81526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c0820152610c4460e08301610446565b60e082015261010082013561010082015261012082013561012082015283526101408101356020840152610160810135604084015261018081013560608401520135608082015290565b3461040057610c9c36610b90565b90915f91805193610cad8582613394565b610cb6816124e4565b60208301526001600160a01b0360e0610cf087610100604082015160608301510160808301510160a08301510160c0830151019101510290565b96876040860152015116610d1a575b604080515f8082526020820187905291810191909152606090f35b909192505a93610d398351916001600160a01b0360e084015116614acc565b15610de057906080610d5092015192839185615171565b9390505a900311610d68575061059b905f8080610cff565b60408051631101335b60e11b815260048101929092526024820152602760448201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760648201527f61734c696d69740000000000000000000000000000000000000000000000000060848201528060a481015b0390fd5b60848460405190631101335b60e11b8252600482015260406024820152601e60448201527f41413331207061796d6173746572206465706f73697420746f6f206c6f7700006064820152fd5b6020600319820112610400576004359067ffffffffffffffff82116104005761051591600401610b81565b346104005760206109fd610e6a36610e2c565b6124e4565b90602061051592818152019061090a565b3461040057610eac610e91366108db565b809291610e9c6121a1565b50610ea6826121ef565b50612296565b5f198201918211610ed95761059b91610ec491612282565b5160405191829160208352602083019061090a565b611d28565b906105159060e06080610f30818651610140865280516101408701526020810151610160870152604081015161018087015260608101516101a0870152015160a06101c08601526101e08501906104c3565b60208087015180518683015201516040850152946040810151805160608601526020015160808501526060810151805160a08601526020015160c0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b3461040057610fad610fa7366108db565b906126cb565b6040518091602082016020835281518091526040830190602060408260051b8601019301915f905b828210610fe457505050500390f35b919360019193955060206110038192603f198a82030186528851610ede565b9601920192018594939192610fd5565b3461040057604036600319011261040057602060043561103281610435565b6001600160a01b036110426105d4565b91165f52600182526110688160405f20906001600160c01b03165f5260205260405f2090565b546040805192901b67ffffffffffffffff1916178152f35b9181601f840112156104005782359167ffffffffffffffff8311610400576020838186019501011161040057565b906060600319830112610400576004356110c781610435565b916024359067ffffffffffffffff8211610400576110e791600401611080565b909160443590565b34610400575f8080611100366110ae565b939181604094929451948592833781018381520393f161111e61246a565b901561112657005b805190811561040057602001fd5b34610400576020366003190112610400576001600160a01b0360043561115981610435565b5f608060405161116881610656565b8281528260208201528260408201528260608201520152165f525f60205261059b60405f206111ed65ffffffffffff6001604051936111a685610656565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b346104005761124f36610b90565b9190915a928151936112618583613394565b61126a826124e4565b60208401526040850151936112b66effffffffffffffffffffffffffffff8660c08901511760608901511760808901511760a0890151176101008901511761012089015117111561275d565b6112e186610100604082015160608301510160808301510160a08301510160c0830151019101510290565b946113166113126112f55a89898988613565565b98602061130982516001600160a01b031690565b9101519061420a565b1590565b6113c0575a8303116113735750926113579260806113529360a061135e975a9560408601526060808601525a9003910135019101525a9061245d565b6127a9565b6064900490565b604080519283525f6020840152820152606090f35b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d697400006064820152608490fd5b610ddc82604051918291631101335b60e11b835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b34610400576020366003190112610400576001600160a01b0360043561143a81610435565b165f525f602052602060405f2054604051908152f35b346104005761059b61058f61146436610453565b95949094939193612816565b346104005761059b61058f61149761148736610453565b9691949095610572949394611dfc565b6114a46105858280611e8a565b613a8a565b34610400575f366003190112610400576115696114e57f00000000000000000000000000000000000000000000000000000000000000006153ac565b61150e7f0000000000000000000000000000000000000000000000000000000000000000615492565b602060405161151d82826106cc565b5f81528161157781830194601f1983013687376040519788977f0f00000000000000000000000000000000000000000000000000000000000000895260e0858a015260e08901906104c3565b9087820360408901526104c3565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b8281106115ab57505050500390f35b83518552869550938101939281019260010161159c565b34610400576040366003190112610400576115de600435610435565b60243567ffffffffffffffff811161040057610020903690600401611080565b346104005760603660031901126104005760043567ffffffffffffffff81116104005761162f903690600401610b81565b6024359061163c82610435565b60443567ffffffffffffffff81116104005761165c90369060040161079d565b906116656121a1565b507f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6118255761059b9260017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d6116bc611e1b565b926116c683613704565b6116d08484612d98565b9091945a6060880151886116e76060850185612a8f565b5f6003821161181d575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361180457505061175561176961176e956020840151604051938492638dd7712f60e01b60208501526040602485015260648401906142af565b90604483015203601f1981018352826106cc565b611f33565b9290965b5f946060966001600160a01b0381166117d9575b50509560806117c0969701519761179b61070d565b988952602089015260408801526060870152608086015260a0850152151560c0840152565b60e08201526117cd614258565b60405191829182610e6f565b6117c097505f92965090829182602083519301915af19560806117fa61246a565b9795919796611786565b611815955090611769913691610767565b929096611772565b5081356116f1565b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b60203660031901126104005761002060043561186881610435565b6128a1565b34610400575f36600319011261040057335f525f602052600160405f2001805463ffffffff8160781c161561194c576118d56118c76102a0836118bb6118b661190f9660ff1690565b6128fa565b60781c63ffffffff1690565b65ffffffffffff4216612945565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a9080602081016103fb565b606460405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b34610400576020366003190112610400576100205f8080806004356119b481610435565b6001600160a01b0360016119d8336001600160a01b03165f525f60205260405f2090565b0191611a66835493611a3e65ffffffffffff611a2a611a10611a04896001600160701b039060081c1690565b6001600160701b031690565b97611a1c891515612963565b60981c65ffffffffffff1690565b16611a368115156129ae565b4210156129f9565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03831681526020810185905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2165af1611aad61246a565b50612a44565b346104005761059b611acc611ac736610e2c565b612b84565b604051918291602083526020830190610ede565b8015150361040057565b34610400576102203660031901126104005760043560243567ffffffffffffffff811161040057611b1f903690600401610b81565b3660431901916101c083126104005761014060405193611b3e85610656565b126104005761059b92611bed92611b536106fd565b611b5d6044610446565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c0820152611b9b610124610446565b60e0820152610144356101008201526101643561012082015282526101843560208301526101a43560408301526101c43560608301526101e43560808301526102043592611be884611ae0565b612f73565b604080519384526020840192909252908201529081906060820190565b3461040057611c24611c1b366110ae565b929190916131ab565b9061059b604051928392151583526040602084015260408301906104c3565b3461040057611c65611c54366108db565b809291611c5f612649565b506126cb565b5f198201918211610ed95761059b91611c7d91612282565b51604051918291602083526020830190610ede565b15611c9957565b606460405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b15611ce457565b606460405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b634e487b7160e01b5f52601160045260245ffd5b906113888201809211610ed957565b9060018201809211610ed957565b91908201809211610ed957565b15611d6d57565b606460405162461bcd60e51b815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611db857565b606460405162461bcd60e51b815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b60405190611e0982610677565b60606040835f81525f60208201520152565b60405190611e2882610656565b5f608083604051611e3881610693565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b90359061011e1981360301821215610400570190565b6040513d5f823e3d90fd5b6040517f09ccb880000000000000000000000000000000000000000000000000000000008152602081600481305afa908115611f20575f91611eeb575090565b90506020813d602011611f18575b81611f06602093836106cc565b81010312610400575161051581610435565b3d9150611ef9565b611ea0565b5f198114610ed95760010190565b9392909193825190606082015181519081612120575b505050505a9003608082015101925f935a91835191611f67836150e7565b92611f7c60e08201516001600160a01b031690565b91611f9260808801518203606084015190615107565b01925f926001600160a01b03811690816120375750505090611fbf6040949392516001600160a01b031690565b945b5a9003010102920151908282105f1461200557611fdd5f613f13565b7fdeadaa51000000000000000000000000000000000000000000000000000000005f5260205ffd5b826120299203906001600160a01b03165f525f60205260405f209081540180915590565b506120335f613f13565b9190565b9692825161204e575b505050906040939291611fc1565b919950949392505a986120605f613f13565b60a05a920195865191813b15610400578692835f8094896120b3604051988997889687947f7c627b2100000000000000000000000000000000000000000000000000000000865202908660048601613f22565b0393f19081612106575b506120e657610ddc6120cd613ed2565b6040519182916365c8fd4d60e01b835260048301613f54565b6040946120fc915a9003995a9003905190615107565b9192935f80612040565b806121145f61211a936106cc565b8061059f565b5f6120bd565b5f80949360206001600160a01b0383965116910192f115612144575f808080611f49565b610ddc61214f613ed2565b6040519182917f462c71b20000000000000000000000000000000000000000000000000000000083526020600484015260248301906104c3565b67ffffffffffffffff81116106725760051b60200190565b60405190610100820182811067ffffffffffffffff82111761067257604052606060e0835f81525f60208201525f60408201525f838201525f60808201525f60a08201525f60c08201520152565b906121f982612189565b61220660405191826106cc565b8281528092612217601f1991612189565b01905f5b82811061222757505050565b6020906122326121a1565b8282850101520161221b565b634e487b7160e01b5f52603260045260245ffd5b90821015612269576105159160051b810190611e8a565b61223e565b6040519061227d6020836106cc565b5f8252565b80518210156122695760209160051b010190565b61229f826121ef565b915f5b8181106122af5750505090565b6122ba818385612252565b9060205f6040516122cb83826106cc565b526122d46121a1565b507f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c61182557600192837f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d612329611e1b565b9061233381613704565b8261233e8383612d98565b929091935a90866060810151916123586060820182612a8f565b5f60038211612438575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361242057505061176985638dd7712f60e01b926117556123c598860151916040519586948501526040602485015260648401906142af565b93905b60806060960151966123d861070d565b978852870152604086015283850152608084015260a08301525f60c083015260e0820152612404614258565b61240e8287612282565b526124198186612282565b50016122a2565b612431965061176992503691610767565b93906123c8565b508135612362565b600319810191908211610ed957565b5f19810191908211610ed957565b91908203918211610ed957565b3d15612494573d9061247b8261074b565b9161248960405193846106cc565b82523d5f602084013e565b606090565b156124a057565b606460405162461bcd60e51b815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b610515906124f181614177565b6124f9613f9f565b916125d581359261250984610435565b6020830135908015612611576125c790935b61253161252b6060830183612a8f565b90615637565b90608081013560a08201359061255361252b60c08501359460e0810190612a8f565b93604051988997602089019b8c94919261010096939998979491996001600160a01b0361012088019b7f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e895216602088015260408701526060860152608085015260a084015260c083015260e08201520152565b03601f1981018352826106cc565b51902090604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b506125c76126226040850185612a8f565b9081604051918237209361251b565b6040519061263e826106b0565b5f6020838281520152565b6040519061265682610656565b8160405161266381610656565b5f81525f60208201525f60408201525f6060820152606060808201528152612689612631565b6020820152612696612631565b60408201526126a3612631565b60608201526080604051916126b7836106b0565b5f83526126c2612631565b60208401520152565b6126d482612189565b916126e260405193846106cc565b808352601f196126f182612189565b015f5b8181106127395750505f5b81811061270c5750505090565b8061271d611ac76001938587612252565b6127278287612282565b526127328186612282565b50016126ff565b602090612744612649565b828288010152016126f4565b908092918237015f815290565b1561276457565b60405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152606490fd5b90607382029180830460731490151715610ed957565b3561051581610435565b604051906127d86020836106cc565b5f808352366020840137565b906127ee8261074b565b6127fb60405191826106cc565b828152809261280c601f199161074b565b0190602036910137565b9061282991969594939296610572611dfc565b6001600160a01b0361283b8680611e8a565b61286460208801359161284d83610435565b612855611e1b565b9061285f81613704565b612d98565b50505016156128765761051594613cae565b50505050506128836127c9565b6040519061289082610677565b5f82525f6020830152604082015290565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b036128ee34856001600160a01b03165f525f60205260405f209081540180915590565b936040519485521692a2565b1561290157565b606460405162461bcd60e51b815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b9065ffffffffffff8091169116019065ffffffffffff8211610ed957565b1561296a57565b606460405162461bcd60e51b815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b156129b557565b606460405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b15612a0057565b606460405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b15612a4b57565b606460405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b903590601e1981360301821215610400570180359067ffffffffffffffff82116104005760200191813603831361040057565b906014116104005790601490565b909291928360141161040057831161040057601401916013190190565b909291928360341161040057831161040057603401916033190190565b356bffffffffffffffffffffffff19811692919060148210612b2a575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b60405190612b57826106b0565b6004546001600160a01b03168252604051602083612b74836106b0565b6005548352600654828401520152565b612b8c612649565b50612b95611e1b565b90612b9f81613704565b612ba98282612d98565b50919092612bb78385614372565b612bd4612bcf60e0835101516001600160a01b031690565b61451c565b91612c02612bee612bcf84516001600160a01b0390511690565b91612bf7612631565b506040810190612a8f565b9060148210612cdd57612c24612c1e612c2a93612bcf93612ac2565b90612b0a565b60601c90565b916001600160a01b038616946080820151966060604084015193015192612c4f6106ee565b9889526020890152604088015260608701526080860152612c6e612b4a565b9380151580612cd2575b612ca0575b50612c866106ee565b948552602085015260408401526060830152608082015290565b909350612cac8161451c565b612cc6612cb761071d565b6001600160a01b039093168352565b6020820152925f612c7d565b506001811415612c78565b5050612c2a5f61451c565b15612cf05750565b60405190631101335b60e11b825260048201526040602482015280610ddc60448201604090601881527f41413934206761732076616c756573206f766572666c6f77000000000000000060208201520190565b15612d4b5750565b60408051631101335b60e11b815260048101929092526024820152601a60448201527f4141323520696e76616c6964206163636f756e74206e6f6e63650000000000006064820152608490fd5b9190915f915a93805192612dac8482613394565b612dc5604051612dbb836124e4565b6020850152604052565b604084015195612e0d5f6effffffffffffffffffffffffffffff8960c08901511760608901511760808901511760a08901511761010089015117610120890151171115612ce8565b612e58612e3b86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b806040860152612e4f608085013560801c90565b9085855f613565565b96612e815f612e7c612e7189516001600160a01b031690565b60208a01519061420a565b612d43565b5a820311612f20576060946001600160a01b03612ea960e05a9301516001600160a01b031690565b16151580612f18575b612ee0575b60809291612ece61135761135260a0945a9061245d565b9660608601525a900391013501910152565b945061135295509060a0608092612ef68361455c565b50612ece611357612f0887865f6140bb565b9a90999450505050919250612eb7565b506001612eb2565b604051631101335b60e11b815280610ddc5f60048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b939092915f935a8251612f868184613394565b612f9f604051612f95856124e4565b6020870152604052565b604081015197612fe7816effffffffffffffffffffffffffffff8b60c08601511760608601511760808601511760a08601511761010086015117610120860151171115612ce8565b61303261301583610100604082015160608301510160808301510160a08301510160c0830151019101510290565b806040880152613029608087013560801c90565b90878785613565565b9861305682612e7c61304b86516001600160a01b031690565b60208701519061420a565b5a840311611373576060966001600160a01b0361307e60e05a9501516001600160a01b031690565b16151590816130de575b506130a6575b5060809291612ece61135761135260a0945a9061245d565b611352975060a091965091612ece6113576130cf878780976130c960809a61455c565b506140bb565b9a90999450505050919261308e565b90505f613088565b908060209392818452848401375f828201840152601f01601f1916010190565b6040906001600160a01b03610515959316815281602082015201916130e6565b908151811015612269570160200190565b919060408382031261040057825161314e81611ae0565b9260208101519067ffffffffffffffff8211610400570181601f820112156104005780519061317c8261074b565b9261318a60405194856106cc565b8284526020838301011161040057815f9260208093018386015e8301015290565b91925f936001600160a01b036060941691823b1561040057613229935f80946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501613106565b0393f190816132e1575b5061090657505061324261246a565b9060048251106132d35761325e6132598351612440565b6127e4565b60045b83518110156132bd57806132a061327a60019387613126565b517fff000000000000000000000000000000000000000000000000000000000000001690565b6132b66132ac83612440565b915f1a9185613126565b5301613261565b5061090691925060208082518301019101613137565b90506132dd6127c9565b5f91565b806121145f6132ef936106cc565b5f613233565b610451336128a1565b1561330557565b606460405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b1561335057565b606460405162461bcd60e51b815260206004820152601660248201527f4141393820696e76616c6964207061796d6173746572000000000000000000006044820152fd5b61342b906133b16133a4826127bf565b6001600160a01b03168452565b602081013560208401526133de6080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c084015261341560c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e0810190612a8f565b8092919261343857505050565b613454816104519461344f603460e09510156132fe565b61457b565b60a08501526080840152916134736001600160a01b0384161515613349565b01906001600160a01b03169052565b92916134c6908251926001600160a01b0360e081865116956134b26134aa60408b018b612a8f565b90865f6145d9565b015116905f91159687613532575b5f6149c5565b926134ce5750565b5f6134d891614acc565b156134df57565b604051631101335b60e11b815280610ddc5f60048301608091815260406020820152601760408201527f41413231206469646e2774207061792070726566756e6400000000000000000060608201520190565b915061354e856001600160a01b03165f525f60205260405f2090565b54801561355e57505f5b916134c0565b5f03613558565b929094936135ab908351936001600160a01b0360e0818751169661359761358f60408d018d612a8f565b90868c6145d9565b015116905f91159889613613575b876149c5565b946135b557505050565b6135be91614acc565b156135c65750565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b915061362f866001600160a01b03165f525f60205260405f2090565b548581111561364157505f5b916135a5565b850361363b565b915f5b828110156136fe5761365b611e1b565b908060051b85013591605e1986360301831215610400576136926001938701916136886105858480611e8a565b61285f8380611e8a565b505050602081016136b16136a5826127bf565b6001600160a01b031690565b156136f7575f91826136d16136c682946127bf565b926040810190612a8f565b91906136e260405180948193612750565b03925af1506136ef61246a565b505b0161364b565b50506136f1565b50915050565b613737906137156040820182612a8f565b9161372f81359161372583610435565b60e0810190612a8f565b939092614af1565b80516137405750565b610ddc90604051918291631101335b60e11b83525f60048401526040602484015260448301906104c3565b939291613791906001600160a01b036040931686526060602087015260608601906104c3565b930152565b939490946137a2611dfc565b5082156139ed576137e2926137b561226e565b50915f6137c45a886002614e86565b5a906040519687928392631efc84dd60e31b84528c6004850161376b565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215611f20575f945f936139cb575b508294809381156139a957505061383f909592919394955b85611d59565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b84613877888561245d565b1061397f575a61388688611d3c565b116139485791869593918995935f8c8b6138b86138af6138a9886138d89f611d59565b60011c90565b809b6002614e86565b835a936040519e8f9586948593631efc84dd60e31b85526004850161376b565b03925af1988915611f20575f905f9a613921575b501561390c575050506138fe8461244f565b95915b93909294959161386c565b9396509461391b919750611d4b565b94613901565b90506139409199503d805f833e61393881836106cc565b810190613137565b98905f6138ec565b7fe2c4d0be000000000000000000000000000000000000000000000000000000005f5260048290526024879052604483905260645ffd5b9650965050919550506139a1915061399561072c565b93845215156020840152565b604082015290565b965096505095505050506139a16139be61072c565b5f81529215156020840152565b9092506139e39194503d805f833e61393881836106cc565b939093915f613821565b90613a0292505a905f6137c45a886002614e86565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611f20575f945f94613a68575b508394613a5081945a9061245d565b9481156139a957505061383f90959291939495613839565b909350613a809194503d805f833e61393881836106cc565b939093925f613a41565b93949094613a96611dfc565b508215613c1157613ab892613aa961226e565b50915f6137c45a886003614e86565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215611f20575f945f93613bef575b508294809381156139a9575050613b149095929193949585611d59565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b84613b4c888561245d565b1061397f575a613b5b88611d3c565b116139485791869593918995935f8c8b6138b8613b7e6138a988613b879f611d59565b809b6003614e86565b03925af1988915611f20575f905f9a613bd0575b5015613bbb57505050613bad8461244f565b95915b939092949591613b41565b93965094613bca919750611d4b565b94613bb0565b9050613be79199503d805f833e61393881836106cc565b98905f613b9b565b909250613c079194503d805f833e61393881836106cc565b939093915f613af7565b90613c2692505a905f6137c45a886003614e86565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611f20575f945f94613c8c575b508394613c7481945a9061245d565b9481156139a9575050613b1490959291939495613839565b909350613ca49194503d805f833e61393881836106cc565b939093925f613c65565b93949094613cba611dfc565b508215613e3557613cdc92613ccd61226e565b50915f6137c45a886001614e86565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215611f20575f945f93613e13575b508294809381156139a9575050613d389095929193949585611d59565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b84613d70888561245d565b1061397f575a613d7f88611d3c565b116139485791869593918995935f8c8b6138b8613da26138a988613dab9f611d59565b809b6001614e86565b03925af1988915611f20575f905f9a613df4575b5015613ddf57505050613dd18461244f565b95915b939092949591613d65565b93965094613dee919750611d4b565b94613dd4565b9050613e0b9199503d805f833e61393881836106cc565b98905f613dbf565b909250613e2b9194503d805f833e61393881836106cc565b939093915f613d1b565b90613e4a92505a905f6137c45a886001614e86565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611f20575f945f94613eb0575b508394613e9881945a9061245d565b9481156139a9575050613d3890959291939495613839565b909350613ec89194503d805f833e61393881836106cc565b939093925f613e89565b3d6108008111613ef6575b604051906020818301016040528082525f602083013e90565b50610800613edd565b634e487b7160e01b5f52602160045260245ffd5b60031115613f1d57565b613eff565b90949392946003811015613f1d57606092613f4a9183526080602084015260808301906104c3565b9460408201520152565b9060a0610515925f815260606020820152601460608201527f4141353020706f73744f70207265766572746564000000000000000000000000608082015281604082015201906104c3565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016301480614092575b15613ffa577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261408c60c0826106cc565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614613fd1565b9290925a9383516140de6001600160a01b0360e083015116604087015190614acc565b15614103579060806140f592015194859184615171565b9390945a900311610d685750565b60848360405190631101335b60e11b8252600482015260406024820152601e60448201527f41413331207061796d6173746572206465706f73697420746f6f206c6f7700006064820152fd5b909280926014946bffffffffffffffffffffffff199060601b1683528483013701015f815290565b6141846040820182612a8f565b90916141936113128385615266565b614203576141a36141a8916127bf565b6152a8565b91601482116141df57505060405161408c816125c76020820194856014916bffffffffffffffffffffffff199060601b1681520190565b8161408c926141ed92612ad0565b91906125c760405193849260208401968761414f565b5050505f90565b6001600160a01b03165f52600160205267ffffffffffffffff6142448260401c60405f20906001600160c01b03165f5260205260405f2090565b9182549261425184611f25565b9055161490565b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d565b9035601e198236030181121561040057016020813591019167ffffffffffffffff821161040057813603831361040057565b610515916142cd816142c084610446565b6001600160a01b03169052565b6020820135602082015261436361435761431e6143036142f0604087018761427d565b61012060408801526101208701916130e6565b614310606087018761427d565b9086830360608801526130e6565b6080850135608085015260a085013560a085015260c085013560c085015261434960e086018661427d565b9085830360e08701526130e6565b9261010081019061427d565b916101008185039101526130e6565b6143836001600160a01b039161554a565b91166144c9576144765761439e6001600160a01b039161554a565b9116614423576143aa57565b604051631101335b60e11b815280610ddc5f6004830160a091815260406020820152602160408201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560608201527f650000000000000000000000000000000000000000000000000000000000000060808201520190565b604051631101335b60e11b815280610ddc5f60048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b604051631101335b60e11b815280610ddc5f60048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b604051631101335b60e11b815280610ddc5f60048301608091815260406020820152601460408201527f41413234207369676e6174757265206572726f7200000000000000000000000060608201520190565b906001600160a01b0361452d612631565b92165f525f60205263ffffffff600160405f2001546001600160701b038160081c16845260781c166020830152565b61456a9060e0810190612a8f565b602411610400576014013560801c90565b9091826014116104005781359183602411610400576014810135936034116104005760609290921c92608090811c9260240135901c90565b90816020910312610400575161051581610435565b9160206105159381815201916130e6565b929091816145e8575b50505050565b8251516001600160a01b0316936145ff8383615266565b6148bc57843b61486f5760148310614822575f602061461f6136a5611eab565b604087510151604051809481937f570e1a360000000000000000000000000000000000000000000000000000000083528261465e8b8b600484016145c8565b0393f1908115611f20575f916147f3575b506001600160a01b03811695861561479e576001600160a01b0316809603614749573b156146fc5750612c24612c1e7fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d936146c993612ac2565b602083810151935160e00151604080516001600160a01b039485168152939091169183019190915290a35f8080806145e2565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b610ddc82604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b610ddc83604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b614815915060203d60201161481b575b61480d81836106cc565b8101906145b3565b5f61466f565b503d614803565b60408051631101335b60e11b815260048101929092526024820152601760448201527f4141393920696e6974436f646520746f6f20736d616c6c0000000000000000006064820152608490fd5b60408051631101335b60e11b815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b5090601481116148cc5750505050565b806148e89160406148de6136a5611eab565b9551015193612ad0565b9190833b15610400575f809461492e96604051978896879586937fc09ad0d900000000000000000000000000000000000000000000000000000000855260048501613106565b0393f18015611f2057614944575b8080806145e2565b806121145f614952936106cc565b5f61493c565b614970604092959493956060835260608301906142af565b9460208201520152565b60a0906105159392815260606020820152600d60608201527f4141323320726576657274656400000000000000000000000000000000000000608082015281604082015201906104c3565b9291602095948692614a2f5f93614a216149e882516001600160a01b0390511690565b976040519b8c930151888401957f19822f7c00000000000000000000000000000000000000000000000000000000875260248501614958565b03601f1981018a52896106cc565b8285895193f15f519460203d03614ac4575b60405215614a4d575050565b3b614a9f5760408051631101335b60e11b815260048101929092526024820152601960448201527f41413230206163636f756e74206e6f74206465706c6f796564000000000000006064820152608490fd5b614aa7613ed2565b90610ddc6040519283926365c8fd4d60e01b84526004840161497a565b5f9150614a41565b6001600160a01b03165f525f60205260405f2090815481811061420357039055600190565b50929192159081614ba6575b50614b69576014811015614b16575b505061051561226e565b601411610400573560601c3b15614b2e575f80614b0c565b604051614b3c6040826106cc565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b5050604051614b796040826106cc565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b155f614afd565b6101208136031261040057614bc361073b565b90614bcd81610446565b825260208101356020830152604081013567ffffffffffffffff811161040057614bfa903690830161079d565b6040830152606081013567ffffffffffffffff811161040057614c20903690830161079d565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff811161040057614c64903690830161079d565b60e08301526101008101359067ffffffffffffffff821161040057614c8b9136910161079d565b61010082015290565b60041115613f1d57565b916020936fffffffffffffffffffffffffffffffff198092603497946bffffffffffffffffffffffff199060601b1686521660148501521660248301528051928391018483015e01015f815290565b80516001600160a01b031682526105159160208201516020820152610100614d6e614d3e614d2c604086015161012060408701526101208601906104c3565b606086015185820360608701526104c3565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526104c3565b920151906101008184039101526104c3565b60806101a0916101208151614d9e8682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c0870152614df260e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b614e5d614e5261020093969594965f84526102206020850152610220840190614ced565b956040830190614d80565b0152565b61020090614e5d614e525f949695968584526102206020850152610220840190614ced565b614e8e611e1b565b614ea0614e9b8480611e8a565b614bb0565b614ea983614c94565b6002831461500257614eba83614c94565b60038314614f7b57505080614ed0600192614c94565b14614f1a5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b806125c7614f45614f3e614f33602061051596016127bf565b936040810190612a8f565b3691610767565b936040519485937f444034730000000000000000000000000000000000000000000000000000000060208601526024850161376b565b9150926fffffffffffffffffffffffffffffffff614fc2614fbb614fa28661051597611e8a565b608001356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526125c76040519384927fc579f76b00000000000000000000000000000000000000000000000000000000602085015260248401614e61565b9150926125c7906fffffffffffffffffffffffffffffffff198461508d61507f61503b615035613725856105159b611e8a565b9061457b565b9291905060609060e08a01956034875151116150c3575b5060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b169060208601614c9e565b03601f1981018452836106cc565b526040519485937f21e60b3700000000000000000000000000000000000000000000000000000000602086015260248501614e2e565b6150e09192506150d961372582614f3e93611e8a565b8091612aed565b905f615052565b61012061010082015191015148018082105f14615102575090565b905090565b90619c40820181111561512057606491600a9103020490565b50505f90565b60a0906105159392815260606020820152600d60608201527f4141333320726576657274656400000000000000000000000000000000000000608082015281604082015201906104c3565b925f80919593929560405196826151e660e06020880151976151d78c6151c86040840151602083019c8d997f52b7512c000000000000000000000000000000000000000000000000000000008b5260248501614958565b038d601f19820190528d6106cc565b5101516001600160a01b031690565b895193f1933d91825f833e5193815160408301968751901591821561525a575b508115615248575b506152235750601f909101601f191601604052565b61522b613ed2565b90610ddc6040519283926365c8fd4d60e01b845260048401615126565b9050601f605f1985019101105f61520e565b6040141591505f615206565b906002116152a357356bffffffffffffffffffffffff19167f77020000000000000000000000000000000000000000000000000000000000001490565b505f90565b60175f80833c5f51907fef010000000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000083160361531d5750612c2461530b6105159260181b90565b6bffffffffffffffffffffffff191690565b3b156153685760405162461bcd60e51b815260206004820152601860248201527f6e6f7420616e204549502d373730322064656c656761746500000000000000006044820152606490fd5b606460405162461bcd60e51b815260206004820152601260248201527f73656e64657220686173206e6f20636f646500000000000000000000000000006044820152fd5b60ff81146153bd5761051590615642565b506040515f6002548060011c91600182168015615488575b602084108114615474578385528492602084019190811561545b5750600114615406575b50610515925003826106cc565b60025f90815291507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b84831061544457506105159350015f6153f9565b805482840152859350602090920191600101615430565b60ff191682525061051593151560051b0190505f6153f9565b634e487b7160e01b5f52602260045260245ffd5b92607f16926153d5565b60ff81146154a35761051590615642565b506040515f6003548060011c91600182168015615540575b602084108114615474578385528492602084019190811561545b57506001146154eb5750610515925003826106cc565b60035f90815291507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b84831061552957506105159350015f6153f9565b805482840152859350602090920191600101615515565b92607f16926154bb565b8015615630575f6040805161555e81610677565b828152826020820152015265ffffffffffff8160a01c168015615623575b615604906155eb61559361559e6155938660d01c90565b65ffffffffffff1690565b926155c36001600160a01b036155b261072c565b971687906001600160a01b03169052565b6155d96020870194859065ffffffffffff169052565b65ffffffffffff166040860181905290565b4211908115615607575b5091516001600160a01b031690565b91565b5161561a915065ffffffffffff16615593565b4211155f6155f5565b5065ffffffffffff61557c565b505f905f90565b816040519182372090565b60ff811690601f8211615671576040519161565e6040846106cc565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffdfea264697066735822122066be6c644e99dfb53e60d55c34a4dabe62af7d5521ecfb3c9571cc53c1e9b61264736f6c634300081c0033", "sourceMap": "938:15711:28:-:0;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;:::i;:::-;1964:9:27;938:15711:28;;;1964:9:27;;;-1:-1:-1;;;1964:9:27;;3401:45:21;;;:::i;:::-;3393:53;;3467:51;;;:::i;:::-;3456:62;;938:15711:28;3542:22:21;;3528:36;;;;938:15711:28;3591:25:21;;3574:42;;;3644:13;3627:30;;938:15711:28;;4204:80:21;938:15711:28;4204:80:21;;2079:95;;;;938:15711:28;2079:95:21;;;;;;;3644:13;2079:95;;;;4278:4;3627:30;2079:95;;;3627:30;4204:80;;;;;;:::i;:::-;938:15711:28;4194:91:21;;2079:95;3667:48;4278:4;4204:80;3725:27;4278:4;1064::28;;938:15711;;;;;:::i;:::-;-1:-1:-1;938:15711:28;;;1151:15;;938:15711;-1:-1:-1;938:15711:28;;;;;;;;;:::i;:::-;-1:-1:-1;938:15711:28;;1119:48;938:15711;1119:48;938:15711;;-1:-1:-1;;;;;;938:15711:28;;;;;;;;;;;;;;;;;2079:95:21;938:15711:28;;;;;3627:30:21;938:15711:28;;;;;4204:80:21;938:15711:28;;;;;3528:36:21;938:15711:28;;;;;3574:42:21;938:15711:28;;;;;3393:53:21;938:15711:28;;;;;3456:62:21;938:15711:28;;;;;1064:4;938:15711;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15711:28;;;;;;;:::o;:::-;;;;-1:-1:-1;938:15711:28;;;;;-1:-1:-1;938:15711:28;;;;;;-1:-1:-1;;938:15711:28;;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;:::o;2887:340:17:-;;938:15711:28;;3032:2:17;3010:24;;3006:215;3032:2;;;938:15711:28;;1854:2:17;938:15711:28;;1840:16:17;1836:72;;3032:2;938:15711:28;;;;2079:95:21;3032:2:17;938:15711:28;;;;1949:36:17;3050:27;:::o;938:15711:28:-;;;;3032:2:17;938:15711:28;;;;;1949:36:17;3050:27;:::o;1836:72::-;938:15711:28;3032:2:17;938:15711:28;;;1879:18:17;;;;;;;;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;1854:2:17;938:15711:28;-1:-1:-1;;938:15711:28;;;1879:18:17;;;;3006:215;-1:-1:-1;;;;;938:15711:28;;;;3432:13:21;938:15711:28;;;;;;;;;;;3006:215:17;3032:2;938:15711:28;;;;;;;;;;3006:215:17;938:15711:28;3032:2:17;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3432:13:21;938:15711:28;1390:66:17;3168:42;:::o;938:15711:28:-;;;;-1:-1:-1;938:15711:28;;;;;;;;;;3432:13:21;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;3432:13:21;938:15711:28;1390:66:17;3168:42;:::o;938:15711:28:-;;;;;;;;;;;;;;;;;;;;;;;3032:2:17;938:15711:28;;;;;;;;;;;;;;;;;3432:13:21;938:15711:28;;;3032:2:17;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2887:340:17;;938:15711:28;;3032:2:17;3010:24;;3006:215;3032:2;;;938:15711:28;;1854:2:17;938:15711:28;;1840:16:17;1836:72;;3032:2;938:15711:28;;;;2079:95:21;3032:2:17;938:15711:28;;;;1949:36:17;3050:27;:::o;3006:215::-;-1:-1:-1;;;;;938:15711:28;;;;3501:16:21;938:15711:28;;;;;;;;;;;3006:215:17;3032:2;938:15711:28;;;;;;;;;;3006:215:17;938:15711:28;3032:2:17;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;3501:16:21;938:15711:28;;;;;3501:16:21;938:15711:28;1390:66:17;3168:42;:::o;938:15711:28:-;;;;-1:-1:-1;938:15711:28;;;;;;;;;;3501:16:21;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;3501:16:21;938:15711:28;1390:66:17;3168:42;:::o;938:15711:28:-;;;;;;;3501:16:21;938:15711:28;;;;;;;;;;;;;;;3032:2:17;938:15711:28;;;;;;;;;;;;;;;;;3501:16:21;938:15711:28;;;3032:2:17;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x60806040526004361015610022575b3615610018575f80fd5b6100206132f5565b005b5f3560e01c80630396cb601461021157806303d1dcaf1461020c57806309ccb880146102075780630bd28e3b146102025780630da82661146101fd5780630dbfc6bd146101f857806313c65a6e146101f3578063154e58dc146101ee5780631b2e01b8146101e9578063205c2878146101e457806321e60b37146101df57806322cdde4c146101da578063263934db146101d557806330ec25d1146101d057806335567e1a146101cb57806344403473146101c65780635287ce12146101c157806369683cfa146101bc57806370a08231146101b75780637472949c146101b257806376ad6123146101ad57806384b0196e146101a8578063850aaf62146101a357806397b2dcb91461019e578063b760faf914610199578063bb9fe6bf14610194578063c23a5cea1461018f578063c3bce0091461018a578063c579f76b14610185578063f7e426e8146101805763fe2171cb0361000e57611c43565b611c0a565b611aea565b611ab3565b611990565b61186d565b61184d565b6115fe565b6115c2565b6114a9565b611470565b611450565b611415565b611241565b611134565b6110ef565b611013565b610f96565b610e80565b610e57565b610c8e565b610a9c565b610a3f565b610a05565b6109e3565b610966565b6107b8565b6105ea565b6105a9565b610518565b60203660031901126104005760043563ffffffff811690818103610400576103fb7fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01916103dd6102cf6102bf610277336001600160a01b03165f525f60205260405f2090565b96610283811515611c92565b6102b06001890154916102a96102a08463ffffffff9060781c1690565b63ffffffff1690565b1115611cdd565b60081c6001600160701b031690565b6001600160701b03349116611d59565b946102db861515611d66565b6102ee6001600160701b03871115611db1565b546102f76106ee565b908152600160208201526001600160701b038616604082015263ffffffff831660608201525f608082015261033c336001600160a01b03165f525f60205260405f2090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b5f80fd5b9181601f840112156104005782359167ffffffffffffffff8311610400576020808501948460051b01011161040057565b6001600160a01b0381160361040057565b359061045182610435565b565b60c06003198201126104005760043567ffffffffffffffff8111610400578161047e91600401610404565b929092916024359067ffffffffffffffff821161040057606090829003600319011261040057600401906044356104b481610435565b90606435906084359060a43590565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60806040610515936020845280516020850152602081015115158285015201519160608082015201906104c3565b90565b346104005761059b61058f61057861052f36610453565b969194909561053f949394611dfc565b5061057261054b611e1b565b6105606105588780611e8a565b825190613394565b61056a8680611e8a565b905a91613482565b50613648565b61058a6105858280611e8a565b613704565b613796565b604051918291826104e7565b0390f35b5f91031261040057565b34610400575f3660031901126104005760206105c3611eab565b6001600160a01b0360405191168152f35b602435906001600160c01b038216820361040057565b34610400576020366003190112610400576004356001600160c01b03811681036104005761063490335f52600160205260405f20906001600160c01b03165f5260205260405f2090565b61063e8154611f25565b9055005b634e487b7160e01b5f52604160045260245ffd5b60a0810190811067ffffffffffffffff82111761067257604052565b610642565b6060810190811067ffffffffffffffff82111761067257604052565b610140810190811067ffffffffffffffff82111761067257604052565b6040810190811067ffffffffffffffff82111761067257604052565b90601f8019910116810190811067ffffffffffffffff82111761067257604052565b6040519061045160a0836106cc565b60405190610451610140836106cc565b60405190610451610100836106cc565b604051906104516040836106cc565b604051906104516060836106cc565b60405190610451610120836106cc565b67ffffffffffffffff811161067257601f01601f191660200190565b9291926107738261074b565b9161078160405193846106cc565b829481845281830111610400578281602093845f960137010152565b9080601f830112156104005781602061051593359101610767565b34610400576102203660031901126104005760043567ffffffffffffffff8111610400576107ea90369060040161079d565b3660231901906101c08212610400576101406040519261080984610656565b12610400576108166106fd565b6108206024610446565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c082015261085d610104610446565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359067ffffffffffffffff8211610400576040926108c46108cf93369060040161079d565b906102043592611f33565b82519182526020820152f35b6020600319820112610400576004359067ffffffffffffffff82116104005761090691600401610404565b9091565b9061010060e061051593805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e082015201906104c3565b346104005761097d610977366108db565b90612296565b6040518091602082016020835281518091526040830190602060408260051b8601019301915f905b8282106109b457505050500390f35b919360019193955060206109d38192603f198a8203018652885161090a565b96019201920185949391926109a5565b34610400575f3660031901126104005760206109fd613f9f565b604051908152f35b34610400575f3660031901126104005760206040517f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e8152f35b34610400576040366003190112610400576020610a93600435610a6181610435565b6001600160a01b03610a716105d4565b91165f526001835260405f20906001600160c01b03165f5260205260405f2090565b54604051908152f35b3461040057604036600319011261040057600435610ab981610435565b602435335f525f60205260405f2091825490818311610b3d575f8080856001600160a01b03829589610aee846100209a61245d565b9055604080516001600160a01b03831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af1610b3761246a565b50612499565b606460405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b90816101209103126104005790565b610200600319820112610400576004359160243567ffffffffffffffff81116104005782610bc091600401610b81565b916043190160446101c082126104005761014060405192610be084610656565b12610400576101a090610bf16106fd565b610bfa82610446565b81526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c0820152610c4460e08301610446565b60e082015261010082013561010082015261012082013561012082015283526101408101356020840152610160810135604084015261018081013560608401520135608082015290565b3461040057610c9c36610b90565b90915f91805193610cad8582613394565b610cb6816124e4565b60208301526001600160a01b0360e0610cf087610100604082015160608301510160808301510160a08301510160c0830151019101510290565b96876040860152015116610d1a575b604080515f8082526020820187905291810191909152606090f35b909192505a93610d398351916001600160a01b0360e084015116614acc565b15610de057906080610d5092015192839185615171565b9390505a900311610d68575061059b905f8080610cff565b60408051631101335b60e11b815260048101929092526024820152602760448201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760648201527f61734c696d69740000000000000000000000000000000000000000000000000060848201528060a481015b0390fd5b60848460405190631101335b60e11b8252600482015260406024820152601e60448201527f41413331207061796d6173746572206465706f73697420746f6f206c6f7700006064820152fd5b6020600319820112610400576004359067ffffffffffffffff82116104005761051591600401610b81565b346104005760206109fd610e6a36610e2c565b6124e4565b90602061051592818152019061090a565b3461040057610eac610e91366108db565b809291610e9c6121a1565b50610ea6826121ef565b50612296565b5f198201918211610ed95761059b91610ec491612282565b5160405191829160208352602083019061090a565b611d28565b906105159060e06080610f30818651610140865280516101408701526020810151610160870152604081015161018087015260608101516101a0870152015160a06101c08601526101e08501906104c3565b60208087015180518683015201516040850152946040810151805160608601526020015160808501526060810151805160a08601526020015160c0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b3461040057610fad610fa7366108db565b906126cb565b6040518091602082016020835281518091526040830190602060408260051b8601019301915f905b828210610fe457505050500390f35b919360019193955060206110038192603f198a82030186528851610ede565b9601920192018594939192610fd5565b3461040057604036600319011261040057602060043561103281610435565b6001600160a01b036110426105d4565b91165f52600182526110688160405f20906001600160c01b03165f5260205260405f2090565b546040805192901b67ffffffffffffffff1916178152f35b9181601f840112156104005782359167ffffffffffffffff8311610400576020838186019501011161040057565b906060600319830112610400576004356110c781610435565b916024359067ffffffffffffffff8211610400576110e791600401611080565b909160443590565b34610400575f8080611100366110ae565b939181604094929451948592833781018381520393f161111e61246a565b901561112657005b805190811561040057602001fd5b34610400576020366003190112610400576001600160a01b0360043561115981610435565b5f608060405161116881610656565b8281528260208201528260408201528260608201520152165f525f60205261059b60405f206111ed65ffffffffffff6001604051936111a685610656565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b346104005761124f36610b90565b9190915a928151936112618583613394565b61126a826124e4565b60208401526040850151936112b66effffffffffffffffffffffffffffff8660c08901511760608901511760808901511760a0890151176101008901511761012089015117111561275d565b6112e186610100604082015160608301510160808301510160a08301510160c0830151019101510290565b946113166113126112f55a89898988613565565b98602061130982516001600160a01b031690565b9101519061420a565b1590565b6113c0575a8303116113735750926113579260806113529360a061135e975a9560408601526060808601525a9003910135019101525a9061245d565b6127a9565b6064900490565b604080519283525f6020840152820152606090f35b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d697400006064820152608490fd5b610ddc82604051918291631101335b60e11b835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b34610400576020366003190112610400576001600160a01b0360043561143a81610435565b165f525f602052602060405f2054604051908152f35b346104005761059b61058f61146436610453565b95949094939193612816565b346104005761059b61058f61149761148736610453565b9691949095610572949394611dfc565b6114a46105858280611e8a565b613a8a565b34610400575f366003190112610400576115696114e57f00000000000000000000000000000000000000000000000000000000000000006153ac565b61150e7f0000000000000000000000000000000000000000000000000000000000000000615492565b602060405161151d82826106cc565b5f81528161157781830194601f1983013687376040519788977f0f00000000000000000000000000000000000000000000000000000000000000895260e0858a015260e08901906104c3565b9087820360408901526104c3565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b8281106115ab57505050500390f35b83518552869550938101939281019260010161159c565b34610400576040366003190112610400576115de600435610435565b60243567ffffffffffffffff811161040057610020903690600401611080565b346104005760603660031901126104005760043567ffffffffffffffff81116104005761162f903690600401610b81565b6024359061163c82610435565b60443567ffffffffffffffff81116104005761165c90369060040161079d565b906116656121a1565b507f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6118255761059b9260017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d6116bc611e1b565b926116c683613704565b6116d08484612d98565b9091945a6060880151886116e76060850185612a8f565b5f6003821161181d575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361180457505061175561176961176e956020840151604051938492638dd7712f60e01b60208501526040602485015260648401906142af565b90604483015203601f1981018352826106cc565b611f33565b9290965b5f946060966001600160a01b0381166117d9575b50509560806117c0969701519761179b61070d565b988952602089015260408801526060870152608086015260a0850152151560c0840152565b60e08201526117cd614258565b60405191829182610e6f565b6117c097505f92965090829182602083519301915af19560806117fa61246a565b9795919796611786565b611815955090611769913691610767565b929096611772565b5081356116f1565b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b60203660031901126104005761002060043561186881610435565b6128a1565b34610400575f36600319011261040057335f525f602052600160405f2001805463ffffffff8160781c161561194c576118d56118c76102a0836118bb6118b661190f9660ff1690565b6128fa565b60781c63ffffffff1690565b65ffffffffffff4216612945565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a9080602081016103fb565b606460405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b34610400576020366003190112610400576100205f8080806004356119b481610435565b6001600160a01b0360016119d8336001600160a01b03165f525f60205260405f2090565b0191611a66835493611a3e65ffffffffffff611a2a611a10611a04896001600160701b039060081c1690565b6001600160701b031690565b97611a1c891515612963565b60981c65ffffffffffff1690565b16611a368115156129ae565b4210156129f9565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03831681526020810185905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2165af1611aad61246a565b50612a44565b346104005761059b611acc611ac736610e2c565b612b84565b604051918291602083526020830190610ede565b8015150361040057565b34610400576102203660031901126104005760043560243567ffffffffffffffff811161040057611b1f903690600401610b81565b3660431901916101c083126104005761014060405193611b3e85610656565b126104005761059b92611bed92611b536106fd565b611b5d6044610446565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c0820152611b9b610124610446565b60e0820152610144356101008201526101643561012082015282526101843560208301526101a43560408301526101c43560608301526101e43560808301526102043592611be884611ae0565b612f73565b604080519384526020840192909252908201529081906060820190565b3461040057611c24611c1b366110ae565b929190916131ab565b9061059b604051928392151583526040602084015260408301906104c3565b3461040057611c65611c54366108db565b809291611c5f612649565b506126cb565b5f198201918211610ed95761059b91611c7d91612282565b51604051918291602083526020830190610ede565b15611c9957565b606460405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b15611ce457565b606460405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b634e487b7160e01b5f52601160045260245ffd5b906113888201809211610ed957565b9060018201809211610ed957565b91908201809211610ed957565b15611d6d57565b606460405162461bcd60e51b815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611db857565b606460405162461bcd60e51b815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b60405190611e0982610677565b60606040835f81525f60208201520152565b60405190611e2882610656565b5f608083604051611e3881610693565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b90359061011e1981360301821215610400570190565b6040513d5f823e3d90fd5b6040517f09ccb880000000000000000000000000000000000000000000000000000000008152602081600481305afa908115611f20575f91611eeb575090565b90506020813d602011611f18575b81611f06602093836106cc565b81010312610400575161051581610435565b3d9150611ef9565b611ea0565b5f198114610ed95760010190565b9392909193825190606082015181519081612120575b505050505a9003608082015101925f935a91835191611f67836150e7565b92611f7c60e08201516001600160a01b031690565b91611f9260808801518203606084015190615107565b01925f926001600160a01b03811690816120375750505090611fbf6040949392516001600160a01b031690565b945b5a9003010102920151908282105f1461200557611fdd5f613f13565b7fdeadaa51000000000000000000000000000000000000000000000000000000005f5260205ffd5b826120299203906001600160a01b03165f525f60205260405f209081540180915590565b506120335f613f13565b9190565b9692825161204e575b505050906040939291611fc1565b919950949392505a986120605f613f13565b60a05a920195865191813b15610400578692835f8094896120b3604051988997889687947f7c627b2100000000000000000000000000000000000000000000000000000000865202908660048601613f22565b0393f19081612106575b506120e657610ddc6120cd613ed2565b6040519182916365c8fd4d60e01b835260048301613f54565b6040946120fc915a9003995a9003905190615107565b9192935f80612040565b806121145f61211a936106cc565b8061059f565b5f6120bd565b5f80949360206001600160a01b0383965116910192f115612144575f808080611f49565b610ddc61214f613ed2565b6040519182917f462c71b20000000000000000000000000000000000000000000000000000000083526020600484015260248301906104c3565b67ffffffffffffffff81116106725760051b60200190565b60405190610100820182811067ffffffffffffffff82111761067257604052606060e0835f81525f60208201525f60408201525f838201525f60808201525f60a08201525f60c08201520152565b906121f982612189565b61220660405191826106cc565b8281528092612217601f1991612189565b01905f5b82811061222757505050565b6020906122326121a1565b8282850101520161221b565b634e487b7160e01b5f52603260045260245ffd5b90821015612269576105159160051b810190611e8a565b61223e565b6040519061227d6020836106cc565b5f8252565b80518210156122695760209160051b010190565b61229f826121ef565b915f5b8181106122af5750505090565b6122ba818385612252565b9060205f6040516122cb83826106cc565b526122d46121a1565b507f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c61182557600192837f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d612329611e1b565b9061233381613704565b8261233e8383612d98565b929091935a90866060810151916123586060820182612a8f565b5f60038211612438575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361242057505061176985638dd7712f60e01b926117556123c598860151916040519586948501526040602485015260648401906142af565b93905b60806060960151966123d861070d565b978852870152604086015283850152608084015260a08301525f60c083015260e0820152612404614258565b61240e8287612282565b526124198186612282565b50016122a2565b612431965061176992503691610767565b93906123c8565b508135612362565b600319810191908211610ed957565b5f19810191908211610ed957565b91908203918211610ed957565b3d15612494573d9061247b8261074b565b9161248960405193846106cc565b82523d5f602084013e565b606090565b156124a057565b606460405162461bcd60e51b815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b610515906124f181614177565b6124f9613f9f565b916125d581359261250984610435565b6020830135908015612611576125c790935b61253161252b6060830183612a8f565b90615637565b90608081013560a08201359061255361252b60c08501359460e0810190612a8f565b93604051988997602089019b8c94919261010096939998979491996001600160a01b0361012088019b7f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e895216602088015260408701526060860152608085015260a084015260c083015260e08201520152565b03601f1981018352826106cc565b51902090604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b506125c76126226040850185612a8f565b9081604051918237209361251b565b6040519061263e826106b0565b5f6020838281520152565b6040519061265682610656565b8160405161266381610656565b5f81525f60208201525f60408201525f6060820152606060808201528152612689612631565b6020820152612696612631565b60408201526126a3612631565b60608201526080604051916126b7836106b0565b5f83526126c2612631565b60208401520152565b6126d482612189565b916126e260405193846106cc565b808352601f196126f182612189565b015f5b8181106127395750505f5b81811061270c5750505090565b8061271d611ac76001938587612252565b6127278287612282565b526127328186612282565b50016126ff565b602090612744612649565b828288010152016126f4565b908092918237015f815290565b1561276457565b60405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152606490fd5b90607382029180830460731490151715610ed957565b3561051581610435565b604051906127d86020836106cc565b5f808352366020840137565b906127ee8261074b565b6127fb60405191826106cc565b828152809261280c601f199161074b565b0190602036910137565b9061282991969594939296610572611dfc565b6001600160a01b0361283b8680611e8a565b61286460208801359161284d83610435565b612855611e1b565b9061285f81613704565b612d98565b50505016156128765761051594613cae565b50505050506128836127c9565b6040519061289082610677565b5f82525f6020830152604082015290565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b036128ee34856001600160a01b03165f525f60205260405f209081540180915590565b936040519485521692a2565b1561290157565b606460405162461bcd60e51b815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b9065ffffffffffff8091169116019065ffffffffffff8211610ed957565b1561296a57565b606460405162461bcd60e51b815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b156129b557565b606460405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b15612a0057565b606460405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b15612a4b57565b606460405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b903590601e1981360301821215610400570180359067ffffffffffffffff82116104005760200191813603831361040057565b906014116104005790601490565b909291928360141161040057831161040057601401916013190190565b909291928360341161040057831161040057603401916033190190565b356bffffffffffffffffffffffff19811692919060148210612b2a575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b60405190612b57826106b0565b6004546001600160a01b03168252604051602083612b74836106b0565b6005548352600654828401520152565b612b8c612649565b50612b95611e1b565b90612b9f81613704565b612ba98282612d98565b50919092612bb78385614372565b612bd4612bcf60e0835101516001600160a01b031690565b61451c565b91612c02612bee612bcf84516001600160a01b0390511690565b91612bf7612631565b506040810190612a8f565b9060148210612cdd57612c24612c1e612c2a93612bcf93612ac2565b90612b0a565b60601c90565b916001600160a01b038616946080820151966060604084015193015192612c4f6106ee565b9889526020890152604088015260608701526080860152612c6e612b4a565b9380151580612cd2575b612ca0575b50612c866106ee565b948552602085015260408401526060830152608082015290565b909350612cac8161451c565b612cc6612cb761071d565b6001600160a01b039093168352565b6020820152925f612c7d565b506001811415612c78565b5050612c2a5f61451c565b15612cf05750565b60405190631101335b60e11b825260048201526040602482015280610ddc60448201604090601881527f41413934206761732076616c756573206f766572666c6f77000000000000000060208201520190565b15612d4b5750565b60408051631101335b60e11b815260048101929092526024820152601a60448201527f4141323520696e76616c6964206163636f756e74206e6f6e63650000000000006064820152608490fd5b9190915f915a93805192612dac8482613394565b612dc5604051612dbb836124e4565b6020850152604052565b604084015195612e0d5f6effffffffffffffffffffffffffffff8960c08901511760608901511760808901511760a08901511761010089015117610120890151171115612ce8565b612e58612e3b86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b806040860152612e4f608085013560801c90565b9085855f613565565b96612e815f612e7c612e7189516001600160a01b031690565b60208a01519061420a565b612d43565b5a820311612f20576060946001600160a01b03612ea960e05a9301516001600160a01b031690565b16151580612f18575b612ee0575b60809291612ece61135761135260a0945a9061245d565b9660608601525a900391013501910152565b945061135295509060a0608092612ef68361455c565b50612ece611357612f0887865f6140bb565b9a90999450505050919250612eb7565b506001612eb2565b604051631101335b60e11b815280610ddc5f60048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b939092915f935a8251612f868184613394565b612f9f604051612f95856124e4565b6020870152604052565b604081015197612fe7816effffffffffffffffffffffffffffff8b60c08601511760608601511760808601511760a08601511761010086015117610120860151171115612ce8565b61303261301583610100604082015160608301510160808301510160a08301510160c0830151019101510290565b806040880152613029608087013560801c90565b90878785613565565b9861305682612e7c61304b86516001600160a01b031690565b60208701519061420a565b5a840311611373576060966001600160a01b0361307e60e05a9501516001600160a01b031690565b16151590816130de575b506130a6575b5060809291612ece61135761135260a0945a9061245d565b611352975060a091965091612ece6113576130cf878780976130c960809a61455c565b506140bb565b9a90999450505050919261308e565b90505f613088565b908060209392818452848401375f828201840152601f01601f1916010190565b6040906001600160a01b03610515959316815281602082015201916130e6565b908151811015612269570160200190565b919060408382031261040057825161314e81611ae0565b9260208101519067ffffffffffffffff8211610400570181601f820112156104005780519061317c8261074b565b9261318a60405194856106cc565b8284526020838301011161040057815f9260208093018386015e8301015290565b91925f936001600160a01b036060941691823b1561040057613229935f80946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501613106565b0393f190816132e1575b5061090657505061324261246a565b9060048251106132d35761325e6132598351612440565b6127e4565b60045b83518110156132bd57806132a061327a60019387613126565b517fff000000000000000000000000000000000000000000000000000000000000001690565b6132b66132ac83612440565b915f1a9185613126565b5301613261565b5061090691925060208082518301019101613137565b90506132dd6127c9565b5f91565b806121145f6132ef936106cc565b5f613233565b610451336128a1565b1561330557565b606460405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b1561335057565b606460405162461bcd60e51b815260206004820152601660248201527f4141393820696e76616c6964207061796d6173746572000000000000000000006044820152fd5b61342b906133b16133a4826127bf565b6001600160a01b03168452565b602081013560208401526133de6080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c084015261341560c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e0810190612a8f565b8092919261343857505050565b613454816104519461344f603460e09510156132fe565b61457b565b60a08501526080840152916134736001600160a01b0384161515613349565b01906001600160a01b03169052565b92916134c6908251926001600160a01b0360e081865116956134b26134aa60408b018b612a8f565b90865f6145d9565b015116905f91159687613532575b5f6149c5565b926134ce5750565b5f6134d891614acc565b156134df57565b604051631101335b60e11b815280610ddc5f60048301608091815260406020820152601760408201527f41413231206469646e2774207061792070726566756e6400000000000000000060608201520190565b915061354e856001600160a01b03165f525f60205260405f2090565b54801561355e57505f5b916134c0565b5f03613558565b929094936135ab908351936001600160a01b0360e0818751169661359761358f60408d018d612a8f565b90868c6145d9565b015116905f91159889613613575b876149c5565b946135b557505050565b6135be91614acc565b156135c65750565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b915061362f866001600160a01b03165f525f60205260405f2090565b548581111561364157505f5b916135a5565b850361363b565b915f5b828110156136fe5761365b611e1b565b908060051b85013591605e1986360301831215610400576136926001938701916136886105858480611e8a565b61285f8380611e8a565b505050602081016136b16136a5826127bf565b6001600160a01b031690565b156136f7575f91826136d16136c682946127bf565b926040810190612a8f565b91906136e260405180948193612750565b03925af1506136ef61246a565b505b0161364b565b50506136f1565b50915050565b613737906137156040820182612a8f565b9161372f81359161372583610435565b60e0810190612a8f565b939092614af1565b80516137405750565b610ddc90604051918291631101335b60e11b83525f60048401526040602484015260448301906104c3565b939291613791906001600160a01b036040931686526060602087015260608601906104c3565b930152565b939490946137a2611dfc565b5082156139ed576137e2926137b561226e565b50915f6137c45a886002614e86565b5a906040519687928392631efc84dd60e31b84528c6004850161376b565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215611f20575f945f936139cb575b508294809381156139a957505061383f909592919394955b85611d59565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b84613877888561245d565b1061397f575a61388688611d3c565b116139485791869593918995935f8c8b6138b86138af6138a9886138d89f611d59565b60011c90565b809b6002614e86565b835a936040519e8f9586948593631efc84dd60e31b85526004850161376b565b03925af1988915611f20575f905f9a613921575b501561390c575050506138fe8461244f565b95915b93909294959161386c565b9396509461391b919750611d4b565b94613901565b90506139409199503d805f833e61393881836106cc565b810190613137565b98905f6138ec565b7fe2c4d0be000000000000000000000000000000000000000000000000000000005f5260048290526024879052604483905260645ffd5b9650965050919550506139a1915061399561072c565b93845215156020840152565b604082015290565b965096505095505050506139a16139be61072c565b5f81529215156020840152565b9092506139e39194503d805f833e61393881836106cc565b939093915f613821565b90613a0292505a905f6137c45a886002614e86565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611f20575f945f94613a68575b508394613a5081945a9061245d565b9481156139a957505061383f90959291939495613839565b909350613a809194503d805f833e61393881836106cc565b939093925f613a41565b93949094613a96611dfc565b508215613c1157613ab892613aa961226e565b50915f6137c45a886003614e86565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215611f20575f945f93613bef575b508294809381156139a9575050613b149095929193949585611d59565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b84613b4c888561245d565b1061397f575a613b5b88611d3c565b116139485791869593918995935f8c8b6138b8613b7e6138a988613b879f611d59565b809b6003614e86565b03925af1988915611f20575f905f9a613bd0575b5015613bbb57505050613bad8461244f565b95915b939092949591613b41565b93965094613bca919750611d4b565b94613bb0565b9050613be79199503d805f833e61393881836106cc565b98905f613b9b565b909250613c079194503d805f833e61393881836106cc565b939093915f613af7565b90613c2692505a905f6137c45a886003614e86565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611f20575f945f94613c8c575b508394613c7481945a9061245d565b9481156139a9575050613b1490959291939495613839565b909350613ca49194503d805f833e61393881836106cc565b939093925f613c65565b93949094613cba611dfc565b508215613e3557613cdc92613ccd61226e565b50915f6137c45a886001614e86565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215611f20575f945f93613e13575b508294809381156139a9575050613d389095929193949585611d59565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b84613d70888561245d565b1061397f575a613d7f88611d3c565b116139485791869593918995935f8c8b6138b8613da26138a988613dab9f611d59565b809b6001614e86565b03925af1988915611f20575f905f9a613df4575b5015613ddf57505050613dd18461244f565b95915b939092949591613d65565b93965094613dee919750611d4b565b94613dd4565b9050613e0b9199503d805f833e61393881836106cc565b98905f613dbf565b909250613e2b9194503d805f833e61393881836106cc565b939093915f613d1b565b90613e4a92505a905f6137c45a886001614e86565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611f20575f945f94613eb0575b508394613e9881945a9061245d565b9481156139a9575050613d3890959291939495613839565b909350613ec89194503d805f833e61393881836106cc565b939093925f613e89565b3d6108008111613ef6575b604051906020818301016040528082525f602083013e90565b50610800613edd565b634e487b7160e01b5f52602160045260245ffd5b60031115613f1d57565b613eff565b90949392946003811015613f1d57606092613f4a9183526080602084015260808301906104c3565b9460408201520152565b9060a0610515925f815260606020820152601460608201527f4141353020706f73744f70207265766572746564000000000000000000000000608082015281604082015201906104c3565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016301480614092575b15613ffa577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261408c60c0826106cc565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614613fd1565b9290925a9383516140de6001600160a01b0360e083015116604087015190614acc565b15614103579060806140f592015194859184615171565b9390945a900311610d685750565b60848360405190631101335b60e11b8252600482015260406024820152601e60448201527f41413331207061796d6173746572206465706f73697420746f6f206c6f7700006064820152fd5b909280926014946bffffffffffffffffffffffff199060601b1683528483013701015f815290565b6141846040820182612a8f565b90916141936113128385615266565b614203576141a36141a8916127bf565b6152a8565b91601482116141df57505060405161408c816125c76020820194856014916bffffffffffffffffffffffff199060601b1681520190565b8161408c926141ed92612ad0565b91906125c760405193849260208401968761414f565b5050505f90565b6001600160a01b03165f52600160205267ffffffffffffffff6142448260401c60405f20906001600160c01b03165f5260205260405f2090565b9182549261425184611f25565b9055161490565b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d565b9035601e198236030181121561040057016020813591019167ffffffffffffffff821161040057813603831361040057565b610515916142cd816142c084610446565b6001600160a01b03169052565b6020820135602082015261436361435761431e6143036142f0604087018761427d565b61012060408801526101208701916130e6565b614310606087018761427d565b9086830360608801526130e6565b6080850135608085015260a085013560a085015260c085013560c085015261434960e086018661427d565b9085830360e08701526130e6565b9261010081019061427d565b916101008185039101526130e6565b6143836001600160a01b039161554a565b91166144c9576144765761439e6001600160a01b039161554a565b9116614423576143aa57565b604051631101335b60e11b815280610ddc5f6004830160a091815260406020820152602160408201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560608201527f650000000000000000000000000000000000000000000000000000000000000060808201520190565b604051631101335b60e11b815280610ddc5f60048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b604051631101335b60e11b815280610ddc5f60048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b604051631101335b60e11b815280610ddc5f60048301608091815260406020820152601460408201527f41413234207369676e6174757265206572726f7200000000000000000000000060608201520190565b906001600160a01b0361452d612631565b92165f525f60205263ffffffff600160405f2001546001600160701b038160081c16845260781c166020830152565b61456a9060e0810190612a8f565b602411610400576014013560801c90565b9091826014116104005781359183602411610400576014810135936034116104005760609290921c92608090811c9260240135901c90565b90816020910312610400575161051581610435565b9160206105159381815201916130e6565b929091816145e8575b50505050565b8251516001600160a01b0316936145ff8383615266565b6148bc57843b61486f5760148310614822575f602061461f6136a5611eab565b604087510151604051809481937f570e1a360000000000000000000000000000000000000000000000000000000083528261465e8b8b600484016145c8565b0393f1908115611f20575f916147f3575b506001600160a01b03811695861561479e576001600160a01b0316809603614749573b156146fc5750612c24612c1e7fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d936146c993612ac2565b602083810151935160e00151604080516001600160a01b039485168152939091169183019190915290a35f8080806145e2565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b610ddc82604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b610ddc83604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b614815915060203d60201161481b575b61480d81836106cc565b8101906145b3565b5f61466f565b503d614803565b60408051631101335b60e11b815260048101929092526024820152601760448201527f4141393920696e6974436f646520746f6f20736d616c6c0000000000000000006064820152608490fd5b60408051631101335b60e11b815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b5090601481116148cc5750505050565b806148e89160406148de6136a5611eab565b9551015193612ad0565b9190833b15610400575f809461492e96604051978896879586937fc09ad0d900000000000000000000000000000000000000000000000000000000855260048501613106565b0393f18015611f2057614944575b8080806145e2565b806121145f614952936106cc565b5f61493c565b614970604092959493956060835260608301906142af565b9460208201520152565b60a0906105159392815260606020820152600d60608201527f4141323320726576657274656400000000000000000000000000000000000000608082015281604082015201906104c3565b9291602095948692614a2f5f93614a216149e882516001600160a01b0390511690565b976040519b8c930151888401957f19822f7c00000000000000000000000000000000000000000000000000000000875260248501614958565b03601f1981018a52896106cc565b8285895193f15f519460203d03614ac4575b60405215614a4d575050565b3b614a9f5760408051631101335b60e11b815260048101929092526024820152601960448201527f41413230206163636f756e74206e6f74206465706c6f796564000000000000006064820152608490fd5b614aa7613ed2565b90610ddc6040519283926365c8fd4d60e01b84526004840161497a565b5f9150614a41565b6001600160a01b03165f525f60205260405f2090815481811061420357039055600190565b50929192159081614ba6575b50614b69576014811015614b16575b505061051561226e565b601411610400573560601c3b15614b2e575f80614b0c565b604051614b3c6040826106cc565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b5050604051614b796040826106cc565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b155f614afd565b6101208136031261040057614bc361073b565b90614bcd81610446565b825260208101356020830152604081013567ffffffffffffffff811161040057614bfa903690830161079d565b6040830152606081013567ffffffffffffffff811161040057614c20903690830161079d565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff811161040057614c64903690830161079d565b60e08301526101008101359067ffffffffffffffff821161040057614c8b9136910161079d565b61010082015290565b60041115613f1d57565b916020936fffffffffffffffffffffffffffffffff198092603497946bffffffffffffffffffffffff199060601b1686521660148501521660248301528051928391018483015e01015f815290565b80516001600160a01b031682526105159160208201516020820152610100614d6e614d3e614d2c604086015161012060408701526101208601906104c3565b606086015185820360608701526104c3565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526104c3565b920151906101008184039101526104c3565b60806101a0916101208151614d9e8682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c0870152614df260e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b614e5d614e5261020093969594965f84526102206020850152610220840190614ced565b956040830190614d80565b0152565b61020090614e5d614e525f949695968584526102206020850152610220840190614ced565b614e8e611e1b565b614ea0614e9b8480611e8a565b614bb0565b614ea983614c94565b6002831461500257614eba83614c94565b60038314614f7b57505080614ed0600192614c94565b14614f1a5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b806125c7614f45614f3e614f33602061051596016127bf565b936040810190612a8f565b3691610767565b936040519485937f444034730000000000000000000000000000000000000000000000000000000060208601526024850161376b565b9150926fffffffffffffffffffffffffffffffff614fc2614fbb614fa28661051597611e8a565b608001356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526125c76040519384927fc579f76b00000000000000000000000000000000000000000000000000000000602085015260248401614e61565b9150926125c7906fffffffffffffffffffffffffffffffff198461508d61507f61503b615035613725856105159b611e8a565b9061457b565b9291905060609060e08a01956034875151116150c3575b5060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b169060208601614c9e565b03601f1981018452836106cc565b526040519485937f21e60b3700000000000000000000000000000000000000000000000000000000602086015260248501614e2e565b6150e09192506150d961372582614f3e93611e8a565b8091612aed565b905f615052565b61012061010082015191015148018082105f14615102575090565b905090565b90619c40820181111561512057606491600a9103020490565b50505f90565b60a0906105159392815260606020820152600d60608201527f4141333320726576657274656400000000000000000000000000000000000000608082015281604082015201906104c3565b925f80919593929560405196826151e660e06020880151976151d78c6151c86040840151602083019c8d997f52b7512c000000000000000000000000000000000000000000000000000000008b5260248501614958565b038d601f19820190528d6106cc565b5101516001600160a01b031690565b895193f1933d91825f833e5193815160408301968751901591821561525a575b508115615248575b506152235750601f909101601f191601604052565b61522b613ed2565b90610ddc6040519283926365c8fd4d60e01b845260048401615126565b9050601f605f1985019101105f61520e565b6040141591505f615206565b906002116152a357356bffffffffffffffffffffffff19167f77020000000000000000000000000000000000000000000000000000000000001490565b505f90565b60175f80833c5f51907fef010000000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000083160361531d5750612c2461530b6105159260181b90565b6bffffffffffffffffffffffff191690565b3b156153685760405162461bcd60e51b815260206004820152601860248201527f6e6f7420616e204549502d373730322064656c656761746500000000000000006044820152606490fd5b606460405162461bcd60e51b815260206004820152601260248201527f73656e64657220686173206e6f20636f646500000000000000000000000000006044820152fd5b60ff81146153bd5761051590615642565b506040515f6002548060011c91600182168015615488575b602084108114615474578385528492602084019190811561545b5750600114615406575b50610515925003826106cc565b60025f90815291507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b84831061544457506105159350015f6153f9565b805482840152859350602090920191600101615430565b60ff191682525061051593151560051b0190505f6153f9565b634e487b7160e01b5f52602260045260245ffd5b92607f16926153d5565b60ff81146154a35761051590615642565b506040515f6003548060011c91600182168015615540575b602084108114615474578385528492602084019190811561545b57506001146154eb5750610515925003826106cc565b60035f90815291507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b84831061552957506105159350015f6153f9565b805482840152859350602090920191600101615515565b92607f16926154bb565b8015615630575f6040805161555e81610677565b828152826020820152015265ffffffffffff8160a01c168015615623575b615604906155eb61559361559e6155938660d01c90565b65ffffffffffff1690565b926155c36001600160a01b036155b261072c565b971687906001600160a01b03169052565b6155d96020870194859065ffffffffffff169052565b65ffffffffffff166040860181905290565b4211908115615607575b5091516001600160a01b031690565b91565b5161561a915065ffffffffffff16615593565b4211155f6155f5565b5065ffffffffffff61557c565b505f905f90565b816040519182372090565b60ff811690601f8211615671576040519161565e6040846106cc565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffdfea264697066735822122066be6c644e99dfb53e60d55c34a4dabe62af7d5521ecfb3c9571cc53c1e9b61264736f6c634300081c0033", "sourceMap": "938:15711:28:-:0;;;;;;;;;-1:-1:-1;938:15711:28;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;;3443:47:2;;2894:10;938:15711:28;3123:22:2;938:15711:28;2885:20:2;2894:10;-1:-1:-1;;;;;938:15711:28;2885:8:2;938:15711:28;2885:8:2;938:15711:28;;;2885:8:2;938:15711:28;;;2885:20:2;2923:19;2915:58;2923:19;;;2915:58;:::i;:::-;2983:114;3023:20;;;938:15711:28;;3004:39:2;938:15711:28;;;;;;;;;;;;;;3004:39:2;-1:-1:-1;3004:39:2;2983:114;:::i;:::-;938:15711:28;;-1:-1:-1;;;;;938:15711:28;;;;-1:-1:-1;;;;;3136:9:2;938:15711:28;;3123:22:2;:::i;:::-;3163:9;3155:40;3163:9;;;3155:40;:::i;:::-;3205:53;-1:-1:-1;;;;;3213:26:2;;;3205:53;:::i;:::-;938:15711:28;;;:::i;:::-;;;;3023:20:2;938:15711:28;3291:137:2;;938:15711:28;-1:-1:-1;;;;;938:15711:28;;3291:137:2;;;938:15711:28;;;;3291:137:2;;;938:15711:28;;3291:137:2;;;938:15711:28;3268:20:2;2894:10;-1:-1:-1;;;;;938:15711:28;2885:8:2;938:15711:28;2885:8:2;938:15711:28;;;2885:8:2;938:15711:28;;;3268:20:2;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;938:15711:28;;;;;;3291:137:2;938:15711:28;;;;;;;;;;;;;2894:10:2;;938:15711:28;;;;;;;3443:47:2;;;;938:15711:28;;-1:-1:-1;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;938:15711:28;;;;;:::o;:::-;;;;;;:::i;:::-;:::o;:::-;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;938:15711:28;;;;;;;;-1:-1:-1;;938:15711:28;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;10874:221;10789:13;938:15711;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;10649:73;938:15711;;:::i;:::-;10619:19;10602:15;;;;:::i;:::-;10619:19;;;;:::i;:::-;10679:15;;;;:::i;:::-;10712:9;;10649:73;;:::i;:::-;;10789:13;:::i;:::-;10840:15;;;;;:::i;:::-;;:::i;:::-;10874:221;:::i;:::-;938:15711;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;938:15711:28;;;;;;;:::i;:::-;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;-1:-1:-1;;;;;938:15711:28;;;;;;:::o;:::-;;;;;;-1:-1:-1;;938:15711:28;;;;;;-1:-1:-1;;;;;938:15711:28;;;;;;674:36:1;694:10;;-1:-1:-1;938:15711:28;674:19:1;938:15711:28;;;-1:-1:-1;938:15711:28;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;674:36:1;:38;938:15711:28;;674:38:1;:::i;:::-;938:15711:28;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;2441:15;938:15711;;;2441:15;938:15711;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;938:15711:28;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;938:15711:28;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15711:28;;;;;2915:20:27;;:::i;:::-;938:15711:28;;;;;;;;;;;;-1:-1:-1;;938:15711:28;;;;;;;1065:197:3;938:15711:28;;;;;;;;;-1:-1:-1;;938:15711:28;;;;;279:74:1;938:15711:28;;;;;:::i;:::-;-1:-1:-1;;;;;938:15711:28;;:::i;:::-;;;-1:-1:-1;938:15711:28;279:74:1;938:15711:28;;;-1:-1:-1;938:15711:28;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;279:74:1;938:15711:28;;;;;;;;;;;;;-1:-1:-1;;938:15711:28;;;;;;;;;:::i;:::-;;;4863:10:2;-1:-1:-1;938:15711:28;-1:-1:-1;938:15711:28;;;-1:-1:-1;938:15711:28;;;;4939:32:2;;;;938:15711:28;;-1:-1:-1;5026:31:2;;;-1:-1:-1;;;;;5026:31:2;;;;;5211:38;5026:31;;:::i;:::-;938:15711:28;;;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;4863:10:2;;5072:54;;;938:15711:28;5154:47:2;;;;:::i;:::-;;5211:38;:::i;938:15711:28:-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;13352:17:27;;;13407:7;;;;;:::i;:::-;13448:21;;;:::i;:::-;13425:20;;;938:15711:28;-1:-1:-1;;;;;13542:17:27;13500:28;;9490:20;9273:28;;;938:15711:28;9304:20:27;;;938:15711:28;1666:4:27;9343:37;;;938:15711:28;1666:4:27;9383:31;;;938:15711:28;1666:4:27;9417:26;;;938:15711:28;1666:4:27;9490:20;;938:15711:28;;9103:424:27;;13500:28;13480:17;;;;;938:15711:28;13542:17:27;938:15711:28;;13538:166:27;;938:15711:28;13480:17:27;938:15711:28;;;;;;;;;;;;;;;;;;;;;;13538:166:27;16432:9;;;;;16485:14;16623:48;16485:14;;16533:17;-1:-1:-1;;;;;13542:17:27;16533;;938:15711:28;;16623:48:27;:::i;:::-;16622:49;16618:146;;16810:37;;16889:73;16810:37;;938:15711:28;16889:73:27;;;;;:::i;:::-;16989:9;;;;1666:4;;16980:43;16976:149;;13589:104;938:15711:28;13589:104:27;13538:166;;;;;16976:149;13480:17;938:15711:28;;-1:-1:-1;;;17050:60:27;;938:15711:28;17050:60:27;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;17050:60:27;;;;16618:146;16698:51;938:15711:28;13480:17:27;938:15711:28;16698:51:27;-1:-1:-1;;;16698:51:27;;938:15711:28;16698:51:27;;938:15711:28;13480:17:27;938:15711:28;;;;;;;;;;;;;;16698:51:27;938:15711:28;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;15098:25;938:15711;;;:::i;:::-;;;;;;:::i;:::-;;15044:33;;;:::i;:::-;;15098:25;:::i;:::-;-1:-1:-1;;938:15711:28;;;;;;;;15141:23;;;;:::i;:::-;;938:15711;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15711:28;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;938:15711:28;;:::i;:::-;;;-1:-1:-1;938:15711:28;507:19:1;938:15711:28;;507:32:1;938:15711:28;;-1:-1:-1;938:15711:28;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;507:32:1;938:15711:28;;;;;;;-1:-1:-1;;938:15711:28;507:55:1;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;938:15711:28;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;-1:-1:-1;938:15711:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6020:27;;;;;:::i;:::-;6061:8;;6057:175;;938:15711;6057:175;938:15711;;6089:22;;;6085:36;;6135:87;;;938:15711;;;;;;-1:-1:-1;;938:15711:28;;;;-1:-1:-1;;;;;938:15711:28;;;;;:::i;:::-;-1:-1:-1;938:15711:28;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15711:28;-1:-1:-1;938:15711:28;;;;-1:-1:-1;938:15711:28;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25110:9:27;;;;25159:17;;;25214:7;;;;;:::i;:::-;25255:21;;;:::i;:::-;25232:20;;;938:15711:28;25471:28:27;;;938:15711:28;25532:26:27;25766:70;938:15711:28;25532:26:27;;;;938:15711:28;25532:49:27;25584:20;;;938:15711:28;25532:72:27;25619:37;;;938:15711:28;25532:124:27;25659:31;;;938:15711:28;25532:158:27;25693:20;;;938:15711:28;25532:181:27;25728:28;;;938:15711:28;25532:224:27;25774:33;;25766:70;:::i;:::-;25873:28;;9490:20;9273:28;;;938:15711:28;9304:20:27;;;938:15711:28;1666:4:27;9343:37;;;938:15711:28;1666:4:27;9383:31;;;938:15711:28;1666:4:27;9417:26;;;938:15711:28;1666:4:27;9490:20;;938:15711:28;;9103:424:27;;25873:28;26000:9;26025:55;26026:54;25928:82;26000:9;25928:82;;;;;:::i;:::-;938:15711:28;25232:20:27;938:15711:28;;;-1:-1:-1;;;;;938:15711:28;;;;26066:13:27;;938:15711:28;26026:54:27;;:::i;:::-;26025:55;;938:15711:28;26025:55:27;26021:140;;26208:9;1666:4;;26199:41;26195:138;;26406:9;;26738:32;26406:9;25619:37;26739:24;26406:9;25659:31;26737:40;26406:9;;26497:17;25471:28;26497:17;;938:15711:28;25584:20:27;26546:23;;;938:15711:28;26648:9:27;1666:4;;26660:25;;938:15711:28;1666:4:27;26618:18;;938:15711:28;26754:9:27;26739:24;;:::i;:::-;26738:32;:::i;:::-;26774:3;938:15711:28;;;;26737:40:27;25471:28;938:15711:28;;;;;;;;;;;;;;;;26195:138:27;25471:28;938:15711:28;;-1:-1:-1;;;26267:51:27;;938:15711:28;26267:51:27;;938:15711:28;;;;;;;;;;;;;;;;;;;;17050:60:27;26021:140;26103:47;938:15711:28;25471:28:27;938:15711:28;26103:47:27;;;-1:-1:-1;;;26103:47:27;;938:15711:28;26103:47:27;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15711:28;;;;-1:-1:-1;;;;;938:15711:28;;;;;:::i;:::-;;-1:-1:-1;938:15711:28;-1:-1:-1;938:15711:28;;;;-1:-1:-1;938:15711:28;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;11564:152;11479:13;938:15711;;;:::i;:::-;;;;;;;;;;;:::i;11479:13::-;11530:15;;;;;:::i;:::-;11564:152;:::i;938:15711::-;;;;;;-1:-1:-1;;938:15711:28;;;;;6099:41:21;:5;:41;:::i;:::-;6554:47;:8;:47;:::i;:::-;938:15711:28;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5590:13:21;;938:15711:28;;;;5625:4:21;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15711:28;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15711:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;637:66:16;3321:69:20;1413:93:16;;938:15711:28;3550:68:20;1624:4:16;637:66;3550:68:20;938:15711:28;;:::i;:::-;13747:2;;;;:::i;:::-;13871:40;;;;:::i;:::-;3193:1327:27;;;3449:9;3517:20;;;938:15711:28;3610:15:27;;3517:20;3610:15;;;;:::i;:::-;-1:-1:-1;3705:160:27;;;;;938:15711:28;;;-1:-1:-1;;;3882:51:27;3895:38;;4037:17;;938:15711:28;3982:74:27;4113:53;4037:17;;;;938:15711:28;;;3982:74:27;;;-1:-1:-1;;;4037:17:27;3982:74;;;938:15711:28;3982:74:27;;;938:15711:28;;;;;;:::i;:::-;;;;;;3982:74:27;938:15711:28;;3982:74:27;;;;;;:::i;:::-;4113:53;:::i;:::-;4074:92;;3878:626;;-1:-1:-1;14040:25:28;3517:20:27;938:15711:28;-1:-1:-1;;;;;938:15711:28;;14075:110;;3878:626:27;14231:15:28;;;;14202:270;14231:15;;;938:15711;;;;:::i;:::-;;;;14202:270;;;938:15711;14202:270;;;938:15711;3517:20:27;14202:270:28;;938:15711;14231:15;14202:270;;938:15711;14202:270;;;938:15711;;;14202:270;;;938:15711;;14202:270;;;;938:15711;1246:1:16;;:::i;:::-;938:15711:28;;;;;;;:::i;14075:110::-;14202:270;14147:27;;-1:-1:-1;14147:27:28;;;;;;;;;;;;;;;;14231:15;14147:27;;:::i;:::-;14115:59;14075:110;;;;;;3878:626:27;4345:48;938:15711:28;;;;;;;;:::i;4345:48:27:-;4306:87;;3878:626;;;3705:160;-1:-1:-1;3705:160:27;;;;1413:93:16;1465:30;-1:-1:-1;1465:30:16;;-1:-1:-1;1465:30:16;938:15711:28;;;-1:-1:-1;;938:15711:28;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;938:15711:28;;;;3615:10:2;938:15711:28;;;;;3644:20:2;938:15711:28;;;3644:20:2;938:15711:28;;;;;;;3644:25:2;938:15711:28;;3767:46:2;;938:15711:28;;3694:41:2;938:15711:28;3865:19:2;938:15711:28;;;;;;3694:41:2;:::i;:::-;938:15711:28;;;;;;3767:46:2;938:15711:28;3774:15:2;938:15711:28;3767:46:2;:::i;:::-;938:15711:28;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;3865:19:2;938:15711:28;;;;;;;;3615:10:2;;3899:39;;938:15711:28;;;;3899:39:2;938:15711:28;;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15711:28;;;;4618:44:2;-1:-1:-1;938:15711:28;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4133:10:2;4087:20;4096:10;-1:-1:-1;;;;;938:15711:28;2885:8:2;938:15711:28;2885:8:2;938:15711:28;;;2885:8:2;938:15711:28;;;4087:20:2;4133:10;938:15711:28;4463:14:2;938:15711:28;;;4278:110:2;938:15711:28;;4117:26:2;938:15711:28;;-1:-1:-1;;;;;938:15711:28;;;;;;;-1:-1:-1;;;;;938:15711:28;;;4117:26:2;4161:9;4153:42;4161:9;;;4153:42;:::i;:::-;938:15711:28;;;;;;;;4205:63:2;4213:21;;;4205:63;:::i;:::-;4320:15;-1:-1:-1;4299:36:2;4278:110;:::i;:::-;938:15711:28;;;;;;;4463:14:2;938:15711:28;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;4096:10:2;;4492:50;;;938:15711:28;4570:38:2;;;;:::i;:::-;;4618:44;:::i;938:15711:28:-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5790:31;938:15711;;;:::i;:::-;;;;;;:::i;:::-;;5790:31;:::i;:::-;-1:-1:-1;;938:15711:28;;;;;;;;5838:27;;;;:::i;:::-;;938:15711;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;9393:5;938:15711;;;;;;;:::o;:::-;;10106:1;938:15711;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;938:15711:28;;-1:-1:-1;938:15711:28;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;938:15711:28;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;2459:114:27;938:15711:28;;;2546:20:27;;;:4;:20;:4;;:20;;;;;;;-1:-1:-1;2546:20:27;;;2539:27;2459:114;:::o;2546:20::-;;;;;;;;;;;;;;;;;:::i;:::-;;;938:15711:28;;;;;;;;:::i;2546:20:27:-;;;-1:-1:-1;2546:20:27;;;;:::i;938:15711:28:-;-1:-1:-1;;938:15711:28;;;;;;;:::o;5973:1650:27:-;;;;;;6290:14;;6338:20;;;;938:15711:28;;;6748:19:27;;6744:703;;5973:1650;7510:9;;;;;1666:4;;7522:15;;;938:15711:28;1666:4:27;7558:48;-1:-1:-1;27760:9:27;;27803:21;27868:14;;27915:27;;;;:::i;:::-;27977:17;938:15711:28;27977:17:27;;;938:15711:28;-1:-1:-1;;;;;938:15711:28;;;;28127:15:27;28289:60;28127:15;;;938:15711:28;1666:4:27;;28328:20;;;938:15711:28;28289:60:27;;:::i;:::-;1666:4;;-1:-1:-1;;;;;;;938:15711:28;;;28425:23:27;938:15711:28;;;;;;;30418:14:27;938:15711:28;;;;-1:-1:-1;;;;;938:15711:28;;;;28421:1846:27;;30302:9;1666:4;;;;938:15711:28;30418:14:27;;938:15711:28;30450:23:27;;;;30446:626;30450:23;;;938:15711:28;6290:14:27;938:15711:28;:::i;:::-;30683:146:27;6290:14;30683:146;;6290:14;30683:146;30446:626;1666:4;30943:40;1666:4;;30943:40;-1:-1:-1;;;;;938:15711:28;1706:8:2;938:15711:28;1706:8:2;938:15711:28;;;1706:8:2;938:15711:28;;;;1666:4:27;938:15711:28;;;1558:305:2;;30943:40:27;;938:15711:28;6290:14:27;938:15711:28;:::i;:::-;7551:55:27;5973:1650;:::o;28421:1846::-;28537:25;;938:15711:28;;28580:1673:27;;28421:1846;;;;;30418:14;28421:1846;;;;;28580:1673;28707:9;;;;;;;;938:15711:28;;-1:-1:-1;938:15711:28;:::i;:::-;28910:31:27;28837:9;28910:31;;938:15711:28;;;28876:160:27;;;;;;938:15711:28;;;-1:-1:-1;938:15711:28;;;28876:160:27;938:15711:28;;28876:160:27;;;;;;;938:15711:28;28876:160:27;;938:15711:28;28876:160:27;;;;;;:::i;:::-;;;;;;;;28580:1673;-1:-1:-1;28872:901:27;;29596:150;29675:41;;:::i;:::-;938:15711:28;;29596:150:27;;;-1:-1:-1;;;29596:150:27;;28876:160;29596:150;;;:::i;28872:901::-;30418:14;28872:901;30166:68;28872:901;29839:9;1666:4;;30110:9;;1666:4;;938:15711:28;;30166:68:27;;:::i;:::-;28580:1673;;;;;;;28876:160;;;-1:-1:-1;28876:160:27;;;:::i;:::-;;;:::i;:::-;;;;6744:703;-1:-1:-1;938:15711:28;;;368:118:13;-1:-1:-1;;;;;938:15711:28;;;;368:118:13;;;;6868:8:27;6864:573;;6744:703;;;;;;6864:573;1666:4;6918:41;;:::i;:::-;938:15711:28;;6984:25:27;;;;;;368:118:13;6984:25:27;;;1666:4;;;;;;:::i;938:15711:28:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15711:28;;-1:-1:-1;938:15711:28;;;;-1:-1:-1;938:15711:28;;;;-1:-1:-1;938:15711:28;;;;-1:-1:-1;938:15711:28;;;;-1:-1:-1;938:15711:28;;;;-1:-1:-1;938:15711:28;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;938:15711:28;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;938:15711:28;;:::o;:::-;;;;;;;;;;;;;;;:::o;14485:400::-;14638:33;;;:::i;:::-;14687:13;14699:1;14702:14;;;;;;14864;;;14485:400;:::o;14718:3::-;14786:6;;;;;:::i;:::-;938:15711;;14699:1;938:15711;;;;;;:::i;:::-;;;;:::i;:::-;;637:66:16;3321:69:20;1413:93:16;;938:15711:28;3550:68:20;;637:66:16;3550:68:20;938:15711:28;;:::i;:::-;13747:2;;;;:::i;:::-;13871:40;;;;;:::i;:::-;3193:1327:27;;;;3449:9;3517:20;;;;;938:15711:28;3610:15:27;;3517:20;3610:15;;;;:::i;:::-;14699:1:28;3705:160:27;;;;;14718:3:28;938:15711;;-1:-1:-1;;;3882:51:27;3895:38;;4037:17;;3982:74;4037:17;-1:-1:-1;;;4037:17:27;938:15711:28;4113:53:27;4037:17;;;938:15711:28;;;;3982:74:27;;;;;;938:15711:28;3982:74:27;;;938:15711:28;;;;;;:::i;4113:53:27:-;4074:92;;3878:626;14231:15:28;3517:20:27;14231:15:28;;938:15711;;;;:::i;:::-;;;;14202:270;;938:15711;;14202:270;;938:15711;14202:270;;;938:15711;14231:15;14202:270;;938:15711;14202:270;;;938:15711;-1:-1:-1;14202:270:28;;;938:15711;14202:270;;;938:15711;1246:1:16;;:::i;:::-;14824:19:28;;;;:::i;:::-;;;;;;:::i;:::-;;938:15711;14687:13;;3878:626:27;4345:48;938:15711:28;;;;;;;;:::i;4345:48:27:-;4306:87;;3878:626;;3705:160;-1:-1:-1;3705:160:27;;;;938:15711:28;-1:-1:-1;;938:15711:28;;;;;;;;:::o;:::-;-1:-1:-1;;938:15711:28;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;938:15711:28;;;;:::o;:::-;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;2121:300:27;2323:91;2121:300;2252:54;;;:::i;:::-;2915:20;;:::i;:::-;938:15711:28;2162:233:3;938:15711:28;;;;;;:::i;:::-;1707:12:3;;;938:15711:28;;1752:25:3;;;;2162:233;1752:82;;;1867:31;1882:15;;;;;;:::i;:::-;1867:31;;:::i;:::-;1935:23;;;;938:15711:28;1997:25:3;;;938:15711:28;2050:14:3;2105:39;2120:23;2050:14;;;938:15711:28;2120:23:3;;;;;;:::i;2105:39::-;938:15711:28;;;2162:233:3;;;1707:12;2162:233;;;;938:15711:28;;;;;;;;;;;;-1:-1:-1;;;;;938:15711:28;;;;1065:197:3;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2162:233:3;;938:15711:28;;2162:233:3;;;;;;:::i;:::-;938:15711:28;4988:47:3;;2323:91:27;3445:249:22;3326:374;3445:249;;;;;;;;;;;;;;;3326:374;;1752:82:3;1818:15;2162:233;1818:15;;;;;;:::i;:::-;3287:193:0;;1818:15:3;3287:193:0;;;;;1752:82:3;;;938:15711:28;;;;;;;:::i;:::-;-1:-1:-1;938:15711:28;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;938:15711:28;;-1:-1:-1;938:15711:28;;;;-1:-1:-1;938:15711:28;;;;-1:-1:-1;938:15711:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;938:15711:28;;;;:::i;:::-;;;;;;;:::o;5176:427::-;938:15711;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;938:15711:28;;;:::i;:::-;;-1:-1:-1;938:15711:28;;;;;;5411:13;;-1:-1:-1;5426:18:28;;;;;;5582:14;;;5176:427;:::o;5446:3::-;5517:10;5498:30;5517:10;938:15711;5517:10;;;;:::i;5498:30::-;5542:19;;;;:::i;:::-;;;;;;:::i;:::-;;938:15711;5411:13;;938:15711;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;17050:60:27;938:15711:28;;26767:3:27;938:15711:28;;;;;;26767:3:27;938:15711:28;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;12938:15;938:15711;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;12497:945::-;;12825:13;12497:945;;;;;;;938:15711;;:::i;12825:13::-;-1:-1:-1;;;;;12938:15:28;;;;:::i;:::-;13125:40;12980:19;;;938:15711;;;;;:::i;:::-;;;:::i;:::-;13112:2;;;;:::i;:::-;13125:40;:::i;:::-;938:15711;;;;13180:20;13176:98;;13291:144;;;:::i;13176:98::-;13250:12;;;;;;;:::i;:::-;938:15711;;;;;;:::i;:::-;-1:-1:-1;938:15711:28;;-1:-1:-1;12980:19:28;13223:40;;938:15711;;13223:40;;938:15711;13216:47;:::o;2570:179:2:-;2712:30;938:15711:28;-1:-1:-1;;;;;2660:37:2;2687:9;2660:37;-1:-1:-1;;;;;938:15711:28;1706:8:2;938:15711:28;1706:8:2;938:15711:28;;;1706:8:2;938:15711:28;;;;1666:4:27;938:15711:28;;;1558:305:2;;2660:37;938:15711:28;;;;;;;2712:30:2;;2570:179::o;938:15711:28:-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;2507:2;938:15711;;;;2507:2;938:15711;:::o;:::-;;;;;;1129:2:26;938:15711:28;;;;;;;1129:2:26;938:15711:28;;-1:-1:-1;;938:15711:28;;:::o;:::-;;;;;;486:2:3;938:15711:28;;;;;;;486:2:3;938:15711:28;;-1:-1:-1;;938:15711:28;;:::o;:::-;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;-1:-1:-1;938:15711:28:o;:::-;;;;;;;:::i;:::-;2989:14;938:15711;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;1698:1621::-;938:15711;;:::i;:::-;;;;:::i;:::-;1879:6;;;;:::i;:::-;2032:47;;;;:::i;:::-;2090:98;;;;;;;;:::i;:::-;2232:42;938:15711;2246:27;:17;;:27;938:15711;-1:-1:-1;;;;;938:15711:28;;;;2232:42;:::i;:::-;2328:17;2441:15;2314:39;2328:24;:17;;-1:-1:-1;;;;;938:15711:28;;;;;2314:39;938:15711;;;:::i;:::-;;2441:15;;;;;:::i;:::-;2488:69;2507:2;2488:21;;2507:2;;2520:23;2528:14;2585:22;2528:14;2512:32;2528:14;;:::i;:::-;2520:23;;:::i;:::-;938:15711;;;;2585:22;938:15711;-1:-1:-1;;;;;938:15711:28;;2746:18;;;;938:15711;2778:17;2900:23;2441:15;2778:17;;938:15711;2900:23;;938:15711;;;;:::i;:::-;;;;2722:212;;;938:15711;2441:15;2722:212;;938:15711;2900:23;2722:212;;938:15711;2746:18;2722:212;;938:15711;;;:::i;:::-;3017:45;;;;:93;;;2488:69;3013:199;;2488:69;938:15711;;;:::i;:::-;;;;2722:212;3228:84;;938:15711;2441:15;3228:84;;938:15711;2900:23;3228:84;;938:15711;2746:18;3228:84;;938:15711;1698:1621;:::o;3013:199::-;3175:25;;;;;;:::i;:::-;3143:58;938:15711;;:::i;:::-;-1:-1:-1;;;;;938:15711:28;;;;;;3143:58;2722:212;3143:58;;938:15711;3013:199;;;;3017:93;3066:44;2074:4;3066:44;;;3017:93;;2488:69;;;2585:22;-1:-1:-1;2585:22:28;:::i;938:15711::-;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;17050:60:27;22408:2426;;;;12938:15:28;22767:9:27;;22816:17;;;22871:7;;;;;:::i;:::-;23083;32687:67;;23036:21;;;:::i;:::-;23013:20;;;938:15711:28;32970:66:27;;32908:134;23083:7;32687:67;23286:28;;938:15711:28;23347:26:27;23581:89;12938:15:28;938:15711;23347:26:27;;;;938:15711:28;23347:49:27;23399:20;;;938:15711:28;23347:72:27;23434:37;;;938:15711:28;23347:124:27;23474:31;;;938:15711:28;23347:158:27;23508:20;;;938:15711:28;23347:181:27;23543:28;;;938:15711:28;23347:224:27;23589:33;;23581:89;:::i;:::-;23819:108;23707:28;;9490:20;9273:28;;;938:15711:28;9304:20:27;;;938:15711:28;1666:4:27;9343:37;;;938:15711:28;1666:4:27;9383:31;;;938:15711:28;1666:4:27;9417:26;;;938:15711:28;1666:4:27;9490:20;;938:15711:28;;9103:424:27;;23707:28;23745:17;32687:67;23745:17;;938:15711:28;3403:38:3;23434:37:27;3417:23:3;;938:15711:28;430:2:3;;;;3403:38;23819:108:27;;;12938:15:28;23819:108:27;:::i;:::-;938:15711:28;23938:112:27;12938:15:28;23946:54:27;938:15711:28;;;-1:-1:-1;;;;;938:15711:28;;;;23013:20:27;23986:13;;938:15711:28;23946:54:27;;:::i;:::-;23938:112;:::i;:::-;24098:9;1666:4;;24089:41;24085:138;;23399:20;24296:9;-1:-1:-1;;;;;938:15711:28;24319:17:27;24296:9;24319:17;;938:15711:28;-1:-1:-1;;;;;938:15711:28;;;;;24319:31:27;;:62;;;22408:2426;24315:248;;22408:2426;23434:37;24621:9;;24604:40;24605:32;24606:24;23474:31;24621:9;;24606:24;;:::i;24604:40::-;24678:23;23399:20;24678:23;;938:15711:28;24780:9:27;1666:4;;24792:25;;938:15711:28;1666:4:27;24750:18;;938:15711:28;22408:2426:27:o;24315:248::-;24507:44;;24606:24;24507:44;;;23474:31;23434:37;24507:44;;;;:::i;:::-;;24604:40;24605:32;16125:1016;;;12938:15:28;16125:1016:27;:::i;:::-;24397:155;;24315:248;;;;;;;;;;;24319:62;;13160:4:28;24319:62:27;;24085:138;32687:67;938:15711:28;-1:-1:-1;;;24157:51:27;;;;12938:15:28;24157:51:27;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;22408:2426:27;;;;;938:15711:28;22767:9:27;;22816:17;;22871:7;;;;:::i;:::-;23083;32687:67;;23036:21;;;:::i;:::-;23013:20;;;938:15711:28;32970:66:27;;32908:134;23083:7;32687:67;23286:28;;938:15711:28;23347:26:27;23581:89;23347:26;938:15711:28;23347:26:27;;;;938:15711:28;23347:49:27;23399:20;;;938:15711:28;23347:72:27;23434:37;;;938:15711:28;23347:124:27;23474:31;;;938:15711:28;23347:158:27;23508:20;;;938:15711:28;23347:181:27;23543:28;;;938:15711:28;23347:224:27;23589:33;;23581:89;:::i;:::-;23819:108;23707:28;;9490:20;9273:28;;;938:15711:28;9304:20:27;;;938:15711:28;1666:4:27;9343:37;;;938:15711:28;1666:4:27;9383:31;;;938:15711:28;1666:4:27;9417:26;;;938:15711:28;1666:4:27;9490:20;;938:15711:28;;9103:424:27;;23707:28;23745:17;32687:67;23745:17;;938:15711:28;3403:38:3;23434:37:27;3417:23:3;;938:15711:28;430:2:3;;;;3403:38;23819:108:27;;;;;:::i;:::-;938:15711:28;23938:112:27;938:15711:28;23946:54:27;938:15711:28;;;-1:-1:-1;;;;;938:15711:28;;;;23013:20:27;23986:13;;938:15711:28;23946:54:27;;:::i;23938:112::-;24098:9;1666:4;;24089:41;24085:138;;23399:20;24296:9;-1:-1:-1;;;;;938:15711:28;24319:17:27;24296:9;24319:17;;938:15711:28;-1:-1:-1;;;;;938:15711:28;;;;;24319:31:27;;:62;;;;22408:2426;24315:248;;;22408:2426;24621:9;23434:37;24621:9;;24604:40;24605:32;24606:24;23474:31;24621:9;;24606:24;;:::i;24315:248::-;24606:24;24507:44;;23474:31;24507:44;;;;24604:40;24605:32;16125:1016;24507:44;;;;;23434:37;24507:44;;:::i;:::-;;16125:1016;:::i;:::-;24397:155;;24315:248;;;;;;;;;;24319:62;;;;;;938:15711:28;;;;;;;;;;;;;-1:-1:-1;938:15711:28;;;;;;;;-1:-1:-1;;938:15711:28;;;;:::o;:::-;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;938:15711:28;;;;;;;;;;;;;;:::o;6332:742::-;;;938:15711;6459:19;-1:-1:-1;;;;;938:15711:28;;;6498:83;;;;;;;938:15711;;;;;;6498:83;;;;;;938:15711;6498:83;;-1:-1:-1;;;;;6558:12:28;938:15711;6498:83;;;;:::i;:::-;;;;;;;;6332:742;-1:-1:-1;6494:574:28;;6593:475;;;;:::i;:::-;938:15711;6498:83;938:15711;;6639:17;6635:164;;6839:28;6849:17;938:15711;;6849:17;:::i;:::-;6839:28;:::i;:::-;6498:83;6920:3;938:15711;;6901:17;;;;;6963:9;;;938:15711;6963:9;;;:::i;:::-;938:15711;;;;;6963:9;6943:29;6954:5;;;:::i;:::-;6943:29;938:15711;6943:29;;;;:::i;:::-;;938:15711;6886:13;;6901:17;;7020:37;6901:17;;;7020:37;938:15711;;;7020:37;;;;;;:::i;6635:164::-;6771:12;;;;:::i;:::-;938:15711;;6756:28::o;6498:83::-;;;938:15711;6498:83;;;:::i;:::-;;;;1277:65:2;1324:10;;;:::i;486:2:3:-;;;;:::o;:::-;;938:15711:28;;-1:-1:-1;;;486:2:3;;;;;;;;;;;938:15711:28;486:2:3;938:15711:28;;;486:2:3;;;;;;:::o;:::-;;938:15711:28;;-1:-1:-1;;;486:2:3;;;;;;;;;;;938:15711:28;486:2:3;938:15711:28;;;486:2:3;;7813:1086:27;8371:23;7813:1086;7968:30;7985:13;;;:::i;:::-;-1:-1:-1;;;;;938:15711:28;;;;7968:30:27;8024:12;;;938:15711:28;8024:12:27;8008:13;;938:15711:28;8101:53:27;8130:23;;;938:15711:28;2408:176:3;430:2;;;;;;2408:176;;8101:53:27;8077:20;;;938:15711:28;8047:28:27;;;938:15711:28;8193:25:27;;;938:15711:28;8164:26:27;;;938:15711:28;8283:44:27;8164:26;8312:14;;938:15711:28;2408:176:3;430:2;;;;;;2408:176;;8283:44:27;8259:20;;;938:15711:28;8229:28:27;;;938:15711:28;8371:23:27;;;;;:::i;:::-;8408:27;;;;8404:489;;7813:1086;;;:::o;8404:489::-;8705:62;8459:65;8853:29;8459:65;8451:107;486:2:3;8371:23:27;8459:65;;;8451:107;:::i;:::-;8705:62;:::i;:::-;8193:25;8654:31;;938:15711:28;8130:23:27;8615:37;;938:15711:28;8654:31:27;8781:58;-1:-1:-1;;;;;938:15711:28;;8789:23:27;;8781:58;:::i;:::-;8853:17;938:15711:28;-1:-1:-1;;;;;938:15711:28;;;;11939:1091:27;;;12712:83;11939:1091;12266:14;;938:15711:28;-1:-1:-1;;;;;12424:17:27;938:15711:28;;;;12378:11:27;;;;;;;;:::i;:::-;;;-1:-1:-1;12378:11:27;:::i;:::-;12424:17;938:15711:28;;12455:31:27;-1:-1:-1;12504:23:27;;12500:182;;;;11939:1091;-1:-1:-1;12712:83:27;:::i;:::-;12809:205;;;11939:1091;:::o;12809:205::-;-1:-1:-1;12861:45:27;;;:::i;:::-;12860:46;12856:144;;11939:1091::o;12856:144::-;12378:11;938:15711:28;-1:-1:-1;;;12937:44:27;;;;-1:-1:-1;12937:44:27;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;12500:182:27;1239:17:2;;;;-1:-1:-1;;;;;938:15711:28;2885:8:2;938:15711:28;2885:8:2;938:15711:28;;;2885:8:2;938:15711:28;;;1239:17:2;938:15711:28;12618:21:27;;;;:49;-1:-1:-1;12618:49:27;12500:182;;;12618:49;-1:-1:-1;1666:4:27;12618:49;;11939:1091;;;;;12712:83;11939:1091;12266:14;;938:15711:28;-1:-1:-1;;;;;12424:17:27;938:15711:28;;;;12378:11:27;;;;;;;;:::i;:::-;;;;;:::i;:::-;12424:17;938:15711:28;;12455:31:27;-1:-1:-1;12504:23:27;;12500:182;;;;11939:1091;12712:83;;:::i;:::-;12809:205;;;11939:1091;;;:::o;12809:205::-;12861:45;;;:::i;:::-;12860:46;12856:144;;11939:1091;:::o;12856:144::-;12378:11;938:15711:28;;-1:-1:-1;;;12937:44:27;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;17050:60:27;12500:182;1239:17:2;;;;-1:-1:-1;;;;;938:15711:28;2885:8:2;938:15711:28;2885:8:2;938:15711:28;;;2885:8:2;938:15711:28;;;1239:17:2;938:15711:28;12618:21:27;;;;;;:49;-1:-1:-1;12618:49:27;12500:182;;;12618:49;1666:4;;12618:49;;7080:602:28;;7274:1;7303:3;7277:24;;;;;;938:15711;;:::i;:::-;;;;;;;;;;;;;;;;;;;;7476:51;938:15711;;;;7454:7;;;;;;:::i;:::-;7499;;;;:::i;7476:51::-;7546:11;;;;;;:25;:11;;;:::i;:::-;-1:-1:-1;;;;;938:15711:28;;;7546:25;;7542:72;;7274:1;7628:11;;7645:19;7628:11;;;;:::i;:::-;7645:19;;;;;;:::i;:::-;938:15711;;;7645:19;938:15711;;;;;;:::i;:::-;7628:37;;;;;;;:::i;:::-;;7262:13;938:15711;7262:13;;7542:72;7591:8;;;;7277:24;;;;;7080:602::o;15177:332::-;15315:84;15177:332;15343:15;;;;;;:::i;:::-;938:15711;15375:23;938:15711;;;;;;:::i;:::-;15375:23;;;;;:::i;:::-;15315:84;;;;:::i;:::-;938:15711;;15409:94;;15177:332;:::o;15409:94::-;938:15711;;15343:15;938:15711;15467:25;;;-1:-1:-1;;;15467:25:28;;-1:-1:-1;15467:25:28;;;938:15711;15343:15;938:15711;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;7688:2525::-;;;;;938:15711;;:::i;:::-;-1:-1:-1;8067:17:28;;;;8331:57;938:15711;;;:::i;:::-;;8275:9;-1:-1:-1;8228:57:28;8275:9;8228:57;10908:46;8228:57;:::i;:::-;8378:9;938:15711;;;8331:57;;;;;-1:-1:-1;;;8331:57:28;;;;;;;:::i;:::-;;:12;;-1:-1:-1;;;;;8331:12:28;938:15711;8331:57;;;;;;;-1:-1:-1;;;8331:57:28;;;8063:1101;8299:89;;;;8468:14;;;8464:108;;8063:1101;;9191:21;8063:1101;;;;;;;;9191:21;;:::i;:::-;9222:27;-1:-1:-1;;;;;9682:12:28;938:15711;9260:872;;9268:15;;;;;:::i;:::-;9267:35;;;9372:9;9384:14;;;:::i;:::-;-1:-1:-1;9368:118:28;;9518:15;;;;;;;;-1:-1:-1;9518:15:28;;9576:54;9517:21;9518:15;;9682:57;9518:15;;:::i;:::-;938:15711;;;;9517:21;9576:54;;10908:46;9576:54;:::i;:::-;9729:9;;938:15711;;;9682:57;;;;;;;-1:-1:-1;;;9682:57:28;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;9682:57:28;;;9260:872;-1:-1:-1;9754:368:28;;;9881:19;;;9927:10;9881:19;9927:10;:::i;:::-;9955:21;9754:368;;9260:872;;;;;;;;9754:368;10097:10;;;;;;;;;:::i;:::-;9754:368;;;9682:57;;;;;;;;;-1:-1:-1;9682:57:28;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;9368:118;9425:46;-1:-1:-1;9425:46:28;9682:57;938:15711;;;;;;;;;;;;-1:-1:-1;9425:46:28;9267:35;;;;;;;;;;10149:57;9267:35;;938:15711;;:::i;:::-;;;;;;10149:57;;;938:15711;;10149:57;938:15711;10149:57;;938:15711;7688:2525;:::o;8464:108::-;938:15711;;;;;;;;;;8509:48;938:15711;;:::i;:::-;-1:-1:-1;938:15711:28;;;;;8509:48;;;938:15711;;8331:57;;;;;;;;;;-1:-1:-1;8331:57:28;;;;;;:::i;:::-;;;;;;;;8063:1101;8717:9;8866:57;8717:9;;;8810;-1:-1:-1;8763:57:28;8810:9;8763:57;10908:46;8763:57;:::i;8866:::-;;:12;;-1:-1:-1;;;;;8866:12:28;938:15711;8866:57;;;;;;;-1:-1:-1;;;8866:57:28;;;8063:1101;8834:89;;;8946:24;8834:89;8961:9;;8946:24;;:::i;:::-;9050:14;;;9046:108;;8063:1101;;9191:21;8063:1101;;;;;;;;;8866:57;;;;;;;;;;-1:-1:-1;8866:57:28;;;;;;:::i;:::-;;;;;;;;7688:2525;;;;;938:15711;;:::i;:::-;-1:-1:-1;8067:17:28;;;;8331:57;938:15711;;;:::i;:::-;;8275:9;-1:-1:-1;8228:57:28;8275:9;8228:57;11598:37;8228:57;:::i;8331:::-;;:12;;-1:-1:-1;;;;;8331:12:28;938:15711;8331:57;;;;;;;-1:-1:-1;;;8331:57:28;;;8063:1101;8299:89;;;;8468:14;;;8464:108;;8063:1101;;9191:21;8063:1101;;;;;;;9191:21;;:::i;:::-;9222:27;-1:-1:-1;;;;;9682:12:28;938:15711;9260:872;;9268:15;;;;;:::i;:::-;9267:35;;;9372:9;9384:14;;;:::i;:::-;-1:-1:-1;9368:118:28;;9518:15;;;;;;;;-1:-1:-1;9518:15:28;;9576:54;9517:21;9518:15;;9682:57;9518:15;;:::i;9517:21::-;9576:54;;11598:37;9576:54;:::i;9682:57::-;;;;;;;;;;-1:-1:-1;;;9682:57:28;;;9260:872;-1:-1:-1;9754:368:28;;;9881:19;;;9927:10;9881:19;9927:10;:::i;:::-;9955:21;9754:368;;9260:872;;;;;;;;9754:368;10097:10;;;;;;;;;:::i;:::-;9754:368;;;9682:57;;;;;;;;;-1:-1:-1;9682:57:28;;;;;;:::i;:::-;;;;;;8331;;;;;;;;;;-1:-1:-1;8331:57:28;;;;;;:::i;:::-;;;;;;;;8063:1101;8717:9;8866:57;8717:9;;;8810;-1:-1:-1;8763:57:28;8810:9;8763:57;11598:37;8763:57;:::i;8866:::-;;:12;;-1:-1:-1;;;;;8866:12:28;938:15711;8866:57;;;;;;;-1:-1:-1;;;8866:57:28;;;8063:1101;8834:89;;;8946:24;8834:89;8961:9;;8946:24;;:::i;:::-;9050:14;;;9046:108;;8063:1101;;9191:21;8063:1101;;;;;;;;;8866:57;;;;;;;;;;-1:-1:-1;8866:57:28;;;;;;:::i;:::-;;;;;;;;7688:2525;;;;;938:15711;;:::i;:::-;-1:-1:-1;8067:17:28;;;;8331:57;938:15711;;;:::i;:::-;;8275:9;-1:-1:-1;8228:57:28;8275:9;8228:57;13160:4;8228:57;:::i;8331:::-;;:12;;-1:-1:-1;;;;;8331:12:28;938:15711;8331:57;;;;;;;-1:-1:-1;;;8331:57:28;;;8063:1101;8299:89;;;;8468:14;;;8464:108;;8063:1101;;9191:21;8063:1101;;;;;;;9191:21;;:::i;:::-;9222:27;-1:-1:-1;;;;;9682:12:28;938:15711;9260:872;;9268:15;;;;;:::i;:::-;9267:35;;;9372:9;9384:14;;;:::i;:::-;-1:-1:-1;9368:118:28;;9518:15;;;;;;;;-1:-1:-1;9518:15:28;;9576:54;9517:21;9518:15;;9682:57;9518:15;;:::i;9517:21::-;9576:54;;13160:4;9576:54;:::i;9682:57::-;;;;;;;;;;-1:-1:-1;;;9682:57:28;;;9260:872;-1:-1:-1;9754:368:28;;;9881:19;;;9927:10;9881:19;9927:10;:::i;:::-;9955:21;9754:368;;9260:872;;;;;;;;9754:368;10097:10;;;;;;;;;:::i;:::-;9754:368;;;9682:57;;;;;;;;;-1:-1:-1;9682:57:28;;;;;;:::i;:::-;;;;;;8331;;;;;;;;;;-1:-1:-1;8331:57:28;;;;;;:::i;:::-;;;;;;;;8063:1101;8717:9;8866:57;8717:9;;;8810;-1:-1:-1;8763:57:28;8810:9;8763:57;13160:4;8763:57;:::i;8866:::-;;:12;;-1:-1:-1;;;;;8866:12:28;938:15711;8866:57;;;;;;;-1:-1:-1;;;8866:57:28;;;8063:1101;8834:89;;;8946:24;8834:89;8961:9;;8946:24;;:::i;:::-;9050:14;;;9046:108;;8063:1101;;9191:21;8063:1101;;;;;;;;;8866:57;;;;;;;;;;-1:-1:-1;8866:57:28;;;;;;:::i;:::-;;;;;;;;1176:508:13;1273:405;1666:4:27;1273:405:13;;;;1176:508;1273:405;;;;;;;;;;;;;;;;;;1176:508;:::o;1273:405::-;;1666:4:27;1273:405:13;;938:15711:28;-1:-1:-1;;;938:15711:28;;;;;;;;;;-1:-1:-1;938:15711:28;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3845:262:21:-;-1:-1:-1;;;;;3938:11:21;938:15711:28;3929:4:21;3921:28;:63;;;3845:262;3917:184;;;4007:22;4000:29;:::o;3917:184::-;938:15711:28;;4204:80:21;;;938:15711:28;2079:95:21;938:15711:28;;4226:11:21;938:15711:28;2079:95:21;;938:15711:28;4239:14:21;2079:95;;;938:15711:28;4255:13:21;2079:95;;;938:15711:28;3929:4:21;2079:95;;;938:15711:28;2079:95:21;4204:80;;;;;;:::i;:::-;938:15711:28;4194:91:21;;4060:30;:::o;3921:63::-;3970:14;;3953:13;:31;3921:63;;16125:1016:27;;;;16432:9;16485:14;;;16623:48;-1:-1:-1;;;;;16533:17:27;;;938:15711:28;;16590:14:27;;;938:15711:28;16623:48:27;;:::i;:::-;16622:49;16618:146;;16810:37;;16889:73;16810:37;;938:15711:28;16889:73:27;;;;;:::i;:::-;16861:101;;16989:9;;1666:4;;16980:43;16976:149;;16125:1016;:::o;16618:146::-;16698:51;938:15711:28;16590:14:27;938:15711:28;16698:51:27;-1:-1:-1;;;16698:51:27;;;;;938:15711:28;16590:14:27;938:15711:28;;;;;;;;;;;;;;16698:51:27;938:15711:28;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15711:28;;;:::o;795:503:26:-;941:15;;;;;;:::i;:::-;971:28;;970:29;971:28;;;;:::i;970:29::-;966:68;;1082:13;1062:34;1082:13;;:::i;:::-;1062:34;:::i;:::-;1110:21;1129:2;1110:21;;1129:2;;938:15711:28;;941:15:26;938:15711:28;1164:26:26;;;;;;;;938:15711:28;;;;;;;;;;;;;1106:186:26;1266:13;1239:41;1266:13;;;;:::i;:::-;938:15711:28;;1239:41:26;941:15;938:15711:28;1239:41:26;;;;;;;;;:::i;966:68::-;1015:8;;;938:15711:28;1015:8:26;:::o;968:234:1:-;-1:-1:-1;;;;;938:15711:28;-1:-1:-1;938:15711:28;1154:19:1;938:15711:28;;;1154:32:1;938:15711:28;1098:2:1;938:15711:28;1098:2:1;-1:-1:-1;938:15711:28;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;1154:32:1;938:15711:28;;;1154:34:1;;;;:::i;:::-;938:15711:28;;;1154:41:1;968:234;:::o;1642:105:16:-;-1:-1:-1;637:66:16;3550:68:20;1642:105:16:o;938:15711:28:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;19785:1109:27:-;20053:34;-1:-1:-1;;;;;19785:1109:27;20053:34;:::i;:::-;938:15711:28;;20097:111:27;;20217:96;;20615:43;-1:-1:-1;;;;;20615:43:27;;:::i;:::-;938:15711:28;;20668:105:27;;20782:106;;19785:1109::o;20782:106::-;938:15711:28;;-1:-1:-1;;;20823:54:27;;;;-1:-1:-1;20823:54:27;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;20668:105:27;938:15711:28;;-1:-1:-1;;;20721:41:27;;;;-1:-1:-1;20721:41:27;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;20217:96:27;938:15711:28;;-1:-1:-1;;;20258:44:27;;;;-1:-1:-1;20258:44:27;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;20097:111:27;938:15711:28;;-1:-1:-1;;;20156:41:27;;;;-1:-1:-1;20156:41:27;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;854:262:2;;-1:-1:-1;;;;;938:15711:28;;:::i;:::-;;;995:8:2;938:15711:28;995:8:2;938:15711:28;;;1032:17:2;938:15711:28;995:8:2;938:15711:28;1032:17:2;938:15711:28;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;1059:20:2;;938:15711:28;854:262:2:o;3622:246:3:-;3773:23;3622:246;3773:23;;;;;:::i;:::-;430:2;938:15711:28;;;368:2:3;938:15711:28;430:2:3;;;;3622:246::o;4101:507::-;;;938:15711:28;368:2:3;938:15711:28;;;;;;;430:2:3;938:15711:28;;;368:2:3;938:15711:28;;430:2:3;;486;938:15711:28;;;;;;;;;430:2:3;;;;;;938:15711:28;430:2:3;;;;4101:507::o;938:15711:28:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;9781:1671:27:-;;;;9931:20;9927:1519;;9781:1671;;;;;:::o;9927:1519::-;9984:14;;938:15711:28;-1:-1:-1;;;;;938:15711:28;10023:43:27;;;;;:::i;:::-;10019:495;;10531:18;;10527:121;;10683:2;10665:20;;10661:110;;9950:1;10802:80;:28;:15;;:::i;:28::-;10836:35;:14;;:35;938:15711:28;10836:35:27;938:15711:28;10802:80:27;;;;938:15711:28;10802:80:27;;;;;;;;;;:::i;:::-;;;;;;;;;9950:1;10802:80;;;9927:1519;938:15711:28;-1:-1:-1;;;;;938:15711:28;;10900:21:27;;;10896:115;;-1:-1:-1;;;;;938:15711:28;11028:17:27;;;11024:116;;11157:19;:24;11153:123;;11323:14;11315:23;11323:14;11358:77;11323:14;11307:32;11323:14;;:::i;11307:32::-;10802:80;11374:17;;;938:15711:28;11410:14:27;;938:15711:28;11410:24:27;938:15711:28;10836:35:27;938:15711:28;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;;;;;10836:35:27;11358:77;9927:1519;;;;;;11153:123;10836:35;938:15711:28;;-1:-1:-1;;;11208:53:27;;10802:80;11208:53;;938:15711:28;;;;;;;;;;;;;;;;;;;;17050:60:27;11024:116;11072:53;938:15711:28;10836:35:27;938:15711:28;11072:53:27;;;-1:-1:-1;;;11072:53:27;;10802:80;11072:53;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;10896:115:27;10948:48;938:15711:28;10836:35:27;938:15711:28;10948:48:27;;;-1:-1:-1;;;10948:48:27;;10802:80;10948:48;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;10802:80:27;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10661:110;938:15711:28;;;-1:-1:-1;;;10712:44:27;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;17050:60:27;10527:121;938:15711:28;;;-1:-1:-1;;;10581:52:27;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;17050:60:27;10019:495;10090:20;;10108:2;10090:20;;10086:390;;10493:7;;;;:::o;10086:390::-;10359:15;10443:13;10359:15;10398:35;10359:33;:15;;:::i;:33::-;10398:14;;:35;938:15711:28;10443:13:27;;:::i;:::-;10359:98;;;;;;;9950:1;938:15711:28;;10359:98:27;938:15711:28;10398:35:27;938:15711:28;10359:98:27;;;;;;;938:15711:28;10359:98:27;;;;;;:::i;:::-;;;;;;;;;;10086:390;;;;;;10359:98;;;9950:1;10359:98;;;:::i;:::-;;;;938:15711:28;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14163:1270:27:-;;;14700:17;14163:1270;;;;14655:85;14499:14;14163:1270;14655:85;14499:21;:14;;-1:-1:-1;;;;;938:15711:28;;;;;14499:21:27;14530:12;32687:67;;14700:17;;;;938:15711:28;14655:85:27;;;;;;;;;;;:::i;:::-;;938:15711:28;;14655:85:27;;;;;;:::i;:::-;14754:326;;;;;;14499:14;14754:326;;14700:17;14754:326;;;;14163:1270;32970:66;;15145:8;15141:286;;14163:1270;;:::o;15141:286::-;15173:18;;;32687:67;938:15711:28;;-1:-1:-1;;;15223:46:27;;14655:85;15223:46;;938:15711:28;;;;;;;;;;;;;;;;;;;;17050:60:27;15169:248;15360:41;;:::i;:::-;938:15711:28;15315:87:27;32687:67;938:15711:28;15315:87:27;;;-1:-1:-1;;;15315:87:27;;14655:85;15315:87;;;:::i;14754:326::-;14499:14;;-1:-1:-1;14754:326:27;;2134:396:2;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;2367:23:2;;;2363:74;;1666:4:27;938:15711:28;;2509:4:2;2134:396;:::o;15906:741:28:-;;;;;16097:20;:47;;;;15906:741;16093:183;;;16316:2;16289:29;;;16285:310;;15906:741;938:15711;;;;:::i;16285:310::-;16316:2;938:15711;;;;;;16412:21;:26;16408:177;;16285:310;;;;16408:177;938:15711;;;;;;:::i;:::-;;;;;;;;;16532:38;:::o;16093:183::-;938:15711;;;;;;;;:::i;:::-;;;;;;;;;16229:36;:::o;16097:47::-;16121:18;;;:23;16097:47;;;938:15711;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;-1:-1:-1;938:15711:28;;;:::o;:::-;;;;-1:-1:-1;;938:15711:28;;;;;;;;;;;;;430:2:3;938:15711:28;;;;430:2:3;938:15711:28;;;;;;;;;;;;;;;;-1:-1:-1;938:15711:28;;;:::o;:::-;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15711:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;938:15711:28;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;:::o;:::-;;;;;-1:-1:-1;938:15711:28;;;;;;;;;;;;;;;;;:::i;3325:1845::-;938:15711;;:::i;:::-;3544:47;3576:15;;;;:::i;:::-;3544:47;:::i;:::-;938:15711;;;:::i;:::-;3614:46;3606:54;;3602:843;;938:15711;;;:::i;:::-;4467:37;4459:45;;4455:382;;938:15711;;;;4859:29;938:15711;;:::i;:::-;4851:37;4847:284;;938:15711;;-1:-1:-1;;;5141:22:28;;938:15711;5141:22;;;938:15711;;;;;;;;;;;;;17050:60:27;4847:284:28;4921:19;5032:88;938:15711;4984:27;4921:19;;5032:88;4921:19;;;:::i;:::-;4984:27;;;;;;:::i;:::-;938:15711;;;:::i;:::-;;4984:27;938:15711;5032:88;;;938:15711;4921:19;5032:88;;;;;;;:::i;4455:382::-;4543:15;;;430:2:3;4629:19:28;4543:36;:15;;4747:79;4543:15;;:::i;:::-;3585:23:3;;938:15711:28;430:2:3;;;3454:162;4543:36:28;4629:19;938:15711;;;;4629:19;430:2:3;;4628:45:28;4645:3;4688:19;;938:15711;4747:79;938:15711;;4747:79;;;938:15711;4747:79;;;;;;;;:::i;3602:843::-;3784:15;;;4356:78;3784:15;-1:-1:-1;;3784:15:28;4235:99;;3739:78;3784:32;:15;;4356:78;3784:15;;:::i;:32::-;3739:78;;:::i;:::-;3866:26;;;;938:15711;3910:19;3784:32;3910:19;;;486:2:3;3910:19:28;;938:15711;3910:67;3906:195;;3602:843;938:15711;;;;;;;;;;-1:-1:-1;;938:15711:28;;;;4235:99;;;;;:::i;:::-;;938:15711;;4235:99;;;;;;:::i;:::-;4197:137;938:15711;;4356:78;;;938:15711;4235:99;4356:78;;;;;;;:::i;3906:195::-;938:15711;4013:15;;;:32;:15;;:73;:15;;:::i;:32::-;:73;;;:::i;938:15711::-;3906:195;;;;31344:332:27;31555:28;31490:20;;;938:15711:28;31555:28:27;;938:15711:28;31645:13:27;1666:4;3696:5:0;;;:13;:5;;;:13;31344:332:27;:::o;3696:13:0:-;;;31344:332:27;:::o;33048:413::-;;1913:5;1666:4;;33183:43;;;33179:90;;33404:3;1666:4;1799:2;1666:4;;938:15711:28;;33048:413:27;:::o;33179:90::-;33246:8;;938:15711:28;33246:8:27;:::o;938:15711:28:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17147:2265:27:-;;-1:-1:-1;17147:2265:27;;;;;;32687:67;;17551:17;;938:15711:28;17616:24:27;17551:17;;;938:15711:28;17570:14:27;17495:91;17570:14;17495:91;32687:67;17570:14;;938:15711:28;17551:17:27;17495:91;;;;;;;;;;;;:::i;:::-;;938:15711:28;;;17495:91:27;;;;;;:::i;:::-;17616:14;:24;938:15711:28;-1:-1:-1;;;;;938:15711:28;;;;17886:1229:27;;;;;;;;-1:-1:-1;17886:1229:27;;;;;;32687:67;17886:1229;;;;;19153:8;;938:15711:28;;;19153:31:27;;17147:2265;19153:72;;;;;17147:2265;19149:205;;;-1:-1:-1;938:15711:28;;;;-1:-1:-1;;938:15711:28;4020:413:0;;;938:15711:28:o;19149:205:27:-;19297:41;;:::i;:::-;938:15711:28;19252:87:27;32687:67;938:15711:28;19252:87:27;;;-1:-1:-1;;;19252:87:27;;17495:91;19252:87;;;:::i;19153:72::-;17886:1229;;19204:2;17886:1229;;;;1666:4;;19188:37;19153:72;;;:31;32687:67;19165:19;;;-1:-1:-1;19153:31:27;;;1611:551:26;;1725:1;-1:-1:-1;1703:62:26;;1914:95;-1:-1:-1;;938:15711:28;;2106:49:26;;1611:551::o;1703:62::-;1742:12;938:15711:28;1742:12:26;:::o;2471:661::-;2587:113;-1:-1:-1;2587:113:26;;;-1:-1:-1;2587:113:26;938:15711:28;;;;;2838:36:26;2834:241;;3107:16;3099:25;3107:16;3091:34;3107:16;938:15711:28;;;;3107:16:26;-1:-1:-1;;938:15711:28;;348:8:26;2834:241;2971:18;:22;348:8;;938:15711:28;;-1:-1:-1;;;3030:34:26;;348:8;3030:34;;;348:8;;;;;938:15711:28;348:8:26;938:15711:28;;;348:8:26;;;3030:34;348:8;;938:15711:28;;-1:-1:-1;;;348:8:26;;;;;;;;;;;938:15711:28;348:8:26;938:15711:28;;;348:8:26;;3358:267:17;1390:66;3481:46;;1390:66;;3550:15;;;:::i;3477:142::-;938:15711:28;;;-1:-1:-1;6126:13:21;1390:66:17;;;;;;;;;;;;3477:142;1390:66;;;;;;;938:15711:28;;;1390:66:17;;938:15711:28;;;1390:66:17;;;;;;;;;;;;;;;;;;;:::i;:::-;6126:13:21;1390:66:17;;;;;-1:-1:-1;1390:66:17;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:17;;;;;;;;;;-1:-1:-1;;1390:66:17;;;-1:-1:-1;1390:66:17;;;;;;;;-1:-1:-1;1390:66:17;;;;-1:-1:-1;;;;1390:66:17;;;;;-1:-1:-1;1390:66:17;;;;;;;;3358:267;1390:66;3481:46;;1390:66;;3550:15;;;:::i;3477:142::-;938:15711:28;;;-1:-1:-1;6584:16:21;1390:66:17;;;;;;;;;;;;3477:142;1390:66;;;;;;;938:15711:28;;;1390:66:17;;938:15711:28;;;1390:66:17;;;;;;;;;;;;;;;;;;:::i;:::-;6584:16:21;1390:66:17;;;;;-1:-1:-1;1390:66:17;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:17;;;;;;;;;;;;;;;;21224:517:27;21398:19;;21394:76;;21416:1;938:15711:28;;;;;;:::i;:::-;;;;;;;;;;;;;1666:3:0;938:15711:28;;1680:15:0;;1676:67;;21224:517:27;938:15711:28;1775:28:0;21625:33:27;938:15711:28;1768:36:0;1775:28;;938:15711:28;;;;1775:28:0;938:15711:28;;;;1768:36:0;938:15711:28;1817:50:0;-1:-1:-1;;;;;938:15711:28;;:::i;:::-;;;1817:50:0;938:15711:28;-1:-1:-1;;;;;938:15711:28;;;;1817:50:0;;938:15711:28;1817:50:0;;;;938:15711:28;;;;;;1817:50:0;938:15711:28;;;1817:50:0;;938:15711:28;;;;;21625:33:27;:15;:33;:71;;;;;21224:517;21608:88;938:15711:28;;-1:-1:-1;;;;;938:15711:28;;;;21224:517:27;:::o;21625:71::-;938:15711:28;21662:34:27;;-1:-1:-1;938:15711:28;;;;21662:34:27;21625:15;21662:34;;21625:71;;;1676:67:0;-1:-1:-1;938:15711:28;1676:67:0;;21394:76:27;21433:26;21416:1;21433:26;21416:1;21433:26;:::o;3205:281:0:-;3287:193;;;;;;;3205:281;:::o;2078:378:17:-;2661:4;2625:40;;2679:11;2688:2;2679:11;;2675:69;;938:15711:28;;;;;;;:::i;:::-;2311:2:17;938:15711:28;;;;;;;;;;;2324:106:17;;;2078:378;:::o;2675:69::-;2713:20;-1:-1:-1;2713:20:17;;-1:-1:-1;2713:20:17", "linkReferences": {}, "immutableReferences": { "2617": [{ "start": 16344, "length": 32 }], "2619": [{ "start": 16533, "length": 32 }], "2621": [{ "start": 16297, "length": 32 }], "2623": [{ "start": 16423, "length": 32 }], "2625": [{ "start": 16461, "length": 32 }], "2628": [{ "start": 5313, "length": 32 }], "2631": [{ "start": 5354, "length": 32 }], "8494": [{ "start": 12800, "length": 32 }, { "start": 14319, "length": 32 }, { "start": 14410, "length": 32 }, { "start": 14863, "length": 32 }, { "start": 15045, "length": 32 }, { "start": 15135, "length": 32 }, { "start": 15411, "length": 32 }, { "start": 15593, "length": 32 }, { "start": 15683, "length": 32 }, { "start": 15959, "length": 32 }] } }, "methodIdentifiers": { "_accountValidation(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256))": "69683cfa", "_paymasterValidation(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256))": "21e60b37", "_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)": "c579f76b", "addStake(uint32)": "0396cb60", "balanceOf(address)": "70a08231", "binarySearchCallGasLimit(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)[],((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes),address,uint256,uint256,uint256)": "7472949c", "binarySearchPaymasterVerificationGasLimit(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)[],((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes),address,uint256,uint256,uint256)": "03d1dcaf", "binarySearchVerificationGasLimit(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)[],((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes),address,uint256,uint256,uint256)": "76ad6123", "delegateAndRevert(address,bytes)": "850aaf62", "depositTo(address)": "b760faf9", "eip712Domain()": "84b0196e", "getDepositInfo(address)": "5287ce12", "getDomainSeparatorV4()": "13c65a6e", "getNonce(address,uint192)": "35567e1a", "getPackedUserOpTypeHash()": "154e58dc", "getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "22cdde4c", "incrementNonce(uint192)": "0bd28e3b", "innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)": "0da82661", "nonceSequenceNumber(address,uint192)": "1b2e01b8", "senderCreator()": "09ccb880", "simulateCall(address,bytes,uint256)": "f7e426e8", "simulateCallAndRevert(address,bytes,uint256)": "44403473", "simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)": "97b2dcb9", "simulateHandleOpBulk((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[])": "0dbfc6bd", "simulateHandleOpLast((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[])": "263934db", "simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "c3bce009", "simulateValidationBulk((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[])": "30ec25d1", "simulateValidationLast((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[])": "fe2171cb", "unlockStake()": "bb9fe6bf", "withdrawStake(address)": "c23a5cea", "withdrawTo(address,uint256)": "205c2878" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"CallPhaseReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"ret\",\"type\":\"bytes\"}],\"name\":\"DelegateAndRevert\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailedOp\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"inner\",\"type\":\"bytes\"}],\"name\":\"FailedOpWithRevert\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"PostOpReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SenderAddressResult\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"}],\"name\":\"SignatureValidationFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"name\":\"SimulationOutOfGas\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"remainingGas\",\"type\":\"uint256\"}],\"name\":\"innerCallResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"}],\"name\":\"AccountDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"BeforeExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalDeposit\",\"type\":\"uint256\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"PostOpRevertReason\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"}],\"name\":\"SignatureAggregatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalStaked\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"name\":\"StakeLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawTime\",\"type\":\"uint256\"}],\"name\":\"StakeUnlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"StakeWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualGasUsed\",\"type\":\"uint256\"}],\"name\":\"UserOperationEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"UserOperationPrefundTooLow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"UserOperationRevertReason\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"}],\"name\":\"_accountValidation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"}],\"name\":\"_paymasterValidation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"validatePaymasterPrepayment\",\"type\":\"bool\"}],\"name\":\"_validatePrepayment\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"}],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchCallGasLimit\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.TargetCallResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchPaymasterVerificationGasLimit\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.TargetCallResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchVerificationGasLimit\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.TargetCallResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"delegateAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"depositTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getDepositInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"staked\",\"type\":\"bool\"},{\"internalType\":\"uint112\",\"name\":\"stake\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"withdrawTime\",\"type\":\"uint48\"}],\"internalType\":\"struct IStakeManager.DepositInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainSeparatorV4\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPackedUserOpTypeHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"}],\"name\":\"getUserOpHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"incrementNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"opInfo\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preGas\",\"type\":\"uint256\"}],\"name\":\"innerHandleOp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"\",\"type\":\"uint192\"}],\"name\":\"nonceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"senderCreator\",\"outputs\":[{\"internalType\":\"contract ISenderCreator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"simulateCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"simulateCallAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"name\":\"simulateHandleOp\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"ops\",\"type\":\"tuple[]\"}],\"name\":\"simulateHandleOpBulk\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"ops\",\"type\":\"tuple[]\"}],\"name\":\"simulateHandleOpLast\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"}],\"name\":\"simulateValidation\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"}],\"name\":\"simulateValidationBulk\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"}],\"name\":\"simulateValidationLast\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unlockStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"}],\"name\":\"withdrawStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"withdrawAmount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"FailedOp(uint256,string)\":[{\"params\":{\"opIndex\":\"- Index into the array of ops to the failed one (in simulateValidation, this is always zero).\",\"reason\":\"- Revert reason. The string starts with a unique code \\\"AAmn\\\", where \\\"m\\\" is \\\"1\\\" for factory, \\\"2\\\" for account and \\\"3\\\" for paymaster issues, so a failure can be attributed to the correct entity.\"}}],\"FailedOpWithRevert(uint256,string,bytes)\":[{\"details\":\"note that inner is truncated to 2048 bytes\",\"params\":{\"inner\":\"- data from inner cought revert reason\",\"opIndex\":\"- Index into the array of ops to the failed one (in simulateValidation, this is always zero).\",\"reason\":\"- Revert reason. see FailedOp(uint256,string), above\"}}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SignatureValidationFailed(address)\":[{\"params\":{\"aggregator\":\"The aggregator that failed to verify the signature\"}}]},\"events\":{\"AccountDeployed(bytes32,address,address,address)\":{\"params\":{\"factory\":\"- The factory used to deploy this account (in the initCode)\",\"paymaster\":\"- The paymaster used by this UserOp\",\"sender\":\"- The account that is deployed\",\"userOpHash\":\"- The userOp that deployed this account. UserOperationEvent will follow.\"}},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"PostOpRevertReason(bytes32,address,uint256,bytes)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"revertReason\":\"- The return bytes from the reverted call to \\\"postOp\\\".\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}},\"SignatureAggregatorChanged(address)\":{\"params\":{\"aggregator\":\"- The aggregator used for the following UserOperationEvents.\"}},\"UserOperationEvent(bytes32,address,address,uint256,bool,uint256,uint256)\":{\"params\":{\"actualGasCost\":\"- Actual amount paid (by account or paymaster) for this UserOperation.\",\"actualGasUsed\":\"- Total gas used by this UserOperation (including preVerification, creation, validation and execution).\",\"nonce\":\"- The nonce value from the request.\",\"paymaster\":\"- If non-null, the paymaster that pays for this request.\",\"sender\":\"- The account that generates this request.\",\"success\":\"- True if the sender transaction succeeded, false if reverted.\",\"userOpHash\":\"- Unique identifier for the request (hash its entire content, except signature).\"}},\"UserOperationPrefundTooLow(bytes32,address,uint256)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"revertReason\":\"- The return bytes from the reverted \\\"callData\\\" call.\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}}},\"kind\":\"dev\",\"methods\":{\"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)\":{\"params\":{\"opIndex\":\"- The index of this userOp into the \\\"opInfos\\\" array.\",\"outOpInfo\":\"- The empty unpacked in-memory UserOperation structure that will be filled in here.\",\"userOp\":\"- The packed calldata UserOperation structure to validate.\"},\"returns\":{\"paymasterValidationData\":\"- The paymaster's validationData.\",\"validationData\":\" - The account's validationData.\"}},\"addStake(uint32)\":{\"params\":{\"unstakeDelaySec\":\"- The new lock duration before the deposit can be withdrawn.\"}},\"balanceOf(address)\":{\"params\":{\"account\":\"- The account to query.\"},\"returns\":{\"_0\":\"- The deposit (for gas payment) of the account.\"}},\"delegateAndRevert(address,bytes)\":{\"details\":\"calling this method, the EntryPoint will make a delegatecall to the given data, and report (via revert) the result. The method always revert, so is only useful off-chain for dry run calls, in cases where state-override to replace actual EntryPoint code is less convenient.\",\"params\":{\"data\":\"data to pass to target in a delegatecall\",\"target\":\"a target contract to make a delegatecall from entrypoint\"}},\"depositTo(address)\":{\"params\":{\"account\":\"- The account to add to.\"}},\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"getDepositInfo(address)\":{\"params\":{\"account\":\"- The account to query.\"},\"returns\":{\"info\":\" - Full deposit information of given account.\"}},\"getNonce(address,uint192)\":{\"params\":{\"key\":\"the high 192 bit of the nonce\",\"sender\":\"the account address\"},\"returns\":{\"nonce\":\"a full nonce to pass for next UserOp with this sender.\"}},\"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"params\":{\"userOp\":\"- The user operation to generate the request ID for.\"},\"returns\":{\"_0\":\"hash the hash of this UserOperation\"}},\"incrementNonce(uint192)\":{\"params\":{\"key\":\"- the \\\"nonce key\\\" to increment the \\\"nonce sequence\\\" for.\"}},\"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)\":{\"params\":{\"callData\":\"- The callData to execute.\",\"context\":\"- The context bytes.\",\"opInfo\":\"- The UserOpInfo struct.\"},\"returns\":{\"actualGasCost\":\"- the actual cost in eth this UserOperation paid for gas\"}},\"simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)\":{\"params\":{\"op\":\"The UserOperation to simulate.\"},\"returns\":{\"_0\":\"the execution result structure\"}},\"simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"details\":\"The node must also verify it doesn't use banned opcodes, and that it doesn't reference storage outside the account's data.\",\"params\":{\"userOp\":\"- The user operation to validate.\"},\"returns\":{\"_0\":\"the validation result structure\"}},\"withdrawStake(address)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\"}},\"withdrawTo(address,uint256)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\",\"withdrawAmount\":\"- The amount to withdraw.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"FailedOp(uint256,string)\":[{\"notice\":\"A custom revert error of handleOps andhandleAggregatedOps, to identify the offending op. Should be caught in off-chain handleOps/handleAggregatedOps simulation and not happen on-chain. Useful for mitigating DoS attempts against batchers or for troubleshooting of factory/account/paymaster reverts. NOTE: If simulateValidation passes successfully, there should be no reason for handleOps to fail on it.\"}],\"FailedOpWithRevert(uint256,string,bytes)\":[{\"notice\":\"A custom revert error of handleOps and handleAggregatedOps, to report a revert by account or paymaster.\"}],\"SignatureValidationFailed(address)\":[{\"notice\":\"Error case when a signature aggregator fails to verify the aggregated signature it had created.\"}]},\"events\":{\"AccountDeployed(bytes32,address,address,address)\":{\"notice\":\"Account \\\"sender\\\" was deployed.\"},\"BeforeExecution()\":{\"notice\":\"An event emitted by handleOps() and handleAggregatedOps(), before starting the execution loop. Any event emitted before this event, is part of the validation.\"},\"PostOpRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation Paymaster's \\\"postOp\\\" call reverted with non-zero length.\"},\"SignatureAggregatorChanged(address)\":{\"notice\":\"Signature aggregator used by the following UserOperationEvents within this bundle.\"},\"UserOperationEvent(bytes32,address,address,uint256,bool,uint256,uint256)\":{\"notice\":\"An event emitted after each successful request.\"},\"UserOperationPrefundTooLow(bytes32,address,uint256)\":{\"notice\":\"UserOp consumed more than prefund. The UserOperation is reverted, and no refund is made.\"},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation \\\"callData\\\" reverted with non-zero length.\"}},\"kind\":\"user\",\"methods\":{\"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)\":{\"notice\":\"Validate account and paymaster (if defined) and also make sure total validation doesn't exceed verificationGasLimit. This method is called off-chain (simulateValidation()) and on-chain (from handleOps)\"},\"addStake(uint32)\":{\"notice\":\"Add to the account's stake - amount and delay any pending unstake is first cancelled.\"},\"balanceOf(address)\":{\"notice\":\"Get account balance.\"},\"constructor\":{\"notice\":\"simulation contract should not be deployed, and specifically, accounts should not trust it as entrypoint, since the simulation functions don't check the signatures\"},\"delegateAndRevert(address,bytes)\":{\"notice\":\"Helper method for dry-run testing.\"},\"depositTo(address)\":{\"notice\":\"Add to the deposit of the given account.\"},\"getDepositInfo(address)\":{\"notice\":\"Get deposit info.\"},\"getNonce(address,uint192)\":{\"notice\":\"Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order.\"},\"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Generate a request Id - unique identifier for this request. The request ID is a hash over the content of the userOp (except the signature), entrypoint address, chainId and (optionally) 7702 delegate address\"},\"incrementNonce(uint192)\":{\"notice\":\"Manually increment the nonce of the sender. This method is exposed just for completeness.. Account does NOT need to call it, neither during validation, nor elsewhere, as the EntryPoint will update the nonce regardless. Possible use-case is call it with various keys to \\\"initialize\\\" their nonces to one, so that future UserOperations will not pay extra for the first transaction with a given key.\"},\"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)\":{\"notice\":\"Inner function to handle a UserOperation. Must be declared \\\"external\\\" to open a call context, but it can only be called by handleOps.\"},\"nonceSequenceNumber(address,uint192)\":{\"notice\":\"The next valid sequence number for a given nonce key.\"},\"senderCreator()\":{\"notice\":\"Retrieves the immutable SenderCreator contract which is responsible for deployment of sender contracts.\"},\"simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)\":{\"notice\":\"Simulate full execution of a UserOperation (including both validation and target execution) It performs full validation of the UserOperation, but ignores signature error. An optional target address is called after the userop succeeds, and its value is returned (before the entire call is reverted). Note that in order to collect the the success/failure of the target call, it must be executed with trace enabled to track the emitted events.\"},\"simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Simulate a call to account.validateUserOp and paymaster.validatePaymasterUserOp.\"},\"unlockStake()\":{\"notice\":\"Attempt to unlock the stake. The value can be withdrawn (using withdrawStake) after the unstake delay.\"},\"withdrawStake(address)\":{\"notice\":\"Withdraw from the (unlocked) stake. Must first call unlockStake and wait for the unstakeDelay to pass.\"},\"withdrawTo(address,uint256)\":{\"notice\":\"Withdraw from the deposit.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/v08/EntryPointSimulations.sol\":\"EntryPointSimulations08\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":@account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":@account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.1.0/contracts/\",\":@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/\",\":@test-utils/=lib/singleton-paymaster/test/utils/\",\":account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":singleton-paymaster/=lib/singleton-paymaster/src/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"lib/account-abstraction-v8/contracts/core/Helpers.sol\":{\"keccak256\":\"0x42b948af5fa14a96149611595df1186800c7558b2de8762e4b45a7c45c16f65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737a7908131ece48a5df1faaa3d0be79c42792379c27f5615dae6aa14cd68c2f\",\"dweb:/ipfs/QmPAxGMDxuek7XWSUVfZpvYE8bustfsjTDVDK8hmE88e1f\"]},\"lib/account-abstraction-v8/contracts/core/NonceManager.sol\":{\"keccak256\":\"0x83fc7ce846063465d394b690c377beba26806e7564c77127d8a91b77ca64597c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ed8c369c25b26518b1c8ca43c6c3dddf7ea07c073f2b92408743f61e655dc01\",\"dweb:/ipfs/QmZuWagAa78Wvi8RKD1J1E48YxxW8SJxB6aKeT3EFz72HE\"]},\"lib/account-abstraction-v8/contracts/core/StakeManager.sol\":{\"keccak256\":\"0x98b727e4093595bf57eb09d45a9a181a26fca46591fc58601e8eae894d8f931a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://99d933ae3257d8aad0d32a60f021e37dd0dcedcd94edab905ec7523f34656ef2\",\"dweb:/ipfs/Qme8P8tZ37cexrxjTgrLoXXgbW1nqH8rQp5SLTW99aFsi5\"]},\"lib/account-abstraction-v8/contracts/core/UserOperationLib.sol\":{\"keccak256\":\"0x2d3450fa3906422b6fdbbe7f2a2a9e36d6f3751bfa9cd80af88befd6a5be78c1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://292a0ef5295d7f2016e99d2c228958f7f6de94f5bd9652d8696af15af0094a99\",\"dweb:/ipfs/QmVg4fhkZbUB7AopGcaVPmTdvChq7W9ga8fjrc3XaJNTM2\"]},\"lib/account-abstraction-v8/contracts/interfaces/IAccount.sol\":{\"keccak256\":\"0x1030b464b49ce80da46b5b6c9af357c2d526f308de61391db6a4ec767d33b864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://671945f8e18e7305797312b5a209506be3c9bd1d9b9b561c1e8863bccfa61319\",\"dweb:/ipfs/QmVanLK5Aenrb7J94doiE1C9oHwo86jvv8NrpDeNHwvnii\"]},\"lib/account-abstraction-v8/contracts/interfaces/IAccountExecute.sol\":{\"keccak256\":\"0xc313afc1e1b6823126be317611c3a868dc69eb29df43c658464b7188890c40e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3c2a7fac3764500a7e57cf4b9a610b14125edc4d87371772ec1b3407e89eced\",\"dweb:/ipfs/Qmc2Au3LvywAB5uaEc8ttuGVRZU4Mrgn1XWyqDa2zxtCHp\"]},\"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/IPaymaster.sol\":{\"keccak256\":\"0x6be37abc0760d60a41124e2e3f46185a0d3df48b32bd73174790981f76fbdae8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c144ba15a63883c7da41fc0729a46108f7d5487dbac2da0bde00aed67f5a2f00\",\"dweb:/ipfs/Qmdh7MzQmCQLh7wz719xMuG2yvMUkKDVwyN44P7pLofJfS\"]},\"lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol\":{\"keccak256\":\"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570\",\"dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w\"]},\"lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85\",\"dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz\"]},\"lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79\",\"dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK\"]},\"lib/account-abstraction-v8/contracts/utils/Exec.sol\":{\"keccak256\":\"0x9c724ee22011193ea7f92d3c3c467ee6aa27139d3ddc225c7f1254d241e6ccdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96cc246fe944a212cbb9ba82065b2d380ec80954fcdb5d8d982b476bd5b72868\",\"dweb:/ipfs/QmZ25eFixEhukbfWGz5TBjsp7YohxUqD5i2rxhaghfvHt8\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79\",\"dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/v08/Eip7702Support.sol\":{\"keccak256\":\"0x97dcf8077b21e11a00d0f4f04dc057a776257170f036d3d154119e5f210e8683\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb756013b769ae894aa8a5286b4a53964325944b1ef20114bcb0c62deb30119b\",\"dweb:/ipfs/QmSKopMsb23HAB8Dt7ahjenh7oBBDcFWewqLr615dpuLcA\"]},\"src/v08/EntryPoint.sol\":{\"keccak256\":\"0x440c3d8bc6bb39fa808c10bd677b1a1522e3ef42cb396ad6a3f43b64047f5851\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f3585dc925650135eb90ff0d75498eb7022e81678cb4747e9329a4fe98648f24\",\"dweb:/ipfs/QmcRMabUCajJ3BMejvxcKm7WXHgFrfNh2BA5We7KHkWTU9\"]},\"src/v08/EntryPointSimulations.sol\":{\"keccak256\":\"0x9ecd2875d386b94c703d6fae5d7184f4374c410bbffad03f22773ecda8e07554\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://90efcf58189147bc48167f776dae7c75050ab40b4980176c663a58cc6cc555aa\",\"dweb:/ipfs/QmQ651WqHq5xV1fLe22nYGdhNEFQnrMB1o8N5dxm4naukQ\"]},\"src/v08/IEntryPoint.sol\":{\"keccak256\":\"0x6ef27685ec58a67709de077a73667b0184aeb123643e7ef21ca9c95ad0122c71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e69b2738ebf45d63e7607ef67293d897ce08a39f499b0cb0234733b9f1bac1\",\"dweb:/ipfs/QmdxBsJtzPiyWuGuxf3NFynrcLibXXrXf1CZ79HNaRnh7K\"]},\"src/v08/IEntryPointSimulations.sol\":{\"keccak256\":\"0x3486ad6d4e9ef01e1809b43b4bf3dace06e5733ee7bec11febd7309d4c605236\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://79b06eb4c98ecaebf7cf2c54322b7fe07b418c828169536c380820d4bdf56abb\",\"dweb:/ipfs/Qmdiagf27geeJ73wPkYCRErpoHUwgFLvq24aJ3HBD5rM8L\"]},\"src/v08/SenderCreator.sol\":{\"keccak256\":\"0x1e2fb812c446c6041c6d692bbdf1228ad60eec9779ffd7b318e680bb241d71d5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://34db2b82ee8e7140298bcbd1dcabf06b3bbcb60fd597f81b5b9e53b25c30b447\",\"dweb:/ipfs/QmT4WcNu6NCaxxJ6FWGFpjadfXsMPVhgLMQfGWsW9rWZAZ\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.28+commit.7893614a" }, "language": "Solidity", "output": { "abi": [{ "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [{ "internalType": "bytes", "name": "reason", "type": "bytes" }], "type": "error", "name": "CallPhaseReverted" }, { "inputs": [{ "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "ret", "type": "bytes" }], "type": "error", "name": "DelegateAndRevert" }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "internalType": "string", "name": "reason", "type": "string" }], "type": "error", "name": "FailedOp" }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "internalType": "string", "name": "reason", "type": "string" }, { "internalType": "bytes", "name": "inner", "type": "bytes" }], "type": "error", "name": "FailedOpWithRevert" }, { "inputs": [], "type": "error", "name": "InvalidShortString" }, { "inputs": [{ "internalType": "bytes", "name": "returnData", "type": "bytes" }], "type": "error", "name": "PostOpReverted" }, { "inputs": [], "type": "error", "name": "ReentrancyGuardReentrantCall" }, { "inputs": [{ "internalType": "address", "name": "sender", "type": "address" }], "type": "error", "name": "SenderAddressResult" }, { "inputs": [{ "internalType": "address", "name": "aggregator", "type": "address" }], "type": "error", "name": "SignatureValidationFailed" }, { "inputs": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }], "type": "error", "name": "SimulationOutOfGas" }, { "inputs": [{ "internalType": "string", "name": "str", "type": "string" }], "type": "error", "name": "StringTooLong" }, { "inputs": [{ "internalType": "uint256", "name": "remainingGas", "type": "uint256" }], "type": "error", "name": "innerCallResult" }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "address", "name": "factory", "type": "address", "indexed": false }, { "internalType": "address", "name": "paymaster", "type": "address", "indexed": false }], "type": "event", "name": "AccountDeployed", "anonymous": false }, { "inputs": [], "type": "event", "name": "BeforeExecution", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "totalDeposit", "type": "uint256", "indexed": false }], "type": "event", "name": "Deposited", "anonymous": false }, { "inputs": [], "type": "event", "name": "EIP712DomainChanged", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "nonce", "type": "uint256", "indexed": false }, { "internalType": "bytes", "name": "revertReason", "type": "bytes", "indexed": false }], "type": "event", "name": "PostOpRevertReason", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "aggregator", "type": "address", "indexed": true }], "type": "event", "name": "SignatureAggregatorChanged", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "totalStaked", "type": "uint256", "indexed": false }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256", "indexed": false }], "type": "event", "name": "StakeLocked", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "withdrawTime", "type": "uint256", "indexed": false }], "type": "event", "name": "StakeUnlocked", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "address", "name": "withdrawAddress", "type": "address", "indexed": false }, { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false }], "type": "event", "name": "StakeWithdrawn", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "address", "name": "paymaster", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "nonce", "type": "uint256", "indexed": false }, { "internalType": "bool", "name": "success", "type": "bool", "indexed": false }, { "internalType": "uint256", "name": "actualGasCost", "type": "uint256", "indexed": false }, { "internalType": "uint256", "name": "actualGasUsed", "type": "uint256", "indexed": false }], "type": "event", "name": "UserOperationEvent", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "nonce", "type": "uint256", "indexed": false }], "type": "event", "name": "UserOperationPrefundTooLow", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "nonce", "type": "uint256", "indexed": false }, { "internalType": "bytes", "name": "revertReason", "type": "bytes", "indexed": false }], "type": "event", "name": "UserOperationRevertReason", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "address", "name": "withdrawAddress", "type": "address", "indexed": false }, { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false }], "type": "event", "name": "Withdrawn", "anonymous": false }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct EntryPoint.UserOpInfo", "name": "outOpInfo", "type": "tuple", "components": [{ "internalType": "struct EntryPoint.MemoryUserOp", "name": "mUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "address", "name": "paymaster", "type": "address" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }] }, { "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "contextOffset", "type": "uint256" }, { "internalType": "uint256", "name": "preOpGas", "type": "uint256" }] }], "stateMutability": "nonpayable", "type": "function", "name": "_accountValidation", "outputs": [{ "internalType": "uint256", "name": "validationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }] }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct EntryPoint.UserOpInfo", "name": "outOpInfo", "type": "tuple", "components": [{ "internalType": "struct EntryPoint.MemoryUserOp", "name": "mUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "address", "name": "paymaster", "type": "address" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }] }, { "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "contextOffset", "type": "uint256" }, { "internalType": "uint256", "name": "preOpGas", "type": "uint256" }] }], "stateMutability": "nonpayable", "type": "function", "name": "_paymasterValidation", "outputs": [{ "internalType": "uint256", "name": "validationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }] }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct EntryPoint.UserOpInfo", "name": "outOpInfo", "type": "tuple", "components": [{ "internalType": "struct EntryPoint.MemoryUserOp", "name": "mUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "address", "name": "paymaster", "type": "address" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }] }, { "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "contextOffset", "type": "uint256" }, { "internalType": "uint256", "name": "preOpGas", "type": "uint256" }] }, { "internalType": "bool", "name": "validatePaymasterPrepayment", "type": "bool" }], "stateMutability": "nonpayable", "type": "function", "name": "_validatePrepayment", "outputs": [{ "internalType": "uint256", "name": "validationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }] }, { "inputs": [{ "internalType": "uint32", "name": "unstakeDelaySec", "type": "uint32" }], "stateMutability": "payable", "type": "function", "name": "addStake" }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "stateMutability": "view", "type": "function", "name": "balanceOf", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [{ "internalType": "struct SimulationArgs[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "struct PackedUserOperation", "name": "op", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }] }, { "internalType": "struct SimulationArgs", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "struct PackedUserOperation", "name": "op", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }] }, { "internalType": "address", "name": "entryPoint", "type": "address" }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchCallGasLimit", "outputs": [{ "internalType": "struct IEntryPointSimulations.TargetCallResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }] }, { "inputs": [{ "internalType": "struct SimulationArgs[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "struct PackedUserOperation", "name": "op", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }] }, { "internalType": "struct SimulationArgs", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "struct PackedUserOperation", "name": "op", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }] }, { "internalType": "address", "name": "entryPoint", "type": "address" }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchPaymasterVerificationGasLimit", "outputs": [{ "internalType": "struct IEntryPointSimulations.TargetCallResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }] }, { "inputs": [{ "internalType": "struct SimulationArgs[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "struct PackedUserOperation", "name": "op", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }] }, { "internalType": "struct SimulationArgs", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "struct PackedUserOperation", "name": "op", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }] }, { "internalType": "address", "name": "entryPoint", "type": "address" }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchVerificationGasLimit", "outputs": [{ "internalType": "struct IEntryPointSimulations.TargetCallResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }] }, { "inputs": [{ "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }], "stateMutability": "nonpayable", "type": "function", "name": "delegateAndRevert" }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "stateMutability": "payable", "type": "function", "name": "depositTo" }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "eip712Domain", "outputs": [{ "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" }] }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "stateMutability": "view", "type": "function", "name": "getDepositInfo", "outputs": [{ "internalType": "struct IStakeManager.DepositInfo", "name": "info", "type": "tuple", "components": [{ "internalType": "uint256", "name": "deposit", "type": "uint256" }, { "internalType": "bool", "name": "staked", "type": "bool" }, { "internalType": "uint112", "name": "stake", "type": "uint112" }, { "internalType": "uint32", "name": "unstakeDelaySec", "type": "uint32" }, { "internalType": "uint48", "name": "withdrawTime", "type": "uint48" }] }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getDomainSeparatorV4", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] }, { "inputs": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint192", "name": "key", "type": "uint192" }], "stateMutability": "view", "type": "function", "name": "getNonce", "outputs": [{ "internalType": "uint256", "name": "nonce", "type": "uint256" }] }, { "inputs": [], "stateMutability": "pure", "type": "function", "name": "getPackedUserOpTypeHash", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] }, { "inputs": [{ "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "view", "type": "function", "name": "getUserOpHash", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] }, { "inputs": [{ "internalType": "uint192", "name": "key", "type": "uint192" }], "stateMutability": "nonpayable", "type": "function", "name": "incrementNonce" }, { "inputs": [{ "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "struct EntryPoint.UserOpInfo", "name": "opInfo", "type": "tuple", "components": [{ "internalType": "struct EntryPoint.MemoryUserOp", "name": "mUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "address", "name": "paymaster", "type": "address" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }] }, { "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "contextOffset", "type": "uint256" }, { "internalType": "uint256", "name": "preOpGas", "type": "uint256" }] }, { "internalType": "bytes", "name": "context", "type": "bytes" }, { "internalType": "uint256", "name": "preGas", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "innerHandleOp", "outputs": [{ "internalType": "uint256", "name": "actualGasCost", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }] }, { "inputs": [{ "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint192", "name": "", "type": "uint192" }], "stateMutability": "view", "type": "function", "name": "nonceSequenceNumber", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "senderCreator", "outputs": [{ "internalType": "contract ISenderCreator", "name": "", "type": "address" }] }, { "inputs": [{ "internalType": "address", "name": "entryPoint", "type": "address" }, { "internalType": "bytes", "name": "payload", "type": "bytes" }, { "internalType": "uint256", "name": "gas", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateCall", "outputs": [{ "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "result", "type": "bytes" }] }, { "inputs": [{ "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "uint256", "name": "gas", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateCallAndRevert" }, { "inputs": [{ "internalType": "struct PackedUserOperation", "name": "op", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateHandleOp", "outputs": [{ "internalType": "struct IEntryPointSimulations.ExecutionResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "paid", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "bool", "name": "targetSuccess", "type": "bool" }, { "internalType": "bytes", "name": "targetResult", "type": "bytes" }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "ops", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateHandleOpBulk", "outputs": [{ "internalType": "struct IEntryPointSimulations.ExecutionResult[]", "name": "", "type": "tuple[]", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "paid", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "bool", "name": "targetSuccess", "type": "bool" }, { "internalType": "bytes", "name": "targetResult", "type": "bytes" }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "ops", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateHandleOpLast", "outputs": [{ "internalType": "struct IEntryPointSimulations.ExecutionResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "paid", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "bool", "name": "targetSuccess", "type": "bool" }, { "internalType": "bytes", "name": "targetResult", "type": "bytes" }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateValidation", "outputs": [{ "internalType": "struct IEntryPointSimulations.ValidationResult", "name": "", "type": "tuple", "components": [{ "internalType": "struct IEntryPoint.ReturnInfo", "name": "returnInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterContext", "type": "bytes" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "senderInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "factoryInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "paymasterInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IEntryPointSimulations.AggregatorStakeInfo", "name": "aggregatorInfo", "type": "tuple", "components": [{ "internalType": "address", "name": "aggregator", "type": "address" }, { "internalType": "struct IStakeManager.StakeInfo", "name": "stakeInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }] }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateValidationBulk", "outputs": [{ "internalType": "struct IEntryPointSimulations.ValidationResult[]", "name": "", "type": "tuple[]", "components": [{ "internalType": "struct IEntryPoint.ReturnInfo", "name": "returnInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterContext", "type": "bytes" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "senderInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "factoryInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "paymasterInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IEntryPointSimulations.AggregatorStakeInfo", "name": "aggregatorInfo", "type": "tuple", "components": [{ "internalType": "address", "name": "aggregator", "type": "address" }, { "internalType": "struct IStakeManager.StakeInfo", "name": "stakeInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }] }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateValidationLast", "outputs": [{ "internalType": "struct IEntryPointSimulations.ValidationResult", "name": "", "type": "tuple", "components": [{ "internalType": "struct IEntryPoint.ReturnInfo", "name": "returnInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterContext", "type": "bytes" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "senderInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "factoryInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "paymasterInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IEntryPointSimulations.AggregatorStakeInfo", "name": "aggregatorInfo", "type": "tuple", "components": [{ "internalType": "address", "name": "aggregator", "type": "address" }, { "internalType": "struct IStakeManager.StakeInfo", "name": "stakeInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }] }] }] }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "unlockStake" }, { "inputs": [{ "internalType": "address payable", "name": "withdrawAddress", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "withdrawStake" }, { "inputs": [{ "internalType": "address payable", "name": "withdrawAddress", "type": "address" }, { "internalType": "uint256", "name": "withdrawAmount", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "withdrawTo" }, { "inputs": [], "stateMutability": "payable", "type": "receive" }], "devdoc": { "kind": "dev", "methods": { "_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)": { "params": { "opIndex": "- The index of this userOp into the \"opInfos\" array.", "outOpInfo": "- The empty unpacked in-memory UserOperation structure that will be filled in here.", "userOp": "- The packed calldata UserOperation structure to validate." }, "returns": { "paymasterValidationData": "- The paymaster's validationData.", "validationData": " - The account's validationData." } }, "addStake(uint32)": { "params": { "unstakeDelaySec": "- The new lock duration before the deposit can be withdrawn." } }, "balanceOf(address)": { "params": { "account": "- The account to query." }, "returns": { "_0": "- The deposit (for gas payment) of the account." } }, "delegateAndRevert(address,bytes)": { "details": "calling this method, the EntryPoint will make a delegatecall to the given data, and report (via revert) the result. The method always revert, so is only useful off-chain for dry run calls, in cases where state-override to replace actual EntryPoint code is less convenient.", "params": { "data": "data to pass to target in a delegatecall", "target": "a target contract to make a delegatecall from entrypoint" } }, "depositTo(address)": { "params": { "account": "- The account to add to." } }, "eip712Domain()": { "details": "See {IERC-5267}." }, "getDepositInfo(address)": { "params": { "account": "- The account to query." }, "returns": { "info": " - Full deposit information of given account." } }, "getNonce(address,uint192)": { "params": { "key": "the high 192 bit of the nonce", "sender": "the account address" }, "returns": { "nonce": "a full nonce to pass for next UserOp with this sender." } }, "getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "params": { "userOp": "- The user operation to generate the request ID for." }, "returns": { "_0": "hash the hash of this UserOperation" } }, "incrementNonce(uint192)": { "params": { "key": "- the \"nonce key\" to increment the \"nonce sequence\" for." } }, "innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)": { "params": { "callData": "- The callData to execute.", "context": "- The context bytes.", "opInfo": "- The UserOpInfo struct." }, "returns": { "actualGasCost": "- the actual cost in eth this UserOperation paid for gas" } }, "simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)": { "params": { "op": "The UserOperation to simulate." }, "returns": { "_0": "the execution result structure" } }, "simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "details": "The node must also verify it doesn't use banned opcodes, and that it doesn't reference storage outside the account's data.", "params": { "userOp": "- The user operation to validate." }, "returns": { "_0": "the validation result structure" } }, "withdrawStake(address)": { "params": { "withdrawAddress": "- The address to send withdrawn value." } }, "withdrawTo(address,uint256)": { "params": { "withdrawAddress": "- The address to send withdrawn value.", "withdrawAmount": "- The amount to withdraw." } } }, "version": 1 }, "userdoc": { "kind": "user", "methods": { "_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)": { "notice": "Validate account and paymaster (if defined) and also make sure total validation doesn't exceed verificationGasLimit. This method is called off-chain (simulateValidation()) and on-chain (from handleOps)" }, "addStake(uint32)": { "notice": "Add to the account's stake - amount and delay any pending unstake is first cancelled." }, "balanceOf(address)": { "notice": "Get account balance." }, "constructor": { "notice": "simulation contract should not be deployed, and specifically, accounts should not trust it as entrypoint, since the simulation functions don't check the signatures" }, "delegateAndRevert(address,bytes)": { "notice": "Helper method for dry-run testing." }, "depositTo(address)": { "notice": "Add to the deposit of the given account." }, "getDepositInfo(address)": { "notice": "Get deposit info." }, "getNonce(address,uint192)": { "notice": "Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order." }, "getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "notice": "Generate a request Id - unique identifier for this request. The request ID is a hash over the content of the userOp (except the signature), entrypoint address, chainId and (optionally) 7702 delegate address" }, "incrementNonce(uint192)": { "notice": "Manually increment the nonce of the sender. This method is exposed just for completeness.. Account does NOT need to call it, neither during validation, nor elsewhere, as the EntryPoint will update the nonce regardless. Possible use-case is call it with various keys to \"initialize\" their nonces to one, so that future UserOperations will not pay extra for the first transaction with a given key." }, "innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)": { "notice": "Inner function to handle a UserOperation. Must be declared \"external\" to open a call context, but it can only be called by handleOps." }, "nonceSequenceNumber(address,uint192)": { "notice": "The next valid sequence number for a given nonce key." }, "senderCreator()": { "notice": "Retrieves the immutable SenderCreator contract which is responsible for deployment of sender contracts." }, "simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)": { "notice": "Simulate full execution of a UserOperation (including both validation and target execution) It performs full validation of the UserOperation, but ignores signature error. An optional target address is called after the userop succeeds, and its value is returned (before the entire call is reverted). Note that in order to collect the the success/failure of the target call, it must be executed with trace enabled to track the emitted events." }, "simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "notice": "Simulate a call to account.validateUserOp and paymaster.validatePaymasterUserOp." }, "unlockStake()": { "notice": "Attempt to unlock the stake. The value can be withdrawn (using withdrawStake) after the unstake delay." }, "withdrawStake(address)": { "notice": "Withdraw from the (unlocked) stake. Must first call unlockStake and wait for the unstakeDelay to pass." }, "withdrawTo(address,uint256)": { "notice": "Withdraw from the deposit." } }, "version": 1 } }, "settings": { "remappings": ["@account-abstraction-v6/=lib/account-abstraction-v6/contracts/", "@account-abstraction-v7/=lib/account-abstraction-v7/contracts/", "@account-abstraction-v8/=lib/account-abstraction-v8/contracts/", "@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/", "@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/", "@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/", "@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.1.0/contracts/", "@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/", "@test-utils/=lib/singleton-paymaster/test/utils/", "account-abstraction-v6/=lib/account-abstraction-v6/contracts/", "account-abstraction-v7/=lib/account-abstraction-v7/contracts/", "account-abstraction-v8/=lib/account-abstraction-v8/contracts/", "ds-test/=lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/", "openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/", "openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/", "openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/", "singleton-paymaster/=lib/singleton-paymaster/src/", "solady/=lib/solady/src/"], "optimizer": { "enabled": true, "runs": 1000 }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "src/v08/EntryPointSimulations.sol": "EntryPointSimulations08" }, "evmVersion": "cancun", "libraries": {}, "viaIR": true }, "sources": { "lib/account-abstraction-v8/contracts/core/Helpers.sol": { "keccak256": "0x42b948af5fa14a96149611595df1186800c7558b2de8762e4b45a7c45c16f65e", "urls": ["bzz-raw://737a7908131ece48a5df1faaa3d0be79c42792379c27f5615dae6aa14cd68c2f", "dweb:/ipfs/QmPAxGMDxuek7XWSUVfZpvYE8bustfsjTDVDK8hmE88e1f"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/core/NonceManager.sol": { "keccak256": "0x83fc7ce846063465d394b690c377beba26806e7564c77127d8a91b77ca64597c", "urls": ["bzz-raw://7ed8c369c25b26518b1c8ca43c6c3dddf7ea07c073f2b92408743f61e655dc01", "dweb:/ipfs/QmZuWagAa78Wvi8RKD1J1E48YxxW8SJxB6aKeT3EFz72HE"], "license": "GPL-3.0" }, "lib/account-abstraction-v8/contracts/core/StakeManager.sol": { "keccak256": "0x98b727e4093595bf57eb09d45a9a181a26fca46591fc58601e8eae894d8f931a", "urls": ["bzz-raw://99d933ae3257d8aad0d32a60f021e37dd0dcedcd94edab905ec7523f34656ef2", "dweb:/ipfs/Qme8P8tZ37cexrxjTgrLoXXgbW1nqH8rQp5SLTW99aFsi5"], "license": "GPL-3.0" }, "lib/account-abstraction-v8/contracts/core/UserOperationLib.sol": { "keccak256": "0x2d3450fa3906422b6fdbbe7f2a2a9e36d6f3751bfa9cd80af88befd6a5be78c1", "urls": ["bzz-raw://292a0ef5295d7f2016e99d2c228958f7f6de94f5bd9652d8696af15af0094a99", "dweb:/ipfs/QmVg4fhkZbUB7AopGcaVPmTdvChq7W9ga8fjrc3XaJNTM2"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/IAccount.sol": { "keccak256": "0x1030b464b49ce80da46b5b6c9af357c2d526f308de61391db6a4ec767d33b864", "urls": ["bzz-raw://671945f8e18e7305797312b5a209506be3c9bd1d9b9b561c1e8863bccfa61319", "dweb:/ipfs/QmVanLK5Aenrb7J94doiE1C9oHwo86jvv8NrpDeNHwvnii"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/IAccountExecute.sol": { "keccak256": "0xc313afc1e1b6823126be317611c3a868dc69eb29df43c658464b7188890c40e0", "urls": ["bzz-raw://f3c2a7fac3764500a7e57cf4b9a610b14125edc4d87371772ec1b3407e89eced", "dweb:/ipfs/Qmc2Au3LvywAB5uaEc8ttuGVRZU4Mrgn1XWyqDa2zxtCHp"], "license": "MIT" }, "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/IPaymaster.sol": { "keccak256": "0x6be37abc0760d60a41124e2e3f46185a0d3df48b32bd73174790981f76fbdae8", "urls": ["bzz-raw://c144ba15a63883c7da41fc0729a46108f7d5487dbac2da0bde00aed67f5a2f00", "dweb:/ipfs/Qmdh7MzQmCQLh7wz719xMuG2yvMUkKDVwyN44P7pLofJfS"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol": { "keccak256": "0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4", "urls": ["bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570", "dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0", "urls": ["bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85", "dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol": { "keccak256": "0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800", "urls": ["bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79", "dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/utils/Exec.sol": { "keccak256": "0x9c724ee22011193ea7f92d3c3c467ee6aa27139d3ddc225c7f1254d241e6ccdd", "urls": ["bzz-raw://96cc246fe944a212cbb9ba82065b2d380ec80954fcdb5d8d982b476bd5b72868", "dweb:/ipfs/QmZ25eFixEhukbfWGz5TBjsp7YohxUqD5i2rxhaghfvHt8"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/interfaces/IERC5267.sol": { "keccak256": "0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92", "urls": ["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a", "dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/Panic.sol": { "keccak256": "0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a", "urls": ["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a", "dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/ReentrancyGuardTransient.sol": { "keccak256": "0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b", "urls": ["bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79", "dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/ShortStrings.sol": { "keccak256": "0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549", "urls": ["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a", "dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/StorageSlot.sol": { "keccak256": "0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97", "urls": ["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b", "dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/Strings.sol": { "keccak256": "0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed", "urls": ["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0", "dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/TransientSlot.sol": { "keccak256": "0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1", "urls": ["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889", "dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/EIP712.sol": { "keccak256": "0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d", "urls": ["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c", "dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/MessageHashUtils.sol": { "keccak256": "0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575", "urls": ["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e", "dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/Math.sol": { "keccak256": "0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea", "urls": ["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d", "dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SafeCast.sol": { "keccak256": "0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54", "urls": ["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8", "dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SignedMath.sol": { "keccak256": "0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3", "urls": ["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03", "dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"], "license": "MIT" }, "src/v08/Eip7702Support.sol": { "keccak256": "0x97dcf8077b21e11a00d0f4f04dc057a776257170f036d3d154119e5f210e8683", "urls": ["bzz-raw://bb756013b769ae894aa8a5286b4a53964325944b1ef20114bcb0c62deb30119b", "dweb:/ipfs/QmSKopMsb23HAB8Dt7ahjenh7oBBDcFWewqLr615dpuLcA"], "license": "MIT" }, "src/v08/EntryPoint.sol": { "keccak256": "0x440c3d8bc6bb39fa808c10bd677b1a1522e3ef42cb396ad6a3f43b64047f5851", "urls": ["bzz-raw://f3585dc925650135eb90ff0d75498eb7022e81678cb4747e9329a4fe98648f24", "dweb:/ipfs/QmcRMabUCajJ3BMejvxcKm7WXHgFrfNh2BA5We7KHkWTU9"], "license": "GPL-3.0" }, "src/v08/EntryPointSimulations.sol": { "keccak256": "0x9ecd2875d386b94c703d6fae5d7184f4374c410bbffad03f22773ecda8e07554", "urls": ["bzz-raw://90efcf58189147bc48167f776dae7c75050ab40b4980176c663a58cc6cc555aa", "dweb:/ipfs/QmQ651WqHq5xV1fLe22nYGdhNEFQnrMB1o8N5dxm4naukQ"], "license": "GPL-3.0" }, "src/v08/IEntryPoint.sol": { "keccak256": "0x6ef27685ec58a67709de077a73667b0184aeb123643e7ef21ca9c95ad0122c71", "urls": ["bzz-raw://66e69b2738ebf45d63e7607ef67293d897ce08a39f499b0cb0234733b9f1bac1", "dweb:/ipfs/QmdxBsJtzPiyWuGuxf3NFynrcLibXXrXf1CZ79HNaRnh7K"], "license": "MIT" }, "src/v08/IEntryPointSimulations.sol": { "keccak256": "0x3486ad6d4e9ef01e1809b43b4bf3dace06e5733ee7bec11febd7309d4c605236", "urls": ["bzz-raw://79b06eb4c98ecaebf7cf2c54322b7fe07b418c828169536c380820d4bdf56abb", "dweb:/ipfs/Qmdiagf27geeJ73wPkYCRErpoHUwgFLvq24aJ3HBD5rM8L"], "license": "GPL-3.0" }, "src/v08/SenderCreator.sol": { "keccak256": "0x1e2fb812c446c6041c6d692bbdf1228ad60eec9779ffd7b318e680bb241d71d5", "urls": ["bzz-raw://34db2b82ee8e7140298bcbd1dcabf06b3bbcb60fd597f81b5b9e53b25c30b447", "dweb:/ipfs/QmT4WcNu6NCaxxJ6FWGFpjadfXsMPVhgLMQfGWsW9rWZAZ"], "license": "GPL-3.0" } }, "version": 1 }, "id": 28 }